summaryrefslogtreecommitdiff
path: root/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master
diff options
context:
space:
mode:
Diffstat (limited to '2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master')
-rw-r--r--2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/index.html169
-rw-r--r--2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-092d31.html2385
-rw-r--r--2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-20669e.html2840
-rw-r--r--2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-215a71.html2840
-rw-r--r--2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-2b0dd9.html2840
-rw-r--r--2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-3c2acf.html2385
-rw-r--r--2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-49a7b3.html2385
-rw-r--r--2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-792baf.html2385
-rw-r--r--2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-80c412.html2840
-rw-r--r--2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-86ff44.html1773
-rw-r--r--2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-8ae438.html1773
-rw-r--r--2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-8c30a3.html2385
-rw-r--r--2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-8c7a76.html1021
-rw-r--r--2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-959831.html747
-rw-r--r--2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-a2885e.html789
-rw-r--r--2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-b430a1.html747
-rw-r--r--2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-b8f564.html2089
-rw-r--r--2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-c21a0f.html2385
-rw-r--r--2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-cbf846.html1021
-rw-r--r--2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-cf3974.html2089
-rw-r--r--2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-d040d4.html2840
-rw-r--r--2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-d2e905.html2385
-rw-r--r--2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-e22eee.html983
-rw-r--r--2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-eb3cb1.html5495
-rw-r--r--2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-f1a256.html789
-rw-r--r--2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/scanview.css62
-rw-r--r--2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/sorttable.js492
27 files changed, 50934 insertions, 0 deletions
diff --git a/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/index.html b/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/index.html
new file mode 100644
index 0000000..8096440
--- /dev/null
+++ b/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/index.html
@@ -0,0 +1,169 @@
+<html>
+<head>
+<title>rootdir - scan-build results</title>
+<link type="text/css" rel="stylesheet" href="scanview.css"/>
+<script src="sorttable.js"></script>
+<script language='javascript' type="text/javascript">
+function SetDisplay(RowClass, DisplayVal)
+{
+ var Rows = document.getElementsByTagName("tr");
+ for ( var i = 0 ; i < Rows.length; ++i ) {
+ if (Rows[i].className == RowClass) {
+ Rows[i].style.display = DisplayVal;
+ }
+ }
+}
+
+function CopyCheckedStateToCheckButtons(SummaryCheckButton) {
+ var Inputs = document.getElementsByTagName("input");
+ for ( var i = 0 ; i < Inputs.length; ++i ) {
+ if (Inputs[i].type == "checkbox") {
+ if(Inputs[i] != SummaryCheckButton) {
+ Inputs[i].checked = SummaryCheckButton.checked;
+ Inputs[i].onclick();
+ }
+ }
+ }
+}
+
+function returnObjById( id ) {
+ if (document.getElementById)
+ var returnVar = document.getElementById(id);
+ else if (document.all)
+ var returnVar = document.all[id];
+ else if (document.layers)
+ var returnVar = document.layers[id];
+ return returnVar;
+}
+
+var NumUnchecked = 0;
+
+function ToggleDisplay(CheckButton, ClassName) {
+ if (CheckButton.checked) {
+ SetDisplay(ClassName, "");
+ if (--NumUnchecked == 0) {
+ returnObjById("AllBugsCheck").checked = true;
+ }
+ }
+ else {
+ SetDisplay(ClassName, "none");
+ NumUnchecked++;
+ returnObjById("AllBugsCheck").checked = false;
+ }
+}
+</script>
+<!-- SUMMARYENDHEAD -->
+</head>
+<body>
+<h1>rootdir - scan-build results</h1>
+
+<table>
+<tr><th>User:</th><td>root@e3f933fd91c1</td></tr>
+<tr><th>Working Directory:</th><td>/rootdir</td></tr>
+<tr><th>Command Line:</th><td>make -j 2</td></tr>
+<tr><th>Clang Version:</th><td>clang version 17.0.6 (Fedora 17.0.6-2.fc39)
+</td></tr>
+<tr><th>Date:</th><td>Sun Feb 18 13:14:24 2024</td></tr>
+</table>
+<h2>Bug Summary</h2><table>
+<thead><tr><td>Bug Type</td><td>Quantity</td><td class="sorttable_nosort">Display?</td></tr></thead>
+<tr style="font-weight:bold"><td class="SUMM_DESC">All Bugs</td><td class="Q">24</td><td><center><input type="checkbox" id="AllBugsCheck" onClick="CopyCheckedStateToCheckButtons(this);" checked/></center></td></tr>
+<tr><th>Logic error</th><th colspan=2></th></tr>
+<tr><td class="SUMM_DESC">Branch condition evaluates to a garbage value</td><td class="Q">1</td><td><center><input type="checkbox" onClick="ToggleDisplay(this,'bt_logic_error_branch_condition_evaluates_to_a_garbage_value');" checked/></center></td></tr>
+<tr><td class="SUMM_DESC">Cast from non-struct type to struct type</td><td class="Q">15</td><td><center><input type="checkbox" onClick="ToggleDisplay(this,'bt_logic_error_cast_from_non-struct_type_to_struct_type');" checked/></center></td></tr>
+<tr><th>Security</th><th colspan=2></th></tr>
+<tr><td class="SUMM_DESC">Potential insecure memory buffer bounds restriction in call 'strcat'</td><td class="Q">4</td><td><center><input type="checkbox" onClick="ToggleDisplay(this,'bt_security_potential_insecure_memory_buffer_bounds_restriction_in_call_strcat_');" checked/></center></td></tr>
+<tr><td class="SUMM_DESC">Potential insecure memory buffer bounds restriction in call 'strcpy'</td><td class="Q">3</td><td><center><input type="checkbox" onClick="ToggleDisplay(this,'bt_security_potential_insecure_memory_buffer_bounds_restriction_in_call_strcpy_');" checked/></center></td></tr>
+<tr><th>Unused code</th><th colspan=2></th></tr>
+<tr><td class="SUMM_DESC">Unreachable code</td><td class="Q">1</td><td><center><input type="checkbox" onClick="ToggleDisplay(this,'bt_unused_code_unreachable_code');" checked/></center></td></tr>
+</table>
+<h2>Reports</h2>
+
+<table class="sortable" style="table-layout:automatic">
+<thead><tr>
+ <td>Bug Group</td>
+ <td class="sorttable_sorted">Bug Type<span id="sorttable_sortfwdind">&nbsp;&#x25BE;</span></td>
+ <td>File</td>
+ <td>Function/Method</td>
+ <td class="Q">Line</td>
+ <td class="Q">Path Length</td>
+ <td class="sorttable_nosort"></td>
+ <!-- REPORTBUGCOL -->
+</tr></thead>
+<tbody>
+<tr class="bt_logic_error_branch_condition_evaluates_to_a_garbage_value"><td class="DESC">Logic error</td><td class="DESC">Branch condition evaluates to a garbage value</td><td>terminal-window.c</td><td class="DESC">confirm_close_window_or_tab</td><td class="Q">3718</td><td class="Q">9</td><td><a href="report-eb3cb1.html#EndPath">View Report</a></td>
+<!-- REPORTBUG id="report-eb3cb1.html" -->
+</tr>
+<tr class="bt_logic_error_cast_from_non-struct_type_to_struct_type"><td class="DESC">Logic error</td><td class="DESC">Cast from non-struct type to struct type</td><td>terminal-profile.c</td><td class="DESC">terminal_profile_gsettings_notify_cb</td><td class="Q">607</td><td class="Q">1</td><td><a href="report-092d31.html#EndPath">View Report</a></td>
+<!-- REPORTBUG id="report-092d31.html" -->
+</tr>
+<tr class="bt_logic_error_cast_from_non-struct_type_to_struct_type"><td class="DESC">Logic error</td><td class="DESC">Cast from non-struct type to struct type</td><td>terminal-app.c</td><td class="DESC">terminal_app_profile_list_notify_cb</td><td class="Q">817</td><td class="Q">1</td><td><a href="report-20669e.html#EndPath">View Report</a></td>
+<!-- REPORTBUG id="report-20669e.html" -->
+</tr>
+<tr class="bt_logic_error_cast_from_non-struct_type_to_struct_type"><td class="DESC">Logic error</td><td class="DESC">Cast from non-struct type to struct type</td><td>terminal-app.c</td><td class="DESC">terminal_app_system_font_notify_cb</td><td class="Q">1043</td><td class="Q">1</td><td><a href="report-215a71.html#EndPath">View Report</a></td>
+<!-- REPORTBUG id="report-215a71.html" -->
+</tr>
+<tr class="bt_logic_error_cast_from_non-struct_type_to_struct_type"><td class="DESC">Logic error</td><td class="DESC">Cast from non-struct type to struct type</td><td>terminal-app.c</td><td class="DESC">terminal_app_default_profile_notify_cb</td><td class="Q">935</td><td class="Q">1</td><td><a href="report-2b0dd9.html#EndPath">View Report</a></td>
+<!-- REPORTBUG id="report-2b0dd9.html" -->
+</tr>
+<tr class="bt_logic_error_cast_from_non-struct_type_to_struct_type"><td class="DESC">Logic error</td><td class="DESC">Cast from non-struct type to struct type</td><td>terminal-profile.c</td><td class="DESC">terminal_profile_gsettings_notify_cb</td><td class="Q">650</td><td class="Q">1</td><td><a href="report-3c2acf.html#EndPath">View Report</a></td>
+<!-- REPORTBUG id="report-3c2acf.html" -->
+</tr>
+<tr class="bt_logic_error_cast_from_non-struct_type_to_struct_type"><td class="DESC">Logic error</td><td class="DESC">Cast from non-struct type to struct type</td><td>terminal-profile.c</td><td class="DESC">terminal_profile_gsettings_notify_cb</td><td class="Q">600</td><td class="Q">1</td><td><a href="report-49a7b3.html#EndPath">View Report</a></td>
+<!-- REPORTBUG id="report-49a7b3.html" -->
+</tr>
+<tr class="bt_logic_error_cast_from_non-struct_type_to_struct_type"><td class="DESC">Logic error</td><td class="DESC">Cast from non-struct type to struct type</td><td>terminal-profile.c</td><td class="DESC">terminal_profile_gsettings_notify_cb</td><td class="Q">641</td><td class="Q">1</td><td><a href="report-792baf.html#EndPath">View Report</a></td>
+<!-- REPORTBUG id="report-792baf.html" -->
+</tr>
+<tr class="bt_logic_error_cast_from_non-struct_type_to_struct_type"><td class="DESC">Logic error</td><td class="DESC">Cast from non-struct type to struct type</td><td>terminal-app.c</td><td class="DESC">terminal_app_profile_list_notify_cb</td><td class="Q">816</td><td class="Q">1</td><td><a href="report-80c412.html#EndPath">View Report</a></td>
+<!-- REPORTBUG id="report-80c412.html" -->
+</tr>
+<tr class="bt_logic_error_cast_from_non-struct_type_to_struct_type"><td class="DESC">Logic error</td><td class="DESC">Cast from non-struct type to struct type</td><td>terminal-accels.c</td><td class="DESC">keys_change_notify</td><td class="Q">541</td><td class="Q">1</td><td><a href="report-86ff44.html#EndPath">View Report</a></td>
+<!-- REPORTBUG id="report-86ff44.html" -->
+</tr>
+<tr class="bt_logic_error_cast_from_non-struct_type_to_struct_type"><td class="DESC">Logic error</td><td class="DESC">Cast from non-struct type to struct type</td><td>terminal-accels.c</td><td class="DESC">binding_from_value</td><td class="Q">656</td><td class="Q">1</td><td><a href="report-8ae438.html#EndPath">View Report</a></td>
+<!-- REPORTBUG id="report-8ae438.html" -->
+</tr>
+<tr class="bt_logic_error_cast_from_non-struct_type_to_struct_type"><td class="DESC">Logic error</td><td class="DESC">Cast from non-struct type to struct type</td><td>terminal-profile.c</td><td class="DESC">terminal_profile_gsettings_notify_cb</td><td class="Q">649</td><td class="Q">1</td><td><a href="report-8c30a3.html#EndPath">View Report</a></td>
+<!-- REPORTBUG id="report-8c30a3.html" -->
+</tr>
+<tr class="bt_logic_error_cast_from_non-struct_type_to_struct_type"><td class="DESC">Logic error</td><td class="DESC">Cast from non-struct type to struct type</td><td>mate-submodules/libegg/eggsmclient-xsmp.c</td><td class="DESC">array_prop</td><td class="Q">1199</td><td class="Q">1</td><td><a href="report-b8f564.html#EndPath">View Report</a></td>
+<!-- REPORTBUG id="report-b8f564.html" -->
+</tr>
+<tr class="bt_logic_error_cast_from_non-struct_type_to_struct_type"><td class="DESC">Logic error</td><td class="DESC">Cast from non-struct type to struct type</td><td>mate-submodules/libegg/eggsmclient-xsmp.c</td><td class="DESC">ptrarray_prop</td><td class="Q">1232</td><td class="Q">1</td><td><a href="report-cf3974.html#EndPath">View Report</a></td>
+<!-- REPORTBUG id="report-cf3974.html" -->
+</tr>
+<tr class="bt_logic_error_cast_from_non-struct_type_to_struct_type"><td class="DESC">Logic error</td><td class="DESC">Cast from non-struct type to struct type</td><td>terminal-app.c</td><td class="DESC">terminal_app_encoding_list_notify_cb</td><td class="Q">999</td><td class="Q">1</td><td><a href="report-d040d4.html#EndPath">View Report</a></td>
+<!-- REPORTBUG id="report-d040d4.html" -->
+</tr>
+<tr class="bt_logic_error_cast_from_non-struct_type_to_struct_type"><td class="DESC">Logic error</td><td class="DESC">Cast from non-struct type to struct type</td><td>terminal-profile.c</td><td class="DESC">terminal_profile_gsettings_notify_cb</td><td class="Q">648</td><td class="Q">1</td><td><a href="report-d2e905.html#EndPath">View Report</a></td>
+<!-- REPORTBUG id="report-d2e905.html" -->
+</tr>
+<tr class="bt_security_potential_insecure_memory_buffer_bounds_restriction_in_call_strcat_"><td class="DESC">Security</td><td class="DESC">Potential insecure memory buffer bounds restriction in call 'strcat'</td><td>skey/md4.c</td><td class="DESC">MD4Keycrunch</td><td class="Q">276</td><td class="Q">1</td><td><a href="report-8c7a76.html#EndPath">View Report</a></td>
+<!-- REPORTBUG id="report-8c7a76.html" -->
+</tr>
+<tr class="bt_security_potential_insecure_memory_buffer_bounds_restriction_in_call_strcat_"><td class="DESC">Security</td><td class="DESC">Potential insecure memory buffer bounds restriction in call 'strcat'</td><td>skey/md5.c</td><td class="DESC">MD5Keycrunch</td><td class="Q">27</td><td class="Q">1</td><td><a href="report-959831.html#EndPath">View Report</a></td>
+<!-- REPORTBUG id="report-959831.html" -->
+</tr>
+<tr class="bt_security_potential_insecure_memory_buffer_bounds_restriction_in_call_strcat_"><td class="DESC">Security</td><td class="DESC">Potential insecure memory buffer bounds restriction in call 'strcat'</td><td>skey/btoe.c</td><td class="DESC">btoe</td><td class="Q">263</td><td class="Q">1</td><td><a href="report-e22eee.html#EndPath">View Report</a></td>
+<!-- REPORTBUG id="report-e22eee.html" -->
+</tr>
+<tr class="bt_security_potential_insecure_memory_buffer_bounds_restriction_in_call_strcat_"><td class="DESC">Security</td><td class="DESC">Potential insecure memory buffer bounds restriction in call 'strcat'</td><td>skey/sha1.c</td><td class="DESC">SHA1Keycrunch</td><td class="Q">53</td><td class="Q">1</td><td><a href="report-f1a256.html#EndPath">View Report</a></td>
+<!-- REPORTBUG id="report-f1a256.html" -->
+</tr>
+<tr class="bt_security_potential_insecure_memory_buffer_bounds_restriction_in_call_strcpy_"><td class="DESC">Security</td><td class="DESC">Potential insecure memory buffer bounds restriction in call 'strcpy'</td><td>skey/sha1.c</td><td class="DESC">SHA1Keycrunch</td><td class="Q">51</td><td class="Q">1</td><td><a href="report-a2885e.html#EndPath">View Report</a></td>
+<!-- REPORTBUG id="report-a2885e.html" -->
+</tr>
+<tr class="bt_security_potential_insecure_memory_buffer_bounds_restriction_in_call_strcpy_"><td class="DESC">Security</td><td class="DESC">Potential insecure memory buffer bounds restriction in call 'strcpy'</td><td>skey/md5.c</td><td class="DESC">MD5Keycrunch</td><td class="Q">25</td><td class="Q">1</td><td><a href="report-b430a1.html#EndPath">View Report</a></td>
+<!-- REPORTBUG id="report-b430a1.html" -->
+</tr>
+<tr class="bt_security_potential_insecure_memory_buffer_bounds_restriction_in_call_strcpy_"><td class="DESC">Security</td><td class="DESC">Potential insecure memory buffer bounds restriction in call 'strcpy'</td><td>skey/md4.c</td><td class="DESC">MD4Keycrunch</td><td class="Q">274</td><td class="Q">1</td><td><a href="report-cbf846.html#EndPath">View Report</a></td>
+<!-- REPORTBUG id="report-cbf846.html" -->
+</tr>
+<tr class="bt_unused_code_unreachable_code"><td class="DESC">Unused code</td><td class="DESC">Unreachable code</td><td>terminal-profile.c</td><td class="DESC">terminal_profile_property_locked</td><td class="Q">1579</td><td class="Q">1</td><td><a href="report-c21a0f.html#EndPath">View Report</a></td>
+<!-- REPORTBUG id="report-c21a0f.html" -->
+</tr>
+</tbody>
+</table>
+
+</body></html>
diff --git a/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-092d31.html b/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-092d31.html
new file mode 100644
index 0000000..d5ee032
--- /dev/null
+++ b/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-092d31.html
@@ -0,0 +1,2385 @@
+<!doctype html>
+<html>
+<head>
+<title>terminal-profile.c</title>
+
+<style type="text/css">
+body { color:#000000; background-color:#ffffff }
+body { font-family:Helvetica, sans-serif; font-size:10pt }
+h1 { font-size:14pt }
+.FileName { margin-top: 5px; margin-bottom: 5px; display: inline; }
+.FileNav { margin-left: 5px; margin-right: 5px; display: inline; }
+.FileNav a { text-decoration:none; font-size: larger; }
+.divider { margin-top: 30px; margin-bottom: 30px; height: 15px; }
+.divider { background-color: gray; }
+.code { border-collapse:collapse; width:100%; }
+.code { font-family: "Monospace", monospace; font-size:10pt }
+.code { line-height: 1.2em }
+.comment { color: green; font-style: oblique }
+.keyword { color: blue }
+.string_literal { color: red }
+.directive { color: darkmagenta }
+
+/* Macros and variables could have pop-up notes hidden by default.
+ - Macro pop-up: expansion of the macro
+ - Variable pop-up: value (table) of the variable */
+.macro_popup, .variable_popup { display: none; }
+
+/* Pop-up appears on mouse-hover event. */
+.macro:hover .macro_popup, .variable:hover .variable_popup {
+ display: block;
+ padding: 2px;
+ -webkit-border-radius:5px;
+ -webkit-box-shadow:1px 1px 7px #000;
+ border-radius:5px;
+ box-shadow:1px 1px 7px #000;
+ position: absolute;
+ top: -1em;
+ left:10em;
+ z-index: 1
+}
+
+.macro_popup {
+ border: 2px solid red;
+ background-color:#FFF0F0;
+ font-weight: normal;
+}
+
+.variable_popup {
+ border: 2px solid blue;
+ background-color:#F0F0FF;
+ font-weight: bold;
+ font-family: Helvetica, sans-serif;
+ font-size: 9pt;
+}
+
+/* Pop-up notes needs a relative position as a base where they pops up. */
+.macro, .variable {
+ background-color: PaleGoldenRod;
+ position: relative;
+}
+.macro { color: DarkMagenta; }
+
+#tooltiphint {
+ position: fixed;
+ width: 50em;
+ margin-left: -25em;
+ left: 50%;
+ padding: 10px;
+ border: 1px solid #b0b0b0;
+ border-radius: 2px;
+ box-shadow: 1px 1px 7px black;
+ background-color: #c0c0c0;
+ z-index: 2;
+}
+
+.num { width:2.5em; padding-right:2ex; background-color:#eeeeee }
+.num { text-align:right; font-size:8pt }
+.num { color:#444444 }
+.line { padding-left: 1ex; border-left: 3px solid #ccc }
+.line { white-space: pre }
+.msg { -webkit-box-shadow:1px 1px 7px #000 }
+.msg { box-shadow:1px 1px 7px #000 }
+.msg { -webkit-border-radius:5px }
+.msg { border-radius:5px }
+.msg { font-family:Helvetica, sans-serif; font-size:8pt }
+.msg { float:left }
+.msg { position:relative }
+.msg { padding:0.25em 1ex 0.25em 1ex }
+.msg { margin-top:10px; margin-bottom:10px }
+.msg { font-weight:bold }
+.msg { max-width:60em; word-wrap: break-word; white-space: pre-wrap }
+.msgT { padding:0x; spacing:0x }
+.msgEvent { background-color:#fff8b4; color:#000000 }
+.msgControl { background-color:#bbbbbb; color:#000000 }
+.msgNote { background-color:#ddeeff; color:#000000 }
+.mrange { background-color:#dfddf3 }
+.mrange { border-bottom:1px solid #6F9DBE }
+.PathIndex { font-weight: bold; padding:0px 5px; margin-right:5px; }
+.PathIndex { -webkit-border-radius:8px }
+.PathIndex { border-radius:8px }
+.PathIndexEvent { background-color:#bfba87 }
+.PathIndexControl { background-color:#8c8c8c }
+.PathIndexPopUp { background-color: #879abc; }
+.PathNav a { text-decoration:none; font-size: larger }
+.CodeInsertionHint { font-weight: bold; background-color: #10dd10 }
+.CodeRemovalHint { background-color:#de1010 }
+.CodeRemovalHint { border-bottom:1px solid #6F9DBE }
+.msg.selected{ background-color:orange !important; }
+
+table.simpletable {
+ padding: 5px;
+ font-size:12pt;
+ margin:20px;
+ border-collapse: collapse; border-spacing: 0px;
+}
+td.rowname {
+ text-align: right;
+ vertical-align: top;
+ font-weight: bold;
+ color:#444444;
+ padding-right:2ex;
+}
+
+/* Hidden text. */
+input.spoilerhider + label {
+ cursor: pointer;
+ text-decoration: underline;
+ display: block;
+}
+input.spoilerhider {
+ display: none;
+}
+input.spoilerhider ~ .spoiler {
+ overflow: hidden;
+ margin: 10px auto 0;
+ height: 0;
+ opacity: 0;
+}
+input.spoilerhider:checked + label + .spoiler{
+ height: auto;
+ opacity: 1;
+}
+</style>
+</head>
+<body>
+<!-- BUGDESC Casting a non-structure type to a structure type and accessing a field can lead to memory access errors or data corruption -->
+
+<!-- BUGTYPE Cast from non-struct type to struct type -->
+
+<!-- BUGCATEGORY Logic error -->
+
+<!-- BUGFILE /rootdir/src/terminal-profile.c -->
+
+<!-- FILENAME terminal-profile.c -->
+
+<!-- FUNCTIONNAME terminal_profile_gsettings_notify_cb -->
+
+<!-- ISSUEHASHCONTENTOFLINEINCONTEXT 092d310cd8f2f9c5934d4dcae3480c40 -->
+
+<!-- BUGLINE 607 -->
+
+<!-- BUGCOLUMN 46 -->
+
+<!-- BUGPATHLENGTH 1 -->
+
+<!-- BUGMETAEND -->
+<!-- REPORTHEADER -->
+<h3>Bug Summary</h3>
+<table class="simpletable">
+<tr><td class="rowname">File:</td><td>terminal-profile.c</td></tr>
+<tr><td class="rowname">Warning:</td><td><a href="#EndPath">line 607, column 46</a><br />Casting a non-structure type to a structure type and accessing a field can lead to memory access errors or data corruption</td></tr>
+
+</table>
+<!-- REPORTSUMMARYEXTRA -->
+<h3>Annotated Source Code</h3>
+<p>Press <a href="#" onclick="toggleHelp(); return false;">'?'</a>
+ to see keyboard shortcuts</p>
+<input type="checkbox" class="spoilerhider" id="showinvocation" />
+<label for="showinvocation" >Show analyzer invocation</label>
+<div class="spoiler">clang -cc1 -cc1 -triple x86_64-redhat-linux-gnu -analyze -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name terminal-profile.c -analyzer-checker=core -analyzer-checker=apiModeling -analyzer-checker=unix -analyzer-checker=deadcode -analyzer-checker=security.insecureAPI.UncheckedReturn -analyzer-checker=security.insecureAPI.getpw -analyzer-checker=security.insecureAPI.gets -analyzer-checker=security.insecureAPI.mktemp -analyzer-checker=security.insecureAPI.mkstemp -analyzer-checker=security.insecureAPI.vfork -analyzer-checker=nullability.NullPassedToNonnull -analyzer-checker=nullability.NullReturnedFromNonnull -analyzer-output plist -w -setup-static-analyzer -mrelocation-model static -mframe-pointer=all -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -tune-cpu generic -debugger-tuning=gdb -fcoverage-compilation-dir=/rootdir/src -resource-dir /usr/bin/../lib/clang/17 -D HAVE_CONFIG_H -I . -I .. -I ../src/mate-submodules/libegg -D TERMINAL_COMPILATION -D TERMINAL_RESOURCES_PATH_PREFIX="/org/mate/terminal" -D TERM_DATADIR="/usr/local/share" -D TERM_LOCALEDIR="/usr/local/share/locale" -D TERM_PKGDATADIR="/usr/local/share/mate-terminal" -D TERM_HELPDIR="/usr/local/share/help" -D SN_API_NOT_YET_FROZEN -D GDK_MULTIHEAD_SAFE -D G_DISABLE_SINGLE_INCLUDES -D PANGO_DISABLE_SINGLE_INCLUDES -D ATK_DISABLE_SINGLE_INCLUDES -D GDK_DISABLE_SINGLE_INCLUDES -D GDK_PIXBUF_DISABLE_SINGLE_INCLUDES -D GTK_DISABLE_SINGLE_INCLUDES -I /usr/include/dconf -I /usr/include/vte-2.91 -I /usr/include/pango-1.0 -I /usr/include/gtk-3.0 -I /usr/include/gdk-pixbuf-2.0 -I /usr/include/cairo -I /usr/include/dbus-1.0 -I /usr/lib64/dbus-1.0/include -I /usr/include/atk-1.0 -I /usr/include/harfbuzz -I /usr/include/freetype2 -I /usr/include/glib-2.0 -I /usr/lib64/glib-2.0/include -I /usr/include/cloudproviders -I /usr/include/at-spi2-atk/2.0 -I /usr/include/at-spi-2.0 -I /usr/include/blkid -I /usr/include/gio-unix-2.0 -I /usr/include/pixman-1 -I /usr/include/libmount -I /usr/include/libxml2 -I /usr/include/fribidi -I /usr/include/libpng16 -I /usr/include/sysprof-6 -internal-isystem /usr/bin/../lib/clang/17/include -internal-isystem /usr/local/include -internal-isystem /usr/bin/../lib/gcc/x86_64-redhat-linux/13/../../../../x86_64-redhat-linux/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -Wno-unused-parameter -fdebug-compilation-dir=/rootdir/src -ferror-limit 19 -fgnuc-version=4.2.1 -analyzer-checker deadcode.DeadStores -analyzer-checker alpha.deadcode.UnreachableCode -analyzer-checker alpha.core.CastSize -analyzer-checker alpha.core.CastToStruct -analyzer-checker alpha.core.IdenticalExpr -analyzer-checker alpha.core.SizeofPtr -analyzer-checker alpha.security.ArrayBoundV2 -analyzer-checker alpha.security.MallocOverflow -analyzer-checker alpha.security.ReturnPtrRange -analyzer-checker alpha.unix.SimpleStream -analyzer-checker alpha.unix.cstring.BufferOverlap -analyzer-checker alpha.unix.cstring.NotNullTerminated -analyzer-checker alpha.unix.cstring.OutOfBounds -analyzer-checker alpha.core.FixedAddr -analyzer-checker security.insecureAPI.strcpy -analyzer-output=html -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /rootdir/html-report/2024-02-18-131424-5067-1 -x c terminal-profile.c
+</div>
+<div id='tooltiphint' hidden="true">
+ <p>Keyboard shortcuts: </p>
+ <ul>
+ <li>Use 'j/k' keys for keyboard navigation</li>
+ <li>Use 'Shift+S' to show/hide relevant lines</li>
+ <li>Use '?' to toggle this window</li>
+ </ul>
+ <a href="#" onclick="toggleHelp(); return false;">Close</a>
+</div>
+<script type='text/javascript'>
+var relevant_lines = {"1": {"607": 1}};
+
+var filterCounterexample = function (hide) {
+ var tables = document.getElementsByClassName("code");
+ for (var t=0; t<tables.length; t++) {
+ var table = tables[t];
+ var file_id = table.getAttribute("data-fileid");
+ var lines_in_fid = relevant_lines[file_id];
+ if (!lines_in_fid) {
+ lines_in_fid = {};
+ }
+ var lines = table.getElementsByClassName("codeline");
+ for (var i=0; i<lines.length; i++) {
+ var el = lines[i];
+ var lineNo = el.getAttribute("data-linenumber");
+ if (!lines_in_fid[lineNo]) {
+ if (hide) {
+ el.setAttribute("hidden", "");
+ } else {
+ el.removeAttribute("hidden");
+ }
+ }
+ }
+ }
+}
+
+window.addEventListener("keydown", function (event) {
+ if (event.defaultPrevented) {
+ return;
+ }
+ // SHIFT + S
+ if (event.shiftKey && event.keyCode == 83) {
+ var checked = document.getElementsByName("showCounterexample")[0].checked;
+ filterCounterexample(!checked);
+ document.getElementsByName("showCounterexample")[0].click();
+ } else {
+ return;
+ }
+ event.preventDefault();
+}, true);
+
+document.addEventListener("DOMContentLoaded", function() {
+ document.querySelector('input[name="showCounterexample"]').onchange=
+ function (event) {
+ filterCounterexample(this.checked);
+ };
+});
+</script>
+
+<form>
+ <input type="checkbox" name="showCounterexample" id="showCounterexample" />
+ <label for="showCounterexample">
+ Show only relevant lines
+ </label>
+ <input type="checkbox" name="showArrows"
+ id="showArrows" style="margin-left: 10px" />
+ <label for="showArrows">
+ Show control flow arrows
+ </label>
+</form>
+
+<script type='text/javascript'>
+// Return range of numbers from a range [lower, upper).
+function range(lower, upper) {
+ var array = [];
+ for (var i = lower; i <= upper; ++i) {
+ array.push(i);
+ }
+ return array;
+}
+
+var getRelatedArrowIndices = function(pathId) {
+ // HTML numeration of events is a bit different than it is in the path.
+ // Everything is rotated one step to the right, so the last element
+ // (error diagnostic) has index 0.
+ if (pathId == 0) {
+ // arrowIndices has at least 2 elements
+ pathId = arrowIndices.length - 1;
+ }
+
+ return range(arrowIndices[pathId], arrowIndices[pathId - 1]);
+}
+
+var highlightArrowsForSelectedEvent = function() {
+ const selectedNum = findNum();
+ const arrowIndicesToHighlight = getRelatedArrowIndices(selectedNum);
+ arrowIndicesToHighlight.forEach((index) => {
+ var arrow = document.querySelector("#arrow" + index);
+ if(arrow) {
+ classListAdd(arrow, "selected")
+ }
+ });
+}
+
+var getAbsoluteBoundingRect = function(element) {
+ const relative = element.getBoundingClientRect();
+ return {
+ left: relative.left + window.pageXOffset,
+ right: relative.right + window.pageXOffset,
+ top: relative.top + window.pageYOffset,
+ bottom: relative.bottom + window.pageYOffset,
+ height: relative.height,
+ width: relative.width
+ };
+}
+
+var drawArrow = function(index) {
+ // This function is based on the great answer from SO:
+ // https://stackoverflow.com/a/39575674/11582326
+ var start = document.querySelector("#start" + index);
+ var end = document.querySelector("#end" + index);
+ var arrow = document.querySelector("#arrow" + index);
+
+ var startRect = getAbsoluteBoundingRect(start);
+ var endRect = getAbsoluteBoundingRect(end);
+
+ // It is an arrow from a token to itself, no need to visualize it.
+ if (startRect.top == endRect.top &&
+ startRect.left == endRect.left)
+ return;
+
+ // Each arrow is a very simple Bézier curve, with two nodes and
+ // two handles. So, we need to calculate four points in the window:
+ // * start node
+ var posStart = { x: 0, y: 0 };
+ // * end node
+ var posEnd = { x: 0, y: 0 };
+ // * handle for the start node
+ var startHandle = { x: 0, y: 0 };
+ // * handle for the end node
+ var endHandle = { x: 0, y: 0 };
+ // One can visualize it as follows:
+ //
+ // start handle
+ // /
+ // X"""_.-""""X
+ // .' \
+ // / start node
+ // |
+ // |
+ // | end node
+ // \ /
+ // `->X
+ // X-'
+ // \
+ // end handle
+ //
+ // NOTE: (0, 0) is the top left corner of the window.
+
+ // We have 3 similar, but still different scenarios to cover:
+ //
+ // 1. Two tokens on different lines.
+ // -xxx
+ // /
+ // \
+ // -> xxx
+ // In this situation, we draw arrow on the left curving to the left.
+ // 2. Two tokens on the same line, and the destination is on the right.
+ // ____
+ // / \
+ // / V
+ // xxx xxx
+ // In this situation, we draw arrow above curving upwards.
+ // 3. Two tokens on the same line, and the destination is on the left.
+ // xxx xxx
+ // ^ /
+ // \____/
+ // In this situation, we draw arrow below curving downwards.
+ const onDifferentLines = startRect.top <= endRect.top - 5 ||
+ startRect.top >= endRect.top + 5;
+ const leftToRight = startRect.left < endRect.left;
+
+ // NOTE: various magic constants are chosen empirically for
+ // better positioning and look
+ if (onDifferentLines) {
+ // Case #1
+ const topToBottom = startRect.top < endRect.top;
+ posStart.x = startRect.left - 1;
+ // We don't want to start it at the top left corner of the token,
+ // it doesn't feel like this is where the arrow comes from.
+ // For this reason, we start it in the middle of the left side
+ // of the token.
+ posStart.y = startRect.top + startRect.height / 2;
+
+ // End node has arrow head and we give it a bit more space.
+ posEnd.x = endRect.left - 4;
+ posEnd.y = endRect.top;
+
+ // Utility object with x and y offsets for handles.
+ var curvature = {
+ // We want bottom-to-top arrow to curve a bit more, so it doesn't
+ // overlap much with top-to-bottom curves (much more frequent).
+ x: topToBottom ? 15 : 25,
+ y: Math.min((posEnd.y - posStart.y) / 3, 10)
+ }
+
+ // When destination is on the different line, we can make a
+ // curvier arrow because we have space for it.
+ // So, instead of using
+ //
+ // startHandle.x = posStart.x - curvature.x
+ // endHandle.x = posEnd.x - curvature.x
+ //
+ // We use the leftmost of these two values for both handles.
+ startHandle.x = Math.min(posStart.x, posEnd.x) - curvature.x;
+ endHandle.x = startHandle.x;
+
+ // Curving downwards from the start node...
+ startHandle.y = posStart.y + curvature.y;
+ // ... and upwards from the end node.
+ endHandle.y = posEnd.y - curvature.y;
+
+ } else if (leftToRight) {
+ // Case #2
+ // Starting from the top right corner...
+ posStart.x = startRect.right - 1;
+ posStart.y = startRect.top;
+
+ // ...and ending at the top left corner of the end token.
+ posEnd.x = endRect.left + 1;
+ posEnd.y = endRect.top - 1;
+
+ // Utility object with x and y offsets for handles.
+ var curvature = {
+ x: Math.min((posEnd.x - posStart.x) / 3, 15),
+ y: 5
+ }
+
+ // Curving to the right...
+ startHandle.x = posStart.x + curvature.x;
+ // ... and upwards from the start node.
+ startHandle.y = posStart.y - curvature.y;
+
+ // And to the left...
+ endHandle.x = posEnd.x - curvature.x;
+ // ... and upwards from the end node.
+ endHandle.y = posEnd.y - curvature.y;
+
+ } else {
+ // Case #3
+ // Starting from the bottom right corner...
+ posStart.x = startRect.right;
+ posStart.y = startRect.bottom;
+
+ // ...and ending also at the bottom right corner, but of the end token.
+ posEnd.x = endRect.right - 1;
+ posEnd.y = endRect.bottom + 1;
+
+ // Utility object with x and y offsets for handles.
+ var curvature = {
+ x: Math.min((posStart.x - posEnd.x) / 3, 15),
+ y: 5
+ }
+
+ // Curving to the left...
+ startHandle.x = posStart.x - curvature.x;
+ // ... and downwards from the start node.
+ startHandle.y = posStart.y + curvature.y;
+
+ // And to the right...
+ endHandle.x = posEnd.x + curvature.x;
+ // ... and downwards from the end node.
+ endHandle.y = posEnd.y + curvature.y;
+ }
+
+ // Put it all together into a path.
+ // More information on the format:
+ // https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths
+ var pathStr = "M" + posStart.x + "," + posStart.y + " " +
+ "C" + startHandle.x + "," + startHandle.y + " " +
+ endHandle.x + "," + endHandle.y + " " +
+ posEnd.x + "," + posEnd.y;
+
+ arrow.setAttribute("d", pathStr);
+};
+
+var drawArrows = function() {
+ const numOfArrows = document.querySelectorAll("path[id^=arrow]").length;
+ for (var i = 0; i < numOfArrows; ++i) {
+ drawArrow(i);
+ }
+}
+
+var toggleArrows = function(event) {
+ const arrows = document.querySelector("#arrows");
+ if (event.target.checked) {
+ arrows.setAttribute("visibility", "visible");
+ } else {
+ arrows.setAttribute("visibility", "hidden");
+ }
+}
+
+window.addEventListener("resize", drawArrows);
+document.addEventListener("DOMContentLoaded", function() {
+ // Whenever we show invocation, locations change, i.e. we
+ // need to redraw arrows.
+ document
+ .querySelector('input[id="showinvocation"]')
+ .addEventListener("click", drawArrows);
+ // Hiding irrelevant lines also should cause arrow rerender.
+ document
+ .querySelector('input[name="showCounterexample"]')
+ .addEventListener("change", drawArrows);
+ document
+ .querySelector('input[name="showArrows"]')
+ .addEventListener("change", toggleArrows);
+ drawArrows();
+ // Default highlighting for the last event.
+ highlightArrowsForSelectedEvent();
+});
+</script>
+
+<script type='text/javascript'>
+var digitMatcher = new RegExp("[0-9]+");
+
+var querySelectorAllArray = function(selector) {
+ return Array.prototype.slice.call(
+ document.querySelectorAll(selector));
+}
+
+document.addEventListener("DOMContentLoaded", function() {
+ querySelectorAllArray(".PathNav > a").forEach(
+ function(currentValue, currentIndex) {
+ var hrefValue = currentValue.getAttribute("href");
+ currentValue.onclick = function() {
+ scrollTo(document.querySelector(hrefValue));
+ return false;
+ };
+ });
+});
+
+var findNum = function() {
+ var s = document.querySelector(".msg.selected");
+ if (!s || s.id == "EndPath") {
+ return 0;
+ }
+ var out = parseInt(digitMatcher.exec(s.id)[0]);
+ return out;
+};
+
+var classListAdd = function(el, theClass) {
+ if(!el.className.baseVal)
+ el.className += " " + theClass;
+ else
+ el.className.baseVal += " " + theClass;
+};
+
+var classListRemove = function(el, theClass) {
+ var className = (!el.className.baseVal) ?
+ el.className : el.className.baseVal;
+ className = className.replace(" " + theClass, "");
+ if(!el.className.baseVal)
+ el.className = className;
+ else
+ el.className.baseVal = className;
+};
+
+var scrollTo = function(el) {
+ querySelectorAllArray(".selected").forEach(function(s) {
+ classListRemove(s, "selected");
+ });
+ classListAdd(el, "selected");
+ window.scrollBy(0, el.getBoundingClientRect().top -
+ (window.innerHeight / 2));
+ highlightArrowsForSelectedEvent();
+};
+
+var move = function(num, up, numItems) {
+ if (num == 1 && up || num == numItems - 1 && !up) {
+ return 0;
+ } else if (num == 0 && up) {
+ return numItems - 1;
+ } else if (num == 0 && !up) {
+ return 1 % numItems;
+ }
+ return up ? num - 1 : num + 1;
+}
+
+var numToId = function(num) {
+ if (num == 0) {
+ return document.getElementById("EndPath")
+ }
+ return document.getElementById("Path" + num);
+};
+
+var navigateTo = function(up) {
+ var numItems = document.querySelectorAll(
+ ".line > .msgEvent, .line > .msgControl").length;
+ var currentSelected = findNum();
+ var newSelected = move(currentSelected, up, numItems);
+ var newEl = numToId(newSelected, numItems);
+
+ // Scroll element into center.
+ scrollTo(newEl);
+};
+
+window.addEventListener("keydown", function (event) {
+ if (event.defaultPrevented) {
+ return;
+ }
+ // key 'j'
+ if (event.keyCode == 74) {
+ navigateTo(/*up=*/false);
+ // key 'k'
+ } else if (event.keyCode == 75) {
+ navigateTo(/*up=*/true);
+ } else {
+ return;
+ }
+ event.preventDefault();
+}, true);
+</script>
+
+<script type='text/javascript'>
+
+var toggleHelp = function() {
+ var hint = document.querySelector("#tooltiphint");
+ var attributeName = "hidden";
+ if (hint.hasAttribute(attributeName)) {
+ hint.removeAttribute(attributeName);
+ } else {
+ hint.setAttribute("hidden", "true");
+ }
+};
+window.addEventListener("keydown", function (event) {
+ if (event.defaultPrevented) {
+ return;
+ }
+ if (event.key == "?") {
+ toggleHelp();
+ } else {
+ return;
+ }
+ event.preventDefault();
+});
+</script>
+
+<style type="text/css">
+ svg {
+ position:absolute;
+ top:0;
+ left:0;
+ height:100%;
+ width:100%;
+ pointer-events: none;
+ overflow: visible
+ }
+ .arrow {
+ stroke-opacity: 0.2;
+ stroke-width: 1;
+ marker-end: url(#arrowhead);
+ }
+
+ .arrow.selected {
+ stroke-opacity: 0.6;
+ stroke-width: 2;
+ marker-end: url(#arrowheadSelected);
+ }
+
+ .arrowhead {
+ orient: auto;
+ stroke: none;
+ opacity: 0.6;
+ fill: blue;
+ }
+</style>
+<svg xmlns="http://www.w3.org/2000/svg">
+ <defs>
+ <marker id="arrowheadSelected" class="arrowhead" opacity="0.6"
+ viewBox="0 0 10 10" refX="3" refY="5"
+ markerWidth="4" markerHeight="4">
+ <path d="M 0 0 L 10 5 L 0 10 z" />
+ </marker>
+ <marker id="arrowhead" class="arrowhead" opacity="0.2"
+ viewBox="0 0 10 10" refX="3" refY="5"
+ markerWidth="4" markerHeight="4">
+ <path d="M 0 0 L 10 5 L 0 10 z" />
+ </marker>
+ </defs>
+ <g id="arrows" fill="none" stroke="blue" visibility="hidden">
+
+ </g>
+</svg>
+<script type='text/javascript'>
+const arrowIndices = [ 0,0 ]
+</script>
+<table class="code" data-fileid="1">
+<tr class="codeline" data-linenumber="1"><td class="num" id="LN1">1</td><td class="line"><span class='comment'>/*</span></td></tr>
+<tr class="codeline" data-linenumber="2"><td class="num" id="LN2">2</td><td class="line"> <span class='comment'>* Copyright © 2001 Havoc Pennington</span></td></tr>
+<tr class="codeline" data-linenumber="3"><td class="num" id="LN3">3</td><td class="line"> <span class='comment'>* Copyright © 2002 Mathias Hasselmann</span></td></tr>
+<tr class="codeline" data-linenumber="4"><td class="num" id="LN4">4</td><td class="line"> <span class='comment'>* Copyright © 2008 Christian Persch</span></td></tr>
+<tr class="codeline" data-linenumber="5"><td class="num" id="LN5">5</td><td class="line"> <span class='comment'>* Copyright (C) 2012-2021 MATE Developers</span></td></tr>
+<tr class="codeline" data-linenumber="6"><td class="num" id="LN6">6</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="7"><td class="num" id="LN7">7</td><td class="line"> <span class='comment'>* Mate-terminal is free software; you can redistribute it and/or modify</span></td></tr>
+<tr class="codeline" data-linenumber="8"><td class="num" id="LN8">8</td><td class="line"> <span class='comment'>* it under the terms of the GNU General Public License as published by</span></td></tr>
+<tr class="codeline" data-linenumber="9"><td class="num" id="LN9">9</td><td class="line"> <span class='comment'>* the Free Software Foundation; either version 3 of the License, or</span></td></tr>
+<tr class="codeline" data-linenumber="10"><td class="num" id="LN10">10</td><td class="line"> <span class='comment'>* (at your option) any later version.</span></td></tr>
+<tr class="codeline" data-linenumber="11"><td class="num" id="LN11">11</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="12"><td class="num" id="LN12">12</td><td class="line"> <span class='comment'>* Mate-terminal is distributed in the hope that it will be useful,</span></td></tr>
+<tr class="codeline" data-linenumber="13"><td class="num" id="LN13">13</td><td class="line"> <span class='comment'>* but WITHOUT ANY WARRANTY; without even the implied warranty of</span></td></tr>
+<tr class="codeline" data-linenumber="14"><td class="num" id="LN14">14</td><td class="line"> <span class='comment'>* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></td></tr>
+<tr class="codeline" data-linenumber="15"><td class="num" id="LN15">15</td><td class="line"> <span class='comment'>* GNU General Public License for more details.</span></td></tr>
+<tr class="codeline" data-linenumber="16"><td class="num" id="LN16">16</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="17"><td class="num" id="LN17">17</td><td class="line"> <span class='comment'>* You should have received a copy of the GNU General Public License</span></td></tr>
+<tr class="codeline" data-linenumber="18"><td class="num" id="LN18">18</td><td class="line"> <span class='comment'>* along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.</span></td></tr>
+<tr class="codeline" data-linenumber="19"><td class="num" id="LN19">19</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="20"><td class="num" id="LN20">20</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="21"><td class="num" id="LN21">21</td><td class="line"><span class='directive'>#include &lt;config.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="22"><td class="num" id="LN22">22</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="23"><td class="num" id="LN23">23</td><td class="line"><span class='directive'>#include &lt;string.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="24"><td class="num" id="LN24">24</td><td class="line"><span class='directive'>#include &lt;stdlib.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="25"><td class="num" id="LN25">25</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="26"><td class="num" id="LN26">26</td><td class="line"><span class='directive'>#include &lt;gtk/gtk.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="27"><td class="num" id="LN27">27</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="28"><td class="num" id="LN28">28</td><td class="line"><span class='directive'>#include "terminal-app.h"</span></td></tr>
+<tr class="codeline" data-linenumber="29"><td class="num" id="LN29">29</td><td class="line"><span class='directive'>#include "terminal-debug.h"</span></td></tr>
+<tr class="codeline" data-linenumber="30"><td class="num" id="LN30">30</td><td class="line"><span class='directive'>#include "terminal-intl.h"</span></td></tr>
+<tr class="codeline" data-linenumber="31"><td class="num" id="LN31">31</td><td class="line"><span class='directive'>#include "terminal-profile.h"</span></td></tr>
+<tr class="codeline" data-linenumber="32"><td class="num" id="LN32">32</td><td class="line"><span class='directive'>#include "terminal-screen.h"</span></td></tr>
+<tr class="codeline" data-linenumber="33"><td class="num" id="LN33">33</td><td class="line"><span class='directive'>#include "terminal-type-builtins.h"</span></td></tr>
+<tr class="codeline" data-linenumber="34"><td class="num" id="LN34">34</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="35"><td class="num" id="LN35">35</td><td class="line"><span class='comment'>/* To add a new key, you need to:</span></td></tr>
+<tr class="codeline" data-linenumber="36"><td class="num" id="LN36">36</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="37"><td class="num" id="LN37">37</td><td class="line"> <span class='comment'>* - add an entry to the enum below</span></td></tr>
+<tr class="codeline" data-linenumber="38"><td class="num" id="LN38">38</td><td class="line"> <span class='comment'>* - add a #define with its name in terminal-profile.h</span></td></tr>
+<tr class="codeline" data-linenumber="39"><td class="num" id="LN39">39</td><td class="line"> <span class='comment'>* - add a gobject property for it in terminal_profile_class_init</span></td></tr>
+<tr class="codeline" data-linenumber="40"><td class="num" id="LN40">40</td><td class="line"> <span class='comment'>* - if the property's type needs special casing, add that to</span></td></tr>
+<tr class="codeline" data-linenumber="41"><td class="num" id="LN41">41</td><td class="line"> <span class='comment'>* terminal_profile_gsettings_notify_cb and</span></td></tr>
+<tr class="codeline" data-linenumber="42"><td class="num" id="LN42">42</td><td class="line"> <span class='comment'>* terminal_profile_gsettings_changeset_add</span></td></tr>
+<tr class="codeline" data-linenumber="43"><td class="num" id="LN43">43</td><td class="line"> <span class='comment'>* - if necessary the default value cannot be handled via the paramspec,</span></td></tr>
+<tr class="codeline" data-linenumber="44"><td class="num" id="LN44">44</td><td class="line"> <span class='comment'>* handle that in terminal_profile_reset_property_internal</span></td></tr>
+<tr class="codeline" data-linenumber="45"><td class="num" id="LN45">45</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="46"><td class="num" id="LN46">46</td><td class="line"><span class='keyword'>enum</span></td></tr>
+<tr class="codeline" data-linenumber="47"><td class="num" id="LN47">47</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="48"><td class="num" id="LN48">48</td><td class="line"> PROP_0,</td></tr>
+<tr class="codeline" data-linenumber="49"><td class="num" id="LN49">49</td><td class="line"> PROP_ALLOW_BOLD,</td></tr>
+<tr class="codeline" data-linenumber="50"><td class="num" id="LN50">50</td><td class="line"> PROP_BACKGROUND_COLOR,</td></tr>
+<tr class="codeline" data-linenumber="51"><td class="num" id="LN51">51</td><td class="line"> PROP_BACKGROUND_DARKNESS,</td></tr>
+<tr class="codeline" data-linenumber="52"><td class="num" id="LN52">52</td><td class="line"> PROP_BACKGROUND_IMAGE,</td></tr>
+<tr class="codeline" data-linenumber="53"><td class="num" id="LN53">53</td><td class="line"> PROP_BACKGROUND_IMAGE_FILE,</td></tr>
+<tr class="codeline" data-linenumber="54"><td class="num" id="LN54">54</td><td class="line"> PROP_BACKGROUND_TYPE,</td></tr>
+<tr class="codeline" data-linenumber="55"><td class="num" id="LN55">55</td><td class="line"> PROP_BACKSPACE_BINDING,</td></tr>
+<tr class="codeline" data-linenumber="56"><td class="num" id="LN56">56</td><td class="line"> PROP_BOLD_COLOR,</td></tr>
+<tr class="codeline" data-linenumber="57"><td class="num" id="LN57">57</td><td class="line"> PROP_BOLD_COLOR_SAME_AS_FG,</td></tr>
+<tr class="codeline" data-linenumber="58"><td class="num" id="LN58">58</td><td class="line"> PROP_CURSOR_BLINK_MODE,</td></tr>
+<tr class="codeline" data-linenumber="59"><td class="num" id="LN59">59</td><td class="line"> PROP_CURSOR_SHAPE,</td></tr>
+<tr class="codeline" data-linenumber="60"><td class="num" id="LN60">60</td><td class="line"> PROP_CUSTOM_COMMAND,</td></tr>
+<tr class="codeline" data-linenumber="61"><td class="num" id="LN61">61</td><td class="line"> PROP_DEFAULT_SIZE_COLUMNS,</td></tr>
+<tr class="codeline" data-linenumber="62"><td class="num" id="LN62">62</td><td class="line"> PROP_DEFAULT_SIZE_ROWS,</td></tr>
+<tr class="codeline" data-linenumber="63"><td class="num" id="LN63">63</td><td class="line"> PROP_DEFAULT_SHOW_MENUBAR,</td></tr>
+<tr class="codeline" data-linenumber="64"><td class="num" id="LN64">64</td><td class="line"> PROP_DELETE_BINDING,</td></tr>
+<tr class="codeline" data-linenumber="65"><td class="num" id="LN65">65</td><td class="line"> PROP_EXIT_ACTION,</td></tr>
+<tr class="codeline" data-linenumber="66"><td class="num" id="LN66">66</td><td class="line"> PROP_FONT,</td></tr>
+<tr class="codeline" data-linenumber="67"><td class="num" id="LN67">67</td><td class="line"> PROP_FOREGROUND_COLOR,</td></tr>
+<tr class="codeline" data-linenumber="68"><td class="num" id="LN68">68</td><td class="line"> PROP_LOGIN_SHELL,</td></tr>
+<tr class="codeline" data-linenumber="69"><td class="num" id="LN69">69</td><td class="line"> PROP_NAME,</td></tr>
+<tr class="codeline" data-linenumber="70"><td class="num" id="LN70">70</td><td class="line"> PROP_PALETTE,</td></tr>
+<tr class="codeline" data-linenumber="71"><td class="num" id="LN71">71</td><td class="line"> PROP_SCROLL_BACKGROUND,</td></tr>
+<tr class="codeline" data-linenumber="72"><td class="num" id="LN72">72</td><td class="line"> PROP_SCROLLBACK_LINES,</td></tr>
+<tr class="codeline" data-linenumber="73"><td class="num" id="LN73">73</td><td class="line"> PROP_SCROLLBACK_UNLIMITED,</td></tr>
+<tr class="codeline" data-linenumber="74"><td class="num" id="LN74">74</td><td class="line"> PROP_SCROLLBAR_POSITION,</td></tr>
+<tr class="codeline" data-linenumber="75"><td class="num" id="LN75">75</td><td class="line"> PROP_SCROLL_ON_KEYSTROKE,</td></tr>
+<tr class="codeline" data-linenumber="76"><td class="num" id="LN76">76</td><td class="line"> PROP_SCROLL_ON_OUTPUT,</td></tr>
+<tr class="codeline" data-linenumber="77"><td class="num" id="LN77">77</td><td class="line"> PROP_SILENT_BELL,</td></tr>
+<tr class="codeline" data-linenumber="78"><td class="num" id="LN78">78</td><td class="line"> PROP_TITLE,</td></tr>
+<tr class="codeline" data-linenumber="79"><td class="num" id="LN79">79</td><td class="line"> PROP_TITLE_MODE,</td></tr>
+<tr class="codeline" data-linenumber="80"><td class="num" id="LN80">80</td><td class="line"> PROP_USE_CUSTOM_COMMAND,</td></tr>
+<tr class="codeline" data-linenumber="81"><td class="num" id="LN81">81</td><td class="line"> PROP_USE_CUSTOM_DEFAULT_SIZE,</td></tr>
+<tr class="codeline" data-linenumber="82"><td class="num" id="LN82">82</td><td class="line"> PROP_USE_SKEY,</td></tr>
+<tr class="codeline" data-linenumber="83"><td class="num" id="LN83">83</td><td class="line"> PROP_USE_URLS,</td></tr>
+<tr class="codeline" data-linenumber="84"><td class="num" id="LN84">84</td><td class="line"> PROP_USE_SYSTEM_FONT,</td></tr>
+<tr class="codeline" data-linenumber="85"><td class="num" id="LN85">85</td><td class="line"> PROP_USE_THEME_COLORS,</td></tr>
+<tr class="codeline" data-linenumber="86"><td class="num" id="LN86">86</td><td class="line"> PROP_VISIBLE_NAME,</td></tr>
+<tr class="codeline" data-linenumber="87"><td class="num" id="LN87">87</td><td class="line"> PROP_WORD_CHARS,</td></tr>
+<tr class="codeline" data-linenumber="88"><td class="num" id="LN88">88</td><td class="line"> PROP_COPY_SELECTION,</td></tr>
+<tr class="codeline" data-linenumber="89"><td class="num" id="LN89">89</td><td class="line"> LAST_PROP</td></tr>
+<tr class="codeline" data-linenumber="90"><td class="num" id="LN90">90</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="91"><td class="num" id="LN91">91</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="92"><td class="num" id="LN92">92</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_ALLOW_BOLD<span class='macro_popup'>"allow-bold"</span></span> "allow-bold"</span></td></tr>
+<tr class="codeline" data-linenumber="93"><td class="num" id="LN93">93</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_BACKGROUND_COLOR<span class='macro_popup'>"background-color"</span></span> "background-color"</span></td></tr>
+<tr class="codeline" data-linenumber="94"><td class="num" id="LN94">94</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_BACKGROUND_DARKNESS<span class='macro_popup'>"background-darkness"</span></span> "background-darkness"</span></td></tr>
+<tr class="codeline" data-linenumber="95"><td class="num" id="LN95">95</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_BACKGROUND_IMAGE_FILE<span class='macro_popup'>"background-image"</span></span> "background-image"</span></td></tr>
+<tr class="codeline" data-linenumber="96"><td class="num" id="LN96">96</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_BACKGROUND_TYPE<span class='macro_popup'>"background-type"</span></span> "background-type"</span></td></tr>
+<tr class="codeline" data-linenumber="97"><td class="num" id="LN97">97</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_BACKSPACE_BINDING<span class='macro_popup'>"backspace-binding"</span></span> "backspace-binding"</span></td></tr>
+<tr class="codeline" data-linenumber="98"><td class="num" id="LN98">98</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_BOLD_COLOR<span class='macro_popup'>"bold-color"</span></span> "bold-color"</span></td></tr>
+<tr class="codeline" data-linenumber="99"><td class="num" id="LN99">99</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_BOLD_COLOR_SAME_AS_FG<span class='macro_popup'>"bold-color-same-as-fg"</span></span> "bold-color-same-as-fg"</span></td></tr>
+<tr class="codeline" data-linenumber="100"><td class="num" id="LN100">100</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_CURSOR_BLINK_MODE<span class='macro_popup'>"cursor-blink-mode"</span></span> "cursor-blink-mode"</span></td></tr>
+<tr class="codeline" data-linenumber="101"><td class="num" id="LN101">101</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_CURSOR_SHAPE<span class='macro_popup'>"cursor-shape"</span></span> "cursor-shape"</span></td></tr>
+<tr class="codeline" data-linenumber="102"><td class="num" id="LN102">102</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_CUSTOM_COMMAND<span class='macro_popup'>"custom-command"</span></span> "custom-command"</span></td></tr>
+<tr class="codeline" data-linenumber="103"><td class="num" id="LN103">103</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_DEFAULT_SHOW_MENUBAR<span class='macro_popup'>"default-show-menubar"</span></span> "default-show-menubar"</span></td></tr>
+<tr class="codeline" data-linenumber="104"><td class="num" id="LN104">104</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_DEFAULT_SIZE_COLUMNS<span class='macro_popup'>"default-size-columns"</span></span> "default-size-columns"</span></td></tr>
+<tr class="codeline" data-linenumber="105"><td class="num" id="LN105">105</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_DEFAULT_SIZE_ROWS<span class='macro_popup'>"default-size-rows"</span></span> "default-size-rows"</span></td></tr>
+<tr class="codeline" data-linenumber="106"><td class="num" id="LN106">106</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_DELETE_BINDING<span class='macro_popup'>"delete-binding"</span></span> "delete-binding"</span></td></tr>
+<tr class="codeline" data-linenumber="107"><td class="num" id="LN107">107</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_EXIT_ACTION<span class='macro_popup'>"exit-action"</span></span> "exit-action"</span></td></tr>
+<tr class="codeline" data-linenumber="108"><td class="num" id="LN108">108</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_FONT<span class='macro_popup'>"font"</span></span> "font"</span></td></tr>
+<tr class="codeline" data-linenumber="109"><td class="num" id="LN109">109</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_FOREGROUND_COLOR<span class='macro_popup'>"foreground-color"</span></span> "foreground-color"</span></td></tr>
+<tr class="codeline" data-linenumber="110"><td class="num" id="LN110">110</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_LOGIN_SHELL<span class='macro_popup'>"login-shell"</span></span> "login-shell"</span></td></tr>
+<tr class="codeline" data-linenumber="111"><td class="num" id="LN111">111</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_PALETTE<span class='macro_popup'>"palette"</span></span> "palette"</span></td></tr>
+<tr class="codeline" data-linenumber="112"><td class="num" id="LN112">112</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_SCROLL_BACKGROUND<span class='macro_popup'>"scroll-background"</span></span> "scroll-background"</span></td></tr>
+<tr class="codeline" data-linenumber="113"><td class="num" id="LN113">113</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_SCROLLBACK_LINES<span class='macro_popup'>"scrollback-lines"</span></span> "scrollback-lines"</span></td></tr>
+<tr class="codeline" data-linenumber="114"><td class="num" id="LN114">114</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_SCROLLBACK_UNLIMITED<span class='macro_popup'>"scrollback-unlimited"</span></span> "scrollback-unlimited"</span></td></tr>
+<tr class="codeline" data-linenumber="115"><td class="num" id="LN115">115</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_SCROLLBAR_POSITION<span class='macro_popup'>"scrollbar-position"</span></span> "scrollbar-position"</span></td></tr>
+<tr class="codeline" data-linenumber="116"><td class="num" id="LN116">116</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_SCROLL_ON_KEYSTROKE<span class='macro_popup'>"scroll-on-keystroke"</span></span> "scroll-on-keystroke"</span></td></tr>
+<tr class="codeline" data-linenumber="117"><td class="num" id="LN117">117</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_SCROLL_ON_OUTPUT<span class='macro_popup'>"scroll-on-output"</span></span> "scroll-on-output"</span></td></tr>
+<tr class="codeline" data-linenumber="118"><td class="num" id="LN118">118</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_SILENT_BELL<span class='macro_popup'>"silent-bell"</span></span> "silent-bell"</span></td></tr>
+<tr class="codeline" data-linenumber="119"><td class="num" id="LN119">119</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_COPY_SELECTION<span class='macro_popup'>"copy-selection"</span></span> "copy-selection"</span></td></tr>
+<tr class="codeline" data-linenumber="120"><td class="num" id="LN120">120</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_TITLE_MODE<span class='macro_popup'>"title-mode"</span></span> "title-mode"</span></td></tr>
+<tr class="codeline" data-linenumber="121"><td class="num" id="LN121">121</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_TITLE<span class='macro_popup'>"title"</span></span> "title"</span></td></tr>
+<tr class="codeline" data-linenumber="122"><td class="num" id="LN122">122</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_USE_CUSTOM_COMMAND<span class='macro_popup'>"use-custom-command"</span></span> "use-custom-command"</span></td></tr>
+<tr class="codeline" data-linenumber="123"><td class="num" id="LN123">123</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_USE_CUSTOM_DEFAULT_SIZE<span class='macro_popup'>"use-custom-default-size"</span></span> "use-custom-default-size"</span></td></tr>
+<tr class="codeline" data-linenumber="124"><td class="num" id="LN124">124</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_USE_SKEY<span class='macro_popup'>"use-skey"</span></span> "use-skey"</span></td></tr>
+<tr class="codeline" data-linenumber="125"><td class="num" id="LN125">125</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_USE_URLS<span class='macro_popup'>"use-urls"</span></span> "use-urls"</span></td></tr>
+<tr class="codeline" data-linenumber="126"><td class="num" id="LN126">126</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_USE_SYSTEM_FONT<span class='macro_popup'>"use-system-font"</span></span> "use-system-font"</span></td></tr>
+<tr class="codeline" data-linenumber="127"><td class="num" id="LN127">127</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_USE_THEME_COLORS<span class='macro_popup'>"use-theme-colors"</span></span> "use-theme-colors"</span></td></tr>
+<tr class="codeline" data-linenumber="128"><td class="num" id="LN128">128</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_VISIBLE_NAME<span class='macro_popup'>"visible-name"</span></span> "visible-name"</span></td></tr>
+<tr class="codeline" data-linenumber="129"><td class="num" id="LN129">129</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_WORD_CHARS<span class='macro_popup'>"word-chars"</span></span> "word-chars"</span></td></tr>
+<tr class="codeline" data-linenumber="130"><td class="num" id="LN130">130</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="131"><td class="num" id="LN131">131</td><td class="line"><span class='comment'>/* Keep these in sync with the GSettings schema! */</span></td></tr>
+<tr class="codeline" data-linenumber="132"><td class="num" id="LN132">132</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_ALLOW_BOLD<span class='macro_popup'>((!(0)))</span></span> (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="133"><td class="num" id="LN133">133</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_BACKGROUND_COLOR<span class='macro_popup'>("#FFFFDD")</span></span> ("#FFFFDD")</span></td></tr>
+<tr class="codeline" data-linenumber="134"><td class="num" id="LN134">134</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_BOLD_COLOR_SAME_AS_FG<span class='macro_popup'>((!(0)))</span></span> (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="135"><td class="num" id="LN135">135</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_BACKGROUND_DARKNESS<span class='macro_popup'>(0.5)</span></span> (0.5)</span></td></tr>
+<tr class="codeline" data-linenumber="136"><td class="num" id="LN136">136</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_BACKGROUND_IMAGE_FILE<span class='macro_popup'>("")</span></span> ("")</span></td></tr>
+<tr class="codeline" data-linenumber="137"><td class="num" id="LN137">137</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_BACKGROUND_TYPE<span class='macro_popup'>(TERMINAL_BACKGROUND_SOLID)</span></span> (TERMINAL_BACKGROUND_SOLID)</span></td></tr>
+<tr class="codeline" data-linenumber="138"><td class="num" id="LN138">138</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_BACKSPACE_BINDING<span class='macro_popup'>(VTE_ERASE_ASCII_DELETE)</span></span> (VTE_ERASE_ASCII_DELETE)</span></td></tr>
+<tr class="codeline" data-linenumber="139"><td class="num" id="LN139">139</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_CURSOR_BLINK_MODE<span class='macro_popup'>(VTE_CURSOR_BLINK_SYSTEM)</span></span> (VTE_CURSOR_BLINK_SYSTEM)</span></td></tr>
+<tr class="codeline" data-linenumber="140"><td class="num" id="LN140">140</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_CURSOR_SHAPE<span class='macro_popup'>(VTE_CURSOR_SHAPE_BLOCK)</span></span> (VTE_CURSOR_SHAPE_BLOCK)</span></td></tr>
+<tr class="codeline" data-linenumber="141"><td class="num" id="LN141">141</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_CUSTOM_COMMAND<span class='macro_popup'>("")</span></span> ("")</span></td></tr>
+<tr class="codeline" data-linenumber="142"><td class="num" id="LN142">142</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_DEFAULT_SHOW_MENUBAR<span class='macro_popup'>((!(0)))</span></span> (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="143"><td class="num" id="LN143">143</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_DEFAULT_SIZE_COLUMNS<span class='macro_popup'>(80)</span></span> (80)</span></td></tr>
+<tr class="codeline" data-linenumber="144"><td class="num" id="LN144">144</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_DEFAULT_SIZE_ROWS<span class='macro_popup'>(24)</span></span> (24)</span></td></tr>
+<tr class="codeline" data-linenumber="145"><td class="num" id="LN145">145</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_DELETE_BINDING<span class='macro_popup'>(VTE_ERASE_DELETE_SEQUENCE)</span></span> (VTE_ERASE_DELETE_SEQUENCE)</span></td></tr>
+<tr class="codeline" data-linenumber="146"><td class="num" id="LN146">146</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_EXIT_ACTION<span class='macro_popup'>(TERMINAL_EXIT_CLOSE)</span></span> (TERMINAL_EXIT_CLOSE)</span></td></tr>
+<tr class="codeline" data-linenumber="147"><td class="num" id="LN147">147</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_FONT<span class='macro_popup'>("Monospace 12")</span></span> ("Monospace 12")</span></td></tr>
+<tr class="codeline" data-linenumber="148"><td class="num" id="LN148">148</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_FOREGROUND_COLOR<span class='macro_popup'>("#000000")</span></span> ("#000000")</span></td></tr>
+<tr class="codeline" data-linenumber="149"><td class="num" id="LN149">149</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_LOGIN_SHELL<span class='macro_popup'>((0))</span></span> (<span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="150"><td class="num" id="LN150">150</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_NAME<span class='macro_popup'>(((void*)0))</span></span> (<span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="151"><td class="num" id="LN151">151</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_PALETTE<span class='macro_popup'>(terminal_palettes[0])</span></span> (terminal_palettes[<span class='macro'>TERMINAL_PALETTE_TANGO<span class='macro_popup'>0</span></span>])</span></td></tr>
+<tr class="codeline" data-linenumber="152"><td class="num" id="LN152">152</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_SCROLL_BACKGROUND<span class='macro_popup'>((!(0)))</span></span> (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="153"><td class="num" id="LN153">153</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_SCROLLBACK_LINES<span class='macro_popup'>(512)</span></span> (512)</span></td></tr>
+<tr class="codeline" data-linenumber="154"><td class="num" id="LN154">154</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_SCROLLBACK_UNLIMITED<span class='macro_popup'>((0))</span></span> (<span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="155"><td class="num" id="LN155">155</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_SCROLLBAR_POSITION<span class='macro_popup'>(TERMINAL_SCROLLBAR_RIGHT)</span></span> (TERMINAL_SCROLLBAR_RIGHT)</span></td></tr>
+<tr class="codeline" data-linenumber="156"><td class="num" id="LN156">156</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_SCROLL_ON_KEYSTROKE<span class='macro_popup'>((!(0)))</span></span> (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="157"><td class="num" id="LN157">157</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_SCROLL_ON_OUTPUT<span class='macro_popup'>((0))</span></span> (<span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="158"><td class="num" id="LN158">158</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_SILENT_BELL<span class='macro_popup'>((0))</span></span> (<span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="159"><td class="num" id="LN159">159</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_COPY_SELECTION<span class='macro_popup'>((0))</span></span> (<span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="160"><td class="num" id="LN160">160</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_TITLE_MODE<span class='macro_popup'>(TERMINAL_TITLE_REPLACE)</span></span> (TERMINAL_TITLE_REPLACE)</span></td></tr>
+<tr class="codeline" data-linenumber="161"><td class="num" id="LN161">161</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_TITLE<span class='macro_popup'>(("Terminal"))</span></span> (<span class='macro'>N_("Terminal")<span class='macro_popup'>("Terminal")</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="162"><td class="num" id="LN162">162</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_USE_CUSTOM_COMMAND<span class='macro_popup'>((0))</span></span> (<span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="163"><td class="num" id="LN163">163</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_USE_CUSTOM_DEFAULT_SIZE<span class='macro_popup'>((0))</span></span> (<span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="164"><td class="num" id="LN164">164</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_USE_SKEY<span class='macro_popup'>((!(0)))</span></span> (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="165"><td class="num" id="LN165">165</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_USE_URLS<span class='macro_popup'>((!(0)))</span></span> (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="166"><td class="num" id="LN166">166</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_USE_SYSTEM_FONT<span class='macro_popup'>((!(0)))</span></span> (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="167"><td class="num" id="LN167">167</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_USE_THEME_COLORS<span class='macro_popup'>((!(0)))</span></span> (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="168"><td class="num" id="LN168">168</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_VISIBLE_NAME<span class='macro_popup'>(("Unnamed"))</span></span> (<span class='macro'>N_("Unnamed")<span class='macro_popup'>("Unnamed")</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="169"><td class="num" id="LN169">169</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_WORD_CHARS<span class='macro_popup'>("-A-Za-z0-9,./?%&amp;#:_=+@~")</span></span> ("-A-Za-z0-9,./?%&amp;#:_=+@~")</span></td></tr>
+<tr class="codeline" data-linenumber="170"><td class="num" id="LN170">170</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="171"><td class="num" id="LN171">171</td><td class="line"><span class='keyword'>struct</span> _TerminalProfilePrivate</td></tr>
+<tr class="codeline" data-linenumber="172"><td class="num" id="LN172">172</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="173"><td class="num" id="LN173">173</td><td class="line"> GValueArray *properties;</td></tr>
+<tr class="codeline" data-linenumber="174"><td class="num" id="LN174">174</td><td class="line"> gboolean *locked;</td></tr>
+<tr class="codeline" data-linenumber="175"><td class="num" id="LN175">175</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="176"><td class="num" id="LN176">176</td><td class="line"> GSettings *settings;</td></tr>
+<tr class="codeline" data-linenumber="177"><td class="num" id="LN177">177</td><td class="line"> <span class='keyword'>char</span> *profile_dir;</td></tr>
+<tr class="codeline" data-linenumber="178"><td class="num" id="LN178">178</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="179"><td class="num" id="LN179">179</td><td class="line"> GSList *dirty_pspecs;</td></tr>
+<tr class="codeline" data-linenumber="180"><td class="num" id="LN180">180</td><td class="line"> guint save_idle_id;</td></tr>
+<tr class="codeline" data-linenumber="181"><td class="num" id="LN181">181</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="182"><td class="num" id="LN182">182</td><td class="line"> GParamSpec *gsettings_notification_pspec;</td></tr>
+<tr class="codeline" data-linenumber="183"><td class="num" id="LN183">183</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="184"><td class="num" id="LN184">184</td><td class="line"> gboolean background_load_failed;</td></tr>
+<tr class="codeline" data-linenumber="185"><td class="num" id="LN185">185</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="186"><td class="num" id="LN186">186</td><td class="line"> guint forgotten : 1;</td></tr>
+<tr class="codeline" data-linenumber="187"><td class="num" id="LN187">187</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="188"><td class="num" id="LN188">188</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="189"><td class="num" id="LN189">189</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>const</span> GdkRGBA terminal_palettes[<span class='macro'>TERMINAL_PALETTE_N_BUILTINS<span class='macro_popup'>5</span></span>][<span class='macro'>TERMINAL_PALETTE_SIZE<span class='macro_popup'>16</span></span>] =</td></tr>
+<tr class="codeline" data-linenumber="190"><td class="num" id="LN190">190</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="191"><td class="num" id="LN191">191</td><td class="line"> <span class='comment'>/* Tango palette */</span></td></tr>
+<tr class="codeline" data-linenumber="192"><td class="num" id="LN192">192</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="193"><td class="num" id="LN193">193</td><td class="line"> { 0, 0, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="194"><td class="num" id="LN194">194</td><td class="line"> { 0.8, 0, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="195"><td class="num" id="LN195">195</td><td class="line"> { 0.305882, 0.603922, 0.0235294, 1 },</td></tr>
+<tr class="codeline" data-linenumber="196"><td class="num" id="LN196">196</td><td class="line"> { 0.768627, 0.627451, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="197"><td class="num" id="LN197">197</td><td class="line"> { 0.203922, 0.396078, 0.643137, 1 },</td></tr>
+<tr class="codeline" data-linenumber="198"><td class="num" id="LN198">198</td><td class="line"> { 0.458824, 0.313725, 0.482353, 1 },</td></tr>
+<tr class="codeline" data-linenumber="199"><td class="num" id="LN199">199</td><td class="line"> { 0.0235294, 0.596078, 0.603922, 1 },</td></tr>
+<tr class="codeline" data-linenumber="200"><td class="num" id="LN200">200</td><td class="line"> { 0.827451, 0.843137, 0.811765, 1 },</td></tr>
+<tr class="codeline" data-linenumber="201"><td class="num" id="LN201">201</td><td class="line"> { 0.333333, 0.341176, 0.32549, 1 },</td></tr>
+<tr class="codeline" data-linenumber="202"><td class="num" id="LN202">202</td><td class="line"> { 0.937255, 0.160784, 0.160784, 1 },</td></tr>
+<tr class="codeline" data-linenumber="203"><td class="num" id="LN203">203</td><td class="line"> { 0.541176, 0.886275, 0.203922, 1 },</td></tr>
+<tr class="codeline" data-linenumber="204"><td class="num" id="LN204">204</td><td class="line"> { 0.988235, 0.913725, 0.309804, 1 },</td></tr>
+<tr class="codeline" data-linenumber="205"><td class="num" id="LN205">205</td><td class="line"> { 0.447059, 0.623529, 0.811765, 1 },</td></tr>
+<tr class="codeline" data-linenumber="206"><td class="num" id="LN206">206</td><td class="line"> { 0.678431, 0.498039, 0.658824, 1 },</td></tr>
+<tr class="codeline" data-linenumber="207"><td class="num" id="LN207">207</td><td class="line"> { 0.203922, 0.886275, 0.886275, 1 },</td></tr>
+<tr class="codeline" data-linenumber="208"><td class="num" id="LN208">208</td><td class="line"> { 0.933333, 0.933333, 0.92549, 1 },</td></tr>
+<tr class="codeline" data-linenumber="209"><td class="num" id="LN209">209</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="210"><td class="num" id="LN210">210</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="211"><td class="num" id="LN211">211</td><td class="line"> <span class='comment'>/* Linux palette */</span></td></tr>
+<tr class="codeline" data-linenumber="212"><td class="num" id="LN212">212</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="213"><td class="num" id="LN213">213</td><td class="line"> { 0, 0, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="214"><td class="num" id="LN214">214</td><td class="line"> { 0.666667, 0, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="215"><td class="num" id="LN215">215</td><td class="line"> { 0, 0.666667, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="216"><td class="num" id="LN216">216</td><td class="line"> { 0.666667, 0.333333, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="217"><td class="num" id="LN217">217</td><td class="line"> { 0, 0, 0.666667, 1 },</td></tr>
+<tr class="codeline" data-linenumber="218"><td class="num" id="LN218">218</td><td class="line"> { 0.666667, 0, 0.666667, 1 },</td></tr>
+<tr class="codeline" data-linenumber="219"><td class="num" id="LN219">219</td><td class="line"> { 0, 0.666667, 0.666667, 1 },</td></tr>
+<tr class="codeline" data-linenumber="220"><td class="num" id="LN220">220</td><td class="line"> { 0.666667, 0.666667, 0.666667, 1 },</td></tr>
+<tr class="codeline" data-linenumber="221"><td class="num" id="LN221">221</td><td class="line"> { 0.333333, 0.333333, 0.333333, 1 },</td></tr>
+<tr class="codeline" data-linenumber="222"><td class="num" id="LN222">222</td><td class="line"> { 1, 0.333333, 0.333333, 1 },</td></tr>
+<tr class="codeline" data-linenumber="223"><td class="num" id="LN223">223</td><td class="line"> { 0.333333, 1, 0.333333, 1 },</td></tr>
+<tr class="codeline" data-linenumber="224"><td class="num" id="LN224">224</td><td class="line"> { 1, 1, 0.333333, 1 },</td></tr>
+<tr class="codeline" data-linenumber="225"><td class="num" id="LN225">225</td><td class="line"> { 0.333333, 0.333333, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="226"><td class="num" id="LN226">226</td><td class="line"> { 1, 0.333333, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="227"><td class="num" id="LN227">227</td><td class="line"> { 0.333333, 1, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="228"><td class="num" id="LN228">228</td><td class="line"> { 1, 1, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="229"><td class="num" id="LN229">229</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="230"><td class="num" id="LN230">230</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="231"><td class="num" id="LN231">231</td><td class="line"> <span class='comment'>/* XTerm palette */</span></td></tr>
+<tr class="codeline" data-linenumber="232"><td class="num" id="LN232">232</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="233"><td class="num" id="LN233">233</td><td class="line"> { 0, 0, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="234"><td class="num" id="LN234">234</td><td class="line"> { 0.803922, 0, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="235"><td class="num" id="LN235">235</td><td class="line"> { 0, 0.803922, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="236"><td class="num" id="LN236">236</td><td class="line"> { 0.803922, 0.803922, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="237"><td class="num" id="LN237">237</td><td class="line"> { 0.117647, 0.564706, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="238"><td class="num" id="LN238">238</td><td class="line"> { 0.803922, 0, 0.803922, 1 },</td></tr>
+<tr class="codeline" data-linenumber="239"><td class="num" id="LN239">239</td><td class="line"> { 0, 0.803922, 0.803922, 1 },</td></tr>
+<tr class="codeline" data-linenumber="240"><td class="num" id="LN240">240</td><td class="line"> { 0.898039, 0.898039, 0.898039, 1 },</td></tr>
+<tr class="codeline" data-linenumber="241"><td class="num" id="LN241">241</td><td class="line"> { 0.298039, 0.298039, 0.298039, 1 },</td></tr>
+<tr class="codeline" data-linenumber="242"><td class="num" id="LN242">242</td><td class="line"> { 1, 0, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="243"><td class="num" id="LN243">243</td><td class="line"> { 0, 1, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="244"><td class="num" id="LN244">244</td><td class="line"> { 1, 1, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="245"><td class="num" id="LN245">245</td><td class="line"> { 0.27451, 0.509804, 0.705882, 1 },</td></tr>
+<tr class="codeline" data-linenumber="246"><td class="num" id="LN246">246</td><td class="line"> { 1, 0, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="247"><td class="num" id="LN247">247</td><td class="line"> { 0, 1, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="248"><td class="num" id="LN248">248</td><td class="line"> { 1, 1, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="249"><td class="num" id="LN249">249</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="250"><td class="num" id="LN250">250</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="251"><td class="num" id="LN251">251</td><td class="line"> <span class='comment'>/* RXVT palette */</span></td></tr>
+<tr class="codeline" data-linenumber="252"><td class="num" id="LN252">252</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="253"><td class="num" id="LN253">253</td><td class="line"> { 0, 0, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="254"><td class="num" id="LN254">254</td><td class="line"> { 0.803922, 0, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="255"><td class="num" id="LN255">255</td><td class="line"> { 0, 0.803922, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="256"><td class="num" id="LN256">256</td><td class="line"> { 0.803922, 0.803922, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="257"><td class="num" id="LN257">257</td><td class="line"> { 0, 0, 0.803922, 1 },</td></tr>
+<tr class="codeline" data-linenumber="258"><td class="num" id="LN258">258</td><td class="line"> { 0.803922, 0, 0.803922, 1 },</td></tr>
+<tr class="codeline" data-linenumber="259"><td class="num" id="LN259">259</td><td class="line"> { 0, 0.803922, 0.803922, 1 },</td></tr>
+<tr class="codeline" data-linenumber="260"><td class="num" id="LN260">260</td><td class="line"> { 0.980392, 0.921569, 0.843137, 1 },</td></tr>
+<tr class="codeline" data-linenumber="261"><td class="num" id="LN261">261</td><td class="line"> { 0.25098, 0.25098, 0.25098, 1 },</td></tr>
+<tr class="codeline" data-linenumber="262"><td class="num" id="LN262">262</td><td class="line"> { 1, 0, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="263"><td class="num" id="LN263">263</td><td class="line"> { 0, 1, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="264"><td class="num" id="LN264">264</td><td class="line"> { 1, 1, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="265"><td class="num" id="LN265">265</td><td class="line"> { 0, 0, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="266"><td class="num" id="LN266">266</td><td class="line"> { 1, 0, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="267"><td class="num" id="LN267">267</td><td class="line"> { 0, 1, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="268"><td class="num" id="LN268">268</td><td class="line"> { 1, 1, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="269"><td class="num" id="LN269">269</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="270"><td class="num" id="LN270">270</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="271"><td class="num" id="LN271">271</td><td class="line"> <span class='comment'>/* Solarized palette (1.0.0beta2): http://ethanschoonover.com/solarized */</span></td></tr>
+<tr class="codeline" data-linenumber="272"><td class="num" id="LN272">272</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="273"><td class="num" id="LN273">273</td><td class="line"> { 0.02745, 0.211764, 0.258823, 1 },</td></tr>
+<tr class="codeline" data-linenumber="274"><td class="num" id="LN274">274</td><td class="line"> { 0.862745, 0.196078, 0.184313, 1 },</td></tr>
+<tr class="codeline" data-linenumber="275"><td class="num" id="LN275">275</td><td class="line"> { 0.521568, 0.6, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="276"><td class="num" id="LN276">276</td><td class="line"> { 0.709803, 0.537254, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="277"><td class="num" id="LN277">277</td><td class="line"> { 0.149019, 0.545098, 0.823529, 1 },</td></tr>
+<tr class="codeline" data-linenumber="278"><td class="num" id="LN278">278</td><td class="line"> { 0.82745, 0.211764, 0.509803, 1 },</td></tr>
+<tr class="codeline" data-linenumber="279"><td class="num" id="LN279">279</td><td class="line"> { 0.164705, 0.631372, 0.596078, 1 },</td></tr>
+<tr class="codeline" data-linenumber="280"><td class="num" id="LN280">280</td><td class="line"> { 0.933333, 0.909803, 0.835294, 1 },</td></tr>
+<tr class="codeline" data-linenumber="281"><td class="num" id="LN281">281</td><td class="line"> { 0, 0.168627, 0.211764, 1 },</td></tr>
+<tr class="codeline" data-linenumber="282"><td class="num" id="LN282">282</td><td class="line"> { 0.796078, 0.294117, 0.086274, 1 },</td></tr>
+<tr class="codeline" data-linenumber="283"><td class="num" id="LN283">283</td><td class="line"> { 0.345098, 0.431372, 0.458823, 1 },</td></tr>
+<tr class="codeline" data-linenumber="284"><td class="num" id="LN284">284</td><td class="line"> { 0.396078, 0.482352, 0.513725, 1 },</td></tr>
+<tr class="codeline" data-linenumber="285"><td class="num" id="LN285">285</td><td class="line"> { 0.513725, 0.580392, 0.588235, 1 },</td></tr>
+<tr class="codeline" data-linenumber="286"><td class="num" id="LN286">286</td><td class="line"> { 0.423529, 0.443137, 0.768627, 1 },</td></tr>
+<tr class="codeline" data-linenumber="287"><td class="num" id="LN287">287</td><td class="line"> { 0.57647, 0.631372, 0.631372, 1 },</td></tr>
+<tr class="codeline" data-linenumber="288"><td class="num" id="LN288">288</td><td class="line"> { 0.992156, 0.964705, 0.890196, 1 },</td></tr>
+<tr class="codeline" data-linenumber="289"><td class="num" id="LN289">289</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="290"><td class="num" id="LN290">290</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="291"><td class="num" id="LN291">291</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="292"><td class="num" id="LN292">292</td><td class="line"><span class='keyword'>enum</span></td></tr>
+<tr class="codeline" data-linenumber="293"><td class="num" id="LN293">293</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="294"><td class="num" id="LN294">294</td><td class="line"> FORGOTTEN,</td></tr>
+<tr class="codeline" data-linenumber="295"><td class="num" id="LN295">295</td><td class="line"> LAST_SIGNAL</td></tr>
+<tr class="codeline" data-linenumber="296"><td class="num" id="LN296">296</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="297"><td class="num" id="LN297">297</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="298"><td class="num" id="LN298">298</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> terminal_profile_finalize (GObject *object);</td></tr>
+<tr class="codeline" data-linenumber="299"><td class="num" id="LN299">299</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> terminal_profile_set_property (GObject *object,</td></tr>
+<tr class="codeline" data-linenumber="300"><td class="num" id="LN300">300</td><td class="line"> guint prop_id,</td></tr>
+<tr class="codeline" data-linenumber="301"><td class="num" id="LN301">301</td><td class="line"> <span class='keyword'>const</span> GValue *value,</td></tr>
+<tr class="codeline" data-linenumber="302"><td class="num" id="LN302">302</td><td class="line"> GParamSpec *pspec);</td></tr>
+<tr class="codeline" data-linenumber="303"><td class="num" id="LN303">303</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> ensure_pixbuf_property (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="304"><td class="num" id="LN304">304</td><td class="line"> guint path_prop_id,</td></tr>
+<tr class="codeline" data-linenumber="305"><td class="num" id="LN305">305</td><td class="line"> guint pixbuf_prop_id,</td></tr>
+<tr class="codeline" data-linenumber="306"><td class="num" id="LN306">306</td><td class="line"> gboolean *load_failed);</td></tr>
+<tr class="codeline" data-linenumber="307"><td class="num" id="LN307">307</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="308"><td class="num" id="LN308">308</td><td class="line"><span class='keyword'>static</span> guint signals[LAST_SIGNAL] = { 0 };</td></tr>
+<tr class="codeline" data-linenumber="309"><td class="num" id="LN309">309</td><td class="line"><span class='keyword'>static</span> GQuark gsettings_key_quark;</td></tr>
+<tr class="codeline" data-linenumber="310"><td class="num" id="LN310">310</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="311"><td class="num" id="LN311">311</td><td class="line"><span class='macro'>G_DEFINE_TYPE_WITH_PRIVATE (TerminalProfile, terminal_profile, G_TYPE_OBJECT)<span class='macro_popup'>static void terminal_profile_init (TerminalProfile *self); static<br> void terminal_profile_class_init (TerminalProfileClass *klass<br>); static GType terminal_profile_get_type_once (void); static<br> gpointer terminal_profile_parent_class = ((void*)0); static gint<br> TerminalProfile_private_offset; static void terminal_profile_class_intern_init<br> (gpointer klass) { terminal_profile_parent_class = g_type_class_peek_parent<br> (klass); if (TerminalProfile_private_offset != 0) g_type_class_adjust_private_offset<br> (klass, &amp;TerminalProfile_private_offset); terminal_profile_class_init<br> ((TerminalProfileClass*) klass); } __attribute__ ((__unused__<br>)) static inline gpointer terminal_profile_get_instance_private<br> (TerminalProfile *self) { return (((gpointer) ((guint8*) (self<br>) + (glong) (TerminalProfile_private_offset)))); } GType terminal_profile_get_type<br> (void) { static gsize static_g_define_type_id = 0; if ((__extension__<br> ({ _Static_assert (sizeof *(&amp;static_g_define_type_id) ==<br> sizeof (gpointer), "Expression evaluates to false"); (void) (<br>0 ? (gpointer) *(&amp;static_g_define_type_id) : ((void*)0));<br> (!(__extension__ ({ _Static_assert (sizeof *(&amp;static_g_define_type_id<br>) == sizeof (gpointer), "Expression evaluates to false"); __typeof__<br> (*(&amp;static_g_define_type_id)) gapg_temp_newval; __typeof__<br> ((&amp;static_g_define_type_id)) gapg_temp_atomic = (&amp;static_g_define_type_id<br>); __atomic_load (gapg_temp_atomic, &amp;gapg_temp_newval, 5)<br>; gapg_temp_newval; })) &amp;&amp; g_once_init_enter (&amp;static_g_define_type_id<br>)); }))) { GType g_define_type_id = terminal_profile_get_type_once<br> (); (__extension__ ({ _Static_assert (sizeof *(&amp;static_g_define_type_id<br>) == sizeof (gpointer), "Expression evaluates to false"); 0 ?<br> (void) (*(&amp;static_g_define_type_id) = (g_define_type_id)<br>) : (void) 0; g_once_init_leave ((&amp;static_g_define_type_id<br>), (gsize) (g_define_type_id)); })); } return static_g_define_type_id<br>; } __attribute__ ((__noinline__)) static GType terminal_profile_get_type_once<br> (void) { GType g_define_type_id = g_type_register_static_simple<br> (((GType) ((20) &lt;&lt; (2))), g_intern_static_string ("TerminalProfile"<br>), sizeof (TerminalProfileClass), (GClassInitFunc)(void (*)(void<br>)) terminal_profile_class_intern_init, sizeof (TerminalProfile<br>), (GInstanceInitFunc)(void (*)(void)) terminal_profile_init,<br> (GTypeFlags) 0); { {{ TerminalProfile_private_offset = g_type_add_instance_private<br> (g_define_type_id, sizeof (TerminalProfilePrivate)); };} } return<br> g_define_type_id; }</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="312"><td class="num" id="LN312">312</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="313"><td class="num" id="LN313">313</td><td class="line"><span class='comment'>/* gdk_rgba_equal is too strict! */</span></td></tr>
+<tr class="codeline" data-linenumber="314"><td class="num" id="LN314">314</td><td class="line"><span class='keyword'>static</span> gboolean</td></tr>
+<tr class="codeline" data-linenumber="315"><td class="num" id="LN315">315</td><td class="line">rgba_equal (<span class='keyword'>const</span> GdkRGBA *a,</td></tr>
+<tr class="codeline" data-linenumber="316"><td class="num" id="LN316">316</td><td class="line"> <span class='keyword'>const</span> GdkRGBA *b)</td></tr>
+<tr class="codeline" data-linenumber="317"><td class="num" id="LN317">317</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="318"><td class="num" id="LN318">318</td><td class="line"> gdouble dr, dg, db, da;</td></tr>
+<tr class="codeline" data-linenumber="319"><td class="num" id="LN319">319</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="320"><td class="num" id="LN320">320</td><td class="line"> dr = a-&gt;red - b-&gt;red;</td></tr>
+<tr class="codeline" data-linenumber="321"><td class="num" id="LN321">321</td><td class="line"> dg = a-&gt;green - b-&gt;green;</td></tr>
+<tr class="codeline" data-linenumber="322"><td class="num" id="LN322">322</td><td class="line"> db = a-&gt;blue - b-&gt;blue;</td></tr>
+<tr class="codeline" data-linenumber="323"><td class="num" id="LN323">323</td><td class="line"> da = a-&gt;alpha - b-&gt;alpha;</td></tr>
+<tr class="codeline" data-linenumber="324"><td class="num" id="LN324">324</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="325"><td class="num" id="LN325">325</td><td class="line"> <span class='keyword'>return</span> (dr * dr + dg * dg + db * db + da * da) &lt; 1e-4;</td></tr>
+<tr class="codeline" data-linenumber="326"><td class="num" id="LN326">326</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="327"><td class="num" id="LN327">327</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="328"><td class="num" id="LN328">328</td><td class="line"><span class='keyword'>static</span> gboolean</td></tr>
+<tr class="codeline" data-linenumber="329"><td class="num" id="LN329">329</td><td class="line">palette_cmp (<span class='keyword'>const</span> GdkRGBA *ca,</td></tr>
+<tr class="codeline" data-linenumber="330"><td class="num" id="LN330">330</td><td class="line"> <span class='keyword'>const</span> GdkRGBA *cb)</td></tr>
+<tr class="codeline" data-linenumber="331"><td class="num" id="LN331">331</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="332"><td class="num" id="LN332">332</td><td class="line"> guint i;</td></tr>
+<tr class="codeline" data-linenumber="333"><td class="num" id="LN333">333</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="334"><td class="num" id="LN334">334</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; <span class='macro'>TERMINAL_PALETTE_SIZE<span class='macro_popup'>16</span></span>; ++i)</td></tr>
+<tr class="codeline" data-linenumber="335"><td class="num" id="LN335">335</td><td class="line"> <span class='keyword'>if</span> (!rgba_equal (&amp;ca[i], &amp;cb[i]))</td></tr>
+<tr class="codeline" data-linenumber="336"><td class="num" id="LN336">336</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="337"><td class="num" id="LN337">337</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="338"><td class="num" id="LN338">338</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="339"><td class="num" id="LN339">339</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="340"><td class="num" id="LN340">340</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="341"><td class="num" id="LN341">341</td><td class="line"><span class='keyword'>static</span> GParamSpec *</td></tr>
+<tr class="codeline" data-linenumber="342"><td class="num" id="LN342">342</td><td class="line">get_pspec_from_name (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="343"><td class="num" id="LN343">343</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="344"><td class="num" id="LN344">344</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="345"><td class="num" id="LN345">345</td><td class="line"> TerminalProfileClass *klass = <span class='macro'>TERMINAL_PROFILE_GET_CLASS (profile)<span class='macro_popup'>((((TerminalProfileClass*) (((GTypeInstance*) ((profile)))-&gt;<br>g_class))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="346"><td class="num" id="LN346">346</td><td class="line"> GParamSpec *pspec;</td></tr>
+<tr class="codeline" data-linenumber="347"><td class="num" id="LN347">347</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="348"><td class="num" id="LN348">348</td><td class="line"> pspec = g_object_class_find_property (<span class='macro'>G_OBJECT_CLASS (klass)<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((klass)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="349"><td class="num" id="LN349">349</td><td class="line"> <span class='keyword'>if</span> (pspec &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="350"><td class="num" id="LN350">350</td><td class="line"> pspec-&gt;owner_type != <span class='macro'>TERMINAL_TYPE_PROFILE<span class='macro_popup'>(terminal_profile_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="351"><td class="num" id="LN351">351</td><td class="line"> pspec = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="352"><td class="num" id="LN352">352</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="353"><td class="num" id="LN353">353</td><td class="line"> <span class='keyword'>return</span> pspec;</td></tr>
+<tr class="codeline" data-linenumber="354"><td class="num" id="LN354">354</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="355"><td class="num" id="LN355">355</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="356"><td class="num" id="LN356">356</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>const</span> GValue *</td></tr>
+<tr class="codeline" data-linenumber="357"><td class="num" id="LN357">357</td><td class="line">get_prop_value_from_prop_name (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="358"><td class="num" id="LN358">358</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="359"><td class="num" id="LN359">359</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="360"><td class="num" id="LN360">360</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="361"><td class="num" id="LN361">361</td><td class="line"> GParamSpec *pspec;</td></tr>
+<tr class="codeline" data-linenumber="362"><td class="num" id="LN362">362</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="363"><td class="num" id="LN363">363</td><td class="line"> pspec = get_pspec_from_name (profile, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="364"><td class="num" id="LN364">364</td><td class="line"> <span class='keyword'>if</span> (!pspec)</td></tr>
+<tr class="codeline" data-linenumber="365"><td class="num" id="LN365">365</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="366"><td class="num" id="LN366">366</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="367"><td class="num" id="LN367">367</td><td class="line"> <span class='keyword'>if</span> (<span class='macro'>G_UNLIKELY (pspec-&gt;param_id == PROP_BACKGROUND_IMAGE)<span class='macro_popup'>(pspec-&gt;param_id == PROP_BACKGROUND_IMAGE)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="368"><td class="num" id="LN368">368</td><td class="line"> ensure_pixbuf_property (profile, PROP_BACKGROUND_IMAGE_FILE, PROP_BACKGROUND_IMAGE, &amp;priv-&gt;background_load_failed);</td></tr>
+<tr class="codeline" data-linenumber="369"><td class="num" id="LN369">369</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="370"><td class="num" id="LN370">370</td><td class="line"> <span class='keyword'>return</span> g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id);</td></tr>
+<tr class="codeline" data-linenumber="371"><td class="num" id="LN371">371</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="372"><td class="num" id="LN372">372</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="373"><td class="num" id="LN373">373</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="374"><td class="num" id="LN374">374</td><td class="line">set_value_from_palette (GValue *ret_value,</td></tr>
+<tr class="codeline" data-linenumber="375"><td class="num" id="LN375">375</td><td class="line"> <span class='keyword'>const</span> GdkRGBA *colors,</td></tr>
+<tr class="codeline" data-linenumber="376"><td class="num" id="LN376">376</td><td class="line"> guint n_colors)</td></tr>
+<tr class="codeline" data-linenumber="377"><td class="num" id="LN377">377</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="378"><td class="num" id="LN378">378</td><td class="line"> GValueArray *array;</td></tr>
+<tr class="codeline" data-linenumber="379"><td class="num" id="LN379">379</td><td class="line"> guint i, max_n_colors;</td></tr>
+<tr class="codeline" data-linenumber="380"><td class="num" id="LN380">380</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="381"><td class="num" id="LN381">381</td><td class="line"> max_n_colors = <span class='macro'>MAX (n_colors, TERMINAL_PALETTE_SIZE)<span class='macro_popup'>(((n_colors) &gt; (16)) ? (n_colors) : (16))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="382"><td class="num" id="LN382">382</td><td class="line"> array = g_value_array_new (max_n_colors);</td></tr>
+<tr class="codeline" data-linenumber="383"><td class="num" id="LN383">383</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; max_n_colors; ++i)</td></tr>
+<tr class="codeline" data-linenumber="384"><td class="num" id="LN384">384</td><td class="line"> g_value_array_append (array, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="385"><td class="num" id="LN385">385</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="386"><td class="num" id="LN386">386</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; n_colors; ++i)</td></tr>
+<tr class="codeline" data-linenumber="387"><td class="num" id="LN387">387</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="388"><td class="num" id="LN388">388</td><td class="line"> GValue *value = g_value_array_get_nth (array, i);</td></tr>
+<tr class="codeline" data-linenumber="389"><td class="num" id="LN389">389</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="390"><td class="num" id="LN390">390</td><td class="line"> g_value_init (value, <span class='macro'>GDK_TYPE_RGBA<span class='macro_popup'>(gdk_rgba_get_type ())</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="391"><td class="num" id="LN391">391</td><td class="line"> g_value_set_boxed (value, &amp;colors[i]);</td></tr>
+<tr class="codeline" data-linenumber="392"><td class="num" id="LN392">392</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="393"><td class="num" id="LN393">393</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="394"><td class="num" id="LN394">394</td><td class="line"> <span class='comment'>/* If we haven't enough colours yet, fill up with the default palette */</span></td></tr>
+<tr class="codeline" data-linenumber="395"><td class="num" id="LN395">395</td><td class="line"> <span class='keyword'>for</span> (i = n_colors; i &lt; <span class='macro'>TERMINAL_PALETTE_SIZE<span class='macro_popup'>16</span></span>; ++i)</td></tr>
+<tr class="codeline" data-linenumber="396"><td class="num" id="LN396">396</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="397"><td class="num" id="LN397">397</td><td class="line"> GValue *value = g_value_array_get_nth (array, i);</td></tr>
+<tr class="codeline" data-linenumber="398"><td class="num" id="LN398">398</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="399"><td class="num" id="LN399">399</td><td class="line"> g_value_init (value, <span class='macro'>GDK_TYPE_RGBA<span class='macro_popup'>(gdk_rgba_get_type ())</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="400"><td class="num" id="LN400">400</td><td class="line"> g_value_set_boxed (value, &amp;<span class='macro'>DEFAULT_PALETTE<span class='macro_popup'>(terminal_palettes[0])</span></span>[i]);</td></tr>
+<tr class="codeline" data-linenumber="401"><td class="num" id="LN401">401</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="402"><td class="num" id="LN402">402</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="403"><td class="num" id="LN403">403</td><td class="line"> g_value_take_boxed (ret_value, array);</td></tr>
+<tr class="codeline" data-linenumber="404"><td class="num" id="LN404">404</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="405"><td class="num" id="LN405">405</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="406"><td class="num" id="LN406">406</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>int</span></td></tr>
+<tr class="codeline" data-linenumber="407"><td class="num" id="LN407">407</td><td class="line">values_equal (GParamSpec *pspec,</td></tr>
+<tr class="codeline" data-linenumber="408"><td class="num" id="LN408">408</td><td class="line"> <span class='keyword'>const</span> GValue *va,</td></tr>
+<tr class="codeline" data-linenumber="409"><td class="num" id="LN409">409</td><td class="line"> <span class='keyword'>const</span> GValue *vb)</td></tr>
+<tr class="codeline" data-linenumber="410"><td class="num" id="LN410">410</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="411"><td class="num" id="LN411">411</td><td class="line"> <span class='comment'>/* g_param_values_cmp isn't good enough for some types, since e.g.</span></td></tr>
+<tr class="codeline" data-linenumber="412"><td class="num" id="LN412">412</td><td class="line"> <span class='comment'>* it compares colours and font descriptions by pointer value, not</span></td></tr>
+<tr class="codeline" data-linenumber="413"><td class="num" id="LN413">413</td><td class="line"> <span class='comment'>* with the correct compare functions. Providing extra</span></td></tr>
+<tr class="codeline" data-linenumber="414"><td class="num" id="LN414">414</td><td class="line"> <span class='comment'>* PangoParamSpecFontDescription and GdkParamSpecColor wouldn't</span></td></tr>
+<tr class="codeline" data-linenumber="415"><td class="num" id="LN415">415</td><td class="line"> <span class='comment'>* have fixed this either, since it's unclear how to _order_ them.</span></td></tr>
+<tr class="codeline" data-linenumber="416"><td class="num" id="LN416">416</td><td class="line"> <span class='comment'>* Luckily we only need to check them for equality here.</span></td></tr>
+<tr class="codeline" data-linenumber="417"><td class="num" id="LN417">417</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="418"><td class="num" id="LN418">418</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="419"><td class="num" id="LN419">419</td><td class="line"> <span class='keyword'>if</span> (g_param_values_cmp (pspec, va, vb) == 0)</td></tr>
+<tr class="codeline" data-linenumber="420"><td class="num" id="LN420">420</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="421"><td class="num" id="LN421">421</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="422"><td class="num" id="LN422">422</td><td class="line"> <span class='keyword'>if</span> (<span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span> == <span class='macro'>GDK_TYPE_RGBA<span class='macro_popup'>(gdk_rgba_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="423"><td class="num" id="LN423">423</td><td class="line"> <span class='keyword'>return</span> rgba_equal (g_value_get_boxed (va), g_value_get_boxed (vb));</td></tr>
+<tr class="codeline" data-linenumber="424"><td class="num" id="LN424">424</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="425"><td class="num" id="LN425">425</td><td class="line"> <span class='keyword'>if</span> (<span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span> == <span class='macro'>PANGO_TYPE_FONT_DESCRIPTION<span class='macro_popup'>(pango_font_description_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="426"><td class="num" id="LN426">426</td><td class="line"> <span class='keyword'>return</span> pango_font_description_equal (g_value_get_boxed (va), g_value_get_boxed (vb));</td></tr>
+<tr class="codeline" data-linenumber="427"><td class="num" id="LN427">427</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="428"><td class="num" id="LN428">428</td><td class="line"> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_VALUE_ARRAY (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[18]) GCC warning "Deprecated pre-processor symbol"<br>
+); gboolean __r; if (!__inst) __r = (0); else if (__inst-&gt;<br>g_class &amp;&amp; __inst-&gt;g_class-&gt;g_type == __t) __r =<br> (!(0)); else __r = g_type_check_instance_is_a (__inst, __t);<br> __r; })))) GCC warning "Deprecated pre-processor symbol"
+</span></span> &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="429"><td class="num" id="LN429">429</td><td class="line"> <span class='macro'>G_PARAM_SPEC_VALUE_TYPE (G_PARAM_SPEC_VALUE_ARRAY (pspec)-&gt;element_spec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((((((GParamSpecValueArray*) (void *) g_type_check_instance_cast<br> ((GTypeInstance*) ((pspec)), ((g_param_spec_types[18]) GCC warning<br> "Deprecated pre-processor symbol"
+))))) GCC warning "Deprecated pre-processor symbol"<br>
+-&gt;element_spec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;<br>value_type)</span></span> == <span class='macro'>GDK_TYPE_RGBA<span class='macro_popup'>(gdk_rgba_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="430"><td class="num" id="LN430">430</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="431"><td class="num" id="LN431">431</td><td class="line"> GValueArray *ara, *arb;</td></tr>
+<tr class="codeline" data-linenumber="432"><td class="num" id="LN432">432</td><td class="line"> guint i;</td></tr>
+<tr class="codeline" data-linenumber="433"><td class="num" id="LN433">433</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="434"><td class="num" id="LN434">434</td><td class="line"> ara = g_value_get_boxed (va);</td></tr>
+<tr class="codeline" data-linenumber="435"><td class="num" id="LN435">435</td><td class="line"> arb = g_value_get_boxed (vb);</td></tr>
+<tr class="codeline" data-linenumber="436"><td class="num" id="LN436">436</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="437"><td class="num" id="LN437">437</td><td class="line"> <span class='keyword'>if</span> (!ara || !arb || ara-&gt;n_values != arb-&gt;n_values)</td></tr>
+<tr class="codeline" data-linenumber="438"><td class="num" id="LN438">438</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="439"><td class="num" id="LN439">439</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="440"><td class="num" id="LN440">440</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; ara-&gt;n_values; ++i)</td></tr>
+<tr class="codeline" data-linenumber="441"><td class="num" id="LN441">441</td><td class="line"> <span class='keyword'>if</span> (!rgba_equal (g_value_get_boxed (g_value_array_get_nth (ara, i)),</td></tr>
+<tr class="codeline" data-linenumber="442"><td class="num" id="LN442">442</td><td class="line"> g_value_get_boxed (g_value_array_get_nth (arb, i))))</td></tr>
+<tr class="codeline" data-linenumber="443"><td class="num" id="LN443">443</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="444"><td class="num" id="LN444">444</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="445"><td class="num" id="LN445">445</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="446"><td class="num" id="LN446">446</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="447"><td class="num" id="LN447">447</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="448"><td class="num" id="LN448">448</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="449"><td class="num" id="LN449">449</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="450"><td class="num" id="LN450">450</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="451"><td class="num" id="LN451">451</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="452"><td class="num" id="LN452">452</td><td class="line">ensure_pixbuf_property (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="453"><td class="num" id="LN453">453</td><td class="line"> guint path_prop_id,</td></tr>
+<tr class="codeline" data-linenumber="454"><td class="num" id="LN454">454</td><td class="line"> guint pixbuf_prop_id,</td></tr>
+<tr class="codeline" data-linenumber="455"><td class="num" id="LN455">455</td><td class="line"> gboolean *load_failed)</td></tr>
+<tr class="codeline" data-linenumber="456"><td class="num" id="LN456">456</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="457"><td class="num" id="LN457">457</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="458"><td class="num" id="LN458">458</td><td class="line"> GValue *path_value, *pixbuf_value;</td></tr>
+<tr class="codeline" data-linenumber="459"><td class="num" id="LN459">459</td><td class="line"> GdkPixbuf *pixbuf;</td></tr>
+<tr class="codeline" data-linenumber="460"><td class="num" id="LN460">460</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *path_utf8;</td></tr>
+<tr class="codeline" data-linenumber="461"><td class="num" id="LN461">461</td><td class="line"> <span class='keyword'>char</span> *path;</td></tr>
+<tr class="codeline" data-linenumber="462"><td class="num" id="LN462">462</td><td class="line"> GError *error = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="463"><td class="num" id="LN463">463</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="464"><td class="num" id="LN464">464</td><td class="line"> pixbuf_value = g_value_array_get_nth (priv-&gt;properties, pixbuf_prop_id);</td></tr>
+<tr class="codeline" data-linenumber="465"><td class="num" id="LN465">465</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="466"><td class="num" id="LN466">466</td><td class="line"> pixbuf = g_value_get_object (pixbuf_value);</td></tr>
+<tr class="codeline" data-linenumber="467"><td class="num" id="LN467">467</td><td class="line"> <span class='keyword'>if</span> (pixbuf)</td></tr>
+<tr class="codeline" data-linenumber="468"><td class="num" id="LN468">468</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="469"><td class="num" id="LN469">469</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="470"><td class="num" id="LN470">470</td><td class="line"> <span class='keyword'>if</span> (*load_failed)</td></tr>
+<tr class="codeline" data-linenumber="471"><td class="num" id="LN471">471</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="472"><td class="num" id="LN472">472</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="473"><td class="num" id="LN473">473</td><td class="line"> path_value = g_value_array_get_nth (priv-&gt;properties, path_prop_id);</td></tr>
+<tr class="codeline" data-linenumber="474"><td class="num" id="LN474">474</td><td class="line"> path_utf8 = g_value_get_string (path_value);</td></tr>
+<tr class="codeline" data-linenumber="475"><td class="num" id="LN475">475</td><td class="line"> <span class='keyword'>if</span> (!path_utf8 || !path_utf8[0])</td></tr>
+<tr class="codeline" data-linenumber="476"><td class="num" id="LN476">476</td><td class="line"> <span class='keyword'>goto</span> failed;</td></tr>
+<tr class="codeline" data-linenumber="477"><td class="num" id="LN477">477</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="478"><td class="num" id="LN478">478</td><td class="line"> path = g_filename_from_utf8 (path_utf8, -1, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="479"><td class="num" id="LN479">479</td><td class="line"> <span class='keyword'>if</span> (!path)</td></tr>
+<tr class="codeline" data-linenumber="480"><td class="num" id="LN480">480</td><td class="line"> <span class='keyword'>goto</span> failed;</td></tr>
+<tr class="codeline" data-linenumber="481"><td class="num" id="LN481">481</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="482"><td class="num" id="LN482">482</td><td class="line"> pixbuf = gdk_pixbuf_new_from_file (path, &amp;error);</td></tr>
+<tr class="codeline" data-linenumber="483"><td class="num" id="LN483">483</td><td class="line"> <span class='keyword'>if</span> (!pixbuf)</td></tr>
+<tr class="codeline" data-linenumber="484"><td class="num" id="LN484">484</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="485"><td class="num" id="LN485">485</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_PROFILE,<span class='macro_popup'>do { if (0) g_printerr("Failed to load image \"%s\": %s\n", path<br>, error-&gt;message); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="486"><td class="num" id="LN486">486</td><td class="line"> <span class='string_literal'><span class='macro'>"Failed to load image \"%s\": %s\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("Failed to load image \"%s\": %s\n", path<br>, error-&gt;message); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="487"><td class="num" id="LN487">487</td><td class="line"> <span class='macro'>path, error-&gt;message)<span class='macro_popup'>do { if (0) g_printerr("Failed to load image \"%s\": %s\n", path<br>, error-&gt;message); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="488"><td class="num" id="LN488">488</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="489"><td class="num" id="LN489">489</td><td class="line"> g_error_free (error);</td></tr>
+<tr class="codeline" data-linenumber="490"><td class="num" id="LN490">490</td><td class="line"> g_free (path);</td></tr>
+<tr class="codeline" data-linenumber="491"><td class="num" id="LN491">491</td><td class="line"> <span class='keyword'>goto</span> failed;</td></tr>
+<tr class="codeline" data-linenumber="492"><td class="num" id="LN492">492</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="493"><td class="num" id="LN493">493</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="494"><td class="num" id="LN494">494</td><td class="line"> g_value_take_object (pixbuf_value, pixbuf);</td></tr>
+<tr class="codeline" data-linenumber="495"><td class="num" id="LN495">495</td><td class="line"> g_free (path);</td></tr>
+<tr class="codeline" data-linenumber="496"><td class="num" id="LN496">496</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="497"><td class="num" id="LN497">497</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="498"><td class="num" id="LN498">498</td><td class="line">failed:</td></tr>
+<tr class="codeline" data-linenumber="499"><td class="num" id="LN499">499</td><td class="line"> *load_failed = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="500"><td class="num" id="LN500">500</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="501"><td class="num" id="LN501">501</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="502"><td class="num" id="LN502">502</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="503"><td class="num" id="LN503">503</td><td class="line">terminal_profile_reset_property_internal (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="504"><td class="num" id="LN504">504</td><td class="line"> GParamSpec *pspec,</td></tr>
+<tr class="codeline" data-linenumber="505"><td class="num" id="LN505">505</td><td class="line"> gboolean notify)</td></tr>
+<tr class="codeline" data-linenumber="506"><td class="num" id="LN506">506</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="507"><td class="num" id="LN507">507</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="508"><td class="num" id="LN508">508</td><td class="line"> GValue value_ = { 0, };</td></tr>
+<tr class="codeline" data-linenumber="509"><td class="num" id="LN509">509</td><td class="line"> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="510"><td class="num" id="LN510">510</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="511"><td class="num" id="LN511">511</td><td class="line"> <span class='keyword'>if</span> (notify)</td></tr>
+<tr class="codeline" data-linenumber="512"><td class="num" id="LN512">512</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="513"><td class="num" id="LN513">513</td><td class="line"> value = &amp;value_;</td></tr>
+<tr class="codeline" data-linenumber="514"><td class="num" id="LN514">514</td><td class="line"> g_value_init (value, <span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="515"><td class="num" id="LN515">515</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="516"><td class="num" id="LN516">516</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="517"><td class="num" id="LN517">517</td><td class="line"> value = g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id);</td></tr>
+<tr class="codeline" data-linenumber="518"><td class="num" id="LN518">518</td><td class="line"> <span class='macro'>g_assert (value != NULL)<span class='macro_popup'>do { if (value != ((void*)0)) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-profile.c", 518, ((const char*) (__func__<br>)), "value != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="519"><td class="num" id="LN519">519</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="520"><td class="num" id="LN520">520</td><td class="line"> <span class='comment'>/* A few properties don't have defaults via the param spec; set them explicitly */</span></td></tr>
+<tr class="codeline" data-linenumber="521"><td class="num" id="LN521">521</td><td class="line"> <span class='keyword'>switch</span> (pspec-&gt;param_id)</td></tr>
+<tr class="codeline" data-linenumber="522"><td class="num" id="LN522">522</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="523"><td class="num" id="LN523">523</td><td class="line"> <span class='keyword'>case</span> PROP_FOREGROUND_COLOR:</td></tr>
+<tr class="codeline" data-linenumber="524"><td class="num" id="LN524">524</td><td class="line"> <span class='keyword'>case</span> PROP_BOLD_COLOR:</td></tr>
+<tr class="codeline" data-linenumber="525"><td class="num" id="LN525">525</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="526"><td class="num" id="LN526">526</td><td class="line"> GdkRGBA color;</td></tr>
+<tr class="codeline" data-linenumber="527"><td class="num" id="LN527">527</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="528"><td class="num" id="LN528">528</td><td class="line"> <span class='keyword'>if</span> (!gdk_rgba_parse (&amp;color, <span class='macro'>DEFAULT_FOREGROUND_COLOR<span class='macro_popup'>("#000000")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="529"><td class="num" id="LN529">529</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="530"><td class="num" id="LN530">530</td><td class="line"> color.alpha = 1.0;</td></tr>
+<tr class="codeline" data-linenumber="531"><td class="num" id="LN531">531</td><td class="line"> g_value_set_boxed (value, &amp;color);</td></tr>
+<tr class="codeline" data-linenumber="532"><td class="num" id="LN532">532</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="533"><td class="num" id="LN533">533</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="534"><td class="num" id="LN534">534</td><td class="line"> <span class='keyword'>case</span> PROP_BACKGROUND_COLOR:</td></tr>
+<tr class="codeline" data-linenumber="535"><td class="num" id="LN535">535</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="536"><td class="num" id="LN536">536</td><td class="line"> GdkRGBA color;</td></tr>
+<tr class="codeline" data-linenumber="537"><td class="num" id="LN537">537</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="538"><td class="num" id="LN538">538</td><td class="line"> <span class='keyword'>if</span> (!gdk_rgba_parse (&amp;color, <span class='macro'>DEFAULT_BACKGROUND_COLOR<span class='macro_popup'>("#FFFFDD")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="539"><td class="num" id="LN539">539</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="540"><td class="num" id="LN540">540</td><td class="line"> color.alpha = 1.0;</td></tr>
+<tr class="codeline" data-linenumber="541"><td class="num" id="LN541">541</td><td class="line"> g_value_set_boxed (value, &amp;color);</td></tr>
+<tr class="codeline" data-linenumber="542"><td class="num" id="LN542">542</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="543"><td class="num" id="LN543">543</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="544"><td class="num" id="LN544">544</td><td class="line"> <span class='keyword'>case</span> PROP_FONT:</td></tr>
+<tr class="codeline" data-linenumber="545"><td class="num" id="LN545">545</td><td class="line"> g_value_take_boxed (value, pango_font_description_from_string (<span class='macro'>DEFAULT_FONT<span class='macro_popup'>("Monospace 12")</span></span>));</td></tr>
+<tr class="codeline" data-linenumber="546"><td class="num" id="LN546">546</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="547"><td class="num" id="LN547">547</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="548"><td class="num" id="LN548">548</td><td class="line"> <span class='keyword'>case</span> PROP_PALETTE:</td></tr>
+<tr class="codeline" data-linenumber="549"><td class="num" id="LN549">549</td><td class="line"> set_value_from_palette (value, <span class='macro'>DEFAULT_PALETTE<span class='macro_popup'>(terminal_palettes[0])</span></span>, <span class='macro'>TERMINAL_PALETTE_SIZE<span class='macro_popup'>16</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="550"><td class="num" id="LN550">550</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="551"><td class="num" id="LN551">551</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="552"><td class="num" id="LN552">552</td><td class="line"> <span class='keyword'>default</span>:</td></tr>
+<tr class="codeline" data-linenumber="553"><td class="num" id="LN553">553</td><td class="line"> g_param_value_set_default (pspec, value);</td></tr>
+<tr class="codeline" data-linenumber="554"><td class="num" id="LN554">554</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="555"><td class="num" id="LN555">555</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="556"><td class="num" id="LN556">556</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="557"><td class="num" id="LN557">557</td><td class="line"> <span class='keyword'>if</span> (notify)</td></tr>
+<tr class="codeline" data-linenumber="558"><td class="num" id="LN558">558</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="559"><td class="num" id="LN559">559</td><td class="line"> g_object_set_property (<span class='macro'>G_OBJECT (profile)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((profile)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, pspec-&gt;name, value);</td></tr>
+<tr class="codeline" data-linenumber="560"><td class="num" id="LN560">560</td><td class="line"> g_value_unset (value);</td></tr>
+<tr class="codeline" data-linenumber="561"><td class="num" id="LN561">561</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="562"><td class="num" id="LN562">562</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="563"><td class="num" id="LN563">563</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="564"><td class="num" id="LN564">564</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="565"><td class="num" id="LN565">565</td><td class="line">terminal_profile_gsettings_notify_cb (GSettings *settings,</td></tr>
+<tr class="codeline" data-linenumber="566"><td class="num" id="LN566">566</td><td class="line"> gchar *key,</td></tr>
+<tr class="codeline" data-linenumber="567"><td class="num" id="LN567">567</td><td class="line"> gpointer user_data)</td></tr>
+<tr class="codeline" data-linenumber="568"><td class="num" id="LN568">568</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="569"><td class="num" id="LN569">569</td><td class="line"> TerminalProfile *profile = <span class='macro'>TERMINAL_PROFILE (user_data)<span class='macro_popup'>((((TerminalProfile*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((user_data)), ((terminal_profile_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="570"><td class="num" id="LN570">570</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="571"><td class="num" id="LN571">571</td><td class="line"> TerminalProfileClass *klass;</td></tr>
+<tr class="codeline" data-linenumber="572"><td class="num" id="LN572">572</td><td class="line"> GVariant *settings_value;</td></tr>
+<tr class="codeline" data-linenumber="573"><td class="num" id="LN573">573</td><td class="line"> GParamSpec *pspec;</td></tr>
+<tr class="codeline" data-linenumber="574"><td class="num" id="LN574">574</td><td class="line"> GValue value = { 0, };</td></tr>
+<tr class="codeline" data-linenumber="575"><td class="num" id="LN575">575</td><td class="line"> gboolean equal;</td></tr>
+<tr class="codeline" data-linenumber="576"><td class="num" id="LN576">576</td><td class="line"> gboolean force_set = <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="577"><td class="num" id="LN577">577</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="578"><td class="num" id="LN578">578</td><td class="line"> <span class='keyword'>if</span> (!key) <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="579"><td class="num" id="LN579">579</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="580"><td class="num" id="LN580">580</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_PROFILE,<span class='macro_popup'>do { if (0) g_printerr("GSettings notification for key %s [%s]\n"<br>, key, g_settings_is_writable (settings, key) ? "writable" : "LOCKED"<br>); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="581"><td class="num" id="LN581">581</td><td class="line"> <span class='string_literal'><span class='macro'>"GSettings notification for key %s [%s]\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("GSettings notification for key %s [%s]\n"<br>, key, g_settings_is_writable (settings, key) ? "writable" : "LOCKED"<br>); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="582"><td class="num" id="LN582">582</td><td class="line"> <span class='macro'>key,<span class='macro_popup'>do { if (0) g_printerr("GSettings notification for key %s [%s]\n"<br>, key, g_settings_is_writable (settings, key) ? "writable" : "LOCKED"<br>); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="583"><td class="num" id="LN583">583</td><td class="line"> <span class='macro'>g_settings_is_writable (settings, key) ? <span class='string_literal'>"writable"</span> : <span class='string_literal'>"LOCKED"</span>)<span class='macro_popup'>do { if (0) g_printerr("GSettings notification for key %s [%s]\n"<br>, key, g_settings_is_writable (settings, key) ? "writable" : "LOCKED"<br>); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="584"><td class="num" id="LN584">584</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="585"><td class="num" id="LN585">585</td><td class="line"> klass = <span class='macro'>TERMINAL_PROFILE_GET_CLASS (profile)<span class='macro_popup'>((((TerminalProfileClass*) (((GTypeInstance*) ((profile)))-&gt;<br>g_class))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="586"><td class="num" id="LN586">586</td><td class="line"> pspec = g_hash_table_lookup (klass-&gt;gsettings_keys, key);</td></tr>
+<tr class="codeline" data-linenumber="587"><td class="num" id="LN587">587</td><td class="line"> <span class='keyword'>if</span> (!pspec)</td></tr>
+<tr class="codeline" data-linenumber="588"><td class="num" id="LN588">588</td><td class="line"> <span class='keyword'>return</span>; <span class='comment'>/* ignore unknown keys, for future extensibility */</span></td></tr>
+<tr class="codeline" data-linenumber="589"><td class="num" id="LN589">589</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="590"><td class="num" id="LN590">590</td><td class="line"> priv-&gt;locked[pspec-&gt;param_id] = !g_settings_is_writable (settings, key);</td></tr>
+<tr class="codeline" data-linenumber="591"><td class="num" id="LN591">591</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="592"><td class="num" id="LN592">592</td><td class="line"> settings_value = g_settings_get_value (settings, key);</td></tr>
+<tr class="codeline" data-linenumber="593"><td class="num" id="LN593">593</td><td class="line"> <span class='keyword'>if</span> (!settings_value)</td></tr>
+<tr class="codeline" data-linenumber="594"><td class="num" id="LN594">594</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="595"><td class="num" id="LN595">595</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="596"><td class="num" id="LN596">596</td><td class="line"> g_value_init (&amp;value, <span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="597"><td class="num" id="LN597">597</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="598"><td class="num" id="LN598">598</td><td class="line"> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_BOOLEAN (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[2])); gboolean __r<br>; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="599"><td class="num" id="LN599">599</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="600"><td class="num" id="LN600">600</td><td class="line"> <span class='keyword'>if</span> (!g_variant_is_of_type (settings_value, <span class='macro'>G_VARIANT_TYPE_BOOLEAN<span class='macro_popup'>((const GVariantType *) "b")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="601"><td class="num" id="LN601">601</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="602"><td class="num" id="LN602">602</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="603"><td class="num" id="LN603">603</td><td class="line"> g_value_set_boolean (&amp;value, g_variant_get_boolean (settings_value));</td></tr>
+<tr class="codeline" data-linenumber="604"><td class="num" id="LN604">604</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="605"><td class="num" id="LN605">605</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_STRING (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[14])); gboolean __r<br>; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="606"><td class="num" id="LN606">606</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="607"><td class="num" id="LN607">607</td><td class="line"> <span class='keyword'>if</span> (!g_variant_is_of_type (settings_value, <span class="mrange"><span class="mrange"><span class='macro'>G_VARIANT_TYPE_STRING<span class='macro_popup'>((const GVariantType *) "s")</span></span></span></span>))</td></tr>
+<tr><td class="num"></td><td class="line"><div id="EndPath" class="msg msgEvent" style="margin-left:60ex; max-width:31em">Casting a non-structure type to a structure type and accessing a field can lead to memory access errors or data corruption</div></td></tr>
+<tr class="codeline" data-linenumber="608"><td class="num" id="LN608">608</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="609"><td class="num" id="LN609">609</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="610"><td class="num" id="LN610">610</td><td class="line"> g_value_set_string (&amp;value, g_variant_get_string (settings_value, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>));</td></tr>
+<tr class="codeline" data-linenumber="611"><td class="num" id="LN611">611</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="612"><td class="num" id="LN612">612</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_ENUM (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[10])); gboolean __r<br>; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="613"><td class="num" id="LN613">613</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="614"><td class="num" id="LN614">614</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="615"><td class="num" id="LN615">615</td><td class="line"> <span class='keyword'>if</span> (!g_variant_is_of_type (settings_value, <span class='macro'>G_VARIANT_TYPE_STRING<span class='macro_popup'>((const GVariantType *) "s")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="616"><td class="num" id="LN616">616</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="617"><td class="num" id="LN617">617</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="618"><td class="num" id="LN618">618</td><td class="line"> g_value_set_enum (&amp;value, g_settings_get_enum (settings, key));</td></tr>
+<tr class="codeline" data-linenumber="619"><td class="num" id="LN619">619</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="620"><td class="num" id="LN620">620</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span> == <span class='macro'>GDK_TYPE_RGBA<span class='macro_popup'>(gdk_rgba_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="621"><td class="num" id="LN621">621</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="622"><td class="num" id="LN622">622</td><td class="line"> GdkRGBA color;</td></tr>
+<tr class="codeline" data-linenumber="623"><td class="num" id="LN623">623</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="624"><td class="num" id="LN624">624</td><td class="line"> <span class='keyword'>if</span> (!g_variant_is_of_type (settings_value, <span class='macro'>G_VARIANT_TYPE_STRING<span class='macro_popup'>((const GVariantType *) "s")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="625"><td class="num" id="LN625">625</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="626"><td class="num" id="LN626">626</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="627"><td class="num" id="LN627">627</td><td class="line"> <span class='keyword'>if</span> (!gdk_rgba_parse (&amp;color, g_variant_get_string (settings_value, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)))</td></tr>
+<tr class="codeline" data-linenumber="628"><td class="num" id="LN628">628</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="629"><td class="num" id="LN629">629</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="630"><td class="num" id="LN630">630</td><td class="line"> g_value_set_boxed (&amp;value, &amp;color);</td></tr>
+<tr class="codeline" data-linenumber="631"><td class="num" id="LN631">631</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="632"><td class="num" id="LN632">632</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span> == <span class='macro'>PANGO_TYPE_FONT_DESCRIPTION<span class='macro_popup'>(pango_font_description_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="633"><td class="num" id="LN633">633</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="634"><td class="num" id="LN634">634</td><td class="line"> <span class='keyword'>if</span> (!g_variant_is_of_type (settings_value, <span class='macro'>G_VARIANT_TYPE_STRING<span class='macro_popup'>((const GVariantType *) "s")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="635"><td class="num" id="LN635">635</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="636"><td class="num" id="LN636">636</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="637"><td class="num" id="LN637">637</td><td class="line"> g_value_take_boxed (&amp;value, pango_font_description_from_string (g_variant_get_string (settings_value, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)));</td></tr>
+<tr class="codeline" data-linenumber="638"><td class="num" id="LN638">638</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="639"><td class="num" id="LN639">639</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_DOUBLE (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[13])); gboolean __r<br>; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="640"><td class="num" id="LN640">640</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="641"><td class="num" id="LN641">641</td><td class="line"> <span class='keyword'>if</span> (!g_variant_is_of_type (settings_value, <span class='macro'>G_VARIANT_TYPE_DOUBLE<span class='macro_popup'>((const GVariantType *) "d")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="642"><td class="num" id="LN642">642</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="643"><td class="num" id="LN643">643</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="644"><td class="num" id="LN644">644</td><td class="line"> g_value_set_double (&amp;value, g_variant_get_double (settings_value));</td></tr>
+<tr class="codeline" data-linenumber="645"><td class="num" id="LN645">645</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="646"><td class="num" id="LN646">646</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_INT (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[3])); gboolean __r<br>; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="647"><td class="num" id="LN647">647</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="648"><td class="num" id="LN648">648</td><td class="line"> <span class='keyword'>if</span> (!g_variant_is_of_type (settings_value, <span class='macro'>G_VARIANT_TYPE_INT16<span class='macro_popup'>((const GVariantType *) "n")</span></span>) &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="649"><td class="num" id="LN649">649</td><td class="line"> !g_variant_is_of_type (settings_value, <span class='macro'>G_VARIANT_TYPE_INT32<span class='macro_popup'>((const GVariantType *) "i")</span></span>) &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="650"><td class="num" id="LN650">650</td><td class="line"> !g_variant_is_of_type (settings_value, <span class='macro'>G_VARIANT_TYPE_INT64<span class='macro_popup'>((const GVariantType *) "x")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="651"><td class="num" id="LN651">651</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="652"><td class="num" id="LN652">652</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="653"><td class="num" id="LN653">653</td><td class="line"> g_value_set_int (&amp;value, g_settings_get_int(settings, key));</td></tr>
+<tr class="codeline" data-linenumber="654"><td class="num" id="LN654">654</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="655"><td class="num" id="LN655">655</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_VALUE_ARRAY (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[18]) GCC warning "Deprecated pre-processor symbol"<br>
+); gboolean __r; if (!__inst) __r = (0); else if (__inst-&gt;<br>g_class &amp;&amp; __inst-&gt;g_class-&gt;g_type == __t) __r =<br> (!(0)); else __r = g_type_check_instance_is_a (__inst, __t);<br> __r; })))) GCC warning "Deprecated pre-processor symbol"
+</span></span> &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="656"><td class="num" id="LN656">656</td><td class="line"> <span class='macro'>G_PARAM_SPEC_VALUE_TYPE (G_PARAM_SPEC_VALUE_ARRAY (pspec)-&gt;element_spec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((((((GParamSpecValueArray*) (void *) g_type_check_instance_cast<br> ((GTypeInstance*) ((pspec)), ((g_param_spec_types[18]) GCC warning<br> "Deprecated pre-processor symbol"
+))))) GCC warning "Deprecated pre-processor symbol"<br>
+-&gt;element_spec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;<br>value_type)</span></span> == <span class='macro'>GDK_TYPE_RGBA<span class='macro_popup'>(gdk_rgba_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="657"><td class="num" id="LN657">657</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="658"><td class="num" id="LN658">658</td><td class="line"> <span class='keyword'>char</span> **color_strings;</td></tr>
+<tr class="codeline" data-linenumber="659"><td class="num" id="LN659">659</td><td class="line"> GdkRGBA *colors;</td></tr>
+<tr class="codeline" data-linenumber="660"><td class="num" id="LN660">660</td><td class="line"> <span class='keyword'>int</span> n_colors, i;</td></tr>
+<tr class="codeline" data-linenumber="661"><td class="num" id="LN661">661</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="662"><td class="num" id="LN662">662</td><td class="line"> <span class='keyword'>if</span> (!g_variant_is_of_type (settings_value, <span class='macro'>G_VARIANT_TYPE_STRING<span class='macro_popup'>((const GVariantType *) "s")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="663"><td class="num" id="LN663">663</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="664"><td class="num" id="LN664">664</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="665"><td class="num" id="LN665">665</td><td class="line"> color_strings = g_strsplit (g_variant_get_string (settings_value, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>), <span class='string_literal'>":"</span>, -1);</td></tr>
+<tr class="codeline" data-linenumber="666"><td class="num" id="LN666">666</td><td class="line"> <span class='keyword'>if</span> (!color_strings)</td></tr>
+<tr class="codeline" data-linenumber="667"><td class="num" id="LN667">667</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="668"><td class="num" id="LN668">668</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="669"><td class="num" id="LN669">669</td><td class="line"> n_colors = g_strv_length (color_strings);</td></tr>
+<tr class="codeline" data-linenumber="670"><td class="num" id="LN670">670</td><td class="line"> colors = <span class='macro'>g_new0 (GdkRGBA, n_colors)<span class='macro_popup'>((GdkRGBA *) g_malloc0_n ((n_colors), sizeof (GdkRGBA)))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="671"><td class="num" id="LN671">671</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; n_colors; ++i)</td></tr>
+<tr class="codeline" data-linenumber="672"><td class="num" id="LN672">672</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="673"><td class="num" id="LN673">673</td><td class="line"> <span class='keyword'>if</span> (!gdk_rgba_parse (&amp;colors[i], color_strings[i]))</td></tr>
+<tr class="codeline" data-linenumber="674"><td class="num" id="LN674">674</td><td class="line"> <span class='keyword'>continue</span>; <span class='comment'>/* ignore errors */</span></td></tr>
+<tr class="codeline" data-linenumber="675"><td class="num" id="LN675">675</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="676"><td class="num" id="LN676">676</td><td class="line"> g_strfreev (color_strings);</td></tr>
+<tr class="codeline" data-linenumber="677"><td class="num" id="LN677">677</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="678"><td class="num" id="LN678">678</td><td class="line"> <span class='comment'>/* We continue even with a palette size != TERMINAL_PALETTE_SIZE,</span></td></tr>
+<tr class="codeline" data-linenumber="679"><td class="num" id="LN679">679</td><td class="line"> <span class='comment'>* so we can change the palette size in future versions without</span></td></tr>
+<tr class="codeline" data-linenumber="680"><td class="num" id="LN680">680</td><td class="line"> <span class='comment'>* causing too many issues.</span></td></tr>
+<tr class="codeline" data-linenumber="681"><td class="num" id="LN681">681</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="682"><td class="num" id="LN682">682</td><td class="line"> set_value_from_palette (&amp;value, colors, n_colors);</td></tr>
+<tr class="codeline" data-linenumber="683"><td class="num" id="LN683">683</td><td class="line"> g_free (colors);</td></tr>
+<tr class="codeline" data-linenumber="684"><td class="num" id="LN684">684</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="685"><td class="num" id="LN685">685</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="686"><td class="num" id="LN686">686</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="687"><td class="num" id="LN687">687</td><td class="line"> g_printerr (<span class='string_literal'>"Unhandled value type %s of pspec %s\n"</span>, g_type_name (<span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span>), pspec-&gt;name);</td></tr>
+<tr class="codeline" data-linenumber="688"><td class="num" id="LN688">688</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="689"><td class="num" id="LN689">689</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="690"><td class="num" id="LN690">690</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="691"><td class="num" id="LN691">691</td><td class="line"> <span class='keyword'>if</span> (g_param_value_validate (pspec, &amp;value))</td></tr>
+<tr class="codeline" data-linenumber="692"><td class="num" id="LN692">692</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="693"><td class="num" id="LN693">693</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_PROFILE,<span class='macro_popup'>do { if (0) g_printerr("Invalid value in GSettings for key %s was changed to comply with pspec %s\n"<br>, key, pspec-&gt;name); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="694"><td class="num" id="LN694">694</td><td class="line"> <span class='string_literal'><span class='macro'>"Invalid value in GSettings for key %s was changed to comply with pspec %s\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("Invalid value in GSettings for key %s was changed to comply with pspec %s\n"<br>, key, pspec-&gt;name); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="695"><td class="num" id="LN695">695</td><td class="line"> <span class='macro'>key, pspec-&gt;name)<span class='macro_popup'>do { if (0) g_printerr("Invalid value in GSettings for key %s was changed to comply with pspec %s\n"<br>, key, pspec-&gt;name); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="696"><td class="num" id="LN696">696</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="697"><td class="num" id="LN697">697</td><td class="line"> force_set = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="698"><td class="num" id="LN698">698</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="699"><td class="num" id="LN699">699</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="700"><td class="num" id="LN700">700</td><td class="line"> <span class='comment'>/* Only set the property if the value is different than our current value,</span></td></tr>
+<tr class="codeline" data-linenumber="701"><td class="num" id="LN701">701</td><td class="line"> <span class='comment'>* so we don't go into an infinite loop.</span></td></tr>
+<tr class="codeline" data-linenumber="702"><td class="num" id="LN702">702</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="703"><td class="num" id="LN703">703</td><td class="line"> equal = values_equal (pspec, &amp;value, g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id));</td></tr>
+<tr class="codeline" data-linenumber="704"><td class="num" id="LN704">704</td><td class="line"><span class='directive'>#ifdef MATE_ENABLE_DEBUG</span></td></tr>
+<tr class="codeline" data-linenumber="705"><td class="num" id="LN705">705</td><td class="line"> <span class='macro'>_TERMINAL_DEBUG_IF (TERMINAL_DEBUG_PROFILE)<span class='macro_popup'>if (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="706"><td class="num" id="LN706">706</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="707"><td class="num" id="LN707">707</td><td class="line"> <span class='keyword'>if</span> (!equal)</td></tr>
+<tr class="codeline" data-linenumber="708"><td class="num" id="LN708">708</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_PROFILE,<span class='macro_popup'>do { if (0) g_printerr("Setting property %s to a different value\n"<br> " now: %s\n" " new: %s\n", pspec-&gt;name, g_strdup_value_contents<br> (g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id<br>)), g_strdup_value_contents (&amp;value)); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="709"><td class="num" id="LN709">709</td><td class="line"> <span class='string_literal'><span class='macro'>"Setting property %s to a different value\n"<span class='macro_popup'>do { if (0) g_printerr("Setting property %s to a different value\n"<br> " now: %s\n" " new: %s\n", pspec-&gt;name, g_strdup_value_contents<br> (g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id<br>)), g_strdup_value_contents (&amp;value)); } while (0)</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="710"><td class="num" id="LN710">710</td><td class="line"> <span class='string_literal'><span class='macro'>" now: %s\n"<span class='macro_popup'>do { if (0) g_printerr("Setting property %s to a different value\n"<br> " now: %s\n" " new: %s\n", pspec-&gt;name, g_strdup_value_contents<br> (g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id<br>)), g_strdup_value_contents (&amp;value)); } while (0)</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="711"><td class="num" id="LN711">711</td><td class="line"> <span class='string_literal'><span class='macro'>" new: %s\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("Setting property %s to a different value\n"<br> " now: %s\n" " new: %s\n", pspec-&gt;name, g_strdup_value_contents<br> (g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id<br>)), g_strdup_value_contents (&amp;value)); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="712"><td class="num" id="LN712">712</td><td class="line"> <span class='macro'>pspec-&gt;name,<span class='macro_popup'>do { if (0) g_printerr("Setting property %s to a different value\n"<br> " now: %s\n" " new: %s\n", pspec-&gt;name, g_strdup_value_contents<br> (g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id<br>)), g_strdup_value_contents (&amp;value)); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="713"><td class="num" id="LN713">713</td><td class="line"> <span class='macro'>g_strdup_value_contents (g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id)),<span class='macro_popup'>do { if (0) g_printerr("Setting property %s to a different value\n"<br> " now: %s\n" " new: %s\n", pspec-&gt;name, g_strdup_value_contents<br> (g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id<br>)), g_strdup_value_contents (&amp;value)); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="714"><td class="num" id="LN714">714</td><td class="line"> <span class='macro'>g_strdup_value_contents (&amp;value))<span class='macro_popup'>do { if (0) g_printerr("Setting property %s to a different value\n"<br> " now: %s\n" " new: %s\n", pspec-&gt;name, g_strdup_value_contents<br> (g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id<br>)), g_strdup_value_contents (&amp;value)); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="715"><td class="num" id="LN715">715</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="716"><td class="num" id="LN716">716</td><td class="line"><span class='directive'>#endif</span></td></tr>
+<tr class="codeline" data-linenumber="717"><td class="num" id="LN717">717</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="718"><td class="num" id="LN718">718</td><td class="line"> <span class='keyword'>if</span> (!equal || force_set)</td></tr>
+<tr class="codeline" data-linenumber="719"><td class="num" id="LN719">719</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="720"><td class="num" id="LN720">720</td><td class="line"> priv-&gt;gsettings_notification_pspec = pspec;</td></tr>
+<tr class="codeline" data-linenumber="721"><td class="num" id="LN721">721</td><td class="line"> g_object_set_property (<span class='macro'>G_OBJECT (profile)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((profile)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, pspec-&gt;name, &amp;value);</td></tr>
+<tr class="codeline" data-linenumber="722"><td class="num" id="LN722">722</td><td class="line"> priv-&gt;gsettings_notification_pspec = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="723"><td class="num" id="LN723">723</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="724"><td class="num" id="LN724">724</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="725"><td class="num" id="LN725">725</td><td class="line">out:</td></tr>
+<tr class="codeline" data-linenumber="726"><td class="num" id="LN726">726</td><td class="line"> <span class='comment'>/* FIXME: if we arrive here through goto in the error cases,</span></td></tr>
+<tr class="codeline" data-linenumber="727"><td class="num" id="LN727">727</td><td class="line"> <span class='comment'>* should we maybe reset the property to its default value?</span></td></tr>
+<tr class="codeline" data-linenumber="728"><td class="num" id="LN728">728</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="729"><td class="num" id="LN729">729</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="730"><td class="num" id="LN730">730</td><td class="line"> g_value_unset (&amp;value);</td></tr>
+<tr class="codeline" data-linenumber="731"><td class="num" id="LN731">731</td><td class="line"> g_variant_unref (settings_value);</td></tr>
+<tr class="codeline" data-linenumber="732"><td class="num" id="LN732">732</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="733"><td class="num" id="LN733">733</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="734"><td class="num" id="LN734">734</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="735"><td class="num" id="LN735">735</td><td class="line">terminal_profile_gsettings_changeset_add (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="736"><td class="num" id="LN736">736</td><td class="line"> GSettings *changeset,</td></tr>
+<tr class="codeline" data-linenumber="737"><td class="num" id="LN737">737</td><td class="line"> GParamSpec *pspec)</td></tr>
+<tr class="codeline" data-linenumber="738"><td class="num" id="LN738">738</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="739"><td class="num" id="LN739">739</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="740"><td class="num" id="LN740">740</td><td class="line"> <span class='keyword'>char</span> *key;</td></tr>
+<tr class="codeline" data-linenumber="741"><td class="num" id="LN741">741</td><td class="line"> <span class='keyword'>const</span> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="742"><td class="num" id="LN742">742</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="743"><td class="num" id="LN743">743</td><td class="line"> <span class='comment'>/* FIXME: do this? */</span></td></tr>
+<tr class="codeline" data-linenumber="744"><td class="num" id="LN744">744</td><td class="line"><span class='directive'>#if 0</span></td></tr>
+<tr class="codeline" data-linenumber="745"><td class="num" id="LN745">745</td><td class="line"> <span class='keyword'>if</span> (priv-&gt;locked[pspec-&gt;param_id])</td></tr>
+<tr class="codeline" data-linenumber="746"><td class="num" id="LN746">746</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="747"><td class="num" id="LN747">747</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="748"><td class="num" id="LN748">748</td><td class="line"> <span class='keyword'>if</span> (!g_settings_is_writable (priv-&gt;settings, gsettings_key, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="749"><td class="num" id="LN749">749</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="750"><td class="num" id="LN750">750</td><td class="line"><span class='directive'>#endif</span></td></tr>
+<tr class="codeline" data-linenumber="751"><td class="num" id="LN751">751</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="752"><td class="num" id="LN752">752</td><td class="line"> key = g_param_spec_get_qdata (pspec, gsettings_key_quark);</td></tr>
+<tr class="codeline" data-linenumber="753"><td class="num" id="LN753">753</td><td class="line"> <span class='keyword'>if</span> (!key)</td></tr>
+<tr class="codeline" data-linenumber="754"><td class="num" id="LN754">754</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="755"><td class="num" id="LN755">755</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="756"><td class="num" id="LN756">756</td><td class="line"> value = g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id);</td></tr>
+<tr class="codeline" data-linenumber="757"><td class="num" id="LN757">757</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="758"><td class="num" id="LN758">758</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_PROFILE,<span class='macro_popup'>do { if (0) g_printerr("Adding pspec %s with value %s to the GSettings changeset\n"<br>, pspec-&gt;name, g_strdup_value_contents (value)); } while (<br>0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="759"><td class="num" id="LN759">759</td><td class="line"> <span class='string_literal'><span class='macro'>"Adding pspec %s with value %s to the GSettings changeset\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("Adding pspec %s with value %s to the GSettings changeset\n"<br>, pspec-&gt;name, g_strdup_value_contents (value)); } while (<br>0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="760"><td class="num" id="LN760">760</td><td class="line"> <span class='macro'>pspec-&gt;name, g_strdup_value_contents (value))<span class='macro_popup'>do { if (0) g_printerr("Adding pspec %s with value %s to the GSettings changeset\n"<br>, pspec-&gt;name, g_strdup_value_contents (value)); } while (<br>0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="761"><td class="num" id="LN761">761</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="762"><td class="num" id="LN762">762</td><td class="line"> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_BOOLEAN (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[2])); gboolean __r<br>; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="763"><td class="num" id="LN763">763</td><td class="line"> g_settings_set_boolean (changeset, key, g_value_get_boolean (value));</td></tr>
+<tr class="codeline" data-linenumber="764"><td class="num" id="LN764">764</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_STRING (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[14])); gboolean __r<br>; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="765"><td class="num" id="LN765">765</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="766"><td class="num" id="LN766">766</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *str;</td></tr>
+<tr class="codeline" data-linenumber="767"><td class="num" id="LN767">767</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="768"><td class="num" id="LN768">768</td><td class="line"> str = g_value_get_string (value);</td></tr>
+<tr class="codeline" data-linenumber="769"><td class="num" id="LN769">769</td><td class="line"> g_settings_set_string (changeset, key, str ? str : <span class='string_literal'>""</span>);</td></tr>
+<tr class="codeline" data-linenumber="770"><td class="num" id="LN770">770</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="771"><td class="num" id="LN771">771</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_ENUM (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[10])); gboolean __r<br>; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="772"><td class="num" id="LN772">772</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="773"><td class="num" id="LN773">773</td><td class="line"> <span class='keyword'>const</span> GEnumValue *eval;</td></tr>
+<tr class="codeline" data-linenumber="774"><td class="num" id="LN774">774</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="775"><td class="num" id="LN775">775</td><td class="line"> eval = g_enum_get_value (<span class='macro'>G_PARAM_SPEC_ENUM (pspec)<span class='macro_popup'>((((GParamSpecEnum*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), ((g_param_spec_types[10]))))))</span></span>-&gt;enum_class, g_value_get_enum (value));</td></tr>
+<tr class="codeline" data-linenumber="776"><td class="num" id="LN776">776</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="777"><td class="num" id="LN777">777</td><td class="line"> g_settings_set_enum (changeset, key, eval-&gt;value);</td></tr>
+<tr class="codeline" data-linenumber="778"><td class="num" id="LN778">778</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="779"><td class="num" id="LN779">779</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span> == <span class='macro'>GDK_TYPE_RGBA<span class='macro_popup'>(gdk_rgba_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="780"><td class="num" id="LN780">780</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="781"><td class="num" id="LN781">781</td><td class="line"> GdkRGBA *color;</td></tr>
+<tr class="codeline" data-linenumber="782"><td class="num" id="LN782">782</td><td class="line"> <span class='keyword'>char</span> str[16];</td></tr>
+<tr class="codeline" data-linenumber="783"><td class="num" id="LN783">783</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="784"><td class="num" id="LN784">784</td><td class="line"> color = g_value_get_boxed (value);</td></tr>
+<tr class="codeline" data-linenumber="785"><td class="num" id="LN785">785</td><td class="line"> <span class='keyword'>if</span> (!color)</td></tr>
+<tr class="codeline" data-linenumber="786"><td class="num" id="LN786">786</td><td class="line"> <span class='keyword'>goto</span> cleanup;</td></tr>
+<tr class="codeline" data-linenumber="787"><td class="num" id="LN787">787</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="788"><td class="num" id="LN788">788</td><td class="line"> g_snprintf (str, <span class='keyword'>sizeof</span> (str),</td></tr>
+<tr class="codeline" data-linenumber="789"><td class="num" id="LN789">789</td><td class="line"> <span class='string_literal'>"#%04X%04X%04X"</span>,</td></tr>
+<tr class="codeline" data-linenumber="790"><td class="num" id="LN790">790</td><td class="line"> (guint) (color-&gt;red * 65535),</td></tr>
+<tr class="codeline" data-linenumber="791"><td class="num" id="LN791">791</td><td class="line"> (guint) (color-&gt;green * 65535),</td></tr>
+<tr class="codeline" data-linenumber="792"><td class="num" id="LN792">792</td><td class="line"> (guint) (color-&gt;blue * 65535));</td></tr>
+<tr class="codeline" data-linenumber="793"><td class="num" id="LN793">793</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="794"><td class="num" id="LN794">794</td><td class="line"> g_settings_set_string (changeset, key, str);</td></tr>
+<tr class="codeline" data-linenumber="795"><td class="num" id="LN795">795</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="796"><td class="num" id="LN796">796</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span> == <span class='macro'>PANGO_TYPE_FONT_DESCRIPTION<span class='macro_popup'>(pango_font_description_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="797"><td class="num" id="LN797">797</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="798"><td class="num" id="LN798">798</td><td class="line"> PangoFontDescription *font_desc;</td></tr>
+<tr class="codeline" data-linenumber="799"><td class="num" id="LN799">799</td><td class="line"> <span class='keyword'>char</span> *font;</td></tr>
+<tr class="codeline" data-linenumber="800"><td class="num" id="LN800">800</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="801"><td class="num" id="LN801">801</td><td class="line"> font_desc = g_value_get_boxed (value);</td></tr>
+<tr class="codeline" data-linenumber="802"><td class="num" id="LN802">802</td><td class="line"> <span class='keyword'>if</span> (!font_desc)</td></tr>
+<tr class="codeline" data-linenumber="803"><td class="num" id="LN803">803</td><td class="line"> <span class='keyword'>goto</span> cleanup;</td></tr>
+<tr class="codeline" data-linenumber="804"><td class="num" id="LN804">804</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="805"><td class="num" id="LN805">805</td><td class="line"> font = pango_font_description_to_string (font_desc);</td></tr>
+<tr class="codeline" data-linenumber="806"><td class="num" id="LN806">806</td><td class="line"> g_settings_set_string (changeset, key, font);</td></tr>
+<tr class="codeline" data-linenumber="807"><td class="num" id="LN807">807</td><td class="line"> g_free (font);</td></tr>
+<tr class="codeline" data-linenumber="808"><td class="num" id="LN808">808</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="809"><td class="num" id="LN809">809</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_DOUBLE (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[13])); gboolean __r<br>; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="810"><td class="num" id="LN810">810</td><td class="line"> g_settings_set_double (changeset, key, g_value_get_double (value));</td></tr>
+<tr class="codeline" data-linenumber="811"><td class="num" id="LN811">811</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_INT (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[3])); gboolean __r<br>; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="812"><td class="num" id="LN812">812</td><td class="line"> g_settings_set_int (changeset, key, g_value_get_int (value));</td></tr>
+<tr class="codeline" data-linenumber="813"><td class="num" id="LN813">813</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_VALUE_ARRAY (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[18]) GCC warning "Deprecated pre-processor symbol"<br>
+); gboolean __r; if (!__inst) __r = (0); else if (__inst-&gt;<br>g_class &amp;&amp; __inst-&gt;g_class-&gt;g_type == __t) __r =<br> (!(0)); else __r = g_type_check_instance_is_a (__inst, __t);<br> __r; })))) GCC warning "Deprecated pre-processor symbol"
+</span></span> &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="814"><td class="num" id="LN814">814</td><td class="line"> <span class='macro'>G_PARAM_SPEC_VALUE_TYPE (G_PARAM_SPEC_VALUE_ARRAY (pspec)-&gt;element_spec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((((((GParamSpecValueArray*) (void *) g_type_check_instance_cast<br> ((GTypeInstance*) ((pspec)), ((g_param_spec_types[18]) GCC warning<br> "Deprecated pre-processor symbol"
+))))) GCC warning "Deprecated pre-processor symbol"<br>
+-&gt;element_spec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;<br>value_type)</span></span> == <span class='macro'>GDK_TYPE_RGBA<span class='macro_popup'>(gdk_rgba_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="815"><td class="num" id="LN815">815</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="816"><td class="num" id="LN816">816</td><td class="line"> GValueArray *array;</td></tr>
+<tr class="codeline" data-linenumber="817"><td class="num" id="LN817">817</td><td class="line"> GString *string;</td></tr>
+<tr class="codeline" data-linenumber="818"><td class="num" id="LN818">818</td><td class="line"> guint n_colors, i;</td></tr>
+<tr class="codeline" data-linenumber="819"><td class="num" id="LN819">819</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="820"><td class="num" id="LN820">820</td><td class="line"> <span class='comment'>/* We need to do this ourselves, because the gtk_color_selection_palette_to_string</span></td></tr>
+<tr class="codeline" data-linenumber="821"><td class="num" id="LN821">821</td><td class="line"> <span class='comment'>* does not carry all the bytes, and xterm's palette is messed up...</span></td></tr>
+<tr class="codeline" data-linenumber="822"><td class="num" id="LN822">822</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="823"><td class="num" id="LN823">823</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="824"><td class="num" id="LN824">824</td><td class="line"> array = g_value_get_boxed (value);</td></tr>
+<tr class="codeline" data-linenumber="825"><td class="num" id="LN825">825</td><td class="line"> <span class='keyword'>if</span> (!array)</td></tr>
+<tr class="codeline" data-linenumber="826"><td class="num" id="LN826">826</td><td class="line"> <span class='keyword'>goto</span> cleanup;</td></tr>
+<tr class="codeline" data-linenumber="827"><td class="num" id="LN827">827</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="828"><td class="num" id="LN828">828</td><td class="line"> n_colors = array-&gt;n_values;</td></tr>
+<tr class="codeline" data-linenumber="829"><td class="num" id="LN829">829</td><td class="line"> string = g_string_sized_new (n_colors * (1 <span class='comment'>/* # */</span> + 3 * 4) + n_colors <span class='comment'>/* : separators and terminating \0 */</span>);</td></tr>
+<tr class="codeline" data-linenumber="830"><td class="num" id="LN830">830</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; n_colors; ++i)</td></tr>
+<tr class="codeline" data-linenumber="831"><td class="num" id="LN831">831</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="832"><td class="num" id="LN832">832</td><td class="line"> GdkRGBA *color;</td></tr>
+<tr class="codeline" data-linenumber="833"><td class="num" id="LN833">833</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="834"><td class="num" id="LN834">834</td><td class="line"> <span class='keyword'>if</span> (i &gt; 0)</td></tr>
+<tr class="codeline" data-linenumber="835"><td class="num" id="LN835">835</td><td class="line"> <span class='macro'>g_string_append_c (string, ':')<span class='macro_popup'>g_string_append_c_inline (string, ':')</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="836"><td class="num" id="LN836">836</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="837"><td class="num" id="LN837">837</td><td class="line"> color = g_value_get_boxed (g_value_array_get_nth (array, i));</td></tr>
+<tr class="codeline" data-linenumber="838"><td class="num" id="LN838">838</td><td class="line"> <span class='keyword'>if</span> (!color)</td></tr>
+<tr class="codeline" data-linenumber="839"><td class="num" id="LN839">839</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="840"><td class="num" id="LN840">840</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="841"><td class="num" id="LN841">841</td><td class="line"> g_string_append_printf (string,</td></tr>
+<tr class="codeline" data-linenumber="842"><td class="num" id="LN842">842</td><td class="line"> <span class='string_literal'>"#%04X%04X%04X"</span>,</td></tr>
+<tr class="codeline" data-linenumber="843"><td class="num" id="LN843">843</td><td class="line"> (guint) (color-&gt;red * 65535),</td></tr>
+<tr class="codeline" data-linenumber="844"><td class="num" id="LN844">844</td><td class="line"> (guint) (color-&gt;green * 65535),</td></tr>
+<tr class="codeline" data-linenumber="845"><td class="num" id="LN845">845</td><td class="line"> (guint) (color-&gt;blue * 65535));</td></tr>
+<tr class="codeline" data-linenumber="846"><td class="num" id="LN846">846</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="847"><td class="num" id="LN847">847</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="848"><td class="num" id="LN848">848</td><td class="line"> g_settings_set_string (changeset, key, string-&gt;str);</td></tr>
+<tr class="codeline" data-linenumber="849"><td class="num" id="LN849">849</td><td class="line"> <span class='macro'>g_string_free (string, TRUE)<span class='macro_popup'>(__builtin_constant_p ((!(0))) ? (((!(0))) ? (g_string_free) (<br>(string), ((!(0)))) : g_string_free_and_steal (string)) : (g_string_free<br>) ((string), ((!(0)))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="850"><td class="num" id="LN850">850</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="851"><td class="num" id="LN851">851</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="852"><td class="num" id="LN852">852</td><td class="line"> g_printerr (<span class='string_literal'>"Unhandled value type %s of pspec %s\n"</span>, g_type_name (<span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span>), pspec-&gt;name);</td></tr>
+<tr class="codeline" data-linenumber="853"><td class="num" id="LN853">853</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="854"><td class="num" id="LN854">854</td><td class="line">cleanup:</td></tr>
+<tr class="codeline" data-linenumber="855"><td class="num" id="LN855">855</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="856"><td class="num" id="LN856">856</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="857"><td class="num" id="LN857">857</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="858"><td class="num" id="LN858">858</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="859"><td class="num" id="LN859">859</td><td class="line">terminal_profile_save (TerminalProfile *profile)</td></tr>
+<tr class="codeline" data-linenumber="860"><td class="num" id="LN860">860</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="861"><td class="num" id="LN861">861</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="862"><td class="num" id="LN862">862</td><td class="line"> GSettings *changeset;</td></tr>
+<tr class="codeline" data-linenumber="863"><td class="num" id="LN863">863</td><td class="line"> GSList *l;</td></tr>
+<tr class="codeline" data-linenumber="864"><td class="num" id="LN864">864</td><td class="line"> gchar *concat;</td></tr>
+<tr class="codeline" data-linenumber="865"><td class="num" id="LN865">865</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="866"><td class="num" id="LN866">866</td><td class="line"> priv-&gt;save_idle_id = 0;</td></tr>
+<tr class="codeline" data-linenumber="867"><td class="num" id="LN867">867</td><td class="line"> concat = g_strconcat (<span class='macro'>CONF_PROFILE_PREFIX<span class='macro_popup'>"/org/mate/terminal/profiles/"</span></span>, priv-&gt;profile_dir,<span class='string_literal'>"/"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="868"><td class="num" id="LN868">868</td><td class="line"> changeset = g_settings_new_with_path (<span class='macro'>CONF_PROFILE_SCHEMA<span class='macro_popup'>"org.mate.terminal" ".profile"</span></span>, concat);</td></tr>
+<tr class="codeline" data-linenumber="869"><td class="num" id="LN869">869</td><td class="line"> g_free (concat);</td></tr>
+<tr class="codeline" data-linenumber="870"><td class="num" id="LN870">870</td><td class="line"> g_settings_delay (changeset);</td></tr>
+<tr class="codeline" data-linenumber="871"><td class="num" id="LN871">871</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="872"><td class="num" id="LN872">872</td><td class="line"> <span class='keyword'>for</span> (l = priv-&gt;dirty_pspecs; l != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; l = l-&gt;next)</td></tr>
+<tr class="codeline" data-linenumber="873"><td class="num" id="LN873">873</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="874"><td class="num" id="LN874">874</td><td class="line"> GParamSpec *pspec = (GParamSpec *) l-&gt;data;</td></tr>
+<tr class="codeline" data-linenumber="875"><td class="num" id="LN875">875</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="876"><td class="num" id="LN876">876</td><td class="line"> <span class='keyword'>if</span> (pspec-&gt;owner_type != <span class='macro'>TERMINAL_TYPE_PROFILE<span class='macro_popup'>(terminal_profile_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="877"><td class="num" id="LN877">877</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="878"><td class="num" id="LN878">878</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="879"><td class="num" id="LN879">879</td><td class="line"> <span class='keyword'>if</span> ((pspec-&gt;flags &amp; G_PARAM_WRITABLE) == 0)</td></tr>
+<tr class="codeline" data-linenumber="880"><td class="num" id="LN880">880</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="881"><td class="num" id="LN881">881</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="882"><td class="num" id="LN882">882</td><td class="line"> terminal_profile_gsettings_changeset_add (profile, changeset, pspec);</td></tr>
+<tr class="codeline" data-linenumber="883"><td class="num" id="LN883">883</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="884"><td class="num" id="LN884">884</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="885"><td class="num" id="LN885">885</td><td class="line"> g_slist_free (priv-&gt;dirty_pspecs);</td></tr>
+<tr class="codeline" data-linenumber="886"><td class="num" id="LN886">886</td><td class="line"> priv-&gt;dirty_pspecs = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="887"><td class="num" id="LN887">887</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="888"><td class="num" id="LN888">888</td><td class="line"> g_settings_apply (changeset);</td></tr>
+<tr class="codeline" data-linenumber="889"><td class="num" id="LN889">889</td><td class="line"> g_object_unref (changeset);</td></tr>
+<tr class="codeline" data-linenumber="890"><td class="num" id="LN890">890</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="891"><td class="num" id="LN891">891</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="892"><td class="num" id="LN892">892</td><td class="line"><span class='keyword'>static</span> gboolean</td></tr>
+<tr class="codeline" data-linenumber="893"><td class="num" id="LN893">893</td><td class="line">terminal_profile_save_idle_cb (TerminalProfile *profile)</td></tr>
+<tr class="codeline" data-linenumber="894"><td class="num" id="LN894">894</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="895"><td class="num" id="LN895">895</td><td class="line"> terminal_profile_save (profile);</td></tr>
+<tr class="codeline" data-linenumber="896"><td class="num" id="LN896">896</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="897"><td class="num" id="LN897">897</td><td class="line"> <span class='comment'>/* don't run again */</span></td></tr>
+<tr class="codeline" data-linenumber="898"><td class="num" id="LN898">898</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="899"><td class="num" id="LN899">899</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="900"><td class="num" id="LN900">900</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="901"><td class="num" id="LN901">901</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="902"><td class="num" id="LN902">902</td><td class="line">terminal_profile_schedule_save (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="903"><td class="num" id="LN903">903</td><td class="line"> GParamSpec *pspec)</td></tr>
+<tr class="codeline" data-linenumber="904"><td class="num" id="LN904">904</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="905"><td class="num" id="LN905">905</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="906"><td class="num" id="LN906">906</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="907"><td class="num" id="LN907">907</td><td class="line"> <span class='macro'>g_assert (pspec != NULL)<span class='macro_popup'>do { if (pspec != ((void*)0)) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-profile.c", 907, ((const char*) (__func__<br>)), "pspec != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="908"><td class="num" id="LN908">908</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="909"><td class="num" id="LN909">909</td><td class="line"> <span class='keyword'>if</span> (!g_slist_find (priv-&gt;dirty_pspecs, pspec))</td></tr>
+<tr class="codeline" data-linenumber="910"><td class="num" id="LN910">910</td><td class="line"> priv-&gt;dirty_pspecs = g_slist_prepend (priv-&gt;dirty_pspecs, pspec);</td></tr>
+<tr class="codeline" data-linenumber="911"><td class="num" id="LN911">911</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="912"><td class="num" id="LN912">912</td><td class="line"> <span class='keyword'>if</span> (priv-&gt;save_idle_id != 0)</td></tr>
+<tr class="codeline" data-linenumber="913"><td class="num" id="LN913">913</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="914"><td class="num" id="LN914">914</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="915"><td class="num" id="LN915">915</td><td class="line"> priv-&gt;save_idle_id = g_idle_add ((GSourceFunc) terminal_profile_save_idle_cb, profile);</td></tr>
+<tr class="codeline" data-linenumber="916"><td class="num" id="LN916">916</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="917"><td class="num" id="LN917">917</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="918"><td class="num" id="LN918">918</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="919"><td class="num" id="LN919">919</td><td class="line">terminal_profile_init (TerminalProfile *profile)</td></tr>
+<tr class="codeline" data-linenumber="920"><td class="num" id="LN920">920</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="921"><td class="num" id="LN921">921</td><td class="line"> TerminalProfilePrivate *priv;</td></tr>
+<tr class="codeline" data-linenumber="922"><td class="num" id="LN922">922</td><td class="line"> GObjectClass *object_class;</td></tr>
+<tr class="codeline" data-linenumber="923"><td class="num" id="LN923">923</td><td class="line"> GParamSpec **pspecs;</td></tr>
+<tr class="codeline" data-linenumber="924"><td class="num" id="LN924">924</td><td class="line"> guint n_pspecs, i;</td></tr>
+<tr class="codeline" data-linenumber="925"><td class="num" id="LN925">925</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="926"><td class="num" id="LN926">926</td><td class="line"> priv = profile-&gt;priv = terminal_profile_get_instance_private (profile);</td></tr>
+<tr class="codeline" data-linenumber="927"><td class="num" id="LN927">927</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="928"><td class="num" id="LN928">928</td><td class="line"> priv-&gt;gsettings_notification_pspec = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="929"><td class="num" id="LN929">929</td><td class="line"> priv-&gt;locked = <span class='macro'>g_new0 (gboolean, LAST_PROP)<span class='macro_popup'>((gboolean *) g_malloc0_n ((LAST_PROP), sizeof (gboolean)))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="930"><td class="num" id="LN930">930</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="931"><td class="num" id="LN931">931</td><td class="line"> priv-&gt;properties = g_value_array_new (LAST_PROP);</td></tr>
+<tr class="codeline" data-linenumber="932"><td class="num" id="LN932">932</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; LAST_PROP; ++i)</td></tr>
+<tr class="codeline" data-linenumber="933"><td class="num" id="LN933">933</td><td class="line"> g_value_array_append (priv-&gt;properties, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="934"><td class="num" id="LN934">934</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="935"><td class="num" id="LN935">935</td><td class="line"> pspecs = g_object_class_list_properties (<span class='macro'>G_OBJECT_CLASS (TERMINAL_PROFILE_GET_CLASS (profile))<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((((((TerminalProfileClass*) (((GTypeInstance*) ((profile)<br>))-&gt;g_class)))))), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, &amp;n_pspecs);</td></tr>
+<tr class="codeline" data-linenumber="936"><td class="num" id="LN936">936</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; n_pspecs; ++i)</td></tr>
+<tr class="codeline" data-linenumber="937"><td class="num" id="LN937">937</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="938"><td class="num" id="LN938">938</td><td class="line"> GParamSpec *pspec = pspecs[i];</td></tr>
+<tr class="codeline" data-linenumber="939"><td class="num" id="LN939">939</td><td class="line"> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="940"><td class="num" id="LN940">940</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="941"><td class="num" id="LN941">941</td><td class="line"> <span class='keyword'>if</span> (pspec-&gt;owner_type != <span class='macro'>TERMINAL_TYPE_PROFILE<span class='macro_popup'>(terminal_profile_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="942"><td class="num" id="LN942">942</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="943"><td class="num" id="LN943">943</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="944"><td class="num" id="LN944">944</td><td class="line"> <span class='macro'>g_assert (pspec-&gt;param_id &lt; LAST_PROP)<span class='macro_popup'>do { if (pspec-&gt;param_id &lt; LAST_PROP) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-profile.c", 944, ((const char*) (__func__<br>)), "pspec-&gt;param_id &lt; LAST_PROP"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="945"><td class="num" id="LN945">945</td><td class="line"> value = g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id);</td></tr>
+<tr class="codeline" data-linenumber="946"><td class="num" id="LN946">946</td><td class="line"> g_value_init (value, pspec-&gt;value_type);</td></tr>
+<tr class="codeline" data-linenumber="947"><td class="num" id="LN947">947</td><td class="line"> g_param_value_set_default (pspec, value);</td></tr>
+<tr class="codeline" data-linenumber="948"><td class="num" id="LN948">948</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="949"><td class="num" id="LN949">949</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="950"><td class="num" id="LN950">950</td><td class="line"> g_free (pspecs);</td></tr>
+<tr class="codeline" data-linenumber="951"><td class="num" id="LN951">951</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="952"><td class="num" id="LN952">952</td><td class="line"> <span class='comment'>/* A few properties don't have defaults via the param spec; set them explicitly */</span></td></tr>
+<tr class="codeline" data-linenumber="953"><td class="num" id="LN953">953</td><td class="line"> object_class = <span class='macro'>G_OBJECT_CLASS (TERMINAL_PROFILE_GET_CLASS (profile))<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((((((TerminalProfileClass*) (((GTypeInstance*) ((profile)<br>))-&gt;g_class)))))), (((GType) ((20) &lt;&lt; (2))))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="954"><td class="num" id="LN954">954</td><td class="line"> terminal_profile_reset_property_internal (profile, g_object_class_find_property (object_class, <span class='macro'>TERMINAL_PROFILE_FOREGROUND_COLOR<span class='macro_popup'>"foreground-color"</span></span>), <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="955"><td class="num" id="LN955">955</td><td class="line"> terminal_profile_reset_property_internal (profile, g_object_class_find_property (object_class, <span class='macro'>TERMINAL_PROFILE_BOLD_COLOR<span class='macro_popup'>"bold-color"</span></span>), <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="956"><td class="num" id="LN956">956</td><td class="line"> terminal_profile_reset_property_internal (profile, g_object_class_find_property (object_class, <span class='macro'>TERMINAL_PROFILE_BACKGROUND_COLOR<span class='macro_popup'>"background-color"</span></span>), <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="957"><td class="num" id="LN957">957</td><td class="line"> terminal_profile_reset_property_internal (profile, g_object_class_find_property (object_class, <span class='macro'>TERMINAL_PROFILE_FONT<span class='macro_popup'>"font"</span></span>), <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="958"><td class="num" id="LN958">958</td><td class="line"> terminal_profile_reset_property_internal (profile, g_object_class_find_property (object_class, <span class='macro'>TERMINAL_PROFILE_PALETTE<span class='macro_popup'>"palette"</span></span>), <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="959"><td class="num" id="LN959">959</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="960"><td class="num" id="LN960">960</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="961"><td class="num" id="LN961">961</td><td class="line"><span class='keyword'>static</span> GObject *</td></tr>
+<tr class="codeline" data-linenumber="962"><td class="num" id="LN962">962</td><td class="line">terminal_profile_constructor (GType type,</td></tr>
+<tr class="codeline" data-linenumber="963"><td class="num" id="LN963">963</td><td class="line"> guint n_construct_properties,</td></tr>
+<tr class="codeline" data-linenumber="964"><td class="num" id="LN964">964</td><td class="line"> GObjectConstructParam *construct_params)</td></tr>
+<tr class="codeline" data-linenumber="965"><td class="num" id="LN965">965</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="966"><td class="num" id="LN966">966</td><td class="line"> GObject *object;</td></tr>
+<tr class="codeline" data-linenumber="967"><td class="num" id="LN967">967</td><td class="line"> TerminalProfile *profile;</td></tr>
+<tr class="codeline" data-linenumber="968"><td class="num" id="LN968">968</td><td class="line"> TerminalProfilePrivate *priv;</td></tr>
+<tr class="codeline" data-linenumber="969"><td class="num" id="LN969">969</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *name;</td></tr>
+<tr class="codeline" data-linenumber="970"><td class="num" id="LN970">970</td><td class="line"> GParamSpec **pspecs;</td></tr>
+<tr class="codeline" data-linenumber="971"><td class="num" id="LN971">971</td><td class="line"> guint n_pspecs, i;</td></tr>
+<tr class="codeline" data-linenumber="972"><td class="num" id="LN972">972</td><td class="line"> gchar *concat;</td></tr>
+<tr class="codeline" data-linenumber="973"><td class="num" id="LN973">973</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="974"><td class="num" id="LN974">974</td><td class="line"> object = <span class='macro'>G_OBJECT_CLASS (terminal_profile_parent_class)<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((terminal_profile_parent_class)), (((GType) ((20) &lt;&lt;<br> (2))))))))</span></span>-&gt;constructor</td></tr>
+<tr class="codeline" data-linenumber="975"><td class="num" id="LN975">975</td><td class="line"> (type, n_construct_properties, construct_params);</td></tr>
+<tr class="codeline" data-linenumber="976"><td class="num" id="LN976">976</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="977"><td class="num" id="LN977">977</td><td class="line"> profile = <span class='macro'>TERMINAL_PROFILE (object)<span class='macro_popup'>((((TerminalProfile*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((object)), ((terminal_profile_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="978"><td class="num" id="LN978">978</td><td class="line"> priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="979"><td class="num" id="LN979">979</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="980"><td class="num" id="LN980">980</td><td class="line"> name = g_value_get_string (g_value_array_get_nth (priv-&gt;properties, PROP_NAME));</td></tr>
+<tr class="codeline" data-linenumber="981"><td class="num" id="LN981">981</td><td class="line"> <span class='macro'>g_assert (name != NULL)<span class='macro_popup'>do { if (name != ((void*)0)) ; else g_assertion_message_expr (<br>((gchar*) 0), "terminal-profile.c", 981, ((const char*) (__func__<br>)), "name != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="982"><td class="num" id="LN982">982</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="983"><td class="num" id="LN983">983</td><td class="line"> concat = g_strconcat (<span class='macro'>CONF_PROFILE_PREFIX<span class='macro_popup'>"/org/mate/terminal/profiles/"</span></span>, name, <span class='string_literal'>"/"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="984"><td class="num" id="LN984">984</td><td class="line"> priv-&gt;settings = g_settings_new_with_path (<span class='macro'>CONF_PROFILE_SCHEMA<span class='macro_popup'>"org.mate.terminal" ".profile"</span></span>, concat);</td></tr>
+<tr class="codeline" data-linenumber="985"><td class="num" id="LN985">985</td><td class="line"> <span class='macro'>g_assert (priv-&gt;settings != NULL)<span class='macro_popup'>do { if (priv-&gt;settings != ((void*)0)) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-profile.c", 985, ((const char*) (__func__<br>)), "priv-&gt;settings != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="986"><td class="num" id="LN986">986</td><td class="line"> g_free (concat);</td></tr>
+<tr class="codeline" data-linenumber="987"><td class="num" id="LN987">987</td><td class="line"> concat = g_strconcat(<span class='string_literal'>"changed::"</span>, priv-&gt;profile_dir, <span class='string_literal'>"/"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="988"><td class="num" id="LN988">988</td><td class="line"> <span class='macro'>g_signal_connect (priv-&gt;settings,<span class='macro_popup'>g_signal_connect_data ((priv-&gt;settings), (concat), (((GCallback<br>) (terminal_profile_gsettings_notify_cb))), (profile), ((void<br>*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="989"><td class="num" id="LN989">989</td><td class="line"> <span class='macro'>concat,<span class='macro_popup'>g_signal_connect_data ((priv-&gt;settings), (concat), (((GCallback<br>) (terminal_profile_gsettings_notify_cb))), (profile), ((void<br>*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="990"><td class="num" id="LN990">990</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_profile_gsettings_notify_cb),<span class='macro_popup'>g_signal_connect_data ((priv-&gt;settings), (concat), (((GCallback<br>) (terminal_profile_gsettings_notify_cb))), (profile), ((void<br>*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="991"><td class="num" id="LN991">991</td><td class="line"> <span class='macro'>profile)<span class='macro_popup'>g_signal_connect_data ((priv-&gt;settings), (concat), (((GCallback<br>) (terminal_profile_gsettings_notify_cb))), (profile), ((void<br>*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="992"><td class="num" id="LN992">992</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="993"><td class="num" id="LN993">993</td><td class="line"> g_free (concat);</td></tr>
+<tr class="codeline" data-linenumber="994"><td class="num" id="LN994">994</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="995"><td class="num" id="LN995">995</td><td class="line"> <span class='comment'>/* Now load those properties from GSettings that were not set as construction params */</span></td></tr>
+<tr class="codeline" data-linenumber="996"><td class="num" id="LN996">996</td><td class="line"> pspecs = g_object_class_list_properties (<span class='macro'>G_OBJECT_CLASS (TERMINAL_PROFILE_GET_CLASS (profile))<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((((((TerminalProfileClass*) (((GTypeInstance*) ((profile)<br>))-&gt;g_class)))))), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, &amp;n_pspecs);</td></tr>
+<tr class="codeline" data-linenumber="997"><td class="num" id="LN997">997</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; n_pspecs; ++i)</td></tr>
+<tr class="codeline" data-linenumber="998"><td class="num" id="LN998">998</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="999"><td class="num" id="LN999">999</td><td class="line"> GParamSpec *pspec = pspecs[i];</td></tr>
+<tr class="codeline" data-linenumber="1000"><td class="num" id="LN1000">1000</td><td class="line"> guint j;</td></tr>
+<tr class="codeline" data-linenumber="1001"><td class="num" id="LN1001">1001</td><td class="line"> gboolean is_construct = <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1002"><td class="num" id="LN1002">1002</td><td class="line"> <span class='keyword'>char</span> *key;</td></tr>
+<tr class="codeline" data-linenumber="1003"><td class="num" id="LN1003">1003</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1004"><td class="num" id="LN1004">1004</td><td class="line"> <span class='keyword'>if</span> (pspec-&gt;owner_type != <span class='macro'>TERMINAL_TYPE_PROFILE<span class='macro_popup'>(terminal_profile_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1005"><td class="num" id="LN1005">1005</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="1006"><td class="num" id="LN1006">1006</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1007"><td class="num" id="LN1007">1007</td><td class="line"> <span class='keyword'>if</span> ((pspec-&gt;flags &amp; G_PARAM_WRITABLE) == 0 ||</td></tr>
+<tr class="codeline" data-linenumber="1008"><td class="num" id="LN1008">1008</td><td class="line"> (pspec-&gt;flags &amp; G_PARAM_CONSTRUCT_ONLY) != 0)</td></tr>
+<tr class="codeline" data-linenumber="1009"><td class="num" id="LN1009">1009</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="1010"><td class="num" id="LN1010">1010</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1011"><td class="num" id="LN1011">1011</td><td class="line"> <span class='keyword'>for</span> (j = 0; j &lt; n_construct_properties; ++j)</td></tr>
+<tr class="codeline" data-linenumber="1012"><td class="num" id="LN1012">1012</td><td class="line"> <span class='keyword'>if</span> (pspec == construct_params[j].pspec)</td></tr>
+<tr class="codeline" data-linenumber="1013"><td class="num" id="LN1013">1013</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1014"><td class="num" id="LN1014">1014</td><td class="line"> is_construct = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1015"><td class="num" id="LN1015">1015</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1016"><td class="num" id="LN1016">1016</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1017"><td class="num" id="LN1017">1017</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1018"><td class="num" id="LN1018">1018</td><td class="line"> <span class='keyword'>if</span> (is_construct)</td></tr>
+<tr class="codeline" data-linenumber="1019"><td class="num" id="LN1019">1019</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="1020"><td class="num" id="LN1020">1020</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1021"><td class="num" id="LN1021">1021</td><td class="line"> key = g_param_spec_get_qdata (pspec, gsettings_key_quark);</td></tr>
+<tr class="codeline" data-linenumber="1022"><td class="num" id="LN1022">1022</td><td class="line"> <span class='keyword'>if</span> (!key)</td></tr>
+<tr class="codeline" data-linenumber="1023"><td class="num" id="LN1023">1023</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="1024"><td class="num" id="LN1024">1024</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1025"><td class="num" id="LN1025">1025</td><td class="line"> terminal_profile_gsettings_notify_cb (priv-&gt;settings, key, profile);</td></tr>
+<tr class="codeline" data-linenumber="1026"><td class="num" id="LN1026">1026</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1027"><td class="num" id="LN1027">1027</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1028"><td class="num" id="LN1028">1028</td><td class="line"> g_free (pspecs);</td></tr>
+<tr class="codeline" data-linenumber="1029"><td class="num" id="LN1029">1029</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1030"><td class="num" id="LN1030">1030</td><td class="line"> <span class='keyword'>return</span> object;</td></tr>
+<tr class="codeline" data-linenumber="1031"><td class="num" id="LN1031">1031</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1032"><td class="num" id="LN1032">1032</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1033"><td class="num" id="LN1033">1033</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1034"><td class="num" id="LN1034">1034</td><td class="line">terminal_profile_finalize (GObject *object)</td></tr>
+<tr class="codeline" data-linenumber="1035"><td class="num" id="LN1035">1035</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1036"><td class="num" id="LN1036">1036</td><td class="line"> TerminalProfile *profile = <span class='macro'>TERMINAL_PROFILE (object)<span class='macro_popup'>((((TerminalProfile*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((object)), ((terminal_profile_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1037"><td class="num" id="LN1037">1037</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1038"><td class="num" id="LN1038">1038</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1039"><td class="num" id="LN1039">1039</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (priv-&gt;settings,<span class='macro_popup'>g_signal_handlers_disconnect_matched ((priv-&gt;settings), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_profile_gsettings_notify_cb))), (<br>profile))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1040"><td class="num" id="LN1040">1040</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_profile_gsettings_notify_cb),<span class='macro_popup'>g_signal_handlers_disconnect_matched ((priv-&gt;settings), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_profile_gsettings_notify_cb))), (<br>profile))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1041"><td class="num" id="LN1041">1041</td><td class="line"> <span class='macro'>profile)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((priv-&gt;settings), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_profile_gsettings_notify_cb))), (<br>profile))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1042"><td class="num" id="LN1042">1042</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1043"><td class="num" id="LN1043">1043</td><td class="line"> <span class='keyword'>if</span> (priv-&gt;save_idle_id)</td></tr>
+<tr class="codeline" data-linenumber="1044"><td class="num" id="LN1044">1044</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1045"><td class="num" id="LN1045">1045</td><td class="line"> g_source_remove (priv-&gt;save_idle_id);</td></tr>
+<tr class="codeline" data-linenumber="1046"><td class="num" id="LN1046">1046</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1047"><td class="num" id="LN1047">1047</td><td class="line"> <span class='comment'>/* Save now */</span></td></tr>
+<tr class="codeline" data-linenumber="1048"><td class="num" id="LN1048">1048</td><td class="line"> terminal_profile_save (profile);</td></tr>
+<tr class="codeline" data-linenumber="1049"><td class="num" id="LN1049">1049</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1050"><td class="num" id="LN1050">1050</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1051"><td class="num" id="LN1051">1051</td><td class="line"> _terminal_profile_forget (profile);</td></tr>
+<tr class="codeline" data-linenumber="1052"><td class="num" id="LN1052">1052</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1053"><td class="num" id="LN1053">1053</td><td class="line"> g_object_unref (priv-&gt;settings);</td></tr>
+<tr class="codeline" data-linenumber="1054"><td class="num" id="LN1054">1054</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1055"><td class="num" id="LN1055">1055</td><td class="line"> g_free (priv-&gt;profile_dir);</td></tr>
+<tr class="codeline" data-linenumber="1056"><td class="num" id="LN1056">1056</td><td class="line"> g_free (priv-&gt;locked);</td></tr>
+<tr class="codeline" data-linenumber="1057"><td class="num" id="LN1057">1057</td><td class="line"> g_value_array_free (priv-&gt;properties);</td></tr>
+<tr class="codeline" data-linenumber="1058"><td class="num" id="LN1058">1058</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1059"><td class="num" id="LN1059">1059</td><td class="line"> <span class='macro'>G_OBJECT_CLASS (terminal_profile_parent_class)<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((terminal_profile_parent_class)), (((GType) ((20) &lt;&lt;<br> (2))))))))</span></span>-&gt;finalize (object);</td></tr>
+<tr class="codeline" data-linenumber="1060"><td class="num" id="LN1060">1060</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1061"><td class="num" id="LN1061">1061</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1062"><td class="num" id="LN1062">1062</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1063"><td class="num" id="LN1063">1063</td><td class="line">terminal_profile_get_property (GObject *object,</td></tr>
+<tr class="codeline" data-linenumber="1064"><td class="num" id="LN1064">1064</td><td class="line"> guint prop_id,</td></tr>
+<tr class="codeline" data-linenumber="1065"><td class="num" id="LN1065">1065</td><td class="line"> GValue *value,</td></tr>
+<tr class="codeline" data-linenumber="1066"><td class="num" id="LN1066">1066</td><td class="line"> GParamSpec *pspec)</td></tr>
+<tr class="codeline" data-linenumber="1067"><td class="num" id="LN1067">1067</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1068"><td class="num" id="LN1068">1068</td><td class="line"> TerminalProfile *profile = <span class='macro'>TERMINAL_PROFILE (object)<span class='macro_popup'>((((TerminalProfile*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((object)), ((terminal_profile_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1069"><td class="num" id="LN1069">1069</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1070"><td class="num" id="LN1070">1070</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1071"><td class="num" id="LN1071">1071</td><td class="line"> <span class='keyword'>if</span> (prop_id == 0 || prop_id &gt;= LAST_PROP)</td></tr>
+<tr class="codeline" data-linenumber="1072"><td class="num" id="LN1072">1072</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1073"><td class="num" id="LN1073">1073</td><td class="line"> <span class='macro'>G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec)<span class='macro_popup'>do { GObject *_glib__object = (GObject*) ((object)); GParamSpec<br> *_glib__pspec = (GParamSpec*) ((pspec)); guint _glib__property_id<br> = ((prop_id)); g_warning ("%s:%d: invalid %s id %u for \"%s\" of type '%s' in '%s'"<br>, "terminal-profile.c", 1073, ("property"), _glib__property_id<br>, _glib__pspec-&gt;name, g_type_name ((((((GTypeClass*) (((GTypeInstance<br>*) (_glib__pspec))-&gt;g_class))-&gt;g_type)))), (g_type_name<br> ((((((GTypeClass*) (((GTypeInstance*) (_glib__object))-&gt;g_class<br>))-&gt;g_type)))))); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1074"><td class="num" id="LN1074">1074</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1075"><td class="num" id="LN1075">1075</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1076"><td class="num" id="LN1076">1076</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1077"><td class="num" id="LN1077">1077</td><td class="line"> <span class='comment'>/* Note: When adding things here, do the same in get_prop_value_from_prop_name! */</span></td></tr>
+<tr class="codeline" data-linenumber="1078"><td class="num" id="LN1078">1078</td><td class="line"> <span class='keyword'>switch</span> (prop_id)</td></tr>
+<tr class="codeline" data-linenumber="1079"><td class="num" id="LN1079">1079</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1080"><td class="num" id="LN1080">1080</td><td class="line"> <span class='keyword'>case</span> PROP_BACKGROUND_IMAGE:</td></tr>
+<tr class="codeline" data-linenumber="1081"><td class="num" id="LN1081">1081</td><td class="line"> ensure_pixbuf_property (profile, PROP_BACKGROUND_IMAGE_FILE, PROP_BACKGROUND_IMAGE, &amp;priv-&gt;background_load_failed);</td></tr>
+<tr class="codeline" data-linenumber="1082"><td class="num" id="LN1082">1082</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1083"><td class="num" id="LN1083">1083</td><td class="line"> <span class='keyword'>default</span>:</td></tr>
+<tr class="codeline" data-linenumber="1084"><td class="num" id="LN1084">1084</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1085"><td class="num" id="LN1085">1085</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1086"><td class="num" id="LN1086">1086</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1087"><td class="num" id="LN1087">1087</td><td class="line"> g_value_copy (g_value_array_get_nth (priv-&gt;properties, prop_id), value);</td></tr>
+<tr class="codeline" data-linenumber="1088"><td class="num" id="LN1088">1088</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1089"><td class="num" id="LN1089">1089</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1090"><td class="num" id="LN1090">1090</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1091"><td class="num" id="LN1091">1091</td><td class="line">terminal_profile_set_property (GObject *object,</td></tr>
+<tr class="codeline" data-linenumber="1092"><td class="num" id="LN1092">1092</td><td class="line"> guint prop_id,</td></tr>
+<tr class="codeline" data-linenumber="1093"><td class="num" id="LN1093">1093</td><td class="line"> <span class='keyword'>const</span> GValue *value,</td></tr>
+<tr class="codeline" data-linenumber="1094"><td class="num" id="LN1094">1094</td><td class="line"> GParamSpec *pspec)</td></tr>
+<tr class="codeline" data-linenumber="1095"><td class="num" id="LN1095">1095</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1096"><td class="num" id="LN1096">1096</td><td class="line"> TerminalProfile *profile = <span class='macro'>TERMINAL_PROFILE (object)<span class='macro_popup'>((((TerminalProfile*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((object)), ((terminal_profile_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1097"><td class="num" id="LN1097">1097</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1098"><td class="num" id="LN1098">1098</td><td class="line"> GValue *prop_value;</td></tr>
+<tr class="codeline" data-linenumber="1099"><td class="num" id="LN1099">1099</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1100"><td class="num" id="LN1100">1100</td><td class="line"> <span class='keyword'>if</span> (prop_id == 0 || prop_id &gt;= LAST_PROP)</td></tr>
+<tr class="codeline" data-linenumber="1101"><td class="num" id="LN1101">1101</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1102"><td class="num" id="LN1102">1102</td><td class="line"> <span class='macro'>G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec)<span class='macro_popup'>do { GObject *_glib__object = (GObject*) ((object)); GParamSpec<br> *_glib__pspec = (GParamSpec*) ((pspec)); guint _glib__property_id<br> = ((prop_id)); g_warning ("%s:%d: invalid %s id %u for \"%s\" of type '%s' in '%s'"<br>, "terminal-profile.c", 1102, ("property"), _glib__property_id<br>, _glib__pspec-&gt;name, g_type_name ((((((GTypeClass*) (((GTypeInstance<br>*) (_glib__pspec))-&gt;g_class))-&gt;g_type)))), (g_type_name<br> ((((((GTypeClass*) (((GTypeInstance*) (_glib__object))-&gt;g_class<br>))-&gt;g_type)))))); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1103"><td class="num" id="LN1103">1103</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1104"><td class="num" id="LN1104">1104</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1105"><td class="num" id="LN1105">1105</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1106"><td class="num" id="LN1106">1106</td><td class="line"> prop_value = g_value_array_get_nth (priv-&gt;properties, prop_id);</td></tr>
+<tr class="codeline" data-linenumber="1107"><td class="num" id="LN1107">1107</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1108"><td class="num" id="LN1108">1108</td><td class="line"> <span class='comment'>/* Preprocessing */</span></td></tr>
+<tr class="codeline" data-linenumber="1109"><td class="num" id="LN1109">1109</td><td class="line"> <span class='keyword'>switch</span> (prop_id)</td></tr>
+<tr class="codeline" data-linenumber="1110"><td class="num" id="LN1110">1110</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1111"><td class="num" id="LN1111">1111</td><td class="line"><span class='directive'>#if 0</span></td></tr>
+<tr class="codeline" data-linenumber="1112"><td class="num" id="LN1112">1112</td><td class="line"> <span class='keyword'>case</span> PROP_FONT:</td></tr>
+<tr class="codeline" data-linenumber="1113"><td class="num" id="LN1113">1113</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1114"><td class="num" id="LN1114">1114</td><td class="line"> PangoFontDescription *font_desc, *new_font_desc;</td></tr>
+<tr class="codeline" data-linenumber="1115"><td class="num" id="LN1115">1115</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1116"><td class="num" id="LN1116">1116</td><td class="line"> font_desc = g_value_get_boxed (prop_value);</td></tr>
+<tr class="codeline" data-linenumber="1117"><td class="num" id="LN1117">1117</td><td class="line"> new_font_desc = g_value_get_boxed (value);</td></tr>
+<tr class="codeline" data-linenumber="1118"><td class="num" id="LN1118">1118</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1119"><td class="num" id="LN1119">1119</td><td class="line"> <span class='keyword'>if</span> (font_desc &amp;&amp; new_font_desc)</td></tr>
+<tr class="codeline" data-linenumber="1120"><td class="num" id="LN1120">1120</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1121"><td class="num" id="LN1121">1121</td><td class="line"> <span class='comment'>/* Merge in case the new string isn't complete enough to load a font */</span></td></tr>
+<tr class="codeline" data-linenumber="1122"><td class="num" id="LN1122">1122</td><td class="line"> pango_font_description_merge (font_desc, new_font_desc, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1123"><td class="num" id="LN1123">1123</td><td class="line"> pango_font_description_free (new_font_desc);</td></tr>
+<tr class="codeline" data-linenumber="1124"><td class="num" id="LN1124">1124</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1125"><td class="num" id="LN1125">1125</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1126"><td class="num" id="LN1126">1126</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1127"><td class="num" id="LN1127">1127</td><td class="line"> <span class='comment'>/* fall-through */</span></td></tr>
+<tr class="codeline" data-linenumber="1128"><td class="num" id="LN1128">1128</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1129"><td class="num" id="LN1129">1129</td><td class="line"><span class='directive'>#endif</span></td></tr>
+<tr class="codeline" data-linenumber="1130"><td class="num" id="LN1130">1130</td><td class="line"> <span class='keyword'>default</span>:</td></tr>
+<tr class="codeline" data-linenumber="1131"><td class="num" id="LN1131">1131</td><td class="line"> g_value_copy (value, prop_value);</td></tr>
+<tr class="codeline" data-linenumber="1132"><td class="num" id="LN1132">1132</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1133"><td class="num" id="LN1133">1133</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1134"><td class="num" id="LN1134">1134</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1135"><td class="num" id="LN1135">1135</td><td class="line"> <span class='comment'>/* Postprocessing */</span></td></tr>
+<tr class="codeline" data-linenumber="1136"><td class="num" id="LN1136">1136</td><td class="line"> <span class='keyword'>switch</span> (prop_id)</td></tr>
+<tr class="codeline" data-linenumber="1137"><td class="num" id="LN1137">1137</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1138"><td class="num" id="LN1138">1138</td><td class="line"> <span class='keyword'>case</span> PROP_NAME:</td></tr>
+<tr class="codeline" data-linenumber="1139"><td class="num" id="LN1139">1139</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1140"><td class="num" id="LN1140">1140</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *name = g_value_get_string (value);</td></tr>
+<tr class="codeline" data-linenumber="1141"><td class="num" id="LN1141">1141</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1142"><td class="num" id="LN1142">1142</td><td class="line"> <span class='macro'>g_assert (name != NULL)<span class='macro_popup'>do { if (name != ((void*)0)) ; else g_assertion_message_expr (<br>((gchar*) 0), "terminal-profile.c", 1142, ((const char*) (__func__<br>)), "name != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1143"><td class="num" id="LN1143">1143</td><td class="line"> priv-&gt;profile_dir = <span class='macro'>g_strdup (name)<span class='macro_popup'>g_strdup_inline (name)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1144"><td class="num" id="LN1144">1144</td><td class="line"> <span class='keyword'>if</span> (priv-&gt;settings != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>) {</td></tr>
+<tr class="codeline" data-linenumber="1145"><td class="num" id="LN1145">1145</td><td class="line"> gchar *concat;</td></tr>
+<tr class="codeline" data-linenumber="1146"><td class="num" id="LN1146">1146</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (priv-&gt;settings,<span class='macro_popup'>g_signal_handlers_disconnect_matched ((priv-&gt;settings), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_profile_gsettings_notify_cb))), (<br>profile))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1147"><td class="num" id="LN1147">1147</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_profile_gsettings_notify_cb),<span class='macro_popup'>g_signal_handlers_disconnect_matched ((priv-&gt;settings), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_profile_gsettings_notify_cb))), (<br>profile))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1148"><td class="num" id="LN1148">1148</td><td class="line"> <span class='macro'>profile)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((priv-&gt;settings), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_profile_gsettings_notify_cb))), (<br>profile))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1149"><td class="num" id="LN1149">1149</td><td class="line"> g_object_unref (priv-&gt;settings);</td></tr>
+<tr class="codeline" data-linenumber="1150"><td class="num" id="LN1150">1150</td><td class="line"> concat= g_strconcat (<span class='macro'>CONF_PROFILE_PREFIX<span class='macro_popup'>"/org/mate/terminal/profiles/"</span></span>, priv-&gt;profile_dir, <span class='string_literal'>"/"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1151"><td class="num" id="LN1151">1151</td><td class="line"> priv-&gt;settings = g_settings_new_with_path (<span class='macro'>CONF_PROFILE_SCHEMA<span class='macro_popup'>"org.mate.terminal" ".profile"</span></span>, concat);</td></tr>
+<tr class="codeline" data-linenumber="1152"><td class="num" id="LN1152">1152</td><td class="line"> g_free (concat);</td></tr>
+<tr class="codeline" data-linenumber="1153"><td class="num" id="LN1153">1153</td><td class="line"> concat = g_strconcat(<span class='string_literal'>"changed::"</span>, priv-&gt;profile_dir, <span class='string_literal'>"/"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1154"><td class="num" id="LN1154">1154</td><td class="line"> <span class='macro'>g_signal_connect (priv-&gt;settings,<span class='macro_popup'>g_signal_connect_data ((priv-&gt;settings), (concat), (((GCallback<br>) (terminal_profile_gsettings_notify_cb))), (profile), ((void<br>*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1155"><td class="num" id="LN1155">1155</td><td class="line"> <span class='macro'>concat,<span class='macro_popup'>g_signal_connect_data ((priv-&gt;settings), (concat), (((GCallback<br>) (terminal_profile_gsettings_notify_cb))), (profile), ((void<br>*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1156"><td class="num" id="LN1156">1156</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_profile_gsettings_notify_cb),<span class='macro_popup'>g_signal_connect_data ((priv-&gt;settings), (concat), (((GCallback<br>) (terminal_profile_gsettings_notify_cb))), (profile), ((void<br>*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1157"><td class="num" id="LN1157">1157</td><td class="line"> <span class='macro'>profile)<span class='macro_popup'>g_signal_connect_data ((priv-&gt;settings), (concat), (((GCallback<br>) (terminal_profile_gsettings_notify_cb))), (profile), ((void<br>*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1158"><td class="num" id="LN1158">1158</td><td class="line"> g_free (concat);</td></tr>
+<tr class="codeline" data-linenumber="1159"><td class="num" id="LN1159">1159</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1160"><td class="num" id="LN1160">1160</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1161"><td class="num" id="LN1161">1161</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1162"><td class="num" id="LN1162">1162</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1163"><td class="num" id="LN1163">1163</td><td class="line"> <span class='keyword'>case</span> PROP_BACKGROUND_IMAGE_FILE:</td></tr>
+<tr class="codeline" data-linenumber="1164"><td class="num" id="LN1164">1164</td><td class="line"> <span class='comment'>/* Clear the cached image */</span></td></tr>
+<tr class="codeline" data-linenumber="1165"><td class="num" id="LN1165">1165</td><td class="line"> g_value_set_object (g_value_array_get_nth (priv-&gt;properties, PROP_BACKGROUND_IMAGE), <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1166"><td class="num" id="LN1166">1166</td><td class="line"> priv-&gt;background_load_failed = <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1167"><td class="num" id="LN1167">1167</td><td class="line"> g_object_notify (object, <span class='macro'>TERMINAL_PROFILE_BACKGROUND_IMAGE<span class='macro_popup'>"background-image"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1168"><td class="num" id="LN1168">1168</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1169"><td class="num" id="LN1169">1169</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1170"><td class="num" id="LN1170">1170</td><td class="line"> <span class='keyword'>default</span>:</td></tr>
+<tr class="codeline" data-linenumber="1171"><td class="num" id="LN1171">1171</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1172"><td class="num" id="LN1172">1172</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1173"><td class="num" id="LN1173">1173</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1174"><td class="num" id="LN1174">1174</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1175"><td class="num" id="LN1175">1175</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1176"><td class="num" id="LN1176">1176</td><td class="line">terminal_profile_notify (GObject *object,</td></tr>
+<tr class="codeline" data-linenumber="1177"><td class="num" id="LN1177">1177</td><td class="line"> GParamSpec *pspec)</td></tr>
+<tr class="codeline" data-linenumber="1178"><td class="num" id="LN1178">1178</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1179"><td class="num" id="LN1179">1179</td><td class="line"> TerminalProfilePrivate *priv = <span class='macro'>TERMINAL_PROFILE (object)<span class='macro_popup'>((((TerminalProfile*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((object)), ((terminal_profile_get_type ()))))))</span></span>-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1180"><td class="num" id="LN1180">1180</td><td class="line"> <span class='keyword'>void</span> (* notify) (GObject *, GParamSpec *) = <span class='macro'>G_OBJECT_CLASS (terminal_profile_parent_class)<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((terminal_profile_parent_class)), (((GType) ((20) &lt;&lt;<br> (2))))))))</span></span>-&gt;notify;</td></tr>
+<tr class="codeline" data-linenumber="1181"><td class="num" id="LN1181">1181</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1182"><td class="num" id="LN1182">1182</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_PROFILE,<span class='macro_popup'>do { if (0) g_printerr("Property notification for prop %s\n",<br> pspec-&gt;name); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1183"><td class="num" id="LN1183">1183</td><td class="line"> <span class='string_literal'><span class='macro'>"Property notification for prop %s\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("Property notification for prop %s\n",<br> pspec-&gt;name); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1184"><td class="num" id="LN1184">1184</td><td class="line"> <span class='macro'>pspec-&gt;name)<span class='macro_popup'>do { if (0) g_printerr("Property notification for prop %s\n",<br> pspec-&gt;name); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1185"><td class="num" id="LN1185">1185</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1186"><td class="num" id="LN1186">1186</td><td class="line"> <span class='keyword'>if</span> (notify)</td></tr>
+<tr class="codeline" data-linenumber="1187"><td class="num" id="LN1187">1187</td><td class="line"> notify (object, pspec);</td></tr>
+<tr class="codeline" data-linenumber="1188"><td class="num" id="LN1188">1188</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1189"><td class="num" id="LN1189">1189</td><td class="line"> <span class='keyword'>if</span> (pspec-&gt;owner_type == <span class='macro'>TERMINAL_TYPE_PROFILE<span class='macro_popup'>(terminal_profile_get_type ())</span></span> &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="1190"><td class="num" id="LN1190">1190</td><td class="line"> (pspec-&gt;flags &amp; G_PARAM_WRITABLE) &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="1191"><td class="num" id="LN1191">1191</td><td class="line"> g_param_spec_get_qdata (pspec, gsettings_key_quark) != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span> &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="1192"><td class="num" id="LN1192">1192</td><td class="line"> pspec != priv-&gt;gsettings_notification_pspec)</td></tr>
+<tr class="codeline" data-linenumber="1193"><td class="num" id="LN1193">1193</td><td class="line"> terminal_profile_schedule_save (<span class='macro'>TERMINAL_PROFILE (object)<span class='macro_popup'>((((TerminalProfile*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((object)), ((terminal_profile_get_type ()))))))</span></span>, pspec);</td></tr>
+<tr class="codeline" data-linenumber="1194"><td class="num" id="LN1194">1194</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1195"><td class="num" id="LN1195">1195</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1196"><td class="num" id="LN1196">1196</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1197"><td class="num" id="LN1197">1197</td><td class="line">terminal_profile_class_init (TerminalProfileClass *klass)</td></tr>
+<tr class="codeline" data-linenumber="1198"><td class="num" id="LN1198">1198</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1199"><td class="num" id="LN1199">1199</td><td class="line"> GObjectClass *object_class = <span class='macro'>G_OBJECT_CLASS (klass)<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((klass)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1200"><td class="num" id="LN1200">1200</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1201"><td class="num" id="LN1201">1201</td><td class="line"> gsettings_key_quark = g_quark_from_static_string (<span class='string_literal'>"GT::GSettingsKey"</span>);</td></tr>
+<tr class="codeline" data-linenumber="1202"><td class="num" id="LN1202">1202</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1203"><td class="num" id="LN1203">1203</td><td class="line"> object_class-&gt;constructor = terminal_profile_constructor;</td></tr>
+<tr class="codeline" data-linenumber="1204"><td class="num" id="LN1204">1204</td><td class="line"> object_class-&gt;finalize = terminal_profile_finalize;</td></tr>
+<tr class="codeline" data-linenumber="1205"><td class="num" id="LN1205">1205</td><td class="line"> object_class-&gt;get_property = terminal_profile_get_property;</td></tr>
+<tr class="codeline" data-linenumber="1206"><td class="num" id="LN1206">1206</td><td class="line"> object_class-&gt;set_property = terminal_profile_set_property;</td></tr>
+<tr class="codeline" data-linenumber="1207"><td class="num" id="LN1207">1207</td><td class="line"> object_class-&gt;notify = terminal_profile_notify;</td></tr>
+<tr class="codeline" data-linenumber="1208"><td class="num" id="LN1208">1208</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1209"><td class="num" id="LN1209">1209</td><td class="line"> signals[FORGOTTEN] =</td></tr>
+<tr class="codeline" data-linenumber="1210"><td class="num" id="LN1210">1210</td><td class="line"> g_signal_new (<span class='string_literal'>"forgotten"</span>,</td></tr>
+<tr class="codeline" data-linenumber="1211"><td class="num" id="LN1211">1211</td><td class="line"> <span class='macro'>G_OBJECT_CLASS_TYPE (object_class)<span class='macro_popup'>((((GTypeClass*) (object_class))-&gt;g_type))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1212"><td class="num" id="LN1212">1212</td><td class="line"> G_SIGNAL_RUN_LAST,</td></tr>
+<tr class="codeline" data-linenumber="1213"><td class="num" id="LN1213">1213</td><td class="line"> <span class='macro'>G_STRUCT_OFFSET (TerminalProfileClass, forgotten)<span class='macro_popup'>((glong) __builtin_offsetof(TerminalProfileClass, forgotten))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1214"><td class="num" id="LN1214">1214</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1215"><td class="num" id="LN1215">1215</td><td class="line"> g_cclosure_marshal_VOID__VOID,</td></tr>
+<tr class="codeline" data-linenumber="1216"><td class="num" id="LN1216">1216</td><td class="line"> <span class='macro'>G_TYPE_NONE<span class='macro_popup'>((GType) ((1) &lt;&lt; (2)))</span></span>, 0);</td></tr>
+<tr class="codeline" data-linenumber="1217"><td class="num" id="LN1217">1217</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1218"><td class="num" id="LN1218">1218</td><td class="line"> <span class='comment'>/* gsettings_key -&gt; pspec hash */</span></td></tr>
+<tr class="codeline" data-linenumber="1219"><td class="num" id="LN1219">1219</td><td class="line"> klass-&gt;gsettings_keys = g_hash_table_new (g_str_hash, g_str_equal);</td></tr>
+<tr class="codeline" data-linenumber="1220"><td class="num" id="LN1220">1220</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1221"><td class="num" id="LN1221">1221</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PSPEC_STATIC<span class='macro_popup'>(G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)</span></span> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)</span></td></tr>
+<tr class="codeline" data-linenumber="1222"><td class="num" id="LN1222">1222</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1223"><td class="num" id="LN1223">1223</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY(propId, propSpec, propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = propSpec; g_object_class_install_property<br> (object_class, propId, pspec); g_param_spec_set_qdata (pspec<br>, gsettings_key_quark, (gpointer) propGSettings); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) propGSettings, pspec);<br>}</span></span> \</span></td></tr>
+<tr class="codeline" data-linenumber="1224"><td class="num" id="LN1224">1224</td><td class="line"><span class='directive'>{\</span></td></tr>
+<tr class="codeline" data-linenumber="1225"><td class="num" id="LN1225">1225</td><td class="line"> <span class='directive'>GParamSpec *pspec = propSpec;\</span></td></tr>
+<tr class="codeline" data-linenumber="1226"><td class="num" id="LN1226">1226</td><td class="line"> <span class='directive'>g_object_class_install_property (object_class, propId, pspec);\</span></td></tr>
+<tr class="codeline" data-linenumber="1227"><td class="num" id="LN1227">1227</td><td class="line"> <span class='directive'>g_param_spec_set_qdata (pspec, gsettings_key_quark, (gpointer) propGSettings);\</span></td></tr>
+<tr class="codeline" data-linenumber="1228"><td class="num" id="LN1228">1228</td><td class="line"> <span class='directive'>g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) propGSettings, pspec);\</span></td></tr>
+<tr class="codeline" data-linenumber="1229"><td class="num" id="LN1229">1229</td><td class="line"><span class='directive'>}</span></td></tr>
+<tr class="codeline" data-linenumber="1230"><td class="num" id="LN1230">1230</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1231"><td class="num" id="LN1231">1231</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY_OUTER(propId, propSpec)<span class='macro_popup'>{ GParamSpec *pspec = propSpec; g_object_class_install_property<br> (object_class, propId, pspec);}</span></span> \</span></td></tr>
+<tr class="codeline" data-linenumber="1232"><td class="num" id="LN1232">1232</td><td class="line"><span class='directive'>{\</span></td></tr>
+<tr class="codeline" data-linenumber="1233"><td class="num" id="LN1233">1233</td><td class="line"> <span class='directive'>GParamSpec *pspec = propSpec;\</span></td></tr>
+<tr class="codeline" data-linenumber="1234"><td class="num" id="LN1234">1234</td><td class="line"> <span class='directive'>g_object_class_install_property (object_class, propId, pspec);\</span></td></tr>
+<tr class="codeline" data-linenumber="1235"><td class="num" id="LN1235">1235</td><td class="line"><span class='directive'>}</span></td></tr>
+<tr class="codeline" data-linenumber="1236"><td class="num" id="LN1236">1236</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1237"><td class="num" id="LN1237">1237</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN(prop, propDefault, propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean (TERMINAL_PROFILE_prop<br>, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_prop, pspec); g_param_spec_set_qdata (pspec<br>, gsettings_key_quark, (gpointer) propGSettings); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) propGSettings, pspec);<br>}</span></span> \</span></td></tr>
+<tr class="codeline" data-linenumber="1238"><td class="num" id="LN1238">1238</td><td class="line"> <span class='directive'><span class='macro'>TERMINAL_PROFILE_PROPERTY (PROP_##prop,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1239"><td class="num" id="LN1239">1239</td><td class="line"> <span class='directive'><span class='macro'>g_param_spec_boolean (TERMINAL_PROFILE_##prop, NULL, NULL,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1240"><td class="num" id="LN1240">1240</td><td class="line"> <span class='directive'><span class='macro'>propDefault,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1241"><td class="num" id="LN1241">1241</td><td class="line"> <span class='directive'><span class='macro'>G_PARAM_READWRITE | TERMINAL_PROFILE_PSPEC_STATIC),\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1242"><td class="num" id="LN1242">1242</td><td class="line"> <span class='directive'><span class='macro'>propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1243"><td class="num" id="LN1243">1243</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1244"><td class="num" id="LN1244">1244</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOXED(prop, propType, propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boxed (TERMINAL_PROFILE_prop<br>, ((void*)0), ((void*)0), propType, G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_prop, pspec); g_param_spec_set_qdata (pspec<br>, gsettings_key_quark, (gpointer) propGSettings); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) propGSettings, pspec);<br>}</span></span>\</span></td></tr>
+<tr class="codeline" data-linenumber="1245"><td class="num" id="LN1245">1245</td><td class="line"> <span class='directive'><span class='macro'>TERMINAL_PROFILE_PROPERTY (PROP_##prop,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boxed (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propType, G_PARAM_READWRITE | (<br>G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1246"><td class="num" id="LN1246">1246</td><td class="line"> <span class='directive'><span class='macro'>g_param_spec_boxed (TERMINAL_PROFILE_##prop, NULL, NULL,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boxed (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propType, G_PARAM_READWRITE | (<br>G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1247"><td class="num" id="LN1247">1247</td><td class="line"> <span class='directive'><span class='macro'>propType,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boxed (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propType, G_PARAM_READWRITE | (<br>G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1248"><td class="num" id="LN1248">1248</td><td class="line"> <span class='directive'><span class='macro'>G_PARAM_READWRITE | TERMINAL_PROFILE_PSPEC_STATIC),\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boxed (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propType, G_PARAM_READWRITE | (<br>G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1249"><td class="num" id="LN1249">1249</td><td class="line"> <span class='directive'><span class='macro'>propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boxed (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propType, G_PARAM_READWRITE | (<br>G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1250"><td class="num" id="LN1250">1250</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1251"><td class="num" id="LN1251">1251</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY_DOUBLE(prop, propMin, propMax, propDefault, propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_double (TERMINAL_PROFILE_prop<br>, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_prop,<br> pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark, (<br>gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span>\</span></td></tr>
+<tr class="codeline" data-linenumber="1252"><td class="num" id="LN1252">1252</td><td class="line"> <span class='directive'><span class='macro'>TERMINAL_PROFILE_PROPERTY (PROP_##prop,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_double (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1253"><td class="num" id="LN1253">1253</td><td class="line"> <span class='directive'><span class='macro'>g_param_spec_double (TERMINAL_PROFILE_##prop, NULL, NULL,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_double (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1254"><td class="num" id="LN1254">1254</td><td class="line"> <span class='directive'><span class='macro'>propMin, propMax, propDefault,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_double (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1255"><td class="num" id="LN1255">1255</td><td class="line"> <span class='directive'><span class='macro'>G_PARAM_READWRITE | TERMINAL_PROFILE_PSPEC_STATIC),\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_double (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1256"><td class="num" id="LN1256">1256</td><td class="line"> <span class='directive'><span class='macro'>propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_double (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1257"><td class="num" id="LN1257">1257</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1258"><td class="num" id="LN1258">1258</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY_ENUM(prop, propType, propDefault, propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum (TERMINAL_PROFILE_prop<br>, ((void*)0), ((void*)0), propType, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_prop,<br> pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark, (<br>gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span>\</span></td></tr>
+<tr class="codeline" data-linenumber="1259"><td class="num" id="LN1259">1259</td><td class="line"> <span class='directive'><span class='macro'>TERMINAL_PROFILE_PROPERTY (PROP_##prop,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum (TERMINAL_PROFILE_##prop<br>, ((void*)0), ((void*)0), propType, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1260"><td class="num" id="LN1260">1260</td><td class="line"> <span class='directive'><span class='macro'>g_param_spec_enum (TERMINAL_PROFILE_##prop, NULL, NULL,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum (TERMINAL_PROFILE_##prop<br>, ((void*)0), ((void*)0), propType, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1261"><td class="num" id="LN1261">1261</td><td class="line"> <span class='directive'><span class='macro'>propType, propDefault,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum (TERMINAL_PROFILE_##prop<br>, ((void*)0), ((void*)0), propType, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1262"><td class="num" id="LN1262">1262</td><td class="line"> <span class='directive'><span class='macro'>G_PARAM_READWRITE | TERMINAL_PROFILE_PSPEC_STATIC),\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum (TERMINAL_PROFILE_##prop<br>, ((void*)0), ((void*)0), propType, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1263"><td class="num" id="LN1263">1263</td><td class="line"> <span class='directive'><span class='macro'>propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum (TERMINAL_PROFILE_##prop<br>, ((void*)0), ((void*)0), propType, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1264"><td class="num" id="LN1264">1264</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1265"><td class="num" id="LN1265">1265</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY_INT(prop, propMin, propMax, propDefault, propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_int (TERMINAL_PROFILE_prop<br>, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_prop,<br> pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark, (<br>gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span>\</span></td></tr>
+<tr class="codeline" data-linenumber="1266"><td class="num" id="LN1266">1266</td><td class="line"> <span class='directive'><span class='macro'>TERMINAL_PROFILE_PROPERTY (PROP_##prop,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_int (TERMINAL_PROFILE_##prop<br>, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1267"><td class="num" id="LN1267">1267</td><td class="line"> <span class='directive'><span class='macro'>g_param_spec_int (TERMINAL_PROFILE_##prop, NULL, NULL,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_int (TERMINAL_PROFILE_##prop<br>, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1268"><td class="num" id="LN1268">1268</td><td class="line"> <span class='directive'><span class='macro'>propMin, propMax, propDefault,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_int (TERMINAL_PROFILE_##prop<br>, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1269"><td class="num" id="LN1269">1269</td><td class="line"> <span class='directive'><span class='macro'>G_PARAM_READWRITE | TERMINAL_PROFILE_PSPEC_STATIC),\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_int (TERMINAL_PROFILE_##prop<br>, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1270"><td class="num" id="LN1270">1270</td><td class="line"> <span class='directive'><span class='macro'>propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_int (TERMINAL_PROFILE_##prop<br>, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1271"><td class="num" id="LN1271">1271</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1272"><td class="num" id="LN1272">1272</td><td class="line"> <span class='comment'>/* these are all read-only */</span></td></tr>
+<tr class="codeline" data-linenumber="1273"><td class="num" id="LN1273">1273</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY_OBJECT(prop, propType)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_object (TERMINAL_PROFILE_prop<br>, ((void*)0), ((void*)0), propType, G_PARAM_READABLE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_prop, pspec);}</span></span>\</span></td></tr>
+<tr class="codeline" data-linenumber="1274"><td class="num" id="LN1274">1274</td><td class="line"> <span class='directive'><span class='macro'>TERMINAL_PROFILE_PROPERTY_OUTER (PROP_##prop,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_object (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propType, G_PARAM_READABLE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_##prop, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1275"><td class="num" id="LN1275">1275</td><td class="line"> <span class='directive'><span class='macro'>g_param_spec_object (TERMINAL_PROFILE_##prop, NULL, NULL,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_object (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propType, G_PARAM_READABLE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_##prop, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1276"><td class="num" id="LN1276">1276</td><td class="line"> <span class='directive'><span class='macro'>propType,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_object (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propType, G_PARAM_READABLE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_##prop, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1277"><td class="num" id="LN1277">1277</td><td class="line"> <span class='directive'><span class='macro'>G_PARAM_READABLE | TERMINAL_PROFILE_PSPEC_STATIC))<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_object (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propType, G_PARAM_READABLE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_##prop, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1278"><td class="num" id="LN1278">1278</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1279"><td class="num" id="LN1279">1279</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY_STRING(prop, propDefault, propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_prop<br>, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_prop, pspec); g_param_spec_set_qdata (pspec<br>, gsettings_key_quark, (gpointer) propGSettings); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) propGSettings, pspec);<br>}</span></span>\</span></td></tr>
+<tr class="codeline" data-linenumber="1280"><td class="num" id="LN1280">1280</td><td class="line"> <span class='directive'><span class='macro'>TERMINAL_PROFILE_PROPERTY (PROP_##prop,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1281"><td class="num" id="LN1281">1281</td><td class="line"> <span class='directive'><span class='macro'>g_param_spec_string (TERMINAL_PROFILE_##prop, NULL, NULL,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1282"><td class="num" id="LN1282">1282</td><td class="line"> <span class='directive'><span class='macro'>propDefault,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1283"><td class="num" id="LN1283">1283</td><td class="line"> <span class='directive'><span class='macro'>G_PARAM_READWRITE | TERMINAL_PROFILE_PSPEC_STATIC),\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1284"><td class="num" id="LN1284">1284</td><td class="line"> <span class='directive'><span class='macro'>propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1285"><td class="num" id="LN1285">1285</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1286"><td class="num" id="LN1286">1286</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY_STRING_CO(prop, propDefault)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_prop<br>, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_prop,<br> pspec);}</span></span>\</span></td></tr>
+<tr class="codeline" data-linenumber="1287"><td class="num" id="LN1287">1287</td><td class="line"> <span class='directive'><span class='macro'>TERMINAL_PROFILE_PROPERTY_OUTER (PROP_##prop,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE |<br> G_PARAM_CONSTRUCT_ONLY | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1288"><td class="num" id="LN1288">1288</td><td class="line"> <span class='directive'><span class='macro'>g_param_spec_string (TERMINAL_PROFILE_##prop, NULL, NULL,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE |<br> G_PARAM_CONSTRUCT_ONLY | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1289"><td class="num" id="LN1289">1289</td><td class="line"> <span class='directive'><span class='macro'>propDefault,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE |<br> G_PARAM_CONSTRUCT_ONLY | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1290"><td class="num" id="LN1290">1290</td><td class="line"> <span class='directive'><span class='macro'>G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | TERMINAL_PROFILE_PSPEC_STATIC))<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE |<br> G_PARAM_CONSTRUCT_ONLY | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1291"><td class="num" id="LN1291">1291</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1292"><td class="num" id="LN1292">1292</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY_VALUE_ARRAY_BOXED(prop, propElementName, propElementType, propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_value_array (TERMINAL_PROFILE_prop<br>, ((void*)0), ((void*)0), g_param_spec_boxed (propElementName<br>, ((void*)0), ((void*)0), propElementType, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_prop, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span>\</span></td></tr>
+<tr class="codeline" data-linenumber="1293"><td class="num" id="LN1293">1293</td><td class="line"> <span class='directive'><span class='macro'>TERMINAL_PROFILE_PROPERTY (PROP_##prop,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_value_array (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), g_param_spec_boxed (propElementName<br>, ((void*)0), ((void*)0), propElementType, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1294"><td class="num" id="LN1294">1294</td><td class="line"> <span class='directive'><span class='macro'>g_param_spec_value_array (TERMINAL_PROFILE_##prop, NULL, NULL,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_value_array (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), g_param_spec_boxed (propElementName<br>, ((void*)0), ((void*)0), propElementType, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1295"><td class="num" id="LN1295">1295</td><td class="line"> <span class='directive'><span class='macro'>g_param_spec_boxed (propElementName, NULL, NULL,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_value_array (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), g_param_spec_boxed (propElementName<br>, ((void*)0), ((void*)0), propElementType, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1296"><td class="num" id="LN1296">1296</td><td class="line"> <span class='directive'><span class='macro'>propElementType, \<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_value_array (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), g_param_spec_boxed (propElementName<br>, ((void*)0), ((void*)0), propElementType, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1297"><td class="num" id="LN1297">1297</td><td class="line"> <span class='directive'><span class='macro'>G_PARAM_READWRITE | TERMINAL_PROFILE_PSPEC_STATIC),\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_value_array (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), g_param_spec_boxed (propElementName<br>, ((void*)0), ((void*)0), propElementType, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1298"><td class="num" id="LN1298">1298</td><td class="line"> <span class='directive'><span class='macro'>G_PARAM_READWRITE | TERMINAL_PROFILE_PSPEC_STATIC),\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_value_array (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), g_param_spec_boxed (propElementName<br>, ((void*)0), ((void*)0), propElementType, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1299"><td class="num" id="LN1299">1299</td><td class="line"> <span class='directive'><span class='macro'>propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_value_array (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), g_param_spec_boxed (propElementName<br>, ((void*)0), ((void*)0), propElementType, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1300"><td class="num" id="LN1300">1300</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1301"><td class="num" id="LN1301">1301</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (ALLOW_BOLD, DEFAULT_ALLOW_BOLD, KEY_ALLOW_BOLD)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("allow-bold", ((void<br>*)0), ((void*)0), ((!(0))), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_ALLOW_BOLD, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "allow-bold"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "allow-bold", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1302"><td class="num" id="LN1302">1302</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (BOLD_COLOR_SAME_AS_FG, DEFAULT_BOLD_COLOR_SAME_AS_FG, KEY_BOLD_COLOR_SAME_AS_FG)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("bold-color-same-as-fg"<br>, ((void*)0), ((void*)0), ((!(0))), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_BOLD_COLOR_SAME_AS_FG, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "bold-color-same-as-fg"<br>); g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "bold-color-same-as-fg"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1303"><td class="num" id="LN1303">1303</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (DEFAULT_SHOW_MENUBAR, DEFAULT_DEFAULT_SHOW_MENUBAR, KEY_DEFAULT_SHOW_MENUBAR)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("default-show-menubar"<br>, ((void*)0), ((void*)0), ((!(0))), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_DEFAULT_SHOW_MENUBAR, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "default-show-menubar"<br>); g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "default-show-menubar"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1304"><td class="num" id="LN1304">1304</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (LOGIN_SHELL, DEFAULT_LOGIN_SHELL, KEY_LOGIN_SHELL)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("login-shell", ((<br>void*)0), ((void*)0), ((0)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_LOGIN_SHELL, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "login-shell"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "login-shell", pspec);<br>}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1305"><td class="num" id="LN1305">1305</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (SCROLL_BACKGROUND, DEFAULT_SCROLL_BACKGROUND, KEY_SCROLL_BACKGROUND)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("scroll-background"<br>, ((void*)0), ((void*)0), ((!(0))), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_SCROLL_BACKGROUND, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "scroll-background")<br>; g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "scroll-background"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1306"><td class="num" id="LN1306">1306</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (SCROLLBACK_UNLIMITED, DEFAULT_SCROLLBACK_UNLIMITED, KEY_SCROLLBACK_UNLIMITED)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("scrollback-unlimited"<br>, ((void*)0), ((void*)0), ((0)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_SCROLLBACK_UNLIMITED, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "scrollback-unlimited"<br>); g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "scrollback-unlimited"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1307"><td class="num" id="LN1307">1307</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (SCROLL_ON_KEYSTROKE, DEFAULT_SCROLL_ON_KEYSTROKE, KEY_SCROLL_ON_KEYSTROKE)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("scroll-on-keystroke"<br>, ((void*)0), ((void*)0), ((!(0))), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_SCROLL_ON_KEYSTROKE, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "scroll-on-keystroke"<br>); g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "scroll-on-keystroke"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1308"><td class="num" id="LN1308">1308</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (SCROLL_ON_OUTPUT, DEFAULT_SCROLL_ON_OUTPUT, KEY_SCROLL_ON_OUTPUT)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("scroll-on-output"<br>, ((void*)0), ((void*)0), ((0)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_SCROLL_ON_OUTPUT, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "scroll-on-output");<br> g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "scroll-on-output"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1309"><td class="num" id="LN1309">1309</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (SILENT_BELL, DEFAULT_SILENT_BELL, KEY_SILENT_BELL)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("silent-bell", ((<br>void*)0), ((void*)0), ((0)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_SILENT_BELL, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "silent-bell"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "silent-bell", pspec);<br>}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1310"><td class="num" id="LN1310">1310</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (COPY_SELECTION, DEFAULT_COPY_SELECTION, KEY_COPY_SELECTION)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("copy-selection",<br> ((void*)0), ((void*)0), ((0)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_COPY_SELECTION, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "copy-selection"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "copy-selection", pspec<br>);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1311"><td class="num" id="LN1311">1311</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (USE_CUSTOM_COMMAND, DEFAULT_USE_CUSTOM_COMMAND, KEY_USE_CUSTOM_COMMAND)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("use-custom-command"<br>, ((void*)0), ((void*)0), ((0)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_USE_CUSTOM_COMMAND, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "use-custom-command"<br>); g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "use-custom-command"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1312"><td class="num" id="LN1312">1312</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (USE_CUSTOM_DEFAULT_SIZE, DEFAULT_USE_CUSTOM_DEFAULT_SIZE, KEY_USE_CUSTOM_DEFAULT_SIZE)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("use-custom-default-size"<br>, ((void*)0), ((void*)0), ((0)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_USE_CUSTOM_DEFAULT_SIZE, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "use-custom-default-size"<br>); g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "use-custom-default-size"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1313"><td class="num" id="LN1313">1313</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (USE_SKEY, DEFAULT_USE_SKEY, KEY_USE_SKEY)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("use-skey", ((void<br>*)0), ((void*)0), ((!(0))), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_USE_SKEY, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "use-skey"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "use-skey", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1314"><td class="num" id="LN1314">1314</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (USE_URLS, DEFAULT_USE_URLS, KEY_USE_URLS)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("use-urls", ((void<br>*)0), ((void*)0), ((!(0))), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_USE_URLS, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "use-urls"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "use-urls", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1315"><td class="num" id="LN1315">1315</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (USE_SYSTEM_FONT, DEFAULT_USE_SYSTEM_FONT, KEY_USE_SYSTEM_FONT)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("use-system-font"<br>, ((void*)0), ((void*)0), ((!(0))), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_USE_SYSTEM_FONT, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "use-system-font"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "use-system-font", pspec<br>);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1316"><td class="num" id="LN1316">1316</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (USE_THEME_COLORS, DEFAULT_USE_THEME_COLORS, KEY_USE_THEME_COLORS)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("use-theme-colors"<br>, ((void*)0), ((void*)0), ((!(0))), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_USE_THEME_COLORS, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "use-theme-colors");<br> g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "use-theme-colors"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1317"><td class="num" id="LN1317">1317</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1318"><td class="num" id="LN1318">1318</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOXED (BACKGROUND_COLOR, GDK_TYPE_RGBA, KEY_BACKGROUND_COLOR)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boxed ("background-color",<br> ((void*)0), ((void*)0), (gdk_rgba_get_type ()), G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_BACKGROUND_COLOR<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) "background-color"); g_hash_table_insert (klass-&gt;<br>gsettings_keys, (gpointer) "background-color", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1319"><td class="num" id="LN1319">1319</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOXED (BOLD_COLOR, GDK_TYPE_RGBA, KEY_BOLD_COLOR)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boxed ("bold-color", ((void<br>*)0), ((void*)0), (gdk_rgba_get_type ()), G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_BOLD_COLOR<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) "bold-color"); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) "bold-color", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1320"><td class="num" id="LN1320">1320</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOXED (FONT, PANGO_TYPE_FONT_DESCRIPTION, KEY_FONT)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boxed ("font", ((void*)0),<br> ((void*)0), (pango_font_description_get_type ()), G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_FONT,<br> pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark, (<br>gpointer) "font"); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) "font", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1321"><td class="num" id="LN1321">1321</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOXED (FOREGROUND_COLOR, GDK_TYPE_RGBA, KEY_FOREGROUND_COLOR)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boxed ("foreground-color",<br> ((void*)0), ((void*)0), (gdk_rgba_get_type ()), G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_FOREGROUND_COLOR<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) "foreground-color"); g_hash_table_insert (klass-&gt;<br>gsettings_keys, (gpointer) "foreground-color", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1322"><td class="num" id="LN1322">1322</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1323"><td class="num" id="LN1323">1323</td><td class="line"> <span class='comment'>/* 0.0 = normal bg, 1.0 = all black bg, 0.5 = half darkened */</span></td></tr>
+<tr class="codeline" data-linenumber="1324"><td class="num" id="LN1324">1324</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_DOUBLE (BACKGROUND_DARKNESS, 0.0, 1.0, DEFAULT_BACKGROUND_DARKNESS, KEY_BACKGROUND_DARKNESS)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_double ("background-darkness"<br>, ((void*)0), ((void*)0), 0.0, 1.0, (0.5), G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_BACKGROUND_DARKNESS<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) "background-darkness"); g_hash_table_insert (klass<br>-&gt;gsettings_keys, (gpointer) "background-darkness", pspec)<br>;}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1325"><td class="num" id="LN1325">1325</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1326"><td class="num" id="LN1326">1326</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_ENUM (BACKGROUND_TYPE, TERMINAL_TYPE_BACKGROUND_TYPE, DEFAULT_BACKGROUND_TYPE, KEY_BACKGROUND_TYPE)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum ("background-type", (<br>(void*)0), ((void*)0), (terminal_background_type_get_type ())<br>, (TERMINAL_BACKGROUND_SOLID), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_BACKGROUND_TYPE, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "background-type"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "background-type", pspec<br>);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1327"><td class="num" id="LN1327">1327</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_ENUM (BACKSPACE_BINDING, VTE_TYPE_ERASE_BINDING, DEFAULT_BACKSPACE_BINDING, KEY_BACKSPACE_BINDING)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum ("backspace-binding",<br> ((void*)0), ((void*)0), (vte_erase_binding_get_type ()), (VTE_ERASE_ASCII_DELETE<br>), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_BACKSPACE_BINDING, pspec); g_param_spec_set_qdata (pspec<br>, gsettings_key_quark, (gpointer) "backspace-binding"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "backspace-binding", pspec<br>);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1328"><td class="num" id="LN1328">1328</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_ENUM (CURSOR_BLINK_MODE, VTE_TYPE_CURSOR_BLINK_MODE, DEFAULT_CURSOR_BLINK_MODE, KEY_CURSOR_BLINK_MODE)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum ("cursor-blink-mode",<br> ((void*)0), ((void*)0), (vte_cursor_blink_mode_get_type ()),<br> (VTE_CURSOR_BLINK_SYSTEM), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_CURSOR_BLINK_MODE, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "cursor-blink-mode")<br>; g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "cursor-blink-mode"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1329"><td class="num" id="LN1329">1329</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_ENUM (CURSOR_SHAPE, VTE_TYPE_CURSOR_SHAPE, DEFAULT_CURSOR_SHAPE, KEY_CURSOR_SHAPE)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum ("cursor-shape", ((void<br>*)0), ((void*)0), (vte_cursor_shape_get_type ()), (VTE_CURSOR_SHAPE_BLOCK<br>), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_CURSOR_SHAPE, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) "cursor-shape"); g_hash_table_insert (klass-&gt;<br>gsettings_keys, (gpointer) "cursor-shape", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1330"><td class="num" id="LN1330">1330</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_ENUM (DELETE_BINDING, VTE_TYPE_ERASE_BINDING, DEFAULT_DELETE_BINDING, KEY_DELETE_BINDING)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum ("delete-binding", ((<br>void*)0), ((void*)0), (vte_erase_binding_get_type ()), (VTE_ERASE_DELETE_SEQUENCE<br>), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_DELETE_BINDING, pspec); g_param_spec_set_qdata (pspec,<br> gsettings_key_quark, (gpointer) "delete-binding"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "delete-binding", pspec<br>);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1331"><td class="num" id="LN1331">1331</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_ENUM (EXIT_ACTION, TERMINAL_TYPE_EXIT_ACTION, DEFAULT_EXIT_ACTION, KEY_EXIT_ACTION)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum ("exit-action", ((void<br>*)0), ((void*)0), (terminal_exit_action_get_type ()), (TERMINAL_EXIT_CLOSE<br>), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_EXIT_ACTION, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) "exit-action"); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) "exit-action", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1332"><td class="num" id="LN1332">1332</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_ENUM (SCROLLBAR_POSITION, TERMINAL_TYPE_SCROLLBAR_POSITION, DEFAULT_SCROLLBAR_POSITION, KEY_SCROLLBAR_POSITION)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum ("scrollbar-position"<br>, ((void*)0), ((void*)0), (terminal_scrollbar_position_get_type<br> ()), (TERMINAL_SCROLLBAR_RIGHT), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_SCROLLBAR_POSITION, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "scrollbar-position"<br>); g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "scrollbar-position"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1333"><td class="num" id="LN1333">1333</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_ENUM (TITLE_MODE, TERMINAL_TYPE_TITLE_MODE, DEFAULT_TITLE_MODE, KEY_TITLE_MODE)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum ("title-mode", ((void<br>*)0), ((void*)0), (terminal_title_mode_get_type ()), (TERMINAL_TITLE_REPLACE<br>), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_TITLE_MODE, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) "title-mode"); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) "title-mode", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1334"><td class="num" id="LN1334">1334</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1335"><td class="num" id="LN1335">1335</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_INT (DEFAULT_SIZE_COLUMNS, 1, 1024, DEFAULT_DEFAULT_SIZE_COLUMNS, KEY_DEFAULT_SIZE_COLUMNS)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_int ("default-size-columns"<br>, ((void*)0), ((void*)0), 1, 1024, (80), G_PARAM_READWRITE | (<br>G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_DEFAULT_SIZE_COLUMNS<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) "default-size-columns"); g_hash_table_insert (klass<br>-&gt;gsettings_keys, (gpointer) "default-size-columns", pspec<br>);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1336"><td class="num" id="LN1336">1336</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_INT (DEFAULT_SIZE_ROWS, 1, 1024, DEFAULT_DEFAULT_SIZE_ROWS, KEY_DEFAULT_SIZE_ROWS)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_int ("default-size-rows", (<br>(void*)0), ((void*)0), 1, 1024, (24), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_DEFAULT_SIZE_ROWS, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "default-size-rows")<br>; g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "default-size-rows"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1337"><td class="num" id="LN1337">1337</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_INT (SCROLLBACK_LINES, 1, G_MAXINT, DEFAULT_SCROLLBACK_LINES, KEY_SCROLLBACK_LINES)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_int ("scrollback-lines", (<br>(void*)0), ((void*)0), 1, 2147483647, (512), G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_SCROLLBACK_LINES<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) "scrollback-lines"); g_hash_table_insert (klass-&gt;<br>gsettings_keys, (gpointer) "scrollback-lines", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1338"><td class="num" id="LN1338">1338</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1339"><td class="num" id="LN1339">1339</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_OBJECT (BACKGROUND_IMAGE, GDK_TYPE_PIXBUF)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_object ("background-image"<br>, ((void*)0), ((void*)0), (gdk_pixbuf_get_type ()), G_PARAM_READABLE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_BACKGROUND_IMAGE<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1340"><td class="num" id="LN1340">1340</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1341"><td class="num" id="LN1341">1341</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_STRING_CO (NAME, DEFAULT_NAME)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string ("name", ((void*)0)<br>, ((void*)0), (((void*)0)), G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_NAME,<br> pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1342"><td class="num" id="LN1342">1342</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1343"><td class="num" id="LN1343">1343</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_STRING (BACKGROUND_IMAGE_FILE, DEFAULT_BACKGROUND_IMAGE_FILE, KEY_BACKGROUND_IMAGE_FILE)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string ("background-image-file"<br>, ((void*)0), ((void*)0), (""), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_BACKGROUND_IMAGE_FILE, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "background-image");<br> g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "background-image"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1344"><td class="num" id="LN1344">1344</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_STRING (CUSTOM_COMMAND, DEFAULT_CUSTOM_COMMAND, KEY_CUSTOM_COMMAND)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string ("custom-command", (<br>(void*)0), ((void*)0), (""), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_CUSTOM_COMMAND, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "custom-command"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "custom-command", pspec<br>);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1345"><td class="num" id="LN1345">1345</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_STRING (TITLE, _(DEFAULT_TITLE), KEY_TITLE)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string ("title", ((void*)0<br>), ((void*)0), gettext ((("Terminal"))), G_PARAM_READWRITE | (<br>G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_TITLE<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) "title"); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) "title", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1346"><td class="num" id="LN1346">1346</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_STRING (VISIBLE_NAME, _(DEFAULT_VISIBLE_NAME), KEY_VISIBLE_NAME)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string ("visible-name", ((<br>void*)0), ((void*)0), gettext ((("Unnamed"))), G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_VISIBLE_NAME<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) "visible-name"); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) "visible-name", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1347"><td class="num" id="LN1347">1347</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_STRING (WORD_CHARS, DEFAULT_WORD_CHARS, KEY_WORD_CHARS)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string ("word-chars", ((void<br>*)0), ((void*)0), ("-A-Za-z0-9,./?%&amp;#:_=+@~"), G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_WORD_CHARS<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) "word-chars"); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) "word-chars", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1348"><td class="num" id="LN1348">1348</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1349"><td class="num" id="LN1349">1349</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_VALUE_ARRAY_BOXED (PALETTE, <span class='string_literal'>"palette-color"</span>, GDK_TYPE_RGBA, KEY_PALETTE)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_value_array ("palette", ((<br>void*)0), ((void*)0), g_param_spec_boxed ("palette-color", ((<br>void*)0), ((void*)0), (gdk_rgba_get_type ()), G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_PALETTE, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) "palette"); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) "palette", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1350"><td class="num" id="LN1350">1350</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1351"><td class="num" id="LN1351">1351</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1352"><td class="num" id="LN1352">1352</td><td class="line"><span class='comment'>/* Semi-Public API */</span></td></tr>
+<tr class="codeline" data-linenumber="1353"><td class="num" id="LN1353">1353</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1354"><td class="num" id="LN1354">1354</td><td class="line">TerminalProfile*</td></tr>
+<tr class="codeline" data-linenumber="1355"><td class="num" id="LN1355">1355</td><td class="line">_terminal_profile_new (<span class='keyword'>const</span> <span class='keyword'>char</span> *name)</td></tr>
+<tr class="codeline" data-linenumber="1356"><td class="num" id="LN1356">1356</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1357"><td class="num" id="LN1357">1357</td><td class="line"> <span class='keyword'>return</span> g_object_new (<span class='macro'>TERMINAL_TYPE_PROFILE<span class='macro_popup'>(terminal_profile_get_type ())</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1358"><td class="num" id="LN1358">1358</td><td class="line"> <span class='string_literal'>"name"</span>, name,</td></tr>
+<tr class="codeline" data-linenumber="1359"><td class="num" id="LN1359">1359</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1360"><td class="num" id="LN1360">1360</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1361"><td class="num" id="LN1361">1361</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1362"><td class="num" id="LN1362">1362</td><td class="line"><span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1363"><td class="num" id="LN1363">1363</td><td class="line">_terminal_profile_forget (TerminalProfile *profile)</td></tr>
+<tr class="codeline" data-linenumber="1364"><td class="num" id="LN1364">1364</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1365"><td class="num" id="LN1365">1365</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1366"><td class="num" id="LN1366">1366</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1367"><td class="num" id="LN1367">1367</td><td class="line"> <span class='keyword'>if</span> (!priv-&gt;forgotten)</td></tr>
+<tr class="codeline" data-linenumber="1368"><td class="num" id="LN1368">1368</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1369"><td class="num" id="LN1369">1369</td><td class="line"> priv-&gt;forgotten = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1370"><td class="num" id="LN1370">1370</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1371"><td class="num" id="LN1371">1371</td><td class="line"> g_signal_emit (<span class='macro'>G_OBJECT (profile)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((profile)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, signals[FORGOTTEN], 0);</td></tr>
+<tr class="codeline" data-linenumber="1372"><td class="num" id="LN1372">1372</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1373"><td class="num" id="LN1373">1373</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1374"><td class="num" id="LN1374">1374</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1375"><td class="num" id="LN1375">1375</td><td class="line">gboolean</td></tr>
+<tr class="codeline" data-linenumber="1376"><td class="num" id="LN1376">1376</td><td class="line">_terminal_profile_get_forgotten (TerminalProfile *profile)</td></tr>
+<tr class="codeline" data-linenumber="1377"><td class="num" id="LN1377">1377</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1378"><td class="num" id="LN1378">1378</td><td class="line"> <span class='keyword'>return</span> profile-&gt;priv-&gt;forgotten;</td></tr>
+<tr class="codeline" data-linenumber="1379"><td class="num" id="LN1379">1379</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1380"><td class="num" id="LN1380">1380</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1381"><td class="num" id="LN1381">1381</td><td class="line">TerminalProfile *</td></tr>
+<tr class="codeline" data-linenumber="1382"><td class="num" id="LN1382">1382</td><td class="line">_terminal_profile_clone (TerminalProfile *base_profile,</td></tr>
+<tr class="codeline" data-linenumber="1383"><td class="num" id="LN1383">1383</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *visible_name)</td></tr>
+<tr class="codeline" data-linenumber="1384"><td class="num" id="LN1384">1384</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1385"><td class="num" id="LN1385">1385</td><td class="line"> TerminalApp *app = terminal_app_get ();</td></tr>
+<tr class="codeline" data-linenumber="1386"><td class="num" id="LN1386">1386</td><td class="line"> GObject *base_object = <span class='macro'>G_OBJECT (base_profile)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((base_profile)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1387"><td class="num" id="LN1387">1387</td><td class="line"> TerminalProfilePrivate *new_priv;</td></tr>
+<tr class="codeline" data-linenumber="1388"><td class="num" id="LN1388">1388</td><td class="line"> <span class='keyword'>char</span> profile_name[32];</td></tr>
+<tr class="codeline" data-linenumber="1389"><td class="num" id="LN1389">1389</td><td class="line"> GParameter *params;</td></tr>
+<tr class="codeline" data-linenumber="1390"><td class="num" id="LN1390">1390</td><td class="line"> GParamSpec **pspecs;</td></tr>
+<tr class="codeline" data-linenumber="1391"><td class="num" id="LN1391">1391</td><td class="line"> guint n_pspecs, i, n_params, profile_num;</td></tr>
+<tr class="codeline" data-linenumber="1392"><td class="num" id="LN1392">1392</td><td class="line"> TerminalProfile *new_profile;</td></tr>
+<tr class="codeline" data-linenumber="1393"><td class="num" id="LN1393">1393</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1394"><td class="num" id="LN1394">1394</td><td class="line"> <span class='macro'>g_object_ref (base_profile)<span class='macro_popup'>((__typeof__ (base_profile)) (g_object_ref) (base_profile))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1395"><td class="num" id="LN1395">1395</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1396"><td class="num" id="LN1396">1396</td><td class="line"> profile_num = 0;</td></tr>
+<tr class="codeline" data-linenumber="1397"><td class="num" id="LN1397">1397</td><td class="line"> <span class='keyword'>do</span></td></tr>
+<tr class="codeline" data-linenumber="1398"><td class="num" id="LN1398">1398</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1399"><td class="num" id="LN1399">1399</td><td class="line"> g_snprintf (profile_name, <span class='keyword'>sizeof</span> (profile_name), <span class='string_literal'>"profile%u"</span>, profile_num++);</td></tr>
+<tr class="codeline" data-linenumber="1400"><td class="num" id="LN1400">1400</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1401"><td class="num" id="LN1401">1401</td><td class="line"> <span class='keyword'>while</span> (terminal_app_get_profile_by_name (app, profile_name) != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1402"><td class="num" id="LN1402">1402</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1403"><td class="num" id="LN1403">1403</td><td class="line"> <span class='comment'>/* Now we have an unused profile name */</span></td></tr>
+<tr class="codeline" data-linenumber="1404"><td class="num" id="LN1404">1404</td><td class="line"> pspecs = g_object_class_list_properties (<span class='macro'>G_OBJECT_CLASS (TERMINAL_PROFILE_GET_CLASS (base_profile))<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((((((TerminalProfileClass*) (((GTypeInstance*) ((base_profile<br>)))-&gt;g_class)))))), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, &amp;n_pspecs);</td></tr>
+<tr class="codeline" data-linenumber="1405"><td class="num" id="LN1405">1405</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1406"><td class="num" id="LN1406">1406</td><td class="line"> params = <span class='macro'>g_newa (GParameter, n_pspecs)<span class='macro_popup'>((GParameter*) __builtin_alloca (sizeof (GParameter) * (gsize<br>) (n_pspecs)))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1407"><td class="num" id="LN1407">1407</td><td class="line"> n_params = 0;</td></tr>
+<tr class="codeline" data-linenumber="1408"><td class="num" id="LN1408">1408</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1409"><td class="num" id="LN1409">1409</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; n_pspecs; ++i)</td></tr>
+<tr class="codeline" data-linenumber="1410"><td class="num" id="LN1410">1410</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1411"><td class="num" id="LN1411">1411</td><td class="line"> GParamSpec *pspec = pspecs[i];</td></tr>
+<tr class="codeline" data-linenumber="1412"><td class="num" id="LN1412">1412</td><td class="line"> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="1413"><td class="num" id="LN1413">1413</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1414"><td class="num" id="LN1414">1414</td><td class="line"> <span class='keyword'>if</span> (pspec-&gt;owner_type != <span class='macro'>TERMINAL_TYPE_PROFILE<span class='macro_popup'>(terminal_profile_get_type ())</span></span> ||</td></tr>
+<tr class="codeline" data-linenumber="1415"><td class="num" id="LN1415">1415</td><td class="line"> (pspec-&gt;flags &amp; G_PARAM_WRITABLE) == 0)</td></tr>
+<tr class="codeline" data-linenumber="1416"><td class="num" id="LN1416">1416</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="1417"><td class="num" id="LN1417">1417</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1418"><td class="num" id="LN1418">1418</td><td class="line"> params[n_params].name = pspec-&gt;name;</td></tr>
+<tr class="codeline" data-linenumber="1419"><td class="num" id="LN1419">1419</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1420"><td class="num" id="LN1420">1420</td><td class="line"> value = &amp;params[n_params].value;</td></tr>
+<tr class="codeline" data-linenumber="1421"><td class="num" id="LN1421">1421</td><td class="line"> <span class='macro'>G_VALUE_TYPE (value)<span class='macro_popup'>(((GValue*) (value))-&gt;g_type)</span></span> = 0;</td></tr>
+<tr class="codeline" data-linenumber="1422"><td class="num" id="LN1422">1422</td><td class="line"> g_value_init (value, <span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1423"><td class="num" id="LN1423">1423</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1424"><td class="num" id="LN1424">1424</td><td class="line"> <span class='keyword'>if</span> (pspec-&gt;name == <span class='macro'>I_(TERMINAL_PROFILE_NAME)<span class='macro_popup'>g_intern_static_string ("name")</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1425"><td class="num" id="LN1425">1425</td><td class="line"> g_value_set_static_string (value, profile_name);</td></tr>
+<tr class="codeline" data-linenumber="1426"><td class="num" id="LN1426">1426</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (pspec-&gt;name == <span class='macro'>I_(TERMINAL_PROFILE_VISIBLE_NAME)<span class='macro_popup'>g_intern_static_string ("visible-name")</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1427"><td class="num" id="LN1427">1427</td><td class="line"> g_value_set_static_string (value, visible_name);</td></tr>
+<tr class="codeline" data-linenumber="1428"><td class="num" id="LN1428">1428</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="1429"><td class="num" id="LN1429">1429</td><td class="line"> g_object_get_property (base_object, pspec-&gt;name, value);</td></tr>
+<tr class="codeline" data-linenumber="1430"><td class="num" id="LN1430">1430</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1431"><td class="num" id="LN1431">1431</td><td class="line"> ++n_params;</td></tr>
+<tr class="codeline" data-linenumber="1432"><td class="num" id="LN1432">1432</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1433"><td class="num" id="LN1433">1433</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1434"><td class="num" id="LN1434">1434</td><td class="line"> new_profile = g_object_newv (<span class='macro'>TERMINAL_TYPE_PROFILE<span class='macro_popup'>(terminal_profile_get_type ())</span></span>, n_params, params);</td></tr>
+<tr class="codeline" data-linenumber="1435"><td class="num" id="LN1435">1435</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1436"><td class="num" id="LN1436">1436</td><td class="line"> g_object_unref (base_profile);</td></tr>
+<tr class="codeline" data-linenumber="1437"><td class="num" id="LN1437">1437</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1438"><td class="num" id="LN1438">1438</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; n_params; ++i)</td></tr>
+<tr class="codeline" data-linenumber="1439"><td class="num" id="LN1439">1439</td><td class="line"> g_value_unset (&amp;params[i].value);</td></tr>
+<tr class="codeline" data-linenumber="1440"><td class="num" id="LN1440">1440</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1441"><td class="num" id="LN1441">1441</td><td class="line"> <span class='comment'>/* Flush the new profile to GSettings */</span></td></tr>
+<tr class="codeline" data-linenumber="1442"><td class="num" id="LN1442">1442</td><td class="line"> new_priv = new_profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1443"><td class="num" id="LN1443">1443</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1444"><td class="num" id="LN1444">1444</td><td class="line"> g_slist_free (new_priv-&gt;dirty_pspecs);</td></tr>
+<tr class="codeline" data-linenumber="1445"><td class="num" id="LN1445">1445</td><td class="line"> new_priv-&gt;dirty_pspecs = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1446"><td class="num" id="LN1446">1446</td><td class="line"> <span class='keyword'>if</span> (new_priv-&gt;save_idle_id != 0)</td></tr>
+<tr class="codeline" data-linenumber="1447"><td class="num" id="LN1447">1447</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1448"><td class="num" id="LN1448">1448</td><td class="line"> g_source_remove (new_priv-&gt;save_idle_id);</td></tr>
+<tr class="codeline" data-linenumber="1449"><td class="num" id="LN1449">1449</td><td class="line"> new_priv-&gt;save_idle_id = 0;</td></tr>
+<tr class="codeline" data-linenumber="1450"><td class="num" id="LN1450">1450</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1451"><td class="num" id="LN1451">1451</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1452"><td class="num" id="LN1452">1452</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; n_pspecs; ++i)</td></tr>
+<tr class="codeline" data-linenumber="1453"><td class="num" id="LN1453">1453</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1454"><td class="num" id="LN1454">1454</td><td class="line"> GParamSpec *pspec = pspecs[i];</td></tr>
+<tr class="codeline" data-linenumber="1455"><td class="num" id="LN1455">1455</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1456"><td class="num" id="LN1456">1456</td><td class="line"> <span class='keyword'>if</span> (pspec-&gt;owner_type != <span class='macro'>TERMINAL_TYPE_PROFILE<span class='macro_popup'>(terminal_profile_get_type ())</span></span> ||</td></tr>
+<tr class="codeline" data-linenumber="1457"><td class="num" id="LN1457">1457</td><td class="line"> (pspec-&gt;flags &amp; G_PARAM_WRITABLE) == 0)</td></tr>
+<tr class="codeline" data-linenumber="1458"><td class="num" id="LN1458">1458</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="1459"><td class="num" id="LN1459">1459</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1460"><td class="num" id="LN1460">1460</td><td class="line"> new_priv-&gt;dirty_pspecs = g_slist_prepend (new_priv-&gt;dirty_pspecs, pspec);</td></tr>
+<tr class="codeline" data-linenumber="1461"><td class="num" id="LN1461">1461</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1462"><td class="num" id="LN1462">1462</td><td class="line"> g_free (pspecs);</td></tr>
+<tr class="codeline" data-linenumber="1463"><td class="num" id="LN1463">1463</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1464"><td class="num" id="LN1464">1464</td><td class="line"> terminal_profile_save (new_profile);</td></tr>
+<tr class="codeline" data-linenumber="1465"><td class="num" id="LN1465">1465</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1466"><td class="num" id="LN1466">1466</td><td class="line"> <span class='keyword'>return</span> new_profile;</td></tr>
+<tr class="codeline" data-linenumber="1467"><td class="num" id="LN1467">1467</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1468"><td class="num" id="LN1468">1468</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1469"><td class="num" id="LN1469">1469</td><td class="line"><span class='comment'>/* Public API */</span></td></tr>
+<tr class="codeline" data-linenumber="1470"><td class="num" id="LN1470">1470</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1471"><td class="num" id="LN1471">1471</td><td class="line">gboolean</td></tr>
+<tr class="codeline" data-linenumber="1472"><td class="num" id="LN1472">1472</td><td class="line">terminal_profile_get_property_boolean (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1473"><td class="num" id="LN1473">1473</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="1474"><td class="num" id="LN1474">1474</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1475"><td class="num" id="LN1475">1475</td><td class="line"> <span class='keyword'>const</span> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="1476"><td class="num" id="LN1476">1476</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1477"><td class="num" id="LN1477">1477</td><td class="line"> value = get_prop_value_from_prop_name (profile, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="1478"><td class="num" id="LN1478">1478</td><td class="line"> <span class='macro'>g_return_val_if_fail (value != NULL &amp;&amp; G_VALUE_HOLDS_BOOLEAN (value), FALSE)<span class='macro_popup'>do { if ((value != ((void*)0) &amp;&amp; (((__extension__ ({ const<br> GValue *__val = (const GValue*) ((value)); GType __t = (((GType<br>) ((5) &lt;&lt; (2)))); gboolean __r; if (!__val) __r = (0); else<br> if (__val-&gt;g_type == __t) __r = (!(0)); else __r = g_type_check_value_holds<br> (__val, __t); __r; })))))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "value != NULL &amp;&amp; G_VALUE_HOLDS_BOOLEAN (value)"<br>); return ((0)); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1479"><td class="num" id="LN1479">1479</td><td class="line"> <span class='keyword'>if</span> (!value || !<span class='macro'>G_VALUE_HOLDS_BOOLEAN (value)<span class='macro_popup'>(((__extension__ ({ const GValue *__val = (const GValue*) ((value<br>)); GType __t = (((GType) ((5) &lt;&lt; (2)))); gboolean __r;<br> if (!__val) __r = (0); else if (__val-&gt;g_type == __t) __r<br> = (!(0)); else __r = g_type_check_value_holds (__val, __t); __r<br>; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1480"><td class="num" id="LN1480">1480</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1481"><td class="num" id="LN1481">1481</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1482"><td class="num" id="LN1482">1482</td><td class="line"> <span class='keyword'>return</span> g_value_get_boolean (value);</td></tr>
+<tr class="codeline" data-linenumber="1483"><td class="num" id="LN1483">1483</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1484"><td class="num" id="LN1484">1484</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1485"><td class="num" id="LN1485">1485</td><td class="line">gconstpointer</td></tr>
+<tr class="codeline" data-linenumber="1486"><td class="num" id="LN1486">1486</td><td class="line">terminal_profile_get_property_boxed (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1487"><td class="num" id="LN1487">1487</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="1488"><td class="num" id="LN1488">1488</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1489"><td class="num" id="LN1489">1489</td><td class="line"> <span class='keyword'>const</span> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="1490"><td class="num" id="LN1490">1490</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1491"><td class="num" id="LN1491">1491</td><td class="line"> value = get_prop_value_from_prop_name (profile, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="1492"><td class="num" id="LN1492">1492</td><td class="line"> <span class='macro'>g_return_val_if_fail (value != NULL &amp;&amp; G_VALUE_HOLDS_BOXED (value), NULL)<span class='macro_popup'>do { if ((value != ((void*)0) &amp;&amp; (((__extension__ ({ const<br> GValue *__val = (const GValue*) ((value)); GType __t = (((GType<br>) ((18) &lt;&lt; (2)))); gboolean __r; if (!__val) __r = (0);<br> else if (__val-&gt;g_type == __t) __r = (!(0)); else __r = g_type_check_value_holds<br> (__val, __t); __r; })))))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "value != NULL &amp;&amp; G_VALUE_HOLDS_BOXED (value)"<br>); return (((void*)0)); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1493"><td class="num" id="LN1493">1493</td><td class="line"> <span class='keyword'>if</span> (!value || !<span class='macro'>G_VALUE_HOLDS_BOXED (value)<span class='macro_popup'>(((__extension__ ({ const GValue *__val = (const GValue*) ((value<br>)); GType __t = (((GType) ((18) &lt;&lt; (2)))); gboolean __r<br>; if (!__val) __r = (0); else if (__val-&gt;g_type == __t) __r<br> = (!(0)); else __r = g_type_check_value_holds (__val, __t); __r<br>; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1494"><td class="num" id="LN1494">1494</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1495"><td class="num" id="LN1495">1495</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1496"><td class="num" id="LN1496">1496</td><td class="line"> <span class='keyword'>return</span> g_value_get_boxed (value);</td></tr>
+<tr class="codeline" data-linenumber="1497"><td class="num" id="LN1497">1497</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1498"><td class="num" id="LN1498">1498</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1499"><td class="num" id="LN1499">1499</td><td class="line"><span class='keyword'>double</span></td></tr>
+<tr class="codeline" data-linenumber="1500"><td class="num" id="LN1500">1500</td><td class="line">terminal_profile_get_property_double (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1501"><td class="num" id="LN1501">1501</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="1502"><td class="num" id="LN1502">1502</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1503"><td class="num" id="LN1503">1503</td><td class="line"> <span class='keyword'>const</span> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="1504"><td class="num" id="LN1504">1504</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1505"><td class="num" id="LN1505">1505</td><td class="line"> value = get_prop_value_from_prop_name (profile, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="1506"><td class="num" id="LN1506">1506</td><td class="line"> <span class='macro'>g_return_val_if_fail (value != NULL &amp;&amp; G_VALUE_HOLDS_DOUBLE (value), 0.0)<span class='macro_popup'>do { if ((value != ((void*)0) &amp;&amp; (((__extension__ ({ const<br> GValue *__val = (const GValue*) ((value)); GType __t = (((GType<br>) ((15) &lt;&lt; (2)))); gboolean __r; if (!__val) __r = (0);<br> else if (__val-&gt;g_type == __t) __r = (!(0)); else __r = g_type_check_value_holds<br> (__val, __t); __r; })))))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "value != NULL &amp;&amp; G_VALUE_HOLDS_DOUBLE (value)"<br>); return (0.0); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1507"><td class="num" id="LN1507">1507</td><td class="line"> <span class='keyword'>if</span> (!value || !<span class='macro'>G_VALUE_HOLDS_DOUBLE (value)<span class='macro_popup'>(((__extension__ ({ const GValue *__val = (const GValue*) ((value<br>)); GType __t = (((GType) ((15) &lt;&lt; (2)))); gboolean __r<br>; if (!__val) __r = (0); else if (__val-&gt;g_type == __t) __r<br> = (!(0)); else __r = g_type_check_value_holds (__val, __t); __r<br>; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1508"><td class="num" id="LN1508">1508</td><td class="line"> <span class='keyword'>return</span> 0.0;</td></tr>
+<tr class="codeline" data-linenumber="1509"><td class="num" id="LN1509">1509</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1510"><td class="num" id="LN1510">1510</td><td class="line"> <span class='keyword'>return</span> g_value_get_double (value);</td></tr>
+<tr class="codeline" data-linenumber="1511"><td class="num" id="LN1511">1511</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1512"><td class="num" id="LN1512">1512</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1513"><td class="num" id="LN1513">1513</td><td class="line"><span class='keyword'>int</span></td></tr>
+<tr class="codeline" data-linenumber="1514"><td class="num" id="LN1514">1514</td><td class="line">terminal_profile_get_property_enum (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1515"><td class="num" id="LN1515">1515</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="1516"><td class="num" id="LN1516">1516</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1517"><td class="num" id="LN1517">1517</td><td class="line"> <span class='keyword'>const</span> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="1518"><td class="num" id="LN1518">1518</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1519"><td class="num" id="LN1519">1519</td><td class="line"> value = get_prop_value_from_prop_name (profile, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="1520"><td class="num" id="LN1520">1520</td><td class="line"> <span class='macro'>g_return_val_if_fail (value != NULL &amp;&amp; G_VALUE_HOLDS_ENUM (value), 0)<span class='macro_popup'>do { if ((value != ((void*)0) &amp;&amp; (((__extension__ ({ const<br> GValue *__val = (const GValue*) ((value)); GType __t = (((GType<br>) ((12) &lt;&lt; (2)))); gboolean __r; if (!__val) __r = (0);<br> else if (__val-&gt;g_type == __t) __r = (!(0)); else __r = g_type_check_value_holds<br> (__val, __t); __r; })))))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "value != NULL &amp;&amp; G_VALUE_HOLDS_ENUM (value)"<br>); return (0); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1521"><td class="num" id="LN1521">1521</td><td class="line"> <span class='keyword'>if</span> (!value || !<span class='macro'>G_VALUE_HOLDS_ENUM (value)<span class='macro_popup'>(((__extension__ ({ const GValue *__val = (const GValue*) ((value<br>)); GType __t = (((GType) ((12) &lt;&lt; (2)))); gboolean __r<br>; if (!__val) __r = (0); else if (__val-&gt;g_type == __t) __r<br> = (!(0)); else __r = g_type_check_value_holds (__val, __t); __r<br>; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1522"><td class="num" id="LN1522">1522</td><td class="line"> <span class='keyword'>return</span> 0;</td></tr>
+<tr class="codeline" data-linenumber="1523"><td class="num" id="LN1523">1523</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1524"><td class="num" id="LN1524">1524</td><td class="line"> <span class='keyword'>return</span> g_value_get_enum (value);</td></tr>
+<tr class="codeline" data-linenumber="1525"><td class="num" id="LN1525">1525</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1526"><td class="num" id="LN1526">1526</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1527"><td class="num" id="LN1527">1527</td><td class="line"><span class='keyword'>int</span></td></tr>
+<tr class="codeline" data-linenumber="1528"><td class="num" id="LN1528">1528</td><td class="line">terminal_profile_get_property_int (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1529"><td class="num" id="LN1529">1529</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="1530"><td class="num" id="LN1530">1530</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1531"><td class="num" id="LN1531">1531</td><td class="line"> <span class='keyword'>const</span> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="1532"><td class="num" id="LN1532">1532</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1533"><td class="num" id="LN1533">1533</td><td class="line"> value = get_prop_value_from_prop_name (profile, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="1534"><td class="num" id="LN1534">1534</td><td class="line"> <span class='macro'>g_return_val_if_fail (value != NULL &amp;&amp; G_VALUE_HOLDS_INT (value), 0)<span class='macro_popup'>do { if ((value != ((void*)0) &amp;&amp; (((__extension__ ({ const<br> GValue *__val = (const GValue*) ((value)); GType __t = (((GType<br>) ((6) &lt;&lt; (2)))); gboolean __r; if (!__val) __r = (0); else<br> if (__val-&gt;g_type == __t) __r = (!(0)); else __r = g_type_check_value_holds<br> (__val, __t); __r; })))))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "value != NULL &amp;&amp; G_VALUE_HOLDS_INT (value)"<br>); return (0); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1535"><td class="num" id="LN1535">1535</td><td class="line"> <span class='keyword'>if</span> (!value || !<span class='macro'>G_VALUE_HOLDS_INT (value)<span class='macro_popup'>(((__extension__ ({ const GValue *__val = (const GValue*) ((value<br>)); GType __t = (((GType) ((6) &lt;&lt; (2)))); gboolean __r;<br> if (!__val) __r = (0); else if (__val-&gt;g_type == __t) __r<br> = (!(0)); else __r = g_type_check_value_holds (__val, __t); __r<br>; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1536"><td class="num" id="LN1536">1536</td><td class="line"> <span class='keyword'>return</span> 0;</td></tr>
+<tr class="codeline" data-linenumber="1537"><td class="num" id="LN1537">1537</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1538"><td class="num" id="LN1538">1538</td><td class="line"> <span class='keyword'>return</span> g_value_get_int (value);</td></tr>
+<tr class="codeline" data-linenumber="1539"><td class="num" id="LN1539">1539</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1540"><td class="num" id="LN1540">1540</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1541"><td class="num" id="LN1541">1541</td><td class="line">gpointer</td></tr>
+<tr class="codeline" data-linenumber="1542"><td class="num" id="LN1542">1542</td><td class="line">terminal_profile_get_property_object (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1543"><td class="num" id="LN1543">1543</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="1544"><td class="num" id="LN1544">1544</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1545"><td class="num" id="LN1545">1545</td><td class="line"> <span class='keyword'>const</span> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="1546"><td class="num" id="LN1546">1546</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1547"><td class="num" id="LN1547">1547</td><td class="line"> value = get_prop_value_from_prop_name (profile, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="1548"><td class="num" id="LN1548">1548</td><td class="line"> <span class='macro'>g_return_val_if_fail (value != NULL &amp;&amp; G_VALUE_HOLDS_OBJECT (value), NULL)<span class='macro_popup'>do { if ((value != ((void*)0) &amp;&amp; (((__extension__ ({ const<br> GValue *__val = (const GValue*) ((value)); GType __t = (((GType<br>) ((20) &lt;&lt; (2)))); gboolean __r; if (!__val) __r = (0);<br> else if (__val-&gt;g_type == __t) __r = (!(0)); else __r = g_type_check_value_holds<br> (__val, __t); __r; })))))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "value != NULL &amp;&amp; G_VALUE_HOLDS_OBJECT (value)"<br>); return (((void*)0)); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1549"><td class="num" id="LN1549">1549</td><td class="line"> <span class='keyword'>if</span> (!value || !<span class='macro'>G_VALUE_HOLDS_OBJECT (value)<span class='macro_popup'>(((__extension__ ({ const GValue *__val = (const GValue*) ((value<br>)); GType __t = (((GType) ((20) &lt;&lt; (2)))); gboolean __r<br>; if (!__val) __r = (0); else if (__val-&gt;g_type == __t) __r<br> = (!(0)); else __r = g_type_check_value_holds (__val, __t); __r<br>; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1550"><td class="num" id="LN1550">1550</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1551"><td class="num" id="LN1551">1551</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1552"><td class="num" id="LN1552">1552</td><td class="line"> <span class='keyword'>return</span> g_value_get_object (value);</td></tr>
+<tr class="codeline" data-linenumber="1553"><td class="num" id="LN1553">1553</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1554"><td class="num" id="LN1554">1554</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1555"><td class="num" id="LN1555">1555</td><td class="line"><span class='keyword'>const</span> <span class='keyword'>char</span>*</td></tr>
+<tr class="codeline" data-linenumber="1556"><td class="num" id="LN1556">1556</td><td class="line">terminal_profile_get_property_string (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1557"><td class="num" id="LN1557">1557</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="1558"><td class="num" id="LN1558">1558</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1559"><td class="num" id="LN1559">1559</td><td class="line"> <span class='keyword'>const</span> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="1560"><td class="num" id="LN1560">1560</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1561"><td class="num" id="LN1561">1561</td><td class="line"> value = get_prop_value_from_prop_name (profile, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="1562"><td class="num" id="LN1562">1562</td><td class="line"> <span class='macro'>g_return_val_if_fail (value != NULL &amp;&amp; G_VALUE_HOLDS_STRING (value), NULL)<span class='macro_popup'>do { if ((value != ((void*)0) &amp;&amp; (((__extension__ ({ const<br> GValue *__val = (const GValue*) ((value)); GType __t = (((GType<br>) ((16) &lt;&lt; (2)))); gboolean __r; if (!__val) __r = (0);<br> else if (__val-&gt;g_type == __t) __r = (!(0)); else __r = g_type_check_value_holds<br> (__val, __t); __r; })))))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "value != NULL &amp;&amp; G_VALUE_HOLDS_STRING (value)"<br>); return (((void*)0)); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1563"><td class="num" id="LN1563">1563</td><td class="line"> <span class='keyword'>if</span> (!value || !<span class='macro'>G_VALUE_HOLDS_STRING (value)<span class='macro_popup'>(((__extension__ ({ const GValue *__val = (const GValue*) ((value<br>)); GType __t = (((GType) ((16) &lt;&lt; (2)))); gboolean __r<br>; if (!__val) __r = (0); else if (__val-&gt;g_type == __t) __r<br> = (!(0)); else __r = g_type_check_value_holds (__val, __t); __r<br>; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1564"><td class="num" id="LN1564">1564</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1565"><td class="num" id="LN1565">1565</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1566"><td class="num" id="LN1566">1566</td><td class="line"> <span class='keyword'>return</span> g_value_get_string (value);</td></tr>
+<tr class="codeline" data-linenumber="1567"><td class="num" id="LN1567">1567</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1568"><td class="num" id="LN1568">1568</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1569"><td class="num" id="LN1569">1569</td><td class="line">gboolean</td></tr>
+<tr class="codeline" data-linenumber="1570"><td class="num" id="LN1570">1570</td><td class="line">terminal_profile_property_locked (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1571"><td class="num" id="LN1571">1571</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="1572"><td class="num" id="LN1572">1572</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1573"><td class="num" id="LN1573">1573</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1574"><td class="num" id="LN1574">1574</td><td class="line"> GParamSpec *pspec;</td></tr>
+<tr class="codeline" data-linenumber="1575"><td class="num" id="LN1575">1575</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1576"><td class="num" id="LN1576">1576</td><td class="line"> pspec = get_pspec_from_name (profile, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="1577"><td class="num" id="LN1577">1577</td><td class="line"> <span class='macro'>g_return_val_if_fail (pspec != NULL, FALSE)<span class='macro_popup'>do { if ((pspec != ((void*)0))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "pspec != NULL");<br> return ((0)); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1578"><td class="num" id="LN1578">1578</td><td class="line"> <span class='keyword'>if</span> (!pspec)</td></tr>
+<tr class="codeline" data-linenumber="1579"><td class="num" id="LN1579">1579</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1580"><td class="num" id="LN1580">1580</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1581"><td class="num" id="LN1581">1581</td><td class="line"> <span class='keyword'>return</span> priv-&gt;locked[pspec-&gt;param_id];</td></tr>
+<tr class="codeline" data-linenumber="1582"><td class="num" id="LN1582">1582</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1583"><td class="num" id="LN1583">1583</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1584"><td class="num" id="LN1584">1584</td><td class="line"><span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1585"><td class="num" id="LN1585">1585</td><td class="line">terminal_profile_reset_property (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1586"><td class="num" id="LN1586">1586</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="1587"><td class="num" id="LN1587">1587</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1588"><td class="num" id="LN1588">1588</td><td class="line"> GParamSpec *pspec;</td></tr>
+<tr class="codeline" data-linenumber="1589"><td class="num" id="LN1589">1589</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1590"><td class="num" id="LN1590">1590</td><td class="line"> pspec = get_pspec_from_name (profile, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="1591"><td class="num" id="LN1591">1591</td><td class="line"> <span class='macro'>g_return_if_fail (pspec != NULL)<span class='macro_popup'>do { if ((pspec != ((void*)0))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "pspec != NULL");<br> return; } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1592"><td class="num" id="LN1592">1592</td><td class="line"> <span class='keyword'>if</span> (!pspec ||</td></tr>
+<tr class="codeline" data-linenumber="1593"><td class="num" id="LN1593">1593</td><td class="line"> (pspec-&gt;flags &amp; G_PARAM_WRITABLE) == 0)</td></tr>
+<tr class="codeline" data-linenumber="1594"><td class="num" id="LN1594">1594</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1595"><td class="num" id="LN1595">1595</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1596"><td class="num" id="LN1596">1596</td><td class="line"> terminal_profile_reset_property_internal (profile, pspec, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1597"><td class="num" id="LN1597">1597</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1598"><td class="num" id="LN1598">1598</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1599"><td class="num" id="LN1599">1599</td><td class="line">gboolean</td></tr>
+<tr class="codeline" data-linenumber="1600"><td class="num" id="LN1600">1600</td><td class="line">terminal_profile_get_palette (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1601"><td class="num" id="LN1601">1601</td><td class="line"> GdkRGBA *colors,</td></tr>
+<tr class="codeline" data-linenumber="1602"><td class="num" id="LN1602">1602</td><td class="line"> guint *n_colors)</td></tr>
+<tr class="codeline" data-linenumber="1603"><td class="num" id="LN1603">1603</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1604"><td class="num" id="LN1604">1604</td><td class="line"> TerminalProfilePrivate *priv;</td></tr>
+<tr class="codeline" data-linenumber="1605"><td class="num" id="LN1605">1605</td><td class="line"> GValueArray *array;</td></tr>
+<tr class="codeline" data-linenumber="1606"><td class="num" id="LN1606">1606</td><td class="line"> guint i, n;</td></tr>
+<tr class="codeline" data-linenumber="1607"><td class="num" id="LN1607">1607</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1608"><td class="num" id="LN1608">1608</td><td class="line"> <span class='macro'>g_return_val_if_fail (TERMINAL_IS_PROFILE (profile), FALSE)<span class='macro_popup'>do { if (((((__extension__ ({ GTypeInstance *__inst = (GTypeInstance<br>*) ((profile)); GType __t = ((terminal_profile_get_type ()));<br> gboolean __r; if (!__inst) __r = (0); else if (__inst-&gt;g_class<br> &amp;&amp; __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)<br>); else __r = g_type_check_instance_is_a (__inst, __t); __r; }<br>)))))) { } else { g_return_if_fail_warning (((gchar*) 0), ((const<br> char*) (__func__)), "TERMINAL_IS_PROFILE (profile)"); return<br> ((0)); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1609"><td class="num" id="LN1609">1609</td><td class="line"> <span class='macro'>g_return_val_if_fail (colors != NULL &amp;&amp; n_colors != NULL, FALSE)<span class='macro_popup'>do { if ((colors != ((void*)0) &amp;&amp; n_colors != ((void*<br>)0))) { } else { g_return_if_fail_warning (((gchar*) 0), ((const<br> char*) (__func__)), "colors != NULL &amp;&amp; n_colors != NULL"<br>); return ((0)); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1610"><td class="num" id="LN1610">1610</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1611"><td class="num" id="LN1611">1611</td><td class="line"> priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1612"><td class="num" id="LN1612">1612</td><td class="line"> array = g_value_get_boxed (g_value_array_get_nth (priv-&gt;properties, PROP_PALETTE));</td></tr>
+<tr class="codeline" data-linenumber="1613"><td class="num" id="LN1613">1613</td><td class="line"> <span class='keyword'>if</span> (!array)</td></tr>
+<tr class="codeline" data-linenumber="1614"><td class="num" id="LN1614">1614</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1615"><td class="num" id="LN1615">1615</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1616"><td class="num" id="LN1616">1616</td><td class="line"> n = <span class='macro'>MIN (array-&gt;n_values, *n_colors)<span class='macro_popup'>(((array-&gt;n_values) &lt; (*n_colors)) ? (array-&gt;n_values<br>) : (*n_colors))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1617"><td class="num" id="LN1617">1617</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; n; ++i)</td></tr>
+<tr class="codeline" data-linenumber="1618"><td class="num" id="LN1618">1618</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1619"><td class="num" id="LN1619">1619</td><td class="line"> GdkRGBA *color = g_value_get_boxed (g_value_array_get_nth (array, i));</td></tr>
+<tr class="codeline" data-linenumber="1620"><td class="num" id="LN1620">1620</td><td class="line"> <span class='keyword'>if</span> (!color)</td></tr>
+<tr class="codeline" data-linenumber="1621"><td class="num" id="LN1621">1621</td><td class="line"> <span class='keyword'>continue</span>; <span class='comment'>/* shouldn't happen!! */</span></td></tr>
+<tr class="codeline" data-linenumber="1622"><td class="num" id="LN1622">1622</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1623"><td class="num" id="LN1623">1623</td><td class="line"> colors[i] = *color;</td></tr>
+<tr class="codeline" data-linenumber="1624"><td class="num" id="LN1624">1624</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1625"><td class="num" id="LN1625">1625</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1626"><td class="num" id="LN1626">1626</td><td class="line"> *n_colors = n;</td></tr>
+<tr class="codeline" data-linenumber="1627"><td class="num" id="LN1627">1627</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1628"><td class="num" id="LN1628">1628</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1629"><td class="num" id="LN1629">1629</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1630"><td class="num" id="LN1630">1630</td><td class="line">gboolean</td></tr>
+<tr class="codeline" data-linenumber="1631"><td class="num" id="LN1631">1631</td><td class="line">terminal_profile_get_palette_is_builtin (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1632"><td class="num" id="LN1632">1632</td><td class="line"> guint *n)</td></tr>
+<tr class="codeline" data-linenumber="1633"><td class="num" id="LN1633">1633</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1634"><td class="num" id="LN1634">1634</td><td class="line"> GdkRGBA colors[<span class='macro'>TERMINAL_PALETTE_SIZE<span class='macro_popup'>16</span></span>];</td></tr>
+<tr class="codeline" data-linenumber="1635"><td class="num" id="LN1635">1635</td><td class="line"> guint n_colors;</td></tr>
+<tr class="codeline" data-linenumber="1636"><td class="num" id="LN1636">1636</td><td class="line"> guint i;</td></tr>
+<tr class="codeline" data-linenumber="1637"><td class="num" id="LN1637">1637</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1638"><td class="num" id="LN1638">1638</td><td class="line"> n_colors = <span class='macro'>G_N_ELEMENTS (colors)<span class='macro_popup'>(sizeof (colors) / sizeof ((colors)[0]))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1639"><td class="num" id="LN1639">1639</td><td class="line"> <span class='keyword'>if</span> (!terminal_profile_get_palette (profile, colors, &amp;n_colors) ||</td></tr>
+<tr class="codeline" data-linenumber="1640"><td class="num" id="LN1640">1640</td><td class="line"> n_colors != <span class='macro'>TERMINAL_PALETTE_SIZE<span class='macro_popup'>16</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1641"><td class="num" id="LN1641">1641</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1642"><td class="num" id="LN1642">1642</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1643"><td class="num" id="LN1643">1643</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; <span class='macro'>TERMINAL_PALETTE_N_BUILTINS<span class='macro_popup'>5</span></span>; ++i)</td></tr>
+<tr class="codeline" data-linenumber="1644"><td class="num" id="LN1644">1644</td><td class="line"> <span class='keyword'>if</span> (palette_cmp (colors, terminal_palettes[i]))</td></tr>
+<tr class="codeline" data-linenumber="1645"><td class="num" id="LN1645">1645</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1646"><td class="num" id="LN1646">1646</td><td class="line"> *n = i;</td></tr>
+<tr class="codeline" data-linenumber="1647"><td class="num" id="LN1647">1647</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1648"><td class="num" id="LN1648">1648</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1649"><td class="num" id="LN1649">1649</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1650"><td class="num" id="LN1650">1650</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1651"><td class="num" id="LN1651">1651</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1652"><td class="num" id="LN1652">1652</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1653"><td class="num" id="LN1653">1653</td><td class="line"><span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1654"><td class="num" id="LN1654">1654</td><td class="line">terminal_profile_set_palette_builtin (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1655"><td class="num" id="LN1655">1655</td><td class="line"> guint n)</td></tr>
+<tr class="codeline" data-linenumber="1656"><td class="num" id="LN1656">1656</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1657"><td class="num" id="LN1657">1657</td><td class="line"> GValue value = { 0, };</td></tr>
+<tr class="codeline" data-linenumber="1658"><td class="num" id="LN1658">1658</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1659"><td class="num" id="LN1659">1659</td><td class="line"> <span class='macro'>g_return_if_fail (n &lt; TERMINAL_PALETTE_N_BUILTINS)<span class='macro_popup'>do { if ((n &lt; 5)) { } else { g_return_if_fail_warning (((gchar<br>*) 0), ((const char*) (__func__)), "n &lt; TERMINAL_PALETTE_N_BUILTINS"<br>); return; } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1660"><td class="num" id="LN1660">1660</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1661"><td class="num" id="LN1661">1661</td><td class="line"> g_value_init (&amp;value, <span class='macro'>G_TYPE_VALUE_ARRAY<span class='macro_popup'>(g_value_array_get_type ()) GCC warning "Deprecated pre-processor symbol: replace with \"(g_array_get_type ())\""<br>
+</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1662"><td class="num" id="LN1662">1662</td><td class="line"> set_value_from_palette (&amp;value, terminal_palettes[n], <span class='macro'>TERMINAL_PALETTE_SIZE<span class='macro_popup'>16</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1663"><td class="num" id="LN1663">1663</td><td class="line"> g_object_set_property (<span class='macro'>G_OBJECT (profile)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((profile)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, <span class='macro'>TERMINAL_PROFILE_PALETTE<span class='macro_popup'>"palette"</span></span>, &amp;value);</td></tr>
+<tr class="codeline" data-linenumber="1664"><td class="num" id="LN1664">1664</td><td class="line"> g_value_unset (&amp;value);</td></tr>
+<tr class="codeline" data-linenumber="1665"><td class="num" id="LN1665">1665</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1666"><td class="num" id="LN1666">1666</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1667"><td class="num" id="LN1667">1667</td><td class="line">gboolean</td></tr>
+<tr class="codeline" data-linenumber="1668"><td class="num" id="LN1668">1668</td><td class="line">terminal_profile_modify_palette_entry (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1669"><td class="num" id="LN1669">1669</td><td class="line"> guint i,</td></tr>
+<tr class="codeline" data-linenumber="1670"><td class="num" id="LN1670">1670</td><td class="line"> <span class='keyword'>const</span> GdkRGBA *color)</td></tr>
+<tr class="codeline" data-linenumber="1671"><td class="num" id="LN1671">1671</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1672"><td class="num" id="LN1672">1672</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1673"><td class="num" id="LN1673">1673</td><td class="line"> GValueArray *array;</td></tr>
+<tr class="codeline" data-linenumber="1674"><td class="num" id="LN1674">1674</td><td class="line"> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="1675"><td class="num" id="LN1675">1675</td><td class="line"> GdkRGBA *old_color;</td></tr>
+<tr class="codeline" data-linenumber="1676"><td class="num" id="LN1676">1676</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1677"><td class="num" id="LN1677">1677</td><td class="line"> array = g_value_get_boxed (g_value_array_get_nth (priv-&gt;properties, PROP_PALETTE));</td></tr>
+<tr class="codeline" data-linenumber="1678"><td class="num" id="LN1678">1678</td><td class="line"> <span class='keyword'>if</span> (!array ||</td></tr>
+<tr class="codeline" data-linenumber="1679"><td class="num" id="LN1679">1679</td><td class="line"> i &gt;= array-&gt;n_values)</td></tr>
+<tr class="codeline" data-linenumber="1680"><td class="num" id="LN1680">1680</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1681"><td class="num" id="LN1681">1681</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1682"><td class="num" id="LN1682">1682</td><td class="line"> value = g_value_array_get_nth (array, i);</td></tr>
+<tr class="codeline" data-linenumber="1683"><td class="num" id="LN1683">1683</td><td class="line"> old_color = g_value_get_boxed (value);</td></tr>
+<tr class="codeline" data-linenumber="1684"><td class="num" id="LN1684">1684</td><td class="line"> <span class='keyword'>if</span> (!old_color ||</td></tr>
+<tr class="codeline" data-linenumber="1685"><td class="num" id="LN1685">1685</td><td class="line"> !rgba_equal (old_color, color))</td></tr>
+<tr class="codeline" data-linenumber="1686"><td class="num" id="LN1686">1686</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1687"><td class="num" id="LN1687">1687</td><td class="line"> g_value_set_boxed (value, color);</td></tr>
+<tr class="codeline" data-linenumber="1688"><td class="num" id="LN1688">1688</td><td class="line"> g_object_notify (<span class='macro'>G_OBJECT (profile)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((profile)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, <span class='macro'>TERMINAL_PROFILE_PALETTE<span class='macro_popup'>"palette"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1689"><td class="num" id="LN1689">1689</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1690"><td class="num" id="LN1690">1690</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1691"><td class="num" id="LN1691">1691</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1692"><td class="num" id="LN1692">1692</td><td class="line">}</td></tr>
+</table></body></html>
diff --git a/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-20669e.html b/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-20669e.html
new file mode 100644
index 0000000..8ee0cd6
--- /dev/null
+++ b/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-20669e.html
@@ -0,0 +1,2840 @@
+<!doctype html>
+<html>
+<head>
+<title>terminal-app.c</title>
+
+<style type="text/css">
+body { color:#000000; background-color:#ffffff }
+body { font-family:Helvetica, sans-serif; font-size:10pt }
+h1 { font-size:14pt }
+.FileName { margin-top: 5px; margin-bottom: 5px; display: inline; }
+.FileNav { margin-left: 5px; margin-right: 5px; display: inline; }
+.FileNav a { text-decoration:none; font-size: larger; }
+.divider { margin-top: 30px; margin-bottom: 30px; height: 15px; }
+.divider { background-color: gray; }
+.code { border-collapse:collapse; width:100%; }
+.code { font-family: "Monospace", monospace; font-size:10pt }
+.code { line-height: 1.2em }
+.comment { color: green; font-style: oblique }
+.keyword { color: blue }
+.string_literal { color: red }
+.directive { color: darkmagenta }
+
+/* Macros and variables could have pop-up notes hidden by default.
+ - Macro pop-up: expansion of the macro
+ - Variable pop-up: value (table) of the variable */
+.macro_popup, .variable_popup { display: none; }
+
+/* Pop-up appears on mouse-hover event. */
+.macro:hover .macro_popup, .variable:hover .variable_popup {
+ display: block;
+ padding: 2px;
+ -webkit-border-radius:5px;
+ -webkit-box-shadow:1px 1px 7px #000;
+ border-radius:5px;
+ box-shadow:1px 1px 7px #000;
+ position: absolute;
+ top: -1em;
+ left:10em;
+ z-index: 1
+}
+
+.macro_popup {
+ border: 2px solid red;
+ background-color:#FFF0F0;
+ font-weight: normal;
+}
+
+.variable_popup {
+ border: 2px solid blue;
+ background-color:#F0F0FF;
+ font-weight: bold;
+ font-family: Helvetica, sans-serif;
+ font-size: 9pt;
+}
+
+/* Pop-up notes needs a relative position as a base where they pops up. */
+.macro, .variable {
+ background-color: PaleGoldenRod;
+ position: relative;
+}
+.macro { color: DarkMagenta; }
+
+#tooltiphint {
+ position: fixed;
+ width: 50em;
+ margin-left: -25em;
+ left: 50%;
+ padding: 10px;
+ border: 1px solid #b0b0b0;
+ border-radius: 2px;
+ box-shadow: 1px 1px 7px black;
+ background-color: #c0c0c0;
+ z-index: 2;
+}
+
+.num { width:2.5em; padding-right:2ex; background-color:#eeeeee }
+.num { text-align:right; font-size:8pt }
+.num { color:#444444 }
+.line { padding-left: 1ex; border-left: 3px solid #ccc }
+.line { white-space: pre }
+.msg { -webkit-box-shadow:1px 1px 7px #000 }
+.msg { box-shadow:1px 1px 7px #000 }
+.msg { -webkit-border-radius:5px }
+.msg { border-radius:5px }
+.msg { font-family:Helvetica, sans-serif; font-size:8pt }
+.msg { float:left }
+.msg { position:relative }
+.msg { padding:0.25em 1ex 0.25em 1ex }
+.msg { margin-top:10px; margin-bottom:10px }
+.msg { font-weight:bold }
+.msg { max-width:60em; word-wrap: break-word; white-space: pre-wrap }
+.msgT { padding:0x; spacing:0x }
+.msgEvent { background-color:#fff8b4; color:#000000 }
+.msgControl { background-color:#bbbbbb; color:#000000 }
+.msgNote { background-color:#ddeeff; color:#000000 }
+.mrange { background-color:#dfddf3 }
+.mrange { border-bottom:1px solid #6F9DBE }
+.PathIndex { font-weight: bold; padding:0px 5px; margin-right:5px; }
+.PathIndex { -webkit-border-radius:8px }
+.PathIndex { border-radius:8px }
+.PathIndexEvent { background-color:#bfba87 }
+.PathIndexControl { background-color:#8c8c8c }
+.PathIndexPopUp { background-color: #879abc; }
+.PathNav a { text-decoration:none; font-size: larger }
+.CodeInsertionHint { font-weight: bold; background-color: #10dd10 }
+.CodeRemovalHint { background-color:#de1010 }
+.CodeRemovalHint { border-bottom:1px solid #6F9DBE }
+.msg.selected{ background-color:orange !important; }
+
+table.simpletable {
+ padding: 5px;
+ font-size:12pt;
+ margin:20px;
+ border-collapse: collapse; border-spacing: 0px;
+}
+td.rowname {
+ text-align: right;
+ vertical-align: top;
+ font-weight: bold;
+ color:#444444;
+ padding-right:2ex;
+}
+
+/* Hidden text. */
+input.spoilerhider + label {
+ cursor: pointer;
+ text-decoration: underline;
+ display: block;
+}
+input.spoilerhider {
+ display: none;
+}
+input.spoilerhider ~ .spoiler {
+ overflow: hidden;
+ margin: 10px auto 0;
+ height: 0;
+ opacity: 0;
+}
+input.spoilerhider:checked + label + .spoiler{
+ height: auto;
+ opacity: 1;
+}
+</style>
+</head>
+<body>
+<!-- BUGDESC Casting a non-structure type to a structure type and accessing a field can lead to memory access errors or data corruption -->
+
+<!-- BUGTYPE Cast from non-struct type to struct type -->
+
+<!-- BUGCATEGORY Logic error -->
+
+<!-- BUGFILE /rootdir/src/terminal-app.c -->
+
+<!-- FILENAME terminal-app.c -->
+
+<!-- FUNCTIONNAME terminal_app_profile_list_notify_cb -->
+
+<!-- ISSUEHASHCONTENTOFLINEINCONTEXT 20669e34498b321c46e7e71c631ce973 -->
+
+<!-- BUGLINE 817 -->
+
+<!-- BUGCOLUMN 38 -->
+
+<!-- BUGPATHLENGTH 1 -->
+
+<!-- BUGMETAEND -->
+<!-- REPORTHEADER -->
+<h3>Bug Summary</h3>
+<table class="simpletable">
+<tr><td class="rowname">File:</td><td>terminal-app.c</td></tr>
+<tr><td class="rowname">Warning:</td><td><a href="#EndPath">line 817, column 38</a><br />Casting a non-structure type to a structure type and accessing a field can lead to memory access errors or data corruption</td></tr>
+
+</table>
+<!-- REPORTSUMMARYEXTRA -->
+<h3>Annotated Source Code</h3>
+<p>Press <a href="#" onclick="toggleHelp(); return false;">'?'</a>
+ to see keyboard shortcuts</p>
+<input type="checkbox" class="spoilerhider" id="showinvocation" />
+<label for="showinvocation" >Show analyzer invocation</label>
+<div class="spoiler">clang -cc1 -cc1 -triple x86_64-redhat-linux-gnu -analyze -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name terminal-app.c -analyzer-checker=core -analyzer-checker=apiModeling -analyzer-checker=unix -analyzer-checker=deadcode -analyzer-checker=security.insecureAPI.UncheckedReturn -analyzer-checker=security.insecureAPI.getpw -analyzer-checker=security.insecureAPI.gets -analyzer-checker=security.insecureAPI.mktemp -analyzer-checker=security.insecureAPI.mkstemp -analyzer-checker=security.insecureAPI.vfork -analyzer-checker=nullability.NullPassedToNonnull -analyzer-checker=nullability.NullReturnedFromNonnull -analyzer-output plist -w -setup-static-analyzer -mrelocation-model static -mframe-pointer=all -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -tune-cpu generic -debugger-tuning=gdb -fcoverage-compilation-dir=/rootdir/src -resource-dir /usr/bin/../lib/clang/17 -D HAVE_CONFIG_H -I . -I .. -I ../src/mate-submodules/libegg -D TERMINAL_COMPILATION -D TERMINAL_RESOURCES_PATH_PREFIX="/org/mate/terminal" -D TERM_DATADIR="/usr/local/share" -D TERM_LOCALEDIR="/usr/local/share/locale" -D TERM_PKGDATADIR="/usr/local/share/mate-terminal" -D TERM_HELPDIR="/usr/local/share/help" -D SN_API_NOT_YET_FROZEN -D GDK_MULTIHEAD_SAFE -D G_DISABLE_SINGLE_INCLUDES -D PANGO_DISABLE_SINGLE_INCLUDES -D ATK_DISABLE_SINGLE_INCLUDES -D GDK_DISABLE_SINGLE_INCLUDES -D GDK_PIXBUF_DISABLE_SINGLE_INCLUDES -D GTK_DISABLE_SINGLE_INCLUDES -I /usr/include/dconf -I /usr/include/vte-2.91 -I /usr/include/pango-1.0 -I /usr/include/gtk-3.0 -I /usr/include/gdk-pixbuf-2.0 -I /usr/include/cairo -I /usr/include/dbus-1.0 -I /usr/lib64/dbus-1.0/include -I /usr/include/atk-1.0 -I /usr/include/harfbuzz -I /usr/include/freetype2 -I /usr/include/glib-2.0 -I /usr/lib64/glib-2.0/include -I /usr/include/cloudproviders -I /usr/include/at-spi2-atk/2.0 -I /usr/include/at-spi-2.0 -I /usr/include/blkid -I /usr/include/gio-unix-2.0 -I /usr/include/pixman-1 -I /usr/include/libmount -I /usr/include/libxml2 -I /usr/include/fribidi -I /usr/include/libpng16 -I /usr/include/sysprof-6 -internal-isystem /usr/bin/../lib/clang/17/include -internal-isystem /usr/local/include -internal-isystem /usr/bin/../lib/gcc/x86_64-redhat-linux/13/../../../../x86_64-redhat-linux/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -Wno-unused-parameter -fdebug-compilation-dir=/rootdir/src -ferror-limit 19 -fgnuc-version=4.2.1 -analyzer-checker deadcode.DeadStores -analyzer-checker alpha.deadcode.UnreachableCode -analyzer-checker alpha.core.CastSize -analyzer-checker alpha.core.CastToStruct -analyzer-checker alpha.core.IdenticalExpr -analyzer-checker alpha.core.SizeofPtr -analyzer-checker alpha.security.ArrayBoundV2 -analyzer-checker alpha.security.MallocOverflow -analyzer-checker alpha.security.ReturnPtrRange -analyzer-checker alpha.unix.SimpleStream -analyzer-checker alpha.unix.cstring.BufferOverlap -analyzer-checker alpha.unix.cstring.NotNullTerminated -analyzer-checker alpha.unix.cstring.OutOfBounds -analyzer-checker alpha.core.FixedAddr -analyzer-checker security.insecureAPI.strcpy -analyzer-output=html -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /rootdir/html-report/2024-02-18-131424-5067-1 -x c terminal-app.c
+</div>
+<div id='tooltiphint' hidden="true">
+ <p>Keyboard shortcuts: </p>
+ <ul>
+ <li>Use 'j/k' keys for keyboard navigation</li>
+ <li>Use 'Shift+S' to show/hide relevant lines</li>
+ <li>Use '?' to toggle this window</li>
+ </ul>
+ <a href="#" onclick="toggleHelp(); return false;">Close</a>
+</div>
+<script type='text/javascript'>
+var relevant_lines = {"1": {"817": 1}};
+
+var filterCounterexample = function (hide) {
+ var tables = document.getElementsByClassName("code");
+ for (var t=0; t<tables.length; t++) {
+ var table = tables[t];
+ var file_id = table.getAttribute("data-fileid");
+ var lines_in_fid = relevant_lines[file_id];
+ if (!lines_in_fid) {
+ lines_in_fid = {};
+ }
+ var lines = table.getElementsByClassName("codeline");
+ for (var i=0; i<lines.length; i++) {
+ var el = lines[i];
+ var lineNo = el.getAttribute("data-linenumber");
+ if (!lines_in_fid[lineNo]) {
+ if (hide) {
+ el.setAttribute("hidden", "");
+ } else {
+ el.removeAttribute("hidden");
+ }
+ }
+ }
+ }
+}
+
+window.addEventListener("keydown", function (event) {
+ if (event.defaultPrevented) {
+ return;
+ }
+ // SHIFT + S
+ if (event.shiftKey && event.keyCode == 83) {
+ var checked = document.getElementsByName("showCounterexample")[0].checked;
+ filterCounterexample(!checked);
+ document.getElementsByName("showCounterexample")[0].click();
+ } else {
+ return;
+ }
+ event.preventDefault();
+}, true);
+
+document.addEventListener("DOMContentLoaded", function() {
+ document.querySelector('input[name="showCounterexample"]').onchange=
+ function (event) {
+ filterCounterexample(this.checked);
+ };
+});
+</script>
+
+<form>
+ <input type="checkbox" name="showCounterexample" id="showCounterexample" />
+ <label for="showCounterexample">
+ Show only relevant lines
+ </label>
+ <input type="checkbox" name="showArrows"
+ id="showArrows" style="margin-left: 10px" />
+ <label for="showArrows">
+ Show control flow arrows
+ </label>
+</form>
+
+<script type='text/javascript'>
+// Return range of numbers from a range [lower, upper).
+function range(lower, upper) {
+ var array = [];
+ for (var i = lower; i <= upper; ++i) {
+ array.push(i);
+ }
+ return array;
+}
+
+var getRelatedArrowIndices = function(pathId) {
+ // HTML numeration of events is a bit different than it is in the path.
+ // Everything is rotated one step to the right, so the last element
+ // (error diagnostic) has index 0.
+ if (pathId == 0) {
+ // arrowIndices has at least 2 elements
+ pathId = arrowIndices.length - 1;
+ }
+
+ return range(arrowIndices[pathId], arrowIndices[pathId - 1]);
+}
+
+var highlightArrowsForSelectedEvent = function() {
+ const selectedNum = findNum();
+ const arrowIndicesToHighlight = getRelatedArrowIndices(selectedNum);
+ arrowIndicesToHighlight.forEach((index) => {
+ var arrow = document.querySelector("#arrow" + index);
+ if(arrow) {
+ classListAdd(arrow, "selected")
+ }
+ });
+}
+
+var getAbsoluteBoundingRect = function(element) {
+ const relative = element.getBoundingClientRect();
+ return {
+ left: relative.left + window.pageXOffset,
+ right: relative.right + window.pageXOffset,
+ top: relative.top + window.pageYOffset,
+ bottom: relative.bottom + window.pageYOffset,
+ height: relative.height,
+ width: relative.width
+ };
+}
+
+var drawArrow = function(index) {
+ // This function is based on the great answer from SO:
+ // https://stackoverflow.com/a/39575674/11582326
+ var start = document.querySelector("#start" + index);
+ var end = document.querySelector("#end" + index);
+ var arrow = document.querySelector("#arrow" + index);
+
+ var startRect = getAbsoluteBoundingRect(start);
+ var endRect = getAbsoluteBoundingRect(end);
+
+ // It is an arrow from a token to itself, no need to visualize it.
+ if (startRect.top == endRect.top &&
+ startRect.left == endRect.left)
+ return;
+
+ // Each arrow is a very simple Bézier curve, with two nodes and
+ // two handles. So, we need to calculate four points in the window:
+ // * start node
+ var posStart = { x: 0, y: 0 };
+ // * end node
+ var posEnd = { x: 0, y: 0 };
+ // * handle for the start node
+ var startHandle = { x: 0, y: 0 };
+ // * handle for the end node
+ var endHandle = { x: 0, y: 0 };
+ // One can visualize it as follows:
+ //
+ // start handle
+ // /
+ // X"""_.-""""X
+ // .' \
+ // / start node
+ // |
+ // |
+ // | end node
+ // \ /
+ // `->X
+ // X-'
+ // \
+ // end handle
+ //
+ // NOTE: (0, 0) is the top left corner of the window.
+
+ // We have 3 similar, but still different scenarios to cover:
+ //
+ // 1. Two tokens on different lines.
+ // -xxx
+ // /
+ // \
+ // -> xxx
+ // In this situation, we draw arrow on the left curving to the left.
+ // 2. Two tokens on the same line, and the destination is on the right.
+ // ____
+ // / \
+ // / V
+ // xxx xxx
+ // In this situation, we draw arrow above curving upwards.
+ // 3. Two tokens on the same line, and the destination is on the left.
+ // xxx xxx
+ // ^ /
+ // \____/
+ // In this situation, we draw arrow below curving downwards.
+ const onDifferentLines = startRect.top <= endRect.top - 5 ||
+ startRect.top >= endRect.top + 5;
+ const leftToRight = startRect.left < endRect.left;
+
+ // NOTE: various magic constants are chosen empirically for
+ // better positioning and look
+ if (onDifferentLines) {
+ // Case #1
+ const topToBottom = startRect.top < endRect.top;
+ posStart.x = startRect.left - 1;
+ // We don't want to start it at the top left corner of the token,
+ // it doesn't feel like this is where the arrow comes from.
+ // For this reason, we start it in the middle of the left side
+ // of the token.
+ posStart.y = startRect.top + startRect.height / 2;
+
+ // End node has arrow head and we give it a bit more space.
+ posEnd.x = endRect.left - 4;
+ posEnd.y = endRect.top;
+
+ // Utility object with x and y offsets for handles.
+ var curvature = {
+ // We want bottom-to-top arrow to curve a bit more, so it doesn't
+ // overlap much with top-to-bottom curves (much more frequent).
+ x: topToBottom ? 15 : 25,
+ y: Math.min((posEnd.y - posStart.y) / 3, 10)
+ }
+
+ // When destination is on the different line, we can make a
+ // curvier arrow because we have space for it.
+ // So, instead of using
+ //
+ // startHandle.x = posStart.x - curvature.x
+ // endHandle.x = posEnd.x - curvature.x
+ //
+ // We use the leftmost of these two values for both handles.
+ startHandle.x = Math.min(posStart.x, posEnd.x) - curvature.x;
+ endHandle.x = startHandle.x;
+
+ // Curving downwards from the start node...
+ startHandle.y = posStart.y + curvature.y;
+ // ... and upwards from the end node.
+ endHandle.y = posEnd.y - curvature.y;
+
+ } else if (leftToRight) {
+ // Case #2
+ // Starting from the top right corner...
+ posStart.x = startRect.right - 1;
+ posStart.y = startRect.top;
+
+ // ...and ending at the top left corner of the end token.
+ posEnd.x = endRect.left + 1;
+ posEnd.y = endRect.top - 1;
+
+ // Utility object with x and y offsets for handles.
+ var curvature = {
+ x: Math.min((posEnd.x - posStart.x) / 3, 15),
+ y: 5
+ }
+
+ // Curving to the right...
+ startHandle.x = posStart.x + curvature.x;
+ // ... and upwards from the start node.
+ startHandle.y = posStart.y - curvature.y;
+
+ // And to the left...
+ endHandle.x = posEnd.x - curvature.x;
+ // ... and upwards from the end node.
+ endHandle.y = posEnd.y - curvature.y;
+
+ } else {
+ // Case #3
+ // Starting from the bottom right corner...
+ posStart.x = startRect.right;
+ posStart.y = startRect.bottom;
+
+ // ...and ending also at the bottom right corner, but of the end token.
+ posEnd.x = endRect.right - 1;
+ posEnd.y = endRect.bottom + 1;
+
+ // Utility object with x and y offsets for handles.
+ var curvature = {
+ x: Math.min((posStart.x - posEnd.x) / 3, 15),
+ y: 5
+ }
+
+ // Curving to the left...
+ startHandle.x = posStart.x - curvature.x;
+ // ... and downwards from the start node.
+ startHandle.y = posStart.y + curvature.y;
+
+ // And to the right...
+ endHandle.x = posEnd.x + curvature.x;
+ // ... and downwards from the end node.
+ endHandle.y = posEnd.y + curvature.y;
+ }
+
+ // Put it all together into a path.
+ // More information on the format:
+ // https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths
+ var pathStr = "M" + posStart.x + "," + posStart.y + " " +
+ "C" + startHandle.x + "," + startHandle.y + " " +
+ endHandle.x + "," + endHandle.y + " " +
+ posEnd.x + "," + posEnd.y;
+
+ arrow.setAttribute("d", pathStr);
+};
+
+var drawArrows = function() {
+ const numOfArrows = document.querySelectorAll("path[id^=arrow]").length;
+ for (var i = 0; i < numOfArrows; ++i) {
+ drawArrow(i);
+ }
+}
+
+var toggleArrows = function(event) {
+ const arrows = document.querySelector("#arrows");
+ if (event.target.checked) {
+ arrows.setAttribute("visibility", "visible");
+ } else {
+ arrows.setAttribute("visibility", "hidden");
+ }
+}
+
+window.addEventListener("resize", drawArrows);
+document.addEventListener("DOMContentLoaded", function() {
+ // Whenever we show invocation, locations change, i.e. we
+ // need to redraw arrows.
+ document
+ .querySelector('input[id="showinvocation"]')
+ .addEventListener("click", drawArrows);
+ // Hiding irrelevant lines also should cause arrow rerender.
+ document
+ .querySelector('input[name="showCounterexample"]')
+ .addEventListener("change", drawArrows);
+ document
+ .querySelector('input[name="showArrows"]')
+ .addEventListener("change", toggleArrows);
+ drawArrows();
+ // Default highlighting for the last event.
+ highlightArrowsForSelectedEvent();
+});
+</script>
+
+<script type='text/javascript'>
+var digitMatcher = new RegExp("[0-9]+");
+
+var querySelectorAllArray = function(selector) {
+ return Array.prototype.slice.call(
+ document.querySelectorAll(selector));
+}
+
+document.addEventListener("DOMContentLoaded", function() {
+ querySelectorAllArray(".PathNav > a").forEach(
+ function(currentValue, currentIndex) {
+ var hrefValue = currentValue.getAttribute("href");
+ currentValue.onclick = function() {
+ scrollTo(document.querySelector(hrefValue));
+ return false;
+ };
+ });
+});
+
+var findNum = function() {
+ var s = document.querySelector(".msg.selected");
+ if (!s || s.id == "EndPath") {
+ return 0;
+ }
+ var out = parseInt(digitMatcher.exec(s.id)[0]);
+ return out;
+};
+
+var classListAdd = function(el, theClass) {
+ if(!el.className.baseVal)
+ el.className += " " + theClass;
+ else
+ el.className.baseVal += " " + theClass;
+};
+
+var classListRemove = function(el, theClass) {
+ var className = (!el.className.baseVal) ?
+ el.className : el.className.baseVal;
+ className = className.replace(" " + theClass, "");
+ if(!el.className.baseVal)
+ el.className = className;
+ else
+ el.className.baseVal = className;
+};
+
+var scrollTo = function(el) {
+ querySelectorAllArray(".selected").forEach(function(s) {
+ classListRemove(s, "selected");
+ });
+ classListAdd(el, "selected");
+ window.scrollBy(0, el.getBoundingClientRect().top -
+ (window.innerHeight / 2));
+ highlightArrowsForSelectedEvent();
+};
+
+var move = function(num, up, numItems) {
+ if (num == 1 && up || num == numItems - 1 && !up) {
+ return 0;
+ } else if (num == 0 && up) {
+ return numItems - 1;
+ } else if (num == 0 && !up) {
+ return 1 % numItems;
+ }
+ return up ? num - 1 : num + 1;
+}
+
+var numToId = function(num) {
+ if (num == 0) {
+ return document.getElementById("EndPath")
+ }
+ return document.getElementById("Path" + num);
+};
+
+var navigateTo = function(up) {
+ var numItems = document.querySelectorAll(
+ ".line > .msgEvent, .line > .msgControl").length;
+ var currentSelected = findNum();
+ var newSelected = move(currentSelected, up, numItems);
+ var newEl = numToId(newSelected, numItems);
+
+ // Scroll element into center.
+ scrollTo(newEl);
+};
+
+window.addEventListener("keydown", function (event) {
+ if (event.defaultPrevented) {
+ return;
+ }
+ // key 'j'
+ if (event.keyCode == 74) {
+ navigateTo(/*up=*/false);
+ // key 'k'
+ } else if (event.keyCode == 75) {
+ navigateTo(/*up=*/true);
+ } else {
+ return;
+ }
+ event.preventDefault();
+}, true);
+</script>
+
+<script type='text/javascript'>
+
+var toggleHelp = function() {
+ var hint = document.querySelector("#tooltiphint");
+ var attributeName = "hidden";
+ if (hint.hasAttribute(attributeName)) {
+ hint.removeAttribute(attributeName);
+ } else {
+ hint.setAttribute("hidden", "true");
+ }
+};
+window.addEventListener("keydown", function (event) {
+ if (event.defaultPrevented) {
+ return;
+ }
+ if (event.key == "?") {
+ toggleHelp();
+ } else {
+ return;
+ }
+ event.preventDefault();
+});
+</script>
+
+<style type="text/css">
+ svg {
+ position:absolute;
+ top:0;
+ left:0;
+ height:100%;
+ width:100%;
+ pointer-events: none;
+ overflow: visible
+ }
+ .arrow {
+ stroke-opacity: 0.2;
+ stroke-width: 1;
+ marker-end: url(#arrowhead);
+ }
+
+ .arrow.selected {
+ stroke-opacity: 0.6;
+ stroke-width: 2;
+ marker-end: url(#arrowheadSelected);
+ }
+
+ .arrowhead {
+ orient: auto;
+ stroke: none;
+ opacity: 0.6;
+ fill: blue;
+ }
+</style>
+<svg xmlns="http://www.w3.org/2000/svg">
+ <defs>
+ <marker id="arrowheadSelected" class="arrowhead" opacity="0.6"
+ viewBox="0 0 10 10" refX="3" refY="5"
+ markerWidth="4" markerHeight="4">
+ <path d="M 0 0 L 10 5 L 0 10 z" />
+ </marker>
+ <marker id="arrowhead" class="arrowhead" opacity="0.2"
+ viewBox="0 0 10 10" refX="3" refY="5"
+ markerWidth="4" markerHeight="4">
+ <path d="M 0 0 L 10 5 L 0 10 z" />
+ </marker>
+ </defs>
+ <g id="arrows" fill="none" stroke="blue" visibility="hidden">
+
+ </g>
+</svg>
+<script type='text/javascript'>
+const arrowIndices = [ 0,0 ]
+</script>
+<table class="code" data-fileid="1">
+<tr class="codeline" data-linenumber="1"><td class="num" id="LN1">1</td><td class="line"><span class='comment'>/*</span></td></tr>
+<tr class="codeline" data-linenumber="2"><td class="num" id="LN2">2</td><td class="line"> <span class='comment'>* Copyright © 2001, 2002 Havoc Pennington</span></td></tr>
+<tr class="codeline" data-linenumber="3"><td class="num" id="LN3">3</td><td class="line"> <span class='comment'>* Copyright © 2002 Red Hat, Inc.</span></td></tr>
+<tr class="codeline" data-linenumber="4"><td class="num" id="LN4">4</td><td class="line"> <span class='comment'>* Copyright © 2002 Sun Microsystems</span></td></tr>
+<tr class="codeline" data-linenumber="5"><td class="num" id="LN5">5</td><td class="line"> <span class='comment'>* Copyright © 2003 Mariano Suarez-Alvarez</span></td></tr>
+<tr class="codeline" data-linenumber="6"><td class="num" id="LN6">6</td><td class="line"> <span class='comment'>* Copyright © 2008 Christian Persch</span></td></tr>
+<tr class="codeline" data-linenumber="7"><td class="num" id="LN7">7</td><td class="line"> <span class='comment'>* Copyright (C) 2012-2021 MATE Developers</span></td></tr>
+<tr class="codeline" data-linenumber="8"><td class="num" id="LN8">8</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="9"><td class="num" id="LN9">9</td><td class="line"> <span class='comment'>* Mate-terminal is free software; you can redistribute it and/or modify</span></td></tr>
+<tr class="codeline" data-linenumber="10"><td class="num" id="LN10">10</td><td class="line"> <span class='comment'>* it under the terms of the GNU General Public License as published by</span></td></tr>
+<tr class="codeline" data-linenumber="11"><td class="num" id="LN11">11</td><td class="line"> <span class='comment'>* the Free Software Foundation; either version 3 of the License, or</span></td></tr>
+<tr class="codeline" data-linenumber="12"><td class="num" id="LN12">12</td><td class="line"> <span class='comment'>* (at your option) any later version.</span></td></tr>
+<tr class="codeline" data-linenumber="13"><td class="num" id="LN13">13</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="14"><td class="num" id="LN14">14</td><td class="line"> <span class='comment'>* Mate-terminal is distributed in the hope that it will be useful,</span></td></tr>
+<tr class="codeline" data-linenumber="15"><td class="num" id="LN15">15</td><td class="line"> <span class='comment'>* but WITHOUT ANY WARRANTY; without even the implied warranty of</span></td></tr>
+<tr class="codeline" data-linenumber="16"><td class="num" id="LN16">16</td><td class="line"> <span class='comment'>* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></td></tr>
+<tr class="codeline" data-linenumber="17"><td class="num" id="LN17">17</td><td class="line"> <span class='comment'>* GNU General Public License for more details.</span></td></tr>
+<tr class="codeline" data-linenumber="18"><td class="num" id="LN18">18</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="19"><td class="num" id="LN19">19</td><td class="line"> <span class='comment'>* You should have received a copy of the GNU General Public License</span></td></tr>
+<tr class="codeline" data-linenumber="20"><td class="num" id="LN20">20</td><td class="line"> <span class='comment'>* along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.</span></td></tr>
+<tr class="codeline" data-linenumber="21"><td class="num" id="LN21">21</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="22"><td class="num" id="LN22">22</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="23"><td class="num" id="LN23">23</td><td class="line"><span class='directive'>#include &lt;config.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="24"><td class="num" id="LN24">24</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="25"><td class="num" id="LN25">25</td><td class="line"><span class='directive'>#include &lt;<span class='macro'>errno<span class='macro_popup'>(*__errno_location ())</span></span>.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="26"><td class="num" id="LN26">26</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="27"><td class="num" id="LN27">27</td><td class="line"><span class='directive'>#include &lt;glib.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="28"><td class="num" id="LN28">28</td><td class="line"><span class='directive'>#include &lt;dconf.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="29"><td class="num" id="LN29">29</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="30"><td class="num" id="LN30">30</td><td class="line"><span class='directive'>#include "terminal-intl.h"</span></td></tr>
+<tr class="codeline" data-linenumber="31"><td class="num" id="LN31">31</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="32"><td class="num" id="LN32">32</td><td class="line"><span class='directive'>#include "terminal-debug.h"</span></td></tr>
+<tr class="codeline" data-linenumber="33"><td class="num" id="LN33">33</td><td class="line"><span class='directive'>#include "terminal-app.h"</span></td></tr>
+<tr class="codeline" data-linenumber="34"><td class="num" id="LN34">34</td><td class="line"><span class='directive'>#include "terminal-accels.h"</span></td></tr>
+<tr class="codeline" data-linenumber="35"><td class="num" id="LN35">35</td><td class="line"><span class='directive'>#include "terminal-screen.h"</span></td></tr>
+<tr class="codeline" data-linenumber="36"><td class="num" id="LN36">36</td><td class="line"><span class='directive'>#include "terminal-screen-container.h"</span></td></tr>
+<tr class="codeline" data-linenumber="37"><td class="num" id="LN37">37</td><td class="line"><span class='directive'>#include "terminal-window.h"</span></td></tr>
+<tr class="codeline" data-linenumber="38"><td class="num" id="LN38">38</td><td class="line"><span class='directive'>#include "terminal-util.h"</span></td></tr>
+<tr class="codeline" data-linenumber="39"><td class="num" id="LN39">39</td><td class="line"><span class='directive'>#include "profile-editor.h"</span></td></tr>
+<tr class="codeline" data-linenumber="40"><td class="num" id="LN40">40</td><td class="line"><span class='directive'>#include "terminal-encoding.h"</span></td></tr>
+<tr class="codeline" data-linenumber="41"><td class="num" id="LN41">41</td><td class="line"><span class='directive'>#include &lt;string.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="42"><td class="num" id="LN42">42</td><td class="line"><span class='directive'>#include &lt;stdlib.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="43"><td class="num" id="LN43">43</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="44"><td class="num" id="LN44">44</td><td class="line"><span class='directive'>#ifdef <span class='macro'>HAVE_SMCLIENT<span class='macro_popup'>1</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="45"><td class="num" id="LN45">45</td><td class="line"><span class='directive'>#include "eggsmclient.h"</span></td></tr>
+<tr class="codeline" data-linenumber="46"><td class="num" id="LN46">46</td><td class="line"><span class='directive'>#include "eggdesktopfile.h"</span></td></tr>
+<tr class="codeline" data-linenumber="47"><td class="num" id="LN47">47</td><td class="line"><span class='directive'>#endif /* HAVE_SMCLIENT */</span></td></tr>
+<tr class="codeline" data-linenumber="48"><td class="num" id="LN48">48</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="49"><td class="num" id="LN49">49</td><td class="line"><span class='directive'>#define <span class='macro'>FALLBACK_PROFILE_ID<span class='macro_popup'>"default"</span></span> "default"</span></td></tr>
+<tr class="codeline" data-linenumber="50"><td class="num" id="LN50">50</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="51"><td class="num" id="LN51">51</td><td class="line"><span class='comment'>/* Settings storage works as follows:</span></td></tr>
+<tr class="codeline" data-linenumber="52"><td class="num" id="LN52">52</td><td class="line"> <span class='comment'>* /apps/mate-terminal/global/</span></td></tr>
+<tr class="codeline" data-linenumber="53"><td class="num" id="LN53">53</td><td class="line"> <span class='comment'>* /apps/mate-terminal/profiles/Foo/</span></td></tr>
+<tr class="codeline" data-linenumber="54"><td class="num" id="LN54">54</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="55"><td class="num" id="LN55">55</td><td class="line"> <span class='comment'>* It's somewhat tricky to manage the profiles/ dir since we need to track</span></td></tr>
+<tr class="codeline" data-linenumber="56"><td class="num" id="LN56">56</td><td class="line"> <span class='comment'>* the list of profiles, but GSettings doesn't have a concept of notifying that</span></td></tr>
+<tr class="codeline" data-linenumber="57"><td class="num" id="LN57">57</td><td class="line"> <span class='comment'>* a directory has appeared or disappeared.</span></td></tr>
+<tr class="codeline" data-linenumber="58"><td class="num" id="LN58">58</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="59"><td class="num" id="LN59">59</td><td class="line"> <span class='comment'>* Session state is stored entirely in the RestartCommand command line.</span></td></tr>
+<tr class="codeline" data-linenumber="60"><td class="num" id="LN60">60</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="61"><td class="num" id="LN61">61</td><td class="line"> <span class='comment'>* The number one rule: all stored information is EITHER per-session,</span></td></tr>
+<tr class="codeline" data-linenumber="62"><td class="num" id="LN62">62</td><td class="line"> <span class='comment'>* per-profile, or set from a command line option. THERE CAN BE NO</span></td></tr>
+<tr class="codeline" data-linenumber="63"><td class="num" id="LN63">63</td><td class="line"> <span class='comment'>* OVERLAP. The UI and implementation totally break if you overlap</span></td></tr>
+<tr class="codeline" data-linenumber="64"><td class="num" id="LN64">64</td><td class="line"> <span class='comment'>* these categories. See mate-terminal 1.x for why.</span></td></tr>
+<tr class="codeline" data-linenumber="65"><td class="num" id="LN65">65</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="66"><td class="num" id="LN66">66</td><td class="line"> <span class='comment'>* Don't use this code as an example of how to use GSettings - it's hugely</span></td></tr>
+<tr class="codeline" data-linenumber="67"><td class="num" id="LN67">67</td><td class="line"> <span class='comment'>* overcomplicated due to the profiles stuff. Most apps should not</span></td></tr>
+<tr class="codeline" data-linenumber="68"><td class="num" id="LN68">68</td><td class="line"> <span class='comment'>* have to do scary things of this nature, and should not have</span></td></tr>
+<tr class="codeline" data-linenumber="69"><td class="num" id="LN69">69</td><td class="line"> <span class='comment'>* a profiles feature.</span></td></tr>
+<tr class="codeline" data-linenumber="70"><td class="num" id="LN70">70</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="71"><td class="num" id="LN71">71</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="72"><td class="num" id="LN72">72</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="73"><td class="num" id="LN73">73</td><td class="line">GSettings *settings_global;</td></tr>
+<tr class="codeline" data-linenumber="74"><td class="num" id="LN74">74</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="75"><td class="num" id="LN75">75</td><td class="line"><span class='keyword'>struct</span> _TerminalAppClass</td></tr>
+<tr class="codeline" data-linenumber="76"><td class="num" id="LN76">76</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="77"><td class="num" id="LN77">77</td><td class="line"> GObjectClass parent_class;</td></tr>
+<tr class="codeline" data-linenumber="78"><td class="num" id="LN78">78</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="79"><td class="num" id="LN79">79</td><td class="line"> <span class='keyword'>void</span> (* quit) (TerminalApp *app);</td></tr>
+<tr class="codeline" data-linenumber="80"><td class="num" id="LN80">80</td><td class="line"> <span class='keyword'>void</span> (* profile_list_changed) (TerminalApp *app);</td></tr>
+<tr class="codeline" data-linenumber="81"><td class="num" id="LN81">81</td><td class="line"> <span class='keyword'>void</span> (* encoding_list_changed) (TerminalApp *app);</td></tr>
+<tr class="codeline" data-linenumber="82"><td class="num" id="LN82">82</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="83"><td class="num" id="LN83">83</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="84"><td class="num" id="LN84">84</td><td class="line"><span class='keyword'>struct</span> _TerminalApp</td></tr>
+<tr class="codeline" data-linenumber="85"><td class="num" id="LN85">85</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="86"><td class="num" id="LN86">86</td><td class="line"> GObject parent_instance;</td></tr>
+<tr class="codeline" data-linenumber="87"><td class="num" id="LN87">87</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="88"><td class="num" id="LN88">88</td><td class="line"> GList *windows;</td></tr>
+<tr class="codeline" data-linenumber="89"><td class="num" id="LN89">89</td><td class="line"> GtkWidget *new_profile_dialog;</td></tr>
+<tr class="codeline" data-linenumber="90"><td class="num" id="LN90">90</td><td class="line"> GtkWidget *manage_profiles_dialog;</td></tr>
+<tr class="codeline" data-linenumber="91"><td class="num" id="LN91">91</td><td class="line"> GtkWidget *manage_profiles_list;</td></tr>
+<tr class="codeline" data-linenumber="92"><td class="num" id="LN92">92</td><td class="line"> GtkWidget *manage_profiles_new_button;</td></tr>
+<tr class="codeline" data-linenumber="93"><td class="num" id="LN93">93</td><td class="line"> GtkWidget *manage_profiles_edit_button;</td></tr>
+<tr class="codeline" data-linenumber="94"><td class="num" id="LN94">94</td><td class="line"> GtkWidget *manage_profiles_delete_button;</td></tr>
+<tr class="codeline" data-linenumber="95"><td class="num" id="LN95">95</td><td class="line"> GtkWidget *manage_profiles_default_menu;</td></tr>
+<tr class="codeline" data-linenumber="96"><td class="num" id="LN96">96</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="97"><td class="num" id="LN97">97</td><td class="line"> GSettings *settings_font;</td></tr>
+<tr class="codeline" data-linenumber="98"><td class="num" id="LN98">98</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="99"><td class="num" id="LN99">99</td><td class="line"> GHashTable *profiles;</td></tr>
+<tr class="codeline" data-linenumber="100"><td class="num" id="LN100">100</td><td class="line"> <span class='keyword'>char</span>* default_profile_id;</td></tr>
+<tr class="codeline" data-linenumber="101"><td class="num" id="LN101">101</td><td class="line"> TerminalProfile *default_profile;</td></tr>
+<tr class="codeline" data-linenumber="102"><td class="num" id="LN102">102</td><td class="line"> gboolean default_profile_locked;</td></tr>
+<tr class="codeline" data-linenumber="103"><td class="num" id="LN103">103</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="104"><td class="num" id="LN104">104</td><td class="line"> GHashTable *encodings;</td></tr>
+<tr class="codeline" data-linenumber="105"><td class="num" id="LN105">105</td><td class="line"> gboolean encodings_locked;</td></tr>
+<tr class="codeline" data-linenumber="106"><td class="num" id="LN106">106</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="107"><td class="num" id="LN107">107</td><td class="line"> PangoFontDescription *system_font_desc;</td></tr>
+<tr class="codeline" data-linenumber="108"><td class="num" id="LN108">108</td><td class="line"> gboolean enable_mnemonics;</td></tr>
+<tr class="codeline" data-linenumber="109"><td class="num" id="LN109">109</td><td class="line"> gboolean enable_menu_accels;</td></tr>
+<tr class="codeline" data-linenumber="110"><td class="num" id="LN110">110</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="111"><td class="num" id="LN111">111</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="112"><td class="num" id="LN112">112</td><td class="line"><span class='keyword'>enum</span></td></tr>
+<tr class="codeline" data-linenumber="113"><td class="num" id="LN113">113</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="114"><td class="num" id="LN114">114</td><td class="line"> PROP_0,</td></tr>
+<tr class="codeline" data-linenumber="115"><td class="num" id="LN115">115</td><td class="line"> PROP_DEFAULT_PROFILE,</td></tr>
+<tr class="codeline" data-linenumber="116"><td class="num" id="LN116">116</td><td class="line"> PROP_ENABLE_MENU_BAR_ACCEL,</td></tr>
+<tr class="codeline" data-linenumber="117"><td class="num" id="LN117">117</td><td class="line"> PROP_ENABLE_MNEMONICS,</td></tr>
+<tr class="codeline" data-linenumber="118"><td class="num" id="LN118">118</td><td class="line"> PROP_SYSTEM_FONT,</td></tr>
+<tr class="codeline" data-linenumber="119"><td class="num" id="LN119">119</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="120"><td class="num" id="LN120">120</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="121"><td class="num" id="LN121">121</td><td class="line"><span class='keyword'>enum</span></td></tr>
+<tr class="codeline" data-linenumber="122"><td class="num" id="LN122">122</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="123"><td class="num" id="LN123">123</td><td class="line"> QUIT,</td></tr>
+<tr class="codeline" data-linenumber="124"><td class="num" id="LN124">124</td><td class="line"> PROFILE_LIST_CHANGED,</td></tr>
+<tr class="codeline" data-linenumber="125"><td class="num" id="LN125">125</td><td class="line"> ENCODING_LIST_CHANGED,</td></tr>
+<tr class="codeline" data-linenumber="126"><td class="num" id="LN126">126</td><td class="line"> LAST_SIGNAL</td></tr>
+<tr class="codeline" data-linenumber="127"><td class="num" id="LN127">127</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="128"><td class="num" id="LN128">128</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="129"><td class="num" id="LN129">129</td><td class="line"><span class='keyword'>static</span> guint signals[LAST_SIGNAL] = { 0 };</td></tr>
+<tr class="codeline" data-linenumber="130"><td class="num" id="LN130">130</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="131"><td class="num" id="LN131">131</td><td class="line"><span class='keyword'>enum</span></td></tr>
+<tr class="codeline" data-linenumber="132"><td class="num" id="LN132">132</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="133"><td class="num" id="LN133">133</td><td class="line"> COL_PROFILE,</td></tr>
+<tr class="codeline" data-linenumber="134"><td class="num" id="LN134">134</td><td class="line"> NUM_COLUMNS</td></tr>
+<tr class="codeline" data-linenumber="135"><td class="num" id="LN135">135</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="136"><td class="num" id="LN136">136</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="137"><td class="num" id="LN137">137</td><td class="line"><span class='keyword'>enum</span></td></tr>
+<tr class="codeline" data-linenumber="138"><td class="num" id="LN138">138</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="139"><td class="num" id="LN139">139</td><td class="line"> SOURCE_DEFAULT = 0,</td></tr>
+<tr class="codeline" data-linenumber="140"><td class="num" id="LN140">140</td><td class="line"> SOURCE_SESSION = 1</td></tr>
+<tr class="codeline" data-linenumber="141"><td class="num" id="LN141">141</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="142"><td class="num" id="LN142">142</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="143"><td class="num" id="LN143">143</td><td class="line"><span class='keyword'>static</span> TerminalApp *global_app = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="144"><td class="num" id="LN144">144</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="145"><td class="num" id="LN145">145</td><td class="line"><span class='directive'>#define <span class='macro'>MONOSPACE_FONT_SCHEMA<span class='macro_popup'>"org.mate.interface"</span></span> "org.mate.interface"</span></td></tr>
+<tr class="codeline" data-linenumber="146"><td class="num" id="LN146">146</td><td class="line"><span class='directive'>#define <span class='macro'>MONOSPACE_FONT_KEY<span class='macro_popup'>"monospace-font-name"</span></span> "monospace-font-name"</span></td></tr>
+<tr class="codeline" data-linenumber="147"><td class="num" id="LN147">147</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_MONOSPACE_FONT<span class='macro_popup'>("Monospace 10")</span></span> ("Monospace 10")</span></td></tr>
+<tr class="codeline" data-linenumber="148"><td class="num" id="LN148">148</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="149"><td class="num" id="LN149">149</td><td class="line"><span class='directive'>#define <span class='macro'>ENABLE_MNEMONICS_KEY<span class='macro_popup'>"use-mnemonics"</span></span> "use-mnemonics"</span></td></tr>
+<tr class="codeline" data-linenumber="150"><td class="num" id="LN150">150</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_ENABLE_MNEMONICS<span class='macro_popup'>((!(0)))</span></span> (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="151"><td class="num" id="LN151">151</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="152"><td class="num" id="LN152">152</td><td class="line"><span class='directive'>#define <span class='macro'>ENABLE_MENU_BAR_ACCEL_KEY<span class='macro_popup'>"use-menu-accelerators"</span></span> "use-menu-accelerators"</span></td></tr>
+<tr class="codeline" data-linenumber="153"><td class="num" id="LN153">153</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_ENABLE_MENU_BAR_ACCEL<span class='macro_popup'>((!(0)))</span></span> (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="154"><td class="num" id="LN154">154</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="155"><td class="num" id="LN155">155</td><td class="line"><span class='directive'>#define <span class='macro'>PROFILE_LIST_KEY<span class='macro_popup'>"profile-list"</span></span> "profile-list"</span></td></tr>
+<tr class="codeline" data-linenumber="156"><td class="num" id="LN156">156</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_PROFILE_KEY<span class='macro_popup'>"default-profile"</span></span> "default-profile"</span></td></tr>
+<tr class="codeline" data-linenumber="157"><td class="num" id="LN157">157</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="158"><td class="num" id="LN158">158</td><td class="line"><span class='directive'>#define <span class='macro'>ENCODING_LIST_KEY<span class='macro_popup'>"active-encodings"</span></span> "active-encodings"</span></td></tr>
+<tr class="codeline" data-linenumber="159"><td class="num" id="LN159">159</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="160"><td class="num" id="LN160">160</td><td class="line"><span class='comment'>/* two following functions were copied from libmate-desktop to get rid</span></td></tr>
+<tr class="codeline" data-linenumber="161"><td class="num" id="LN161">161</td><td class="line"> <span class='comment'>* of dependency on it</span></td></tr>
+<tr class="codeline" data-linenumber="162"><td class="num" id="LN162">162</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="163"><td class="num" id="LN163">163</td><td class="line"> <span class='comment'>* FIXME: I suspect there's no need for excessive copies, we might use</span></td></tr>
+<tr class="codeline" data-linenumber="164"><td class="num" id="LN164">164</td><td class="line"> <span class='comment'>* existing profile list to form GVariant's and write them to GSettings</span></td></tr>
+<tr class="codeline" data-linenumber="165"><td class="num" id="LN165">165</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="166"><td class="num" id="LN166">166</td><td class="line"><span class='keyword'>static</span> gboolean</td></tr>
+<tr class="codeline" data-linenumber="167"><td class="num" id="LN167">167</td><td class="line">gsettings_append_strv (GSettings *settings,</td></tr>
+<tr class="codeline" data-linenumber="168"><td class="num" id="LN168">168</td><td class="line"> <span class='keyword'>const</span> gchar *key,</td></tr>
+<tr class="codeline" data-linenumber="169"><td class="num" id="LN169">169</td><td class="line"> <span class='keyword'>const</span> gchar *value)</td></tr>
+<tr class="codeline" data-linenumber="170"><td class="num" id="LN170">170</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="171"><td class="num" id="LN171">171</td><td class="line"> gchar **old;</td></tr>
+<tr class="codeline" data-linenumber="172"><td class="num" id="LN172">172</td><td class="line"> gchar **new;</td></tr>
+<tr class="codeline" data-linenumber="173"><td class="num" id="LN173">173</td><td class="line"> gint size;</td></tr>
+<tr class="codeline" data-linenumber="174"><td class="num" id="LN174">174</td><td class="line"> gboolean retval;</td></tr>
+<tr class="codeline" data-linenumber="175"><td class="num" id="LN175">175</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="176"><td class="num" id="LN176">176</td><td class="line"> old = g_settings_get_strv (settings, key);</td></tr>
+<tr class="codeline" data-linenumber="177"><td class="num" id="LN177">177</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="178"><td class="num" id="LN178">178</td><td class="line"> <span class='keyword'>for</span> (size = 0; old[size] != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; size++);</td></tr>
+<tr class="codeline" data-linenumber="179"><td class="num" id="LN179">179</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="180"><td class="num" id="LN180">180</td><td class="line"> size += 1; <span class='comment'>/* appended value */</span></td></tr>
+<tr class="codeline" data-linenumber="181"><td class="num" id="LN181">181</td><td class="line"> size += 1; <span class='comment'>/* NULL */</span></td></tr>
+<tr class="codeline" data-linenumber="182"><td class="num" id="LN182">182</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="183"><td class="num" id="LN183">183</td><td class="line"> new = g_realloc_n (old, size, <span class='keyword'>sizeof</span> (gchar *));</td></tr>
+<tr class="codeline" data-linenumber="184"><td class="num" id="LN184">184</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="185"><td class="num" id="LN185">185</td><td class="line"> new[size - 2] = <span class='macro'>g_strdup (value)<span class='macro_popup'>g_strdup_inline (value)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="186"><td class="num" id="LN186">186</td><td class="line"> new[size - 1] = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="187"><td class="num" id="LN187">187</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="188"><td class="num" id="LN188">188</td><td class="line"> retval = g_settings_set_strv (settings, key,</td></tr>
+<tr class="codeline" data-linenumber="189"><td class="num" id="LN189">189</td><td class="line"> (<span class='keyword'>const</span> gchar **) new);</td></tr>
+<tr class="codeline" data-linenumber="190"><td class="num" id="LN190">190</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="191"><td class="num" id="LN191">191</td><td class="line"> g_strfreev (new);</td></tr>
+<tr class="codeline" data-linenumber="192"><td class="num" id="LN192">192</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="193"><td class="num" id="LN193">193</td><td class="line"> <span class='keyword'>return</span> retval;</td></tr>
+<tr class="codeline" data-linenumber="194"><td class="num" id="LN194">194</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="195"><td class="num" id="LN195">195</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="196"><td class="num" id="LN196">196</td><td class="line"><span class='keyword'>static</span> gboolean</td></tr>
+<tr class="codeline" data-linenumber="197"><td class="num" id="LN197">197</td><td class="line">gsettings_remove_all_from_strv (GSettings *settings,</td></tr>
+<tr class="codeline" data-linenumber="198"><td class="num" id="LN198">198</td><td class="line"> <span class='keyword'>const</span> gchar *key,</td></tr>
+<tr class="codeline" data-linenumber="199"><td class="num" id="LN199">199</td><td class="line"> <span class='keyword'>const</span> gchar *value)</td></tr>
+<tr class="codeline" data-linenumber="200"><td class="num" id="LN200">200</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="201"><td class="num" id="LN201">201</td><td class="line"> GArray *array;</td></tr>
+<tr class="codeline" data-linenumber="202"><td class="num" id="LN202">202</td><td class="line"> gchar **old;</td></tr>
+<tr class="codeline" data-linenumber="203"><td class="num" id="LN203">203</td><td class="line"> gint i;</td></tr>
+<tr class="codeline" data-linenumber="204"><td class="num" id="LN204">204</td><td class="line"> gboolean retval;</td></tr>
+<tr class="codeline" data-linenumber="205"><td class="num" id="LN205">205</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="206"><td class="num" id="LN206">206</td><td class="line"> old = g_settings_get_strv (settings, key);</td></tr>
+<tr class="codeline" data-linenumber="207"><td class="num" id="LN207">207</td><td class="line"> array = g_array_new (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>, <span class='keyword'>sizeof</span> (gchar *));</td></tr>
+<tr class="codeline" data-linenumber="208"><td class="num" id="LN208">208</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="209"><td class="num" id="LN209">209</td><td class="line"> <span class='keyword'>for</span> (i = 0; old[i] != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; i++) {</td></tr>
+<tr class="codeline" data-linenumber="210"><td class="num" id="LN210">210</td><td class="line"> <span class='keyword'>if</span> (g_strcmp0 (old[i], value) != 0)</td></tr>
+<tr class="codeline" data-linenumber="211"><td class="num" id="LN211">211</td><td class="line"> array = <span class='macro'>g_array_append_val (array, old[i])<span class='macro_popup'>g_array_append_vals (array, &amp;(old[i]), 1)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="212"><td class="num" id="LN212">212</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="213"><td class="num" id="LN213">213</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="214"><td class="num" id="LN214">214</td><td class="line"> retval = g_settings_set_strv (settings, key,</td></tr>
+<tr class="codeline" data-linenumber="215"><td class="num" id="LN215">215</td><td class="line"> (<span class='keyword'>const</span> gchar **) array-&gt;data);</td></tr>
+<tr class="codeline" data-linenumber="216"><td class="num" id="LN216">216</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="217"><td class="num" id="LN217">217</td><td class="line"> g_strfreev (old);</td></tr>
+<tr class="codeline" data-linenumber="218"><td class="num" id="LN218">218</td><td class="line"> g_array_free (array, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="219"><td class="num" id="LN219">219</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="220"><td class="num" id="LN220">220</td><td class="line"> <span class='keyword'>return</span> retval;</td></tr>
+<tr class="codeline" data-linenumber="221"><td class="num" id="LN221">221</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="222"><td class="num" id="LN222">222</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="223"><td class="num" id="LN223">223</td><td class="line"><span class='comment'>/* Helper functions */</span></td></tr>
+<tr class="codeline" data-linenumber="224"><td class="num" id="LN224">224</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="225"><td class="num" id="LN225">225</td><td class="line"><span class='keyword'>static</span> GdkScreen*</td></tr>
+<tr class="codeline" data-linenumber="226"><td class="num" id="LN226">226</td><td class="line">terminal_app_get_screen_by_display_name (<span class='keyword'>const</span> <span class='keyword'>char</span> *display_name)</td></tr>
+<tr class="codeline" data-linenumber="227"><td class="num" id="LN227">227</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="228"><td class="num" id="LN228">228</td><td class="line"> GdkDisplay *display = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="229"><td class="num" id="LN229">229</td><td class="line"> GdkScreen *screen = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="230"><td class="num" id="LN230">230</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="231"><td class="num" id="LN231">231</td><td class="line"> <span class='keyword'>if</span> (display_name == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="232"><td class="num" id="LN232">232</td><td class="line"> display = gdk_display_get_default ();</td></tr>
+<tr class="codeline" data-linenumber="233"><td class="num" id="LN233">233</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="234"><td class="num" id="LN234">234</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="235"><td class="num" id="LN235">235</td><td class="line"> GSList *displays, *l;</td></tr>
+<tr class="codeline" data-linenumber="236"><td class="num" id="LN236">236</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *period;</td></tr>
+<tr class="codeline" data-linenumber="237"><td class="num" id="LN237">237</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="238"><td class="num" id="LN238">238</td><td class="line"> period = strrchr (display_name, '.');</td></tr>
+<tr class="codeline" data-linenumber="239"><td class="num" id="LN239">239</td><td class="line"> displays = gdk_display_manager_list_displays (gdk_display_manager_get ());</td></tr>
+<tr class="codeline" data-linenumber="240"><td class="num" id="LN240">240</td><td class="line"> <span class='keyword'>for</span> (l = displays; l != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; l = l-&gt;next)</td></tr>
+<tr class="codeline" data-linenumber="241"><td class="num" id="LN241">241</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="242"><td class="num" id="LN242">242</td><td class="line"> GdkDisplay *disp = l-&gt;data;</td></tr>
+<tr class="codeline" data-linenumber="243"><td class="num" id="LN243">243</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="244"><td class="num" id="LN244">244</td><td class="line"> <span class='comment'>/* compare without the screen number part, if present */</span></td></tr>
+<tr class="codeline" data-linenumber="245"><td class="num" id="LN245">245</td><td class="line"> <span class='keyword'>if</span> ((period &amp;&amp; strncmp (gdk_display_get_name (disp), display_name, period - display_name) == 0) ||</td></tr>
+<tr class="codeline" data-linenumber="246"><td class="num" id="LN246">246</td><td class="line"> (period == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span> &amp;&amp; strcmp (gdk_display_get_name (disp), display_name) == 0))</td></tr>
+<tr class="codeline" data-linenumber="247"><td class="num" id="LN247">247</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="248"><td class="num" id="LN248">248</td><td class="line"> display = disp;</td></tr>
+<tr class="codeline" data-linenumber="249"><td class="num" id="LN249">249</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="250"><td class="num" id="LN250">250</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="251"><td class="num" id="LN251">251</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="252"><td class="num" id="LN252">252</td><td class="line"> g_slist_free (displays);</td></tr>
+<tr class="codeline" data-linenumber="253"><td class="num" id="LN253">253</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="254"><td class="num" id="LN254">254</td><td class="line"> <span class='keyword'>if</span> (display == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="255"><td class="num" id="LN255">255</td><td class="line"> display = gdk_display_open (display_name); <span class='comment'>/* FIXME we never close displays */</span></td></tr>
+<tr class="codeline" data-linenumber="256"><td class="num" id="LN256">256</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="257"><td class="num" id="LN257">257</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="258"><td class="num" id="LN258">258</td><td class="line"> <span class='keyword'>if</span> (display == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="259"><td class="num" id="LN259">259</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="260"><td class="num" id="LN260">260</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="261"><td class="num" id="LN261">261</td><td class="line"> screen = gdk_display_get_default_screen (display);</td></tr>
+<tr class="codeline" data-linenumber="262"><td class="num" id="LN262">262</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="263"><td class="num" id="LN263">263</td><td class="line"> <span class='keyword'>return</span> screen;</td></tr>
+<tr class="codeline" data-linenumber="264"><td class="num" id="LN264">264</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="265"><td class="num" id="LN265">265</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="266"><td class="num" id="LN266">266</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>int</span></td></tr>
+<tr class="codeline" data-linenumber="267"><td class="num" id="LN267">267</td><td class="line">terminal_app_get_workspace_for_window (TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="268"><td class="num" id="LN268">268</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="269"><td class="num" id="LN269">269</td><td class="line"> <span class='keyword'>int</span> ret = -1;</td></tr>
+<tr class="codeline" data-linenumber="270"><td class="num" id="LN270">270</td><td class="line"> guchar *data = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="271"><td class="num" id="LN271">271</td><td class="line"> GdkAtom atom;</td></tr>
+<tr class="codeline" data-linenumber="272"><td class="num" id="LN272">272</td><td class="line"> GdkAtom cardinal_atom;</td></tr>
+<tr class="codeline" data-linenumber="273"><td class="num" id="LN273">273</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="274"><td class="num" id="LN274">274</td><td class="line"> atom = gdk_atom_intern_static_string (<span class='string_literal'>"_NET_WM_DESKTOP"</span>);</td></tr>
+<tr class="codeline" data-linenumber="275"><td class="num" id="LN275">275</td><td class="line"> cardinal_atom = gdk_atom_intern_static_string (<span class='string_literal'>"CARDINAL"</span>);</td></tr>
+<tr class="codeline" data-linenumber="276"><td class="num" id="LN276">276</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="277"><td class="num" id="LN277">277</td><td class="line"> gdk_property_get (gtk_widget_get_window(<span class='macro'>GTK_WIDGET(window)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_widget_get_type ()))))))</span></span>),</td></tr>
+<tr class="codeline" data-linenumber="278"><td class="num" id="LN278">278</td><td class="line"> atom, cardinal_atom, 0, 8, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="279"><td class="num" id="LN279">279</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, &amp;data);</td></tr>
+<tr class="codeline" data-linenumber="280"><td class="num" id="LN280">280</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="281"><td class="num" id="LN281">281</td><td class="line"> <span class='keyword'>if</span> (data)</td></tr>
+<tr class="codeline" data-linenumber="282"><td class="num" id="LN282">282</td><td class="line"> ret = *(<span class='keyword'>int</span> *)data;</td></tr>
+<tr class="codeline" data-linenumber="283"><td class="num" id="LN283">283</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="284"><td class="num" id="LN284">284</td><td class="line"> g_free (data);</td></tr>
+<tr class="codeline" data-linenumber="285"><td class="num" id="LN285">285</td><td class="line"> <span class='keyword'>return</span> ret;</td></tr>
+<tr class="codeline" data-linenumber="286"><td class="num" id="LN286">286</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="287"><td class="num" id="LN287">287</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="288"><td class="num" id="LN288">288</td><td class="line"><span class='comment'>/* Menubar mnemonics settings handling */</span></td></tr>
+<tr class="codeline" data-linenumber="289"><td class="num" id="LN289">289</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="290"><td class="num" id="LN290">290</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>int</span></td></tr>
+<tr class="codeline" data-linenumber="291"><td class="num" id="LN291">291</td><td class="line">profiles_alphabetic_cmp (gconstpointer pa,</td></tr>
+<tr class="codeline" data-linenumber="292"><td class="num" id="LN292">292</td><td class="line"> gconstpointer pb)</td></tr>
+<tr class="codeline" data-linenumber="293"><td class="num" id="LN293">293</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="294"><td class="num" id="LN294">294</td><td class="line"> TerminalProfile *a = (TerminalProfile *) pa;</td></tr>
+<tr class="codeline" data-linenumber="295"><td class="num" id="LN295">295</td><td class="line"> TerminalProfile *b = (TerminalProfile *) pb;</td></tr>
+<tr class="codeline" data-linenumber="296"><td class="num" id="LN296">296</td><td class="line"> <span class='keyword'>int</span> result;</td></tr>
+<tr class="codeline" data-linenumber="297"><td class="num" id="LN297">297</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="298"><td class="num" id="LN298">298</td><td class="line"> result = g_utf8_collate (terminal_profile_get_property_string (a, <span class='macro'>TERMINAL_PROFILE_VISIBLE_NAME<span class='macro_popup'>"visible-name"</span></span>),</td></tr>
+<tr class="codeline" data-linenumber="299"><td class="num" id="LN299">299</td><td class="line"> terminal_profile_get_property_string (b, <span class='macro'>TERMINAL_PROFILE_VISIBLE_NAME<span class='macro_popup'>"visible-name"</span></span>));</td></tr>
+<tr class="codeline" data-linenumber="300"><td class="num" id="LN300">300</td><td class="line"> <span class='keyword'>if</span> (result == 0)</td></tr>
+<tr class="codeline" data-linenumber="301"><td class="num" id="LN301">301</td><td class="line"> result = strcmp (terminal_profile_get_property_string (a, <span class='macro'>TERMINAL_PROFILE_NAME<span class='macro_popup'>"name"</span></span>),</td></tr>
+<tr class="codeline" data-linenumber="302"><td class="num" id="LN302">302</td><td class="line"> terminal_profile_get_property_string (b, <span class='macro'>TERMINAL_PROFILE_NAME<span class='macro_popup'>"name"</span></span>));</td></tr>
+<tr class="codeline" data-linenumber="303"><td class="num" id="LN303">303</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="304"><td class="num" id="LN304">304</td><td class="line"> <span class='keyword'>return</span> result;</td></tr>
+<tr class="codeline" data-linenumber="305"><td class="num" id="LN305">305</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="306"><td class="num" id="LN306">306</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="307"><td class="num" id="LN307">307</td><td class="line"><span class='keyword'>typedef</span> <span class='keyword'>struct</span></td></tr>
+<tr class="codeline" data-linenumber="308"><td class="num" id="LN308">308</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="309"><td class="num" id="LN309">309</td><td class="line"> TerminalProfile *result;</td></tr>
+<tr class="codeline" data-linenumber="310"><td class="num" id="LN310">310</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *target;</td></tr>
+<tr class="codeline" data-linenumber="311"><td class="num" id="LN311">311</td><td class="line">} LookupInfo;</td></tr>
+<tr class="codeline" data-linenumber="312"><td class="num" id="LN312">312</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="313"><td class="num" id="LN313">313</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="314"><td class="num" id="LN314">314</td><td class="line">profiles_lookup_by_visible_name_foreach (gpointer key,</td></tr>
+<tr class="codeline" data-linenumber="315"><td class="num" id="LN315">315</td><td class="line"> gpointer value,</td></tr>
+<tr class="codeline" data-linenumber="316"><td class="num" id="LN316">316</td><td class="line"> gpointer data)</td></tr>
+<tr class="codeline" data-linenumber="317"><td class="num" id="LN317">317</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="318"><td class="num" id="LN318">318</td><td class="line"> LookupInfo *info = data;</td></tr>
+<tr class="codeline" data-linenumber="319"><td class="num" id="LN319">319</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *name;</td></tr>
+<tr class="codeline" data-linenumber="320"><td class="num" id="LN320">320</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="321"><td class="num" id="LN321">321</td><td class="line"> name = terminal_profile_get_property_string (value, <span class='macro'>TERMINAL_PROFILE_VISIBLE_NAME<span class='macro_popup'>"visible-name"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="322"><td class="num" id="LN322">322</td><td class="line"> <span class='keyword'>if</span> (name &amp;&amp; strcmp (info-&gt;target, name) == 0)</td></tr>
+<tr class="codeline" data-linenumber="323"><td class="num" id="LN323">323</td><td class="line"> info-&gt;result = value;</td></tr>
+<tr class="codeline" data-linenumber="324"><td class="num" id="LN324">324</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="325"><td class="num" id="LN325">325</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="326"><td class="num" id="LN326">326</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="327"><td class="num" id="LN327">327</td><td class="line">terminal_window_destroyed (TerminalWindow *window,</td></tr>
+<tr class="codeline" data-linenumber="328"><td class="num" id="LN328">328</td><td class="line"> TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="329"><td class="num" id="LN329">329</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="330"><td class="num" id="LN330">330</td><td class="line"> app-&gt;windows = g_list_remove (app-&gt;windows, window);</td></tr>
+<tr class="codeline" data-linenumber="331"><td class="num" id="LN331">331</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="332"><td class="num" id="LN332">332</td><td class="line"> <span class='keyword'>if</span> (app-&gt;windows == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="333"><td class="num" id="LN333">333</td><td class="line"> g_signal_emit (app, signals[QUIT], 0);</td></tr>
+<tr class="codeline" data-linenumber="334"><td class="num" id="LN334">334</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="335"><td class="num" id="LN335">335</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="336"><td class="num" id="LN336">336</td><td class="line"><span class='keyword'>static</span> TerminalProfile *</td></tr>
+<tr class="codeline" data-linenumber="337"><td class="num" id="LN337">337</td><td class="line">terminal_app_create_profile (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="338"><td class="num" id="LN338">338</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *name)</td></tr>
+<tr class="codeline" data-linenumber="339"><td class="num" id="LN339">339</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="340"><td class="num" id="LN340">340</td><td class="line"> TerminalProfile *profile;</td></tr>
+<tr class="codeline" data-linenumber="341"><td class="num" id="LN341">341</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="342"><td class="num" id="LN342">342</td><td class="line"> <span class='macro'>g_assert (terminal_app_get_profile_by_name (app, name) == NULL)<span class='macro_popup'>do { if (terminal_app_get_profile_by_name (app, name) == ((void<br>*)0)) ; else g_assertion_message_expr (((gchar*) 0), "terminal-app.c"<br>, 342, ((const char*) (__func__)), "terminal_app_get_profile_by_name (app, name) == NULL"<br>); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="343"><td class="num" id="LN343">343</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="344"><td class="num" id="LN344">344</td><td class="line"> profile = _terminal_profile_new (name);</td></tr>
+<tr class="codeline" data-linenumber="345"><td class="num" id="LN345">345</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="346"><td class="num" id="LN346">346</td><td class="line"> g_hash_table_insert (app-&gt;profiles,</td></tr>
+<tr class="codeline" data-linenumber="347"><td class="num" id="LN347">347</td><td class="line"> <span class='macro'>g_strdup (terminal_profile_get_property_string (profile, TERMINAL_PROFILE_NAME))<span class='macro_popup'>g_strdup_inline (terminal_profile_get_property_string (profile<br>, "name"))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="348"><td class="num" id="LN348">348</td><td class="line"> profile <span class='comment'>/* adopts the refcount */</span>);</td></tr>
+<tr class="codeline" data-linenumber="349"><td class="num" id="LN349">349</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="350"><td class="num" id="LN350">350</td><td class="line"> <span class='keyword'>if</span> (app-&gt;default_profile == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span> &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="351"><td class="num" id="LN351">351</td><td class="line"> app-&gt;default_profile_id != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span> &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="352"><td class="num" id="LN352">352</td><td class="line"> strcmp (app-&gt;default_profile_id,</td></tr>
+<tr class="codeline" data-linenumber="353"><td class="num" id="LN353">353</td><td class="line"> terminal_profile_get_property_string (profile, <span class='macro'>TERMINAL_PROFILE_NAME<span class='macro_popup'>"name"</span></span>)) == 0)</td></tr>
+<tr class="codeline" data-linenumber="354"><td class="num" id="LN354">354</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="355"><td class="num" id="LN355">355</td><td class="line"> <span class='comment'>/* We are the default profile */</span></td></tr>
+<tr class="codeline" data-linenumber="356"><td class="num" id="LN356">356</td><td class="line"> app-&gt;default_profile = profile;</td></tr>
+<tr class="codeline" data-linenumber="357"><td class="num" id="LN357">357</td><td class="line"> g_object_notify (<span class='macro'>G_OBJECT (app)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, <span class='macro'>TERMINAL_APP_DEFAULT_PROFILE<span class='macro_popup'>"default-profile"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="358"><td class="num" id="LN358">358</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="359"><td class="num" id="LN359">359</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="360"><td class="num" id="LN360">360</td><td class="line"> <span class='keyword'>return</span> profile;</td></tr>
+<tr class="codeline" data-linenumber="361"><td class="num" id="LN361">361</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="362"><td class="num" id="LN362">362</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="363"><td class="num" id="LN363">363</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="364"><td class="num" id="LN364">364</td><td class="line">terminal_app_delete_profile (TerminalProfile *profile)</td></tr>
+<tr class="codeline" data-linenumber="365"><td class="num" id="LN365">365</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="366"><td class="num" id="LN366">366</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *profile_name;</td></tr>
+<tr class="codeline" data-linenumber="367"><td class="num" id="LN367">367</td><td class="line"> <span class='keyword'>char</span> *profile_dir;</td></tr>
+<tr class="codeline" data-linenumber="368"><td class="num" id="LN368">368</td><td class="line"> GError *error = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="369"><td class="num" id="LN369">369</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="370"><td class="num" id="LN370">370</td><td class="line"> profile_name = terminal_profile_get_property_string (profile, <span class='macro'>TERMINAL_PROFILE_NAME<span class='macro_popup'>"name"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="371"><td class="num" id="LN371">371</td><td class="line"> profile_dir = g_strconcat (<span class='macro'>CONF_PROFILE_PREFIX<span class='macro_popup'>"/org/mate/terminal/profiles/"</span></span>, profile_name, <span class='string_literal'>"/"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="372"><td class="num" id="LN372">372</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="373"><td class="num" id="LN373">373</td><td class="line"> gsettings_remove_all_from_strv (settings_global, <span class='macro'>PROFILE_LIST_KEY<span class='macro_popup'>"profile-list"</span></span>, profile_name);</td></tr>
+<tr class="codeline" data-linenumber="374"><td class="num" id="LN374">374</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="375"><td class="num" id="LN375">375</td><td class="line"> <span class='comment'>/* And remove the profile directory */</span></td></tr>
+<tr class="codeline" data-linenumber="376"><td class="num" id="LN376">376</td><td class="line"> DConfClient *client = dconf_client_new ();</td></tr>
+<tr class="codeline" data-linenumber="377"><td class="num" id="LN377">377</td><td class="line"> <span class='keyword'>if</span> (!dconf_client_write_sync (client, profile_dir, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, &amp;error))</td></tr>
+<tr class="codeline" data-linenumber="378"><td class="num" id="LN378">378</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="379"><td class="num" id="LN379">379</td><td class="line"> g_warning (<span class='string_literal'>"Failed to recursively unset %s: %s\n"</span>, profile_dir, error-&gt;message);</td></tr>
+<tr class="codeline" data-linenumber="380"><td class="num" id="LN380">380</td><td class="line"> g_error_free (error);</td></tr>
+<tr class="codeline" data-linenumber="381"><td class="num" id="LN381">381</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="382"><td class="num" id="LN382">382</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="383"><td class="num" id="LN383">383</td><td class="line"> g_object_unref (client);</td></tr>
+<tr class="codeline" data-linenumber="384"><td class="num" id="LN384">384</td><td class="line"> g_free (profile_dir);</td></tr>
+<tr class="codeline" data-linenumber="385"><td class="num" id="LN385">385</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="386"><td class="num" id="LN386">386</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="387"><td class="num" id="LN387">387</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="388"><td class="num" id="LN388">388</td><td class="line">terminal_app_profile_cell_data_func (GtkTreeViewColumn *tree_column,</td></tr>
+<tr class="codeline" data-linenumber="389"><td class="num" id="LN389">389</td><td class="line"> GtkCellRenderer *cell,</td></tr>
+<tr class="codeline" data-linenumber="390"><td class="num" id="LN390">390</td><td class="line"> GtkTreeModel *tree_model,</td></tr>
+<tr class="codeline" data-linenumber="391"><td class="num" id="LN391">391</td><td class="line"> GtkTreeIter *iter,</td></tr>
+<tr class="codeline" data-linenumber="392"><td class="num" id="LN392">392</td><td class="line"> gpointer data)</td></tr>
+<tr class="codeline" data-linenumber="393"><td class="num" id="LN393">393</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="394"><td class="num" id="LN394">394</td><td class="line"> TerminalProfile *profile;</td></tr>
+<tr class="codeline" data-linenumber="395"><td class="num" id="LN395">395</td><td class="line"> GValue value = { 0, };</td></tr>
+<tr class="codeline" data-linenumber="396"><td class="num" id="LN396">396</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="397"><td class="num" id="LN397">397</td><td class="line"> gtk_tree_model_get (tree_model, iter, (<span class='keyword'>int</span>) COL_PROFILE, &amp;profile, (<span class='keyword'>int</span>) -1);</td></tr>
+<tr class="codeline" data-linenumber="398"><td class="num" id="LN398">398</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="399"><td class="num" id="LN399">399</td><td class="line"> g_value_init (&amp;value, <span class='macro'>G_TYPE_STRING<span class='macro_popup'>((GType) ((16) &lt;&lt; (2)))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="400"><td class="num" id="LN400">400</td><td class="line"> g_object_get_property (<span class='macro'>G_OBJECT (profile)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((profile)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, <span class='string_literal'>"visible-name"</span>, &amp;value);</td></tr>
+<tr class="codeline" data-linenumber="401"><td class="num" id="LN401">401</td><td class="line"> g_object_set_property (<span class='macro'>G_OBJECT (cell)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((cell)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, <span class='string_literal'>"text"</span>, &amp;value);</td></tr>
+<tr class="codeline" data-linenumber="402"><td class="num" id="LN402">402</td><td class="line"> g_value_unset (&amp;value);</td></tr>
+<tr class="codeline" data-linenumber="403"><td class="num" id="LN403">403</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="404"><td class="num" id="LN404">404</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="405"><td class="num" id="LN405">405</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>int</span></td></tr>
+<tr class="codeline" data-linenumber="406"><td class="num" id="LN406">406</td><td class="line">terminal_app_profile_sort_func (GtkTreeModel *model,</td></tr>
+<tr class="codeline" data-linenumber="407"><td class="num" id="LN407">407</td><td class="line"> GtkTreeIter *a,</td></tr>
+<tr class="codeline" data-linenumber="408"><td class="num" id="LN408">408</td><td class="line"> GtkTreeIter *b,</td></tr>
+<tr class="codeline" data-linenumber="409"><td class="num" id="LN409">409</td><td class="line"> gpointer user_data)</td></tr>
+<tr class="codeline" data-linenumber="410"><td class="num" id="LN410">410</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="411"><td class="num" id="LN411">411</td><td class="line"> TerminalProfile *profile_a, *profile_b;</td></tr>
+<tr class="codeline" data-linenumber="412"><td class="num" id="LN412">412</td><td class="line"> <span class='keyword'>int</span> retval;</td></tr>
+<tr class="codeline" data-linenumber="413"><td class="num" id="LN413">413</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="414"><td class="num" id="LN414">414</td><td class="line"> gtk_tree_model_get (model, a, (<span class='keyword'>int</span>) COL_PROFILE, &amp;profile_a, (<span class='keyword'>int</span>) -1);</td></tr>
+<tr class="codeline" data-linenumber="415"><td class="num" id="LN415">415</td><td class="line"> gtk_tree_model_get (model, b, (<span class='keyword'>int</span>) COL_PROFILE, &amp;profile_b, (<span class='keyword'>int</span>) -1);</td></tr>
+<tr class="codeline" data-linenumber="416"><td class="num" id="LN416">416</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="417"><td class="num" id="LN417">417</td><td class="line"> retval = profiles_alphabetic_cmp (profile_a, profile_b);</td></tr>
+<tr class="codeline" data-linenumber="418"><td class="num" id="LN418">418</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="419"><td class="num" id="LN419">419</td><td class="line"> g_object_unref (profile_a);</td></tr>
+<tr class="codeline" data-linenumber="420"><td class="num" id="LN420">420</td><td class="line"> g_object_unref (profile_b);</td></tr>
+<tr class="codeline" data-linenumber="421"><td class="num" id="LN421">421</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="422"><td class="num" id="LN422">422</td><td class="line"> <span class='keyword'>return</span> retval;</td></tr>
+<tr class="codeline" data-linenumber="423"><td class="num" id="LN423">423</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="424"><td class="num" id="LN424">424</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="425"><td class="num" id="LN425">425</td><td class="line"><span class='keyword'>static</span> <span class='comment'>/* ref */</span> GtkTreeModel *</td></tr>
+<tr class="codeline" data-linenumber="426"><td class="num" id="LN426">426</td><td class="line">terminal_app_get_profile_liststore (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="427"><td class="num" id="LN427">427</td><td class="line"> TerminalProfile *selected_profile,</td></tr>
+<tr class="codeline" data-linenumber="428"><td class="num" id="LN428">428</td><td class="line"> GtkTreeIter *selected_profile_iter,</td></tr>
+<tr class="codeline" data-linenumber="429"><td class="num" id="LN429">429</td><td class="line"> gboolean *selected_profile_iter_set)</td></tr>
+<tr class="codeline" data-linenumber="430"><td class="num" id="LN430">430</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="431"><td class="num" id="LN431">431</td><td class="line"> GtkListStore *store;</td></tr>
+<tr class="codeline" data-linenumber="432"><td class="num" id="LN432">432</td><td class="line"> GtkTreeIter iter;</td></tr>
+<tr class="codeline" data-linenumber="433"><td class="num" id="LN433">433</td><td class="line"> GList *profiles, *l;</td></tr>
+<tr class="codeline" data-linenumber="434"><td class="num" id="LN434">434</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="435"><td class="num" id="LN435">435</td><td class="line"> store = gtk_list_store_new (NUM_COLUMNS, <span class='macro'>TERMINAL_TYPE_PROFILE<span class='macro_popup'>(terminal_profile_get_type ())</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="436"><td class="num" id="LN436">436</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="437"><td class="num" id="LN437">437</td><td class="line"> *selected_profile_iter_set = <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="438"><td class="num" id="LN438">438</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="439"><td class="num" id="LN439">439</td><td class="line"> <span class='keyword'>if</span> (selected_profile &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="440"><td class="num" id="LN440">440</td><td class="line"> _terminal_profile_get_forgotten (selected_profile))</td></tr>
+<tr class="codeline" data-linenumber="441"><td class="num" id="LN441">441</td><td class="line"> selected_profile = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="442"><td class="num" id="LN442">442</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="443"><td class="num" id="LN443">443</td><td class="line"> profiles = terminal_app_get_profile_list (app);</td></tr>
+<tr class="codeline" data-linenumber="444"><td class="num" id="LN444">444</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="445"><td class="num" id="LN445">445</td><td class="line"> <span class='keyword'>for</span> (l = profiles; l != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; l = l-&gt;next)</td></tr>
+<tr class="codeline" data-linenumber="446"><td class="num" id="LN446">446</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="447"><td class="num" id="LN447">447</td><td class="line"> TerminalProfile *profile = <span class='macro'>TERMINAL_PROFILE (l-&gt;data)<span class='macro_popup'>((((TerminalProfile*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((l-&gt;data)), ((terminal_profile_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="448"><td class="num" id="LN448">448</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="449"><td class="num" id="LN449">449</td><td class="line"> gtk_list_store_insert_with_values (store, &amp;iter, 0,</td></tr>
+<tr class="codeline" data-linenumber="450"><td class="num" id="LN450">450</td><td class="line"> (<span class='keyword'>int</span>) COL_PROFILE, profile,</td></tr>
+<tr class="codeline" data-linenumber="451"><td class="num" id="LN451">451</td><td class="line"> (<span class='keyword'>int</span>) -1);</td></tr>
+<tr class="codeline" data-linenumber="452"><td class="num" id="LN452">452</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="453"><td class="num" id="LN453">453</td><td class="line"> <span class='keyword'>if</span> (selected_profile_iter &amp;&amp; profile == selected_profile)</td></tr>
+<tr class="codeline" data-linenumber="454"><td class="num" id="LN454">454</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="455"><td class="num" id="LN455">455</td><td class="line"> *selected_profile_iter = iter;</td></tr>
+<tr class="codeline" data-linenumber="456"><td class="num" id="LN456">456</td><td class="line"> *selected_profile_iter_set = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="457"><td class="num" id="LN457">457</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="458"><td class="num" id="LN458">458</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="459"><td class="num" id="LN459">459</td><td class="line"> g_list_free (profiles);</td></tr>
+<tr class="codeline" data-linenumber="460"><td class="num" id="LN460">460</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="461"><td class="num" id="LN461">461</td><td class="line"> <span class='comment'>/* Now turn on sorting */</span></td></tr>
+<tr class="codeline" data-linenumber="462"><td class="num" id="LN462">462</td><td class="line"> gtk_tree_sortable_set_sort_func (<span class='macro'>GTK_TREE_SORTABLE (store)<span class='macro_popup'>((((GtkTreeSortable*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((store)), ((gtk_tree_sortable_get_type ()))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="463"><td class="num" id="LN463">463</td><td class="line"> COL_PROFILE,</td></tr>
+<tr class="codeline" data-linenumber="464"><td class="num" id="LN464">464</td><td class="line"> terminal_app_profile_sort_func,</td></tr>
+<tr class="codeline" data-linenumber="465"><td class="num" id="LN465">465</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="466"><td class="num" id="LN466">466</td><td class="line"> gtk_tree_sortable_set_sort_column_id (<span class='macro'>GTK_TREE_SORTABLE (store)<span class='macro_popup'>((((GtkTreeSortable*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((store)), ((gtk_tree_sortable_get_type ()))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="467"><td class="num" id="LN467">467</td><td class="line"> COL_PROFILE, GTK_SORT_ASCENDING);</td></tr>
+<tr class="codeline" data-linenumber="468"><td class="num" id="LN468">468</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="469"><td class="num" id="LN469">469</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>GTK_TREE_MODEL (store)<span class='macro_popup'>((((GtkTreeModel*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((store)), ((gtk_tree_model_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="470"><td class="num" id="LN470">470</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="471"><td class="num" id="LN471">471</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="472"><td class="num" id="LN472">472</td><td class="line"><span class='keyword'>static</span> <span class='comment'>/* ref */</span> TerminalProfile*</td></tr>
+<tr class="codeline" data-linenumber="473"><td class="num" id="LN473">473</td><td class="line">profile_combo_box_get_selected (GtkWidget *widget)</td></tr>
+<tr class="codeline" data-linenumber="474"><td class="num" id="LN474">474</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="475"><td class="num" id="LN475">475</td><td class="line"> GtkComboBox *combo = <span class='macro'>GTK_COMBO_BOX (widget)<span class='macro_popup'>((((GtkComboBox*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((widget)), ((gtk_combo_box_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="476"><td class="num" id="LN476">476</td><td class="line"> TerminalProfile *profile = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="477"><td class="num" id="LN477">477</td><td class="line"> GtkTreeIter iter;</td></tr>
+<tr class="codeline" data-linenumber="478"><td class="num" id="LN478">478</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="479"><td class="num" id="LN479">479</td><td class="line"> <span class='keyword'>if</span> (gtk_combo_box_get_active_iter (combo, &amp;iter))</td></tr>
+<tr class="codeline" data-linenumber="480"><td class="num" id="LN480">480</td><td class="line"> gtk_tree_model_get (gtk_combo_box_get_model (combo), &amp;iter,</td></tr>
+<tr class="codeline" data-linenumber="481"><td class="num" id="LN481">481</td><td class="line"> (<span class='keyword'>int</span>) COL_PROFILE, &amp;profile, (<span class='keyword'>int</span>) -1);</td></tr>
+<tr class="codeline" data-linenumber="482"><td class="num" id="LN482">482</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="483"><td class="num" id="LN483">483</td><td class="line"> <span class='keyword'>return</span> profile;</td></tr>
+<tr class="codeline" data-linenumber="484"><td class="num" id="LN484">484</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="485"><td class="num" id="LN485">485</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="486"><td class="num" id="LN486">486</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="487"><td class="num" id="LN487">487</td><td class="line">profile_combo_box_refill (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="488"><td class="num" id="LN488">488</td><td class="line"> GtkWidget *widget)</td></tr>
+<tr class="codeline" data-linenumber="489"><td class="num" id="LN489">489</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="490"><td class="num" id="LN490">490</td><td class="line"> GtkComboBox *combo = <span class='macro'>GTK_COMBO_BOX (widget)<span class='macro_popup'>((((GtkComboBox*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((widget)), ((gtk_combo_box_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="491"><td class="num" id="LN491">491</td><td class="line"> GtkTreeIter iter;</td></tr>
+<tr class="codeline" data-linenumber="492"><td class="num" id="LN492">492</td><td class="line"> gboolean iter_set;</td></tr>
+<tr class="codeline" data-linenumber="493"><td class="num" id="LN493">493</td><td class="line"> TerminalProfile *selected_profile;</td></tr>
+<tr class="codeline" data-linenumber="494"><td class="num" id="LN494">494</td><td class="line"> GtkTreeModel *model;</td></tr>
+<tr class="codeline" data-linenumber="495"><td class="num" id="LN495">495</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="496"><td class="num" id="LN496">496</td><td class="line"> selected_profile = profile_combo_box_get_selected (widget);</td></tr>
+<tr class="codeline" data-linenumber="497"><td class="num" id="LN497">497</td><td class="line"> <span class='keyword'>if</span> (!selected_profile)</td></tr>
+<tr class="codeline" data-linenumber="498"><td class="num" id="LN498">498</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="499"><td class="num" id="LN499">499</td><td class="line"> selected_profile = terminal_app_get_default_profile (app);</td></tr>
+<tr class="codeline" data-linenumber="500"><td class="num" id="LN500">500</td><td class="line"> <span class='keyword'>if</span> (selected_profile)</td></tr>
+<tr class="codeline" data-linenumber="501"><td class="num" id="LN501">501</td><td class="line"> <span class='macro'>g_object_ref (selected_profile)<span class='macro_popup'>((__typeof__ (selected_profile)) (g_object_ref) (selected_profile<br>))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="502"><td class="num" id="LN502">502</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="503"><td class="num" id="LN503">503</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="504"><td class="num" id="LN504">504</td><td class="line"> model = terminal_app_get_profile_liststore (app,</td></tr>
+<tr class="codeline" data-linenumber="505"><td class="num" id="LN505">505</td><td class="line"> selected_profile,</td></tr>
+<tr class="codeline" data-linenumber="506"><td class="num" id="LN506">506</td><td class="line"> &amp;iter,</td></tr>
+<tr class="codeline" data-linenumber="507"><td class="num" id="LN507">507</td><td class="line"> &amp;iter_set);</td></tr>
+<tr class="codeline" data-linenumber="508"><td class="num" id="LN508">508</td><td class="line"> gtk_combo_box_set_model (combo, model);</td></tr>
+<tr class="codeline" data-linenumber="509"><td class="num" id="LN509">509</td><td class="line"> g_object_unref (model);</td></tr>
+<tr class="codeline" data-linenumber="510"><td class="num" id="LN510">510</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="511"><td class="num" id="LN511">511</td><td class="line"> <span class='keyword'>if</span> (iter_set)</td></tr>
+<tr class="codeline" data-linenumber="512"><td class="num" id="LN512">512</td><td class="line"> gtk_combo_box_set_active_iter (combo, &amp;iter);</td></tr>
+<tr class="codeline" data-linenumber="513"><td class="num" id="LN513">513</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="514"><td class="num" id="LN514">514</td><td class="line"> <span class='keyword'>if</span> (selected_profile)</td></tr>
+<tr class="codeline" data-linenumber="515"><td class="num" id="LN515">515</td><td class="line"> g_object_unref (selected_profile);</td></tr>
+<tr class="codeline" data-linenumber="516"><td class="num" id="LN516">516</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="517"><td class="num" id="LN517">517</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="518"><td class="num" id="LN518">518</td><td class="line"><span class='keyword'>static</span> GtkWidget*</td></tr>
+<tr class="codeline" data-linenumber="519"><td class="num" id="LN519">519</td><td class="line">profile_combo_box_new (TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="520"><td class="num" id="LN520">520</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="521"><td class="num" id="LN521">521</td><td class="line"> GtkWidget *combo;</td></tr>
+<tr class="codeline" data-linenumber="522"><td class="num" id="LN522">522</td><td class="line"> GtkCellRenderer *renderer;</td></tr>
+<tr class="codeline" data-linenumber="523"><td class="num" id="LN523">523</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="524"><td class="num" id="LN524">524</td><td class="line"> combo = gtk_combo_box_new ();</td></tr>
+<tr class="codeline" data-linenumber="525"><td class="num" id="LN525">525</td><td class="line"> terminal_util_set_atk_name_description (combo, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>_(<span class='string_literal'>"Click button to choose profile"</span>)<span class='macro_popup'>gettext ("Click button to choose profile")</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="526"><td class="num" id="LN526">526</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="527"><td class="num" id="LN527">527</td><td class="line"> renderer = gtk_cell_renderer_text_new ();</td></tr>
+<tr class="codeline" data-linenumber="528"><td class="num" id="LN528">528</td><td class="line"> gtk_cell_layout_pack_start (<span class='macro'>GTK_CELL_LAYOUT (combo)<span class='macro_popup'>((((GtkCellLayout*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((combo)), ((gtk_cell_layout_get_type ()))))))</span></span>, renderer, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="529"><td class="num" id="LN529">529</td><td class="line"> gtk_cell_layout_set_cell_data_func (<span class='macro'>GTK_CELL_LAYOUT (combo)<span class='macro_popup'>((((GtkCellLayout*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((combo)), ((gtk_cell_layout_get_type ()))))))</span></span>, renderer,</td></tr>
+<tr class="codeline" data-linenumber="530"><td class="num" id="LN530">530</td><td class="line"> (GtkCellLayoutDataFunc) terminal_app_profile_cell_data_func,</td></tr>
+<tr class="codeline" data-linenumber="531"><td class="num" id="LN531">531</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="532"><td class="num" id="LN532">532</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="533"><td class="num" id="LN533">533</td><td class="line"> profile_combo_box_refill (app, combo);</td></tr>
+<tr class="codeline" data-linenumber="534"><td class="num" id="LN534">534</td><td class="line"> <span class='macro'>g_signal_connect (app, <span class='string_literal'>"profile-list-changed"</span>,<span class='macro_popup'>g_signal_connect_data ((app), ("profile-list-changed"), (((GCallback<br>) (profile_combo_box_refill))), (combo), ((void*)0), (GConnectFlags<br>) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="535"><td class="num" id="LN535">535</td><td class="line"> <span class='macro'>G_CALLBACK (profile_combo_box_refill), combo)<span class='macro_popup'>g_signal_connect_data ((app), ("profile-list-changed"), (((GCallback<br>) (profile_combo_box_refill))), (combo), ((void*)0), (GConnectFlags<br>) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="536"><td class="num" id="LN536">536</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="537"><td class="num" id="LN537">537</td><td class="line"> gtk_widget_show (combo);</td></tr>
+<tr class="codeline" data-linenumber="538"><td class="num" id="LN538">538</td><td class="line"> <span class='keyword'>return</span> combo;</td></tr>
+<tr class="codeline" data-linenumber="539"><td class="num" id="LN539">539</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="540"><td class="num" id="LN540">540</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="541"><td class="num" id="LN541">541</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="542"><td class="num" id="LN542">542</td><td class="line">profile_combo_box_changed_cb (GtkWidget *widget,</td></tr>
+<tr class="codeline" data-linenumber="543"><td class="num" id="LN543">543</td><td class="line"> TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="544"><td class="num" id="LN544">544</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="545"><td class="num" id="LN545">545</td><td class="line"> TerminalProfile *profile;</td></tr>
+<tr class="codeline" data-linenumber="546"><td class="num" id="LN546">546</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="547"><td class="num" id="LN547">547</td><td class="line"> profile = profile_combo_box_get_selected (widget);</td></tr>
+<tr class="codeline" data-linenumber="548"><td class="num" id="LN548">548</td><td class="line"> <span class='keyword'>if</span> (!profile)</td></tr>
+<tr class="codeline" data-linenumber="549"><td class="num" id="LN549">549</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="550"><td class="num" id="LN550">550</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="551"><td class="num" id="LN551">551</td><td class="line"> g_settings_set_string (settings_global, <span class='macro'>DEFAULT_PROFILE_KEY<span class='macro_popup'>"default-profile"</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="552"><td class="num" id="LN552">552</td><td class="line"> terminal_profile_get_property_string (profile, <span class='macro'>TERMINAL_PROFILE_NAME<span class='macro_popup'>"name"</span></span>));</td></tr>
+<tr class="codeline" data-linenumber="553"><td class="num" id="LN553">553</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="554"><td class="num" id="LN554">554</td><td class="line"> <span class='comment'>/* Even though the GSettings change notification does this, it happens too late.</span></td></tr>
+<tr class="codeline" data-linenumber="555"><td class="num" id="LN555">555</td><td class="line"> <span class='comment'>* In some cases, the default profile changes twice in quick succession,</span></td></tr>
+<tr class="codeline" data-linenumber="556"><td class="num" id="LN556">556</td><td class="line"> <span class='comment'>* and update_default_profile must be called in sync with those changes.</span></td></tr>
+<tr class="codeline" data-linenumber="557"><td class="num" id="LN557">557</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="558"><td class="num" id="LN558">558</td><td class="line"> app-&gt;default_profile = profile;</td></tr>
+<tr class="codeline" data-linenumber="559"><td class="num" id="LN559">559</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="560"><td class="num" id="LN560">560</td><td class="line"> g_object_notify (<span class='macro'>G_OBJECT (app)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, <span class='macro'>TERMINAL_APP_DEFAULT_PROFILE<span class='macro_popup'>"default-profile"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="561"><td class="num" id="LN561">561</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="562"><td class="num" id="LN562">562</td><td class="line"> g_object_unref (profile);</td></tr>
+<tr class="codeline" data-linenumber="563"><td class="num" id="LN563">563</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="564"><td class="num" id="LN564">564</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="565"><td class="num" id="LN565">565</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="566"><td class="num" id="LN566">566</td><td class="line">profile_list_treeview_refill (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="567"><td class="num" id="LN567">567</td><td class="line"> GtkWidget *widget)</td></tr>
+<tr class="codeline" data-linenumber="568"><td class="num" id="LN568">568</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="569"><td class="num" id="LN569">569</td><td class="line"> GtkTreeView *tree_view = <span class='macro'>GTK_TREE_VIEW (widget)<span class='macro_popup'>((((GtkTreeView*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((widget)), ((gtk_tree_view_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="570"><td class="num" id="LN570">570</td><td class="line"> GtkTreeIter iter;</td></tr>
+<tr class="codeline" data-linenumber="571"><td class="num" id="LN571">571</td><td class="line"> gboolean iter_set;</td></tr>
+<tr class="codeline" data-linenumber="572"><td class="num" id="LN572">572</td><td class="line"> GtkTreeSelection *selection;</td></tr>
+<tr class="codeline" data-linenumber="573"><td class="num" id="LN573">573</td><td class="line"> GtkTreeModel *model;</td></tr>
+<tr class="codeline" data-linenumber="574"><td class="num" id="LN574">574</td><td class="line"> TerminalProfile *selected_profile = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="575"><td class="num" id="LN575">575</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="576"><td class="num" id="LN576">576</td><td class="line"> model = gtk_tree_view_get_model (tree_view);</td></tr>
+<tr class="codeline" data-linenumber="577"><td class="num" id="LN577">577</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="578"><td class="num" id="LN578">578</td><td class="line"> selection = gtk_tree_view_get_selection (tree_view);</td></tr>
+<tr class="codeline" data-linenumber="579"><td class="num" id="LN579">579</td><td class="line"> <span class='keyword'>if</span> (gtk_tree_selection_get_selected (selection, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, &amp;iter))</td></tr>
+<tr class="codeline" data-linenumber="580"><td class="num" id="LN580">580</td><td class="line"> gtk_tree_model_get (model, &amp;iter, (<span class='keyword'>int</span>) COL_PROFILE, &amp;selected_profile, (<span class='keyword'>int</span>) -1);</td></tr>
+<tr class="codeline" data-linenumber="581"><td class="num" id="LN581">581</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="582"><td class="num" id="LN582">582</td><td class="line"> model = terminal_app_get_profile_liststore (terminal_app_get (),</td></tr>
+<tr class="codeline" data-linenumber="583"><td class="num" id="LN583">583</td><td class="line"> selected_profile,</td></tr>
+<tr class="codeline" data-linenumber="584"><td class="num" id="LN584">584</td><td class="line"> &amp;iter,</td></tr>
+<tr class="codeline" data-linenumber="585"><td class="num" id="LN585">585</td><td class="line"> &amp;iter_set);</td></tr>
+<tr class="codeline" data-linenumber="586"><td class="num" id="LN586">586</td><td class="line"> gtk_tree_view_set_model (tree_view, model);</td></tr>
+<tr class="codeline" data-linenumber="587"><td class="num" id="LN587">587</td><td class="line"> g_object_unref (model);</td></tr>
+<tr class="codeline" data-linenumber="588"><td class="num" id="LN588">588</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="589"><td class="num" id="LN589">589</td><td class="line"> <span class='keyword'>if</span> (!iter_set)</td></tr>
+<tr class="codeline" data-linenumber="590"><td class="num" id="LN590">590</td><td class="line"> iter_set = gtk_tree_model_get_iter_first (model, &amp;iter);</td></tr>
+<tr class="codeline" data-linenumber="591"><td class="num" id="LN591">591</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="592"><td class="num" id="LN592">592</td><td class="line"> <span class='keyword'>if</span> (iter_set)</td></tr>
+<tr class="codeline" data-linenumber="593"><td class="num" id="LN593">593</td><td class="line"> gtk_tree_selection_select_iter (selection, &amp;iter);</td></tr>
+<tr class="codeline" data-linenumber="594"><td class="num" id="LN594">594</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="595"><td class="num" id="LN595">595</td><td class="line"> <span class='keyword'>if</span> (selected_profile)</td></tr>
+<tr class="codeline" data-linenumber="596"><td class="num" id="LN596">596</td><td class="line"> g_object_unref (selected_profile);</td></tr>
+<tr class="codeline" data-linenumber="597"><td class="num" id="LN597">597</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="598"><td class="num" id="LN598">598</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="599"><td class="num" id="LN599">599</td><td class="line"><span class='keyword'>static</span> GtkWidget*</td></tr>
+<tr class="codeline" data-linenumber="600"><td class="num" id="LN600">600</td><td class="line">profile_list_treeview_create (TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="601"><td class="num" id="LN601">601</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="602"><td class="num" id="LN602">602</td><td class="line"> GtkWidget *tree_view;</td></tr>
+<tr class="codeline" data-linenumber="603"><td class="num" id="LN603">603</td><td class="line"> GtkTreeSelection *selection;</td></tr>
+<tr class="codeline" data-linenumber="604"><td class="num" id="LN604">604</td><td class="line"> GtkCellRenderer *renderer;</td></tr>
+<tr class="codeline" data-linenumber="605"><td class="num" id="LN605">605</td><td class="line"> GtkTreeViewColumn *column;</td></tr>
+<tr class="codeline" data-linenumber="606"><td class="num" id="LN606">606</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="607"><td class="num" id="LN607">607</td><td class="line"> tree_view = gtk_tree_view_new ();</td></tr>
+<tr class="codeline" data-linenumber="608"><td class="num" id="LN608">608</td><td class="line"> terminal_util_set_atk_name_description (tree_view, <span class='macro'>_(<span class='string_literal'>"Profile list"</span>)<span class='macro_popup'>gettext ("Profile list")</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="609"><td class="num" id="LN609">609</td><td class="line"> gtk_tree_view_set_headers_visible (<span class='macro'>GTK_TREE_VIEW (tree_view)<span class='macro_popup'>((((GtkTreeView*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((tree_view)), ((gtk_tree_view_get_type ()))))))</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="610"><td class="num" id="LN610">610</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="611"><td class="num" id="LN611">611</td><td class="line"> selection = gtk_tree_view_get_selection (<span class='macro'>GTK_TREE_VIEW (tree_view)<span class='macro_popup'>((((GtkTreeView*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((tree_view)), ((gtk_tree_view_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="612"><td class="num" id="LN612">612</td><td class="line"> gtk_tree_selection_set_mode (<span class='macro'>GTK_TREE_SELECTION (selection)<span class='macro_popup'>((((GtkTreeSelection*) (void *) g_type_check_instance_cast ((<br>GTypeInstance*) ((selection)), ((gtk_tree_selection_get_type (<br>)))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="613"><td class="num" id="LN613">613</td><td class="line"> GTK_SELECTION_BROWSE);</td></tr>
+<tr class="codeline" data-linenumber="614"><td class="num" id="LN614">614</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="615"><td class="num" id="LN615">615</td><td class="line"> column = gtk_tree_view_column_new ();</td></tr>
+<tr class="codeline" data-linenumber="616"><td class="num" id="LN616">616</td><td class="line"> renderer = gtk_cell_renderer_text_new ();</td></tr>
+<tr class="codeline" data-linenumber="617"><td class="num" id="LN617">617</td><td class="line"> gtk_cell_layout_pack_start (<span class='macro'>GTK_CELL_LAYOUT (column)<span class='macro_popup'>((((GtkCellLayout*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((column)), ((gtk_cell_layout_get_type ()))))))</span></span>, renderer, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="618"><td class="num" id="LN618">618</td><td class="line"> gtk_cell_layout_set_cell_data_func (<span class='macro'>GTK_CELL_LAYOUT (column)<span class='macro_popup'>((((GtkCellLayout*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((column)), ((gtk_cell_layout_get_type ()))))))</span></span>, renderer,</td></tr>
+<tr class="codeline" data-linenumber="619"><td class="num" id="LN619">619</td><td class="line"> (GtkCellLayoutDataFunc) terminal_app_profile_cell_data_func,</td></tr>
+<tr class="codeline" data-linenumber="620"><td class="num" id="LN620">620</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="621"><td class="num" id="LN621">621</td><td class="line"> gtk_tree_view_append_column (<span class='macro'>GTK_TREE_VIEW (tree_view)<span class='macro_popup'>((((GtkTreeView*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((tree_view)), ((gtk_tree_view_get_type ()))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="622"><td class="num" id="LN622">622</td><td class="line"> <span class='macro'>GTK_TREE_VIEW_COLUMN (column)<span class='macro_popup'>((((GtkTreeViewColumn*) (void *) g_type_check_instance_cast (<br>(GTypeInstance*) ((column)), ((gtk_tree_view_column_get_type (<br>)))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="623"><td class="num" id="LN623">623</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="624"><td class="num" id="LN624">624</td><td class="line"> <span class='keyword'>return</span> tree_view;</td></tr>
+<tr class="codeline" data-linenumber="625"><td class="num" id="LN625">625</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="626"><td class="num" id="LN626">626</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="627"><td class="num" id="LN627">627</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="628"><td class="num" id="LN628">628</td><td class="line">profile_list_delete_confirm_response_cb (GtkWidget *dialog,</td></tr>
+<tr class="codeline" data-linenumber="629"><td class="num" id="LN629">629</td><td class="line"> <span class='keyword'>int</span> response)</td></tr>
+<tr class="codeline" data-linenumber="630"><td class="num" id="LN630">630</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="631"><td class="num" id="LN631">631</td><td class="line"> TerminalProfile *profile;</td></tr>
+<tr class="codeline" data-linenumber="632"><td class="num" id="LN632">632</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="633"><td class="num" id="LN633">633</td><td class="line"> profile = <span class='macro'>TERMINAL_PROFILE (g_object_get_data (G_OBJECT (dialog), <span class='string_literal'>"profile"</span>))<span class='macro_popup'>((((TerminalProfile*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((g_object_get_data (((((GObject*) (void *) g_type_check_instance_cast<br> ((GTypeInstance*) ((dialog)), (((GType) ((20) &lt;&lt; (2)))<br>))))), "profile"))), ((terminal_profile_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="634"><td class="num" id="LN634">634</td><td class="line"> <span class='macro'>g_assert (profile != NULL)<span class='macro_popup'>do { if (profile != ((void*)0)) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-app.c", 634, ((const char*) (__func__<br>)), "profile != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="635"><td class="num" id="LN635">635</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="636"><td class="num" id="LN636">636</td><td class="line"> <span class='keyword'>if</span> (response == GTK_RESPONSE_ACCEPT)</td></tr>
+<tr class="codeline" data-linenumber="637"><td class="num" id="LN637">637</td><td class="line"> terminal_app_delete_profile (profile);</td></tr>
+<tr class="codeline" data-linenumber="638"><td class="num" id="LN638">638</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="639"><td class="num" id="LN639">639</td><td class="line"> gtk_widget_destroy (dialog);</td></tr>
+<tr class="codeline" data-linenumber="640"><td class="num" id="LN640">640</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="641"><td class="num" id="LN641">641</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="642"><td class="num" id="LN642">642</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="643"><td class="num" id="LN643">643</td><td class="line">mate_dialog_add_button (GtkDialog *dialog,</td></tr>
+<tr class="codeline" data-linenumber="644"><td class="num" id="LN644">644</td><td class="line"> <span class='keyword'>const</span> gchar *button_text,</td></tr>
+<tr class="codeline" data-linenumber="645"><td class="num" id="LN645">645</td><td class="line"> <span class='keyword'>const</span> gchar *icon_name,</td></tr>
+<tr class="codeline" data-linenumber="646"><td class="num" id="LN646">646</td><td class="line"> gint response_id)</td></tr>
+<tr class="codeline" data-linenumber="647"><td class="num" id="LN647">647</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="648"><td class="num" id="LN648">648</td><td class="line"> GtkWidget *button;</td></tr>
+<tr class="codeline" data-linenumber="649"><td class="num" id="LN649">649</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="650"><td class="num" id="LN650">650</td><td class="line"> button = gtk_button_new_with_mnemonic (button_text);</td></tr>
+<tr class="codeline" data-linenumber="651"><td class="num" id="LN651">651</td><td class="line"> gtk_button_set_image (<span class='macro'>GTK_BUTTON (button)<span class='macro_popup'>((((GtkButton*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((button)), ((gtk_button_get_type ()))))))</span></span>, gtk_image_new_from_icon_name (icon_name, GTK_ICON_SIZE_BUTTON));</td></tr>
+<tr class="codeline" data-linenumber="652"><td class="num" id="LN652">652</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="653"><td class="num" id="LN653">653</td><td class="line"> gtk_button_set_use_underline (<span class='macro'>GTK_BUTTON (button)<span class='macro_popup'>((((GtkButton*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((button)), ((gtk_button_get_type ()))))))</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="654"><td class="num" id="LN654">654</td><td class="line"> gtk_style_context_add_class (gtk_widget_get_style_context (button), <span class='string_literal'>"text-button"</span>);</td></tr>
+<tr class="codeline" data-linenumber="655"><td class="num" id="LN655">655</td><td class="line"> gtk_widget_set_can_default (button, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="656"><td class="num" id="LN656">656</td><td class="line"> gtk_widget_show (button);</td></tr>
+<tr class="codeline" data-linenumber="657"><td class="num" id="LN657">657</td><td class="line"> gtk_dialog_add_action_widget (<span class='macro'>GTK_DIALOG (dialog)<span class='macro_popup'>((((GtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((dialog)), ((gtk_dialog_get_type ()))))))</span></span>, button, response_id);</td></tr>
+<tr class="codeline" data-linenumber="658"><td class="num" id="LN658">658</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="659"><td class="num" id="LN659">659</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="660"><td class="num" id="LN660">660</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="661"><td class="num" id="LN661">661</td><td class="line">profile_list_delete_button_clicked_cb (GtkWidget *button,</td></tr>
+<tr class="codeline" data-linenumber="662"><td class="num" id="LN662">662</td><td class="line"> GtkWidget *widget)</td></tr>
+<tr class="codeline" data-linenumber="663"><td class="num" id="LN663">663</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="664"><td class="num" id="LN664">664</td><td class="line"> GtkTreeView *tree_view = <span class='macro'>GTK_TREE_VIEW (widget)<span class='macro_popup'>((((GtkTreeView*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((widget)), ((gtk_tree_view_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="665"><td class="num" id="LN665">665</td><td class="line"> GtkTreeSelection *selection;</td></tr>
+<tr class="codeline" data-linenumber="666"><td class="num" id="LN666">666</td><td class="line"> GtkWidget *dialog;</td></tr>
+<tr class="codeline" data-linenumber="667"><td class="num" id="LN667">667</td><td class="line"> GtkTreeIter iter;</td></tr>
+<tr class="codeline" data-linenumber="668"><td class="num" id="LN668">668</td><td class="line"> GtkTreeModel *model;</td></tr>
+<tr class="codeline" data-linenumber="669"><td class="num" id="LN669">669</td><td class="line"> TerminalProfile *selected_profile;</td></tr>
+<tr class="codeline" data-linenumber="670"><td class="num" id="LN670">670</td><td class="line"> GtkWidget *transient_parent;</td></tr>
+<tr class="codeline" data-linenumber="671"><td class="num" id="LN671">671</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="672"><td class="num" id="LN672">672</td><td class="line"> model = gtk_tree_view_get_model (tree_view);</td></tr>
+<tr class="codeline" data-linenumber="673"><td class="num" id="LN673">673</td><td class="line"> selection = gtk_tree_view_get_selection (tree_view);</td></tr>
+<tr class="codeline" data-linenumber="674"><td class="num" id="LN674">674</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="675"><td class="num" id="LN675">675</td><td class="line"> <span class='keyword'>if</span> (!gtk_tree_selection_get_selected (selection, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, &amp;iter))</td></tr>
+<tr class="codeline" data-linenumber="676"><td class="num" id="LN676">676</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="677"><td class="num" id="LN677">677</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="678"><td class="num" id="LN678">678</td><td class="line"> gtk_tree_model_get (model, &amp;iter, (<span class='keyword'>int</span>) COL_PROFILE, &amp;selected_profile, (<span class='keyword'>int</span>) -1);</td></tr>
+<tr class="codeline" data-linenumber="679"><td class="num" id="LN679">679</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="680"><td class="num" id="LN680">680</td><td class="line"> transient_parent = gtk_widget_get_toplevel (widget);</td></tr>
+<tr class="codeline" data-linenumber="681"><td class="num" id="LN681">681</td><td class="line"> dialog = gtk_message_dialog_new (<span class='macro'>GTK_WINDOW (transient_parent)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((transient_parent)), ((gtk_window_get_type ()))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="682"><td class="num" id="LN682">682</td><td class="line"> GTK_DIALOG_DESTROY_WITH_PARENT,</td></tr>
+<tr class="codeline" data-linenumber="683"><td class="num" id="LN683">683</td><td class="line"> GTK_MESSAGE_QUESTION,</td></tr>
+<tr class="codeline" data-linenumber="684"><td class="num" id="LN684">684</td><td class="line"> GTK_BUTTONS_NONE,</td></tr>
+<tr class="codeline" data-linenumber="685"><td class="num" id="LN685">685</td><td class="line"> <span class='macro'>_(<span class='string_literal'>"Delete profile “%s”?"</span>)<span class='macro_popup'>gettext ("Delete profile “%s”?")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="686"><td class="num" id="LN686">686</td><td class="line"> terminal_profile_get_property_string (selected_profile, <span class='macro'>TERMINAL_PROFILE_VISIBLE_NAME<span class='macro_popup'>"visible-name"</span></span>));</td></tr>
+<tr class="codeline" data-linenumber="687"><td class="num" id="LN687">687</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="688"><td class="num" id="LN688">688</td><td class="line"> mate_dialog_add_button (<span class='macro'>GTK_DIALOG (dialog)<span class='macro_popup'>((((GtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((dialog)), ((gtk_dialog_get_type ()))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="689"><td class="num" id="LN689">689</td><td class="line"> <span class='macro'>_(<span class='string_literal'>"_Cancel"</span>)<span class='macro_popup'>gettext ("_Cancel")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="690"><td class="num" id="LN690">690</td><td class="line"> <span class='string_literal'>"process-stop"</span>,</td></tr>
+<tr class="codeline" data-linenumber="691"><td class="num" id="LN691">691</td><td class="line"> GTK_RESPONSE_REJECT);</td></tr>
+<tr class="codeline" data-linenumber="692"><td class="num" id="LN692">692</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="693"><td class="num" id="LN693">693</td><td class="line"> mate_dialog_add_button (<span class='macro'>GTK_DIALOG (dialog)<span class='macro_popup'>((((GtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((dialog)), ((gtk_dialog_get_type ()))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="694"><td class="num" id="LN694">694</td><td class="line"> <span class='macro'>_(<span class='string_literal'>"_Delete"</span>)<span class='macro_popup'>gettext ("_Delete")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="695"><td class="num" id="LN695">695</td><td class="line"> <span class='string_literal'>"edit-delete"</span>,</td></tr>
+<tr class="codeline" data-linenumber="696"><td class="num" id="LN696">696</td><td class="line"> GTK_RESPONSE_ACCEPT);</td></tr>
+<tr class="codeline" data-linenumber="697"><td class="num" id="LN697">697</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="698"><td class="num" id="LN698">698</td><td class="line"> gtk_dialog_set_default_response (<span class='macro'>GTK_DIALOG (dialog)<span class='macro_popup'>((((GtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((dialog)), ((gtk_dialog_get_type ()))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="699"><td class="num" id="LN699">699</td><td class="line"> GTK_RESPONSE_ACCEPT);</td></tr>
+<tr class="codeline" data-linenumber="700"><td class="num" id="LN700">700</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="701"><td class="num" id="LN701">701</td><td class="line"> gtk_window_set_title (<span class='macro'>GTK_WINDOW (dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((dialog)), ((gtk_window_get_type ()))))))</span></span>, <span class='macro'>_(<span class='string_literal'>"Delete Profile"</span>)<span class='macro_popup'>gettext ("Delete Profile")</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="702"><td class="num" id="LN702">702</td><td class="line"> gtk_window_set_resizable (<span class='macro'>GTK_WINDOW (dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((dialog)), ((gtk_window_get_type ()))))))</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="703"><td class="num" id="LN703">703</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="704"><td class="num" id="LN704">704</td><td class="line"> <span class='comment'>/* Transfer refcount of |selected_profile|, so no unref below */</span></td></tr>
+<tr class="codeline" data-linenumber="705"><td class="num" id="LN705">705</td><td class="line"> g_object_set_data_full (<span class='macro'>G_OBJECT (dialog)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((dialog)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, <span class='string_literal'>"profile"</span>, selected_profile, g_object_unref);</td></tr>
+<tr class="codeline" data-linenumber="706"><td class="num" id="LN706">706</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="707"><td class="num" id="LN707">707</td><td class="line"> <span class='macro'>g_signal_connect (dialog, <span class='string_literal'>"response"</span>,<span class='macro_popup'>g_signal_connect_data ((dialog), ("response"), (((GCallback) (<br>profile_list_delete_confirm_response_cb))), (((void*)0)), ((void<br>*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="708"><td class="num" id="LN708">708</td><td class="line"> <span class='macro'>G_CALLBACK (profile_list_delete_confirm_response_cb),<span class='macro_popup'>g_signal_connect_data ((dialog), ("response"), (((GCallback) (<br>profile_list_delete_confirm_response_cb))), (((void*)0)), ((void<br>*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="709"><td class="num" id="LN709">709</td><td class="line"> <span class='macro'>NULL)<span class='macro_popup'>g_signal_connect_data ((dialog), ("response"), (((GCallback) (<br>profile_list_delete_confirm_response_cb))), (((void*)0)), ((void<br>*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="710"><td class="num" id="LN710">710</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="711"><td class="num" id="LN711">711</td><td class="line"> gtk_window_present (<span class='macro'>GTK_WINDOW (dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((dialog)), ((gtk_window_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="712"><td class="num" id="LN712">712</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="713"><td class="num" id="LN713">713</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="714"><td class="num" id="LN714">714</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="715"><td class="num" id="LN715">715</td><td class="line">profile_list_new_button_clicked_cb (GtkWidget *button,</td></tr>
+<tr class="codeline" data-linenumber="716"><td class="num" id="LN716">716</td><td class="line"> gpointer data)</td></tr>
+<tr class="codeline" data-linenumber="717"><td class="num" id="LN717">717</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="718"><td class="num" id="LN718">718</td><td class="line"> TerminalApp *app;</td></tr>
+<tr class="codeline" data-linenumber="719"><td class="num" id="LN719">719</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="720"><td class="num" id="LN720">720</td><td class="line"> app = terminal_app_get ();</td></tr>
+<tr class="codeline" data-linenumber="721"><td class="num" id="LN721">721</td><td class="line"> terminal_app_new_profile (app, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>GTK_WINDOW (app-&gt;manage_profiles_dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;manage_profiles_dialog)), ((gtk_window_get_type (<br>)))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="722"><td class="num" id="LN722">722</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="723"><td class="num" id="LN723">723</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="724"><td class="num" id="LN724">724</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="725"><td class="num" id="LN725">725</td><td class="line">profile_list_edit_button_clicked_cb (GtkWidget *button,</td></tr>
+<tr class="codeline" data-linenumber="726"><td class="num" id="LN726">726</td><td class="line"> GtkWidget *widget)</td></tr>
+<tr class="codeline" data-linenumber="727"><td class="num" id="LN727">727</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="728"><td class="num" id="LN728">728</td><td class="line"> GtkTreeView *tree_view = <span class='macro'>GTK_TREE_VIEW (widget)<span class='macro_popup'>((((GtkTreeView*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((widget)), ((gtk_tree_view_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="729"><td class="num" id="LN729">729</td><td class="line"> GtkTreeSelection *selection;</td></tr>
+<tr class="codeline" data-linenumber="730"><td class="num" id="LN730">730</td><td class="line"> GtkTreeIter iter;</td></tr>
+<tr class="codeline" data-linenumber="731"><td class="num" id="LN731">731</td><td class="line"> GtkTreeModel *model;</td></tr>
+<tr class="codeline" data-linenumber="732"><td class="num" id="LN732">732</td><td class="line"> TerminalProfile *selected_profile;</td></tr>
+<tr class="codeline" data-linenumber="733"><td class="num" id="LN733">733</td><td class="line"> TerminalApp *app;</td></tr>
+<tr class="codeline" data-linenumber="734"><td class="num" id="LN734">734</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="735"><td class="num" id="LN735">735</td><td class="line"> app = terminal_app_get ();</td></tr>
+<tr class="codeline" data-linenumber="736"><td class="num" id="LN736">736</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="737"><td class="num" id="LN737">737</td><td class="line"> model = gtk_tree_view_get_model (tree_view);</td></tr>
+<tr class="codeline" data-linenumber="738"><td class="num" id="LN738">738</td><td class="line"> selection = gtk_tree_view_get_selection (tree_view);</td></tr>
+<tr class="codeline" data-linenumber="739"><td class="num" id="LN739">739</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="740"><td class="num" id="LN740">740</td><td class="line"> <span class='keyword'>if</span> (!gtk_tree_selection_get_selected (selection, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, &amp;iter))</td></tr>
+<tr class="codeline" data-linenumber="741"><td class="num" id="LN741">741</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="742"><td class="num" id="LN742">742</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="743"><td class="num" id="LN743">743</td><td class="line"> gtk_tree_model_get (model, &amp;iter, (<span class='keyword'>int</span>) COL_PROFILE, &amp;selected_profile, (<span class='keyword'>int</span>) -1);</td></tr>
+<tr class="codeline" data-linenumber="744"><td class="num" id="LN744">744</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="745"><td class="num" id="LN745">745</td><td class="line"> terminal_app_edit_profile (app, selected_profile,</td></tr>
+<tr class="codeline" data-linenumber="746"><td class="num" id="LN746">746</td><td class="line"> <span class='macro'>GTK_WINDOW (app-&gt;manage_profiles_dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;manage_profiles_dialog)), ((gtk_window_get_type (<br>)))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="747"><td class="num" id="LN747">747</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="748"><td class="num" id="LN748">748</td><td class="line"> g_object_unref (selected_profile);</td></tr>
+<tr class="codeline" data-linenumber="749"><td class="num" id="LN749">749</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="750"><td class="num" id="LN750">750</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="751"><td class="num" id="LN751">751</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="752"><td class="num" id="LN752">752</td><td class="line">profile_list_row_activated_cb (GtkTreeView *tree_view,</td></tr>
+<tr class="codeline" data-linenumber="753"><td class="num" id="LN753">753</td><td class="line"> GtkTreePath *path,</td></tr>
+<tr class="codeline" data-linenumber="754"><td class="num" id="LN754">754</td><td class="line"> GtkTreeViewColumn *column,</td></tr>
+<tr class="codeline" data-linenumber="755"><td class="num" id="LN755">755</td><td class="line"> gpointer data)</td></tr>
+<tr class="codeline" data-linenumber="756"><td class="num" id="LN756">756</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="757"><td class="num" id="LN757">757</td><td class="line"> GtkTreeIter iter;</td></tr>
+<tr class="codeline" data-linenumber="758"><td class="num" id="LN758">758</td><td class="line"> GtkTreeModel *model;</td></tr>
+<tr class="codeline" data-linenumber="759"><td class="num" id="LN759">759</td><td class="line"> TerminalProfile *selected_profile;</td></tr>
+<tr class="codeline" data-linenumber="760"><td class="num" id="LN760">760</td><td class="line"> TerminalApp *app;</td></tr>
+<tr class="codeline" data-linenumber="761"><td class="num" id="LN761">761</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="762"><td class="num" id="LN762">762</td><td class="line"> app = terminal_app_get ();</td></tr>
+<tr class="codeline" data-linenumber="763"><td class="num" id="LN763">763</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="764"><td class="num" id="LN764">764</td><td class="line"> model = gtk_tree_view_get_model (tree_view);</td></tr>
+<tr class="codeline" data-linenumber="765"><td class="num" id="LN765">765</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="766"><td class="num" id="LN766">766</td><td class="line"> <span class='keyword'>if</span> (!gtk_tree_model_get_iter (model, &amp;iter, path))</td></tr>
+<tr class="codeline" data-linenumber="767"><td class="num" id="LN767">767</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="768"><td class="num" id="LN768">768</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="769"><td class="num" id="LN769">769</td><td class="line"> gtk_tree_model_get (model, &amp;iter, (<span class='keyword'>int</span>) COL_PROFILE, &amp;selected_profile, (<span class='keyword'>int</span>) -1);</td></tr>
+<tr class="codeline" data-linenumber="770"><td class="num" id="LN770">770</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="771"><td class="num" id="LN771">771</td><td class="line"> terminal_app_edit_profile (app, selected_profile,</td></tr>
+<tr class="codeline" data-linenumber="772"><td class="num" id="LN772">772</td><td class="line"> <span class='macro'>GTK_WINDOW (app-&gt;manage_profiles_dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;manage_profiles_dialog)), ((gtk_window_get_type (<br>)))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="773"><td class="num" id="LN773">773</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="774"><td class="num" id="LN774">774</td><td class="line"> g_object_unref (selected_profile);</td></tr>
+<tr class="codeline" data-linenumber="775"><td class="num" id="LN775">775</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="776"><td class="num" id="LN776">776</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="777"><td class="num" id="LN777">777</td><td class="line"><span class='keyword'>static</span> GList*</td></tr>
+<tr class="codeline" data-linenumber="778"><td class="num" id="LN778">778</td><td class="line">find_profile_link (GList *profiles,</td></tr>
+<tr class="codeline" data-linenumber="779"><td class="num" id="LN779">779</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *name)</td></tr>
+<tr class="codeline" data-linenumber="780"><td class="num" id="LN780">780</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="781"><td class="num" id="LN781">781</td><td class="line"> GList *l;</td></tr>
+<tr class="codeline" data-linenumber="782"><td class="num" id="LN782">782</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="783"><td class="num" id="LN783">783</td><td class="line"> <span class='keyword'>for</span> (l = profiles; l != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; l = l-&gt;next)</td></tr>
+<tr class="codeline" data-linenumber="784"><td class="num" id="LN784">784</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="785"><td class="num" id="LN785">785</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *profile_name;</td></tr>
+<tr class="codeline" data-linenumber="786"><td class="num" id="LN786">786</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="787"><td class="num" id="LN787">787</td><td class="line"> profile_name = terminal_profile_get_property_string (<span class='macro'>TERMINAL_PROFILE (l-&gt;data)<span class='macro_popup'>((((TerminalProfile*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((l-&gt;data)), ((terminal_profile_get_type ()))))))</span></span>, <span class='macro'>TERMINAL_PROFILE_NAME<span class='macro_popup'>"name"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="788"><td class="num" id="LN788">788</td><td class="line"> <span class='keyword'>if</span> (profile_name &amp;&amp; strcmp (profile_name, name) == 0)</td></tr>
+<tr class="codeline" data-linenumber="789"><td class="num" id="LN789">789</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="790"><td class="num" id="LN790">790</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="791"><td class="num" id="LN791">791</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="792"><td class="num" id="LN792">792</td><td class="line"> <span class='keyword'>return</span> l;</td></tr>
+<tr class="codeline" data-linenumber="793"><td class="num" id="LN793">793</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="794"><td class="num" id="LN794">794</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="795"><td class="num" id="LN795">795</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="796"><td class="num" id="LN796">796</td><td class="line">terminal_app_profile_list_notify_cb (GSettings *settings,</td></tr>
+<tr class="codeline" data-linenumber="797"><td class="num" id="LN797">797</td><td class="line"> <span class='keyword'>const</span> gchar *key,</td></tr>
+<tr class="codeline" data-linenumber="798"><td class="num" id="LN798">798</td><td class="line"> gpointer user_data)</td></tr>
+<tr class="codeline" data-linenumber="799"><td class="num" id="LN799">799</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="800"><td class="num" id="LN800">800</td><td class="line"> TerminalApp *app = <span class='macro'>TERMINAL_APP (user_data)<span class='macro_popup'>((((TerminalApp*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((user_data)), ((terminal_app_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="801"><td class="num" id="LN801">801</td><td class="line"> GObject *object = <span class='macro'>G_OBJECT (app)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="802"><td class="num" id="LN802">802</td><td class="line"> GVariant *val;</td></tr>
+<tr class="codeline" data-linenumber="803"><td class="num" id="LN803">803</td><td class="line"> <span class='keyword'>const</span> gchar **value_list;</td></tr>
+<tr class="codeline" data-linenumber="804"><td class="num" id="LN804">804</td><td class="line"> <span class='keyword'>int</span> i;</td></tr>
+<tr class="codeline" data-linenumber="805"><td class="num" id="LN805">805</td><td class="line"> GList *profiles_to_delete, *l;</td></tr>
+<tr class="codeline" data-linenumber="806"><td class="num" id="LN806">806</td><td class="line"> gboolean need_new_default;</td></tr>
+<tr class="codeline" data-linenumber="807"><td class="num" id="LN807">807</td><td class="line"> TerminalProfile *fallback;</td></tr>
+<tr class="codeline" data-linenumber="808"><td class="num" id="LN808">808</td><td class="line"> guint count;</td></tr>
+<tr class="codeline" data-linenumber="809"><td class="num" id="LN809">809</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="810"><td class="num" id="LN810">810</td><td class="line"> g_object_freeze_notify (object);</td></tr>
+<tr class="codeline" data-linenumber="811"><td class="num" id="LN811">811</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="812"><td class="num" id="LN812">812</td><td class="line"> profiles_to_delete = terminal_app_get_profile_list (app);</td></tr>
+<tr class="codeline" data-linenumber="813"><td class="num" id="LN813">813</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="814"><td class="num" id="LN814">814</td><td class="line"> val = g_settings_get_value (settings, key);</td></tr>
+<tr class="codeline" data-linenumber="815"><td class="num" id="LN815">815</td><td class="line"> <span class='keyword'>if</span> (val == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span> ||</td></tr>
+<tr class="codeline" data-linenumber="816"><td class="num" id="LN816">816</td><td class="line"> (!g_variant_is_of_type (val, <span class='macro'>G_VARIANT_TYPE_STRING_ARRAY<span class='macro_popup'>((const GVariantType *) "as")</span></span>) &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="817"><td class="num" id="LN817">817</td><td class="line"> !g_variant_is_of_type (val, <span class="mrange"><span class="mrange"><span class='macro'>G_VARIANT_TYPE_STRING<span class='macro_popup'>((const GVariantType *) "s")</span></span></span></span>)))</td></tr>
+<tr><td class="num"></td><td class="line"><div id="EndPath" class="msg msgEvent" style="margin-left:45ex; max-width:31em">Casting a non-structure type to a structure type and accessing a field can lead to memory access errors or data corruption</div></td></tr>
+<tr class="codeline" data-linenumber="818"><td class="num" id="LN818">818</td><td class="line"> <span class='keyword'>goto</span> ensure_one_profile;</td></tr>
+<tr class="codeline" data-linenumber="819"><td class="num" id="LN819">819</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="820"><td class="num" id="LN820">820</td><td class="line"> value_list = g_variant_get_strv (val, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="821"><td class="num" id="LN821">821</td><td class="line"> <span class='keyword'>if</span> (value_list == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="822"><td class="num" id="LN822">822</td><td class="line"> <span class='keyword'>goto</span> ensure_one_profile;</td></tr>
+<tr class="codeline" data-linenumber="823"><td class="num" id="LN823">823</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="824"><td class="num" id="LN824">824</td><td class="line"> <span class='comment'>/* Add any new ones */</span></td></tr>
+<tr class="codeline" data-linenumber="825"><td class="num" id="LN825">825</td><td class="line"> <span class='keyword'>for</span> (i = 0; value_list[i] != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; ++i)</td></tr>
+<tr class="codeline" data-linenumber="826"><td class="num" id="LN826">826</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="827"><td class="num" id="LN827">827</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *profile_name = value_list[i];</td></tr>
+<tr class="codeline" data-linenumber="828"><td class="num" id="LN828">828</td><td class="line"> GList *link;</td></tr>
+<tr class="codeline" data-linenumber="829"><td class="num" id="LN829">829</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="830"><td class="num" id="LN830">830</td><td class="line"> <span class='keyword'>if</span> (!profile_name)</td></tr>
+<tr class="codeline" data-linenumber="831"><td class="num" id="LN831">831</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="832"><td class="num" id="LN832">832</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="833"><td class="num" id="LN833">833</td><td class="line"> link = find_profile_link (profiles_to_delete, profile_name);</td></tr>
+<tr class="codeline" data-linenumber="834"><td class="num" id="LN834">834</td><td class="line"> <span class='keyword'>if</span> (link)</td></tr>
+<tr class="codeline" data-linenumber="835"><td class="num" id="LN835">835</td><td class="line"> <span class='comment'>/* make profiles_to_delete point to profiles we didn't find in the list */</span></td></tr>
+<tr class="codeline" data-linenumber="836"><td class="num" id="LN836">836</td><td class="line"> profiles_to_delete = g_list_delete_link (profiles_to_delete, link);</td></tr>
+<tr class="codeline" data-linenumber="837"><td class="num" id="LN837">837</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="838"><td class="num" id="LN838">838</td><td class="line"> terminal_app_create_profile (app, profile_name);</td></tr>
+<tr class="codeline" data-linenumber="839"><td class="num" id="LN839">839</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="840"><td class="num" id="LN840">840</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="841"><td class="num" id="LN841">841</td><td class="line"> g_free (value_list);</td></tr>
+<tr class="codeline" data-linenumber="842"><td class="num" id="LN842">842</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="843"><td class="num" id="LN843">843</td><td class="line">ensure_one_profile:</td></tr>
+<tr class="codeline" data-linenumber="844"><td class="num" id="LN844">844</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="845"><td class="num" id="LN845">845</td><td class="line"> <span class='keyword'>if</span> (val != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="846"><td class="num" id="LN846">846</td><td class="line"> g_variant_unref (val);</td></tr>
+<tr class="codeline" data-linenumber="847"><td class="num" id="LN847">847</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="848"><td class="num" id="LN848">848</td><td class="line"> fallback = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="849"><td class="num" id="LN849">849</td><td class="line"> count = g_hash_table_size (app-&gt;profiles);</td></tr>
+<tr class="codeline" data-linenumber="850"><td class="num" id="LN850">850</td><td class="line"> <span class='keyword'>if</span> (count == 0 || count &lt;= g_list_length (profiles_to_delete))</td></tr>
+<tr class="codeline" data-linenumber="851"><td class="num" id="LN851">851</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="852"><td class="num" id="LN852">852</td><td class="line"> <span class='comment'>/* We are going to run out, so create the fallback</span></td></tr>
+<tr class="codeline" data-linenumber="853"><td class="num" id="LN853">853</td><td class="line"> <span class='comment'>* to be sure we always have one. Must be done</span></td></tr>
+<tr class="codeline" data-linenumber="854"><td class="num" id="LN854">854</td><td class="line"> <span class='comment'>* here before we emit "forgotten" signals so that</span></td></tr>
+<tr class="codeline" data-linenumber="855"><td class="num" id="LN855">855</td><td class="line"> <span class='comment'>* screens have a profile to fall back to.</span></td></tr>
+<tr class="codeline" data-linenumber="856"><td class="num" id="LN856">856</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="857"><td class="num" id="LN857">857</td><td class="line"> <span class='comment'>* If the profile with the FALLBACK_ID already exists,</span></td></tr>
+<tr class="codeline" data-linenumber="858"><td class="num" id="LN858">858</td><td class="line"> <span class='comment'>* we aren't allowed to delete it, unless at least one</span></td></tr>
+<tr class="codeline" data-linenumber="859"><td class="num" id="LN859">859</td><td class="line"> <span class='comment'>* other profile will still exist. And if you delete</span></td></tr>
+<tr class="codeline" data-linenumber="860"><td class="num" id="LN860">860</td><td class="line"> <span class='comment'>* all profiles, the FALLBACK_ID profile returns as</span></td></tr>
+<tr class="codeline" data-linenumber="861"><td class="num" id="LN861">861</td><td class="line"> <span class='comment'>* the living dead.</span></td></tr>
+<tr class="codeline" data-linenumber="862"><td class="num" id="LN862">862</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="863"><td class="num" id="LN863">863</td><td class="line"> fallback = terminal_app_get_profile_by_name (app, <span class='macro'>FALLBACK_PROFILE_ID<span class='macro_popup'>"default"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="864"><td class="num" id="LN864">864</td><td class="line"> <span class='keyword'>if</span> (fallback == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="865"><td class="num" id="LN865">865</td><td class="line"> fallback = terminal_app_create_profile (app, <span class='macro'>FALLBACK_PROFILE_ID<span class='macro_popup'>"default"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="866"><td class="num" id="LN866">866</td><td class="line"> <span class='macro'>g_assert (fallback != NULL)<span class='macro_popup'>do { if (fallback != ((void*)0)) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-app.c", 866, ((const char*) (__func__<br>)), "fallback != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="867"><td class="num" id="LN867">867</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="868"><td class="num" id="LN868">868</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="869"><td class="num" id="LN869">869</td><td class="line"> <span class='comment'>/* Forget no-longer-existing profiles */</span></td></tr>
+<tr class="codeline" data-linenumber="870"><td class="num" id="LN870">870</td><td class="line"> need_new_default = <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="871"><td class="num" id="LN871">871</td><td class="line"> <span class='keyword'>for</span> (l = profiles_to_delete; l != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; l = l-&gt;next)</td></tr>
+<tr class="codeline" data-linenumber="872"><td class="num" id="LN872">872</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="873"><td class="num" id="LN873">873</td><td class="line"> TerminalProfile *profile = <span class='macro'>TERMINAL_PROFILE (l-&gt;data)<span class='macro_popup'>((((TerminalProfile*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((l-&gt;data)), ((terminal_profile_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="874"><td class="num" id="LN874">874</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *name;</td></tr>
+<tr class="codeline" data-linenumber="875"><td class="num" id="LN875">875</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="876"><td class="num" id="LN876">876</td><td class="line"> name = terminal_profile_get_property_string (profile, <span class='macro'>TERMINAL_PROFILE_NAME<span class='macro_popup'>"name"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="877"><td class="num" id="LN877">877</td><td class="line"> <span class='keyword'>if</span> (strcmp (name, <span class='macro'>FALLBACK_PROFILE_ID<span class='macro_popup'>"default"</span></span>) == 0)</td></tr>
+<tr class="codeline" data-linenumber="878"><td class="num" id="LN878">878</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="879"><td class="num" id="LN879">879</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="880"><td class="num" id="LN880">880</td><td class="line"> <span class='keyword'>if</span> (profile == app-&gt;default_profile)</td></tr>
+<tr class="codeline" data-linenumber="881"><td class="num" id="LN881">881</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="882"><td class="num" id="LN882">882</td><td class="line"> app-&gt;default_profile = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="883"><td class="num" id="LN883">883</td><td class="line"> need_new_default = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="884"><td class="num" id="LN884">884</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="885"><td class="num" id="LN885">885</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="886"><td class="num" id="LN886">886</td><td class="line"> _terminal_profile_forget (profile);</td></tr>
+<tr class="codeline" data-linenumber="887"><td class="num" id="LN887">887</td><td class="line"> g_hash_table_remove (app-&gt;profiles, name);</td></tr>
+<tr class="codeline" data-linenumber="888"><td class="num" id="LN888">888</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="889"><td class="num" id="LN889">889</td><td class="line"> <span class='comment'>/* |profile| possibly isn't dead yet since the profiles dialogue's tree model holds a ref too... */</span></td></tr>
+<tr class="codeline" data-linenumber="890"><td class="num" id="LN890">890</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="891"><td class="num" id="LN891">891</td><td class="line"> g_list_free (profiles_to_delete);</td></tr>
+<tr class="codeline" data-linenumber="892"><td class="num" id="LN892">892</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="893"><td class="num" id="LN893">893</td><td class="line"> <span class='keyword'>if</span> (need_new_default)</td></tr>
+<tr class="codeline" data-linenumber="894"><td class="num" id="LN894">894</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="895"><td class="num" id="LN895">895</td><td class="line"> TerminalProfile *new_default;</td></tr>
+<tr class="codeline" data-linenumber="896"><td class="num" id="LN896">896</td><td class="line"> TerminalProfile **new_default_ptr = &amp;new_default;</td></tr>
+<tr class="codeline" data-linenumber="897"><td class="num" id="LN897">897</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="898"><td class="num" id="LN898">898</td><td class="line"> new_default = terminal_app_get_profile_by_name (app, <span class='macro'>FALLBACK_PROFILE_ID<span class='macro_popup'>"default"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="899"><td class="num" id="LN899">899</td><td class="line"> <span class='keyword'>if</span> (new_default == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="900"><td class="num" id="LN900">900</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="901"><td class="num" id="LN901">901</td><td class="line"> GHashTableIter iter;</td></tr>
+<tr class="codeline" data-linenumber="902"><td class="num" id="LN902">902</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="903"><td class="num" id="LN903">903</td><td class="line"> g_hash_table_iter_init (&amp;iter, app-&gt;profiles);</td></tr>
+<tr class="codeline" data-linenumber="904"><td class="num" id="LN904">904</td><td class="line"> <span class='keyword'>if</span> (!g_hash_table_iter_next (&amp;iter, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, (gpointer *) new_default_ptr))</td></tr>
+<tr class="codeline" data-linenumber="905"><td class="num" id="LN905">905</td><td class="line"> <span class='comment'>/* shouldn't really happen ever, but just to be safe */</span></td></tr>
+<tr class="codeline" data-linenumber="906"><td class="num" id="LN906">906</td><td class="line"> new_default = terminal_app_create_profile (app, <span class='macro'>FALLBACK_PROFILE_ID<span class='macro_popup'>"default"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="907"><td class="num" id="LN907">907</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="908"><td class="num" id="LN908">908</td><td class="line"> <span class='macro'>g_assert (new_default != NULL)<span class='macro_popup'>do { if (new_default != ((void*)0)) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-app.c", 908, ((const char*) (__func__<br>)), "new_default != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="909"><td class="num" id="LN909">909</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="910"><td class="num" id="LN910">910</td><td class="line"> app-&gt;default_profile = new_default;</td></tr>
+<tr class="codeline" data-linenumber="911"><td class="num" id="LN911">911</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="912"><td class="num" id="LN912">912</td><td class="line"> g_object_notify (object, <span class='macro'>TERMINAL_APP_DEFAULT_PROFILE<span class='macro_popup'>"default-profile"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="913"><td class="num" id="LN913">913</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="914"><td class="num" id="LN914">914</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="915"><td class="num" id="LN915">915</td><td class="line"> <span class='macro'>g_assert (g_hash_table_size (app-&gt;profiles) &gt; 0)<span class='macro_popup'>do { if (g_hash_table_size (app-&gt;profiles) &gt; 0) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-app.c", 915, ((const char*) (__func__<br>)), "g_hash_table_size (app-&gt;profiles) &gt; 0"); } while (<br>0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="916"><td class="num" id="LN916">916</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="917"><td class="num" id="LN917">917</td><td class="line"> g_signal_emit (app, signals[PROFILE_LIST_CHANGED], 0);</td></tr>
+<tr class="codeline" data-linenumber="918"><td class="num" id="LN918">918</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="919"><td class="num" id="LN919">919</td><td class="line"> g_object_thaw_notify (object);</td></tr>
+<tr class="codeline" data-linenumber="920"><td class="num" id="LN920">920</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="921"><td class="num" id="LN921">921</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="922"><td class="num" id="LN922">922</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="923"><td class="num" id="LN923">923</td><td class="line">terminal_app_default_profile_notify_cb (GSettings *settings,</td></tr>
+<tr class="codeline" data-linenumber="924"><td class="num" id="LN924">924</td><td class="line"> <span class='keyword'>const</span> gchar *key,</td></tr>
+<tr class="codeline" data-linenumber="925"><td class="num" id="LN925">925</td><td class="line"> gpointer user_data)</td></tr>
+<tr class="codeline" data-linenumber="926"><td class="num" id="LN926">926</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="927"><td class="num" id="LN927">927</td><td class="line"> TerminalApp *app = <span class='macro'>TERMINAL_APP (user_data)<span class='macro_popup'>((((TerminalApp*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((user_data)), ((terminal_app_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="928"><td class="num" id="LN928">928</td><td class="line"> GVariant *val;</td></tr>
+<tr class="codeline" data-linenumber="929"><td class="num" id="LN929">929</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *name = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="930"><td class="num" id="LN930">930</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="931"><td class="num" id="LN931">931</td><td class="line"> app-&gt;default_profile_locked = !g_settings_is_writable (settings, key);</td></tr>
+<tr class="codeline" data-linenumber="932"><td class="num" id="LN932">932</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="933"><td class="num" id="LN933">933</td><td class="line"> val = g_settings_get_value (settings, key);</td></tr>
+<tr class="codeline" data-linenumber="934"><td class="num" id="LN934">934</td><td class="line"> <span class='keyword'>if</span> (val != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span> &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="935"><td class="num" id="LN935">935</td><td class="line"> g_variant_is_of_type (val, <span class='macro'>G_VARIANT_TYPE_STRING<span class='macro_popup'>((const GVariantType *) "s")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="936"><td class="num" id="LN936">936</td><td class="line"> name = g_variant_get_string (val, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="937"><td class="num" id="LN937">937</td><td class="line"> <span class='keyword'>if</span> (!name || !name[0])</td></tr>
+<tr class="codeline" data-linenumber="938"><td class="num" id="LN938">938</td><td class="line"> name = <span class='macro'>FALLBACK_PROFILE_ID<span class='macro_popup'>"default"</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="939"><td class="num" id="LN939">939</td><td class="line"> <span class='macro'>g_assert (name != NULL)<span class='macro_popup'>do { if (name != ((void*)0)) ; else g_assertion_message_expr (<br>((gchar*) 0), "terminal-app.c", 939, ((const char*) (__func__<br>)), "name != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="940"><td class="num" id="LN940">940</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="941"><td class="num" id="LN941">941</td><td class="line"> g_free (app-&gt;default_profile_id);</td></tr>
+<tr class="codeline" data-linenumber="942"><td class="num" id="LN942">942</td><td class="line"> app-&gt;default_profile_id = <span class='macro'>g_strdup (name)<span class='macro_popup'>g_strdup_inline (name)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="943"><td class="num" id="LN943">943</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="944"><td class="num" id="LN944">944</td><td class="line"> app-&gt;default_profile = terminal_app_get_profile_by_name (app, name);</td></tr>
+<tr class="codeline" data-linenumber="945"><td class="num" id="LN945">945</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="946"><td class="num" id="LN946">946</td><td class="line"> g_object_notify (<span class='macro'>G_OBJECT (app)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, <span class='macro'>TERMINAL_APP_DEFAULT_PROFILE<span class='macro_popup'>"default-profile"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="947"><td class="num" id="LN947">947</td><td class="line"> g_variant_unref (val);</td></tr>
+<tr class="codeline" data-linenumber="948"><td class="num" id="LN948">948</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="949"><td class="num" id="LN949">949</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="950"><td class="num" id="LN950">950</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>int</span></td></tr>
+<tr class="codeline" data-linenumber="951"><td class="num" id="LN951">951</td><td class="line">compare_encodings (TerminalEncoding *a,</td></tr>
+<tr class="codeline" data-linenumber="952"><td class="num" id="LN952">952</td><td class="line"> TerminalEncoding *b)</td></tr>
+<tr class="codeline" data-linenumber="953"><td class="num" id="LN953">953</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="954"><td class="num" id="LN954">954</td><td class="line"> <span class='keyword'>return</span> g_utf8_collate (a-&gt;name, b-&gt;name);</td></tr>
+<tr class="codeline" data-linenumber="955"><td class="num" id="LN955">955</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="956"><td class="num" id="LN956">956</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="957"><td class="num" id="LN957">957</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="958"><td class="num" id="LN958">958</td><td class="line">encoding_mark_active (gpointer key,</td></tr>
+<tr class="codeline" data-linenumber="959"><td class="num" id="LN959">959</td><td class="line"> gpointer value,</td></tr>
+<tr class="codeline" data-linenumber="960"><td class="num" id="LN960">960</td><td class="line"> gpointer data)</td></tr>
+<tr class="codeline" data-linenumber="961"><td class="num" id="LN961">961</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="962"><td class="num" id="LN962">962</td><td class="line"> TerminalEncoding *encoding = (TerminalEncoding *) value;</td></tr>
+<tr class="codeline" data-linenumber="963"><td class="num" id="LN963">963</td><td class="line"> guint active = <span class='macro'>GPOINTER_TO_UINT (data)<span class='macro_popup'>((guint) (gulong) (data))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="964"><td class="num" id="LN964">964</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="965"><td class="num" id="LN965">965</td><td class="line"> encoding-&gt;is_active = active;</td></tr>
+<tr class="codeline" data-linenumber="966"><td class="num" id="LN966">966</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="967"><td class="num" id="LN967">967</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="968"><td class="num" id="LN968">968</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="969"><td class="num" id="LN969">969</td><td class="line">terminal_app_encoding_list_notify_cb (GSettings *settings,</td></tr>
+<tr class="codeline" data-linenumber="970"><td class="num" id="LN970">970</td><td class="line"> <span class='keyword'>const</span> gchar *key,</td></tr>
+<tr class="codeline" data-linenumber="971"><td class="num" id="LN971">971</td><td class="line"> gpointer user_data)</td></tr>
+<tr class="codeline" data-linenumber="972"><td class="num" id="LN972">972</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="973"><td class="num" id="LN973">973</td><td class="line"> TerminalApp *app = <span class='macro'>TERMINAL_APP (user_data)<span class='macro_popup'>((((TerminalApp*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((user_data)), ((terminal_app_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="974"><td class="num" id="LN974">974</td><td class="line"> GVariant *val;</td></tr>
+<tr class="codeline" data-linenumber="975"><td class="num" id="LN975">975</td><td class="line"> <span class='keyword'>const</span> gchar **strings;</td></tr>
+<tr class="codeline" data-linenumber="976"><td class="num" id="LN976">976</td><td class="line"> <span class='keyword'>int</span> i;</td></tr>
+<tr class="codeline" data-linenumber="977"><td class="num" id="LN977">977</td><td class="line"> TerminalEncoding *encoding;</td></tr>
+<tr class="codeline" data-linenumber="978"><td class="num" id="LN978">978</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *charset;</td></tr>
+<tr class="codeline" data-linenumber="979"><td class="num" id="LN979">979</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="980"><td class="num" id="LN980">980</td><td class="line"> app-&gt;encodings_locked = !g_settings_is_writable (settings, key);</td></tr>
+<tr class="codeline" data-linenumber="981"><td class="num" id="LN981">981</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="982"><td class="num" id="LN982">982</td><td class="line"> <span class='comment'>/* Mark all as non-active, then re-enable the active ones */</span></td></tr>
+<tr class="codeline" data-linenumber="983"><td class="num" id="LN983">983</td><td class="line"> g_hash_table_foreach (app-&gt;encodings, (GHFunc) encoding_mark_active, <span class='macro'>GUINT_TO_POINTER (FALSE)<span class='macro_popup'>((gpointer) (gulong) ((0)))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="984"><td class="num" id="LN984">984</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="985"><td class="num" id="LN985">985</td><td class="line"> <span class='comment'>/* First add the locale's charset */</span></td></tr>
+<tr class="codeline" data-linenumber="986"><td class="num" id="LN986">986</td><td class="line"> encoding = g_hash_table_lookup (app-&gt;encodings, <span class='string_literal'>"current"</span>);</td></tr>
+<tr class="codeline" data-linenumber="987"><td class="num" id="LN987">987</td><td class="line"> <span class='macro'>g_assert (encoding)<span class='macro_popup'>do { if (encoding) ; else g_assertion_message_expr (((gchar*)<br> 0), "terminal-app.c", 987, ((const char*) (__func__)), "encoding"<br>); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="988"><td class="num" id="LN988">988</td><td class="line"> <span class='keyword'>if</span> (terminal_encoding_is_valid (encoding))</td></tr>
+<tr class="codeline" data-linenumber="989"><td class="num" id="LN989">989</td><td class="line"> encoding-&gt;is_active = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="990"><td class="num" id="LN990">990</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="991"><td class="num" id="LN991">991</td><td class="line"> <span class='comment'>/* Also always make UTF-8 available */</span></td></tr>
+<tr class="codeline" data-linenumber="992"><td class="num" id="LN992">992</td><td class="line"> encoding = g_hash_table_lookup (app-&gt;encodings, <span class='string_literal'>"UTF-8"</span>);</td></tr>
+<tr class="codeline" data-linenumber="993"><td class="num" id="LN993">993</td><td class="line"> <span class='macro'>g_assert (encoding)<span class='macro_popup'>do { if (encoding) ; else g_assertion_message_expr (((gchar*)<br> 0), "terminal-app.c", 993, ((const char*) (__func__)), "encoding"<br>); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="994"><td class="num" id="LN994">994</td><td class="line"> <span class='keyword'>if</span> (terminal_encoding_is_valid (encoding))</td></tr>
+<tr class="codeline" data-linenumber="995"><td class="num" id="LN995">995</td><td class="line"> encoding-&gt;is_active = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="996"><td class="num" id="LN996">996</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="997"><td class="num" id="LN997">997</td><td class="line"> val = g_settings_get_value (settings, key);</td></tr>
+<tr class="codeline" data-linenumber="998"><td class="num" id="LN998">998</td><td class="line"> <span class='keyword'>if</span> (val != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span> &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="999"><td class="num" id="LN999">999</td><td class="line"> g_variant_is_of_type (val, <span class='macro'>G_VARIANT_TYPE_STRING_ARRAY<span class='macro_popup'>((const GVariantType *) "as")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="1000"><td class="num" id="LN1000">1000</td><td class="line"> strings = g_variant_get_strv (val, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1001"><td class="num" id="LN1001">1001</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="1002"><td class="num" id="LN1002">1002</td><td class="line"> strings = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1003"><td class="num" id="LN1003">1003</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1004"><td class="num" id="LN1004">1004</td><td class="line"> <span class='keyword'>if</span> (strings != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1005"><td class="num" id="LN1005">1005</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1006"><td class="num" id="LN1006">1006</td><td class="line"> <span class='keyword'>for</span> (i = 0; strings[i] != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; ++i)</td></tr>
+<tr class="codeline" data-linenumber="1007"><td class="num" id="LN1007">1007</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1008"><td class="num" id="LN1008">1008</td><td class="line"> charset = strings[i];</td></tr>
+<tr class="codeline" data-linenumber="1009"><td class="num" id="LN1009">1009</td><td class="line"> <span class='keyword'>if</span> (!charset)</td></tr>
+<tr class="codeline" data-linenumber="1010"><td class="num" id="LN1010">1010</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="1011"><td class="num" id="LN1011">1011</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1012"><td class="num" id="LN1012">1012</td><td class="line"> encoding = terminal_app_ensure_encoding (app, charset);</td></tr>
+<tr class="codeline" data-linenumber="1013"><td class="num" id="LN1013">1013</td><td class="line"> <span class='keyword'>if</span> (!terminal_encoding_is_valid (encoding))</td></tr>
+<tr class="codeline" data-linenumber="1014"><td class="num" id="LN1014">1014</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="1015"><td class="num" id="LN1015">1015</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1016"><td class="num" id="LN1016">1016</td><td class="line"> encoding-&gt;is_active = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1017"><td class="num" id="LN1017">1017</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1018"><td class="num" id="LN1018">1018</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1019"><td class="num" id="LN1019">1019</td><td class="line"> g_free (strings);</td></tr>
+<tr class="codeline" data-linenumber="1020"><td class="num" id="LN1020">1020</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1021"><td class="num" id="LN1021">1021</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1022"><td class="num" id="LN1022">1022</td><td class="line"> g_signal_emit (app, signals[ENCODING_LIST_CHANGED], 0);</td></tr>
+<tr class="codeline" data-linenumber="1023"><td class="num" id="LN1023">1023</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1024"><td class="num" id="LN1024">1024</td><td class="line"> <span class='keyword'>if</span> (val != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1025"><td class="num" id="LN1025">1025</td><td class="line"> g_variant_unref (val);</td></tr>
+<tr class="codeline" data-linenumber="1026"><td class="num" id="LN1026">1026</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1027"><td class="num" id="LN1027">1027</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1028"><td class="num" id="LN1028">1028</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1029"><td class="num" id="LN1029">1029</td><td class="line">terminal_app_system_font_notify_cb (GSettings *settings,</td></tr>
+<tr class="codeline" data-linenumber="1030"><td class="num" id="LN1030">1030</td><td class="line"> <span class='keyword'>const</span> gchar *key,</td></tr>
+<tr class="codeline" data-linenumber="1031"><td class="num" id="LN1031">1031</td><td class="line"> gpointer user_data)</td></tr>
+<tr class="codeline" data-linenumber="1032"><td class="num" id="LN1032">1032</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1033"><td class="num" id="LN1033">1033</td><td class="line"> TerminalApp *app = <span class='macro'>TERMINAL_APP (user_data)<span class='macro_popup'>((((TerminalApp*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((user_data)), ((terminal_app_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1034"><td class="num" id="LN1034">1034</td><td class="line"> GVariant *val;</td></tr>
+<tr class="codeline" data-linenumber="1035"><td class="num" id="LN1035">1035</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *font = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1036"><td class="num" id="LN1036">1036</td><td class="line"> PangoFontDescription *font_desc;</td></tr>
+<tr class="codeline" data-linenumber="1037"><td class="num" id="LN1037">1037</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1038"><td class="num" id="LN1038">1038</td><td class="line"> <span class='keyword'>if</span> (strcmp (key, <span class='macro'>MONOSPACE_FONT_KEY<span class='macro_popup'>"monospace-font-name"</span></span>) != 0)</td></tr>
+<tr class="codeline" data-linenumber="1039"><td class="num" id="LN1039">1039</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1040"><td class="num" id="LN1040">1040</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1041"><td class="num" id="LN1041">1041</td><td class="line"> val = g_settings_get_value (settings, key);</td></tr>
+<tr class="codeline" data-linenumber="1042"><td class="num" id="LN1042">1042</td><td class="line"> <span class='keyword'>if</span> (val &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="1043"><td class="num" id="LN1043">1043</td><td class="line"> g_variant_is_of_type (val, <span class='macro'>G_VARIANT_TYPE_STRING<span class='macro_popup'>((const GVariantType *) "s")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="1044"><td class="num" id="LN1044">1044</td><td class="line"> font = g_variant_get_string (val, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1045"><td class="num" id="LN1045">1045</td><td class="line"> <span class='keyword'>if</span> (!font)</td></tr>
+<tr class="codeline" data-linenumber="1046"><td class="num" id="LN1046">1046</td><td class="line"> font = <span class='macro'>DEFAULT_MONOSPACE_FONT<span class='macro_popup'>("Monospace 10")</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1047"><td class="num" id="LN1047">1047</td><td class="line"> <span class='macro'>g_assert (font != NULL)<span class='macro_popup'>do { if (font != ((void*)0)) ; else g_assertion_message_expr (<br>((gchar*) 0), "terminal-app.c", 1047, ((const char*) (__func__<br>)), "font != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1048"><td class="num" id="LN1048">1048</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1049"><td class="num" id="LN1049">1049</td><td class="line"> <span class='keyword'>if</span> (font &amp;&amp; (strlen (font) == 0)) <span class='comment'>/* empty string */</span></td></tr>
+<tr class="codeline" data-linenumber="1050"><td class="num" id="LN1050">1050</td><td class="line"> font = <span class='macro'>DEFAULT_MONOSPACE_FONT<span class='macro_popup'>("Monospace 10")</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1051"><td class="num" id="LN1051">1051</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1052"><td class="num" id="LN1052">1052</td><td class="line"> font_desc = pango_font_description_from_string (font);</td></tr>
+<tr class="codeline" data-linenumber="1053"><td class="num" id="LN1053">1053</td><td class="line"> <span class='keyword'>if</span> (app-&gt;system_font_desc &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="1054"><td class="num" id="LN1054">1054</td><td class="line"> pango_font_description_equal (app-&gt;system_font_desc, font_desc))</td></tr>
+<tr class="codeline" data-linenumber="1055"><td class="num" id="LN1055">1055</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1056"><td class="num" id="LN1056">1056</td><td class="line"> pango_font_description_free (font_desc);</td></tr>
+<tr class="codeline" data-linenumber="1057"><td class="num" id="LN1057">1057</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1058"><td class="num" id="LN1058">1058</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1059"><td class="num" id="LN1059">1059</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1060"><td class="num" id="LN1060">1060</td><td class="line"> <span class='keyword'>if</span> (app-&gt;system_font_desc)</td></tr>
+<tr class="codeline" data-linenumber="1061"><td class="num" id="LN1061">1061</td><td class="line"> pango_font_description_free (app-&gt;system_font_desc);</td></tr>
+<tr class="codeline" data-linenumber="1062"><td class="num" id="LN1062">1062</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1063"><td class="num" id="LN1063">1063</td><td class="line"> app-&gt;system_font_desc = font_desc;</td></tr>
+<tr class="codeline" data-linenumber="1064"><td class="num" id="LN1064">1064</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1065"><td class="num" id="LN1065">1065</td><td class="line"> g_object_notify (<span class='macro'>G_OBJECT (app)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, <span class='macro'>TERMINAL_APP_SYSTEM_FONT<span class='macro_popup'>"system-font"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1066"><td class="num" id="LN1066">1066</td><td class="line"> g_variant_unref (val);</td></tr>
+<tr class="codeline" data-linenumber="1067"><td class="num" id="LN1067">1067</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1068"><td class="num" id="LN1068">1068</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1069"><td class="num" id="LN1069">1069</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1070"><td class="num" id="LN1070">1070</td><td class="line">terminal_app_enable_mnemonics_notify_cb (GSettings *settings,</td></tr>
+<tr class="codeline" data-linenumber="1071"><td class="num" id="LN1071">1071</td><td class="line"> <span class='keyword'>const</span> gchar *key,</td></tr>
+<tr class="codeline" data-linenumber="1072"><td class="num" id="LN1072">1072</td><td class="line"> gpointer user_data)</td></tr>
+<tr class="codeline" data-linenumber="1073"><td class="num" id="LN1073">1073</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1074"><td class="num" id="LN1074">1074</td><td class="line"> TerminalApp *app = <span class='macro'>TERMINAL_APP (user_data)<span class='macro_popup'>((((TerminalApp*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((user_data)), ((terminal_app_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1075"><td class="num" id="LN1075">1075</td><td class="line"> gboolean enable;</td></tr>
+<tr class="codeline" data-linenumber="1076"><td class="num" id="LN1076">1076</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1077"><td class="num" id="LN1077">1077</td><td class="line"> enable = g_settings_get_boolean (settings, key);</td></tr>
+<tr class="codeline" data-linenumber="1078"><td class="num" id="LN1078">1078</td><td class="line"> <span class='keyword'>if</span> (enable == app-&gt;enable_mnemonics)</td></tr>
+<tr class="codeline" data-linenumber="1079"><td class="num" id="LN1079">1079</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1080"><td class="num" id="LN1080">1080</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1081"><td class="num" id="LN1081">1081</td><td class="line"> app-&gt;enable_mnemonics = enable;</td></tr>
+<tr class="codeline" data-linenumber="1082"><td class="num" id="LN1082">1082</td><td class="line"> g_object_notify (<span class='macro'>G_OBJECT (app)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, <span class='macro'>TERMINAL_APP_ENABLE_MNEMONICS<span class='macro_popup'>"enable-mnemonics"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1083"><td class="num" id="LN1083">1083</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1084"><td class="num" id="LN1084">1084</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1085"><td class="num" id="LN1085">1085</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1086"><td class="num" id="LN1086">1086</td><td class="line">terminal_app_enable_menu_accels_notify_cb (GSettings *settings,</td></tr>
+<tr class="codeline" data-linenumber="1087"><td class="num" id="LN1087">1087</td><td class="line"> <span class='keyword'>const</span> gchar *key,</td></tr>
+<tr class="codeline" data-linenumber="1088"><td class="num" id="LN1088">1088</td><td class="line"> gpointer user_data)</td></tr>
+<tr class="codeline" data-linenumber="1089"><td class="num" id="LN1089">1089</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1090"><td class="num" id="LN1090">1090</td><td class="line"> TerminalApp *app = <span class='macro'>TERMINAL_APP (user_data)<span class='macro_popup'>((((TerminalApp*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((user_data)), ((terminal_app_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1091"><td class="num" id="LN1091">1091</td><td class="line"> gboolean enable;</td></tr>
+<tr class="codeline" data-linenumber="1092"><td class="num" id="LN1092">1092</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1093"><td class="num" id="LN1093">1093</td><td class="line"> enable = g_settings_get_boolean (settings, key);</td></tr>
+<tr class="codeline" data-linenumber="1094"><td class="num" id="LN1094">1094</td><td class="line"> <span class='keyword'>if</span> (enable == app-&gt;enable_menu_accels)</td></tr>
+<tr class="codeline" data-linenumber="1095"><td class="num" id="LN1095">1095</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1096"><td class="num" id="LN1096">1096</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1097"><td class="num" id="LN1097">1097</td><td class="line"> app-&gt;enable_menu_accels = enable;</td></tr>
+<tr class="codeline" data-linenumber="1098"><td class="num" id="LN1098">1098</td><td class="line"> g_object_notify (<span class='macro'>G_OBJECT (app)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, <span class='macro'>TERMINAL_APP_ENABLE_MENU_BAR_ACCEL<span class='macro_popup'>"enable-menu-accels"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1099"><td class="num" id="LN1099">1099</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1100"><td class="num" id="LN1100">1100</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1101"><td class="num" id="LN1101">1101</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1102"><td class="num" id="LN1102">1102</td><td class="line">new_profile_response_cb (GtkWidget *new_profile_dialog,</td></tr>
+<tr class="codeline" data-linenumber="1103"><td class="num" id="LN1103">1103</td><td class="line"> <span class='keyword'>int</span> response_id,</td></tr>
+<tr class="codeline" data-linenumber="1104"><td class="num" id="LN1104">1104</td><td class="line"> TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="1105"><td class="num" id="LN1105">1105</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1106"><td class="num" id="LN1106">1106</td><td class="line"> <span class='keyword'>if</span> (response_id == GTK_RESPONSE_ACCEPT)</td></tr>
+<tr class="codeline" data-linenumber="1107"><td class="num" id="LN1107">1107</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1108"><td class="num" id="LN1108">1108</td><td class="line"> GtkWidget *name_entry;</td></tr>
+<tr class="codeline" data-linenumber="1109"><td class="num" id="LN1109">1109</td><td class="line"> <span class='keyword'>char</span> *name;</td></tr>
+<tr class="codeline" data-linenumber="1110"><td class="num" id="LN1110">1110</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *new_profile_name;</td></tr>
+<tr class="codeline" data-linenumber="1111"><td class="num" id="LN1111">1111</td><td class="line"> GtkWidget *base_option_menu;</td></tr>
+<tr class="codeline" data-linenumber="1112"><td class="num" id="LN1112">1112</td><td class="line"> TerminalProfile *base_profile = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1113"><td class="num" id="LN1113">1113</td><td class="line"> TerminalProfile *new_profile;</td></tr>
+<tr class="codeline" data-linenumber="1114"><td class="num" id="LN1114">1114</td><td class="line"> GList *profiles;</td></tr>
+<tr class="codeline" data-linenumber="1115"><td class="num" id="LN1115">1115</td><td class="line"> GList *tmp;</td></tr>
+<tr class="codeline" data-linenumber="1116"><td class="num" id="LN1116">1116</td><td class="line"> GtkWindow *transient_parent;</td></tr>
+<tr class="codeline" data-linenumber="1117"><td class="num" id="LN1117">1117</td><td class="line"> GtkWidget *confirm_dialog;</td></tr>
+<tr class="codeline" data-linenumber="1118"><td class="num" id="LN1118">1118</td><td class="line"> gint retval;</td></tr>
+<tr class="codeline" data-linenumber="1119"><td class="num" id="LN1119">1119</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1120"><td class="num" id="LN1120">1120</td><td class="line"> base_option_menu = g_object_get_data (<span class='macro'>G_OBJECT (new_profile_dialog)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((new_profile_dialog)), (((GType) ((20) &lt;&lt; (2)))))))<br>)</span></span>, <span class='string_literal'>"base_option_menu"</span>);</td></tr>
+<tr class="codeline" data-linenumber="1121"><td class="num" id="LN1121">1121</td><td class="line"> base_profile = profile_combo_box_get_selected (base_option_menu);</td></tr>
+<tr class="codeline" data-linenumber="1122"><td class="num" id="LN1122">1122</td><td class="line"> <span class='keyword'>if</span> (!base_profile)</td></tr>
+<tr class="codeline" data-linenumber="1123"><td class="num" id="LN1123">1123</td><td class="line"> base_profile = terminal_app_get_default_profile (app);</td></tr>
+<tr class="codeline" data-linenumber="1124"><td class="num" id="LN1124">1124</td><td class="line"> <span class='keyword'>if</span> (!base_profile)</td></tr>
+<tr class="codeline" data-linenumber="1125"><td class="num" id="LN1125">1125</td><td class="line"> <span class='keyword'>return</span>; <span class='comment'>/* shouldn't happen ever though */</span></td></tr>
+<tr class="codeline" data-linenumber="1126"><td class="num" id="LN1126">1126</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1127"><td class="num" id="LN1127">1127</td><td class="line"> name_entry = g_object_get_data (<span class='macro'>G_OBJECT (new_profile_dialog)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((new_profile_dialog)), (((GType) ((20) &lt;&lt; (2)))))))<br>)</span></span>, <span class='string_literal'>"name_entry"</span>);</td></tr>
+<tr class="codeline" data-linenumber="1128"><td class="num" id="LN1128">1128</td><td class="line"> name = gtk_editable_get_chars (<span class='macro'>GTK_EDITABLE (name_entry)<span class='macro_popup'>((((GtkEditable*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((name_entry)), ((gtk_editable_get_type ()))))))</span></span>, 0, -1);</td></tr>
+<tr class="codeline" data-linenumber="1129"><td class="num" id="LN1129">1129</td><td class="line"> <span class='macro'>g_strstrip (name)<span class='macro_popup'>g_strchomp (g_strchug (name))</span></span>; <span class='comment'>/* name will be non empty after stripping */</span></td></tr>
+<tr class="codeline" data-linenumber="1130"><td class="num" id="LN1130">1130</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1131"><td class="num" id="LN1131">1131</td><td class="line"> profiles = terminal_app_get_profile_list (app);</td></tr>
+<tr class="codeline" data-linenumber="1132"><td class="num" id="LN1132">1132</td><td class="line"> <span class='keyword'>for</span> (tmp = profiles; tmp != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; tmp = tmp-&gt;next)</td></tr>
+<tr class="codeline" data-linenumber="1133"><td class="num" id="LN1133">1133</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1134"><td class="num" id="LN1134">1134</td><td class="line"> TerminalProfile *profile = tmp-&gt;data;</td></tr>
+<tr class="codeline" data-linenumber="1135"><td class="num" id="LN1135">1135</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *visible_name;</td></tr>
+<tr class="codeline" data-linenumber="1136"><td class="num" id="LN1136">1136</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1137"><td class="num" id="LN1137">1137</td><td class="line"> visible_name = terminal_profile_get_property_string (profile, <span class='macro'>TERMINAL_PROFILE_VISIBLE_NAME<span class='macro_popup'>"visible-name"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1138"><td class="num" id="LN1138">1138</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1139"><td class="num" id="LN1139">1139</td><td class="line"> <span class='keyword'>if</span> (visible_name &amp;&amp; strcmp (name, visible_name) == 0)</td></tr>
+<tr class="codeline" data-linenumber="1140"><td class="num" id="LN1140">1140</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1141"><td class="num" id="LN1141">1141</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1142"><td class="num" id="LN1142">1142</td><td class="line"> <span class='keyword'>if</span> (tmp)</td></tr>
+<tr class="codeline" data-linenumber="1143"><td class="num" id="LN1143">1143</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1144"><td class="num" id="LN1144">1144</td><td class="line"> confirm_dialog = gtk_message_dialog_new (<span class='macro'>GTK_WINDOW (new_profile_dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((new_profile_dialog)), ((gtk_window_get_type ()))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1145"><td class="num" id="LN1145">1145</td><td class="line"> GTK_DIALOG_DESTROY_WITH_PARENT,</td></tr>
+<tr class="codeline" data-linenumber="1146"><td class="num" id="LN1146">1146</td><td class="line"> GTK_MESSAGE_QUESTION,</td></tr>
+<tr class="codeline" data-linenumber="1147"><td class="num" id="LN1147">1147</td><td class="line"> GTK_BUTTONS_YES_NO,</td></tr>
+<tr class="codeline" data-linenumber="1148"><td class="num" id="LN1148">1148</td><td class="line"> <span class='macro'>_(<span class='string_literal'>"You already have a profile called “%s”. Do you want to create another profile with the same name?"</span>)<span class='macro_popup'>gettext ("You already have a profile called “%s”. Do you want to create another profile with the same name?"<br>)</span></span>, name);</td></tr>
+<tr class="codeline" data-linenumber="1149"><td class="num" id="LN1149">1149</td><td class="line"> <span class='comment'>/* Alternative button order was set automatically by GtkMessageDialog */</span></td></tr>
+<tr class="codeline" data-linenumber="1150"><td class="num" id="LN1150">1150</td><td class="line"> retval = gtk_dialog_run (<span class='macro'>GTK_DIALOG (confirm_dialog)<span class='macro_popup'>((((GtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((confirm_dialog)), ((gtk_dialog_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1151"><td class="num" id="LN1151">1151</td><td class="line"> gtk_widget_destroy (confirm_dialog);</td></tr>
+<tr class="codeline" data-linenumber="1152"><td class="num" id="LN1152">1152</td><td class="line"> <span class='keyword'>if</span> (retval == GTK_RESPONSE_NO)</td></tr>
+<tr class="codeline" data-linenumber="1153"><td class="num" id="LN1153">1153</td><td class="line"> <span class='keyword'>goto</span> cleanup;</td></tr>
+<tr class="codeline" data-linenumber="1154"><td class="num" id="LN1154">1154</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1155"><td class="num" id="LN1155">1155</td><td class="line"> g_list_free (profiles);</td></tr>
+<tr class="codeline" data-linenumber="1156"><td class="num" id="LN1156">1156</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1157"><td class="num" id="LN1157">1157</td><td class="line"> transient_parent = gtk_window_get_transient_for (<span class='macro'>GTK_WINDOW (new_profile_dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((new_profile_dialog)), ((gtk_window_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1158"><td class="num" id="LN1158">1158</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1159"><td class="num" id="LN1159">1159</td><td class="line"> new_profile = _terminal_profile_clone (base_profile, name);</td></tr>
+<tr class="codeline" data-linenumber="1160"><td class="num" id="LN1160">1160</td><td class="line"> new_profile_name = terminal_profile_get_property_string (new_profile, <span class='macro'>TERMINAL_PROFILE_NAME<span class='macro_popup'>"name"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1161"><td class="num" id="LN1161">1161</td><td class="line"> g_hash_table_insert (app-&gt;profiles,</td></tr>
+<tr class="codeline" data-linenumber="1162"><td class="num" id="LN1162">1162</td><td class="line"> <span class='macro'>g_strdup (new_profile_name)<span class='macro_popup'>g_strdup_inline (new_profile_name)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1163"><td class="num" id="LN1163">1163</td><td class="line"> new_profile <span class='comment'>/* adopts the refcount */</span>);</td></tr>
+<tr class="codeline" data-linenumber="1164"><td class="num" id="LN1164">1164</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1165"><td class="num" id="LN1165">1165</td><td class="line"> <span class='comment'>/* And now save the new profile name to GSettings */</span></td></tr>
+<tr class="codeline" data-linenumber="1166"><td class="num" id="LN1166">1166</td><td class="line"> gsettings_append_strv (settings_global,</td></tr>
+<tr class="codeline" data-linenumber="1167"><td class="num" id="LN1167">1167</td><td class="line"> <span class='macro'>PROFILE_LIST_KEY<span class='macro_popup'>"profile-list"</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1168"><td class="num" id="LN1168">1168</td><td class="line"> new_profile_name);</td></tr>
+<tr class="codeline" data-linenumber="1169"><td class="num" id="LN1169">1169</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1170"><td class="num" id="LN1170">1170</td><td class="line"> terminal_profile_edit (new_profile, transient_parent, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1171"><td class="num" id="LN1171">1171</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1172"><td class="num" id="LN1172">1172</td><td class="line">cleanup:</td></tr>
+<tr class="codeline" data-linenumber="1173"><td class="num" id="LN1173">1173</td><td class="line"> g_free (name);</td></tr>
+<tr class="codeline" data-linenumber="1174"><td class="num" id="LN1174">1174</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1175"><td class="num" id="LN1175">1175</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1176"><td class="num" id="LN1176">1176</td><td class="line"> gtk_widget_destroy (new_profile_dialog);</td></tr>
+<tr class="codeline" data-linenumber="1177"><td class="num" id="LN1177">1177</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1178"><td class="num" id="LN1178">1178</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1179"><td class="num" id="LN1179">1179</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1180"><td class="num" id="LN1180">1180</td><td class="line">new_profile_dialog_destroy_cb (GtkWidget *new_profile_dialog,</td></tr>
+<tr class="codeline" data-linenumber="1181"><td class="num" id="LN1181">1181</td><td class="line"> TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="1182"><td class="num" id="LN1182">1182</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1183"><td class="num" id="LN1183">1183</td><td class="line"> GtkWidget *combo;</td></tr>
+<tr class="codeline" data-linenumber="1184"><td class="num" id="LN1184">1184</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1185"><td class="num" id="LN1185">1185</td><td class="line"> combo = g_object_get_data (<span class='macro'>G_OBJECT (new_profile_dialog)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((new_profile_dialog)), (((GType) ((20) &lt;&lt; (2)))))))<br>)</span></span>, <span class='string_literal'>"base_option_menu"</span>);</td></tr>
+<tr class="codeline" data-linenumber="1186"><td class="num" id="LN1186">1186</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (app, G_CALLBACK (profile_combo_box_refill), combo)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((app), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (profile_combo_box_refill))), (combo))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1187"><td class="num" id="LN1187">1187</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1188"><td class="num" id="LN1188">1188</td><td class="line"> app-&gt;new_profile_dialog = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1189"><td class="num" id="LN1189">1189</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1190"><td class="num" id="LN1190">1190</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1191"><td class="num" id="LN1191">1191</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1192"><td class="num" id="LN1192">1192</td><td class="line">new_profile_name_entry_changed_cb (GtkEntry *entry,</td></tr>
+<tr class="codeline" data-linenumber="1193"><td class="num" id="LN1193">1193</td><td class="line"> GtkDialog *dialog)</td></tr>
+<tr class="codeline" data-linenumber="1194"><td class="num" id="LN1194">1194</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1195"><td class="num" id="LN1195">1195</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *name;</td></tr>
+<tr class="codeline" data-linenumber="1196"><td class="num" id="LN1196">1196</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1197"><td class="num" id="LN1197">1197</td><td class="line"> name = gtk_entry_get_text (entry);</td></tr>
+<tr class="codeline" data-linenumber="1198"><td class="num" id="LN1198">1198</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1199"><td class="num" id="LN1199">1199</td><td class="line"> <span class='comment'>/* make the create button sensitive only if something other than space has been set */</span></td></tr>
+<tr class="codeline" data-linenumber="1200"><td class="num" id="LN1200">1200</td><td class="line"> <span class='keyword'>while</span> (*name != '\0' &amp;&amp; <span class='macro'>g_ascii_isspace (*name)<span class='macro_popup'>((g_ascii_table[(guchar) (*name)] &amp; G_ASCII_SPACE) != 0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1201"><td class="num" id="LN1201">1201</td><td class="line"> ++name;</td></tr>
+<tr class="codeline" data-linenumber="1202"><td class="num" id="LN1202">1202</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1203"><td class="num" id="LN1203">1203</td><td class="line"> gtk_dialog_set_response_sensitive (dialog, GTK_RESPONSE_ACCEPT, name[0] != '\0');</td></tr>
+<tr class="codeline" data-linenumber="1204"><td class="num" id="LN1204">1204</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1205"><td class="num" id="LN1205">1205</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1206"><td class="num" id="LN1206">1206</td><td class="line"><span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1207"><td class="num" id="LN1207">1207</td><td class="line">terminal_app_new_profile (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="1208"><td class="num" id="LN1208">1208</td><td class="line"> TerminalProfile *default_base_profile,</td></tr>
+<tr class="codeline" data-linenumber="1209"><td class="num" id="LN1209">1209</td><td class="line"> GtkWindow *transient_parent)</td></tr>
+<tr class="codeline" data-linenumber="1210"><td class="num" id="LN1210">1210</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1211"><td class="num" id="LN1211">1211</td><td class="line"> <span class='keyword'>if</span> (app-&gt;new_profile_dialog == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1212"><td class="num" id="LN1212">1212</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1213"><td class="num" id="LN1213">1213</td><td class="line"> GtkWidget *create_button, *grid, *name_label, *name_entry, *base_label, *combo;</td></tr>
+<tr class="codeline" data-linenumber="1214"><td class="num" id="LN1214">1214</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1215"><td class="num" id="LN1215">1215</td><td class="line"> <span class='keyword'>if</span> (!terminal_util_load_builder_resource (<span class='macro'>TERMINAL_RESOURCES_PATH_PREFIX<span class='macro_popup'>"/org/mate/terminal"</span></span> <span class='macro'>G_DIR_SEPARATOR_S<span class='macro_popup'>"/"</span></span> <span class='string_literal'>"ui/profile-new-dialog.ui"</span>,</td></tr>
+<tr class="codeline" data-linenumber="1216"><td class="num" id="LN1216">1216</td><td class="line"> <span class='string_literal'>"new-profile-dialog"</span>, &amp;app-&gt;new_profile_dialog,</td></tr>
+<tr class="codeline" data-linenumber="1217"><td class="num" id="LN1217">1217</td><td class="line"> <span class='string_literal'>"new-profile-create-button"</span>, &amp;create_button,</td></tr>
+<tr class="codeline" data-linenumber="1218"><td class="num" id="LN1218">1218</td><td class="line"> <span class='string_literal'>"new-profile-grid"</span>, &amp;grid,</td></tr>
+<tr class="codeline" data-linenumber="1219"><td class="num" id="LN1219">1219</td><td class="line"> <span class='string_literal'>"new-profile-name-label"</span>, &amp;name_label,</td></tr>
+<tr class="codeline" data-linenumber="1220"><td class="num" id="LN1220">1220</td><td class="line"> <span class='string_literal'>"new-profile-name-entry"</span>, &amp;name_entry,</td></tr>
+<tr class="codeline" data-linenumber="1221"><td class="num" id="LN1221">1221</td><td class="line"> <span class='string_literal'>"new-profile-base-label"</span>, &amp;base_label,</td></tr>
+<tr class="codeline" data-linenumber="1222"><td class="num" id="LN1222">1222</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="1223"><td class="num" id="LN1223">1223</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1224"><td class="num" id="LN1224">1224</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1225"><td class="num" id="LN1225">1225</td><td class="line"> <span class='macro'>g_signal_connect (G_OBJECT (app-&gt;new_profile_dialog), <span class='string_literal'>"response"</span>, G_CALLBACK (new_profile_response_cb), app)<span class='macro_popup'>g_signal_connect_data ((((((GObject*) (void *) g_type_check_instance_cast<br> ((GTypeInstance*) ((app-&gt;new_profile_dialog)), (((GType) (<br>(20) &lt;&lt; (2))))))))), ("response"), (((GCallback) (new_profile_response_cb<br>))), (app), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1226"><td class="num" id="LN1226">1226</td><td class="line"> <span class='macro'>g_signal_connect (app-&gt;new_profile_dialog, <span class='string_literal'>"destroy"</span>, G_CALLBACK (new_profile_dialog_destroy_cb), app)<span class='macro_popup'>g_signal_connect_data ((app-&gt;new_profile_dialog), ("destroy"<br>), (((GCallback) (new_profile_dialog_destroy_cb))), (app), ((<br>void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1227"><td class="num" id="LN1227">1227</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1228"><td class="num" id="LN1228">1228</td><td class="line"> g_object_set_data (<span class='macro'>G_OBJECT (app-&gt;new_profile_dialog)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;new_profile_dialog)), (((GType) ((20) &lt;&lt; (<br>2))))))))</span></span>, <span class='string_literal'>"create_button"</span>, create_button);</td></tr>
+<tr class="codeline" data-linenumber="1229"><td class="num" id="LN1229">1229</td><td class="line"> gtk_widget_set_sensitive (create_button, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1230"><td class="num" id="LN1230">1230</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1231"><td class="num" id="LN1231">1231</td><td class="line"> <span class='comment'>/* the name entry */</span></td></tr>
+<tr class="codeline" data-linenumber="1232"><td class="num" id="LN1232">1232</td><td class="line"> g_object_set_data (<span class='macro'>G_OBJECT (app-&gt;new_profile_dialog)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;new_profile_dialog)), (((GType) ((20) &lt;&lt; (<br>2))))))))</span></span>, <span class='string_literal'>"name_entry"</span>, name_entry);</td></tr>
+<tr class="codeline" data-linenumber="1233"><td class="num" id="LN1233">1233</td><td class="line"> <span class='macro'>g_signal_connect (name_entry, <span class='string_literal'>"changed"</span>, G_CALLBACK (new_profile_name_entry_changed_cb), app-&gt;new_profile_dialog)<span class='macro_popup'>g_signal_connect_data ((name_entry), ("changed"), (((GCallback<br>) (new_profile_name_entry_changed_cb))), (app-&gt;new_profile_dialog<br>), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1234"><td class="num" id="LN1234">1234</td><td class="line"> gtk_entry_set_activates_default (<span class='macro'>GTK_ENTRY (name_entry)<span class='macro_popup'>((((GtkEntry*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((name_entry)), ((gtk_entry_get_type ()))))))</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1235"><td class="num" id="LN1235">1235</td><td class="line"> gtk_widget_grab_focus (name_entry);</td></tr>
+<tr class="codeline" data-linenumber="1236"><td class="num" id="LN1236">1236</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1237"><td class="num" id="LN1237">1237</td><td class="line"> gtk_label_set_mnemonic_widget (<span class='macro'>GTK_LABEL (name_label)<span class='macro_popup'>((((GtkLabel*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((name_label)), ((gtk_label_get_type ()))))))</span></span>, name_entry);</td></tr>
+<tr class="codeline" data-linenumber="1238"><td class="num" id="LN1238">1238</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1239"><td class="num" id="LN1239">1239</td><td class="line"> <span class='comment'>/* the base profile option menu */</span></td></tr>
+<tr class="codeline" data-linenumber="1240"><td class="num" id="LN1240">1240</td><td class="line"> combo = profile_combo_box_new (app);</td></tr>
+<tr class="codeline" data-linenumber="1241"><td class="num" id="LN1241">1241</td><td class="line"> gtk_grid_attach (<span class='macro'>GTK_GRID (grid)<span class='macro_popup'>((((GtkGrid*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((grid)), ((gtk_grid_get_type ()))))))</span></span>, combo, 2, 1, 1, 1);</td></tr>
+<tr class="codeline" data-linenumber="1242"><td class="num" id="LN1242">1242</td><td class="line"> g_object_set_data (<span class='macro'>G_OBJECT (app-&gt;new_profile_dialog)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;new_profile_dialog)), (((GType) ((20) &lt;&lt; (<br>2))))))))</span></span>, <span class='string_literal'>"base_option_menu"</span>, combo);</td></tr>
+<tr class="codeline" data-linenumber="1243"><td class="num" id="LN1243">1243</td><td class="line"> terminal_util_set_atk_name_description (combo, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>_(<span class='string_literal'>"Choose base profile"</span>)<span class='macro_popup'>gettext ("Choose base profile")</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1244"><td class="num" id="LN1244">1244</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1245"><td class="num" id="LN1245">1245</td><td class="line"> gtk_label_set_mnemonic_widget (<span class='macro'>GTK_LABEL (base_label)<span class='macro_popup'>((((GtkLabel*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((base_label)), ((gtk_label_get_type ()))))))</span></span>, combo);</td></tr>
+<tr class="codeline" data-linenumber="1246"><td class="num" id="LN1246">1246</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1247"><td class="num" id="LN1247">1247</td><td class="line"> gtk_dialog_set_default_response (<span class='macro'>GTK_DIALOG (app-&gt;new_profile_dialog)<span class='macro_popup'>((((GtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;new_profile_dialog)), ((gtk_dialog_get_type ()))<br>))))</span></span>, GTK_RESPONSE_ACCEPT);</td></tr>
+<tr class="codeline" data-linenumber="1248"><td class="num" id="LN1248">1248</td><td class="line"> gtk_dialog_set_response_sensitive (<span class='macro'>GTK_DIALOG (app-&gt;new_profile_dialog)<span class='macro_popup'>((((GtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;new_profile_dialog)), ((gtk_dialog_get_type ()))<br>))))</span></span>, GTK_RESPONSE_ACCEPT, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1249"><td class="num" id="LN1249">1249</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1250"><td class="num" id="LN1250">1250</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1251"><td class="num" id="LN1251">1251</td><td class="line"> gtk_window_set_transient_for (<span class='macro'>GTK_WINDOW (app-&gt;new_profile_dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;new_profile_dialog)), ((gtk_window_get_type ()))<br>))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1252"><td class="num" id="LN1252">1252</td><td class="line"> transient_parent);</td></tr>
+<tr class="codeline" data-linenumber="1253"><td class="num" id="LN1253">1253</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1254"><td class="num" id="LN1254">1254</td><td class="line"> gtk_window_present (<span class='macro'>GTK_WINDOW (app-&gt;new_profile_dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;new_profile_dialog)), ((gtk_window_get_type ()))<br>))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1255"><td class="num" id="LN1255">1255</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1256"><td class="num" id="LN1256">1256</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1257"><td class="num" id="LN1257">1257</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1258"><td class="num" id="LN1258">1258</td><td class="line">profile_list_selection_changed_cb (GtkTreeSelection *selection,</td></tr>
+<tr class="codeline" data-linenumber="1259"><td class="num" id="LN1259">1259</td><td class="line"> TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="1260"><td class="num" id="LN1260">1260</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1261"><td class="num" id="LN1261">1261</td><td class="line"> gboolean selected;</td></tr>
+<tr class="codeline" data-linenumber="1262"><td class="num" id="LN1262">1262</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1263"><td class="num" id="LN1263">1263</td><td class="line"> selected = gtk_tree_selection_get_selected (selection, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1264"><td class="num" id="LN1264">1264</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1265"><td class="num" id="LN1265">1265</td><td class="line"> gtk_widget_set_sensitive (app-&gt;manage_profiles_edit_button, selected);</td></tr>
+<tr class="codeline" data-linenumber="1266"><td class="num" id="LN1266">1266</td><td class="line"> gtk_widget_set_sensitive (app-&gt;manage_profiles_delete_button,</td></tr>
+<tr class="codeline" data-linenumber="1267"><td class="num" id="LN1267">1267</td><td class="line"> selected &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="1268"><td class="num" id="LN1268">1268</td><td class="line"> g_hash_table_size (app-&gt;profiles) &gt; 1);</td></tr>
+<tr class="codeline" data-linenumber="1269"><td class="num" id="LN1269">1269</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1270"><td class="num" id="LN1270">1270</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1271"><td class="num" id="LN1271">1271</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1272"><td class="num" id="LN1272">1272</td><td class="line">profile_list_response_cb (GtkWidget *dialog,</td></tr>
+<tr class="codeline" data-linenumber="1273"><td class="num" id="LN1273">1273</td><td class="line"> <span class='keyword'>int</span> id,</td></tr>
+<tr class="codeline" data-linenumber="1274"><td class="num" id="LN1274">1274</td><td class="line"> TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="1275"><td class="num" id="LN1275">1275</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1276"><td class="num" id="LN1276">1276</td><td class="line"> <span class='macro'>g_assert (app-&gt;manage_profiles_dialog == dialog)<span class='macro_popup'>do { if (app-&gt;manage_profiles_dialog == dialog) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-app.c", 1276, ((const char*) (__func__<br>)), "app-&gt;manage_profiles_dialog == dialog"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1277"><td class="num" id="LN1277">1277</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1278"><td class="num" id="LN1278">1278</td><td class="line"> <span class='keyword'>if</span> (id == GTK_RESPONSE_HELP)</td></tr>
+<tr class="codeline" data-linenumber="1279"><td class="num" id="LN1279">1279</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1280"><td class="num" id="LN1280">1280</td><td class="line"> terminal_util_show_help (<span class='string_literal'>"mate-terminal-manage-profiles"</span>, <span class='macro'>GTK_WINDOW (dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((dialog)), ((gtk_window_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1281"><td class="num" id="LN1281">1281</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1282"><td class="num" id="LN1282">1282</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1283"><td class="num" id="LN1283">1283</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1284"><td class="num" id="LN1284">1284</td><td class="line"> gtk_widget_destroy (dialog);</td></tr>
+<tr class="codeline" data-linenumber="1285"><td class="num" id="LN1285">1285</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1286"><td class="num" id="LN1286">1286</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1287"><td class="num" id="LN1287">1287</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1288"><td class="num" id="LN1288">1288</td><td class="line">profile_list_destroyed_cb (GtkWidget *manage_profiles_dialog,</td></tr>
+<tr class="codeline" data-linenumber="1289"><td class="num" id="LN1289">1289</td><td class="line"> TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="1290"><td class="num" id="LN1290">1290</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1291"><td class="num" id="LN1291">1291</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (app, G_CALLBACK (profile_list_treeview_refill), app-&gt;manage_profiles_list)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((app), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (profile_list_treeview_refill))), (app-&gt;<br>manage_profiles_list))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1292"><td class="num" id="LN1292">1292</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (app, G_CALLBACK (profile_combo_box_refill), app-&gt;manage_profiles_default_menu)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((app), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (profile_combo_box_refill))), (app-&gt;manage_profiles_default_menu<br>))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1293"><td class="num" id="LN1293">1293</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1294"><td class="num" id="LN1294">1294</td><td class="line"> app-&gt;manage_profiles_dialog = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1295"><td class="num" id="LN1295">1295</td><td class="line"> app-&gt;manage_profiles_list = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1296"><td class="num" id="LN1296">1296</td><td class="line"> app-&gt;manage_profiles_new_button = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1297"><td class="num" id="LN1297">1297</td><td class="line"> app-&gt;manage_profiles_edit_button = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1298"><td class="num" id="LN1298">1298</td><td class="line"> app-&gt;manage_profiles_delete_button = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1299"><td class="num" id="LN1299">1299</td><td class="line"> app-&gt;manage_profiles_default_menu = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1300"><td class="num" id="LN1300">1300</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1301"><td class="num" id="LN1301">1301</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1302"><td class="num" id="LN1302">1302</td><td class="line"><span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1303"><td class="num" id="LN1303">1303</td><td class="line">terminal_app_manage_profiles (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="1304"><td class="num" id="LN1304">1304</td><td class="line"> GtkWindow *transient_parent)</td></tr>
+<tr class="codeline" data-linenumber="1305"><td class="num" id="LN1305">1305</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1306"><td class="num" id="LN1306">1306</td><td class="line"> GObject *dialog;</td></tr>
+<tr class="codeline" data-linenumber="1307"><td class="num" id="LN1307">1307</td><td class="line"> GObject *tree_view_container, *new_button, *edit_button, *remove_button;</td></tr>
+<tr class="codeline" data-linenumber="1308"><td class="num" id="LN1308">1308</td><td class="line"> GObject *default_hbox, *default_label;</td></tr>
+<tr class="codeline" data-linenumber="1309"><td class="num" id="LN1309">1309</td><td class="line"> GtkTreeSelection *selection;</td></tr>
+<tr class="codeline" data-linenumber="1310"><td class="num" id="LN1310">1310</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1311"><td class="num" id="LN1311">1311</td><td class="line"> <span class='keyword'>if</span> (app-&gt;manage_profiles_dialog)</td></tr>
+<tr class="codeline" data-linenumber="1312"><td class="num" id="LN1312">1312</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1313"><td class="num" id="LN1313">1313</td><td class="line"> gtk_window_set_transient_for (<span class='macro'>GTK_WINDOW (app-&gt;manage_profiles_dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;manage_profiles_dialog)), ((gtk_window_get_type (<br>)))))))</span></span>, transient_parent);</td></tr>
+<tr class="codeline" data-linenumber="1314"><td class="num" id="LN1314">1314</td><td class="line"> gtk_window_present (<span class='macro'>GTK_WINDOW (app-&gt;manage_profiles_dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;manage_profiles_dialog)), ((gtk_window_get_type (<br>)))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1315"><td class="num" id="LN1315">1315</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1316"><td class="num" id="LN1316">1316</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1317"><td class="num" id="LN1317">1317</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1318"><td class="num" id="LN1318">1318</td><td class="line"> <span class='keyword'>if</span> (!terminal_util_load_builder_resource (<span class='macro'>TERMINAL_RESOURCES_PATH_PREFIX<span class='macro_popup'>"/org/mate/terminal"</span></span> <span class='macro'>G_DIR_SEPARATOR_S<span class='macro_popup'>"/"</span></span> <span class='string_literal'>"ui/profile-manager.ui"</span>,</td></tr>
+<tr class="codeline" data-linenumber="1319"><td class="num" id="LN1319">1319</td><td class="line"> <span class='string_literal'>"profile-manager"</span>, &amp;dialog,</td></tr>
+<tr class="codeline" data-linenumber="1320"><td class="num" id="LN1320">1320</td><td class="line"> <span class='string_literal'>"profiles-treeview-container"</span>, &amp;tree_view_container,</td></tr>
+<tr class="codeline" data-linenumber="1321"><td class="num" id="LN1321">1321</td><td class="line"> <span class='string_literal'>"new-profile-button"</span>, &amp;new_button,</td></tr>
+<tr class="codeline" data-linenumber="1322"><td class="num" id="LN1322">1322</td><td class="line"> <span class='string_literal'>"edit-profile-button"</span>, &amp;edit_button,</td></tr>
+<tr class="codeline" data-linenumber="1323"><td class="num" id="LN1323">1323</td><td class="line"> <span class='string_literal'>"delete-profile-button"</span>, &amp;remove_button,</td></tr>
+<tr class="codeline" data-linenumber="1324"><td class="num" id="LN1324">1324</td><td class="line"> <span class='string_literal'>"default-profile-hbox"</span>, &amp;default_hbox,</td></tr>
+<tr class="codeline" data-linenumber="1325"><td class="num" id="LN1325">1325</td><td class="line"> <span class='string_literal'>"default-profile-label"</span>, &amp;default_label,</td></tr>
+<tr class="codeline" data-linenumber="1326"><td class="num" id="LN1326">1326</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="1327"><td class="num" id="LN1327">1327</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1328"><td class="num" id="LN1328">1328</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1329"><td class="num" id="LN1329">1329</td><td class="line"> app-&gt;manage_profiles_dialog = <span class='macro'>GTK_WIDGET (dialog)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((dialog)), ((gtk_widget_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1330"><td class="num" id="LN1330">1330</td><td class="line"> app-&gt;manage_profiles_new_button = <span class='macro'>GTK_WIDGET (new_button)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((new_button)), ((gtk_widget_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1331"><td class="num" id="LN1331">1331</td><td class="line"> app-&gt;manage_profiles_edit_button = <span class='macro'>GTK_WIDGET (edit_button)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((edit_button)), ((gtk_widget_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1332"><td class="num" id="LN1332">1332</td><td class="line"> app-&gt;manage_profiles_delete_button = <span class='macro'>GTK_WIDGET (remove_button)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((remove_button)), ((gtk_widget_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1333"><td class="num" id="LN1333">1333</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1334"><td class="num" id="LN1334">1334</td><td class="line"> <span class='macro'>g_signal_connect (dialog, <span class='string_literal'>"response"</span>, G_CALLBACK (profile_list_response_cb), app)<span class='macro_popup'>g_signal_connect_data ((dialog), ("response"), (((GCallback) (<br>profile_list_response_cb))), (app), ((void*)0), (GConnectFlags<br>) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1335"><td class="num" id="LN1335">1335</td><td class="line"> <span class='macro'>g_signal_connect (dialog, <span class='string_literal'>"destroy"</span>, G_CALLBACK (profile_list_destroyed_cb), app)<span class='macro_popup'>g_signal_connect_data ((dialog), ("destroy"), (((GCallback) (<br>profile_list_destroyed_cb))), (app), ((void*)0), (GConnectFlags<br>) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1336"><td class="num" id="LN1336">1336</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1337"><td class="num" id="LN1337">1337</td><td class="line"> app-&gt;manage_profiles_list = profile_list_treeview_create (app);</td></tr>
+<tr class="codeline" data-linenumber="1338"><td class="num" id="LN1338">1338</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1339"><td class="num" id="LN1339">1339</td><td class="line"> selection = gtk_tree_view_get_selection (<span class='macro'>GTK_TREE_VIEW (app-&gt;manage_profiles_list)<span class='macro_popup'>((((GtkTreeView*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;manage_profiles_list)), ((gtk_tree_view_get_type<br> ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1340"><td class="num" id="LN1340">1340</td><td class="line"> <span class='macro'>g_signal_connect (selection, <span class='string_literal'>"changed"</span>, G_CALLBACK (profile_list_selection_changed_cb), app)<span class='macro_popup'>g_signal_connect_data ((selection), ("changed"), (((GCallback<br>) (profile_list_selection_changed_cb))), (app), ((void*)0), (<br>GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1341"><td class="num" id="LN1341">1341</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1342"><td class="num" id="LN1342">1342</td><td class="line"> profile_list_treeview_refill (app, app-&gt;manage_profiles_list);</td></tr>
+<tr class="codeline" data-linenumber="1343"><td class="num" id="LN1343">1343</td><td class="line"> <span class='macro'>g_signal_connect (app, <span class='string_literal'>"profile-list-changed"</span>,<span class='macro_popup'>g_signal_connect_data ((app), ("profile-list-changed"), (((GCallback<br>) (profile_list_treeview_refill))), (app-&gt;manage_profiles_list<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1344"><td class="num" id="LN1344">1344</td><td class="line"> <span class='macro'>G_CALLBACK (profile_list_treeview_refill), app-&gt;manage_profiles_list)<span class='macro_popup'>g_signal_connect_data ((app), ("profile-list-changed"), (((GCallback<br>) (profile_list_treeview_refill))), (app-&gt;manage_profiles_list<br>), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1345"><td class="num" id="LN1345">1345</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1346"><td class="num" id="LN1346">1346</td><td class="line"> <span class='macro'>g_signal_connect (app-&gt;manage_profiles_list, <span class='string_literal'>"row-activated"</span>,<span class='macro_popup'>g_signal_connect_data ((app-&gt;manage_profiles_list), ("row-activated"<br>), (((GCallback) (profile_list_row_activated_cb))), (app), ((<br>void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1347"><td class="num" id="LN1347">1347</td><td class="line"> <span class='macro'>G_CALLBACK (profile_list_row_activated_cb), app)<span class='macro_popup'>g_signal_connect_data ((app-&gt;manage_profiles_list), ("row-activated"<br>), (((GCallback) (profile_list_row_activated_cb))), (app), ((<br>void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1348"><td class="num" id="LN1348">1348</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1349"><td class="num" id="LN1349">1349</td><td class="line"> gtk_container_add (<span class='macro'>GTK_CONTAINER (tree_view_container)<span class='macro_popup'>((((GtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((tree_view_container)), ((gtk_container_get_type ()))))))</span></span>, app-&gt;manage_profiles_list);</td></tr>
+<tr class="codeline" data-linenumber="1350"><td class="num" id="LN1350">1350</td><td class="line"> gtk_widget_show (app-&gt;manage_profiles_list);</td></tr>
+<tr class="codeline" data-linenumber="1351"><td class="num" id="LN1351">1351</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1352"><td class="num" id="LN1352">1352</td><td class="line"> <span class='macro'>g_signal_connect (new_button, <span class='string_literal'>"clicked"</span>,<span class='macro_popup'>g_signal_connect_data ((new_button), ("clicked"), (((GCallback<br>) (profile_list_new_button_clicked_cb))), (app-&gt;manage_profiles_list<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1353"><td class="num" id="LN1353">1353</td><td class="line"> <span class='macro'>G_CALLBACK (profile_list_new_button_clicked_cb),<span class='macro_popup'>g_signal_connect_data ((new_button), ("clicked"), (((GCallback<br>) (profile_list_new_button_clicked_cb))), (app-&gt;manage_profiles_list<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1354"><td class="num" id="LN1354">1354</td><td class="line"> <span class='macro'>app-&gt;manage_profiles_list)<span class='macro_popup'>g_signal_connect_data ((new_button), ("clicked"), (((GCallback<br>) (profile_list_new_button_clicked_cb))), (app-&gt;manage_profiles_list<br>), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1355"><td class="num" id="LN1355">1355</td><td class="line"> <span class='macro'>g_signal_connect (edit_button, <span class='string_literal'>"clicked"</span>,<span class='macro_popup'>g_signal_connect_data ((edit_button), ("clicked"), (((GCallback<br>) (profile_list_edit_button_clicked_cb))), (app-&gt;manage_profiles_list<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1356"><td class="num" id="LN1356">1356</td><td class="line"> <span class='macro'>G_CALLBACK (profile_list_edit_button_clicked_cb),<span class='macro_popup'>g_signal_connect_data ((edit_button), ("clicked"), (((GCallback<br>) (profile_list_edit_button_clicked_cb))), (app-&gt;manage_profiles_list<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1357"><td class="num" id="LN1357">1357</td><td class="line"> <span class='macro'>app-&gt;manage_profiles_list)<span class='macro_popup'>g_signal_connect_data ((edit_button), ("clicked"), (((GCallback<br>) (profile_list_edit_button_clicked_cb))), (app-&gt;manage_profiles_list<br>), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1358"><td class="num" id="LN1358">1358</td><td class="line"> <span class='macro'>g_signal_connect (remove_button, <span class='string_literal'>"clicked"</span>,<span class='macro_popup'>g_signal_connect_data ((remove_button), ("clicked"), (((GCallback<br>) (profile_list_delete_button_clicked_cb))), (app-&gt;manage_profiles_list<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1359"><td class="num" id="LN1359">1359</td><td class="line"> <span class='macro'>G_CALLBACK (profile_list_delete_button_clicked_cb),<span class='macro_popup'>g_signal_connect_data ((remove_button), ("clicked"), (((GCallback<br>) (profile_list_delete_button_clicked_cb))), (app-&gt;manage_profiles_list<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1360"><td class="num" id="LN1360">1360</td><td class="line"> <span class='macro'>app-&gt;manage_profiles_list)<span class='macro_popup'>g_signal_connect_data ((remove_button), ("clicked"), (((GCallback<br>) (profile_list_delete_button_clicked_cb))), (app-&gt;manage_profiles_list<br>), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1361"><td class="num" id="LN1361">1361</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1362"><td class="num" id="LN1362">1362</td><td class="line"> app-&gt;manage_profiles_default_menu = profile_combo_box_new (app);</td></tr>
+<tr class="codeline" data-linenumber="1363"><td class="num" id="LN1363">1363</td><td class="line"> <span class='macro'>g_signal_connect (app-&gt;manage_profiles_default_menu, <span class='string_literal'>"changed"</span>,<span class='macro_popup'>g_signal_connect_data ((app-&gt;manage_profiles_default_menu)<br>, ("changed"), (((GCallback) (profile_combo_box_changed_cb)))<br>, (app), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1364"><td class="num" id="LN1364">1364</td><td class="line"> <span class='macro'>G_CALLBACK (profile_combo_box_changed_cb), app)<span class='macro_popup'>g_signal_connect_data ((app-&gt;manage_profiles_default_menu)<br>, ("changed"), (((GCallback) (profile_combo_box_changed_cb)))<br>, (app), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1365"><td class="num" id="LN1365">1365</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1366"><td class="num" id="LN1366">1366</td><td class="line"> gtk_box_pack_start (<span class='macro'>GTK_BOX (default_hbox)<span class='macro_popup'>((((GtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((default_hbox)), ((gtk_box_get_type ()))))))</span></span>, app-&gt;manage_profiles_default_menu, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, 0);</td></tr>
+<tr class="codeline" data-linenumber="1367"><td class="num" id="LN1367">1367</td><td class="line"> gtk_widget_show (app-&gt;manage_profiles_default_menu);</td></tr>
+<tr class="codeline" data-linenumber="1368"><td class="num" id="LN1368">1368</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1369"><td class="num" id="LN1369">1369</td><td class="line"> gtk_label_set_mnemonic_widget (<span class='macro'>GTK_LABEL (default_label)<span class='macro_popup'>((((GtkLabel*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((default_label)), ((gtk_label_get_type ()))))))</span></span>, app-&gt;manage_profiles_default_menu);</td></tr>
+<tr class="codeline" data-linenumber="1370"><td class="num" id="LN1370">1370</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1371"><td class="num" id="LN1371">1371</td><td class="line"> gtk_widget_grab_focus (app-&gt;manage_profiles_list);</td></tr>
+<tr class="codeline" data-linenumber="1372"><td class="num" id="LN1372">1372</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1373"><td class="num" id="LN1373">1373</td><td class="line"> gtk_window_set_transient_for (<span class='macro'>GTK_WINDOW (app-&gt;manage_profiles_dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;manage_profiles_dialog)), ((gtk_window_get_type (<br>)))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1374"><td class="num" id="LN1374">1374</td><td class="line"> transient_parent);</td></tr>
+<tr class="codeline" data-linenumber="1375"><td class="num" id="LN1375">1375</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1376"><td class="num" id="LN1376">1376</td><td class="line"> gtk_window_present (<span class='macro'>GTK_WINDOW (app-&gt;manage_profiles_dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;manage_profiles_dialog)), ((gtk_window_get_type (<br>)))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1377"><td class="num" id="LN1377">1377</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1378"><td class="num" id="LN1378">1378</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1379"><td class="num" id="LN1379">1379</td><td class="line"><span class='directive'>#ifdef <span class='macro'>HAVE_SMCLIENT<span class='macro_popup'>1</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1380"><td class="num" id="LN1380">1380</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1381"><td class="num" id="LN1381">1381</td><td class="line">terminal_app_save_state_cb (EggSMClient *client,</td></tr>
+<tr class="codeline" data-linenumber="1382"><td class="num" id="LN1382">1382</td><td class="line"> GKeyFile *key_file,</td></tr>
+<tr class="codeline" data-linenumber="1383"><td class="num" id="LN1383">1383</td><td class="line"> TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="1384"><td class="num" id="LN1384">1384</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1385"><td class="num" id="LN1385">1385</td><td class="line"> terminal_app_save_config (app, key_file);</td></tr>
+<tr class="codeline" data-linenumber="1386"><td class="num" id="LN1386">1386</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1387"><td class="num" id="LN1387">1387</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1388"><td class="num" id="LN1388">1388</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1389"><td class="num" id="LN1389">1389</td><td class="line">terminal_app_client_quit_cb (EggSMClient *client,</td></tr>
+<tr class="codeline" data-linenumber="1390"><td class="num" id="LN1390">1390</td><td class="line"> TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="1391"><td class="num" id="LN1391">1391</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1392"><td class="num" id="LN1392">1392</td><td class="line"> g_signal_emit (app, signals[QUIT], 0);</td></tr>
+<tr class="codeline" data-linenumber="1393"><td class="num" id="LN1393">1393</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1394"><td class="num" id="LN1394">1394</td><td class="line"><span class='directive'>#endif /* HAVE_SMCLIENT */</span></td></tr>
+<tr class="codeline" data-linenumber="1395"><td class="num" id="LN1395">1395</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1396"><td class="num" id="LN1396">1396</td><td class="line"><span class='comment'>/* Class implementation */</span></td></tr>
+<tr class="codeline" data-linenumber="1397"><td class="num" id="LN1397">1397</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1398"><td class="num" id="LN1398">1398</td><td class="line"><span class='macro'>G_DEFINE_TYPE (TerminalApp, terminal_app, G_TYPE_OBJECT)<span class='macro_popup'>static void terminal_app_init (TerminalApp *self); static void<br> terminal_app_class_init (TerminalAppClass *klass); static GType<br> terminal_app_get_type_once (void); static gpointer terminal_app_parent_class<br> = ((void*)0); static gint TerminalApp_private_offset; static<br> void terminal_app_class_intern_init (gpointer klass) { terminal_app_parent_class<br> = g_type_class_peek_parent (klass); if (TerminalApp_private_offset<br> != 0) g_type_class_adjust_private_offset (klass, &amp;TerminalApp_private_offset<br>); terminal_app_class_init ((TerminalAppClass*) klass); } __attribute__<br> ((__unused__)) static inline gpointer terminal_app_get_instance_private<br> (TerminalApp *self) { return (((gpointer) ((guint8*) (self) +<br> (glong) (TerminalApp_private_offset)))); } GType terminal_app_get_type<br> (void) { static gsize static_g_define_type_id = 0; if ((__extension__<br> ({ _Static_assert (sizeof *(&amp;static_g_define_type_id) ==<br> sizeof (gpointer), "Expression evaluates to false"); (void) (<br>0 ? (gpointer) *(&amp;static_g_define_type_id) : ((void*)0));<br> (!(__extension__ ({ _Static_assert (sizeof *(&amp;static_g_define_type_id<br>) == sizeof (gpointer), "Expression evaluates to false"); __typeof__<br> (*(&amp;static_g_define_type_id)) gapg_temp_newval; __typeof__<br> ((&amp;static_g_define_type_id)) gapg_temp_atomic = (&amp;static_g_define_type_id<br>); __atomic_load (gapg_temp_atomic, &amp;gapg_temp_newval, 5)<br>; gapg_temp_newval; })) &amp;&amp; g_once_init_enter (&amp;static_g_define_type_id<br>)); }))) { GType g_define_type_id = terminal_app_get_type_once<br> (); (__extension__ ({ _Static_assert (sizeof *(&amp;static_g_define_type_id<br>) == sizeof (gpointer), "Expression evaluates to false"); 0 ?<br> (void) (*(&amp;static_g_define_type_id) = (g_define_type_id)<br>) : (void) 0; g_once_init_leave ((&amp;static_g_define_type_id<br>), (gsize) (g_define_type_id)); })); } return static_g_define_type_id<br>; } __attribute__ ((__noinline__)) static GType terminal_app_get_type_once<br> (void) { GType g_define_type_id = g_type_register_static_simple<br> (((GType) ((20) &lt;&lt; (2))), g_intern_static_string ("TerminalApp"<br>), sizeof (TerminalAppClass), (GClassInitFunc)(void (*)(void)<br>) terminal_app_class_intern_init, sizeof (TerminalApp), (GInstanceInitFunc<br>)(void (*)(void)) terminal_app_init, (GTypeFlags) 0); { {{};}<br> } return g_define_type_id; }</span></span></td></tr>
+<tr class="codeline" data-linenumber="1399"><td class="num" id="LN1399">1399</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1400"><td class="num" id="LN1400">1400</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1401"><td class="num" id="LN1401">1401</td><td class="line">terminal_app_init (TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="1402"><td class="num" id="LN1402">1402</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1403"><td class="num" id="LN1403">1403</td><td class="line"> global_app = app;</td></tr>
+<tr class="codeline" data-linenumber="1404"><td class="num" id="LN1404">1404</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1405"><td class="num" id="LN1405">1405</td><td class="line"> gtk_window_set_default_icon_name (<span class='macro'>MATE_TERMINAL_ICON_NAME<span class='macro_popup'>"utilities-terminal"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1406"><td class="num" id="LN1406">1406</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1407"><td class="num" id="LN1407">1407</td><td class="line"> <span class='comment'>/* Initialise defaults */</span></td></tr>
+<tr class="codeline" data-linenumber="1408"><td class="num" id="LN1408">1408</td><td class="line"> app-&gt;enable_mnemonics = <span class='macro'>DEFAULT_ENABLE_MNEMONICS<span class='macro_popup'>((!(0)))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1409"><td class="num" id="LN1409">1409</td><td class="line"> app-&gt;enable_menu_accels = <span class='macro'>DEFAULT_ENABLE_MENU_BAR_ACCEL<span class='macro_popup'>((!(0)))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1410"><td class="num" id="LN1410">1410</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1411"><td class="num" id="LN1411">1411</td><td class="line"> app-&gt;profiles = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref);</td></tr>
+<tr class="codeline" data-linenumber="1412"><td class="num" id="LN1412">1412</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1413"><td class="num" id="LN1413">1413</td><td class="line"> app-&gt;encodings = terminal_encodings_get_builtins ();</td></tr>
+<tr class="codeline" data-linenumber="1414"><td class="num" id="LN1414">1414</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1415"><td class="num" id="LN1415">1415</td><td class="line"> settings_global = g_settings_new (<span class='macro'>CONF_GLOBAL_SCHEMA<span class='macro_popup'>"org.mate.terminal" ".global"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1416"><td class="num" id="LN1416">1416</td><td class="line"> app-&gt;settings_font = g_settings_new (<span class='macro'>MONOSPACE_FONT_SCHEMA<span class='macro_popup'>"org.mate.interface"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1417"><td class="num" id="LN1417">1417</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1418"><td class="num" id="LN1418">1418</td><td class="line"> <span class='macro'>g_signal_connect (settings_global,<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "profile-list"<br>), (((GCallback) (terminal_app_profile_list_notify_cb))), (app<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1419"><td class="num" id="LN1419">1419</td><td class="line"> <span class='string_literal'><span class='macro'>"changed::"</span> PROFILE_LIST_KEY,<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "profile-list"<br>), (((GCallback) (terminal_app_profile_list_notify_cb))), (app<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1420"><td class="num" id="LN1420">1420</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_app_profile_list_notify_cb),<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "profile-list"<br>), (((GCallback) (terminal_app_profile_list_notify_cb))), (app<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1421"><td class="num" id="LN1421">1421</td><td class="line"> <span class='macro'>app)<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "profile-list"<br>), (((GCallback) (terminal_app_profile_list_notify_cb))), (app<br>), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1422"><td class="num" id="LN1422">1422</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1423"><td class="num" id="LN1423">1423</td><td class="line"> <span class='macro'>g_signal_connect (settings_global,<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "default-profile"<br>), (((GCallback) (terminal_app_default_profile_notify_cb))), (<br>app), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1424"><td class="num" id="LN1424">1424</td><td class="line"> <span class='string_literal'><span class='macro'>"changed::"</span> DEFAULT_PROFILE_KEY,<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "default-profile"<br>), (((GCallback) (terminal_app_default_profile_notify_cb))), (<br>app), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1425"><td class="num" id="LN1425">1425</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_app_default_profile_notify_cb),<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "default-profile"<br>), (((GCallback) (terminal_app_default_profile_notify_cb))), (<br>app), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1426"><td class="num" id="LN1426">1426</td><td class="line"> <span class='macro'>app)<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "default-profile"<br>), (((GCallback) (terminal_app_default_profile_notify_cb))), (<br>app), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1427"><td class="num" id="LN1427">1427</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1428"><td class="num" id="LN1428">1428</td><td class="line"> <span class='macro'>g_signal_connect (settings_global,<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "active-encodings"<br>), (((GCallback) (terminal_app_encoding_list_notify_cb))), (app<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1429"><td class="num" id="LN1429">1429</td><td class="line"> <span class='string_literal'><span class='macro'>"changed::"</span> ENCODING_LIST_KEY,<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "active-encodings"<br>), (((GCallback) (terminal_app_encoding_list_notify_cb))), (app<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1430"><td class="num" id="LN1430">1430</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_app_encoding_list_notify_cb),<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "active-encodings"<br>), (((GCallback) (terminal_app_encoding_list_notify_cb))), (app<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1431"><td class="num" id="LN1431">1431</td><td class="line"> <span class='macro'>app)<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "active-encodings"<br>), (((GCallback) (terminal_app_encoding_list_notify_cb))), (app<br>), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1432"><td class="num" id="LN1432">1432</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1433"><td class="num" id="LN1433">1433</td><td class="line"> <span class='macro'>g_signal_connect (app-&gt;settings_font,<span class='macro_popup'>g_signal_connect_data ((app-&gt;settings_font), ("changed::" "monospace-font-name"<br>), (((GCallback) (terminal_app_system_font_notify_cb))), (app<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1434"><td class="num" id="LN1434">1434</td><td class="line"> <span class='string_literal'><span class='macro'>"changed::"</span> MONOSPACE_FONT_KEY,<span class='macro_popup'>g_signal_connect_data ((app-&gt;settings_font), ("changed::" "monospace-font-name"<br>), (((GCallback) (terminal_app_system_font_notify_cb))), (app<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1435"><td class="num" id="LN1435">1435</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_app_system_font_notify_cb),<span class='macro_popup'>g_signal_connect_data ((app-&gt;settings_font), ("changed::" "monospace-font-name"<br>), (((GCallback) (terminal_app_system_font_notify_cb))), (app<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1436"><td class="num" id="LN1436">1436</td><td class="line"> <span class='macro'>app)<span class='macro_popup'>g_signal_connect_data ((app-&gt;settings_font), ("changed::" "monospace-font-name"<br>), (((GCallback) (terminal_app_system_font_notify_cb))), (app<br>), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1437"><td class="num" id="LN1437">1437</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1438"><td class="num" id="LN1438">1438</td><td class="line"> <span class='macro'>g_signal_connect (settings_global,<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "use-mnemonics"<br>), (((GCallback) (terminal_app_enable_mnemonics_notify_cb))),<br> (app), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1439"><td class="num" id="LN1439">1439</td><td class="line"> <span class='string_literal'><span class='macro'>"changed::"</span> ENABLE_MNEMONICS_KEY,<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "use-mnemonics"<br>), (((GCallback) (terminal_app_enable_mnemonics_notify_cb))),<br> (app), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1440"><td class="num" id="LN1440">1440</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_app_enable_mnemonics_notify_cb),<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "use-mnemonics"<br>), (((GCallback) (terminal_app_enable_mnemonics_notify_cb))),<br> (app), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1441"><td class="num" id="LN1441">1441</td><td class="line"> <span class='macro'>app)<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "use-mnemonics"<br>), (((GCallback) (terminal_app_enable_mnemonics_notify_cb))),<br> (app), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1442"><td class="num" id="LN1442">1442</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1443"><td class="num" id="LN1443">1443</td><td class="line"> <span class='macro'>g_signal_connect (settings_global,<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "use-menu-accelerators"<br>), (((GCallback) (terminal_app_enable_menu_accels_notify_cb))<br>), (app), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1444"><td class="num" id="LN1444">1444</td><td class="line"> <span class='string_literal'><span class='macro'>"changed::"</span> ENABLE_MENU_BAR_ACCEL_KEY,<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "use-menu-accelerators"<br>), (((GCallback) (terminal_app_enable_menu_accels_notify_cb))<br>), (app), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1445"><td class="num" id="LN1445">1445</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_app_enable_menu_accels_notify_cb),<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "use-menu-accelerators"<br>), (((GCallback) (terminal_app_enable_menu_accels_notify_cb))<br>), (app), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1446"><td class="num" id="LN1446">1446</td><td class="line"> <span class='macro'>app)<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "use-menu-accelerators"<br>), (((GCallback) (terminal_app_enable_menu_accels_notify_cb))<br>), (app), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1447"><td class="num" id="LN1447">1447</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1448"><td class="num" id="LN1448">1448</td><td class="line"> <span class='comment'>/* Load the settings */</span></td></tr>
+<tr class="codeline" data-linenumber="1449"><td class="num" id="LN1449">1449</td><td class="line"> terminal_app_profile_list_notify_cb (settings_global,</td></tr>
+<tr class="codeline" data-linenumber="1450"><td class="num" id="LN1450">1450</td><td class="line"> <span class='macro'>PROFILE_LIST_KEY<span class='macro_popup'>"profile-list"</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1451"><td class="num" id="LN1451">1451</td><td class="line"> app);</td></tr>
+<tr class="codeline" data-linenumber="1452"><td class="num" id="LN1452">1452</td><td class="line"> terminal_app_default_profile_notify_cb (settings_global,</td></tr>
+<tr class="codeline" data-linenumber="1453"><td class="num" id="LN1453">1453</td><td class="line"> <span class='macro'>DEFAULT_PROFILE_KEY<span class='macro_popup'>"default-profile"</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1454"><td class="num" id="LN1454">1454</td><td class="line"> app);</td></tr>
+<tr class="codeline" data-linenumber="1455"><td class="num" id="LN1455">1455</td><td class="line"> terminal_app_encoding_list_notify_cb (settings_global,</td></tr>
+<tr class="codeline" data-linenumber="1456"><td class="num" id="LN1456">1456</td><td class="line"> <span class='macro'>ENCODING_LIST_KEY<span class='macro_popup'>"active-encodings"</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1457"><td class="num" id="LN1457">1457</td><td class="line"> app);</td></tr>
+<tr class="codeline" data-linenumber="1458"><td class="num" id="LN1458">1458</td><td class="line"> terminal_app_system_font_notify_cb (app-&gt;settings_font,</td></tr>
+<tr class="codeline" data-linenumber="1459"><td class="num" id="LN1459">1459</td><td class="line"> <span class='macro'>MONOSPACE_FONT_KEY<span class='macro_popup'>"monospace-font-name"</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1460"><td class="num" id="LN1460">1460</td><td class="line"> app);</td></tr>
+<tr class="codeline" data-linenumber="1461"><td class="num" id="LN1461">1461</td><td class="line"> terminal_app_enable_menu_accels_notify_cb (settings_global,</td></tr>
+<tr class="codeline" data-linenumber="1462"><td class="num" id="LN1462">1462</td><td class="line"> <span class='macro'>ENABLE_MENU_BAR_ACCEL_KEY<span class='macro_popup'>"use-menu-accelerators"</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1463"><td class="num" id="LN1463">1463</td><td class="line"> app);</td></tr>
+<tr class="codeline" data-linenumber="1464"><td class="num" id="LN1464">1464</td><td class="line"> terminal_app_enable_mnemonics_notify_cb (settings_global,</td></tr>
+<tr class="codeline" data-linenumber="1465"><td class="num" id="LN1465">1465</td><td class="line"> <span class='macro'>ENABLE_MNEMONICS_KEY<span class='macro_popup'>"use-mnemonics"</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1466"><td class="num" id="LN1466">1466</td><td class="line"> app);</td></tr>
+<tr class="codeline" data-linenumber="1467"><td class="num" id="LN1467">1467</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1468"><td class="num" id="LN1468">1468</td><td class="line"> <span class='comment'>/* Ensure we have valid settings */</span></td></tr>
+<tr class="codeline" data-linenumber="1469"><td class="num" id="LN1469">1469</td><td class="line"> <span class='macro'>g_assert (app-&gt;default_profile_id != NULL)<span class='macro_popup'>do { if (app-&gt;default_profile_id != ((void*)0)) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-app.c", 1469, ((const char*) (__func__<br>)), "app-&gt;default_profile_id != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1470"><td class="num" id="LN1470">1470</td><td class="line"> <span class='macro'>g_assert (app-&gt;system_font_desc != NULL)<span class='macro_popup'>do { if (app-&gt;system_font_desc != ((void*)0)) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-app.c", 1470, ((const char*) (__func__<br>)), "app-&gt;system_font_desc != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1471"><td class="num" id="LN1471">1471</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1472"><td class="num" id="LN1472">1472</td><td class="line"> terminal_accels_init ();</td></tr>
+<tr class="codeline" data-linenumber="1473"><td class="num" id="LN1473">1473</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1474"><td class="num" id="LN1474">1474</td><td class="line"><span class='directive'>#ifdef <span class='macro'>HAVE_SMCLIENT<span class='macro_popup'>1</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1475"><td class="num" id="LN1475">1475</td><td class="line"> EggSMClient *sm_client;</td></tr>
+<tr class="codeline" data-linenumber="1476"><td class="num" id="LN1476">1476</td><td class="line"> <span class='keyword'>char</span> *desktop_file;</td></tr>
+<tr class="codeline" data-linenumber="1477"><td class="num" id="LN1477">1477</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1478"><td class="num" id="LN1478">1478</td><td class="line"> desktop_file = g_build_filename (<span class='macro'>TERM_DATADIR<span class='macro_popup'>"/usr/local/share"</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1479"><td class="num" id="LN1479">1479</td><td class="line"> <span class='string_literal'>"applications"</span>,</td></tr>
+<tr class="codeline" data-linenumber="1480"><td class="num" id="LN1480">1480</td><td class="line"> <span class='macro'>PACKAGE<span class='macro_popup'>"mate-terminal"</span></span> <span class='string_literal'>".desktop"</span>,</td></tr>
+<tr class="codeline" data-linenumber="1481"><td class="num" id="LN1481">1481</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1482"><td class="num" id="LN1482">1482</td><td class="line"> egg_set_desktop_file_without_defaults (desktop_file);</td></tr>
+<tr class="codeline" data-linenumber="1483"><td class="num" id="LN1483">1483</td><td class="line"> g_free (desktop_file);</td></tr>
+<tr class="codeline" data-linenumber="1484"><td class="num" id="LN1484">1484</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1485"><td class="num" id="LN1485">1485</td><td class="line"> sm_client = egg_sm_client_get ();</td></tr>
+<tr class="codeline" data-linenumber="1486"><td class="num" id="LN1486">1486</td><td class="line"> <span class='macro'>g_signal_connect (sm_client, <span class='string_literal'>"save-state"</span>,<span class='macro_popup'>g_signal_connect_data ((sm_client), ("save-state"), (((GCallback<br>) (terminal_app_save_state_cb))), (app), ((void*)0), (GConnectFlags<br>) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1487"><td class="num" id="LN1487">1487</td><td class="line"> <span class='macro'>G_CALLBACK (terminal_app_save_state_cb), app)<span class='macro_popup'>g_signal_connect_data ((sm_client), ("save-state"), (((GCallback<br>) (terminal_app_save_state_cb))), (app), ((void*)0), (GConnectFlags<br>) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1488"><td class="num" id="LN1488">1488</td><td class="line"> <span class='macro'>g_signal_connect (sm_client, <span class='string_literal'>"quit"</span>,<span class='macro_popup'>g_signal_connect_data ((sm_client), ("quit"), (((GCallback) (<br>terminal_app_client_quit_cb))), (app), ((void*)0), (GConnectFlags<br>) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1489"><td class="num" id="LN1489">1489</td><td class="line"> <span class='macro'>G_CALLBACK (terminal_app_client_quit_cb), app)<span class='macro_popup'>g_signal_connect_data ((sm_client), ("quit"), (((GCallback) (<br>terminal_app_client_quit_cb))), (app), ((void*)0), (GConnectFlags<br>) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1490"><td class="num" id="LN1490">1490</td><td class="line"><span class='directive'>#endif /* HAVE_SMCLIENT */</span></td></tr>
+<tr class="codeline" data-linenumber="1491"><td class="num" id="LN1491">1491</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1492"><td class="num" id="LN1492">1492</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1493"><td class="num" id="LN1493">1493</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1494"><td class="num" id="LN1494">1494</td><td class="line">terminal_app_finalize (GObject *object)</td></tr>
+<tr class="codeline" data-linenumber="1495"><td class="num" id="LN1495">1495</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1496"><td class="num" id="LN1496">1496</td><td class="line"> TerminalApp *app = <span class='macro'>TERMINAL_APP (object)<span class='macro_popup'>((((TerminalApp*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((object)), ((terminal_app_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1497"><td class="num" id="LN1497">1497</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1498"><td class="num" id="LN1498">1498</td><td class="line"><span class='directive'>#ifdef <span class='macro'>HAVE_SMCLIENT<span class='macro_popup'>1</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1499"><td class="num" id="LN1499">1499</td><td class="line"> EggSMClient *sm_client;</td></tr>
+<tr class="codeline" data-linenumber="1500"><td class="num" id="LN1500">1500</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1501"><td class="num" id="LN1501">1501</td><td class="line"> sm_client = egg_sm_client_get ();</td></tr>
+<tr class="codeline" data-linenumber="1502"><td class="num" id="LN1502">1502</td><td class="line"> g_signal_handlers_disconnect_matched (sm_client, G_SIGNAL_MATCH_DATA,</td></tr>
+<tr class="codeline" data-linenumber="1503"><td class="num" id="LN1503">1503</td><td class="line"> 0, 0, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, app);</td></tr>
+<tr class="codeline" data-linenumber="1504"><td class="num" id="LN1504">1504</td><td class="line"><span class='directive'>#endif /* HAVE_SMCLIENT */</span></td></tr>
+<tr class="codeline" data-linenumber="1505"><td class="num" id="LN1505">1505</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1506"><td class="num" id="LN1506">1506</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (settings_global,<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_profile_list_notify_cb))), (app<br>))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1507"><td class="num" id="LN1507">1507</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_app_profile_list_notify_cb),<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_profile_list_notify_cb))), (app<br>))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1508"><td class="num" id="LN1508">1508</td><td class="line"> <span class='macro'>app)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_profile_list_notify_cb))), (app<br>))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1509"><td class="num" id="LN1509">1509</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (settings_global,<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_default_profile_notify_cb))),<br> (app))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1510"><td class="num" id="LN1510">1510</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_app_default_profile_notify_cb),<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_default_profile_notify_cb))),<br> (app))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1511"><td class="num" id="LN1511">1511</td><td class="line"> <span class='macro'>app)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_default_profile_notify_cb))),<br> (app))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1512"><td class="num" id="LN1512">1512</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (settings_global,<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_encoding_list_notify_cb))), (<br>app))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1513"><td class="num" id="LN1513">1513</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_app_encoding_list_notify_cb),<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_encoding_list_notify_cb))), (<br>app))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1514"><td class="num" id="LN1514">1514</td><td class="line"> <span class='macro'>app)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_encoding_list_notify_cb))), (<br>app))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1515"><td class="num" id="LN1515">1515</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (app-&gt;settings_font,<span class='macro_popup'>g_signal_handlers_disconnect_matched ((app-&gt;settings_font)<br>, (GSignalMatchType) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA<br>), 0, 0, ((void*)0), (((GCallback) (terminal_app_system_font_notify_cb<br>))), (app))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1516"><td class="num" id="LN1516">1516</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_app_system_font_notify_cb),<span class='macro_popup'>g_signal_handlers_disconnect_matched ((app-&gt;settings_font)<br>, (GSignalMatchType) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA<br>), 0, 0, ((void*)0), (((GCallback) (terminal_app_system_font_notify_cb<br>))), (app))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1517"><td class="num" id="LN1517">1517</td><td class="line"> <span class='macro'>app)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((app-&gt;settings_font)<br>, (GSignalMatchType) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA<br>), 0, 0, ((void*)0), (((GCallback) (terminal_app_system_font_notify_cb<br>))), (app))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1518"><td class="num" id="LN1518">1518</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (settings_global,<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_enable_menu_accels_notify_cb)<br>)), (app))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1519"><td class="num" id="LN1519">1519</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_app_enable_menu_accels_notify_cb),<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_enable_menu_accels_notify_cb)<br>)), (app))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1520"><td class="num" id="LN1520">1520</td><td class="line"> <span class='macro'>app)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_enable_menu_accels_notify_cb)<br>)), (app))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1521"><td class="num" id="LN1521">1521</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (settings_global,<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_enable_mnemonics_notify_cb)))<br>, (app))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1522"><td class="num" id="LN1522">1522</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_app_enable_mnemonics_notify_cb),<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_enable_mnemonics_notify_cb)))<br>, (app))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1523"><td class="num" id="LN1523">1523</td><td class="line"> <span class='macro'>app)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_enable_mnemonics_notify_cb)))<br>, (app))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1524"><td class="num" id="LN1524">1524</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1525"><td class="num" id="LN1525">1525</td><td class="line"> g_object_unref (settings_global);</td></tr>
+<tr class="codeline" data-linenumber="1526"><td class="num" id="LN1526">1526</td><td class="line"> g_object_unref (app-&gt;settings_font);</td></tr>
+<tr class="codeline" data-linenumber="1527"><td class="num" id="LN1527">1527</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1528"><td class="num" id="LN1528">1528</td><td class="line"> g_free (app-&gt;default_profile_id);</td></tr>
+<tr class="codeline" data-linenumber="1529"><td class="num" id="LN1529">1529</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1530"><td class="num" id="LN1530">1530</td><td class="line"> g_hash_table_destroy (app-&gt;profiles);</td></tr>
+<tr class="codeline" data-linenumber="1531"><td class="num" id="LN1531">1531</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1532"><td class="num" id="LN1532">1532</td><td class="line"> g_hash_table_destroy (app-&gt;encodings);</td></tr>
+<tr class="codeline" data-linenumber="1533"><td class="num" id="LN1533">1533</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1534"><td class="num" id="LN1534">1534</td><td class="line"> pango_font_description_free (app-&gt;system_font_desc);</td></tr>
+<tr class="codeline" data-linenumber="1535"><td class="num" id="LN1535">1535</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1536"><td class="num" id="LN1536">1536</td><td class="line"> terminal_accels_shutdown ();</td></tr>
+<tr class="codeline" data-linenumber="1537"><td class="num" id="LN1537">1537</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1538"><td class="num" id="LN1538">1538</td><td class="line"> <span class='macro'>G_OBJECT_CLASS (terminal_app_parent_class)<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((terminal_app_parent_class)), (((GType) ((20) &lt;&lt; (2<br>))))))))</span></span>-&gt;finalize (object);</td></tr>
+<tr class="codeline" data-linenumber="1539"><td class="num" id="LN1539">1539</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1540"><td class="num" id="LN1540">1540</td><td class="line"> global_app = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1541"><td class="num" id="LN1541">1541</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1542"><td class="num" id="LN1542">1542</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1543"><td class="num" id="LN1543">1543</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1544"><td class="num" id="LN1544">1544</td><td class="line">terminal_app_get_property (GObject *object,</td></tr>
+<tr class="codeline" data-linenumber="1545"><td class="num" id="LN1545">1545</td><td class="line"> guint prop_id,</td></tr>
+<tr class="codeline" data-linenumber="1546"><td class="num" id="LN1546">1546</td><td class="line"> GValue *value,</td></tr>
+<tr class="codeline" data-linenumber="1547"><td class="num" id="LN1547">1547</td><td class="line"> GParamSpec *pspec)</td></tr>
+<tr class="codeline" data-linenumber="1548"><td class="num" id="LN1548">1548</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1549"><td class="num" id="LN1549">1549</td><td class="line"> TerminalApp *app = <span class='macro'>TERMINAL_APP (object)<span class='macro_popup'>((((TerminalApp*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((object)), ((terminal_app_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1550"><td class="num" id="LN1550">1550</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1551"><td class="num" id="LN1551">1551</td><td class="line"> <span class='keyword'>switch</span> (prop_id)</td></tr>
+<tr class="codeline" data-linenumber="1552"><td class="num" id="LN1552">1552</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1553"><td class="num" id="LN1553">1553</td><td class="line"> <span class='keyword'>case</span> PROP_SYSTEM_FONT:</td></tr>
+<tr class="codeline" data-linenumber="1554"><td class="num" id="LN1554">1554</td><td class="line"> <span class='keyword'>if</span> (app-&gt;system_font_desc)</td></tr>
+<tr class="codeline" data-linenumber="1555"><td class="num" id="LN1555">1555</td><td class="line"> g_value_set_boxed (value, app-&gt;system_font_desc);</td></tr>
+<tr class="codeline" data-linenumber="1556"><td class="num" id="LN1556">1556</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="1557"><td class="num" id="LN1557">1557</td><td class="line"> g_value_take_boxed (value, pango_font_description_from_string (<span class='macro'>DEFAULT_MONOSPACE_FONT<span class='macro_popup'>("Monospace 10")</span></span>));</td></tr>
+<tr class="codeline" data-linenumber="1558"><td class="num" id="LN1558">1558</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1559"><td class="num" id="LN1559">1559</td><td class="line"> <span class='keyword'>case</span> PROP_ENABLE_MENU_BAR_ACCEL:</td></tr>
+<tr class="codeline" data-linenumber="1560"><td class="num" id="LN1560">1560</td><td class="line"> g_value_set_boolean (value, app-&gt;enable_menu_accels);</td></tr>
+<tr class="codeline" data-linenumber="1561"><td class="num" id="LN1561">1561</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1562"><td class="num" id="LN1562">1562</td><td class="line"> <span class='keyword'>case</span> PROP_ENABLE_MNEMONICS:</td></tr>
+<tr class="codeline" data-linenumber="1563"><td class="num" id="LN1563">1563</td><td class="line"> g_value_set_boolean (value, app-&gt;enable_mnemonics);</td></tr>
+<tr class="codeline" data-linenumber="1564"><td class="num" id="LN1564">1564</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1565"><td class="num" id="LN1565">1565</td><td class="line"> <span class='keyword'>case</span> PROP_DEFAULT_PROFILE:</td></tr>
+<tr class="codeline" data-linenumber="1566"><td class="num" id="LN1566">1566</td><td class="line"> g_value_set_object (value, app-&gt;default_profile);</td></tr>
+<tr class="codeline" data-linenumber="1567"><td class="num" id="LN1567">1567</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1568"><td class="num" id="LN1568">1568</td><td class="line"> <span class='keyword'>default</span>:</td></tr>
+<tr class="codeline" data-linenumber="1569"><td class="num" id="LN1569">1569</td><td class="line"> <span class='macro'>G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec)<span class='macro_popup'>do { GObject *_glib__object = (GObject*) ((object)); GParamSpec<br> *_glib__pspec = (GParamSpec*) ((pspec)); guint _glib__property_id<br> = ((prop_id)); g_warning ("%s:%d: invalid %s id %u for \"%s\" of type '%s' in '%s'"<br>, "terminal-app.c", 1569, ("property"), _glib__property_id, _glib__pspec<br>-&gt;name, g_type_name ((((((GTypeClass*) (((GTypeInstance*) (<br>_glib__pspec))-&gt;g_class))-&gt;g_type)))), (g_type_name (((<br>(((GTypeClass*) (((GTypeInstance*) (_glib__object))-&gt;g_class<br>))-&gt;g_type)))))); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1570"><td class="num" id="LN1570">1570</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1571"><td class="num" id="LN1571">1571</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1572"><td class="num" id="LN1572">1572</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1573"><td class="num" id="LN1573">1573</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1574"><td class="num" id="LN1574">1574</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1575"><td class="num" id="LN1575">1575</td><td class="line">terminal_app_set_property (GObject *object,</td></tr>
+<tr class="codeline" data-linenumber="1576"><td class="num" id="LN1576">1576</td><td class="line"> guint prop_id,</td></tr>
+<tr class="codeline" data-linenumber="1577"><td class="num" id="LN1577">1577</td><td class="line"> <span class='keyword'>const</span> GValue *value,</td></tr>
+<tr class="codeline" data-linenumber="1578"><td class="num" id="LN1578">1578</td><td class="line"> GParamSpec *pspec)</td></tr>
+<tr class="codeline" data-linenumber="1579"><td class="num" id="LN1579">1579</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1580"><td class="num" id="LN1580">1580</td><td class="line"> TerminalApp *app = <span class='macro'>TERMINAL_APP (object)<span class='macro_popup'>((((TerminalApp*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((object)), ((terminal_app_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1581"><td class="num" id="LN1581">1581</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1582"><td class="num" id="LN1582">1582</td><td class="line"> <span class='keyword'>switch</span> (prop_id)</td></tr>
+<tr class="codeline" data-linenumber="1583"><td class="num" id="LN1583">1583</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1584"><td class="num" id="LN1584">1584</td><td class="line"> <span class='keyword'>case</span> PROP_ENABLE_MENU_BAR_ACCEL:</td></tr>
+<tr class="codeline" data-linenumber="1585"><td class="num" id="LN1585">1585</td><td class="line"> app-&gt;enable_menu_accels = g_value_get_boolean (value);</td></tr>
+<tr class="codeline" data-linenumber="1586"><td class="num" id="LN1586">1586</td><td class="line"> g_settings_set_boolean (settings_global, <span class='macro'>ENABLE_MENU_BAR_ACCEL_KEY<span class='macro_popup'>"use-menu-accelerators"</span></span>, app-&gt;enable_menu_accels);</td></tr>
+<tr class="codeline" data-linenumber="1587"><td class="num" id="LN1587">1587</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1588"><td class="num" id="LN1588">1588</td><td class="line"> <span class='keyword'>case</span> PROP_ENABLE_MNEMONICS:</td></tr>
+<tr class="codeline" data-linenumber="1589"><td class="num" id="LN1589">1589</td><td class="line"> app-&gt;enable_mnemonics = g_value_get_boolean (value);</td></tr>
+<tr class="codeline" data-linenumber="1590"><td class="num" id="LN1590">1590</td><td class="line"> g_settings_set_boolean (settings_global, <span class='macro'>ENABLE_MNEMONICS_KEY<span class='macro_popup'>"use-mnemonics"</span></span>, app-&gt;enable_mnemonics);</td></tr>
+<tr class="codeline" data-linenumber="1591"><td class="num" id="LN1591">1591</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1592"><td class="num" id="LN1592">1592</td><td class="line"> <span class='keyword'>case</span> PROP_DEFAULT_PROFILE:</td></tr>
+<tr class="codeline" data-linenumber="1593"><td class="num" id="LN1593">1593</td><td class="line"> <span class='keyword'>case</span> PROP_SYSTEM_FONT:</td></tr>
+<tr class="codeline" data-linenumber="1594"><td class="num" id="LN1594">1594</td><td class="line"> <span class='comment'>/* not writable */</span></td></tr>
+<tr class="codeline" data-linenumber="1595"><td class="num" id="LN1595">1595</td><td class="line"> <span class='keyword'>default</span>:</td></tr>
+<tr class="codeline" data-linenumber="1596"><td class="num" id="LN1596">1596</td><td class="line"> <span class='macro'>G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec)<span class='macro_popup'>do { GObject *_glib__object = (GObject*) ((object)); GParamSpec<br> *_glib__pspec = (GParamSpec*) ((pspec)); guint _glib__property_id<br> = ((prop_id)); g_warning ("%s:%d: invalid %s id %u for \"%s\" of type '%s' in '%s'"<br>, "terminal-app.c", 1596, ("property"), _glib__property_id, _glib__pspec<br>-&gt;name, g_type_name ((((((GTypeClass*) (((GTypeInstance*) (<br>_glib__pspec))-&gt;g_class))-&gt;g_type)))), (g_type_name (((<br>(((GTypeClass*) (((GTypeInstance*) (_glib__object))-&gt;g_class<br>))-&gt;g_type)))))); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1597"><td class="num" id="LN1597">1597</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1598"><td class="num" id="LN1598">1598</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1599"><td class="num" id="LN1599">1599</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1600"><td class="num" id="LN1600">1600</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1601"><td class="num" id="LN1601">1601</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1602"><td class="num" id="LN1602">1602</td><td class="line">terminal_app_real_quit (TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="1603"><td class="num" id="LN1603">1603</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1604"><td class="num" id="LN1604">1604</td><td class="line"> gtk_main_quit();</td></tr>
+<tr class="codeline" data-linenumber="1605"><td class="num" id="LN1605">1605</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1606"><td class="num" id="LN1606">1606</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1607"><td class="num" id="LN1607">1607</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1608"><td class="num" id="LN1608">1608</td><td class="line">terminal_app_class_init (TerminalAppClass *klass)</td></tr>
+<tr class="codeline" data-linenumber="1609"><td class="num" id="LN1609">1609</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1610"><td class="num" id="LN1610">1610</td><td class="line"> GObjectClass *object_class = <span class='macro'>G_OBJECT_CLASS (klass)<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((klass)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1611"><td class="num" id="LN1611">1611</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1612"><td class="num" id="LN1612">1612</td><td class="line"> object_class-&gt;finalize = terminal_app_finalize;</td></tr>
+<tr class="codeline" data-linenumber="1613"><td class="num" id="LN1613">1613</td><td class="line"> object_class-&gt;get_property = terminal_app_get_property;</td></tr>
+<tr class="codeline" data-linenumber="1614"><td class="num" id="LN1614">1614</td><td class="line"> object_class-&gt;set_property = terminal_app_set_property;</td></tr>
+<tr class="codeline" data-linenumber="1615"><td class="num" id="LN1615">1615</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1616"><td class="num" id="LN1616">1616</td><td class="line"> klass-&gt;quit = terminal_app_real_quit;</td></tr>
+<tr class="codeline" data-linenumber="1617"><td class="num" id="LN1617">1617</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1618"><td class="num" id="LN1618">1618</td><td class="line"> signals[QUIT] =</td></tr>
+<tr class="codeline" data-linenumber="1619"><td class="num" id="LN1619">1619</td><td class="line"> g_signal_new (<span class='macro'>I_(<span class='string_literal'>"quit"</span>)<span class='macro_popup'>g_intern_static_string ("quit")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1620"><td class="num" id="LN1620">1620</td><td class="line"> <span class='macro'>G_OBJECT_CLASS_TYPE (object_class)<span class='macro_popup'>((((GTypeClass*) (object_class))-&gt;g_type))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1621"><td class="num" id="LN1621">1621</td><td class="line"> G_SIGNAL_RUN_LAST,</td></tr>
+<tr class="codeline" data-linenumber="1622"><td class="num" id="LN1622">1622</td><td class="line"> <span class='macro'>G_STRUCT_OFFSET (TerminalAppClass, quit)<span class='macro_popup'>((glong) __builtin_offsetof(TerminalAppClass, quit))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1623"><td class="num" id="LN1623">1623</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1624"><td class="num" id="LN1624">1624</td><td class="line"> g_cclosure_marshal_VOID__VOID,</td></tr>
+<tr class="codeline" data-linenumber="1625"><td class="num" id="LN1625">1625</td><td class="line"> <span class='macro'>G_TYPE_NONE<span class='macro_popup'>((GType) ((1) &lt;&lt; (2)))</span></span>, 0);</td></tr>
+<tr class="codeline" data-linenumber="1626"><td class="num" id="LN1626">1626</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1627"><td class="num" id="LN1627">1627</td><td class="line"> signals[PROFILE_LIST_CHANGED] =</td></tr>
+<tr class="codeline" data-linenumber="1628"><td class="num" id="LN1628">1628</td><td class="line"> g_signal_new (<span class='macro'>I_(<span class='string_literal'>"profile-list-changed"</span>)<span class='macro_popup'>g_intern_static_string ("profile-list-changed")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1629"><td class="num" id="LN1629">1629</td><td class="line"> <span class='macro'>G_OBJECT_CLASS_TYPE (object_class)<span class='macro_popup'>((((GTypeClass*) (object_class))-&gt;g_type))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1630"><td class="num" id="LN1630">1630</td><td class="line"> G_SIGNAL_RUN_LAST,</td></tr>
+<tr class="codeline" data-linenumber="1631"><td class="num" id="LN1631">1631</td><td class="line"> <span class='macro'>G_STRUCT_OFFSET (TerminalAppClass, profile_list_changed)<span class='macro_popup'>((glong) __builtin_offsetof(TerminalAppClass, profile_list_changed<br>))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1632"><td class="num" id="LN1632">1632</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1633"><td class="num" id="LN1633">1633</td><td class="line"> g_cclosure_marshal_VOID__VOID,</td></tr>
+<tr class="codeline" data-linenumber="1634"><td class="num" id="LN1634">1634</td><td class="line"> <span class='macro'>G_TYPE_NONE<span class='macro_popup'>((GType) ((1) &lt;&lt; (2)))</span></span>, 0);</td></tr>
+<tr class="codeline" data-linenumber="1635"><td class="num" id="LN1635">1635</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1636"><td class="num" id="LN1636">1636</td><td class="line"> signals[ENCODING_LIST_CHANGED] =</td></tr>
+<tr class="codeline" data-linenumber="1637"><td class="num" id="LN1637">1637</td><td class="line"> g_signal_new (<span class='macro'>I_(<span class='string_literal'>"encoding-list-changed"</span>)<span class='macro_popup'>g_intern_static_string ("encoding-list-changed")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1638"><td class="num" id="LN1638">1638</td><td class="line"> <span class='macro'>G_OBJECT_CLASS_TYPE (object_class)<span class='macro_popup'>((((GTypeClass*) (object_class))-&gt;g_type))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1639"><td class="num" id="LN1639">1639</td><td class="line"> G_SIGNAL_RUN_LAST,</td></tr>
+<tr class="codeline" data-linenumber="1640"><td class="num" id="LN1640">1640</td><td class="line"> <span class='macro'>G_STRUCT_OFFSET (TerminalAppClass, profile_list_changed)<span class='macro_popup'>((glong) __builtin_offsetof(TerminalAppClass, profile_list_changed<br>))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1641"><td class="num" id="LN1641">1641</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1642"><td class="num" id="LN1642">1642</td><td class="line"> g_cclosure_marshal_VOID__VOID,</td></tr>
+<tr class="codeline" data-linenumber="1643"><td class="num" id="LN1643">1643</td><td class="line"> <span class='macro'>G_TYPE_NONE<span class='macro_popup'>((GType) ((1) &lt;&lt; (2)))</span></span>, 0);</td></tr>
+<tr class="codeline" data-linenumber="1644"><td class="num" id="LN1644">1644</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1645"><td class="num" id="LN1645">1645</td><td class="line"> g_object_class_install_property</td></tr>
+<tr class="codeline" data-linenumber="1646"><td class="num" id="LN1646">1646</td><td class="line"> (object_class,</td></tr>
+<tr class="codeline" data-linenumber="1647"><td class="num" id="LN1647">1647</td><td class="line"> PROP_ENABLE_MENU_BAR_ACCEL,</td></tr>
+<tr class="codeline" data-linenumber="1648"><td class="num" id="LN1648">1648</td><td class="line"> g_param_spec_boolean (<span class='macro'>TERMINAL_APP_ENABLE_MENU_BAR_ACCEL<span class='macro_popup'>"enable-menu-accels"</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1649"><td class="num" id="LN1649">1649</td><td class="line"> <span class='macro'>DEFAULT_ENABLE_MENU_BAR_ACCEL<span class='macro_popup'>((!(0)))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1650"><td class="num" id="LN1650">1650</td><td class="line"> G_PARAM_READWRITE | G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB));</td></tr>
+<tr class="codeline" data-linenumber="1651"><td class="num" id="LN1651">1651</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1652"><td class="num" id="LN1652">1652</td><td class="line"> g_object_class_install_property</td></tr>
+<tr class="codeline" data-linenumber="1653"><td class="num" id="LN1653">1653</td><td class="line"> (object_class,</td></tr>
+<tr class="codeline" data-linenumber="1654"><td class="num" id="LN1654">1654</td><td class="line"> PROP_ENABLE_MNEMONICS,</td></tr>
+<tr class="codeline" data-linenumber="1655"><td class="num" id="LN1655">1655</td><td class="line"> g_param_spec_boolean (<span class='macro'>TERMINAL_APP_ENABLE_MNEMONICS<span class='macro_popup'>"enable-mnemonics"</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1656"><td class="num" id="LN1656">1656</td><td class="line"> <span class='macro'>DEFAULT_ENABLE_MNEMONICS<span class='macro_popup'>((!(0)))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1657"><td class="num" id="LN1657">1657</td><td class="line"> G_PARAM_READWRITE | G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB));</td></tr>
+<tr class="codeline" data-linenumber="1658"><td class="num" id="LN1658">1658</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1659"><td class="num" id="LN1659">1659</td><td class="line"> g_object_class_install_property</td></tr>
+<tr class="codeline" data-linenumber="1660"><td class="num" id="LN1660">1660</td><td class="line"> (object_class,</td></tr>
+<tr class="codeline" data-linenumber="1661"><td class="num" id="LN1661">1661</td><td class="line"> PROP_SYSTEM_FONT,</td></tr>
+<tr class="codeline" data-linenumber="1662"><td class="num" id="LN1662">1662</td><td class="line"> g_param_spec_boxed (<span class='macro'>TERMINAL_APP_SYSTEM_FONT<span class='macro_popup'>"system-font"</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1663"><td class="num" id="LN1663">1663</td><td class="line"> <span class='macro'>PANGO_TYPE_FONT_DESCRIPTION<span class='macro_popup'>(pango_font_description_get_type ())</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1664"><td class="num" id="LN1664">1664</td><td class="line"> G_PARAM_READABLE | G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB));</td></tr>
+<tr class="codeline" data-linenumber="1665"><td class="num" id="LN1665">1665</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1666"><td class="num" id="LN1666">1666</td><td class="line"> g_object_class_install_property</td></tr>
+<tr class="codeline" data-linenumber="1667"><td class="num" id="LN1667">1667</td><td class="line"> (object_class,</td></tr>
+<tr class="codeline" data-linenumber="1668"><td class="num" id="LN1668">1668</td><td class="line"> PROP_DEFAULT_PROFILE,</td></tr>
+<tr class="codeline" data-linenumber="1669"><td class="num" id="LN1669">1669</td><td class="line"> g_param_spec_object (<span class='macro'>TERMINAL_APP_DEFAULT_PROFILE<span class='macro_popup'>"default-profile"</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1670"><td class="num" id="LN1670">1670</td><td class="line"> <span class='macro'>TERMINAL_TYPE_PROFILE<span class='macro_popup'>(terminal_profile_get_type ())</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1671"><td class="num" id="LN1671">1671</td><td class="line"> G_PARAM_READABLE | G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB));</td></tr>
+<tr class="codeline" data-linenumber="1672"><td class="num" id="LN1672">1672</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1673"><td class="num" id="LN1673">1673</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1674"><td class="num" id="LN1674">1674</td><td class="line"><span class='comment'>/* Public API */</span></td></tr>
+<tr class="codeline" data-linenumber="1675"><td class="num" id="LN1675">1675</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1676"><td class="num" id="LN1676">1676</td><td class="line">TerminalApp*</td></tr>
+<tr class="codeline" data-linenumber="1677"><td class="num" id="LN1677">1677</td><td class="line">terminal_app_get (<span class='keyword'>void</span>)</td></tr>
+<tr class="codeline" data-linenumber="1678"><td class="num" id="LN1678">1678</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1679"><td class="num" id="LN1679">1679</td><td class="line"> <span class='keyword'>if</span> (global_app == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1680"><td class="num" id="LN1680">1680</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1681"><td class="num" id="LN1681">1681</td><td class="line"> g_object_new (<span class='macro'>TERMINAL_TYPE_APP<span class='macro_popup'>(terminal_app_get_type ())</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1682"><td class="num" id="LN1682">1682</td><td class="line"> <span class='macro'>g_assert (global_app != NULL)<span class='macro_popup'>do { if (global_app != ((void*)0)) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-app.c", 1682, ((const char*) (__func__<br>)), "global_app != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1683"><td class="num" id="LN1683">1683</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1684"><td class="num" id="LN1684">1684</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1685"><td class="num" id="LN1685">1685</td><td class="line"> <span class='keyword'>return</span> global_app;</td></tr>
+<tr class="codeline" data-linenumber="1686"><td class="num" id="LN1686">1686</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1687"><td class="num" id="LN1687">1687</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1688"><td class="num" id="LN1688">1688</td><td class="line"><span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1689"><td class="num" id="LN1689">1689</td><td class="line">terminal_app_shutdown (<span class='keyword'>void</span>)</td></tr>
+<tr class="codeline" data-linenumber="1690"><td class="num" id="LN1690">1690</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1691"><td class="num" id="LN1691">1691</td><td class="line"> <span class='keyword'>if</span> (global_app == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1692"><td class="num" id="LN1692">1692</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1693"><td class="num" id="LN1693">1693</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1694"><td class="num" id="LN1694">1694</td><td class="line"> g_object_unref (global_app);</td></tr>
+<tr class="codeline" data-linenumber="1695"><td class="num" id="LN1695">1695</td><td class="line"> <span class='macro'>g_assert (global_app == NULL)<span class='macro_popup'>do { if (global_app == ((void*)0)) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-app.c", 1695, ((const char*) (__func__<br>)), "global_app == NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1696"><td class="num" id="LN1696">1696</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1697"><td class="num" id="LN1697">1697</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1698"><td class="num" id="LN1698">1698</td><td class="line"><span class='comment'>/**</span></td></tr>
+<tr class="codeline" data-linenumber="1699"><td class="num" id="LN1699">1699</td><td class="line"> <span class='comment'>* terminal_app_handle_options:</span></td></tr>
+<tr class="codeline" data-linenumber="1700"><td class="num" id="LN1700">1700</td><td class="line"> <span class='comment'>* @app:</span></td></tr>
+<tr class="codeline" data-linenumber="1701"><td class="num" id="LN1701">1701</td><td class="line"> <span class='comment'>* @options: a #TerminalOptions</span></td></tr>
+<tr class="codeline" data-linenumber="1702"><td class="num" id="LN1702">1702</td><td class="line"> <span class='comment'>* @allow_resume: whether to merge the terminal configuration from the</span></td></tr>
+<tr class="codeline" data-linenumber="1703"><td class="num" id="LN1703">1703</td><td class="line"> <span class='comment'>* saved session on resume</span></td></tr>
+<tr class="codeline" data-linenumber="1704"><td class="num" id="LN1704">1704</td><td class="line"> <span class='comment'>* @error: a #GError to fill in</span></td></tr>
+<tr class="codeline" data-linenumber="1705"><td class="num" id="LN1705">1705</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="1706"><td class="num" id="LN1706">1706</td><td class="line"> <span class='comment'>* Processes @options. It loads or saves the terminal configuration, or</span></td></tr>
+<tr class="codeline" data-linenumber="1707"><td class="num" id="LN1707">1707</td><td class="line"> <span class='comment'>* opens the specified windows and tabs.</span></td></tr>
+<tr class="codeline" data-linenumber="1708"><td class="num" id="LN1708">1708</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="1709"><td class="num" id="LN1709">1709</td><td class="line"> <span class='comment'>* Returns: %TRUE if @options could be successfully handled, or %FALSE on</span></td></tr>
+<tr class="codeline" data-linenumber="1710"><td class="num" id="LN1710">1710</td><td class="line"> <span class='comment'>* error</span></td></tr>
+<tr class="codeline" data-linenumber="1711"><td class="num" id="LN1711">1711</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="1712"><td class="num" id="LN1712">1712</td><td class="line">gboolean</td></tr>
+<tr class="codeline" data-linenumber="1713"><td class="num" id="LN1713">1713</td><td class="line">terminal_app_handle_options (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="1714"><td class="num" id="LN1714">1714</td><td class="line"> TerminalOptions *options,</td></tr>
+<tr class="codeline" data-linenumber="1715"><td class="num" id="LN1715">1715</td><td class="line"> gboolean allow_resume,</td></tr>
+<tr class="codeline" data-linenumber="1716"><td class="num" id="LN1716">1716</td><td class="line"> GError **error)</td></tr>
+<tr class="codeline" data-linenumber="1717"><td class="num" id="LN1717">1717</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1718"><td class="num" id="LN1718">1718</td><td class="line"> GList *lw;</td></tr>
+<tr class="codeline" data-linenumber="1719"><td class="num" id="LN1719">1719</td><td class="line"> GdkScreen *gdk_screen;</td></tr>
+<tr class="codeline" data-linenumber="1720"><td class="num" id="LN1720">1720</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1721"><td class="num" id="LN1721">1721</td><td class="line"> gdk_screen = terminal_app_get_screen_by_display_name (options-&gt;display_name);</td></tr>
+<tr class="codeline" data-linenumber="1722"><td class="num" id="LN1722">1722</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1723"><td class="num" id="LN1723">1723</td><td class="line"> <span class='keyword'>if</span> (options-&gt;save_config)</td></tr>
+<tr class="codeline" data-linenumber="1724"><td class="num" id="LN1724">1724</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1725"><td class="num" id="LN1725">1725</td><td class="line"> <span class='keyword'>if</span> (options-&gt;remote_arguments)</td></tr>
+<tr class="codeline" data-linenumber="1726"><td class="num" id="LN1726">1726</td><td class="line"> <span class='keyword'>return</span> terminal_app_save_config_file (app, options-&gt;config_file, error);</td></tr>
+<tr class="codeline" data-linenumber="1727"><td class="num" id="LN1727">1727</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1728"><td class="num" id="LN1728">1728</td><td class="line"> g_set_error_literal (error, <span class='macro'>TERMINAL_OPTION_ERROR<span class='macro_popup'>(g_quark_from_static_string ("terminal-option-error"))</span></span>, TERMINAL_OPTION_ERROR_NOT_IN_FACTORY,</td></tr>
+<tr class="codeline" data-linenumber="1729"><td class="num" id="LN1729">1729</td><td class="line"> <span class='string_literal'>"Cannot use \"--save-config\" when starting the factory process"</span>);</td></tr>
+<tr class="codeline" data-linenumber="1730"><td class="num" id="LN1730">1730</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1731"><td class="num" id="LN1731">1731</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1732"><td class="num" id="LN1732">1732</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1733"><td class="num" id="LN1733">1733</td><td class="line"> <span class='keyword'>if</span> (options-&gt;load_config)</td></tr>
+<tr class="codeline" data-linenumber="1734"><td class="num" id="LN1734">1734</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1735"><td class="num" id="LN1735">1735</td><td class="line"> GKeyFile *key_file;</td></tr>
+<tr class="codeline" data-linenumber="1736"><td class="num" id="LN1736">1736</td><td class="line"> gboolean result;</td></tr>
+<tr class="codeline" data-linenumber="1737"><td class="num" id="LN1737">1737</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1738"><td class="num" id="LN1738">1738</td><td class="line"> key_file = g_key_file_new ();</td></tr>
+<tr class="codeline" data-linenumber="1739"><td class="num" id="LN1739">1739</td><td class="line"> result = g_key_file_load_from_file (key_file, options-&gt;config_file, 0, error) &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="1740"><td class="num" id="LN1740">1740</td><td class="line"> terminal_options_merge_config (options, key_file, SOURCE_DEFAULT, error);</td></tr>
+<tr class="codeline" data-linenumber="1741"><td class="num" id="LN1741">1741</td><td class="line"> g_key_file_free (key_file);</td></tr>
+<tr class="codeline" data-linenumber="1742"><td class="num" id="LN1742">1742</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1743"><td class="num" id="LN1743">1743</td><td class="line"> <span class='keyword'>if</span> (!result)</td></tr>
+<tr class="codeline" data-linenumber="1744"><td class="num" id="LN1744">1744</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1745"><td class="num" id="LN1745">1745</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1746"><td class="num" id="LN1746">1746</td><td class="line"> <span class='comment'>/* fall-through on success */</span></td></tr>
+<tr class="codeline" data-linenumber="1747"><td class="num" id="LN1747">1747</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1748"><td class="num" id="LN1748">1748</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1749"><td class="num" id="LN1749">1749</td><td class="line"><span class='directive'>#ifdef <span class='macro'>HAVE_SMCLIENT<span class='macro_popup'>1</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1750"><td class="num" id="LN1750">1750</td><td class="line"> EggSMClient *sm_client;</td></tr>
+<tr class="codeline" data-linenumber="1751"><td class="num" id="LN1751">1751</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1752"><td class="num" id="LN1752">1752</td><td class="line"> sm_client = egg_sm_client_get ();</td></tr>
+<tr class="codeline" data-linenumber="1753"><td class="num" id="LN1753">1753</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1754"><td class="num" id="LN1754">1754</td><td class="line"> <span class='keyword'>if</span> (allow_resume &amp;&amp; egg_sm_client_is_resumed (sm_client))</td></tr>
+<tr class="codeline" data-linenumber="1755"><td class="num" id="LN1755">1755</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1756"><td class="num" id="LN1756">1756</td><td class="line"> GKeyFile *key_file;</td></tr>
+<tr class="codeline" data-linenumber="1757"><td class="num" id="LN1757">1757</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1758"><td class="num" id="LN1758">1758</td><td class="line"> key_file = egg_sm_client_get_state_file (sm_client);</td></tr>
+<tr class="codeline" data-linenumber="1759"><td class="num" id="LN1759">1759</td><td class="line"> <span class='keyword'>if</span> (key_file != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span> &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="1760"><td class="num" id="LN1760">1760</td><td class="line"> !terminal_options_merge_config (options, key_file, SOURCE_SESSION, error))</td></tr>
+<tr class="codeline" data-linenumber="1761"><td class="num" id="LN1761">1761</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1762"><td class="num" id="LN1762">1762</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1763"><td class="num" id="LN1763">1763</td><td class="line"><span class='directive'>#endif /* HAVE_SMCLIENT */</span></td></tr>
+<tr class="codeline" data-linenumber="1764"><td class="num" id="LN1764">1764</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1765"><td class="num" id="LN1765">1765</td><td class="line"> <span class='comment'>/* Make sure we open at least one window */</span></td></tr>
+<tr class="codeline" data-linenumber="1766"><td class="num" id="LN1766">1766</td><td class="line"> terminal_options_ensure_window (options);</td></tr>
+<tr class="codeline" data-linenumber="1767"><td class="num" id="LN1767">1767</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1768"><td class="num" id="LN1768">1768</td><td class="line"> <span class='keyword'>if</span> (options-&gt;startup_id != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1769"><td class="num" id="LN1769">1769</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_FACTORY,<span class='macro_popup'>do { if (0) g_printerr("Startup ID is '%s'\n", options-&gt;startup_id<br>); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1770"><td class="num" id="LN1770">1770</td><td class="line"> <span class='string_literal'><span class='macro'>"Startup ID is '%s'\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("Startup ID is '%s'\n", options-&gt;startup_id<br>); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1771"><td class="num" id="LN1771">1771</td><td class="line"> <span class='macro'>options-&gt;startup_id)<span class='macro_popup'>do { if (0) g_printerr("Startup ID is '%s'\n", options-&gt;startup_id<br>); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1772"><td class="num" id="LN1772">1772</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1773"><td class="num" id="LN1773">1773</td><td class="line"> <span class='keyword'>for</span> (lw = options-&gt;initial_windows; lw != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; lw = lw-&gt;next)</td></tr>
+<tr class="codeline" data-linenumber="1774"><td class="num" id="LN1774">1774</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1775"><td class="num" id="LN1775">1775</td><td class="line"> InitialWindow *iw = lw-&gt;data;</td></tr>
+<tr class="codeline" data-linenumber="1776"><td class="num" id="LN1776">1776</td><td class="line"> TerminalWindow *window = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1777"><td class="num" id="LN1777">1777</td><td class="line"> GList *lt;</td></tr>
+<tr class="codeline" data-linenumber="1778"><td class="num" id="LN1778">1778</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1779"><td class="num" id="LN1779">1779</td><td class="line"> <span class='macro'>g_assert (iw-&gt;tabs)<span class='macro_popup'>do { if (iw-&gt;tabs) ; else g_assertion_message_expr (((gchar<br>*) 0), "terminal-app.c", 1779, ((const char*) (__func__)), "iw-&gt;tabs"<br>); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1780"><td class="num" id="LN1780">1780</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1781"><td class="num" id="LN1781">1781</td><td class="line"> <span class='keyword'>if</span> ( lw == options-&gt;initial_windows &amp;&amp; ((InitialTab *)iw-&gt;tabs-&gt;data)-&gt;attach_window )</td></tr>
+<tr class="codeline" data-linenumber="1782"><td class="num" id="LN1782">1782</td><td class="line"> window = terminal_app_get_current_window(app, gdk_screen, options-&gt;initial_workspace);</td></tr>
+<tr class="codeline" data-linenumber="1783"><td class="num" id="LN1783">1783</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1784"><td class="num" id="LN1784">1784</td><td class="line"> <span class='keyword'>if</span> (!window)</td></tr>
+<tr class="codeline" data-linenumber="1785"><td class="num" id="LN1785">1785</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1786"><td class="num" id="LN1786">1786</td><td class="line"> <span class='comment'>/* Create &amp; setup new window */</span></td></tr>
+<tr class="codeline" data-linenumber="1787"><td class="num" id="LN1787">1787</td><td class="line"> window = terminal_app_new_window (app, gdk_screen);</td></tr>
+<tr class="codeline" data-linenumber="1788"><td class="num" id="LN1788">1788</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1789"><td class="num" id="LN1789">1789</td><td class="line"> <span class='comment'>/* Restored windows shouldn't demand attention; see bug #586308. */</span></td></tr>
+<tr class="codeline" data-linenumber="1790"><td class="num" id="LN1790">1790</td><td class="line"> <span class='keyword'>if</span> (iw-&gt;source_tag == SOURCE_SESSION)</td></tr>
+<tr class="codeline" data-linenumber="1791"><td class="num" id="LN1791">1791</td><td class="line"> terminal_window_set_is_restored (window);</td></tr>
+<tr class="codeline" data-linenumber="1792"><td class="num" id="LN1792">1792</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1793"><td class="num" id="LN1793">1793</td><td class="line"> <span class='keyword'>if</span> (options-&gt;startup_id != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1794"><td class="num" id="LN1794">1794</td><td class="line"> gtk_window_set_startup_id (<span class='macro'>GTK_WINDOW (window)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_window_get_type ()))))))</span></span>, options-&gt;startup_id);</td></tr>
+<tr class="codeline" data-linenumber="1795"><td class="num" id="LN1795">1795</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1796"><td class="num" id="LN1796">1796</td><td class="line"> <span class='comment'>/* Overwrite the default, unique window role set in terminal_window_init */</span></td></tr>
+<tr class="codeline" data-linenumber="1797"><td class="num" id="LN1797">1797</td><td class="line"> <span class='keyword'>if</span> (iw-&gt;role)</td></tr>
+<tr class="codeline" data-linenumber="1798"><td class="num" id="LN1798">1798</td><td class="line"> gtk_window_set_role (<span class='macro'>GTK_WINDOW (window)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_window_get_type ()))))))</span></span>, iw-&gt;role);</td></tr>
+<tr class="codeline" data-linenumber="1799"><td class="num" id="LN1799">1799</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1800"><td class="num" id="LN1800">1800</td><td class="line"> <span class='keyword'>if</span> (iw-&gt;force_menubar_state)</td></tr>
+<tr class="codeline" data-linenumber="1801"><td class="num" id="LN1801">1801</td><td class="line"> terminal_window_set_menubar_visible (window, iw-&gt;menubar_state);</td></tr>
+<tr class="codeline" data-linenumber="1802"><td class="num" id="LN1802">1802</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1803"><td class="num" id="LN1803">1803</td><td class="line"> <span class='keyword'>if</span> (iw-&gt;start_fullscreen)</td></tr>
+<tr class="codeline" data-linenumber="1804"><td class="num" id="LN1804">1804</td><td class="line"> gtk_window_fullscreen (<span class='macro'>GTK_WINDOW (window)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_window_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1805"><td class="num" id="LN1805">1805</td><td class="line"> <span class='keyword'>if</span> (iw-&gt;start_maximized)</td></tr>
+<tr class="codeline" data-linenumber="1806"><td class="num" id="LN1806">1806</td><td class="line"> gtk_window_maximize (<span class='macro'>GTK_WINDOW (window)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_window_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1807"><td class="num" id="LN1807">1807</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1808"><td class="num" id="LN1808">1808</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1809"><td class="num" id="LN1809">1809</td><td class="line"> <span class='comment'>/* Now add the tabs */</span></td></tr>
+<tr class="codeline" data-linenumber="1810"><td class="num" id="LN1810">1810</td><td class="line"> <span class='keyword'>for</span> (lt = iw-&gt;tabs; lt != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; lt = lt-&gt;next)</td></tr>
+<tr class="codeline" data-linenumber="1811"><td class="num" id="LN1811">1811</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1812"><td class="num" id="LN1812">1812</td><td class="line"> InitialTab *it = lt-&gt;data;</td></tr>
+<tr class="codeline" data-linenumber="1813"><td class="num" id="LN1813">1813</td><td class="line"> TerminalProfile *profile = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1814"><td class="num" id="LN1814">1814</td><td class="line"> TerminalScreen *screen;</td></tr>
+<tr class="codeline" data-linenumber="1815"><td class="num" id="LN1815">1815</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *profile_name;</td></tr>
+<tr class="codeline" data-linenumber="1816"><td class="num" id="LN1816">1816</td><td class="line"> gboolean profile_is_id;</td></tr>
+<tr class="codeline" data-linenumber="1817"><td class="num" id="LN1817">1817</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1818"><td class="num" id="LN1818">1818</td><td class="line"> <span class='keyword'>if</span> (it-&gt;profile)</td></tr>
+<tr class="codeline" data-linenumber="1819"><td class="num" id="LN1819">1819</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1820"><td class="num" id="LN1820">1820</td><td class="line"> profile_name = it-&gt;profile;</td></tr>
+<tr class="codeline" data-linenumber="1821"><td class="num" id="LN1821">1821</td><td class="line"> profile_is_id = it-&gt;profile_is_id;</td></tr>
+<tr class="codeline" data-linenumber="1822"><td class="num" id="LN1822">1822</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1823"><td class="num" id="LN1823">1823</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="1824"><td class="num" id="LN1824">1824</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1825"><td class="num" id="LN1825">1825</td><td class="line"> profile_name = options-&gt;default_profile;</td></tr>
+<tr class="codeline" data-linenumber="1826"><td class="num" id="LN1826">1826</td><td class="line"> profile_is_id = options-&gt;default_profile_is_id;</td></tr>
+<tr class="codeline" data-linenumber="1827"><td class="num" id="LN1827">1827</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1828"><td class="num" id="LN1828">1828</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1829"><td class="num" id="LN1829">1829</td><td class="line"> <span class='keyword'>if</span> (profile_name)</td></tr>
+<tr class="codeline" data-linenumber="1830"><td class="num" id="LN1830">1830</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1831"><td class="num" id="LN1831">1831</td><td class="line"> <span class='keyword'>if</span> (profile_is_id)</td></tr>
+<tr class="codeline" data-linenumber="1832"><td class="num" id="LN1832">1832</td><td class="line"> profile = terminal_app_get_profile_by_name (app, profile_name);</td></tr>
+<tr class="codeline" data-linenumber="1833"><td class="num" id="LN1833">1833</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="1834"><td class="num" id="LN1834">1834</td><td class="line"> profile = terminal_app_get_profile_by_visible_name (app, profile_name);</td></tr>
+<tr class="codeline" data-linenumber="1835"><td class="num" id="LN1835">1835</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1836"><td class="num" id="LN1836">1836</td><td class="line"> <span class='keyword'>if</span> (profile == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1837"><td class="num" id="LN1837">1837</td><td class="line"> g_printerr (<span class='macro'>_(<span class='string_literal'>"No such profile \"%s\", using default profile\n"</span>)<span class='macro_popup'>gettext ("No such profile \"%s\", using default profile\n")</span></span>, it-&gt;profile);</td></tr>
+<tr class="codeline" data-linenumber="1838"><td class="num" id="LN1838">1838</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1839"><td class="num" id="LN1839">1839</td><td class="line"> <span class='keyword'>if</span> (profile == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1840"><td class="num" id="LN1840">1840</td><td class="line"> profile = terminal_app_get_profile_for_new_term (app);</td></tr>
+<tr class="codeline" data-linenumber="1841"><td class="num" id="LN1841">1841</td><td class="line"> <span class='macro'>g_assert (profile)<span class='macro_popup'>do { if (profile) ; else g_assertion_message_expr (((gchar*) 0<br>), "terminal-app.c", 1841, ((const char*) (__func__)), "profile"<br>); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1842"><td class="num" id="LN1842">1842</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1843"><td class="num" id="LN1843">1843</td><td class="line"> screen = terminal_app_new_terminal (app, window, profile,</td></tr>
+<tr class="codeline" data-linenumber="1844"><td class="num" id="LN1844">1844</td><td class="line"> it-&gt;exec_argv ? it-&gt;exec_argv : options-&gt;exec_argv,</td></tr>
+<tr class="codeline" data-linenumber="1845"><td class="num" id="LN1845">1845</td><td class="line"> it-&gt;title ? it-&gt;title : options-&gt;default_title,</td></tr>
+<tr class="codeline" data-linenumber="1846"><td class="num" id="LN1846">1846</td><td class="line"> it-&gt;working_dir ? it-&gt;working_dir : options-&gt;default_working_dir,</td></tr>
+<tr class="codeline" data-linenumber="1847"><td class="num" id="LN1847">1847</td><td class="line"> options-&gt;env,</td></tr>
+<tr class="codeline" data-linenumber="1848"><td class="num" id="LN1848">1848</td><td class="line"> it-&gt;zoom_set ? it-&gt;zoom : options-&gt;zoom);</td></tr>
+<tr class="codeline" data-linenumber="1849"><td class="num" id="LN1849">1849</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1850"><td class="num" id="LN1850">1850</td><td class="line"> <span class='keyword'>if</span> (it-&gt;active)</td></tr>
+<tr class="codeline" data-linenumber="1851"><td class="num" id="LN1851">1851</td><td class="line"> terminal_window_switch_screen (window, screen);</td></tr>
+<tr class="codeline" data-linenumber="1852"><td class="num" id="LN1852">1852</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1853"><td class="num" id="LN1853">1853</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1854"><td class="num" id="LN1854">1854</td><td class="line"> <span class='keyword'>if</span> (iw-&gt;geometry)</td></tr>
+<tr class="codeline" data-linenumber="1855"><td class="num" id="LN1855">1855</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1856"><td class="num" id="LN1856">1856</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_GEOMETRY,<span class='macro_popup'>do { if (0) g_printerr("[window %p] applying geometry %s\n", window<br>, iw-&gt;geometry); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1857"><td class="num" id="LN1857">1857</td><td class="line"> <span class='string_literal'><span class='macro'>"[window %p] applying geometry %s\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("[window %p] applying geometry %s\n", window<br>, iw-&gt;geometry); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1858"><td class="num" id="LN1858">1858</td><td class="line"> <span class='macro'>window, iw-&gt;geometry)<span class='macro_popup'>do { if (0) g_printerr("[window %p] applying geometry %s\n", window<br>, iw-&gt;geometry); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1859"><td class="num" id="LN1859">1859</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1860"><td class="num" id="LN1860">1860</td><td class="line"> <span class='keyword'>if</span> (!terminal_window_update_size_set_geometry (window,</td></tr>
+<tr class="codeline" data-linenumber="1861"><td class="num" id="LN1861">1861</td><td class="line"> terminal_window_get_active (window),</td></tr>
+<tr class="codeline" data-linenumber="1862"><td class="num" id="LN1862">1862</td><td class="line"> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1863"><td class="num" id="LN1863">1863</td><td class="line"> iw-&gt;geometry))</td></tr>
+<tr class="codeline" data-linenumber="1864"><td class="num" id="LN1864">1864</td><td class="line"> g_printerr (<span class='macro'>_(<span class='string_literal'>"Invalid geometry string \"%s\"\n"</span>)<span class='macro_popup'>gettext ("Invalid geometry string \"%s\"\n")</span></span>, iw-&gt;geometry);</td></tr>
+<tr class="codeline" data-linenumber="1865"><td class="num" id="LN1865">1865</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1866"><td class="num" id="LN1866">1866</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1867"><td class="num" id="LN1867">1867</td><td class="line"> gtk_window_present (<span class='macro'>GTK_WINDOW (window)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_window_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1868"><td class="num" id="LN1868">1868</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1869"><td class="num" id="LN1869">1869</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1870"><td class="num" id="LN1870">1870</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1871"><td class="num" id="LN1871">1871</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1872"><td class="num" id="LN1872">1872</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1873"><td class="num" id="LN1873">1873</td><td class="line">TerminalWindow *</td></tr>
+<tr class="codeline" data-linenumber="1874"><td class="num" id="LN1874">1874</td><td class="line">terminal_app_new_window (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="1875"><td class="num" id="LN1875">1875</td><td class="line"> GdkScreen *screen)</td></tr>
+<tr class="codeline" data-linenumber="1876"><td class="num" id="LN1876">1876</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1877"><td class="num" id="LN1877">1877</td><td class="line"> TerminalWindow *window;</td></tr>
+<tr class="codeline" data-linenumber="1878"><td class="num" id="LN1878">1878</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1879"><td class="num" id="LN1879">1879</td><td class="line"> window = terminal_window_new ();</td></tr>
+<tr class="codeline" data-linenumber="1880"><td class="num" id="LN1880">1880</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1881"><td class="num" id="LN1881">1881</td><td class="line"> app-&gt;windows = g_list_append (app-&gt;windows, window);</td></tr>
+<tr class="codeline" data-linenumber="1882"><td class="num" id="LN1882">1882</td><td class="line"> <span class='macro'>g_signal_connect (window, <span class='string_literal'>"destroy"</span>,<span class='macro_popup'>g_signal_connect_data ((window), ("destroy"), (((GCallback) (<br>terminal_window_destroyed))), (app), ((void*)0), (GConnectFlags<br>) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1883"><td class="num" id="LN1883">1883</td><td class="line"> <span class='macro'>G_CALLBACK (terminal_window_destroyed), app)<span class='macro_popup'>g_signal_connect_data ((window), ("destroy"), (((GCallback) (<br>terminal_window_destroyed))), (app), ((void*)0), (GConnectFlags<br>) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1884"><td class="num" id="LN1884">1884</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1885"><td class="num" id="LN1885">1885</td><td class="line"> <span class='keyword'>if</span> (screen)</td></tr>
+<tr class="codeline" data-linenumber="1886"><td class="num" id="LN1886">1886</td><td class="line"> gtk_window_set_screen (<span class='macro'>GTK_WINDOW (window)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_window_get_type ()))))))</span></span>, screen);</td></tr>
+<tr class="codeline" data-linenumber="1887"><td class="num" id="LN1887">1887</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1888"><td class="num" id="LN1888">1888</td><td class="line"> <span class='keyword'>return</span> window;</td></tr>
+<tr class="codeline" data-linenumber="1889"><td class="num" id="LN1889">1889</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1890"><td class="num" id="LN1890">1890</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1891"><td class="num" id="LN1891">1891</td><td class="line">TerminalScreen *</td></tr>
+<tr class="codeline" data-linenumber="1892"><td class="num" id="LN1892">1892</td><td class="line">terminal_app_new_terminal (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="1893"><td class="num" id="LN1893">1893</td><td class="line"> TerminalWindow *window,</td></tr>
+<tr class="codeline" data-linenumber="1894"><td class="num" id="LN1894">1894</td><td class="line"> TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1895"><td class="num" id="LN1895">1895</td><td class="line"> <span class='keyword'>char</span> **override_command,</td></tr>
+<tr class="codeline" data-linenumber="1896"><td class="num" id="LN1896">1896</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *title,</td></tr>
+<tr class="codeline" data-linenumber="1897"><td class="num" id="LN1897">1897</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *working_dir,</td></tr>
+<tr class="codeline" data-linenumber="1898"><td class="num" id="LN1898">1898</td><td class="line"> <span class='keyword'>char</span> **child_env,</td></tr>
+<tr class="codeline" data-linenumber="1899"><td class="num" id="LN1899">1899</td><td class="line"> <span class='keyword'>double</span> zoom)</td></tr>
+<tr class="codeline" data-linenumber="1900"><td class="num" id="LN1900">1900</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1901"><td class="num" id="LN1901">1901</td><td class="line"> TerminalScreen *screen;</td></tr>
+<tr class="codeline" data-linenumber="1902"><td class="num" id="LN1902">1902</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1903"><td class="num" id="LN1903">1903</td><td class="line"> <span class='macro'>g_return_val_if_fail (TERMINAL_IS_APP (app), NULL)<span class='macro_popup'>do { if (((((__extension__ ({ GTypeInstance *__inst = (GTypeInstance<br>*) ((app)); GType __t = ((terminal_app_get_type ())); gboolean<br> __r; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; })))))) { }<br> else { g_return_if_fail_warning (((gchar*) 0), ((const char*<br>) (__func__)), "TERMINAL_IS_APP (app)"); return (((void*)0));<br> } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1904"><td class="num" id="LN1904">1904</td><td class="line"> <span class='macro'>g_return_val_if_fail (TERMINAL_IS_WINDOW (window), NULL)<span class='macro_popup'>do { if (((((__extension__ ({ GTypeInstance *__inst = (GTypeInstance<br>*) ((window)); GType __t = ((terminal_window_get_type ())); gboolean<br> __r; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; })))))) { }<br> else { g_return_if_fail_warning (((gchar*) 0), ((const char*<br>) (__func__)), "TERMINAL_IS_WINDOW (window)"); return (((void<br>*)0)); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1905"><td class="num" id="LN1905">1905</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1906"><td class="num" id="LN1906">1906</td><td class="line"> screen = terminal_screen_new (profile, override_command, title,</td></tr>
+<tr class="codeline" data-linenumber="1907"><td class="num" id="LN1907">1907</td><td class="line"> working_dir, child_env, zoom);</td></tr>
+<tr class="codeline" data-linenumber="1908"><td class="num" id="LN1908">1908</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1909"><td class="num" id="LN1909">1909</td><td class="line"> terminal_window_add_screen (window, screen, -1);</td></tr>
+<tr class="codeline" data-linenumber="1910"><td class="num" id="LN1910">1910</td><td class="line"> terminal_window_switch_screen (window, screen);</td></tr>
+<tr class="codeline" data-linenumber="1911"><td class="num" id="LN1911">1911</td><td class="line"> gtk_widget_grab_focus (<span class='macro'>GTK_WIDGET (screen)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((screen)), ((gtk_widget_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1912"><td class="num" id="LN1912">1912</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1913"><td class="num" id="LN1913">1913</td><td class="line"> <span class='keyword'>return</span> screen;</td></tr>
+<tr class="codeline" data-linenumber="1914"><td class="num" id="LN1914">1914</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1915"><td class="num" id="LN1915">1915</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1916"><td class="num" id="LN1916">1916</td><td class="line"><span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1917"><td class="num" id="LN1917">1917</td><td class="line">terminal_app_edit_profile (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="1918"><td class="num" id="LN1918">1918</td><td class="line"> TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1919"><td class="num" id="LN1919">1919</td><td class="line"> GtkWindow *transient_parent,</td></tr>
+<tr class="codeline" data-linenumber="1920"><td class="num" id="LN1920">1920</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *widget_name)</td></tr>
+<tr class="codeline" data-linenumber="1921"><td class="num" id="LN1921">1921</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1922"><td class="num" id="LN1922">1922</td><td class="line"> terminal_profile_edit (profile, transient_parent, widget_name);</td></tr>
+<tr class="codeline" data-linenumber="1923"><td class="num" id="LN1923">1923</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1924"><td class="num" id="LN1924">1924</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1925"><td class="num" id="LN1925">1925</td><td class="line"><span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1926"><td class="num" id="LN1926">1926</td><td class="line">terminal_app_edit_keybindings (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="1927"><td class="num" id="LN1927">1927</td><td class="line"> GtkWindow *transient_parent)</td></tr>
+<tr class="codeline" data-linenumber="1928"><td class="num" id="LN1928">1928</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1929"><td class="num" id="LN1929">1929</td><td class="line"> terminal_edit_keys_dialog_show (transient_parent);</td></tr>
+<tr class="codeline" data-linenumber="1930"><td class="num" id="LN1930">1930</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1931"><td class="num" id="LN1931">1931</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1932"><td class="num" id="LN1932">1932</td><td class="line"><span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1933"><td class="num" id="LN1933">1933</td><td class="line">terminal_app_edit_encodings (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="1934"><td class="num" id="LN1934">1934</td><td class="line"> GtkWindow *transient_parent)</td></tr>
+<tr class="codeline" data-linenumber="1935"><td class="num" id="LN1935">1935</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1936"><td class="num" id="LN1936">1936</td><td class="line"> terminal_encoding_dialog_show (transient_parent);</td></tr>
+<tr class="codeline" data-linenumber="1937"><td class="num" id="LN1937">1937</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1938"><td class="num" id="LN1938">1938</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1939"><td class="num" id="LN1939">1939</td><td class="line"><span class='comment'>/*</span></td></tr>
+<tr class="codeline" data-linenumber="1940"><td class="num" id="LN1940">1940</td><td class="line"><span class='comment'>* Get the window in the given screen and workspace. If nothing is found,</span></td></tr>
+<tr class="codeline" data-linenumber="1941"><td class="num" id="LN1941">1941</td><td class="line"><span class='comment'>* a NULL is returned.</span></td></tr>
+<tr class="codeline" data-linenumber="1942"><td class="num" id="LN1942">1942</td><td class="line"><span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="1943"><td class="num" id="LN1943">1943</td><td class="line">TerminalWindow *</td></tr>
+<tr class="codeline" data-linenumber="1944"><td class="num" id="LN1944">1944</td><td class="line">terminal_app_get_current_window (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="1945"><td class="num" id="LN1945">1945</td><td class="line"> GdkScreen *from_screen,</td></tr>
+<tr class="codeline" data-linenumber="1946"><td class="num" id="LN1946">1946</td><td class="line"> <span class='keyword'>int</span> workspace)</td></tr>
+<tr class="codeline" data-linenumber="1947"><td class="num" id="LN1947">1947</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1948"><td class="num" id="LN1948">1948</td><td class="line"> GList *res = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1949"><td class="num" id="LN1949">1949</td><td class="line"> TerminalWindow *ret = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1950"><td class="num" id="LN1950">1950</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1951"><td class="num" id="LN1951">1951</td><td class="line"> <span class='keyword'>if</span> (app-&gt;windows == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1952"><td class="num" id="LN1952">1952</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1953"><td class="num" id="LN1953">1953</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1954"><td class="num" id="LN1954">1954</td><td class="line"> res = g_list_last (app-&gt;windows);</td></tr>
+<tr class="codeline" data-linenumber="1955"><td class="num" id="LN1955">1955</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1956"><td class="num" id="LN1956">1956</td><td class="line"> <span class='macro'>g_assert (from_screen != NULL)<span class='macro_popup'>do { if (from_screen != ((void*)0)) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-app.c", 1956, ((const char*) (__func__<br>)), "from_screen != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1957"><td class="num" id="LN1957">1957</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1958"><td class="num" id="LN1958">1958</td><td class="line"> <span class='keyword'>while</span> (res)</td></tr>
+<tr class="codeline" data-linenumber="1959"><td class="num" id="LN1959">1959</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1960"><td class="num" id="LN1960">1960</td><td class="line"> <span class='keyword'>int</span> win_workspace;</td></tr>
+<tr class="codeline" data-linenumber="1961"><td class="num" id="LN1961">1961</td><td class="line"> <span class='keyword'>if</span> (gtk_window_get_screen(<span class='macro'>GTK_WINDOW(res-&gt;data)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((res-&gt;data)), ((gtk_window_get_type ()))))))</span></span>) != from_screen)</td></tr>
+<tr class="codeline" data-linenumber="1962"><td class="num" id="LN1962">1962</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="1963"><td class="num" id="LN1963">1963</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1964"><td class="num" id="LN1964">1964</td><td class="line"> win_workspace = terminal_app_get_workspace_for_window(res-&gt;data);</td></tr>
+<tr class="codeline" data-linenumber="1965"><td class="num" id="LN1965">1965</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1966"><td class="num" id="LN1966">1966</td><td class="line"> <span class='comment'>/* Same workspace or if the window is set to show up on all workspaces */</span></td></tr>
+<tr class="codeline" data-linenumber="1967"><td class="num" id="LN1967">1967</td><td class="line"> <span class='keyword'>if</span> (win_workspace == workspace || win_workspace == -1)</td></tr>
+<tr class="codeline" data-linenumber="1968"><td class="num" id="LN1968">1968</td><td class="line"> ret = terminal_window_get_latest_focused (ret, <span class='macro'>TERMINAL_WINDOW(res-&gt;data)<span class='macro_popup'>((((TerminalWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((res-&gt;data)), ((terminal_window_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1969"><td class="num" id="LN1969">1969</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1970"><td class="num" id="LN1970">1970</td><td class="line"> res = <span class='macro'>g_list_previous (res)<span class='macro_popup'>((res) ? (((GList *)(res))-&gt;prev) : ((void*)0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1971"><td class="num" id="LN1971">1971</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1972"><td class="num" id="LN1972">1972</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1973"><td class="num" id="LN1973">1973</td><td class="line"> <span class='keyword'>return</span> ret;</td></tr>
+<tr class="codeline" data-linenumber="1974"><td class="num" id="LN1974">1974</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1975"><td class="num" id="LN1975">1975</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1976"><td class="num" id="LN1976">1976</td><td class="line"><span class='comment'>/**</span></td></tr>
+<tr class="codeline" data-linenumber="1977"><td class="num" id="LN1977">1977</td><td class="line"> <span class='comment'>* terminal_profile_get_list:</span></td></tr>
+<tr class="codeline" data-linenumber="1978"><td class="num" id="LN1978">1978</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="1979"><td class="num" id="LN1979">1979</td><td class="line"> <span class='comment'>* Returns: a #GList containing all #TerminalProfile objects.</span></td></tr>
+<tr class="codeline" data-linenumber="1980"><td class="num" id="LN1980">1980</td><td class="line"> <span class='comment'>* The content of the list is owned by the backend and</span></td></tr>
+<tr class="codeline" data-linenumber="1981"><td class="num" id="LN1981">1981</td><td class="line"> <span class='comment'>* should not be modified or freed. Use g_list_free() when done</span></td></tr>
+<tr class="codeline" data-linenumber="1982"><td class="num" id="LN1982">1982</td><td class="line"> <span class='comment'>* using the list.</span></td></tr>
+<tr class="codeline" data-linenumber="1983"><td class="num" id="LN1983">1983</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="1984"><td class="num" id="LN1984">1984</td><td class="line">GList*</td></tr>
+<tr class="codeline" data-linenumber="1985"><td class="num" id="LN1985">1985</td><td class="line">terminal_app_get_profile_list (TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="1986"><td class="num" id="LN1986">1986</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1987"><td class="num" id="LN1987">1987</td><td class="line"> <span class='macro'>g_return_val_if_fail (TERMINAL_IS_APP (app), NULL)<span class='macro_popup'>do { if (((((__extension__ ({ GTypeInstance *__inst = (GTypeInstance<br>*) ((app)); GType __t = ((terminal_app_get_type ())); gboolean<br> __r; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; })))))) { }<br> else { g_return_if_fail_warning (((gchar*) 0), ((const char*<br>) (__func__)), "TERMINAL_IS_APP (app)"); return (((void*)0));<br> } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1988"><td class="num" id="LN1988">1988</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1989"><td class="num" id="LN1989">1989</td><td class="line"> <span class='keyword'>return</span> g_list_sort (g_hash_table_get_values (app-&gt;profiles), profiles_alphabetic_cmp);</td></tr>
+<tr class="codeline" data-linenumber="1990"><td class="num" id="LN1990">1990</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1991"><td class="num" id="LN1991">1991</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1992"><td class="num" id="LN1992">1992</td><td class="line">TerminalProfile*</td></tr>
+<tr class="codeline" data-linenumber="1993"><td class="num" id="LN1993">1993</td><td class="line">terminal_app_get_profile_by_name (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="1994"><td class="num" id="LN1994">1994</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *name)</td></tr>
+<tr class="codeline" data-linenumber="1995"><td class="num" id="LN1995">1995</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1996"><td class="num" id="LN1996">1996</td><td class="line"> <span class='macro'>g_return_val_if_fail (TERMINAL_IS_APP (app), NULL)<span class='macro_popup'>do { if (((((__extension__ ({ GTypeInstance *__inst = (GTypeInstance<br>*) ((app)); GType __t = ((terminal_app_get_type ())); gboolean<br> __r; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; })))))) { }<br> else { g_return_if_fail_warning (((gchar*) 0), ((const char*<br>) (__func__)), "TERMINAL_IS_APP (app)"); return (((void*)0));<br> } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1997"><td class="num" id="LN1997">1997</td><td class="line"> <span class='macro'>g_return_val_if_fail (name != NULL, NULL)<span class='macro_popup'>do { if ((name != ((void*)0))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "name != NULL"); return<br> (((void*)0)); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1998"><td class="num" id="LN1998">1998</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1999"><td class="num" id="LN1999">1999</td><td class="line"> <span class='keyword'>return</span> g_hash_table_lookup (app-&gt;profiles, name);</td></tr>
+<tr class="codeline" data-linenumber="2000"><td class="num" id="LN2000">2000</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="2001"><td class="num" id="LN2001">2001</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2002"><td class="num" id="LN2002">2002</td><td class="line">TerminalProfile*</td></tr>
+<tr class="codeline" data-linenumber="2003"><td class="num" id="LN2003">2003</td><td class="line">terminal_app_get_profile_by_visible_name (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="2004"><td class="num" id="LN2004">2004</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *name)</td></tr>
+<tr class="codeline" data-linenumber="2005"><td class="num" id="LN2005">2005</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="2006"><td class="num" id="LN2006">2006</td><td class="line"> LookupInfo info;</td></tr>
+<tr class="codeline" data-linenumber="2007"><td class="num" id="LN2007">2007</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2008"><td class="num" id="LN2008">2008</td><td class="line"> <span class='macro'>g_return_val_if_fail (TERMINAL_IS_APP (app), NULL)<span class='macro_popup'>do { if (((((__extension__ ({ GTypeInstance *__inst = (GTypeInstance<br>*) ((app)); GType __t = ((terminal_app_get_type ())); gboolean<br> __r; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; })))))) { }<br> else { g_return_if_fail_warning (((gchar*) 0), ((const char*<br>) (__func__)), "TERMINAL_IS_APP (app)"); return (((void*)0));<br> } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2009"><td class="num" id="LN2009">2009</td><td class="line"> <span class='macro'>g_return_val_if_fail (name != NULL, NULL)<span class='macro_popup'>do { if ((name != ((void*)0))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "name != NULL"); return<br> (((void*)0)); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2010"><td class="num" id="LN2010">2010</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2011"><td class="num" id="LN2011">2011</td><td class="line"> info.result = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2012"><td class="num" id="LN2012">2012</td><td class="line"> info.target = name;</td></tr>
+<tr class="codeline" data-linenumber="2013"><td class="num" id="LN2013">2013</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2014"><td class="num" id="LN2014">2014</td><td class="line"> g_hash_table_foreach (app-&gt;profiles,</td></tr>
+<tr class="codeline" data-linenumber="2015"><td class="num" id="LN2015">2015</td><td class="line"> profiles_lookup_by_visible_name_foreach,</td></tr>
+<tr class="codeline" data-linenumber="2016"><td class="num" id="LN2016">2016</td><td class="line"> &amp;info);</td></tr>
+<tr class="codeline" data-linenumber="2017"><td class="num" id="LN2017">2017</td><td class="line"> <span class='keyword'>return</span> info.result;</td></tr>
+<tr class="codeline" data-linenumber="2018"><td class="num" id="LN2018">2018</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="2019"><td class="num" id="LN2019">2019</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2020"><td class="num" id="LN2020">2020</td><td class="line">TerminalProfile*</td></tr>
+<tr class="codeline" data-linenumber="2021"><td class="num" id="LN2021">2021</td><td class="line">terminal_app_get_default_profile (TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="2022"><td class="num" id="LN2022">2022</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="2023"><td class="num" id="LN2023">2023</td><td class="line"> <span class='macro'>g_return_val_if_fail (TERMINAL_IS_APP (app), NULL)<span class='macro_popup'>do { if (((((__extension__ ({ GTypeInstance *__inst = (GTypeInstance<br>*) ((app)); GType __t = ((terminal_app_get_type ())); gboolean<br> __r; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; })))))) { }<br> else { g_return_if_fail_warning (((gchar*) 0), ((const char*<br>) (__func__)), "TERMINAL_IS_APP (app)"); return (((void*)0));<br> } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2024"><td class="num" id="LN2024">2024</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2025"><td class="num" id="LN2025">2025</td><td class="line"> <span class='keyword'>return</span> app-&gt;default_profile;</td></tr>
+<tr class="codeline" data-linenumber="2026"><td class="num" id="LN2026">2026</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="2027"><td class="num" id="LN2027">2027</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2028"><td class="num" id="LN2028">2028</td><td class="line">TerminalProfile*</td></tr>
+<tr class="codeline" data-linenumber="2029"><td class="num" id="LN2029">2029</td><td class="line">terminal_app_get_profile_for_new_term (TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="2030"><td class="num" id="LN2030">2030</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="2031"><td class="num" id="LN2031">2031</td><td class="line"> GHashTableIter iter;</td></tr>
+<tr class="codeline" data-linenumber="2032"><td class="num" id="LN2032">2032</td><td class="line"> TerminalProfile *profile = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2033"><td class="num" id="LN2033">2033</td><td class="line"> TerminalProfile **profileptr = &amp;profile;</td></tr>
+<tr class="codeline" data-linenumber="2034"><td class="num" id="LN2034">2034</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2035"><td class="num" id="LN2035">2035</td><td class="line"> <span class='macro'>g_return_val_if_fail (TERMINAL_IS_APP (app), NULL)<span class='macro_popup'>do { if (((((__extension__ ({ GTypeInstance *__inst = (GTypeInstance<br>*) ((app)); GType __t = ((terminal_app_get_type ())); gboolean<br> __r; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; })))))) { }<br> else { g_return_if_fail_warning (((gchar*) 0), ((const char*<br>) (__func__)), "TERMINAL_IS_APP (app)"); return (((void*)0));<br> } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2036"><td class="num" id="LN2036">2036</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2037"><td class="num" id="LN2037">2037</td><td class="line"> <span class='keyword'>if</span> (app-&gt;default_profile)</td></tr>
+<tr class="codeline" data-linenumber="2038"><td class="num" id="LN2038">2038</td><td class="line"> <span class='keyword'>return</span> app-&gt;default_profile;</td></tr>
+<tr class="codeline" data-linenumber="2039"><td class="num" id="LN2039">2039</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2040"><td class="num" id="LN2040">2040</td><td class="line"> g_hash_table_iter_init (&amp;iter, app-&gt;profiles);</td></tr>
+<tr class="codeline" data-linenumber="2041"><td class="num" id="LN2041">2041</td><td class="line"> <span class='keyword'>if</span> (g_hash_table_iter_next (&amp;iter, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, (gpointer *) profileptr))</td></tr>
+<tr class="codeline" data-linenumber="2042"><td class="num" id="LN2042">2042</td><td class="line"> <span class='keyword'>return</span> profile;</td></tr>
+<tr class="codeline" data-linenumber="2043"><td class="num" id="LN2043">2043</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2044"><td class="num" id="LN2044">2044</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2045"><td class="num" id="LN2045">2045</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="2046"><td class="num" id="LN2046">2046</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2047"><td class="num" id="LN2047">2047</td><td class="line">GHashTable *</td></tr>
+<tr class="codeline" data-linenumber="2048"><td class="num" id="LN2048">2048</td><td class="line">terminal_app_get_encodings (TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="2049"><td class="num" id="LN2049">2049</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="2050"><td class="num" id="LN2050">2050</td><td class="line"> <span class='keyword'>return</span> app-&gt;encodings;</td></tr>
+<tr class="codeline" data-linenumber="2051"><td class="num" id="LN2051">2051</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="2052"><td class="num" id="LN2052">2052</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2053"><td class="num" id="LN2053">2053</td><td class="line"><span class='comment'>/**</span></td></tr>
+<tr class="codeline" data-linenumber="2054"><td class="num" id="LN2054">2054</td><td class="line"> <span class='comment'>* terminal_app_ensure_encoding:</span></td></tr>
+<tr class="codeline" data-linenumber="2055"><td class="num" id="LN2055">2055</td><td class="line"> <span class='comment'>* @app:</span></td></tr>
+<tr class="codeline" data-linenumber="2056"><td class="num" id="LN2056">2056</td><td class="line"> <span class='comment'>* @charset:</span></td></tr>
+<tr class="codeline" data-linenumber="2057"><td class="num" id="LN2057">2057</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="2058"><td class="num" id="LN2058">2058</td><td class="line"> <span class='comment'>* Ensures there's a #TerminalEncoding for @charset available.</span></td></tr>
+<tr class="codeline" data-linenumber="2059"><td class="num" id="LN2059">2059</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="2060"><td class="num" id="LN2060">2060</td><td class="line">TerminalEncoding *</td></tr>
+<tr class="codeline" data-linenumber="2061"><td class="num" id="LN2061">2061</td><td class="line">terminal_app_ensure_encoding (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="2062"><td class="num" id="LN2062">2062</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *charset)</td></tr>
+<tr class="codeline" data-linenumber="2063"><td class="num" id="LN2063">2063</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="2064"><td class="num" id="LN2064">2064</td><td class="line"> TerminalEncoding *encoding;</td></tr>
+<tr class="codeline" data-linenumber="2065"><td class="num" id="LN2065">2065</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2066"><td class="num" id="LN2066">2066</td><td class="line"> encoding = g_hash_table_lookup (app-&gt;encodings, charset);</td></tr>
+<tr class="codeline" data-linenumber="2067"><td class="num" id="LN2067">2067</td><td class="line"> <span class='keyword'>if</span> (encoding == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="2068"><td class="num" id="LN2068">2068</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="2069"><td class="num" id="LN2069">2069</td><td class="line"> encoding = terminal_encoding_new (charset,</td></tr>
+<tr class="codeline" data-linenumber="2070"><td class="num" id="LN2070">2070</td><td class="line"> <span class='macro'>_(<span class='string_literal'>"User Defined"</span>)<span class='macro_popup'>gettext ("User Defined")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2071"><td class="num" id="LN2071">2071</td><td class="line"> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2072"><td class="num" id="LN2072">2072</td><td class="line"> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span> <span class='comment'>/* scary! */</span>);</td></tr>
+<tr class="codeline" data-linenumber="2073"><td class="num" id="LN2073">2073</td><td class="line"> g_hash_table_insert (app-&gt;encodings,</td></tr>
+<tr class="codeline" data-linenumber="2074"><td class="num" id="LN2074">2074</td><td class="line"> (gpointer) terminal_encoding_get_id (encoding),</td></tr>
+<tr class="codeline" data-linenumber="2075"><td class="num" id="LN2075">2075</td><td class="line"> encoding);</td></tr>
+<tr class="codeline" data-linenumber="2076"><td class="num" id="LN2076">2076</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="2077"><td class="num" id="LN2077">2077</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2078"><td class="num" id="LN2078">2078</td><td class="line"> <span class='keyword'>return</span> encoding;</td></tr>
+<tr class="codeline" data-linenumber="2079"><td class="num" id="LN2079">2079</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="2080"><td class="num" id="LN2080">2080</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2081"><td class="num" id="LN2081">2081</td><td class="line"><span class='comment'>/**</span></td></tr>
+<tr class="codeline" data-linenumber="2082"><td class="num" id="LN2082">2082</td><td class="line"> <span class='comment'>* terminal_app_get_active_encodings:</span></td></tr>
+<tr class="codeline" data-linenumber="2083"><td class="num" id="LN2083">2083</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="2084"><td class="num" id="LN2084">2084</td><td class="line"> <span class='comment'>* Returns: a newly allocated list of newly referenced #TerminalEncoding objects.</span></td></tr>
+<tr class="codeline" data-linenumber="2085"><td class="num" id="LN2085">2085</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="2086"><td class="num" id="LN2086">2086</td><td class="line">GSList*</td></tr>
+<tr class="codeline" data-linenumber="2087"><td class="num" id="LN2087">2087</td><td class="line">terminal_app_get_active_encodings (TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="2088"><td class="num" id="LN2088">2088</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="2089"><td class="num" id="LN2089">2089</td><td class="line"> GSList *list = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2090"><td class="num" id="LN2090">2090</td><td class="line"> GHashTableIter iter;</td></tr>
+<tr class="codeline" data-linenumber="2091"><td class="num" id="LN2091">2091</td><td class="line"> gpointer key, value;</td></tr>
+<tr class="codeline" data-linenumber="2092"><td class="num" id="LN2092">2092</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2093"><td class="num" id="LN2093">2093</td><td class="line"> g_hash_table_iter_init (&amp;iter, app-&gt;encodings);</td></tr>
+<tr class="codeline" data-linenumber="2094"><td class="num" id="LN2094">2094</td><td class="line"> <span class='keyword'>while</span> (g_hash_table_iter_next (&amp;iter, &amp;key, &amp;value))</td></tr>
+<tr class="codeline" data-linenumber="2095"><td class="num" id="LN2095">2095</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="2096"><td class="num" id="LN2096">2096</td><td class="line"> TerminalEncoding *encoding = (TerminalEncoding *) value;</td></tr>
+<tr class="codeline" data-linenumber="2097"><td class="num" id="LN2097">2097</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2098"><td class="num" id="LN2098">2098</td><td class="line"> <span class='keyword'>if</span> (!encoding-&gt;is_active)</td></tr>
+<tr class="codeline" data-linenumber="2099"><td class="num" id="LN2099">2099</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="2100"><td class="num" id="LN2100">2100</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2101"><td class="num" id="LN2101">2101</td><td class="line"> list = g_slist_prepend (list, terminal_encoding_ref (encoding));</td></tr>
+<tr class="codeline" data-linenumber="2102"><td class="num" id="LN2102">2102</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="2103"><td class="num" id="LN2103">2103</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2104"><td class="num" id="LN2104">2104</td><td class="line"> <span class='keyword'>return</span> g_slist_sort (list, (GCompareFunc) compare_encodings);</td></tr>
+<tr class="codeline" data-linenumber="2105"><td class="num" id="LN2105">2105</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="2106"><td class="num" id="LN2106">2106</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2107"><td class="num" id="LN2107">2107</td><td class="line"><span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="2108"><td class="num" id="LN2108">2108</td><td class="line">terminal_app_save_config (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="2109"><td class="num" id="LN2109">2109</td><td class="line"> GKeyFile *key_file)</td></tr>
+<tr class="codeline" data-linenumber="2110"><td class="num" id="LN2110">2110</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="2111"><td class="num" id="LN2111">2111</td><td class="line"> GList *lw;</td></tr>
+<tr class="codeline" data-linenumber="2112"><td class="num" id="LN2112">2112</td><td class="line"> guint n = 0;</td></tr>
+<tr class="codeline" data-linenumber="2113"><td class="num" id="LN2113">2113</td><td class="line"> GPtrArray *window_names_array;</td></tr>
+<tr class="codeline" data-linenumber="2114"><td class="num" id="LN2114">2114</td><td class="line"> <span class='keyword'>char</span> **window_names;</td></tr>
+<tr class="codeline" data-linenumber="2115"><td class="num" id="LN2115">2115</td><td class="line"> gsize len;</td></tr>
+<tr class="codeline" data-linenumber="2116"><td class="num" id="LN2116">2116</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2117"><td class="num" id="LN2117">2117</td><td class="line"> g_key_file_set_comment (key_file, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='string_literal'>"Written by "</span> <span class='macro'>PACKAGE_STRING<span class='macro_popup'>"mate-terminal 1.27.1"</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="2118"><td class="num" id="LN2118">2118</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2119"><td class="num" id="LN2119">2119</td><td class="line"> g_key_file_set_integer (key_file, <span class='macro'>TERMINAL_CONFIG_GROUP<span class='macro_popup'>"MATE Terminal Configuration"</span></span>, <span class='macro'>TERMINAL_CONFIG_PROP_VERSION<span class='macro_popup'>"Version"</span></span>, <span class='macro'>TERMINAL_CONFIG_VERSION<span class='macro_popup'>(1)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="2120"><td class="num" id="LN2120">2120</td><td class="line"> g_key_file_set_integer (key_file, <span class='macro'>TERMINAL_CONFIG_GROUP<span class='macro_popup'>"MATE Terminal Configuration"</span></span>, <span class='macro'>TERMINAL_CONFIG_PROP_COMPAT_VERSION<span class='macro_popup'>"CompatVersion"</span></span>, <span class='macro'>TERMINAL_CONFIG_COMPAT_VERSION<span class='macro_popup'>(1)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="2121"><td class="num" id="LN2121">2121</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2122"><td class="num" id="LN2122">2122</td><td class="line"> window_names_array = g_ptr_array_sized_new (g_list_length (app-&gt;windows) + 1);</td></tr>
+<tr class="codeline" data-linenumber="2123"><td class="num" id="LN2123">2123</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2124"><td class="num" id="LN2124">2124</td><td class="line"> <span class='keyword'>for</span> (lw = app-&gt;windows; lw != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; lw = lw-&gt;next)</td></tr>
+<tr class="codeline" data-linenumber="2125"><td class="num" id="LN2125">2125</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="2126"><td class="num" id="LN2126">2126</td><td class="line"> TerminalWindow *window = <span class='macro'>TERMINAL_WINDOW (lw-&gt;data)<span class='macro_popup'>((((TerminalWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((lw-&gt;data)), ((terminal_window_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2127"><td class="num" id="LN2127">2127</td><td class="line"> <span class='keyword'>char</span> *group;</td></tr>
+<tr class="codeline" data-linenumber="2128"><td class="num" id="LN2128">2128</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2129"><td class="num" id="LN2129">2129</td><td class="line"> group = g_strdup_printf (<span class='string_literal'>"Window%u"</span>, n++);</td></tr>
+<tr class="codeline" data-linenumber="2130"><td class="num" id="LN2130">2130</td><td class="line"> g_ptr_array_add (window_names_array, group);</td></tr>
+<tr class="codeline" data-linenumber="2131"><td class="num" id="LN2131">2131</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2132"><td class="num" id="LN2132">2132</td><td class="line"> terminal_window_save_state (window, key_file, group);</td></tr>
+<tr class="codeline" data-linenumber="2133"><td class="num" id="LN2133">2133</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="2134"><td class="num" id="LN2134">2134</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2135"><td class="num" id="LN2135">2135</td><td class="line"> len = window_names_array-&gt;len;</td></tr>
+<tr class="codeline" data-linenumber="2136"><td class="num" id="LN2136">2136</td><td class="line"> g_ptr_array_add (window_names_array, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="2137"><td class="num" id="LN2137">2137</td><td class="line"> window_names = (<span class='keyword'>char</span> **) g_ptr_array_free (window_names_array, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="2138"><td class="num" id="LN2138">2138</td><td class="line"> g_key_file_set_string_list (key_file, <span class='macro'>TERMINAL_CONFIG_GROUP<span class='macro_popup'>"MATE Terminal Configuration"</span></span>, <span class='macro'>TERMINAL_CONFIG_PROP_WINDOWS<span class='macro_popup'>"Windows"</span></span>, (<span class='keyword'>const</span> <span class='keyword'>char</span> * <span class='keyword'>const</span> *) window_names, len);</td></tr>
+<tr class="codeline" data-linenumber="2139"><td class="num" id="LN2139">2139</td><td class="line"> g_strfreev (window_names);</td></tr>
+<tr class="codeline" data-linenumber="2140"><td class="num" id="LN2140">2140</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="2141"><td class="num" id="LN2141">2141</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2142"><td class="num" id="LN2142">2142</td><td class="line">gboolean</td></tr>
+<tr class="codeline" data-linenumber="2143"><td class="num" id="LN2143">2143</td><td class="line">terminal_app_save_config_file (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="2144"><td class="num" id="LN2144">2144</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *file_name,</td></tr>
+<tr class="codeline" data-linenumber="2145"><td class="num" id="LN2145">2145</td><td class="line"> GError **error)</td></tr>
+<tr class="codeline" data-linenumber="2146"><td class="num" id="LN2146">2146</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="2147"><td class="num" id="LN2147">2147</td><td class="line"> GKeyFile *key_file;</td></tr>
+<tr class="codeline" data-linenumber="2148"><td class="num" id="LN2148">2148</td><td class="line"> <span class='keyword'>char</span> *data;</td></tr>
+<tr class="codeline" data-linenumber="2149"><td class="num" id="LN2149">2149</td><td class="line"> gsize len;</td></tr>
+<tr class="codeline" data-linenumber="2150"><td class="num" id="LN2150">2150</td><td class="line"> gboolean result;</td></tr>
+<tr class="codeline" data-linenumber="2151"><td class="num" id="LN2151">2151</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2152"><td class="num" id="LN2152">2152</td><td class="line"> key_file = g_key_file_new ();</td></tr>
+<tr class="codeline" data-linenumber="2153"><td class="num" id="LN2153">2153</td><td class="line"> terminal_app_save_config (app, key_file);</td></tr>
+<tr class="codeline" data-linenumber="2154"><td class="num" id="LN2154">2154</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2155"><td class="num" id="LN2155">2155</td><td class="line"> data = g_key_file_to_data (key_file, &amp;len, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="2156"><td class="num" id="LN2156">2156</td><td class="line"> result = g_file_set_contents (file_name, data, len, error);</td></tr>
+<tr class="codeline" data-linenumber="2157"><td class="num" id="LN2157">2157</td><td class="line"> g_free (data);</td></tr>
+<tr class="codeline" data-linenumber="2158"><td class="num" id="LN2158">2158</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2159"><td class="num" id="LN2159">2159</td><td class="line"> <span class='keyword'>return</span> result;</td></tr>
+<tr class="codeline" data-linenumber="2160"><td class="num" id="LN2160">2160</td><td class="line">}</td></tr>
+</table></body></html>
diff --git a/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-215a71.html b/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-215a71.html
new file mode 100644
index 0000000..aaaece2
--- /dev/null
+++ b/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-215a71.html
@@ -0,0 +1,2840 @@
+<!doctype html>
+<html>
+<head>
+<title>terminal-app.c</title>
+
+<style type="text/css">
+body { color:#000000; background-color:#ffffff }
+body { font-family:Helvetica, sans-serif; font-size:10pt }
+h1 { font-size:14pt }
+.FileName { margin-top: 5px; margin-bottom: 5px; display: inline; }
+.FileNav { margin-left: 5px; margin-right: 5px; display: inline; }
+.FileNav a { text-decoration:none; font-size: larger; }
+.divider { margin-top: 30px; margin-bottom: 30px; height: 15px; }
+.divider { background-color: gray; }
+.code { border-collapse:collapse; width:100%; }
+.code { font-family: "Monospace", monospace; font-size:10pt }
+.code { line-height: 1.2em }
+.comment { color: green; font-style: oblique }
+.keyword { color: blue }
+.string_literal { color: red }
+.directive { color: darkmagenta }
+
+/* Macros and variables could have pop-up notes hidden by default.
+ - Macro pop-up: expansion of the macro
+ - Variable pop-up: value (table) of the variable */
+.macro_popup, .variable_popup { display: none; }
+
+/* Pop-up appears on mouse-hover event. */
+.macro:hover .macro_popup, .variable:hover .variable_popup {
+ display: block;
+ padding: 2px;
+ -webkit-border-radius:5px;
+ -webkit-box-shadow:1px 1px 7px #000;
+ border-radius:5px;
+ box-shadow:1px 1px 7px #000;
+ position: absolute;
+ top: -1em;
+ left:10em;
+ z-index: 1
+}
+
+.macro_popup {
+ border: 2px solid red;
+ background-color:#FFF0F0;
+ font-weight: normal;
+}
+
+.variable_popup {
+ border: 2px solid blue;
+ background-color:#F0F0FF;
+ font-weight: bold;
+ font-family: Helvetica, sans-serif;
+ font-size: 9pt;
+}
+
+/* Pop-up notes needs a relative position as a base where they pops up. */
+.macro, .variable {
+ background-color: PaleGoldenRod;
+ position: relative;
+}
+.macro { color: DarkMagenta; }
+
+#tooltiphint {
+ position: fixed;
+ width: 50em;
+ margin-left: -25em;
+ left: 50%;
+ padding: 10px;
+ border: 1px solid #b0b0b0;
+ border-radius: 2px;
+ box-shadow: 1px 1px 7px black;
+ background-color: #c0c0c0;
+ z-index: 2;
+}
+
+.num { width:2.5em; padding-right:2ex; background-color:#eeeeee }
+.num { text-align:right; font-size:8pt }
+.num { color:#444444 }
+.line { padding-left: 1ex; border-left: 3px solid #ccc }
+.line { white-space: pre }
+.msg { -webkit-box-shadow:1px 1px 7px #000 }
+.msg { box-shadow:1px 1px 7px #000 }
+.msg { -webkit-border-radius:5px }
+.msg { border-radius:5px }
+.msg { font-family:Helvetica, sans-serif; font-size:8pt }
+.msg { float:left }
+.msg { position:relative }
+.msg { padding:0.25em 1ex 0.25em 1ex }
+.msg { margin-top:10px; margin-bottom:10px }
+.msg { font-weight:bold }
+.msg { max-width:60em; word-wrap: break-word; white-space: pre-wrap }
+.msgT { padding:0x; spacing:0x }
+.msgEvent { background-color:#fff8b4; color:#000000 }
+.msgControl { background-color:#bbbbbb; color:#000000 }
+.msgNote { background-color:#ddeeff; color:#000000 }
+.mrange { background-color:#dfddf3 }
+.mrange { border-bottom:1px solid #6F9DBE }
+.PathIndex { font-weight: bold; padding:0px 5px; margin-right:5px; }
+.PathIndex { -webkit-border-radius:8px }
+.PathIndex { border-radius:8px }
+.PathIndexEvent { background-color:#bfba87 }
+.PathIndexControl { background-color:#8c8c8c }
+.PathIndexPopUp { background-color: #879abc; }
+.PathNav a { text-decoration:none; font-size: larger }
+.CodeInsertionHint { font-weight: bold; background-color: #10dd10 }
+.CodeRemovalHint { background-color:#de1010 }
+.CodeRemovalHint { border-bottom:1px solid #6F9DBE }
+.msg.selected{ background-color:orange !important; }
+
+table.simpletable {
+ padding: 5px;
+ font-size:12pt;
+ margin:20px;
+ border-collapse: collapse; border-spacing: 0px;
+}
+td.rowname {
+ text-align: right;
+ vertical-align: top;
+ font-weight: bold;
+ color:#444444;
+ padding-right:2ex;
+}
+
+/* Hidden text. */
+input.spoilerhider + label {
+ cursor: pointer;
+ text-decoration: underline;
+ display: block;
+}
+input.spoilerhider {
+ display: none;
+}
+input.spoilerhider ~ .spoiler {
+ overflow: hidden;
+ margin: 10px auto 0;
+ height: 0;
+ opacity: 0;
+}
+input.spoilerhider:checked + label + .spoiler{
+ height: auto;
+ opacity: 1;
+}
+</style>
+</head>
+<body>
+<!-- BUGDESC Casting a non-structure type to a structure type and accessing a field can lead to memory access errors or data corruption -->
+
+<!-- BUGTYPE Cast from non-struct type to struct type -->
+
+<!-- BUGCATEGORY Logic error -->
+
+<!-- BUGFILE /rootdir/src/terminal-app.c -->
+
+<!-- FILENAME terminal-app.c -->
+
+<!-- FUNCTIONNAME terminal_app_system_font_notify_cb -->
+
+<!-- ISSUEHASHCONTENTOFLINEINCONTEXT 215a71bebfb1f3a08b228ee69e23a489 -->
+
+<!-- BUGLINE 1043 -->
+
+<!-- BUGCOLUMN 37 -->
+
+<!-- BUGPATHLENGTH 1 -->
+
+<!-- BUGMETAEND -->
+<!-- REPORTHEADER -->
+<h3>Bug Summary</h3>
+<table class="simpletable">
+<tr><td class="rowname">File:</td><td>terminal-app.c</td></tr>
+<tr><td class="rowname">Warning:</td><td><a href="#EndPath">line 1043, column 37</a><br />Casting a non-structure type to a structure type and accessing a field can lead to memory access errors or data corruption</td></tr>
+
+</table>
+<!-- REPORTSUMMARYEXTRA -->
+<h3>Annotated Source Code</h3>
+<p>Press <a href="#" onclick="toggleHelp(); return false;">'?'</a>
+ to see keyboard shortcuts</p>
+<input type="checkbox" class="spoilerhider" id="showinvocation" />
+<label for="showinvocation" >Show analyzer invocation</label>
+<div class="spoiler">clang -cc1 -cc1 -triple x86_64-redhat-linux-gnu -analyze -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name terminal-app.c -analyzer-checker=core -analyzer-checker=apiModeling -analyzer-checker=unix -analyzer-checker=deadcode -analyzer-checker=security.insecureAPI.UncheckedReturn -analyzer-checker=security.insecureAPI.getpw -analyzer-checker=security.insecureAPI.gets -analyzer-checker=security.insecureAPI.mktemp -analyzer-checker=security.insecureAPI.mkstemp -analyzer-checker=security.insecureAPI.vfork -analyzer-checker=nullability.NullPassedToNonnull -analyzer-checker=nullability.NullReturnedFromNonnull -analyzer-output plist -w -setup-static-analyzer -mrelocation-model static -mframe-pointer=all -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -tune-cpu generic -debugger-tuning=gdb -fcoverage-compilation-dir=/rootdir/src -resource-dir /usr/bin/../lib/clang/17 -D HAVE_CONFIG_H -I . -I .. -I ../src/mate-submodules/libegg -D TERMINAL_COMPILATION -D TERMINAL_RESOURCES_PATH_PREFIX="/org/mate/terminal" -D TERM_DATADIR="/usr/local/share" -D TERM_LOCALEDIR="/usr/local/share/locale" -D TERM_PKGDATADIR="/usr/local/share/mate-terminal" -D TERM_HELPDIR="/usr/local/share/help" -D SN_API_NOT_YET_FROZEN -D GDK_MULTIHEAD_SAFE -D G_DISABLE_SINGLE_INCLUDES -D PANGO_DISABLE_SINGLE_INCLUDES -D ATK_DISABLE_SINGLE_INCLUDES -D GDK_DISABLE_SINGLE_INCLUDES -D GDK_PIXBUF_DISABLE_SINGLE_INCLUDES -D GTK_DISABLE_SINGLE_INCLUDES -I /usr/include/dconf -I /usr/include/vte-2.91 -I /usr/include/pango-1.0 -I /usr/include/gtk-3.0 -I /usr/include/gdk-pixbuf-2.0 -I /usr/include/cairo -I /usr/include/dbus-1.0 -I /usr/lib64/dbus-1.0/include -I /usr/include/atk-1.0 -I /usr/include/harfbuzz -I /usr/include/freetype2 -I /usr/include/glib-2.0 -I /usr/lib64/glib-2.0/include -I /usr/include/cloudproviders -I /usr/include/at-spi2-atk/2.0 -I /usr/include/at-spi-2.0 -I /usr/include/blkid -I /usr/include/gio-unix-2.0 -I /usr/include/pixman-1 -I /usr/include/libmount -I /usr/include/libxml2 -I /usr/include/fribidi -I /usr/include/libpng16 -I /usr/include/sysprof-6 -internal-isystem /usr/bin/../lib/clang/17/include -internal-isystem /usr/local/include -internal-isystem /usr/bin/../lib/gcc/x86_64-redhat-linux/13/../../../../x86_64-redhat-linux/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -Wno-unused-parameter -fdebug-compilation-dir=/rootdir/src -ferror-limit 19 -fgnuc-version=4.2.1 -analyzer-checker deadcode.DeadStores -analyzer-checker alpha.deadcode.UnreachableCode -analyzer-checker alpha.core.CastSize -analyzer-checker alpha.core.CastToStruct -analyzer-checker alpha.core.IdenticalExpr -analyzer-checker alpha.core.SizeofPtr -analyzer-checker alpha.security.ArrayBoundV2 -analyzer-checker alpha.security.MallocOverflow -analyzer-checker alpha.security.ReturnPtrRange -analyzer-checker alpha.unix.SimpleStream -analyzer-checker alpha.unix.cstring.BufferOverlap -analyzer-checker alpha.unix.cstring.NotNullTerminated -analyzer-checker alpha.unix.cstring.OutOfBounds -analyzer-checker alpha.core.FixedAddr -analyzer-checker security.insecureAPI.strcpy -analyzer-output=html -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /rootdir/html-report/2024-02-18-131424-5067-1 -x c terminal-app.c
+</div>
+<div id='tooltiphint' hidden="true">
+ <p>Keyboard shortcuts: </p>
+ <ul>
+ <li>Use 'j/k' keys for keyboard navigation</li>
+ <li>Use 'Shift+S' to show/hide relevant lines</li>
+ <li>Use '?' to toggle this window</li>
+ </ul>
+ <a href="#" onclick="toggleHelp(); return false;">Close</a>
+</div>
+<script type='text/javascript'>
+var relevant_lines = {"1": {"1043": 1}};
+
+var filterCounterexample = function (hide) {
+ var tables = document.getElementsByClassName("code");
+ for (var t=0; t<tables.length; t++) {
+ var table = tables[t];
+ var file_id = table.getAttribute("data-fileid");
+ var lines_in_fid = relevant_lines[file_id];
+ if (!lines_in_fid) {
+ lines_in_fid = {};
+ }
+ var lines = table.getElementsByClassName("codeline");
+ for (var i=0; i<lines.length; i++) {
+ var el = lines[i];
+ var lineNo = el.getAttribute("data-linenumber");
+ if (!lines_in_fid[lineNo]) {
+ if (hide) {
+ el.setAttribute("hidden", "");
+ } else {
+ el.removeAttribute("hidden");
+ }
+ }
+ }
+ }
+}
+
+window.addEventListener("keydown", function (event) {
+ if (event.defaultPrevented) {
+ return;
+ }
+ // SHIFT + S
+ if (event.shiftKey && event.keyCode == 83) {
+ var checked = document.getElementsByName("showCounterexample")[0].checked;
+ filterCounterexample(!checked);
+ document.getElementsByName("showCounterexample")[0].click();
+ } else {
+ return;
+ }
+ event.preventDefault();
+}, true);
+
+document.addEventListener("DOMContentLoaded", function() {
+ document.querySelector('input[name="showCounterexample"]').onchange=
+ function (event) {
+ filterCounterexample(this.checked);
+ };
+});
+</script>
+
+<form>
+ <input type="checkbox" name="showCounterexample" id="showCounterexample" />
+ <label for="showCounterexample">
+ Show only relevant lines
+ </label>
+ <input type="checkbox" name="showArrows"
+ id="showArrows" style="margin-left: 10px" />
+ <label for="showArrows">
+ Show control flow arrows
+ </label>
+</form>
+
+<script type='text/javascript'>
+// Return range of numbers from a range [lower, upper).
+function range(lower, upper) {
+ var array = [];
+ for (var i = lower; i <= upper; ++i) {
+ array.push(i);
+ }
+ return array;
+}
+
+var getRelatedArrowIndices = function(pathId) {
+ // HTML numeration of events is a bit different than it is in the path.
+ // Everything is rotated one step to the right, so the last element
+ // (error diagnostic) has index 0.
+ if (pathId == 0) {
+ // arrowIndices has at least 2 elements
+ pathId = arrowIndices.length - 1;
+ }
+
+ return range(arrowIndices[pathId], arrowIndices[pathId - 1]);
+}
+
+var highlightArrowsForSelectedEvent = function() {
+ const selectedNum = findNum();
+ const arrowIndicesToHighlight = getRelatedArrowIndices(selectedNum);
+ arrowIndicesToHighlight.forEach((index) => {
+ var arrow = document.querySelector("#arrow" + index);
+ if(arrow) {
+ classListAdd(arrow, "selected")
+ }
+ });
+}
+
+var getAbsoluteBoundingRect = function(element) {
+ const relative = element.getBoundingClientRect();
+ return {
+ left: relative.left + window.pageXOffset,
+ right: relative.right + window.pageXOffset,
+ top: relative.top + window.pageYOffset,
+ bottom: relative.bottom + window.pageYOffset,
+ height: relative.height,
+ width: relative.width
+ };
+}
+
+var drawArrow = function(index) {
+ // This function is based on the great answer from SO:
+ // https://stackoverflow.com/a/39575674/11582326
+ var start = document.querySelector("#start" + index);
+ var end = document.querySelector("#end" + index);
+ var arrow = document.querySelector("#arrow" + index);
+
+ var startRect = getAbsoluteBoundingRect(start);
+ var endRect = getAbsoluteBoundingRect(end);
+
+ // It is an arrow from a token to itself, no need to visualize it.
+ if (startRect.top == endRect.top &&
+ startRect.left == endRect.left)
+ return;
+
+ // Each arrow is a very simple Bézier curve, with two nodes and
+ // two handles. So, we need to calculate four points in the window:
+ // * start node
+ var posStart = { x: 0, y: 0 };
+ // * end node
+ var posEnd = { x: 0, y: 0 };
+ // * handle for the start node
+ var startHandle = { x: 0, y: 0 };
+ // * handle for the end node
+ var endHandle = { x: 0, y: 0 };
+ // One can visualize it as follows:
+ //
+ // start handle
+ // /
+ // X"""_.-""""X
+ // .' \
+ // / start node
+ // |
+ // |
+ // | end node
+ // \ /
+ // `->X
+ // X-'
+ // \
+ // end handle
+ //
+ // NOTE: (0, 0) is the top left corner of the window.
+
+ // We have 3 similar, but still different scenarios to cover:
+ //
+ // 1. Two tokens on different lines.
+ // -xxx
+ // /
+ // \
+ // -> xxx
+ // In this situation, we draw arrow on the left curving to the left.
+ // 2. Two tokens on the same line, and the destination is on the right.
+ // ____
+ // / \
+ // / V
+ // xxx xxx
+ // In this situation, we draw arrow above curving upwards.
+ // 3. Two tokens on the same line, and the destination is on the left.
+ // xxx xxx
+ // ^ /
+ // \____/
+ // In this situation, we draw arrow below curving downwards.
+ const onDifferentLines = startRect.top <= endRect.top - 5 ||
+ startRect.top >= endRect.top + 5;
+ const leftToRight = startRect.left < endRect.left;
+
+ // NOTE: various magic constants are chosen empirically for
+ // better positioning and look
+ if (onDifferentLines) {
+ // Case #1
+ const topToBottom = startRect.top < endRect.top;
+ posStart.x = startRect.left - 1;
+ // We don't want to start it at the top left corner of the token,
+ // it doesn't feel like this is where the arrow comes from.
+ // For this reason, we start it in the middle of the left side
+ // of the token.
+ posStart.y = startRect.top + startRect.height / 2;
+
+ // End node has arrow head and we give it a bit more space.
+ posEnd.x = endRect.left - 4;
+ posEnd.y = endRect.top;
+
+ // Utility object with x and y offsets for handles.
+ var curvature = {
+ // We want bottom-to-top arrow to curve a bit more, so it doesn't
+ // overlap much with top-to-bottom curves (much more frequent).
+ x: topToBottom ? 15 : 25,
+ y: Math.min((posEnd.y - posStart.y) / 3, 10)
+ }
+
+ // When destination is on the different line, we can make a
+ // curvier arrow because we have space for it.
+ // So, instead of using
+ //
+ // startHandle.x = posStart.x - curvature.x
+ // endHandle.x = posEnd.x - curvature.x
+ //
+ // We use the leftmost of these two values for both handles.
+ startHandle.x = Math.min(posStart.x, posEnd.x) - curvature.x;
+ endHandle.x = startHandle.x;
+
+ // Curving downwards from the start node...
+ startHandle.y = posStart.y + curvature.y;
+ // ... and upwards from the end node.
+ endHandle.y = posEnd.y - curvature.y;
+
+ } else if (leftToRight) {
+ // Case #2
+ // Starting from the top right corner...
+ posStart.x = startRect.right - 1;
+ posStart.y = startRect.top;
+
+ // ...and ending at the top left corner of the end token.
+ posEnd.x = endRect.left + 1;
+ posEnd.y = endRect.top - 1;
+
+ // Utility object with x and y offsets for handles.
+ var curvature = {
+ x: Math.min((posEnd.x - posStart.x) / 3, 15),
+ y: 5
+ }
+
+ // Curving to the right...
+ startHandle.x = posStart.x + curvature.x;
+ // ... and upwards from the start node.
+ startHandle.y = posStart.y - curvature.y;
+
+ // And to the left...
+ endHandle.x = posEnd.x - curvature.x;
+ // ... and upwards from the end node.
+ endHandle.y = posEnd.y - curvature.y;
+
+ } else {
+ // Case #3
+ // Starting from the bottom right corner...
+ posStart.x = startRect.right;
+ posStart.y = startRect.bottom;
+
+ // ...and ending also at the bottom right corner, but of the end token.
+ posEnd.x = endRect.right - 1;
+ posEnd.y = endRect.bottom + 1;
+
+ // Utility object with x and y offsets for handles.
+ var curvature = {
+ x: Math.min((posStart.x - posEnd.x) / 3, 15),
+ y: 5
+ }
+
+ // Curving to the left...
+ startHandle.x = posStart.x - curvature.x;
+ // ... and downwards from the start node.
+ startHandle.y = posStart.y + curvature.y;
+
+ // And to the right...
+ endHandle.x = posEnd.x + curvature.x;
+ // ... and downwards from the end node.
+ endHandle.y = posEnd.y + curvature.y;
+ }
+
+ // Put it all together into a path.
+ // More information on the format:
+ // https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths
+ var pathStr = "M" + posStart.x + "," + posStart.y + " " +
+ "C" + startHandle.x + "," + startHandle.y + " " +
+ endHandle.x + "," + endHandle.y + " " +
+ posEnd.x + "," + posEnd.y;
+
+ arrow.setAttribute("d", pathStr);
+};
+
+var drawArrows = function() {
+ const numOfArrows = document.querySelectorAll("path[id^=arrow]").length;
+ for (var i = 0; i < numOfArrows; ++i) {
+ drawArrow(i);
+ }
+}
+
+var toggleArrows = function(event) {
+ const arrows = document.querySelector("#arrows");
+ if (event.target.checked) {
+ arrows.setAttribute("visibility", "visible");
+ } else {
+ arrows.setAttribute("visibility", "hidden");
+ }
+}
+
+window.addEventListener("resize", drawArrows);
+document.addEventListener("DOMContentLoaded", function() {
+ // Whenever we show invocation, locations change, i.e. we
+ // need to redraw arrows.
+ document
+ .querySelector('input[id="showinvocation"]')
+ .addEventListener("click", drawArrows);
+ // Hiding irrelevant lines also should cause arrow rerender.
+ document
+ .querySelector('input[name="showCounterexample"]')
+ .addEventListener("change", drawArrows);
+ document
+ .querySelector('input[name="showArrows"]')
+ .addEventListener("change", toggleArrows);
+ drawArrows();
+ // Default highlighting for the last event.
+ highlightArrowsForSelectedEvent();
+});
+</script>
+
+<script type='text/javascript'>
+var digitMatcher = new RegExp("[0-9]+");
+
+var querySelectorAllArray = function(selector) {
+ return Array.prototype.slice.call(
+ document.querySelectorAll(selector));
+}
+
+document.addEventListener("DOMContentLoaded", function() {
+ querySelectorAllArray(".PathNav > a").forEach(
+ function(currentValue, currentIndex) {
+ var hrefValue = currentValue.getAttribute("href");
+ currentValue.onclick = function() {
+ scrollTo(document.querySelector(hrefValue));
+ return false;
+ };
+ });
+});
+
+var findNum = function() {
+ var s = document.querySelector(".msg.selected");
+ if (!s || s.id == "EndPath") {
+ return 0;
+ }
+ var out = parseInt(digitMatcher.exec(s.id)[0]);
+ return out;
+};
+
+var classListAdd = function(el, theClass) {
+ if(!el.className.baseVal)
+ el.className += " " + theClass;
+ else
+ el.className.baseVal += " " + theClass;
+};
+
+var classListRemove = function(el, theClass) {
+ var className = (!el.className.baseVal) ?
+ el.className : el.className.baseVal;
+ className = className.replace(" " + theClass, "");
+ if(!el.className.baseVal)
+ el.className = className;
+ else
+ el.className.baseVal = className;
+};
+
+var scrollTo = function(el) {
+ querySelectorAllArray(".selected").forEach(function(s) {
+ classListRemove(s, "selected");
+ });
+ classListAdd(el, "selected");
+ window.scrollBy(0, el.getBoundingClientRect().top -
+ (window.innerHeight / 2));
+ highlightArrowsForSelectedEvent();
+};
+
+var move = function(num, up, numItems) {
+ if (num == 1 && up || num == numItems - 1 && !up) {
+ return 0;
+ } else if (num == 0 && up) {
+ return numItems - 1;
+ } else if (num == 0 && !up) {
+ return 1 % numItems;
+ }
+ return up ? num - 1 : num + 1;
+}
+
+var numToId = function(num) {
+ if (num == 0) {
+ return document.getElementById("EndPath")
+ }
+ return document.getElementById("Path" + num);
+};
+
+var navigateTo = function(up) {
+ var numItems = document.querySelectorAll(
+ ".line > .msgEvent, .line > .msgControl").length;
+ var currentSelected = findNum();
+ var newSelected = move(currentSelected, up, numItems);
+ var newEl = numToId(newSelected, numItems);
+
+ // Scroll element into center.
+ scrollTo(newEl);
+};
+
+window.addEventListener("keydown", function (event) {
+ if (event.defaultPrevented) {
+ return;
+ }
+ // key 'j'
+ if (event.keyCode == 74) {
+ navigateTo(/*up=*/false);
+ // key 'k'
+ } else if (event.keyCode == 75) {
+ navigateTo(/*up=*/true);
+ } else {
+ return;
+ }
+ event.preventDefault();
+}, true);
+</script>
+
+<script type='text/javascript'>
+
+var toggleHelp = function() {
+ var hint = document.querySelector("#tooltiphint");
+ var attributeName = "hidden";
+ if (hint.hasAttribute(attributeName)) {
+ hint.removeAttribute(attributeName);
+ } else {
+ hint.setAttribute("hidden", "true");
+ }
+};
+window.addEventListener("keydown", function (event) {
+ if (event.defaultPrevented) {
+ return;
+ }
+ if (event.key == "?") {
+ toggleHelp();
+ } else {
+ return;
+ }
+ event.preventDefault();
+});
+</script>
+
+<style type="text/css">
+ svg {
+ position:absolute;
+ top:0;
+ left:0;
+ height:100%;
+ width:100%;
+ pointer-events: none;
+ overflow: visible
+ }
+ .arrow {
+ stroke-opacity: 0.2;
+ stroke-width: 1;
+ marker-end: url(#arrowhead);
+ }
+
+ .arrow.selected {
+ stroke-opacity: 0.6;
+ stroke-width: 2;
+ marker-end: url(#arrowheadSelected);
+ }
+
+ .arrowhead {
+ orient: auto;
+ stroke: none;
+ opacity: 0.6;
+ fill: blue;
+ }
+</style>
+<svg xmlns="http://www.w3.org/2000/svg">
+ <defs>
+ <marker id="arrowheadSelected" class="arrowhead" opacity="0.6"
+ viewBox="0 0 10 10" refX="3" refY="5"
+ markerWidth="4" markerHeight="4">
+ <path d="M 0 0 L 10 5 L 0 10 z" />
+ </marker>
+ <marker id="arrowhead" class="arrowhead" opacity="0.2"
+ viewBox="0 0 10 10" refX="3" refY="5"
+ markerWidth="4" markerHeight="4">
+ <path d="M 0 0 L 10 5 L 0 10 z" />
+ </marker>
+ </defs>
+ <g id="arrows" fill="none" stroke="blue" visibility="hidden">
+
+ </g>
+</svg>
+<script type='text/javascript'>
+const arrowIndices = [ 0,0 ]
+</script>
+<table class="code" data-fileid="1">
+<tr class="codeline" data-linenumber="1"><td class="num" id="LN1">1</td><td class="line"><span class='comment'>/*</span></td></tr>
+<tr class="codeline" data-linenumber="2"><td class="num" id="LN2">2</td><td class="line"> <span class='comment'>* Copyright © 2001, 2002 Havoc Pennington</span></td></tr>
+<tr class="codeline" data-linenumber="3"><td class="num" id="LN3">3</td><td class="line"> <span class='comment'>* Copyright © 2002 Red Hat, Inc.</span></td></tr>
+<tr class="codeline" data-linenumber="4"><td class="num" id="LN4">4</td><td class="line"> <span class='comment'>* Copyright © 2002 Sun Microsystems</span></td></tr>
+<tr class="codeline" data-linenumber="5"><td class="num" id="LN5">5</td><td class="line"> <span class='comment'>* Copyright © 2003 Mariano Suarez-Alvarez</span></td></tr>
+<tr class="codeline" data-linenumber="6"><td class="num" id="LN6">6</td><td class="line"> <span class='comment'>* Copyright © 2008 Christian Persch</span></td></tr>
+<tr class="codeline" data-linenumber="7"><td class="num" id="LN7">7</td><td class="line"> <span class='comment'>* Copyright (C) 2012-2021 MATE Developers</span></td></tr>
+<tr class="codeline" data-linenumber="8"><td class="num" id="LN8">8</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="9"><td class="num" id="LN9">9</td><td class="line"> <span class='comment'>* Mate-terminal is free software; you can redistribute it and/or modify</span></td></tr>
+<tr class="codeline" data-linenumber="10"><td class="num" id="LN10">10</td><td class="line"> <span class='comment'>* it under the terms of the GNU General Public License as published by</span></td></tr>
+<tr class="codeline" data-linenumber="11"><td class="num" id="LN11">11</td><td class="line"> <span class='comment'>* the Free Software Foundation; either version 3 of the License, or</span></td></tr>
+<tr class="codeline" data-linenumber="12"><td class="num" id="LN12">12</td><td class="line"> <span class='comment'>* (at your option) any later version.</span></td></tr>
+<tr class="codeline" data-linenumber="13"><td class="num" id="LN13">13</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="14"><td class="num" id="LN14">14</td><td class="line"> <span class='comment'>* Mate-terminal is distributed in the hope that it will be useful,</span></td></tr>
+<tr class="codeline" data-linenumber="15"><td class="num" id="LN15">15</td><td class="line"> <span class='comment'>* but WITHOUT ANY WARRANTY; without even the implied warranty of</span></td></tr>
+<tr class="codeline" data-linenumber="16"><td class="num" id="LN16">16</td><td class="line"> <span class='comment'>* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></td></tr>
+<tr class="codeline" data-linenumber="17"><td class="num" id="LN17">17</td><td class="line"> <span class='comment'>* GNU General Public License for more details.</span></td></tr>
+<tr class="codeline" data-linenumber="18"><td class="num" id="LN18">18</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="19"><td class="num" id="LN19">19</td><td class="line"> <span class='comment'>* You should have received a copy of the GNU General Public License</span></td></tr>
+<tr class="codeline" data-linenumber="20"><td class="num" id="LN20">20</td><td class="line"> <span class='comment'>* along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.</span></td></tr>
+<tr class="codeline" data-linenumber="21"><td class="num" id="LN21">21</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="22"><td class="num" id="LN22">22</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="23"><td class="num" id="LN23">23</td><td class="line"><span class='directive'>#include &lt;config.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="24"><td class="num" id="LN24">24</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="25"><td class="num" id="LN25">25</td><td class="line"><span class='directive'>#include &lt;<span class='macro'>errno<span class='macro_popup'>(*__errno_location ())</span></span>.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="26"><td class="num" id="LN26">26</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="27"><td class="num" id="LN27">27</td><td class="line"><span class='directive'>#include &lt;glib.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="28"><td class="num" id="LN28">28</td><td class="line"><span class='directive'>#include &lt;dconf.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="29"><td class="num" id="LN29">29</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="30"><td class="num" id="LN30">30</td><td class="line"><span class='directive'>#include "terminal-intl.h"</span></td></tr>
+<tr class="codeline" data-linenumber="31"><td class="num" id="LN31">31</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="32"><td class="num" id="LN32">32</td><td class="line"><span class='directive'>#include "terminal-debug.h"</span></td></tr>
+<tr class="codeline" data-linenumber="33"><td class="num" id="LN33">33</td><td class="line"><span class='directive'>#include "terminal-app.h"</span></td></tr>
+<tr class="codeline" data-linenumber="34"><td class="num" id="LN34">34</td><td class="line"><span class='directive'>#include "terminal-accels.h"</span></td></tr>
+<tr class="codeline" data-linenumber="35"><td class="num" id="LN35">35</td><td class="line"><span class='directive'>#include "terminal-screen.h"</span></td></tr>
+<tr class="codeline" data-linenumber="36"><td class="num" id="LN36">36</td><td class="line"><span class='directive'>#include "terminal-screen-container.h"</span></td></tr>
+<tr class="codeline" data-linenumber="37"><td class="num" id="LN37">37</td><td class="line"><span class='directive'>#include "terminal-window.h"</span></td></tr>
+<tr class="codeline" data-linenumber="38"><td class="num" id="LN38">38</td><td class="line"><span class='directive'>#include "terminal-util.h"</span></td></tr>
+<tr class="codeline" data-linenumber="39"><td class="num" id="LN39">39</td><td class="line"><span class='directive'>#include "profile-editor.h"</span></td></tr>
+<tr class="codeline" data-linenumber="40"><td class="num" id="LN40">40</td><td class="line"><span class='directive'>#include "terminal-encoding.h"</span></td></tr>
+<tr class="codeline" data-linenumber="41"><td class="num" id="LN41">41</td><td class="line"><span class='directive'>#include &lt;string.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="42"><td class="num" id="LN42">42</td><td class="line"><span class='directive'>#include &lt;stdlib.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="43"><td class="num" id="LN43">43</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="44"><td class="num" id="LN44">44</td><td class="line"><span class='directive'>#ifdef <span class='macro'>HAVE_SMCLIENT<span class='macro_popup'>1</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="45"><td class="num" id="LN45">45</td><td class="line"><span class='directive'>#include "eggsmclient.h"</span></td></tr>
+<tr class="codeline" data-linenumber="46"><td class="num" id="LN46">46</td><td class="line"><span class='directive'>#include "eggdesktopfile.h"</span></td></tr>
+<tr class="codeline" data-linenumber="47"><td class="num" id="LN47">47</td><td class="line"><span class='directive'>#endif /* HAVE_SMCLIENT */</span></td></tr>
+<tr class="codeline" data-linenumber="48"><td class="num" id="LN48">48</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="49"><td class="num" id="LN49">49</td><td class="line"><span class='directive'>#define <span class='macro'>FALLBACK_PROFILE_ID<span class='macro_popup'>"default"</span></span> "default"</span></td></tr>
+<tr class="codeline" data-linenumber="50"><td class="num" id="LN50">50</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="51"><td class="num" id="LN51">51</td><td class="line"><span class='comment'>/* Settings storage works as follows:</span></td></tr>
+<tr class="codeline" data-linenumber="52"><td class="num" id="LN52">52</td><td class="line"> <span class='comment'>* /apps/mate-terminal/global/</span></td></tr>
+<tr class="codeline" data-linenumber="53"><td class="num" id="LN53">53</td><td class="line"> <span class='comment'>* /apps/mate-terminal/profiles/Foo/</span></td></tr>
+<tr class="codeline" data-linenumber="54"><td class="num" id="LN54">54</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="55"><td class="num" id="LN55">55</td><td class="line"> <span class='comment'>* It's somewhat tricky to manage the profiles/ dir since we need to track</span></td></tr>
+<tr class="codeline" data-linenumber="56"><td class="num" id="LN56">56</td><td class="line"> <span class='comment'>* the list of profiles, but GSettings doesn't have a concept of notifying that</span></td></tr>
+<tr class="codeline" data-linenumber="57"><td class="num" id="LN57">57</td><td class="line"> <span class='comment'>* a directory has appeared or disappeared.</span></td></tr>
+<tr class="codeline" data-linenumber="58"><td class="num" id="LN58">58</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="59"><td class="num" id="LN59">59</td><td class="line"> <span class='comment'>* Session state is stored entirely in the RestartCommand command line.</span></td></tr>
+<tr class="codeline" data-linenumber="60"><td class="num" id="LN60">60</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="61"><td class="num" id="LN61">61</td><td class="line"> <span class='comment'>* The number one rule: all stored information is EITHER per-session,</span></td></tr>
+<tr class="codeline" data-linenumber="62"><td class="num" id="LN62">62</td><td class="line"> <span class='comment'>* per-profile, or set from a command line option. THERE CAN BE NO</span></td></tr>
+<tr class="codeline" data-linenumber="63"><td class="num" id="LN63">63</td><td class="line"> <span class='comment'>* OVERLAP. The UI and implementation totally break if you overlap</span></td></tr>
+<tr class="codeline" data-linenumber="64"><td class="num" id="LN64">64</td><td class="line"> <span class='comment'>* these categories. See mate-terminal 1.x for why.</span></td></tr>
+<tr class="codeline" data-linenumber="65"><td class="num" id="LN65">65</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="66"><td class="num" id="LN66">66</td><td class="line"> <span class='comment'>* Don't use this code as an example of how to use GSettings - it's hugely</span></td></tr>
+<tr class="codeline" data-linenumber="67"><td class="num" id="LN67">67</td><td class="line"> <span class='comment'>* overcomplicated due to the profiles stuff. Most apps should not</span></td></tr>
+<tr class="codeline" data-linenumber="68"><td class="num" id="LN68">68</td><td class="line"> <span class='comment'>* have to do scary things of this nature, and should not have</span></td></tr>
+<tr class="codeline" data-linenumber="69"><td class="num" id="LN69">69</td><td class="line"> <span class='comment'>* a profiles feature.</span></td></tr>
+<tr class="codeline" data-linenumber="70"><td class="num" id="LN70">70</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="71"><td class="num" id="LN71">71</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="72"><td class="num" id="LN72">72</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="73"><td class="num" id="LN73">73</td><td class="line">GSettings *settings_global;</td></tr>
+<tr class="codeline" data-linenumber="74"><td class="num" id="LN74">74</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="75"><td class="num" id="LN75">75</td><td class="line"><span class='keyword'>struct</span> _TerminalAppClass</td></tr>
+<tr class="codeline" data-linenumber="76"><td class="num" id="LN76">76</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="77"><td class="num" id="LN77">77</td><td class="line"> GObjectClass parent_class;</td></tr>
+<tr class="codeline" data-linenumber="78"><td class="num" id="LN78">78</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="79"><td class="num" id="LN79">79</td><td class="line"> <span class='keyword'>void</span> (* quit) (TerminalApp *app);</td></tr>
+<tr class="codeline" data-linenumber="80"><td class="num" id="LN80">80</td><td class="line"> <span class='keyword'>void</span> (* profile_list_changed) (TerminalApp *app);</td></tr>
+<tr class="codeline" data-linenumber="81"><td class="num" id="LN81">81</td><td class="line"> <span class='keyword'>void</span> (* encoding_list_changed) (TerminalApp *app);</td></tr>
+<tr class="codeline" data-linenumber="82"><td class="num" id="LN82">82</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="83"><td class="num" id="LN83">83</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="84"><td class="num" id="LN84">84</td><td class="line"><span class='keyword'>struct</span> _TerminalApp</td></tr>
+<tr class="codeline" data-linenumber="85"><td class="num" id="LN85">85</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="86"><td class="num" id="LN86">86</td><td class="line"> GObject parent_instance;</td></tr>
+<tr class="codeline" data-linenumber="87"><td class="num" id="LN87">87</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="88"><td class="num" id="LN88">88</td><td class="line"> GList *windows;</td></tr>
+<tr class="codeline" data-linenumber="89"><td class="num" id="LN89">89</td><td class="line"> GtkWidget *new_profile_dialog;</td></tr>
+<tr class="codeline" data-linenumber="90"><td class="num" id="LN90">90</td><td class="line"> GtkWidget *manage_profiles_dialog;</td></tr>
+<tr class="codeline" data-linenumber="91"><td class="num" id="LN91">91</td><td class="line"> GtkWidget *manage_profiles_list;</td></tr>
+<tr class="codeline" data-linenumber="92"><td class="num" id="LN92">92</td><td class="line"> GtkWidget *manage_profiles_new_button;</td></tr>
+<tr class="codeline" data-linenumber="93"><td class="num" id="LN93">93</td><td class="line"> GtkWidget *manage_profiles_edit_button;</td></tr>
+<tr class="codeline" data-linenumber="94"><td class="num" id="LN94">94</td><td class="line"> GtkWidget *manage_profiles_delete_button;</td></tr>
+<tr class="codeline" data-linenumber="95"><td class="num" id="LN95">95</td><td class="line"> GtkWidget *manage_profiles_default_menu;</td></tr>
+<tr class="codeline" data-linenumber="96"><td class="num" id="LN96">96</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="97"><td class="num" id="LN97">97</td><td class="line"> GSettings *settings_font;</td></tr>
+<tr class="codeline" data-linenumber="98"><td class="num" id="LN98">98</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="99"><td class="num" id="LN99">99</td><td class="line"> GHashTable *profiles;</td></tr>
+<tr class="codeline" data-linenumber="100"><td class="num" id="LN100">100</td><td class="line"> <span class='keyword'>char</span>* default_profile_id;</td></tr>
+<tr class="codeline" data-linenumber="101"><td class="num" id="LN101">101</td><td class="line"> TerminalProfile *default_profile;</td></tr>
+<tr class="codeline" data-linenumber="102"><td class="num" id="LN102">102</td><td class="line"> gboolean default_profile_locked;</td></tr>
+<tr class="codeline" data-linenumber="103"><td class="num" id="LN103">103</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="104"><td class="num" id="LN104">104</td><td class="line"> GHashTable *encodings;</td></tr>
+<tr class="codeline" data-linenumber="105"><td class="num" id="LN105">105</td><td class="line"> gboolean encodings_locked;</td></tr>
+<tr class="codeline" data-linenumber="106"><td class="num" id="LN106">106</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="107"><td class="num" id="LN107">107</td><td class="line"> PangoFontDescription *system_font_desc;</td></tr>
+<tr class="codeline" data-linenumber="108"><td class="num" id="LN108">108</td><td class="line"> gboolean enable_mnemonics;</td></tr>
+<tr class="codeline" data-linenumber="109"><td class="num" id="LN109">109</td><td class="line"> gboolean enable_menu_accels;</td></tr>
+<tr class="codeline" data-linenumber="110"><td class="num" id="LN110">110</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="111"><td class="num" id="LN111">111</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="112"><td class="num" id="LN112">112</td><td class="line"><span class='keyword'>enum</span></td></tr>
+<tr class="codeline" data-linenumber="113"><td class="num" id="LN113">113</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="114"><td class="num" id="LN114">114</td><td class="line"> PROP_0,</td></tr>
+<tr class="codeline" data-linenumber="115"><td class="num" id="LN115">115</td><td class="line"> PROP_DEFAULT_PROFILE,</td></tr>
+<tr class="codeline" data-linenumber="116"><td class="num" id="LN116">116</td><td class="line"> PROP_ENABLE_MENU_BAR_ACCEL,</td></tr>
+<tr class="codeline" data-linenumber="117"><td class="num" id="LN117">117</td><td class="line"> PROP_ENABLE_MNEMONICS,</td></tr>
+<tr class="codeline" data-linenumber="118"><td class="num" id="LN118">118</td><td class="line"> PROP_SYSTEM_FONT,</td></tr>
+<tr class="codeline" data-linenumber="119"><td class="num" id="LN119">119</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="120"><td class="num" id="LN120">120</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="121"><td class="num" id="LN121">121</td><td class="line"><span class='keyword'>enum</span></td></tr>
+<tr class="codeline" data-linenumber="122"><td class="num" id="LN122">122</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="123"><td class="num" id="LN123">123</td><td class="line"> QUIT,</td></tr>
+<tr class="codeline" data-linenumber="124"><td class="num" id="LN124">124</td><td class="line"> PROFILE_LIST_CHANGED,</td></tr>
+<tr class="codeline" data-linenumber="125"><td class="num" id="LN125">125</td><td class="line"> ENCODING_LIST_CHANGED,</td></tr>
+<tr class="codeline" data-linenumber="126"><td class="num" id="LN126">126</td><td class="line"> LAST_SIGNAL</td></tr>
+<tr class="codeline" data-linenumber="127"><td class="num" id="LN127">127</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="128"><td class="num" id="LN128">128</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="129"><td class="num" id="LN129">129</td><td class="line"><span class='keyword'>static</span> guint signals[LAST_SIGNAL] = { 0 };</td></tr>
+<tr class="codeline" data-linenumber="130"><td class="num" id="LN130">130</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="131"><td class="num" id="LN131">131</td><td class="line"><span class='keyword'>enum</span></td></tr>
+<tr class="codeline" data-linenumber="132"><td class="num" id="LN132">132</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="133"><td class="num" id="LN133">133</td><td class="line"> COL_PROFILE,</td></tr>
+<tr class="codeline" data-linenumber="134"><td class="num" id="LN134">134</td><td class="line"> NUM_COLUMNS</td></tr>
+<tr class="codeline" data-linenumber="135"><td class="num" id="LN135">135</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="136"><td class="num" id="LN136">136</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="137"><td class="num" id="LN137">137</td><td class="line"><span class='keyword'>enum</span></td></tr>
+<tr class="codeline" data-linenumber="138"><td class="num" id="LN138">138</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="139"><td class="num" id="LN139">139</td><td class="line"> SOURCE_DEFAULT = 0,</td></tr>
+<tr class="codeline" data-linenumber="140"><td class="num" id="LN140">140</td><td class="line"> SOURCE_SESSION = 1</td></tr>
+<tr class="codeline" data-linenumber="141"><td class="num" id="LN141">141</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="142"><td class="num" id="LN142">142</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="143"><td class="num" id="LN143">143</td><td class="line"><span class='keyword'>static</span> TerminalApp *global_app = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="144"><td class="num" id="LN144">144</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="145"><td class="num" id="LN145">145</td><td class="line"><span class='directive'>#define <span class='macro'>MONOSPACE_FONT_SCHEMA<span class='macro_popup'>"org.mate.interface"</span></span> "org.mate.interface"</span></td></tr>
+<tr class="codeline" data-linenumber="146"><td class="num" id="LN146">146</td><td class="line"><span class='directive'>#define <span class='macro'>MONOSPACE_FONT_KEY<span class='macro_popup'>"monospace-font-name"</span></span> "monospace-font-name"</span></td></tr>
+<tr class="codeline" data-linenumber="147"><td class="num" id="LN147">147</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_MONOSPACE_FONT<span class='macro_popup'>("Monospace 10")</span></span> ("Monospace 10")</span></td></tr>
+<tr class="codeline" data-linenumber="148"><td class="num" id="LN148">148</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="149"><td class="num" id="LN149">149</td><td class="line"><span class='directive'>#define <span class='macro'>ENABLE_MNEMONICS_KEY<span class='macro_popup'>"use-mnemonics"</span></span> "use-mnemonics"</span></td></tr>
+<tr class="codeline" data-linenumber="150"><td class="num" id="LN150">150</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_ENABLE_MNEMONICS<span class='macro_popup'>((!(0)))</span></span> (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="151"><td class="num" id="LN151">151</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="152"><td class="num" id="LN152">152</td><td class="line"><span class='directive'>#define <span class='macro'>ENABLE_MENU_BAR_ACCEL_KEY<span class='macro_popup'>"use-menu-accelerators"</span></span> "use-menu-accelerators"</span></td></tr>
+<tr class="codeline" data-linenumber="153"><td class="num" id="LN153">153</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_ENABLE_MENU_BAR_ACCEL<span class='macro_popup'>((!(0)))</span></span> (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="154"><td class="num" id="LN154">154</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="155"><td class="num" id="LN155">155</td><td class="line"><span class='directive'>#define <span class='macro'>PROFILE_LIST_KEY<span class='macro_popup'>"profile-list"</span></span> "profile-list"</span></td></tr>
+<tr class="codeline" data-linenumber="156"><td class="num" id="LN156">156</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_PROFILE_KEY<span class='macro_popup'>"default-profile"</span></span> "default-profile"</span></td></tr>
+<tr class="codeline" data-linenumber="157"><td class="num" id="LN157">157</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="158"><td class="num" id="LN158">158</td><td class="line"><span class='directive'>#define <span class='macro'>ENCODING_LIST_KEY<span class='macro_popup'>"active-encodings"</span></span> "active-encodings"</span></td></tr>
+<tr class="codeline" data-linenumber="159"><td class="num" id="LN159">159</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="160"><td class="num" id="LN160">160</td><td class="line"><span class='comment'>/* two following functions were copied from libmate-desktop to get rid</span></td></tr>
+<tr class="codeline" data-linenumber="161"><td class="num" id="LN161">161</td><td class="line"> <span class='comment'>* of dependency on it</span></td></tr>
+<tr class="codeline" data-linenumber="162"><td class="num" id="LN162">162</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="163"><td class="num" id="LN163">163</td><td class="line"> <span class='comment'>* FIXME: I suspect there's no need for excessive copies, we might use</span></td></tr>
+<tr class="codeline" data-linenumber="164"><td class="num" id="LN164">164</td><td class="line"> <span class='comment'>* existing profile list to form GVariant's and write them to GSettings</span></td></tr>
+<tr class="codeline" data-linenumber="165"><td class="num" id="LN165">165</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="166"><td class="num" id="LN166">166</td><td class="line"><span class='keyword'>static</span> gboolean</td></tr>
+<tr class="codeline" data-linenumber="167"><td class="num" id="LN167">167</td><td class="line">gsettings_append_strv (GSettings *settings,</td></tr>
+<tr class="codeline" data-linenumber="168"><td class="num" id="LN168">168</td><td class="line"> <span class='keyword'>const</span> gchar *key,</td></tr>
+<tr class="codeline" data-linenumber="169"><td class="num" id="LN169">169</td><td class="line"> <span class='keyword'>const</span> gchar *value)</td></tr>
+<tr class="codeline" data-linenumber="170"><td class="num" id="LN170">170</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="171"><td class="num" id="LN171">171</td><td class="line"> gchar **old;</td></tr>
+<tr class="codeline" data-linenumber="172"><td class="num" id="LN172">172</td><td class="line"> gchar **new;</td></tr>
+<tr class="codeline" data-linenumber="173"><td class="num" id="LN173">173</td><td class="line"> gint size;</td></tr>
+<tr class="codeline" data-linenumber="174"><td class="num" id="LN174">174</td><td class="line"> gboolean retval;</td></tr>
+<tr class="codeline" data-linenumber="175"><td class="num" id="LN175">175</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="176"><td class="num" id="LN176">176</td><td class="line"> old = g_settings_get_strv (settings, key);</td></tr>
+<tr class="codeline" data-linenumber="177"><td class="num" id="LN177">177</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="178"><td class="num" id="LN178">178</td><td class="line"> <span class='keyword'>for</span> (size = 0; old[size] != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; size++);</td></tr>
+<tr class="codeline" data-linenumber="179"><td class="num" id="LN179">179</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="180"><td class="num" id="LN180">180</td><td class="line"> size += 1; <span class='comment'>/* appended value */</span></td></tr>
+<tr class="codeline" data-linenumber="181"><td class="num" id="LN181">181</td><td class="line"> size += 1; <span class='comment'>/* NULL */</span></td></tr>
+<tr class="codeline" data-linenumber="182"><td class="num" id="LN182">182</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="183"><td class="num" id="LN183">183</td><td class="line"> new = g_realloc_n (old, size, <span class='keyword'>sizeof</span> (gchar *));</td></tr>
+<tr class="codeline" data-linenumber="184"><td class="num" id="LN184">184</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="185"><td class="num" id="LN185">185</td><td class="line"> new[size - 2] = <span class='macro'>g_strdup (value)<span class='macro_popup'>g_strdup_inline (value)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="186"><td class="num" id="LN186">186</td><td class="line"> new[size - 1] = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="187"><td class="num" id="LN187">187</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="188"><td class="num" id="LN188">188</td><td class="line"> retval = g_settings_set_strv (settings, key,</td></tr>
+<tr class="codeline" data-linenumber="189"><td class="num" id="LN189">189</td><td class="line"> (<span class='keyword'>const</span> gchar **) new);</td></tr>
+<tr class="codeline" data-linenumber="190"><td class="num" id="LN190">190</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="191"><td class="num" id="LN191">191</td><td class="line"> g_strfreev (new);</td></tr>
+<tr class="codeline" data-linenumber="192"><td class="num" id="LN192">192</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="193"><td class="num" id="LN193">193</td><td class="line"> <span class='keyword'>return</span> retval;</td></tr>
+<tr class="codeline" data-linenumber="194"><td class="num" id="LN194">194</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="195"><td class="num" id="LN195">195</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="196"><td class="num" id="LN196">196</td><td class="line"><span class='keyword'>static</span> gboolean</td></tr>
+<tr class="codeline" data-linenumber="197"><td class="num" id="LN197">197</td><td class="line">gsettings_remove_all_from_strv (GSettings *settings,</td></tr>
+<tr class="codeline" data-linenumber="198"><td class="num" id="LN198">198</td><td class="line"> <span class='keyword'>const</span> gchar *key,</td></tr>
+<tr class="codeline" data-linenumber="199"><td class="num" id="LN199">199</td><td class="line"> <span class='keyword'>const</span> gchar *value)</td></tr>
+<tr class="codeline" data-linenumber="200"><td class="num" id="LN200">200</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="201"><td class="num" id="LN201">201</td><td class="line"> GArray *array;</td></tr>
+<tr class="codeline" data-linenumber="202"><td class="num" id="LN202">202</td><td class="line"> gchar **old;</td></tr>
+<tr class="codeline" data-linenumber="203"><td class="num" id="LN203">203</td><td class="line"> gint i;</td></tr>
+<tr class="codeline" data-linenumber="204"><td class="num" id="LN204">204</td><td class="line"> gboolean retval;</td></tr>
+<tr class="codeline" data-linenumber="205"><td class="num" id="LN205">205</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="206"><td class="num" id="LN206">206</td><td class="line"> old = g_settings_get_strv (settings, key);</td></tr>
+<tr class="codeline" data-linenumber="207"><td class="num" id="LN207">207</td><td class="line"> array = g_array_new (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>, <span class='keyword'>sizeof</span> (gchar *));</td></tr>
+<tr class="codeline" data-linenumber="208"><td class="num" id="LN208">208</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="209"><td class="num" id="LN209">209</td><td class="line"> <span class='keyword'>for</span> (i = 0; old[i] != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; i++) {</td></tr>
+<tr class="codeline" data-linenumber="210"><td class="num" id="LN210">210</td><td class="line"> <span class='keyword'>if</span> (g_strcmp0 (old[i], value) != 0)</td></tr>
+<tr class="codeline" data-linenumber="211"><td class="num" id="LN211">211</td><td class="line"> array = <span class='macro'>g_array_append_val (array, old[i])<span class='macro_popup'>g_array_append_vals (array, &amp;(old[i]), 1)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="212"><td class="num" id="LN212">212</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="213"><td class="num" id="LN213">213</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="214"><td class="num" id="LN214">214</td><td class="line"> retval = g_settings_set_strv (settings, key,</td></tr>
+<tr class="codeline" data-linenumber="215"><td class="num" id="LN215">215</td><td class="line"> (<span class='keyword'>const</span> gchar **) array-&gt;data);</td></tr>
+<tr class="codeline" data-linenumber="216"><td class="num" id="LN216">216</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="217"><td class="num" id="LN217">217</td><td class="line"> g_strfreev (old);</td></tr>
+<tr class="codeline" data-linenumber="218"><td class="num" id="LN218">218</td><td class="line"> g_array_free (array, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="219"><td class="num" id="LN219">219</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="220"><td class="num" id="LN220">220</td><td class="line"> <span class='keyword'>return</span> retval;</td></tr>
+<tr class="codeline" data-linenumber="221"><td class="num" id="LN221">221</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="222"><td class="num" id="LN222">222</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="223"><td class="num" id="LN223">223</td><td class="line"><span class='comment'>/* Helper functions */</span></td></tr>
+<tr class="codeline" data-linenumber="224"><td class="num" id="LN224">224</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="225"><td class="num" id="LN225">225</td><td class="line"><span class='keyword'>static</span> GdkScreen*</td></tr>
+<tr class="codeline" data-linenumber="226"><td class="num" id="LN226">226</td><td class="line">terminal_app_get_screen_by_display_name (<span class='keyword'>const</span> <span class='keyword'>char</span> *display_name)</td></tr>
+<tr class="codeline" data-linenumber="227"><td class="num" id="LN227">227</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="228"><td class="num" id="LN228">228</td><td class="line"> GdkDisplay *display = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="229"><td class="num" id="LN229">229</td><td class="line"> GdkScreen *screen = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="230"><td class="num" id="LN230">230</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="231"><td class="num" id="LN231">231</td><td class="line"> <span class='keyword'>if</span> (display_name == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="232"><td class="num" id="LN232">232</td><td class="line"> display = gdk_display_get_default ();</td></tr>
+<tr class="codeline" data-linenumber="233"><td class="num" id="LN233">233</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="234"><td class="num" id="LN234">234</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="235"><td class="num" id="LN235">235</td><td class="line"> GSList *displays, *l;</td></tr>
+<tr class="codeline" data-linenumber="236"><td class="num" id="LN236">236</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *period;</td></tr>
+<tr class="codeline" data-linenumber="237"><td class="num" id="LN237">237</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="238"><td class="num" id="LN238">238</td><td class="line"> period = strrchr (display_name, '.');</td></tr>
+<tr class="codeline" data-linenumber="239"><td class="num" id="LN239">239</td><td class="line"> displays = gdk_display_manager_list_displays (gdk_display_manager_get ());</td></tr>
+<tr class="codeline" data-linenumber="240"><td class="num" id="LN240">240</td><td class="line"> <span class='keyword'>for</span> (l = displays; l != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; l = l-&gt;next)</td></tr>
+<tr class="codeline" data-linenumber="241"><td class="num" id="LN241">241</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="242"><td class="num" id="LN242">242</td><td class="line"> GdkDisplay *disp = l-&gt;data;</td></tr>
+<tr class="codeline" data-linenumber="243"><td class="num" id="LN243">243</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="244"><td class="num" id="LN244">244</td><td class="line"> <span class='comment'>/* compare without the screen number part, if present */</span></td></tr>
+<tr class="codeline" data-linenumber="245"><td class="num" id="LN245">245</td><td class="line"> <span class='keyword'>if</span> ((period &amp;&amp; strncmp (gdk_display_get_name (disp), display_name, period - display_name) == 0) ||</td></tr>
+<tr class="codeline" data-linenumber="246"><td class="num" id="LN246">246</td><td class="line"> (period == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span> &amp;&amp; strcmp (gdk_display_get_name (disp), display_name) == 0))</td></tr>
+<tr class="codeline" data-linenumber="247"><td class="num" id="LN247">247</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="248"><td class="num" id="LN248">248</td><td class="line"> display = disp;</td></tr>
+<tr class="codeline" data-linenumber="249"><td class="num" id="LN249">249</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="250"><td class="num" id="LN250">250</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="251"><td class="num" id="LN251">251</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="252"><td class="num" id="LN252">252</td><td class="line"> g_slist_free (displays);</td></tr>
+<tr class="codeline" data-linenumber="253"><td class="num" id="LN253">253</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="254"><td class="num" id="LN254">254</td><td class="line"> <span class='keyword'>if</span> (display == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="255"><td class="num" id="LN255">255</td><td class="line"> display = gdk_display_open (display_name); <span class='comment'>/* FIXME we never close displays */</span></td></tr>
+<tr class="codeline" data-linenumber="256"><td class="num" id="LN256">256</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="257"><td class="num" id="LN257">257</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="258"><td class="num" id="LN258">258</td><td class="line"> <span class='keyword'>if</span> (display == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="259"><td class="num" id="LN259">259</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="260"><td class="num" id="LN260">260</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="261"><td class="num" id="LN261">261</td><td class="line"> screen = gdk_display_get_default_screen (display);</td></tr>
+<tr class="codeline" data-linenumber="262"><td class="num" id="LN262">262</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="263"><td class="num" id="LN263">263</td><td class="line"> <span class='keyword'>return</span> screen;</td></tr>
+<tr class="codeline" data-linenumber="264"><td class="num" id="LN264">264</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="265"><td class="num" id="LN265">265</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="266"><td class="num" id="LN266">266</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>int</span></td></tr>
+<tr class="codeline" data-linenumber="267"><td class="num" id="LN267">267</td><td class="line">terminal_app_get_workspace_for_window (TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="268"><td class="num" id="LN268">268</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="269"><td class="num" id="LN269">269</td><td class="line"> <span class='keyword'>int</span> ret = -1;</td></tr>
+<tr class="codeline" data-linenumber="270"><td class="num" id="LN270">270</td><td class="line"> guchar *data = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="271"><td class="num" id="LN271">271</td><td class="line"> GdkAtom atom;</td></tr>
+<tr class="codeline" data-linenumber="272"><td class="num" id="LN272">272</td><td class="line"> GdkAtom cardinal_atom;</td></tr>
+<tr class="codeline" data-linenumber="273"><td class="num" id="LN273">273</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="274"><td class="num" id="LN274">274</td><td class="line"> atom = gdk_atom_intern_static_string (<span class='string_literal'>"_NET_WM_DESKTOP"</span>);</td></tr>
+<tr class="codeline" data-linenumber="275"><td class="num" id="LN275">275</td><td class="line"> cardinal_atom = gdk_atom_intern_static_string (<span class='string_literal'>"CARDINAL"</span>);</td></tr>
+<tr class="codeline" data-linenumber="276"><td class="num" id="LN276">276</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="277"><td class="num" id="LN277">277</td><td class="line"> gdk_property_get (gtk_widget_get_window(<span class='macro'>GTK_WIDGET(window)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_widget_get_type ()))))))</span></span>),</td></tr>
+<tr class="codeline" data-linenumber="278"><td class="num" id="LN278">278</td><td class="line"> atom, cardinal_atom, 0, 8, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="279"><td class="num" id="LN279">279</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, &amp;data);</td></tr>
+<tr class="codeline" data-linenumber="280"><td class="num" id="LN280">280</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="281"><td class="num" id="LN281">281</td><td class="line"> <span class='keyword'>if</span> (data)</td></tr>
+<tr class="codeline" data-linenumber="282"><td class="num" id="LN282">282</td><td class="line"> ret = *(<span class='keyword'>int</span> *)data;</td></tr>
+<tr class="codeline" data-linenumber="283"><td class="num" id="LN283">283</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="284"><td class="num" id="LN284">284</td><td class="line"> g_free (data);</td></tr>
+<tr class="codeline" data-linenumber="285"><td class="num" id="LN285">285</td><td class="line"> <span class='keyword'>return</span> ret;</td></tr>
+<tr class="codeline" data-linenumber="286"><td class="num" id="LN286">286</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="287"><td class="num" id="LN287">287</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="288"><td class="num" id="LN288">288</td><td class="line"><span class='comment'>/* Menubar mnemonics settings handling */</span></td></tr>
+<tr class="codeline" data-linenumber="289"><td class="num" id="LN289">289</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="290"><td class="num" id="LN290">290</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>int</span></td></tr>
+<tr class="codeline" data-linenumber="291"><td class="num" id="LN291">291</td><td class="line">profiles_alphabetic_cmp (gconstpointer pa,</td></tr>
+<tr class="codeline" data-linenumber="292"><td class="num" id="LN292">292</td><td class="line"> gconstpointer pb)</td></tr>
+<tr class="codeline" data-linenumber="293"><td class="num" id="LN293">293</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="294"><td class="num" id="LN294">294</td><td class="line"> TerminalProfile *a = (TerminalProfile *) pa;</td></tr>
+<tr class="codeline" data-linenumber="295"><td class="num" id="LN295">295</td><td class="line"> TerminalProfile *b = (TerminalProfile *) pb;</td></tr>
+<tr class="codeline" data-linenumber="296"><td class="num" id="LN296">296</td><td class="line"> <span class='keyword'>int</span> result;</td></tr>
+<tr class="codeline" data-linenumber="297"><td class="num" id="LN297">297</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="298"><td class="num" id="LN298">298</td><td class="line"> result = g_utf8_collate (terminal_profile_get_property_string (a, <span class='macro'>TERMINAL_PROFILE_VISIBLE_NAME<span class='macro_popup'>"visible-name"</span></span>),</td></tr>
+<tr class="codeline" data-linenumber="299"><td class="num" id="LN299">299</td><td class="line"> terminal_profile_get_property_string (b, <span class='macro'>TERMINAL_PROFILE_VISIBLE_NAME<span class='macro_popup'>"visible-name"</span></span>));</td></tr>
+<tr class="codeline" data-linenumber="300"><td class="num" id="LN300">300</td><td class="line"> <span class='keyword'>if</span> (result == 0)</td></tr>
+<tr class="codeline" data-linenumber="301"><td class="num" id="LN301">301</td><td class="line"> result = strcmp (terminal_profile_get_property_string (a, <span class='macro'>TERMINAL_PROFILE_NAME<span class='macro_popup'>"name"</span></span>),</td></tr>
+<tr class="codeline" data-linenumber="302"><td class="num" id="LN302">302</td><td class="line"> terminal_profile_get_property_string (b, <span class='macro'>TERMINAL_PROFILE_NAME<span class='macro_popup'>"name"</span></span>));</td></tr>
+<tr class="codeline" data-linenumber="303"><td class="num" id="LN303">303</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="304"><td class="num" id="LN304">304</td><td class="line"> <span class='keyword'>return</span> result;</td></tr>
+<tr class="codeline" data-linenumber="305"><td class="num" id="LN305">305</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="306"><td class="num" id="LN306">306</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="307"><td class="num" id="LN307">307</td><td class="line"><span class='keyword'>typedef</span> <span class='keyword'>struct</span></td></tr>
+<tr class="codeline" data-linenumber="308"><td class="num" id="LN308">308</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="309"><td class="num" id="LN309">309</td><td class="line"> TerminalProfile *result;</td></tr>
+<tr class="codeline" data-linenumber="310"><td class="num" id="LN310">310</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *target;</td></tr>
+<tr class="codeline" data-linenumber="311"><td class="num" id="LN311">311</td><td class="line">} LookupInfo;</td></tr>
+<tr class="codeline" data-linenumber="312"><td class="num" id="LN312">312</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="313"><td class="num" id="LN313">313</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="314"><td class="num" id="LN314">314</td><td class="line">profiles_lookup_by_visible_name_foreach (gpointer key,</td></tr>
+<tr class="codeline" data-linenumber="315"><td class="num" id="LN315">315</td><td class="line"> gpointer value,</td></tr>
+<tr class="codeline" data-linenumber="316"><td class="num" id="LN316">316</td><td class="line"> gpointer data)</td></tr>
+<tr class="codeline" data-linenumber="317"><td class="num" id="LN317">317</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="318"><td class="num" id="LN318">318</td><td class="line"> LookupInfo *info = data;</td></tr>
+<tr class="codeline" data-linenumber="319"><td class="num" id="LN319">319</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *name;</td></tr>
+<tr class="codeline" data-linenumber="320"><td class="num" id="LN320">320</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="321"><td class="num" id="LN321">321</td><td class="line"> name = terminal_profile_get_property_string (value, <span class='macro'>TERMINAL_PROFILE_VISIBLE_NAME<span class='macro_popup'>"visible-name"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="322"><td class="num" id="LN322">322</td><td class="line"> <span class='keyword'>if</span> (name &amp;&amp; strcmp (info-&gt;target, name) == 0)</td></tr>
+<tr class="codeline" data-linenumber="323"><td class="num" id="LN323">323</td><td class="line"> info-&gt;result = value;</td></tr>
+<tr class="codeline" data-linenumber="324"><td class="num" id="LN324">324</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="325"><td class="num" id="LN325">325</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="326"><td class="num" id="LN326">326</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="327"><td class="num" id="LN327">327</td><td class="line">terminal_window_destroyed (TerminalWindow *window,</td></tr>
+<tr class="codeline" data-linenumber="328"><td class="num" id="LN328">328</td><td class="line"> TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="329"><td class="num" id="LN329">329</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="330"><td class="num" id="LN330">330</td><td class="line"> app-&gt;windows = g_list_remove (app-&gt;windows, window);</td></tr>
+<tr class="codeline" data-linenumber="331"><td class="num" id="LN331">331</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="332"><td class="num" id="LN332">332</td><td class="line"> <span class='keyword'>if</span> (app-&gt;windows == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="333"><td class="num" id="LN333">333</td><td class="line"> g_signal_emit (app, signals[QUIT], 0);</td></tr>
+<tr class="codeline" data-linenumber="334"><td class="num" id="LN334">334</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="335"><td class="num" id="LN335">335</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="336"><td class="num" id="LN336">336</td><td class="line"><span class='keyword'>static</span> TerminalProfile *</td></tr>
+<tr class="codeline" data-linenumber="337"><td class="num" id="LN337">337</td><td class="line">terminal_app_create_profile (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="338"><td class="num" id="LN338">338</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *name)</td></tr>
+<tr class="codeline" data-linenumber="339"><td class="num" id="LN339">339</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="340"><td class="num" id="LN340">340</td><td class="line"> TerminalProfile *profile;</td></tr>
+<tr class="codeline" data-linenumber="341"><td class="num" id="LN341">341</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="342"><td class="num" id="LN342">342</td><td class="line"> <span class='macro'>g_assert (terminal_app_get_profile_by_name (app, name) == NULL)<span class='macro_popup'>do { if (terminal_app_get_profile_by_name (app, name) == ((void<br>*)0)) ; else g_assertion_message_expr (((gchar*) 0), "terminal-app.c"<br>, 342, ((const char*) (__func__)), "terminal_app_get_profile_by_name (app, name) == NULL"<br>); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="343"><td class="num" id="LN343">343</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="344"><td class="num" id="LN344">344</td><td class="line"> profile = _terminal_profile_new (name);</td></tr>
+<tr class="codeline" data-linenumber="345"><td class="num" id="LN345">345</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="346"><td class="num" id="LN346">346</td><td class="line"> g_hash_table_insert (app-&gt;profiles,</td></tr>
+<tr class="codeline" data-linenumber="347"><td class="num" id="LN347">347</td><td class="line"> <span class='macro'>g_strdup (terminal_profile_get_property_string (profile, TERMINAL_PROFILE_NAME))<span class='macro_popup'>g_strdup_inline (terminal_profile_get_property_string (profile<br>, "name"))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="348"><td class="num" id="LN348">348</td><td class="line"> profile <span class='comment'>/* adopts the refcount */</span>);</td></tr>
+<tr class="codeline" data-linenumber="349"><td class="num" id="LN349">349</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="350"><td class="num" id="LN350">350</td><td class="line"> <span class='keyword'>if</span> (app-&gt;default_profile == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span> &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="351"><td class="num" id="LN351">351</td><td class="line"> app-&gt;default_profile_id != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span> &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="352"><td class="num" id="LN352">352</td><td class="line"> strcmp (app-&gt;default_profile_id,</td></tr>
+<tr class="codeline" data-linenumber="353"><td class="num" id="LN353">353</td><td class="line"> terminal_profile_get_property_string (profile, <span class='macro'>TERMINAL_PROFILE_NAME<span class='macro_popup'>"name"</span></span>)) == 0)</td></tr>
+<tr class="codeline" data-linenumber="354"><td class="num" id="LN354">354</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="355"><td class="num" id="LN355">355</td><td class="line"> <span class='comment'>/* We are the default profile */</span></td></tr>
+<tr class="codeline" data-linenumber="356"><td class="num" id="LN356">356</td><td class="line"> app-&gt;default_profile = profile;</td></tr>
+<tr class="codeline" data-linenumber="357"><td class="num" id="LN357">357</td><td class="line"> g_object_notify (<span class='macro'>G_OBJECT (app)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, <span class='macro'>TERMINAL_APP_DEFAULT_PROFILE<span class='macro_popup'>"default-profile"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="358"><td class="num" id="LN358">358</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="359"><td class="num" id="LN359">359</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="360"><td class="num" id="LN360">360</td><td class="line"> <span class='keyword'>return</span> profile;</td></tr>
+<tr class="codeline" data-linenumber="361"><td class="num" id="LN361">361</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="362"><td class="num" id="LN362">362</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="363"><td class="num" id="LN363">363</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="364"><td class="num" id="LN364">364</td><td class="line">terminal_app_delete_profile (TerminalProfile *profile)</td></tr>
+<tr class="codeline" data-linenumber="365"><td class="num" id="LN365">365</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="366"><td class="num" id="LN366">366</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *profile_name;</td></tr>
+<tr class="codeline" data-linenumber="367"><td class="num" id="LN367">367</td><td class="line"> <span class='keyword'>char</span> *profile_dir;</td></tr>
+<tr class="codeline" data-linenumber="368"><td class="num" id="LN368">368</td><td class="line"> GError *error = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="369"><td class="num" id="LN369">369</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="370"><td class="num" id="LN370">370</td><td class="line"> profile_name = terminal_profile_get_property_string (profile, <span class='macro'>TERMINAL_PROFILE_NAME<span class='macro_popup'>"name"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="371"><td class="num" id="LN371">371</td><td class="line"> profile_dir = g_strconcat (<span class='macro'>CONF_PROFILE_PREFIX<span class='macro_popup'>"/org/mate/terminal/profiles/"</span></span>, profile_name, <span class='string_literal'>"/"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="372"><td class="num" id="LN372">372</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="373"><td class="num" id="LN373">373</td><td class="line"> gsettings_remove_all_from_strv (settings_global, <span class='macro'>PROFILE_LIST_KEY<span class='macro_popup'>"profile-list"</span></span>, profile_name);</td></tr>
+<tr class="codeline" data-linenumber="374"><td class="num" id="LN374">374</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="375"><td class="num" id="LN375">375</td><td class="line"> <span class='comment'>/* And remove the profile directory */</span></td></tr>
+<tr class="codeline" data-linenumber="376"><td class="num" id="LN376">376</td><td class="line"> DConfClient *client = dconf_client_new ();</td></tr>
+<tr class="codeline" data-linenumber="377"><td class="num" id="LN377">377</td><td class="line"> <span class='keyword'>if</span> (!dconf_client_write_sync (client, profile_dir, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, &amp;error))</td></tr>
+<tr class="codeline" data-linenumber="378"><td class="num" id="LN378">378</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="379"><td class="num" id="LN379">379</td><td class="line"> g_warning (<span class='string_literal'>"Failed to recursively unset %s: %s\n"</span>, profile_dir, error-&gt;message);</td></tr>
+<tr class="codeline" data-linenumber="380"><td class="num" id="LN380">380</td><td class="line"> g_error_free (error);</td></tr>
+<tr class="codeline" data-linenumber="381"><td class="num" id="LN381">381</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="382"><td class="num" id="LN382">382</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="383"><td class="num" id="LN383">383</td><td class="line"> g_object_unref (client);</td></tr>
+<tr class="codeline" data-linenumber="384"><td class="num" id="LN384">384</td><td class="line"> g_free (profile_dir);</td></tr>
+<tr class="codeline" data-linenumber="385"><td class="num" id="LN385">385</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="386"><td class="num" id="LN386">386</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="387"><td class="num" id="LN387">387</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="388"><td class="num" id="LN388">388</td><td class="line">terminal_app_profile_cell_data_func (GtkTreeViewColumn *tree_column,</td></tr>
+<tr class="codeline" data-linenumber="389"><td class="num" id="LN389">389</td><td class="line"> GtkCellRenderer *cell,</td></tr>
+<tr class="codeline" data-linenumber="390"><td class="num" id="LN390">390</td><td class="line"> GtkTreeModel *tree_model,</td></tr>
+<tr class="codeline" data-linenumber="391"><td class="num" id="LN391">391</td><td class="line"> GtkTreeIter *iter,</td></tr>
+<tr class="codeline" data-linenumber="392"><td class="num" id="LN392">392</td><td class="line"> gpointer data)</td></tr>
+<tr class="codeline" data-linenumber="393"><td class="num" id="LN393">393</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="394"><td class="num" id="LN394">394</td><td class="line"> TerminalProfile *profile;</td></tr>
+<tr class="codeline" data-linenumber="395"><td class="num" id="LN395">395</td><td class="line"> GValue value = { 0, };</td></tr>
+<tr class="codeline" data-linenumber="396"><td class="num" id="LN396">396</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="397"><td class="num" id="LN397">397</td><td class="line"> gtk_tree_model_get (tree_model, iter, (<span class='keyword'>int</span>) COL_PROFILE, &amp;profile, (<span class='keyword'>int</span>) -1);</td></tr>
+<tr class="codeline" data-linenumber="398"><td class="num" id="LN398">398</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="399"><td class="num" id="LN399">399</td><td class="line"> g_value_init (&amp;value, <span class='macro'>G_TYPE_STRING<span class='macro_popup'>((GType) ((16) &lt;&lt; (2)))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="400"><td class="num" id="LN400">400</td><td class="line"> g_object_get_property (<span class='macro'>G_OBJECT (profile)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((profile)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, <span class='string_literal'>"visible-name"</span>, &amp;value);</td></tr>
+<tr class="codeline" data-linenumber="401"><td class="num" id="LN401">401</td><td class="line"> g_object_set_property (<span class='macro'>G_OBJECT (cell)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((cell)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, <span class='string_literal'>"text"</span>, &amp;value);</td></tr>
+<tr class="codeline" data-linenumber="402"><td class="num" id="LN402">402</td><td class="line"> g_value_unset (&amp;value);</td></tr>
+<tr class="codeline" data-linenumber="403"><td class="num" id="LN403">403</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="404"><td class="num" id="LN404">404</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="405"><td class="num" id="LN405">405</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>int</span></td></tr>
+<tr class="codeline" data-linenumber="406"><td class="num" id="LN406">406</td><td class="line">terminal_app_profile_sort_func (GtkTreeModel *model,</td></tr>
+<tr class="codeline" data-linenumber="407"><td class="num" id="LN407">407</td><td class="line"> GtkTreeIter *a,</td></tr>
+<tr class="codeline" data-linenumber="408"><td class="num" id="LN408">408</td><td class="line"> GtkTreeIter *b,</td></tr>
+<tr class="codeline" data-linenumber="409"><td class="num" id="LN409">409</td><td class="line"> gpointer user_data)</td></tr>
+<tr class="codeline" data-linenumber="410"><td class="num" id="LN410">410</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="411"><td class="num" id="LN411">411</td><td class="line"> TerminalProfile *profile_a, *profile_b;</td></tr>
+<tr class="codeline" data-linenumber="412"><td class="num" id="LN412">412</td><td class="line"> <span class='keyword'>int</span> retval;</td></tr>
+<tr class="codeline" data-linenumber="413"><td class="num" id="LN413">413</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="414"><td class="num" id="LN414">414</td><td class="line"> gtk_tree_model_get (model, a, (<span class='keyword'>int</span>) COL_PROFILE, &amp;profile_a, (<span class='keyword'>int</span>) -1);</td></tr>
+<tr class="codeline" data-linenumber="415"><td class="num" id="LN415">415</td><td class="line"> gtk_tree_model_get (model, b, (<span class='keyword'>int</span>) COL_PROFILE, &amp;profile_b, (<span class='keyword'>int</span>) -1);</td></tr>
+<tr class="codeline" data-linenumber="416"><td class="num" id="LN416">416</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="417"><td class="num" id="LN417">417</td><td class="line"> retval = profiles_alphabetic_cmp (profile_a, profile_b);</td></tr>
+<tr class="codeline" data-linenumber="418"><td class="num" id="LN418">418</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="419"><td class="num" id="LN419">419</td><td class="line"> g_object_unref (profile_a);</td></tr>
+<tr class="codeline" data-linenumber="420"><td class="num" id="LN420">420</td><td class="line"> g_object_unref (profile_b);</td></tr>
+<tr class="codeline" data-linenumber="421"><td class="num" id="LN421">421</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="422"><td class="num" id="LN422">422</td><td class="line"> <span class='keyword'>return</span> retval;</td></tr>
+<tr class="codeline" data-linenumber="423"><td class="num" id="LN423">423</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="424"><td class="num" id="LN424">424</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="425"><td class="num" id="LN425">425</td><td class="line"><span class='keyword'>static</span> <span class='comment'>/* ref */</span> GtkTreeModel *</td></tr>
+<tr class="codeline" data-linenumber="426"><td class="num" id="LN426">426</td><td class="line">terminal_app_get_profile_liststore (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="427"><td class="num" id="LN427">427</td><td class="line"> TerminalProfile *selected_profile,</td></tr>
+<tr class="codeline" data-linenumber="428"><td class="num" id="LN428">428</td><td class="line"> GtkTreeIter *selected_profile_iter,</td></tr>
+<tr class="codeline" data-linenumber="429"><td class="num" id="LN429">429</td><td class="line"> gboolean *selected_profile_iter_set)</td></tr>
+<tr class="codeline" data-linenumber="430"><td class="num" id="LN430">430</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="431"><td class="num" id="LN431">431</td><td class="line"> GtkListStore *store;</td></tr>
+<tr class="codeline" data-linenumber="432"><td class="num" id="LN432">432</td><td class="line"> GtkTreeIter iter;</td></tr>
+<tr class="codeline" data-linenumber="433"><td class="num" id="LN433">433</td><td class="line"> GList *profiles, *l;</td></tr>
+<tr class="codeline" data-linenumber="434"><td class="num" id="LN434">434</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="435"><td class="num" id="LN435">435</td><td class="line"> store = gtk_list_store_new (NUM_COLUMNS, <span class='macro'>TERMINAL_TYPE_PROFILE<span class='macro_popup'>(terminal_profile_get_type ())</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="436"><td class="num" id="LN436">436</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="437"><td class="num" id="LN437">437</td><td class="line"> *selected_profile_iter_set = <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="438"><td class="num" id="LN438">438</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="439"><td class="num" id="LN439">439</td><td class="line"> <span class='keyword'>if</span> (selected_profile &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="440"><td class="num" id="LN440">440</td><td class="line"> _terminal_profile_get_forgotten (selected_profile))</td></tr>
+<tr class="codeline" data-linenumber="441"><td class="num" id="LN441">441</td><td class="line"> selected_profile = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="442"><td class="num" id="LN442">442</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="443"><td class="num" id="LN443">443</td><td class="line"> profiles = terminal_app_get_profile_list (app);</td></tr>
+<tr class="codeline" data-linenumber="444"><td class="num" id="LN444">444</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="445"><td class="num" id="LN445">445</td><td class="line"> <span class='keyword'>for</span> (l = profiles; l != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; l = l-&gt;next)</td></tr>
+<tr class="codeline" data-linenumber="446"><td class="num" id="LN446">446</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="447"><td class="num" id="LN447">447</td><td class="line"> TerminalProfile *profile = <span class='macro'>TERMINAL_PROFILE (l-&gt;data)<span class='macro_popup'>((((TerminalProfile*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((l-&gt;data)), ((terminal_profile_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="448"><td class="num" id="LN448">448</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="449"><td class="num" id="LN449">449</td><td class="line"> gtk_list_store_insert_with_values (store, &amp;iter, 0,</td></tr>
+<tr class="codeline" data-linenumber="450"><td class="num" id="LN450">450</td><td class="line"> (<span class='keyword'>int</span>) COL_PROFILE, profile,</td></tr>
+<tr class="codeline" data-linenumber="451"><td class="num" id="LN451">451</td><td class="line"> (<span class='keyword'>int</span>) -1);</td></tr>
+<tr class="codeline" data-linenumber="452"><td class="num" id="LN452">452</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="453"><td class="num" id="LN453">453</td><td class="line"> <span class='keyword'>if</span> (selected_profile_iter &amp;&amp; profile == selected_profile)</td></tr>
+<tr class="codeline" data-linenumber="454"><td class="num" id="LN454">454</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="455"><td class="num" id="LN455">455</td><td class="line"> *selected_profile_iter = iter;</td></tr>
+<tr class="codeline" data-linenumber="456"><td class="num" id="LN456">456</td><td class="line"> *selected_profile_iter_set = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="457"><td class="num" id="LN457">457</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="458"><td class="num" id="LN458">458</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="459"><td class="num" id="LN459">459</td><td class="line"> g_list_free (profiles);</td></tr>
+<tr class="codeline" data-linenumber="460"><td class="num" id="LN460">460</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="461"><td class="num" id="LN461">461</td><td class="line"> <span class='comment'>/* Now turn on sorting */</span></td></tr>
+<tr class="codeline" data-linenumber="462"><td class="num" id="LN462">462</td><td class="line"> gtk_tree_sortable_set_sort_func (<span class='macro'>GTK_TREE_SORTABLE (store)<span class='macro_popup'>((((GtkTreeSortable*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((store)), ((gtk_tree_sortable_get_type ()))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="463"><td class="num" id="LN463">463</td><td class="line"> COL_PROFILE,</td></tr>
+<tr class="codeline" data-linenumber="464"><td class="num" id="LN464">464</td><td class="line"> terminal_app_profile_sort_func,</td></tr>
+<tr class="codeline" data-linenumber="465"><td class="num" id="LN465">465</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="466"><td class="num" id="LN466">466</td><td class="line"> gtk_tree_sortable_set_sort_column_id (<span class='macro'>GTK_TREE_SORTABLE (store)<span class='macro_popup'>((((GtkTreeSortable*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((store)), ((gtk_tree_sortable_get_type ()))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="467"><td class="num" id="LN467">467</td><td class="line"> COL_PROFILE, GTK_SORT_ASCENDING);</td></tr>
+<tr class="codeline" data-linenumber="468"><td class="num" id="LN468">468</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="469"><td class="num" id="LN469">469</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>GTK_TREE_MODEL (store)<span class='macro_popup'>((((GtkTreeModel*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((store)), ((gtk_tree_model_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="470"><td class="num" id="LN470">470</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="471"><td class="num" id="LN471">471</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="472"><td class="num" id="LN472">472</td><td class="line"><span class='keyword'>static</span> <span class='comment'>/* ref */</span> TerminalProfile*</td></tr>
+<tr class="codeline" data-linenumber="473"><td class="num" id="LN473">473</td><td class="line">profile_combo_box_get_selected (GtkWidget *widget)</td></tr>
+<tr class="codeline" data-linenumber="474"><td class="num" id="LN474">474</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="475"><td class="num" id="LN475">475</td><td class="line"> GtkComboBox *combo = <span class='macro'>GTK_COMBO_BOX (widget)<span class='macro_popup'>((((GtkComboBox*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((widget)), ((gtk_combo_box_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="476"><td class="num" id="LN476">476</td><td class="line"> TerminalProfile *profile = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="477"><td class="num" id="LN477">477</td><td class="line"> GtkTreeIter iter;</td></tr>
+<tr class="codeline" data-linenumber="478"><td class="num" id="LN478">478</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="479"><td class="num" id="LN479">479</td><td class="line"> <span class='keyword'>if</span> (gtk_combo_box_get_active_iter (combo, &amp;iter))</td></tr>
+<tr class="codeline" data-linenumber="480"><td class="num" id="LN480">480</td><td class="line"> gtk_tree_model_get (gtk_combo_box_get_model (combo), &amp;iter,</td></tr>
+<tr class="codeline" data-linenumber="481"><td class="num" id="LN481">481</td><td class="line"> (<span class='keyword'>int</span>) COL_PROFILE, &amp;profile, (<span class='keyword'>int</span>) -1);</td></tr>
+<tr class="codeline" data-linenumber="482"><td class="num" id="LN482">482</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="483"><td class="num" id="LN483">483</td><td class="line"> <span class='keyword'>return</span> profile;</td></tr>
+<tr class="codeline" data-linenumber="484"><td class="num" id="LN484">484</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="485"><td class="num" id="LN485">485</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="486"><td class="num" id="LN486">486</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="487"><td class="num" id="LN487">487</td><td class="line">profile_combo_box_refill (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="488"><td class="num" id="LN488">488</td><td class="line"> GtkWidget *widget)</td></tr>
+<tr class="codeline" data-linenumber="489"><td class="num" id="LN489">489</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="490"><td class="num" id="LN490">490</td><td class="line"> GtkComboBox *combo = <span class='macro'>GTK_COMBO_BOX (widget)<span class='macro_popup'>((((GtkComboBox*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((widget)), ((gtk_combo_box_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="491"><td class="num" id="LN491">491</td><td class="line"> GtkTreeIter iter;</td></tr>
+<tr class="codeline" data-linenumber="492"><td class="num" id="LN492">492</td><td class="line"> gboolean iter_set;</td></tr>
+<tr class="codeline" data-linenumber="493"><td class="num" id="LN493">493</td><td class="line"> TerminalProfile *selected_profile;</td></tr>
+<tr class="codeline" data-linenumber="494"><td class="num" id="LN494">494</td><td class="line"> GtkTreeModel *model;</td></tr>
+<tr class="codeline" data-linenumber="495"><td class="num" id="LN495">495</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="496"><td class="num" id="LN496">496</td><td class="line"> selected_profile = profile_combo_box_get_selected (widget);</td></tr>
+<tr class="codeline" data-linenumber="497"><td class="num" id="LN497">497</td><td class="line"> <span class='keyword'>if</span> (!selected_profile)</td></tr>
+<tr class="codeline" data-linenumber="498"><td class="num" id="LN498">498</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="499"><td class="num" id="LN499">499</td><td class="line"> selected_profile = terminal_app_get_default_profile (app);</td></tr>
+<tr class="codeline" data-linenumber="500"><td class="num" id="LN500">500</td><td class="line"> <span class='keyword'>if</span> (selected_profile)</td></tr>
+<tr class="codeline" data-linenumber="501"><td class="num" id="LN501">501</td><td class="line"> <span class='macro'>g_object_ref (selected_profile)<span class='macro_popup'>((__typeof__ (selected_profile)) (g_object_ref) (selected_profile<br>))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="502"><td class="num" id="LN502">502</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="503"><td class="num" id="LN503">503</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="504"><td class="num" id="LN504">504</td><td class="line"> model = terminal_app_get_profile_liststore (app,</td></tr>
+<tr class="codeline" data-linenumber="505"><td class="num" id="LN505">505</td><td class="line"> selected_profile,</td></tr>
+<tr class="codeline" data-linenumber="506"><td class="num" id="LN506">506</td><td class="line"> &amp;iter,</td></tr>
+<tr class="codeline" data-linenumber="507"><td class="num" id="LN507">507</td><td class="line"> &amp;iter_set);</td></tr>
+<tr class="codeline" data-linenumber="508"><td class="num" id="LN508">508</td><td class="line"> gtk_combo_box_set_model (combo, model);</td></tr>
+<tr class="codeline" data-linenumber="509"><td class="num" id="LN509">509</td><td class="line"> g_object_unref (model);</td></tr>
+<tr class="codeline" data-linenumber="510"><td class="num" id="LN510">510</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="511"><td class="num" id="LN511">511</td><td class="line"> <span class='keyword'>if</span> (iter_set)</td></tr>
+<tr class="codeline" data-linenumber="512"><td class="num" id="LN512">512</td><td class="line"> gtk_combo_box_set_active_iter (combo, &amp;iter);</td></tr>
+<tr class="codeline" data-linenumber="513"><td class="num" id="LN513">513</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="514"><td class="num" id="LN514">514</td><td class="line"> <span class='keyword'>if</span> (selected_profile)</td></tr>
+<tr class="codeline" data-linenumber="515"><td class="num" id="LN515">515</td><td class="line"> g_object_unref (selected_profile);</td></tr>
+<tr class="codeline" data-linenumber="516"><td class="num" id="LN516">516</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="517"><td class="num" id="LN517">517</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="518"><td class="num" id="LN518">518</td><td class="line"><span class='keyword'>static</span> GtkWidget*</td></tr>
+<tr class="codeline" data-linenumber="519"><td class="num" id="LN519">519</td><td class="line">profile_combo_box_new (TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="520"><td class="num" id="LN520">520</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="521"><td class="num" id="LN521">521</td><td class="line"> GtkWidget *combo;</td></tr>
+<tr class="codeline" data-linenumber="522"><td class="num" id="LN522">522</td><td class="line"> GtkCellRenderer *renderer;</td></tr>
+<tr class="codeline" data-linenumber="523"><td class="num" id="LN523">523</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="524"><td class="num" id="LN524">524</td><td class="line"> combo = gtk_combo_box_new ();</td></tr>
+<tr class="codeline" data-linenumber="525"><td class="num" id="LN525">525</td><td class="line"> terminal_util_set_atk_name_description (combo, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>_(<span class='string_literal'>"Click button to choose profile"</span>)<span class='macro_popup'>gettext ("Click button to choose profile")</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="526"><td class="num" id="LN526">526</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="527"><td class="num" id="LN527">527</td><td class="line"> renderer = gtk_cell_renderer_text_new ();</td></tr>
+<tr class="codeline" data-linenumber="528"><td class="num" id="LN528">528</td><td class="line"> gtk_cell_layout_pack_start (<span class='macro'>GTK_CELL_LAYOUT (combo)<span class='macro_popup'>((((GtkCellLayout*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((combo)), ((gtk_cell_layout_get_type ()))))))</span></span>, renderer, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="529"><td class="num" id="LN529">529</td><td class="line"> gtk_cell_layout_set_cell_data_func (<span class='macro'>GTK_CELL_LAYOUT (combo)<span class='macro_popup'>((((GtkCellLayout*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((combo)), ((gtk_cell_layout_get_type ()))))))</span></span>, renderer,</td></tr>
+<tr class="codeline" data-linenumber="530"><td class="num" id="LN530">530</td><td class="line"> (GtkCellLayoutDataFunc) terminal_app_profile_cell_data_func,</td></tr>
+<tr class="codeline" data-linenumber="531"><td class="num" id="LN531">531</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="532"><td class="num" id="LN532">532</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="533"><td class="num" id="LN533">533</td><td class="line"> profile_combo_box_refill (app, combo);</td></tr>
+<tr class="codeline" data-linenumber="534"><td class="num" id="LN534">534</td><td class="line"> <span class='macro'>g_signal_connect (app, <span class='string_literal'>"profile-list-changed"</span>,<span class='macro_popup'>g_signal_connect_data ((app), ("profile-list-changed"), (((GCallback<br>) (profile_combo_box_refill))), (combo), ((void*)0), (GConnectFlags<br>) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="535"><td class="num" id="LN535">535</td><td class="line"> <span class='macro'>G_CALLBACK (profile_combo_box_refill), combo)<span class='macro_popup'>g_signal_connect_data ((app), ("profile-list-changed"), (((GCallback<br>) (profile_combo_box_refill))), (combo), ((void*)0), (GConnectFlags<br>) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="536"><td class="num" id="LN536">536</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="537"><td class="num" id="LN537">537</td><td class="line"> gtk_widget_show (combo);</td></tr>
+<tr class="codeline" data-linenumber="538"><td class="num" id="LN538">538</td><td class="line"> <span class='keyword'>return</span> combo;</td></tr>
+<tr class="codeline" data-linenumber="539"><td class="num" id="LN539">539</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="540"><td class="num" id="LN540">540</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="541"><td class="num" id="LN541">541</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="542"><td class="num" id="LN542">542</td><td class="line">profile_combo_box_changed_cb (GtkWidget *widget,</td></tr>
+<tr class="codeline" data-linenumber="543"><td class="num" id="LN543">543</td><td class="line"> TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="544"><td class="num" id="LN544">544</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="545"><td class="num" id="LN545">545</td><td class="line"> TerminalProfile *profile;</td></tr>
+<tr class="codeline" data-linenumber="546"><td class="num" id="LN546">546</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="547"><td class="num" id="LN547">547</td><td class="line"> profile = profile_combo_box_get_selected (widget);</td></tr>
+<tr class="codeline" data-linenumber="548"><td class="num" id="LN548">548</td><td class="line"> <span class='keyword'>if</span> (!profile)</td></tr>
+<tr class="codeline" data-linenumber="549"><td class="num" id="LN549">549</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="550"><td class="num" id="LN550">550</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="551"><td class="num" id="LN551">551</td><td class="line"> g_settings_set_string (settings_global, <span class='macro'>DEFAULT_PROFILE_KEY<span class='macro_popup'>"default-profile"</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="552"><td class="num" id="LN552">552</td><td class="line"> terminal_profile_get_property_string (profile, <span class='macro'>TERMINAL_PROFILE_NAME<span class='macro_popup'>"name"</span></span>));</td></tr>
+<tr class="codeline" data-linenumber="553"><td class="num" id="LN553">553</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="554"><td class="num" id="LN554">554</td><td class="line"> <span class='comment'>/* Even though the GSettings change notification does this, it happens too late.</span></td></tr>
+<tr class="codeline" data-linenumber="555"><td class="num" id="LN555">555</td><td class="line"> <span class='comment'>* In some cases, the default profile changes twice in quick succession,</span></td></tr>
+<tr class="codeline" data-linenumber="556"><td class="num" id="LN556">556</td><td class="line"> <span class='comment'>* and update_default_profile must be called in sync with those changes.</span></td></tr>
+<tr class="codeline" data-linenumber="557"><td class="num" id="LN557">557</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="558"><td class="num" id="LN558">558</td><td class="line"> app-&gt;default_profile = profile;</td></tr>
+<tr class="codeline" data-linenumber="559"><td class="num" id="LN559">559</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="560"><td class="num" id="LN560">560</td><td class="line"> g_object_notify (<span class='macro'>G_OBJECT (app)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, <span class='macro'>TERMINAL_APP_DEFAULT_PROFILE<span class='macro_popup'>"default-profile"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="561"><td class="num" id="LN561">561</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="562"><td class="num" id="LN562">562</td><td class="line"> g_object_unref (profile);</td></tr>
+<tr class="codeline" data-linenumber="563"><td class="num" id="LN563">563</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="564"><td class="num" id="LN564">564</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="565"><td class="num" id="LN565">565</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="566"><td class="num" id="LN566">566</td><td class="line">profile_list_treeview_refill (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="567"><td class="num" id="LN567">567</td><td class="line"> GtkWidget *widget)</td></tr>
+<tr class="codeline" data-linenumber="568"><td class="num" id="LN568">568</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="569"><td class="num" id="LN569">569</td><td class="line"> GtkTreeView *tree_view = <span class='macro'>GTK_TREE_VIEW (widget)<span class='macro_popup'>((((GtkTreeView*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((widget)), ((gtk_tree_view_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="570"><td class="num" id="LN570">570</td><td class="line"> GtkTreeIter iter;</td></tr>
+<tr class="codeline" data-linenumber="571"><td class="num" id="LN571">571</td><td class="line"> gboolean iter_set;</td></tr>
+<tr class="codeline" data-linenumber="572"><td class="num" id="LN572">572</td><td class="line"> GtkTreeSelection *selection;</td></tr>
+<tr class="codeline" data-linenumber="573"><td class="num" id="LN573">573</td><td class="line"> GtkTreeModel *model;</td></tr>
+<tr class="codeline" data-linenumber="574"><td class="num" id="LN574">574</td><td class="line"> TerminalProfile *selected_profile = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="575"><td class="num" id="LN575">575</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="576"><td class="num" id="LN576">576</td><td class="line"> model = gtk_tree_view_get_model (tree_view);</td></tr>
+<tr class="codeline" data-linenumber="577"><td class="num" id="LN577">577</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="578"><td class="num" id="LN578">578</td><td class="line"> selection = gtk_tree_view_get_selection (tree_view);</td></tr>
+<tr class="codeline" data-linenumber="579"><td class="num" id="LN579">579</td><td class="line"> <span class='keyword'>if</span> (gtk_tree_selection_get_selected (selection, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, &amp;iter))</td></tr>
+<tr class="codeline" data-linenumber="580"><td class="num" id="LN580">580</td><td class="line"> gtk_tree_model_get (model, &amp;iter, (<span class='keyword'>int</span>) COL_PROFILE, &amp;selected_profile, (<span class='keyword'>int</span>) -1);</td></tr>
+<tr class="codeline" data-linenumber="581"><td class="num" id="LN581">581</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="582"><td class="num" id="LN582">582</td><td class="line"> model = terminal_app_get_profile_liststore (terminal_app_get (),</td></tr>
+<tr class="codeline" data-linenumber="583"><td class="num" id="LN583">583</td><td class="line"> selected_profile,</td></tr>
+<tr class="codeline" data-linenumber="584"><td class="num" id="LN584">584</td><td class="line"> &amp;iter,</td></tr>
+<tr class="codeline" data-linenumber="585"><td class="num" id="LN585">585</td><td class="line"> &amp;iter_set);</td></tr>
+<tr class="codeline" data-linenumber="586"><td class="num" id="LN586">586</td><td class="line"> gtk_tree_view_set_model (tree_view, model);</td></tr>
+<tr class="codeline" data-linenumber="587"><td class="num" id="LN587">587</td><td class="line"> g_object_unref (model);</td></tr>
+<tr class="codeline" data-linenumber="588"><td class="num" id="LN588">588</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="589"><td class="num" id="LN589">589</td><td class="line"> <span class='keyword'>if</span> (!iter_set)</td></tr>
+<tr class="codeline" data-linenumber="590"><td class="num" id="LN590">590</td><td class="line"> iter_set = gtk_tree_model_get_iter_first (model, &amp;iter);</td></tr>
+<tr class="codeline" data-linenumber="591"><td class="num" id="LN591">591</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="592"><td class="num" id="LN592">592</td><td class="line"> <span class='keyword'>if</span> (iter_set)</td></tr>
+<tr class="codeline" data-linenumber="593"><td class="num" id="LN593">593</td><td class="line"> gtk_tree_selection_select_iter (selection, &amp;iter);</td></tr>
+<tr class="codeline" data-linenumber="594"><td class="num" id="LN594">594</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="595"><td class="num" id="LN595">595</td><td class="line"> <span class='keyword'>if</span> (selected_profile)</td></tr>
+<tr class="codeline" data-linenumber="596"><td class="num" id="LN596">596</td><td class="line"> g_object_unref (selected_profile);</td></tr>
+<tr class="codeline" data-linenumber="597"><td class="num" id="LN597">597</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="598"><td class="num" id="LN598">598</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="599"><td class="num" id="LN599">599</td><td class="line"><span class='keyword'>static</span> GtkWidget*</td></tr>
+<tr class="codeline" data-linenumber="600"><td class="num" id="LN600">600</td><td class="line">profile_list_treeview_create (TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="601"><td class="num" id="LN601">601</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="602"><td class="num" id="LN602">602</td><td class="line"> GtkWidget *tree_view;</td></tr>
+<tr class="codeline" data-linenumber="603"><td class="num" id="LN603">603</td><td class="line"> GtkTreeSelection *selection;</td></tr>
+<tr class="codeline" data-linenumber="604"><td class="num" id="LN604">604</td><td class="line"> GtkCellRenderer *renderer;</td></tr>
+<tr class="codeline" data-linenumber="605"><td class="num" id="LN605">605</td><td class="line"> GtkTreeViewColumn *column;</td></tr>
+<tr class="codeline" data-linenumber="606"><td class="num" id="LN606">606</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="607"><td class="num" id="LN607">607</td><td class="line"> tree_view = gtk_tree_view_new ();</td></tr>
+<tr class="codeline" data-linenumber="608"><td class="num" id="LN608">608</td><td class="line"> terminal_util_set_atk_name_description (tree_view, <span class='macro'>_(<span class='string_literal'>"Profile list"</span>)<span class='macro_popup'>gettext ("Profile list")</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="609"><td class="num" id="LN609">609</td><td class="line"> gtk_tree_view_set_headers_visible (<span class='macro'>GTK_TREE_VIEW (tree_view)<span class='macro_popup'>((((GtkTreeView*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((tree_view)), ((gtk_tree_view_get_type ()))))))</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="610"><td class="num" id="LN610">610</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="611"><td class="num" id="LN611">611</td><td class="line"> selection = gtk_tree_view_get_selection (<span class='macro'>GTK_TREE_VIEW (tree_view)<span class='macro_popup'>((((GtkTreeView*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((tree_view)), ((gtk_tree_view_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="612"><td class="num" id="LN612">612</td><td class="line"> gtk_tree_selection_set_mode (<span class='macro'>GTK_TREE_SELECTION (selection)<span class='macro_popup'>((((GtkTreeSelection*) (void *) g_type_check_instance_cast ((<br>GTypeInstance*) ((selection)), ((gtk_tree_selection_get_type (<br>)))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="613"><td class="num" id="LN613">613</td><td class="line"> GTK_SELECTION_BROWSE);</td></tr>
+<tr class="codeline" data-linenumber="614"><td class="num" id="LN614">614</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="615"><td class="num" id="LN615">615</td><td class="line"> column = gtk_tree_view_column_new ();</td></tr>
+<tr class="codeline" data-linenumber="616"><td class="num" id="LN616">616</td><td class="line"> renderer = gtk_cell_renderer_text_new ();</td></tr>
+<tr class="codeline" data-linenumber="617"><td class="num" id="LN617">617</td><td class="line"> gtk_cell_layout_pack_start (<span class='macro'>GTK_CELL_LAYOUT (column)<span class='macro_popup'>((((GtkCellLayout*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((column)), ((gtk_cell_layout_get_type ()))))))</span></span>, renderer, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="618"><td class="num" id="LN618">618</td><td class="line"> gtk_cell_layout_set_cell_data_func (<span class='macro'>GTK_CELL_LAYOUT (column)<span class='macro_popup'>((((GtkCellLayout*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((column)), ((gtk_cell_layout_get_type ()))))))</span></span>, renderer,</td></tr>
+<tr class="codeline" data-linenumber="619"><td class="num" id="LN619">619</td><td class="line"> (GtkCellLayoutDataFunc) terminal_app_profile_cell_data_func,</td></tr>
+<tr class="codeline" data-linenumber="620"><td class="num" id="LN620">620</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="621"><td class="num" id="LN621">621</td><td class="line"> gtk_tree_view_append_column (<span class='macro'>GTK_TREE_VIEW (tree_view)<span class='macro_popup'>((((GtkTreeView*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((tree_view)), ((gtk_tree_view_get_type ()))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="622"><td class="num" id="LN622">622</td><td class="line"> <span class='macro'>GTK_TREE_VIEW_COLUMN (column)<span class='macro_popup'>((((GtkTreeViewColumn*) (void *) g_type_check_instance_cast (<br>(GTypeInstance*) ((column)), ((gtk_tree_view_column_get_type (<br>)))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="623"><td class="num" id="LN623">623</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="624"><td class="num" id="LN624">624</td><td class="line"> <span class='keyword'>return</span> tree_view;</td></tr>
+<tr class="codeline" data-linenumber="625"><td class="num" id="LN625">625</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="626"><td class="num" id="LN626">626</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="627"><td class="num" id="LN627">627</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="628"><td class="num" id="LN628">628</td><td class="line">profile_list_delete_confirm_response_cb (GtkWidget *dialog,</td></tr>
+<tr class="codeline" data-linenumber="629"><td class="num" id="LN629">629</td><td class="line"> <span class='keyword'>int</span> response)</td></tr>
+<tr class="codeline" data-linenumber="630"><td class="num" id="LN630">630</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="631"><td class="num" id="LN631">631</td><td class="line"> TerminalProfile *profile;</td></tr>
+<tr class="codeline" data-linenumber="632"><td class="num" id="LN632">632</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="633"><td class="num" id="LN633">633</td><td class="line"> profile = <span class='macro'>TERMINAL_PROFILE (g_object_get_data (G_OBJECT (dialog), <span class='string_literal'>"profile"</span>))<span class='macro_popup'>((((TerminalProfile*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((g_object_get_data (((((GObject*) (void *) g_type_check_instance_cast<br> ((GTypeInstance*) ((dialog)), (((GType) ((20) &lt;&lt; (2)))<br>))))), "profile"))), ((terminal_profile_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="634"><td class="num" id="LN634">634</td><td class="line"> <span class='macro'>g_assert (profile != NULL)<span class='macro_popup'>do { if (profile != ((void*)0)) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-app.c", 634, ((const char*) (__func__<br>)), "profile != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="635"><td class="num" id="LN635">635</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="636"><td class="num" id="LN636">636</td><td class="line"> <span class='keyword'>if</span> (response == GTK_RESPONSE_ACCEPT)</td></tr>
+<tr class="codeline" data-linenumber="637"><td class="num" id="LN637">637</td><td class="line"> terminal_app_delete_profile (profile);</td></tr>
+<tr class="codeline" data-linenumber="638"><td class="num" id="LN638">638</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="639"><td class="num" id="LN639">639</td><td class="line"> gtk_widget_destroy (dialog);</td></tr>
+<tr class="codeline" data-linenumber="640"><td class="num" id="LN640">640</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="641"><td class="num" id="LN641">641</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="642"><td class="num" id="LN642">642</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="643"><td class="num" id="LN643">643</td><td class="line">mate_dialog_add_button (GtkDialog *dialog,</td></tr>
+<tr class="codeline" data-linenumber="644"><td class="num" id="LN644">644</td><td class="line"> <span class='keyword'>const</span> gchar *button_text,</td></tr>
+<tr class="codeline" data-linenumber="645"><td class="num" id="LN645">645</td><td class="line"> <span class='keyword'>const</span> gchar *icon_name,</td></tr>
+<tr class="codeline" data-linenumber="646"><td class="num" id="LN646">646</td><td class="line"> gint response_id)</td></tr>
+<tr class="codeline" data-linenumber="647"><td class="num" id="LN647">647</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="648"><td class="num" id="LN648">648</td><td class="line"> GtkWidget *button;</td></tr>
+<tr class="codeline" data-linenumber="649"><td class="num" id="LN649">649</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="650"><td class="num" id="LN650">650</td><td class="line"> button = gtk_button_new_with_mnemonic (button_text);</td></tr>
+<tr class="codeline" data-linenumber="651"><td class="num" id="LN651">651</td><td class="line"> gtk_button_set_image (<span class='macro'>GTK_BUTTON (button)<span class='macro_popup'>((((GtkButton*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((button)), ((gtk_button_get_type ()))))))</span></span>, gtk_image_new_from_icon_name (icon_name, GTK_ICON_SIZE_BUTTON));</td></tr>
+<tr class="codeline" data-linenumber="652"><td class="num" id="LN652">652</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="653"><td class="num" id="LN653">653</td><td class="line"> gtk_button_set_use_underline (<span class='macro'>GTK_BUTTON (button)<span class='macro_popup'>((((GtkButton*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((button)), ((gtk_button_get_type ()))))))</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="654"><td class="num" id="LN654">654</td><td class="line"> gtk_style_context_add_class (gtk_widget_get_style_context (button), <span class='string_literal'>"text-button"</span>);</td></tr>
+<tr class="codeline" data-linenumber="655"><td class="num" id="LN655">655</td><td class="line"> gtk_widget_set_can_default (button, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="656"><td class="num" id="LN656">656</td><td class="line"> gtk_widget_show (button);</td></tr>
+<tr class="codeline" data-linenumber="657"><td class="num" id="LN657">657</td><td class="line"> gtk_dialog_add_action_widget (<span class='macro'>GTK_DIALOG (dialog)<span class='macro_popup'>((((GtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((dialog)), ((gtk_dialog_get_type ()))))))</span></span>, button, response_id);</td></tr>
+<tr class="codeline" data-linenumber="658"><td class="num" id="LN658">658</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="659"><td class="num" id="LN659">659</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="660"><td class="num" id="LN660">660</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="661"><td class="num" id="LN661">661</td><td class="line">profile_list_delete_button_clicked_cb (GtkWidget *button,</td></tr>
+<tr class="codeline" data-linenumber="662"><td class="num" id="LN662">662</td><td class="line"> GtkWidget *widget)</td></tr>
+<tr class="codeline" data-linenumber="663"><td class="num" id="LN663">663</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="664"><td class="num" id="LN664">664</td><td class="line"> GtkTreeView *tree_view = <span class='macro'>GTK_TREE_VIEW (widget)<span class='macro_popup'>((((GtkTreeView*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((widget)), ((gtk_tree_view_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="665"><td class="num" id="LN665">665</td><td class="line"> GtkTreeSelection *selection;</td></tr>
+<tr class="codeline" data-linenumber="666"><td class="num" id="LN666">666</td><td class="line"> GtkWidget *dialog;</td></tr>
+<tr class="codeline" data-linenumber="667"><td class="num" id="LN667">667</td><td class="line"> GtkTreeIter iter;</td></tr>
+<tr class="codeline" data-linenumber="668"><td class="num" id="LN668">668</td><td class="line"> GtkTreeModel *model;</td></tr>
+<tr class="codeline" data-linenumber="669"><td class="num" id="LN669">669</td><td class="line"> TerminalProfile *selected_profile;</td></tr>
+<tr class="codeline" data-linenumber="670"><td class="num" id="LN670">670</td><td class="line"> GtkWidget *transient_parent;</td></tr>
+<tr class="codeline" data-linenumber="671"><td class="num" id="LN671">671</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="672"><td class="num" id="LN672">672</td><td class="line"> model = gtk_tree_view_get_model (tree_view);</td></tr>
+<tr class="codeline" data-linenumber="673"><td class="num" id="LN673">673</td><td class="line"> selection = gtk_tree_view_get_selection (tree_view);</td></tr>
+<tr class="codeline" data-linenumber="674"><td class="num" id="LN674">674</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="675"><td class="num" id="LN675">675</td><td class="line"> <span class='keyword'>if</span> (!gtk_tree_selection_get_selected (selection, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, &amp;iter))</td></tr>
+<tr class="codeline" data-linenumber="676"><td class="num" id="LN676">676</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="677"><td class="num" id="LN677">677</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="678"><td class="num" id="LN678">678</td><td class="line"> gtk_tree_model_get (model, &amp;iter, (<span class='keyword'>int</span>) COL_PROFILE, &amp;selected_profile, (<span class='keyword'>int</span>) -1);</td></tr>
+<tr class="codeline" data-linenumber="679"><td class="num" id="LN679">679</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="680"><td class="num" id="LN680">680</td><td class="line"> transient_parent = gtk_widget_get_toplevel (widget);</td></tr>
+<tr class="codeline" data-linenumber="681"><td class="num" id="LN681">681</td><td class="line"> dialog = gtk_message_dialog_new (<span class='macro'>GTK_WINDOW (transient_parent)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((transient_parent)), ((gtk_window_get_type ()))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="682"><td class="num" id="LN682">682</td><td class="line"> GTK_DIALOG_DESTROY_WITH_PARENT,</td></tr>
+<tr class="codeline" data-linenumber="683"><td class="num" id="LN683">683</td><td class="line"> GTK_MESSAGE_QUESTION,</td></tr>
+<tr class="codeline" data-linenumber="684"><td class="num" id="LN684">684</td><td class="line"> GTK_BUTTONS_NONE,</td></tr>
+<tr class="codeline" data-linenumber="685"><td class="num" id="LN685">685</td><td class="line"> <span class='macro'>_(<span class='string_literal'>"Delete profile “%s”?"</span>)<span class='macro_popup'>gettext ("Delete profile “%s”?")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="686"><td class="num" id="LN686">686</td><td class="line"> terminal_profile_get_property_string (selected_profile, <span class='macro'>TERMINAL_PROFILE_VISIBLE_NAME<span class='macro_popup'>"visible-name"</span></span>));</td></tr>
+<tr class="codeline" data-linenumber="687"><td class="num" id="LN687">687</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="688"><td class="num" id="LN688">688</td><td class="line"> mate_dialog_add_button (<span class='macro'>GTK_DIALOG (dialog)<span class='macro_popup'>((((GtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((dialog)), ((gtk_dialog_get_type ()))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="689"><td class="num" id="LN689">689</td><td class="line"> <span class='macro'>_(<span class='string_literal'>"_Cancel"</span>)<span class='macro_popup'>gettext ("_Cancel")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="690"><td class="num" id="LN690">690</td><td class="line"> <span class='string_literal'>"process-stop"</span>,</td></tr>
+<tr class="codeline" data-linenumber="691"><td class="num" id="LN691">691</td><td class="line"> GTK_RESPONSE_REJECT);</td></tr>
+<tr class="codeline" data-linenumber="692"><td class="num" id="LN692">692</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="693"><td class="num" id="LN693">693</td><td class="line"> mate_dialog_add_button (<span class='macro'>GTK_DIALOG (dialog)<span class='macro_popup'>((((GtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((dialog)), ((gtk_dialog_get_type ()))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="694"><td class="num" id="LN694">694</td><td class="line"> <span class='macro'>_(<span class='string_literal'>"_Delete"</span>)<span class='macro_popup'>gettext ("_Delete")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="695"><td class="num" id="LN695">695</td><td class="line"> <span class='string_literal'>"edit-delete"</span>,</td></tr>
+<tr class="codeline" data-linenumber="696"><td class="num" id="LN696">696</td><td class="line"> GTK_RESPONSE_ACCEPT);</td></tr>
+<tr class="codeline" data-linenumber="697"><td class="num" id="LN697">697</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="698"><td class="num" id="LN698">698</td><td class="line"> gtk_dialog_set_default_response (<span class='macro'>GTK_DIALOG (dialog)<span class='macro_popup'>((((GtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((dialog)), ((gtk_dialog_get_type ()))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="699"><td class="num" id="LN699">699</td><td class="line"> GTK_RESPONSE_ACCEPT);</td></tr>
+<tr class="codeline" data-linenumber="700"><td class="num" id="LN700">700</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="701"><td class="num" id="LN701">701</td><td class="line"> gtk_window_set_title (<span class='macro'>GTK_WINDOW (dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((dialog)), ((gtk_window_get_type ()))))))</span></span>, <span class='macro'>_(<span class='string_literal'>"Delete Profile"</span>)<span class='macro_popup'>gettext ("Delete Profile")</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="702"><td class="num" id="LN702">702</td><td class="line"> gtk_window_set_resizable (<span class='macro'>GTK_WINDOW (dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((dialog)), ((gtk_window_get_type ()))))))</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="703"><td class="num" id="LN703">703</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="704"><td class="num" id="LN704">704</td><td class="line"> <span class='comment'>/* Transfer refcount of |selected_profile|, so no unref below */</span></td></tr>
+<tr class="codeline" data-linenumber="705"><td class="num" id="LN705">705</td><td class="line"> g_object_set_data_full (<span class='macro'>G_OBJECT (dialog)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((dialog)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, <span class='string_literal'>"profile"</span>, selected_profile, g_object_unref);</td></tr>
+<tr class="codeline" data-linenumber="706"><td class="num" id="LN706">706</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="707"><td class="num" id="LN707">707</td><td class="line"> <span class='macro'>g_signal_connect (dialog, <span class='string_literal'>"response"</span>,<span class='macro_popup'>g_signal_connect_data ((dialog), ("response"), (((GCallback) (<br>profile_list_delete_confirm_response_cb))), (((void*)0)), ((void<br>*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="708"><td class="num" id="LN708">708</td><td class="line"> <span class='macro'>G_CALLBACK (profile_list_delete_confirm_response_cb),<span class='macro_popup'>g_signal_connect_data ((dialog), ("response"), (((GCallback) (<br>profile_list_delete_confirm_response_cb))), (((void*)0)), ((void<br>*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="709"><td class="num" id="LN709">709</td><td class="line"> <span class='macro'>NULL)<span class='macro_popup'>g_signal_connect_data ((dialog), ("response"), (((GCallback) (<br>profile_list_delete_confirm_response_cb))), (((void*)0)), ((void<br>*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="710"><td class="num" id="LN710">710</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="711"><td class="num" id="LN711">711</td><td class="line"> gtk_window_present (<span class='macro'>GTK_WINDOW (dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((dialog)), ((gtk_window_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="712"><td class="num" id="LN712">712</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="713"><td class="num" id="LN713">713</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="714"><td class="num" id="LN714">714</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="715"><td class="num" id="LN715">715</td><td class="line">profile_list_new_button_clicked_cb (GtkWidget *button,</td></tr>
+<tr class="codeline" data-linenumber="716"><td class="num" id="LN716">716</td><td class="line"> gpointer data)</td></tr>
+<tr class="codeline" data-linenumber="717"><td class="num" id="LN717">717</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="718"><td class="num" id="LN718">718</td><td class="line"> TerminalApp *app;</td></tr>
+<tr class="codeline" data-linenumber="719"><td class="num" id="LN719">719</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="720"><td class="num" id="LN720">720</td><td class="line"> app = terminal_app_get ();</td></tr>
+<tr class="codeline" data-linenumber="721"><td class="num" id="LN721">721</td><td class="line"> terminal_app_new_profile (app, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>GTK_WINDOW (app-&gt;manage_profiles_dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;manage_profiles_dialog)), ((gtk_window_get_type (<br>)))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="722"><td class="num" id="LN722">722</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="723"><td class="num" id="LN723">723</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="724"><td class="num" id="LN724">724</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="725"><td class="num" id="LN725">725</td><td class="line">profile_list_edit_button_clicked_cb (GtkWidget *button,</td></tr>
+<tr class="codeline" data-linenumber="726"><td class="num" id="LN726">726</td><td class="line"> GtkWidget *widget)</td></tr>
+<tr class="codeline" data-linenumber="727"><td class="num" id="LN727">727</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="728"><td class="num" id="LN728">728</td><td class="line"> GtkTreeView *tree_view = <span class='macro'>GTK_TREE_VIEW (widget)<span class='macro_popup'>((((GtkTreeView*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((widget)), ((gtk_tree_view_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="729"><td class="num" id="LN729">729</td><td class="line"> GtkTreeSelection *selection;</td></tr>
+<tr class="codeline" data-linenumber="730"><td class="num" id="LN730">730</td><td class="line"> GtkTreeIter iter;</td></tr>
+<tr class="codeline" data-linenumber="731"><td class="num" id="LN731">731</td><td class="line"> GtkTreeModel *model;</td></tr>
+<tr class="codeline" data-linenumber="732"><td class="num" id="LN732">732</td><td class="line"> TerminalProfile *selected_profile;</td></tr>
+<tr class="codeline" data-linenumber="733"><td class="num" id="LN733">733</td><td class="line"> TerminalApp *app;</td></tr>
+<tr class="codeline" data-linenumber="734"><td class="num" id="LN734">734</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="735"><td class="num" id="LN735">735</td><td class="line"> app = terminal_app_get ();</td></tr>
+<tr class="codeline" data-linenumber="736"><td class="num" id="LN736">736</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="737"><td class="num" id="LN737">737</td><td class="line"> model = gtk_tree_view_get_model (tree_view);</td></tr>
+<tr class="codeline" data-linenumber="738"><td class="num" id="LN738">738</td><td class="line"> selection = gtk_tree_view_get_selection (tree_view);</td></tr>
+<tr class="codeline" data-linenumber="739"><td class="num" id="LN739">739</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="740"><td class="num" id="LN740">740</td><td class="line"> <span class='keyword'>if</span> (!gtk_tree_selection_get_selected (selection, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, &amp;iter))</td></tr>
+<tr class="codeline" data-linenumber="741"><td class="num" id="LN741">741</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="742"><td class="num" id="LN742">742</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="743"><td class="num" id="LN743">743</td><td class="line"> gtk_tree_model_get (model, &amp;iter, (<span class='keyword'>int</span>) COL_PROFILE, &amp;selected_profile, (<span class='keyword'>int</span>) -1);</td></tr>
+<tr class="codeline" data-linenumber="744"><td class="num" id="LN744">744</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="745"><td class="num" id="LN745">745</td><td class="line"> terminal_app_edit_profile (app, selected_profile,</td></tr>
+<tr class="codeline" data-linenumber="746"><td class="num" id="LN746">746</td><td class="line"> <span class='macro'>GTK_WINDOW (app-&gt;manage_profiles_dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;manage_profiles_dialog)), ((gtk_window_get_type (<br>)))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="747"><td class="num" id="LN747">747</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="748"><td class="num" id="LN748">748</td><td class="line"> g_object_unref (selected_profile);</td></tr>
+<tr class="codeline" data-linenumber="749"><td class="num" id="LN749">749</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="750"><td class="num" id="LN750">750</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="751"><td class="num" id="LN751">751</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="752"><td class="num" id="LN752">752</td><td class="line">profile_list_row_activated_cb (GtkTreeView *tree_view,</td></tr>
+<tr class="codeline" data-linenumber="753"><td class="num" id="LN753">753</td><td class="line"> GtkTreePath *path,</td></tr>
+<tr class="codeline" data-linenumber="754"><td class="num" id="LN754">754</td><td class="line"> GtkTreeViewColumn *column,</td></tr>
+<tr class="codeline" data-linenumber="755"><td class="num" id="LN755">755</td><td class="line"> gpointer data)</td></tr>
+<tr class="codeline" data-linenumber="756"><td class="num" id="LN756">756</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="757"><td class="num" id="LN757">757</td><td class="line"> GtkTreeIter iter;</td></tr>
+<tr class="codeline" data-linenumber="758"><td class="num" id="LN758">758</td><td class="line"> GtkTreeModel *model;</td></tr>
+<tr class="codeline" data-linenumber="759"><td class="num" id="LN759">759</td><td class="line"> TerminalProfile *selected_profile;</td></tr>
+<tr class="codeline" data-linenumber="760"><td class="num" id="LN760">760</td><td class="line"> TerminalApp *app;</td></tr>
+<tr class="codeline" data-linenumber="761"><td class="num" id="LN761">761</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="762"><td class="num" id="LN762">762</td><td class="line"> app = terminal_app_get ();</td></tr>
+<tr class="codeline" data-linenumber="763"><td class="num" id="LN763">763</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="764"><td class="num" id="LN764">764</td><td class="line"> model = gtk_tree_view_get_model (tree_view);</td></tr>
+<tr class="codeline" data-linenumber="765"><td class="num" id="LN765">765</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="766"><td class="num" id="LN766">766</td><td class="line"> <span class='keyword'>if</span> (!gtk_tree_model_get_iter (model, &amp;iter, path))</td></tr>
+<tr class="codeline" data-linenumber="767"><td class="num" id="LN767">767</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="768"><td class="num" id="LN768">768</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="769"><td class="num" id="LN769">769</td><td class="line"> gtk_tree_model_get (model, &amp;iter, (<span class='keyword'>int</span>) COL_PROFILE, &amp;selected_profile, (<span class='keyword'>int</span>) -1);</td></tr>
+<tr class="codeline" data-linenumber="770"><td class="num" id="LN770">770</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="771"><td class="num" id="LN771">771</td><td class="line"> terminal_app_edit_profile (app, selected_profile,</td></tr>
+<tr class="codeline" data-linenumber="772"><td class="num" id="LN772">772</td><td class="line"> <span class='macro'>GTK_WINDOW (app-&gt;manage_profiles_dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;manage_profiles_dialog)), ((gtk_window_get_type (<br>)))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="773"><td class="num" id="LN773">773</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="774"><td class="num" id="LN774">774</td><td class="line"> g_object_unref (selected_profile);</td></tr>
+<tr class="codeline" data-linenumber="775"><td class="num" id="LN775">775</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="776"><td class="num" id="LN776">776</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="777"><td class="num" id="LN777">777</td><td class="line"><span class='keyword'>static</span> GList*</td></tr>
+<tr class="codeline" data-linenumber="778"><td class="num" id="LN778">778</td><td class="line">find_profile_link (GList *profiles,</td></tr>
+<tr class="codeline" data-linenumber="779"><td class="num" id="LN779">779</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *name)</td></tr>
+<tr class="codeline" data-linenumber="780"><td class="num" id="LN780">780</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="781"><td class="num" id="LN781">781</td><td class="line"> GList *l;</td></tr>
+<tr class="codeline" data-linenumber="782"><td class="num" id="LN782">782</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="783"><td class="num" id="LN783">783</td><td class="line"> <span class='keyword'>for</span> (l = profiles; l != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; l = l-&gt;next)</td></tr>
+<tr class="codeline" data-linenumber="784"><td class="num" id="LN784">784</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="785"><td class="num" id="LN785">785</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *profile_name;</td></tr>
+<tr class="codeline" data-linenumber="786"><td class="num" id="LN786">786</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="787"><td class="num" id="LN787">787</td><td class="line"> profile_name = terminal_profile_get_property_string (<span class='macro'>TERMINAL_PROFILE (l-&gt;data)<span class='macro_popup'>((((TerminalProfile*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((l-&gt;data)), ((terminal_profile_get_type ()))))))</span></span>, <span class='macro'>TERMINAL_PROFILE_NAME<span class='macro_popup'>"name"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="788"><td class="num" id="LN788">788</td><td class="line"> <span class='keyword'>if</span> (profile_name &amp;&amp; strcmp (profile_name, name) == 0)</td></tr>
+<tr class="codeline" data-linenumber="789"><td class="num" id="LN789">789</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="790"><td class="num" id="LN790">790</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="791"><td class="num" id="LN791">791</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="792"><td class="num" id="LN792">792</td><td class="line"> <span class='keyword'>return</span> l;</td></tr>
+<tr class="codeline" data-linenumber="793"><td class="num" id="LN793">793</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="794"><td class="num" id="LN794">794</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="795"><td class="num" id="LN795">795</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="796"><td class="num" id="LN796">796</td><td class="line">terminal_app_profile_list_notify_cb (GSettings *settings,</td></tr>
+<tr class="codeline" data-linenumber="797"><td class="num" id="LN797">797</td><td class="line"> <span class='keyword'>const</span> gchar *key,</td></tr>
+<tr class="codeline" data-linenumber="798"><td class="num" id="LN798">798</td><td class="line"> gpointer user_data)</td></tr>
+<tr class="codeline" data-linenumber="799"><td class="num" id="LN799">799</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="800"><td class="num" id="LN800">800</td><td class="line"> TerminalApp *app = <span class='macro'>TERMINAL_APP (user_data)<span class='macro_popup'>((((TerminalApp*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((user_data)), ((terminal_app_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="801"><td class="num" id="LN801">801</td><td class="line"> GObject *object = <span class='macro'>G_OBJECT (app)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="802"><td class="num" id="LN802">802</td><td class="line"> GVariant *val;</td></tr>
+<tr class="codeline" data-linenumber="803"><td class="num" id="LN803">803</td><td class="line"> <span class='keyword'>const</span> gchar **value_list;</td></tr>
+<tr class="codeline" data-linenumber="804"><td class="num" id="LN804">804</td><td class="line"> <span class='keyword'>int</span> i;</td></tr>
+<tr class="codeline" data-linenumber="805"><td class="num" id="LN805">805</td><td class="line"> GList *profiles_to_delete, *l;</td></tr>
+<tr class="codeline" data-linenumber="806"><td class="num" id="LN806">806</td><td class="line"> gboolean need_new_default;</td></tr>
+<tr class="codeline" data-linenumber="807"><td class="num" id="LN807">807</td><td class="line"> TerminalProfile *fallback;</td></tr>
+<tr class="codeline" data-linenumber="808"><td class="num" id="LN808">808</td><td class="line"> guint count;</td></tr>
+<tr class="codeline" data-linenumber="809"><td class="num" id="LN809">809</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="810"><td class="num" id="LN810">810</td><td class="line"> g_object_freeze_notify (object);</td></tr>
+<tr class="codeline" data-linenumber="811"><td class="num" id="LN811">811</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="812"><td class="num" id="LN812">812</td><td class="line"> profiles_to_delete = terminal_app_get_profile_list (app);</td></tr>
+<tr class="codeline" data-linenumber="813"><td class="num" id="LN813">813</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="814"><td class="num" id="LN814">814</td><td class="line"> val = g_settings_get_value (settings, key);</td></tr>
+<tr class="codeline" data-linenumber="815"><td class="num" id="LN815">815</td><td class="line"> <span class='keyword'>if</span> (val == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span> ||</td></tr>
+<tr class="codeline" data-linenumber="816"><td class="num" id="LN816">816</td><td class="line"> (!g_variant_is_of_type (val, <span class='macro'>G_VARIANT_TYPE_STRING_ARRAY<span class='macro_popup'>((const GVariantType *) "as")</span></span>) &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="817"><td class="num" id="LN817">817</td><td class="line"> !g_variant_is_of_type (val, <span class='macro'>G_VARIANT_TYPE_STRING<span class='macro_popup'>((const GVariantType *) "s")</span></span>)))</td></tr>
+<tr class="codeline" data-linenumber="818"><td class="num" id="LN818">818</td><td class="line"> <span class='keyword'>goto</span> ensure_one_profile;</td></tr>
+<tr class="codeline" data-linenumber="819"><td class="num" id="LN819">819</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="820"><td class="num" id="LN820">820</td><td class="line"> value_list = g_variant_get_strv (val, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="821"><td class="num" id="LN821">821</td><td class="line"> <span class='keyword'>if</span> (value_list == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="822"><td class="num" id="LN822">822</td><td class="line"> <span class='keyword'>goto</span> ensure_one_profile;</td></tr>
+<tr class="codeline" data-linenumber="823"><td class="num" id="LN823">823</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="824"><td class="num" id="LN824">824</td><td class="line"> <span class='comment'>/* Add any new ones */</span></td></tr>
+<tr class="codeline" data-linenumber="825"><td class="num" id="LN825">825</td><td class="line"> <span class='keyword'>for</span> (i = 0; value_list[i] != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; ++i)</td></tr>
+<tr class="codeline" data-linenumber="826"><td class="num" id="LN826">826</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="827"><td class="num" id="LN827">827</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *profile_name = value_list[i];</td></tr>
+<tr class="codeline" data-linenumber="828"><td class="num" id="LN828">828</td><td class="line"> GList *link;</td></tr>
+<tr class="codeline" data-linenumber="829"><td class="num" id="LN829">829</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="830"><td class="num" id="LN830">830</td><td class="line"> <span class='keyword'>if</span> (!profile_name)</td></tr>
+<tr class="codeline" data-linenumber="831"><td class="num" id="LN831">831</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="832"><td class="num" id="LN832">832</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="833"><td class="num" id="LN833">833</td><td class="line"> link = find_profile_link (profiles_to_delete, profile_name);</td></tr>
+<tr class="codeline" data-linenumber="834"><td class="num" id="LN834">834</td><td class="line"> <span class='keyword'>if</span> (link)</td></tr>
+<tr class="codeline" data-linenumber="835"><td class="num" id="LN835">835</td><td class="line"> <span class='comment'>/* make profiles_to_delete point to profiles we didn't find in the list */</span></td></tr>
+<tr class="codeline" data-linenumber="836"><td class="num" id="LN836">836</td><td class="line"> profiles_to_delete = g_list_delete_link (profiles_to_delete, link);</td></tr>
+<tr class="codeline" data-linenumber="837"><td class="num" id="LN837">837</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="838"><td class="num" id="LN838">838</td><td class="line"> terminal_app_create_profile (app, profile_name);</td></tr>
+<tr class="codeline" data-linenumber="839"><td class="num" id="LN839">839</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="840"><td class="num" id="LN840">840</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="841"><td class="num" id="LN841">841</td><td class="line"> g_free (value_list);</td></tr>
+<tr class="codeline" data-linenumber="842"><td class="num" id="LN842">842</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="843"><td class="num" id="LN843">843</td><td class="line">ensure_one_profile:</td></tr>
+<tr class="codeline" data-linenumber="844"><td class="num" id="LN844">844</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="845"><td class="num" id="LN845">845</td><td class="line"> <span class='keyword'>if</span> (val != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="846"><td class="num" id="LN846">846</td><td class="line"> g_variant_unref (val);</td></tr>
+<tr class="codeline" data-linenumber="847"><td class="num" id="LN847">847</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="848"><td class="num" id="LN848">848</td><td class="line"> fallback = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="849"><td class="num" id="LN849">849</td><td class="line"> count = g_hash_table_size (app-&gt;profiles);</td></tr>
+<tr class="codeline" data-linenumber="850"><td class="num" id="LN850">850</td><td class="line"> <span class='keyword'>if</span> (count == 0 || count &lt;= g_list_length (profiles_to_delete))</td></tr>
+<tr class="codeline" data-linenumber="851"><td class="num" id="LN851">851</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="852"><td class="num" id="LN852">852</td><td class="line"> <span class='comment'>/* We are going to run out, so create the fallback</span></td></tr>
+<tr class="codeline" data-linenumber="853"><td class="num" id="LN853">853</td><td class="line"> <span class='comment'>* to be sure we always have one. Must be done</span></td></tr>
+<tr class="codeline" data-linenumber="854"><td class="num" id="LN854">854</td><td class="line"> <span class='comment'>* here before we emit "forgotten" signals so that</span></td></tr>
+<tr class="codeline" data-linenumber="855"><td class="num" id="LN855">855</td><td class="line"> <span class='comment'>* screens have a profile to fall back to.</span></td></tr>
+<tr class="codeline" data-linenumber="856"><td class="num" id="LN856">856</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="857"><td class="num" id="LN857">857</td><td class="line"> <span class='comment'>* If the profile with the FALLBACK_ID already exists,</span></td></tr>
+<tr class="codeline" data-linenumber="858"><td class="num" id="LN858">858</td><td class="line"> <span class='comment'>* we aren't allowed to delete it, unless at least one</span></td></tr>
+<tr class="codeline" data-linenumber="859"><td class="num" id="LN859">859</td><td class="line"> <span class='comment'>* other profile will still exist. And if you delete</span></td></tr>
+<tr class="codeline" data-linenumber="860"><td class="num" id="LN860">860</td><td class="line"> <span class='comment'>* all profiles, the FALLBACK_ID profile returns as</span></td></tr>
+<tr class="codeline" data-linenumber="861"><td class="num" id="LN861">861</td><td class="line"> <span class='comment'>* the living dead.</span></td></tr>
+<tr class="codeline" data-linenumber="862"><td class="num" id="LN862">862</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="863"><td class="num" id="LN863">863</td><td class="line"> fallback = terminal_app_get_profile_by_name (app, <span class='macro'>FALLBACK_PROFILE_ID<span class='macro_popup'>"default"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="864"><td class="num" id="LN864">864</td><td class="line"> <span class='keyword'>if</span> (fallback == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="865"><td class="num" id="LN865">865</td><td class="line"> fallback = terminal_app_create_profile (app, <span class='macro'>FALLBACK_PROFILE_ID<span class='macro_popup'>"default"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="866"><td class="num" id="LN866">866</td><td class="line"> <span class='macro'>g_assert (fallback != NULL)<span class='macro_popup'>do { if (fallback != ((void*)0)) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-app.c", 866, ((const char*) (__func__<br>)), "fallback != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="867"><td class="num" id="LN867">867</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="868"><td class="num" id="LN868">868</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="869"><td class="num" id="LN869">869</td><td class="line"> <span class='comment'>/* Forget no-longer-existing profiles */</span></td></tr>
+<tr class="codeline" data-linenumber="870"><td class="num" id="LN870">870</td><td class="line"> need_new_default = <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="871"><td class="num" id="LN871">871</td><td class="line"> <span class='keyword'>for</span> (l = profiles_to_delete; l != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; l = l-&gt;next)</td></tr>
+<tr class="codeline" data-linenumber="872"><td class="num" id="LN872">872</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="873"><td class="num" id="LN873">873</td><td class="line"> TerminalProfile *profile = <span class='macro'>TERMINAL_PROFILE (l-&gt;data)<span class='macro_popup'>((((TerminalProfile*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((l-&gt;data)), ((terminal_profile_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="874"><td class="num" id="LN874">874</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *name;</td></tr>
+<tr class="codeline" data-linenumber="875"><td class="num" id="LN875">875</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="876"><td class="num" id="LN876">876</td><td class="line"> name = terminal_profile_get_property_string (profile, <span class='macro'>TERMINAL_PROFILE_NAME<span class='macro_popup'>"name"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="877"><td class="num" id="LN877">877</td><td class="line"> <span class='keyword'>if</span> (strcmp (name, <span class='macro'>FALLBACK_PROFILE_ID<span class='macro_popup'>"default"</span></span>) == 0)</td></tr>
+<tr class="codeline" data-linenumber="878"><td class="num" id="LN878">878</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="879"><td class="num" id="LN879">879</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="880"><td class="num" id="LN880">880</td><td class="line"> <span class='keyword'>if</span> (profile == app-&gt;default_profile)</td></tr>
+<tr class="codeline" data-linenumber="881"><td class="num" id="LN881">881</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="882"><td class="num" id="LN882">882</td><td class="line"> app-&gt;default_profile = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="883"><td class="num" id="LN883">883</td><td class="line"> need_new_default = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="884"><td class="num" id="LN884">884</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="885"><td class="num" id="LN885">885</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="886"><td class="num" id="LN886">886</td><td class="line"> _terminal_profile_forget (profile);</td></tr>
+<tr class="codeline" data-linenumber="887"><td class="num" id="LN887">887</td><td class="line"> g_hash_table_remove (app-&gt;profiles, name);</td></tr>
+<tr class="codeline" data-linenumber="888"><td class="num" id="LN888">888</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="889"><td class="num" id="LN889">889</td><td class="line"> <span class='comment'>/* |profile| possibly isn't dead yet since the profiles dialogue's tree model holds a ref too... */</span></td></tr>
+<tr class="codeline" data-linenumber="890"><td class="num" id="LN890">890</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="891"><td class="num" id="LN891">891</td><td class="line"> g_list_free (profiles_to_delete);</td></tr>
+<tr class="codeline" data-linenumber="892"><td class="num" id="LN892">892</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="893"><td class="num" id="LN893">893</td><td class="line"> <span class='keyword'>if</span> (need_new_default)</td></tr>
+<tr class="codeline" data-linenumber="894"><td class="num" id="LN894">894</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="895"><td class="num" id="LN895">895</td><td class="line"> TerminalProfile *new_default;</td></tr>
+<tr class="codeline" data-linenumber="896"><td class="num" id="LN896">896</td><td class="line"> TerminalProfile **new_default_ptr = &amp;new_default;</td></tr>
+<tr class="codeline" data-linenumber="897"><td class="num" id="LN897">897</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="898"><td class="num" id="LN898">898</td><td class="line"> new_default = terminal_app_get_profile_by_name (app, <span class='macro'>FALLBACK_PROFILE_ID<span class='macro_popup'>"default"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="899"><td class="num" id="LN899">899</td><td class="line"> <span class='keyword'>if</span> (new_default == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="900"><td class="num" id="LN900">900</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="901"><td class="num" id="LN901">901</td><td class="line"> GHashTableIter iter;</td></tr>
+<tr class="codeline" data-linenumber="902"><td class="num" id="LN902">902</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="903"><td class="num" id="LN903">903</td><td class="line"> g_hash_table_iter_init (&amp;iter, app-&gt;profiles);</td></tr>
+<tr class="codeline" data-linenumber="904"><td class="num" id="LN904">904</td><td class="line"> <span class='keyword'>if</span> (!g_hash_table_iter_next (&amp;iter, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, (gpointer *) new_default_ptr))</td></tr>
+<tr class="codeline" data-linenumber="905"><td class="num" id="LN905">905</td><td class="line"> <span class='comment'>/* shouldn't really happen ever, but just to be safe */</span></td></tr>
+<tr class="codeline" data-linenumber="906"><td class="num" id="LN906">906</td><td class="line"> new_default = terminal_app_create_profile (app, <span class='macro'>FALLBACK_PROFILE_ID<span class='macro_popup'>"default"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="907"><td class="num" id="LN907">907</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="908"><td class="num" id="LN908">908</td><td class="line"> <span class='macro'>g_assert (new_default != NULL)<span class='macro_popup'>do { if (new_default != ((void*)0)) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-app.c", 908, ((const char*) (__func__<br>)), "new_default != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="909"><td class="num" id="LN909">909</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="910"><td class="num" id="LN910">910</td><td class="line"> app-&gt;default_profile = new_default;</td></tr>
+<tr class="codeline" data-linenumber="911"><td class="num" id="LN911">911</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="912"><td class="num" id="LN912">912</td><td class="line"> g_object_notify (object, <span class='macro'>TERMINAL_APP_DEFAULT_PROFILE<span class='macro_popup'>"default-profile"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="913"><td class="num" id="LN913">913</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="914"><td class="num" id="LN914">914</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="915"><td class="num" id="LN915">915</td><td class="line"> <span class='macro'>g_assert (g_hash_table_size (app-&gt;profiles) &gt; 0)<span class='macro_popup'>do { if (g_hash_table_size (app-&gt;profiles) &gt; 0) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-app.c", 915, ((const char*) (__func__<br>)), "g_hash_table_size (app-&gt;profiles) &gt; 0"); } while (<br>0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="916"><td class="num" id="LN916">916</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="917"><td class="num" id="LN917">917</td><td class="line"> g_signal_emit (app, signals[PROFILE_LIST_CHANGED], 0);</td></tr>
+<tr class="codeline" data-linenumber="918"><td class="num" id="LN918">918</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="919"><td class="num" id="LN919">919</td><td class="line"> g_object_thaw_notify (object);</td></tr>
+<tr class="codeline" data-linenumber="920"><td class="num" id="LN920">920</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="921"><td class="num" id="LN921">921</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="922"><td class="num" id="LN922">922</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="923"><td class="num" id="LN923">923</td><td class="line">terminal_app_default_profile_notify_cb (GSettings *settings,</td></tr>
+<tr class="codeline" data-linenumber="924"><td class="num" id="LN924">924</td><td class="line"> <span class='keyword'>const</span> gchar *key,</td></tr>
+<tr class="codeline" data-linenumber="925"><td class="num" id="LN925">925</td><td class="line"> gpointer user_data)</td></tr>
+<tr class="codeline" data-linenumber="926"><td class="num" id="LN926">926</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="927"><td class="num" id="LN927">927</td><td class="line"> TerminalApp *app = <span class='macro'>TERMINAL_APP (user_data)<span class='macro_popup'>((((TerminalApp*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((user_data)), ((terminal_app_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="928"><td class="num" id="LN928">928</td><td class="line"> GVariant *val;</td></tr>
+<tr class="codeline" data-linenumber="929"><td class="num" id="LN929">929</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *name = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="930"><td class="num" id="LN930">930</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="931"><td class="num" id="LN931">931</td><td class="line"> app-&gt;default_profile_locked = !g_settings_is_writable (settings, key);</td></tr>
+<tr class="codeline" data-linenumber="932"><td class="num" id="LN932">932</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="933"><td class="num" id="LN933">933</td><td class="line"> val = g_settings_get_value (settings, key);</td></tr>
+<tr class="codeline" data-linenumber="934"><td class="num" id="LN934">934</td><td class="line"> <span class='keyword'>if</span> (val != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span> &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="935"><td class="num" id="LN935">935</td><td class="line"> g_variant_is_of_type (val, <span class='macro'>G_VARIANT_TYPE_STRING<span class='macro_popup'>((const GVariantType *) "s")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="936"><td class="num" id="LN936">936</td><td class="line"> name = g_variant_get_string (val, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="937"><td class="num" id="LN937">937</td><td class="line"> <span class='keyword'>if</span> (!name || !name[0])</td></tr>
+<tr class="codeline" data-linenumber="938"><td class="num" id="LN938">938</td><td class="line"> name = <span class='macro'>FALLBACK_PROFILE_ID<span class='macro_popup'>"default"</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="939"><td class="num" id="LN939">939</td><td class="line"> <span class='macro'>g_assert (name != NULL)<span class='macro_popup'>do { if (name != ((void*)0)) ; else g_assertion_message_expr (<br>((gchar*) 0), "terminal-app.c", 939, ((const char*) (__func__<br>)), "name != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="940"><td class="num" id="LN940">940</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="941"><td class="num" id="LN941">941</td><td class="line"> g_free (app-&gt;default_profile_id);</td></tr>
+<tr class="codeline" data-linenumber="942"><td class="num" id="LN942">942</td><td class="line"> app-&gt;default_profile_id = <span class='macro'>g_strdup (name)<span class='macro_popup'>g_strdup_inline (name)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="943"><td class="num" id="LN943">943</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="944"><td class="num" id="LN944">944</td><td class="line"> app-&gt;default_profile = terminal_app_get_profile_by_name (app, name);</td></tr>
+<tr class="codeline" data-linenumber="945"><td class="num" id="LN945">945</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="946"><td class="num" id="LN946">946</td><td class="line"> g_object_notify (<span class='macro'>G_OBJECT (app)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, <span class='macro'>TERMINAL_APP_DEFAULT_PROFILE<span class='macro_popup'>"default-profile"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="947"><td class="num" id="LN947">947</td><td class="line"> g_variant_unref (val);</td></tr>
+<tr class="codeline" data-linenumber="948"><td class="num" id="LN948">948</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="949"><td class="num" id="LN949">949</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="950"><td class="num" id="LN950">950</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>int</span></td></tr>
+<tr class="codeline" data-linenumber="951"><td class="num" id="LN951">951</td><td class="line">compare_encodings (TerminalEncoding *a,</td></tr>
+<tr class="codeline" data-linenumber="952"><td class="num" id="LN952">952</td><td class="line"> TerminalEncoding *b)</td></tr>
+<tr class="codeline" data-linenumber="953"><td class="num" id="LN953">953</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="954"><td class="num" id="LN954">954</td><td class="line"> <span class='keyword'>return</span> g_utf8_collate (a-&gt;name, b-&gt;name);</td></tr>
+<tr class="codeline" data-linenumber="955"><td class="num" id="LN955">955</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="956"><td class="num" id="LN956">956</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="957"><td class="num" id="LN957">957</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="958"><td class="num" id="LN958">958</td><td class="line">encoding_mark_active (gpointer key,</td></tr>
+<tr class="codeline" data-linenumber="959"><td class="num" id="LN959">959</td><td class="line"> gpointer value,</td></tr>
+<tr class="codeline" data-linenumber="960"><td class="num" id="LN960">960</td><td class="line"> gpointer data)</td></tr>
+<tr class="codeline" data-linenumber="961"><td class="num" id="LN961">961</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="962"><td class="num" id="LN962">962</td><td class="line"> TerminalEncoding *encoding = (TerminalEncoding *) value;</td></tr>
+<tr class="codeline" data-linenumber="963"><td class="num" id="LN963">963</td><td class="line"> guint active = <span class='macro'>GPOINTER_TO_UINT (data)<span class='macro_popup'>((guint) (gulong) (data))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="964"><td class="num" id="LN964">964</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="965"><td class="num" id="LN965">965</td><td class="line"> encoding-&gt;is_active = active;</td></tr>
+<tr class="codeline" data-linenumber="966"><td class="num" id="LN966">966</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="967"><td class="num" id="LN967">967</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="968"><td class="num" id="LN968">968</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="969"><td class="num" id="LN969">969</td><td class="line">terminal_app_encoding_list_notify_cb (GSettings *settings,</td></tr>
+<tr class="codeline" data-linenumber="970"><td class="num" id="LN970">970</td><td class="line"> <span class='keyword'>const</span> gchar *key,</td></tr>
+<tr class="codeline" data-linenumber="971"><td class="num" id="LN971">971</td><td class="line"> gpointer user_data)</td></tr>
+<tr class="codeline" data-linenumber="972"><td class="num" id="LN972">972</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="973"><td class="num" id="LN973">973</td><td class="line"> TerminalApp *app = <span class='macro'>TERMINAL_APP (user_data)<span class='macro_popup'>((((TerminalApp*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((user_data)), ((terminal_app_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="974"><td class="num" id="LN974">974</td><td class="line"> GVariant *val;</td></tr>
+<tr class="codeline" data-linenumber="975"><td class="num" id="LN975">975</td><td class="line"> <span class='keyword'>const</span> gchar **strings;</td></tr>
+<tr class="codeline" data-linenumber="976"><td class="num" id="LN976">976</td><td class="line"> <span class='keyword'>int</span> i;</td></tr>
+<tr class="codeline" data-linenumber="977"><td class="num" id="LN977">977</td><td class="line"> TerminalEncoding *encoding;</td></tr>
+<tr class="codeline" data-linenumber="978"><td class="num" id="LN978">978</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *charset;</td></tr>
+<tr class="codeline" data-linenumber="979"><td class="num" id="LN979">979</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="980"><td class="num" id="LN980">980</td><td class="line"> app-&gt;encodings_locked = !g_settings_is_writable (settings, key);</td></tr>
+<tr class="codeline" data-linenumber="981"><td class="num" id="LN981">981</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="982"><td class="num" id="LN982">982</td><td class="line"> <span class='comment'>/* Mark all as non-active, then re-enable the active ones */</span></td></tr>
+<tr class="codeline" data-linenumber="983"><td class="num" id="LN983">983</td><td class="line"> g_hash_table_foreach (app-&gt;encodings, (GHFunc) encoding_mark_active, <span class='macro'>GUINT_TO_POINTER (FALSE)<span class='macro_popup'>((gpointer) (gulong) ((0)))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="984"><td class="num" id="LN984">984</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="985"><td class="num" id="LN985">985</td><td class="line"> <span class='comment'>/* First add the locale's charset */</span></td></tr>
+<tr class="codeline" data-linenumber="986"><td class="num" id="LN986">986</td><td class="line"> encoding = g_hash_table_lookup (app-&gt;encodings, <span class='string_literal'>"current"</span>);</td></tr>
+<tr class="codeline" data-linenumber="987"><td class="num" id="LN987">987</td><td class="line"> <span class='macro'>g_assert (encoding)<span class='macro_popup'>do { if (encoding) ; else g_assertion_message_expr (((gchar*)<br> 0), "terminal-app.c", 987, ((const char*) (__func__)), "encoding"<br>); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="988"><td class="num" id="LN988">988</td><td class="line"> <span class='keyword'>if</span> (terminal_encoding_is_valid (encoding))</td></tr>
+<tr class="codeline" data-linenumber="989"><td class="num" id="LN989">989</td><td class="line"> encoding-&gt;is_active = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="990"><td class="num" id="LN990">990</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="991"><td class="num" id="LN991">991</td><td class="line"> <span class='comment'>/* Also always make UTF-8 available */</span></td></tr>
+<tr class="codeline" data-linenumber="992"><td class="num" id="LN992">992</td><td class="line"> encoding = g_hash_table_lookup (app-&gt;encodings, <span class='string_literal'>"UTF-8"</span>);</td></tr>
+<tr class="codeline" data-linenumber="993"><td class="num" id="LN993">993</td><td class="line"> <span class='macro'>g_assert (encoding)<span class='macro_popup'>do { if (encoding) ; else g_assertion_message_expr (((gchar*)<br> 0), "terminal-app.c", 993, ((const char*) (__func__)), "encoding"<br>); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="994"><td class="num" id="LN994">994</td><td class="line"> <span class='keyword'>if</span> (terminal_encoding_is_valid (encoding))</td></tr>
+<tr class="codeline" data-linenumber="995"><td class="num" id="LN995">995</td><td class="line"> encoding-&gt;is_active = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="996"><td class="num" id="LN996">996</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="997"><td class="num" id="LN997">997</td><td class="line"> val = g_settings_get_value (settings, key);</td></tr>
+<tr class="codeline" data-linenumber="998"><td class="num" id="LN998">998</td><td class="line"> <span class='keyword'>if</span> (val != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span> &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="999"><td class="num" id="LN999">999</td><td class="line"> g_variant_is_of_type (val, <span class='macro'>G_VARIANT_TYPE_STRING_ARRAY<span class='macro_popup'>((const GVariantType *) "as")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="1000"><td class="num" id="LN1000">1000</td><td class="line"> strings = g_variant_get_strv (val, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1001"><td class="num" id="LN1001">1001</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="1002"><td class="num" id="LN1002">1002</td><td class="line"> strings = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1003"><td class="num" id="LN1003">1003</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1004"><td class="num" id="LN1004">1004</td><td class="line"> <span class='keyword'>if</span> (strings != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1005"><td class="num" id="LN1005">1005</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1006"><td class="num" id="LN1006">1006</td><td class="line"> <span class='keyword'>for</span> (i = 0; strings[i] != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; ++i)</td></tr>
+<tr class="codeline" data-linenumber="1007"><td class="num" id="LN1007">1007</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1008"><td class="num" id="LN1008">1008</td><td class="line"> charset = strings[i];</td></tr>
+<tr class="codeline" data-linenumber="1009"><td class="num" id="LN1009">1009</td><td class="line"> <span class='keyword'>if</span> (!charset)</td></tr>
+<tr class="codeline" data-linenumber="1010"><td class="num" id="LN1010">1010</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="1011"><td class="num" id="LN1011">1011</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1012"><td class="num" id="LN1012">1012</td><td class="line"> encoding = terminal_app_ensure_encoding (app, charset);</td></tr>
+<tr class="codeline" data-linenumber="1013"><td class="num" id="LN1013">1013</td><td class="line"> <span class='keyword'>if</span> (!terminal_encoding_is_valid (encoding))</td></tr>
+<tr class="codeline" data-linenumber="1014"><td class="num" id="LN1014">1014</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="1015"><td class="num" id="LN1015">1015</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1016"><td class="num" id="LN1016">1016</td><td class="line"> encoding-&gt;is_active = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1017"><td class="num" id="LN1017">1017</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1018"><td class="num" id="LN1018">1018</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1019"><td class="num" id="LN1019">1019</td><td class="line"> g_free (strings);</td></tr>
+<tr class="codeline" data-linenumber="1020"><td class="num" id="LN1020">1020</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1021"><td class="num" id="LN1021">1021</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1022"><td class="num" id="LN1022">1022</td><td class="line"> g_signal_emit (app, signals[ENCODING_LIST_CHANGED], 0);</td></tr>
+<tr class="codeline" data-linenumber="1023"><td class="num" id="LN1023">1023</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1024"><td class="num" id="LN1024">1024</td><td class="line"> <span class='keyword'>if</span> (val != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1025"><td class="num" id="LN1025">1025</td><td class="line"> g_variant_unref (val);</td></tr>
+<tr class="codeline" data-linenumber="1026"><td class="num" id="LN1026">1026</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1027"><td class="num" id="LN1027">1027</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1028"><td class="num" id="LN1028">1028</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1029"><td class="num" id="LN1029">1029</td><td class="line">terminal_app_system_font_notify_cb (GSettings *settings,</td></tr>
+<tr class="codeline" data-linenumber="1030"><td class="num" id="LN1030">1030</td><td class="line"> <span class='keyword'>const</span> gchar *key,</td></tr>
+<tr class="codeline" data-linenumber="1031"><td class="num" id="LN1031">1031</td><td class="line"> gpointer user_data)</td></tr>
+<tr class="codeline" data-linenumber="1032"><td class="num" id="LN1032">1032</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1033"><td class="num" id="LN1033">1033</td><td class="line"> TerminalApp *app = <span class='macro'>TERMINAL_APP (user_data)<span class='macro_popup'>((((TerminalApp*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((user_data)), ((terminal_app_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1034"><td class="num" id="LN1034">1034</td><td class="line"> GVariant *val;</td></tr>
+<tr class="codeline" data-linenumber="1035"><td class="num" id="LN1035">1035</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *font = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1036"><td class="num" id="LN1036">1036</td><td class="line"> PangoFontDescription *font_desc;</td></tr>
+<tr class="codeline" data-linenumber="1037"><td class="num" id="LN1037">1037</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1038"><td class="num" id="LN1038">1038</td><td class="line"> <span class='keyword'>if</span> (strcmp (key, <span class='macro'>MONOSPACE_FONT_KEY<span class='macro_popup'>"monospace-font-name"</span></span>) != 0)</td></tr>
+<tr class="codeline" data-linenumber="1039"><td class="num" id="LN1039">1039</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1040"><td class="num" id="LN1040">1040</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1041"><td class="num" id="LN1041">1041</td><td class="line"> val = g_settings_get_value (settings, key);</td></tr>
+<tr class="codeline" data-linenumber="1042"><td class="num" id="LN1042">1042</td><td class="line"> <span class='keyword'>if</span> (val &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="1043"><td class="num" id="LN1043">1043</td><td class="line"> g_variant_is_of_type (val, <span class="mrange"><span class="mrange"><span class='macro'>G_VARIANT_TYPE_STRING<span class='macro_popup'>((const GVariantType *) "s")</span></span></span></span>))</td></tr>
+<tr><td class="num"></td><td class="line"><div id="EndPath" class="msg msgEvent" style="margin-left:44ex; max-width:31em">Casting a non-structure type to a structure type and accessing a field can lead to memory access errors or data corruption</div></td></tr>
+<tr class="codeline" data-linenumber="1044"><td class="num" id="LN1044">1044</td><td class="line"> font = g_variant_get_string (val, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1045"><td class="num" id="LN1045">1045</td><td class="line"> <span class='keyword'>if</span> (!font)</td></tr>
+<tr class="codeline" data-linenumber="1046"><td class="num" id="LN1046">1046</td><td class="line"> font = <span class='macro'>DEFAULT_MONOSPACE_FONT<span class='macro_popup'>("Monospace 10")</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1047"><td class="num" id="LN1047">1047</td><td class="line"> <span class='macro'>g_assert (font != NULL)<span class='macro_popup'>do { if (font != ((void*)0)) ; else g_assertion_message_expr (<br>((gchar*) 0), "terminal-app.c", 1047, ((const char*) (__func__<br>)), "font != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1048"><td class="num" id="LN1048">1048</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1049"><td class="num" id="LN1049">1049</td><td class="line"> <span class='keyword'>if</span> (font &amp;&amp; (strlen (font) == 0)) <span class='comment'>/* empty string */</span></td></tr>
+<tr class="codeline" data-linenumber="1050"><td class="num" id="LN1050">1050</td><td class="line"> font = <span class='macro'>DEFAULT_MONOSPACE_FONT<span class='macro_popup'>("Monospace 10")</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1051"><td class="num" id="LN1051">1051</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1052"><td class="num" id="LN1052">1052</td><td class="line"> font_desc = pango_font_description_from_string (font);</td></tr>
+<tr class="codeline" data-linenumber="1053"><td class="num" id="LN1053">1053</td><td class="line"> <span class='keyword'>if</span> (app-&gt;system_font_desc &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="1054"><td class="num" id="LN1054">1054</td><td class="line"> pango_font_description_equal (app-&gt;system_font_desc, font_desc))</td></tr>
+<tr class="codeline" data-linenumber="1055"><td class="num" id="LN1055">1055</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1056"><td class="num" id="LN1056">1056</td><td class="line"> pango_font_description_free (font_desc);</td></tr>
+<tr class="codeline" data-linenumber="1057"><td class="num" id="LN1057">1057</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1058"><td class="num" id="LN1058">1058</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1059"><td class="num" id="LN1059">1059</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1060"><td class="num" id="LN1060">1060</td><td class="line"> <span class='keyword'>if</span> (app-&gt;system_font_desc)</td></tr>
+<tr class="codeline" data-linenumber="1061"><td class="num" id="LN1061">1061</td><td class="line"> pango_font_description_free (app-&gt;system_font_desc);</td></tr>
+<tr class="codeline" data-linenumber="1062"><td class="num" id="LN1062">1062</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1063"><td class="num" id="LN1063">1063</td><td class="line"> app-&gt;system_font_desc = font_desc;</td></tr>
+<tr class="codeline" data-linenumber="1064"><td class="num" id="LN1064">1064</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1065"><td class="num" id="LN1065">1065</td><td class="line"> g_object_notify (<span class='macro'>G_OBJECT (app)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, <span class='macro'>TERMINAL_APP_SYSTEM_FONT<span class='macro_popup'>"system-font"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1066"><td class="num" id="LN1066">1066</td><td class="line"> g_variant_unref (val);</td></tr>
+<tr class="codeline" data-linenumber="1067"><td class="num" id="LN1067">1067</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1068"><td class="num" id="LN1068">1068</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1069"><td class="num" id="LN1069">1069</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1070"><td class="num" id="LN1070">1070</td><td class="line">terminal_app_enable_mnemonics_notify_cb (GSettings *settings,</td></tr>
+<tr class="codeline" data-linenumber="1071"><td class="num" id="LN1071">1071</td><td class="line"> <span class='keyword'>const</span> gchar *key,</td></tr>
+<tr class="codeline" data-linenumber="1072"><td class="num" id="LN1072">1072</td><td class="line"> gpointer user_data)</td></tr>
+<tr class="codeline" data-linenumber="1073"><td class="num" id="LN1073">1073</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1074"><td class="num" id="LN1074">1074</td><td class="line"> TerminalApp *app = <span class='macro'>TERMINAL_APP (user_data)<span class='macro_popup'>((((TerminalApp*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((user_data)), ((terminal_app_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1075"><td class="num" id="LN1075">1075</td><td class="line"> gboolean enable;</td></tr>
+<tr class="codeline" data-linenumber="1076"><td class="num" id="LN1076">1076</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1077"><td class="num" id="LN1077">1077</td><td class="line"> enable = g_settings_get_boolean (settings, key);</td></tr>
+<tr class="codeline" data-linenumber="1078"><td class="num" id="LN1078">1078</td><td class="line"> <span class='keyword'>if</span> (enable == app-&gt;enable_mnemonics)</td></tr>
+<tr class="codeline" data-linenumber="1079"><td class="num" id="LN1079">1079</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1080"><td class="num" id="LN1080">1080</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1081"><td class="num" id="LN1081">1081</td><td class="line"> app-&gt;enable_mnemonics = enable;</td></tr>
+<tr class="codeline" data-linenumber="1082"><td class="num" id="LN1082">1082</td><td class="line"> g_object_notify (<span class='macro'>G_OBJECT (app)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, <span class='macro'>TERMINAL_APP_ENABLE_MNEMONICS<span class='macro_popup'>"enable-mnemonics"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1083"><td class="num" id="LN1083">1083</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1084"><td class="num" id="LN1084">1084</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1085"><td class="num" id="LN1085">1085</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1086"><td class="num" id="LN1086">1086</td><td class="line">terminal_app_enable_menu_accels_notify_cb (GSettings *settings,</td></tr>
+<tr class="codeline" data-linenumber="1087"><td class="num" id="LN1087">1087</td><td class="line"> <span class='keyword'>const</span> gchar *key,</td></tr>
+<tr class="codeline" data-linenumber="1088"><td class="num" id="LN1088">1088</td><td class="line"> gpointer user_data)</td></tr>
+<tr class="codeline" data-linenumber="1089"><td class="num" id="LN1089">1089</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1090"><td class="num" id="LN1090">1090</td><td class="line"> TerminalApp *app = <span class='macro'>TERMINAL_APP (user_data)<span class='macro_popup'>((((TerminalApp*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((user_data)), ((terminal_app_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1091"><td class="num" id="LN1091">1091</td><td class="line"> gboolean enable;</td></tr>
+<tr class="codeline" data-linenumber="1092"><td class="num" id="LN1092">1092</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1093"><td class="num" id="LN1093">1093</td><td class="line"> enable = g_settings_get_boolean (settings, key);</td></tr>
+<tr class="codeline" data-linenumber="1094"><td class="num" id="LN1094">1094</td><td class="line"> <span class='keyword'>if</span> (enable == app-&gt;enable_menu_accels)</td></tr>
+<tr class="codeline" data-linenumber="1095"><td class="num" id="LN1095">1095</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1096"><td class="num" id="LN1096">1096</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1097"><td class="num" id="LN1097">1097</td><td class="line"> app-&gt;enable_menu_accels = enable;</td></tr>
+<tr class="codeline" data-linenumber="1098"><td class="num" id="LN1098">1098</td><td class="line"> g_object_notify (<span class='macro'>G_OBJECT (app)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, <span class='macro'>TERMINAL_APP_ENABLE_MENU_BAR_ACCEL<span class='macro_popup'>"enable-menu-accels"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1099"><td class="num" id="LN1099">1099</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1100"><td class="num" id="LN1100">1100</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1101"><td class="num" id="LN1101">1101</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1102"><td class="num" id="LN1102">1102</td><td class="line">new_profile_response_cb (GtkWidget *new_profile_dialog,</td></tr>
+<tr class="codeline" data-linenumber="1103"><td class="num" id="LN1103">1103</td><td class="line"> <span class='keyword'>int</span> response_id,</td></tr>
+<tr class="codeline" data-linenumber="1104"><td class="num" id="LN1104">1104</td><td class="line"> TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="1105"><td class="num" id="LN1105">1105</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1106"><td class="num" id="LN1106">1106</td><td class="line"> <span class='keyword'>if</span> (response_id == GTK_RESPONSE_ACCEPT)</td></tr>
+<tr class="codeline" data-linenumber="1107"><td class="num" id="LN1107">1107</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1108"><td class="num" id="LN1108">1108</td><td class="line"> GtkWidget *name_entry;</td></tr>
+<tr class="codeline" data-linenumber="1109"><td class="num" id="LN1109">1109</td><td class="line"> <span class='keyword'>char</span> *name;</td></tr>
+<tr class="codeline" data-linenumber="1110"><td class="num" id="LN1110">1110</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *new_profile_name;</td></tr>
+<tr class="codeline" data-linenumber="1111"><td class="num" id="LN1111">1111</td><td class="line"> GtkWidget *base_option_menu;</td></tr>
+<tr class="codeline" data-linenumber="1112"><td class="num" id="LN1112">1112</td><td class="line"> TerminalProfile *base_profile = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1113"><td class="num" id="LN1113">1113</td><td class="line"> TerminalProfile *new_profile;</td></tr>
+<tr class="codeline" data-linenumber="1114"><td class="num" id="LN1114">1114</td><td class="line"> GList *profiles;</td></tr>
+<tr class="codeline" data-linenumber="1115"><td class="num" id="LN1115">1115</td><td class="line"> GList *tmp;</td></tr>
+<tr class="codeline" data-linenumber="1116"><td class="num" id="LN1116">1116</td><td class="line"> GtkWindow *transient_parent;</td></tr>
+<tr class="codeline" data-linenumber="1117"><td class="num" id="LN1117">1117</td><td class="line"> GtkWidget *confirm_dialog;</td></tr>
+<tr class="codeline" data-linenumber="1118"><td class="num" id="LN1118">1118</td><td class="line"> gint retval;</td></tr>
+<tr class="codeline" data-linenumber="1119"><td class="num" id="LN1119">1119</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1120"><td class="num" id="LN1120">1120</td><td class="line"> base_option_menu = g_object_get_data (<span class='macro'>G_OBJECT (new_profile_dialog)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((new_profile_dialog)), (((GType) ((20) &lt;&lt; (2)))))))<br>)</span></span>, <span class='string_literal'>"base_option_menu"</span>);</td></tr>
+<tr class="codeline" data-linenumber="1121"><td class="num" id="LN1121">1121</td><td class="line"> base_profile = profile_combo_box_get_selected (base_option_menu);</td></tr>
+<tr class="codeline" data-linenumber="1122"><td class="num" id="LN1122">1122</td><td class="line"> <span class='keyword'>if</span> (!base_profile)</td></tr>
+<tr class="codeline" data-linenumber="1123"><td class="num" id="LN1123">1123</td><td class="line"> base_profile = terminal_app_get_default_profile (app);</td></tr>
+<tr class="codeline" data-linenumber="1124"><td class="num" id="LN1124">1124</td><td class="line"> <span class='keyword'>if</span> (!base_profile)</td></tr>
+<tr class="codeline" data-linenumber="1125"><td class="num" id="LN1125">1125</td><td class="line"> <span class='keyword'>return</span>; <span class='comment'>/* shouldn't happen ever though */</span></td></tr>
+<tr class="codeline" data-linenumber="1126"><td class="num" id="LN1126">1126</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1127"><td class="num" id="LN1127">1127</td><td class="line"> name_entry = g_object_get_data (<span class='macro'>G_OBJECT (new_profile_dialog)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((new_profile_dialog)), (((GType) ((20) &lt;&lt; (2)))))))<br>)</span></span>, <span class='string_literal'>"name_entry"</span>);</td></tr>
+<tr class="codeline" data-linenumber="1128"><td class="num" id="LN1128">1128</td><td class="line"> name = gtk_editable_get_chars (<span class='macro'>GTK_EDITABLE (name_entry)<span class='macro_popup'>((((GtkEditable*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((name_entry)), ((gtk_editable_get_type ()))))))</span></span>, 0, -1);</td></tr>
+<tr class="codeline" data-linenumber="1129"><td class="num" id="LN1129">1129</td><td class="line"> <span class='macro'>g_strstrip (name)<span class='macro_popup'>g_strchomp (g_strchug (name))</span></span>; <span class='comment'>/* name will be non empty after stripping */</span></td></tr>
+<tr class="codeline" data-linenumber="1130"><td class="num" id="LN1130">1130</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1131"><td class="num" id="LN1131">1131</td><td class="line"> profiles = terminal_app_get_profile_list (app);</td></tr>
+<tr class="codeline" data-linenumber="1132"><td class="num" id="LN1132">1132</td><td class="line"> <span class='keyword'>for</span> (tmp = profiles; tmp != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; tmp = tmp-&gt;next)</td></tr>
+<tr class="codeline" data-linenumber="1133"><td class="num" id="LN1133">1133</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1134"><td class="num" id="LN1134">1134</td><td class="line"> TerminalProfile *profile = tmp-&gt;data;</td></tr>
+<tr class="codeline" data-linenumber="1135"><td class="num" id="LN1135">1135</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *visible_name;</td></tr>
+<tr class="codeline" data-linenumber="1136"><td class="num" id="LN1136">1136</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1137"><td class="num" id="LN1137">1137</td><td class="line"> visible_name = terminal_profile_get_property_string (profile, <span class='macro'>TERMINAL_PROFILE_VISIBLE_NAME<span class='macro_popup'>"visible-name"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1138"><td class="num" id="LN1138">1138</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1139"><td class="num" id="LN1139">1139</td><td class="line"> <span class='keyword'>if</span> (visible_name &amp;&amp; strcmp (name, visible_name) == 0)</td></tr>
+<tr class="codeline" data-linenumber="1140"><td class="num" id="LN1140">1140</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1141"><td class="num" id="LN1141">1141</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1142"><td class="num" id="LN1142">1142</td><td class="line"> <span class='keyword'>if</span> (tmp)</td></tr>
+<tr class="codeline" data-linenumber="1143"><td class="num" id="LN1143">1143</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1144"><td class="num" id="LN1144">1144</td><td class="line"> confirm_dialog = gtk_message_dialog_new (<span class='macro'>GTK_WINDOW (new_profile_dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((new_profile_dialog)), ((gtk_window_get_type ()))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1145"><td class="num" id="LN1145">1145</td><td class="line"> GTK_DIALOG_DESTROY_WITH_PARENT,</td></tr>
+<tr class="codeline" data-linenumber="1146"><td class="num" id="LN1146">1146</td><td class="line"> GTK_MESSAGE_QUESTION,</td></tr>
+<tr class="codeline" data-linenumber="1147"><td class="num" id="LN1147">1147</td><td class="line"> GTK_BUTTONS_YES_NO,</td></tr>
+<tr class="codeline" data-linenumber="1148"><td class="num" id="LN1148">1148</td><td class="line"> <span class='macro'>_(<span class='string_literal'>"You already have a profile called “%s”. Do you want to create another profile with the same name?"</span>)<span class='macro_popup'>gettext ("You already have a profile called “%s”. Do you want to create another profile with the same name?"<br>)</span></span>, name);</td></tr>
+<tr class="codeline" data-linenumber="1149"><td class="num" id="LN1149">1149</td><td class="line"> <span class='comment'>/* Alternative button order was set automatically by GtkMessageDialog */</span></td></tr>
+<tr class="codeline" data-linenumber="1150"><td class="num" id="LN1150">1150</td><td class="line"> retval = gtk_dialog_run (<span class='macro'>GTK_DIALOG (confirm_dialog)<span class='macro_popup'>((((GtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((confirm_dialog)), ((gtk_dialog_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1151"><td class="num" id="LN1151">1151</td><td class="line"> gtk_widget_destroy (confirm_dialog);</td></tr>
+<tr class="codeline" data-linenumber="1152"><td class="num" id="LN1152">1152</td><td class="line"> <span class='keyword'>if</span> (retval == GTK_RESPONSE_NO)</td></tr>
+<tr class="codeline" data-linenumber="1153"><td class="num" id="LN1153">1153</td><td class="line"> <span class='keyword'>goto</span> cleanup;</td></tr>
+<tr class="codeline" data-linenumber="1154"><td class="num" id="LN1154">1154</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1155"><td class="num" id="LN1155">1155</td><td class="line"> g_list_free (profiles);</td></tr>
+<tr class="codeline" data-linenumber="1156"><td class="num" id="LN1156">1156</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1157"><td class="num" id="LN1157">1157</td><td class="line"> transient_parent = gtk_window_get_transient_for (<span class='macro'>GTK_WINDOW (new_profile_dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((new_profile_dialog)), ((gtk_window_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1158"><td class="num" id="LN1158">1158</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1159"><td class="num" id="LN1159">1159</td><td class="line"> new_profile = _terminal_profile_clone (base_profile, name);</td></tr>
+<tr class="codeline" data-linenumber="1160"><td class="num" id="LN1160">1160</td><td class="line"> new_profile_name = terminal_profile_get_property_string (new_profile, <span class='macro'>TERMINAL_PROFILE_NAME<span class='macro_popup'>"name"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1161"><td class="num" id="LN1161">1161</td><td class="line"> g_hash_table_insert (app-&gt;profiles,</td></tr>
+<tr class="codeline" data-linenumber="1162"><td class="num" id="LN1162">1162</td><td class="line"> <span class='macro'>g_strdup (new_profile_name)<span class='macro_popup'>g_strdup_inline (new_profile_name)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1163"><td class="num" id="LN1163">1163</td><td class="line"> new_profile <span class='comment'>/* adopts the refcount */</span>);</td></tr>
+<tr class="codeline" data-linenumber="1164"><td class="num" id="LN1164">1164</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1165"><td class="num" id="LN1165">1165</td><td class="line"> <span class='comment'>/* And now save the new profile name to GSettings */</span></td></tr>
+<tr class="codeline" data-linenumber="1166"><td class="num" id="LN1166">1166</td><td class="line"> gsettings_append_strv (settings_global,</td></tr>
+<tr class="codeline" data-linenumber="1167"><td class="num" id="LN1167">1167</td><td class="line"> <span class='macro'>PROFILE_LIST_KEY<span class='macro_popup'>"profile-list"</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1168"><td class="num" id="LN1168">1168</td><td class="line"> new_profile_name);</td></tr>
+<tr class="codeline" data-linenumber="1169"><td class="num" id="LN1169">1169</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1170"><td class="num" id="LN1170">1170</td><td class="line"> terminal_profile_edit (new_profile, transient_parent, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1171"><td class="num" id="LN1171">1171</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1172"><td class="num" id="LN1172">1172</td><td class="line">cleanup:</td></tr>
+<tr class="codeline" data-linenumber="1173"><td class="num" id="LN1173">1173</td><td class="line"> g_free (name);</td></tr>
+<tr class="codeline" data-linenumber="1174"><td class="num" id="LN1174">1174</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1175"><td class="num" id="LN1175">1175</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1176"><td class="num" id="LN1176">1176</td><td class="line"> gtk_widget_destroy (new_profile_dialog);</td></tr>
+<tr class="codeline" data-linenumber="1177"><td class="num" id="LN1177">1177</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1178"><td class="num" id="LN1178">1178</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1179"><td class="num" id="LN1179">1179</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1180"><td class="num" id="LN1180">1180</td><td class="line">new_profile_dialog_destroy_cb (GtkWidget *new_profile_dialog,</td></tr>
+<tr class="codeline" data-linenumber="1181"><td class="num" id="LN1181">1181</td><td class="line"> TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="1182"><td class="num" id="LN1182">1182</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1183"><td class="num" id="LN1183">1183</td><td class="line"> GtkWidget *combo;</td></tr>
+<tr class="codeline" data-linenumber="1184"><td class="num" id="LN1184">1184</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1185"><td class="num" id="LN1185">1185</td><td class="line"> combo = g_object_get_data (<span class='macro'>G_OBJECT (new_profile_dialog)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((new_profile_dialog)), (((GType) ((20) &lt;&lt; (2)))))))<br>)</span></span>, <span class='string_literal'>"base_option_menu"</span>);</td></tr>
+<tr class="codeline" data-linenumber="1186"><td class="num" id="LN1186">1186</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (app, G_CALLBACK (profile_combo_box_refill), combo)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((app), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (profile_combo_box_refill))), (combo))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1187"><td class="num" id="LN1187">1187</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1188"><td class="num" id="LN1188">1188</td><td class="line"> app-&gt;new_profile_dialog = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1189"><td class="num" id="LN1189">1189</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1190"><td class="num" id="LN1190">1190</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1191"><td class="num" id="LN1191">1191</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1192"><td class="num" id="LN1192">1192</td><td class="line">new_profile_name_entry_changed_cb (GtkEntry *entry,</td></tr>
+<tr class="codeline" data-linenumber="1193"><td class="num" id="LN1193">1193</td><td class="line"> GtkDialog *dialog)</td></tr>
+<tr class="codeline" data-linenumber="1194"><td class="num" id="LN1194">1194</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1195"><td class="num" id="LN1195">1195</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *name;</td></tr>
+<tr class="codeline" data-linenumber="1196"><td class="num" id="LN1196">1196</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1197"><td class="num" id="LN1197">1197</td><td class="line"> name = gtk_entry_get_text (entry);</td></tr>
+<tr class="codeline" data-linenumber="1198"><td class="num" id="LN1198">1198</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1199"><td class="num" id="LN1199">1199</td><td class="line"> <span class='comment'>/* make the create button sensitive only if something other than space has been set */</span></td></tr>
+<tr class="codeline" data-linenumber="1200"><td class="num" id="LN1200">1200</td><td class="line"> <span class='keyword'>while</span> (*name != '\0' &amp;&amp; <span class='macro'>g_ascii_isspace (*name)<span class='macro_popup'>((g_ascii_table[(guchar) (*name)] &amp; G_ASCII_SPACE) != 0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1201"><td class="num" id="LN1201">1201</td><td class="line"> ++name;</td></tr>
+<tr class="codeline" data-linenumber="1202"><td class="num" id="LN1202">1202</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1203"><td class="num" id="LN1203">1203</td><td class="line"> gtk_dialog_set_response_sensitive (dialog, GTK_RESPONSE_ACCEPT, name[0] != '\0');</td></tr>
+<tr class="codeline" data-linenumber="1204"><td class="num" id="LN1204">1204</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1205"><td class="num" id="LN1205">1205</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1206"><td class="num" id="LN1206">1206</td><td class="line"><span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1207"><td class="num" id="LN1207">1207</td><td class="line">terminal_app_new_profile (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="1208"><td class="num" id="LN1208">1208</td><td class="line"> TerminalProfile *default_base_profile,</td></tr>
+<tr class="codeline" data-linenumber="1209"><td class="num" id="LN1209">1209</td><td class="line"> GtkWindow *transient_parent)</td></tr>
+<tr class="codeline" data-linenumber="1210"><td class="num" id="LN1210">1210</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1211"><td class="num" id="LN1211">1211</td><td class="line"> <span class='keyword'>if</span> (app-&gt;new_profile_dialog == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1212"><td class="num" id="LN1212">1212</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1213"><td class="num" id="LN1213">1213</td><td class="line"> GtkWidget *create_button, *grid, *name_label, *name_entry, *base_label, *combo;</td></tr>
+<tr class="codeline" data-linenumber="1214"><td class="num" id="LN1214">1214</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1215"><td class="num" id="LN1215">1215</td><td class="line"> <span class='keyword'>if</span> (!terminal_util_load_builder_resource (<span class='macro'>TERMINAL_RESOURCES_PATH_PREFIX<span class='macro_popup'>"/org/mate/terminal"</span></span> <span class='macro'>G_DIR_SEPARATOR_S<span class='macro_popup'>"/"</span></span> <span class='string_literal'>"ui/profile-new-dialog.ui"</span>,</td></tr>
+<tr class="codeline" data-linenumber="1216"><td class="num" id="LN1216">1216</td><td class="line"> <span class='string_literal'>"new-profile-dialog"</span>, &amp;app-&gt;new_profile_dialog,</td></tr>
+<tr class="codeline" data-linenumber="1217"><td class="num" id="LN1217">1217</td><td class="line"> <span class='string_literal'>"new-profile-create-button"</span>, &amp;create_button,</td></tr>
+<tr class="codeline" data-linenumber="1218"><td class="num" id="LN1218">1218</td><td class="line"> <span class='string_literal'>"new-profile-grid"</span>, &amp;grid,</td></tr>
+<tr class="codeline" data-linenumber="1219"><td class="num" id="LN1219">1219</td><td class="line"> <span class='string_literal'>"new-profile-name-label"</span>, &amp;name_label,</td></tr>
+<tr class="codeline" data-linenumber="1220"><td class="num" id="LN1220">1220</td><td class="line"> <span class='string_literal'>"new-profile-name-entry"</span>, &amp;name_entry,</td></tr>
+<tr class="codeline" data-linenumber="1221"><td class="num" id="LN1221">1221</td><td class="line"> <span class='string_literal'>"new-profile-base-label"</span>, &amp;base_label,</td></tr>
+<tr class="codeline" data-linenumber="1222"><td class="num" id="LN1222">1222</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="1223"><td class="num" id="LN1223">1223</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1224"><td class="num" id="LN1224">1224</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1225"><td class="num" id="LN1225">1225</td><td class="line"> <span class='macro'>g_signal_connect (G_OBJECT (app-&gt;new_profile_dialog), <span class='string_literal'>"response"</span>, G_CALLBACK (new_profile_response_cb), app)<span class='macro_popup'>g_signal_connect_data ((((((GObject*) (void *) g_type_check_instance_cast<br> ((GTypeInstance*) ((app-&gt;new_profile_dialog)), (((GType) (<br>(20) &lt;&lt; (2))))))))), ("response"), (((GCallback) (new_profile_response_cb<br>))), (app), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1226"><td class="num" id="LN1226">1226</td><td class="line"> <span class='macro'>g_signal_connect (app-&gt;new_profile_dialog, <span class='string_literal'>"destroy"</span>, G_CALLBACK (new_profile_dialog_destroy_cb), app)<span class='macro_popup'>g_signal_connect_data ((app-&gt;new_profile_dialog), ("destroy"<br>), (((GCallback) (new_profile_dialog_destroy_cb))), (app), ((<br>void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1227"><td class="num" id="LN1227">1227</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1228"><td class="num" id="LN1228">1228</td><td class="line"> g_object_set_data (<span class='macro'>G_OBJECT (app-&gt;new_profile_dialog)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;new_profile_dialog)), (((GType) ((20) &lt;&lt; (<br>2))))))))</span></span>, <span class='string_literal'>"create_button"</span>, create_button);</td></tr>
+<tr class="codeline" data-linenumber="1229"><td class="num" id="LN1229">1229</td><td class="line"> gtk_widget_set_sensitive (create_button, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1230"><td class="num" id="LN1230">1230</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1231"><td class="num" id="LN1231">1231</td><td class="line"> <span class='comment'>/* the name entry */</span></td></tr>
+<tr class="codeline" data-linenumber="1232"><td class="num" id="LN1232">1232</td><td class="line"> g_object_set_data (<span class='macro'>G_OBJECT (app-&gt;new_profile_dialog)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;new_profile_dialog)), (((GType) ((20) &lt;&lt; (<br>2))))))))</span></span>, <span class='string_literal'>"name_entry"</span>, name_entry);</td></tr>
+<tr class="codeline" data-linenumber="1233"><td class="num" id="LN1233">1233</td><td class="line"> <span class='macro'>g_signal_connect (name_entry, <span class='string_literal'>"changed"</span>, G_CALLBACK (new_profile_name_entry_changed_cb), app-&gt;new_profile_dialog)<span class='macro_popup'>g_signal_connect_data ((name_entry), ("changed"), (((GCallback<br>) (new_profile_name_entry_changed_cb))), (app-&gt;new_profile_dialog<br>), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1234"><td class="num" id="LN1234">1234</td><td class="line"> gtk_entry_set_activates_default (<span class='macro'>GTK_ENTRY (name_entry)<span class='macro_popup'>((((GtkEntry*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((name_entry)), ((gtk_entry_get_type ()))))))</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1235"><td class="num" id="LN1235">1235</td><td class="line"> gtk_widget_grab_focus (name_entry);</td></tr>
+<tr class="codeline" data-linenumber="1236"><td class="num" id="LN1236">1236</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1237"><td class="num" id="LN1237">1237</td><td class="line"> gtk_label_set_mnemonic_widget (<span class='macro'>GTK_LABEL (name_label)<span class='macro_popup'>((((GtkLabel*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((name_label)), ((gtk_label_get_type ()))))))</span></span>, name_entry);</td></tr>
+<tr class="codeline" data-linenumber="1238"><td class="num" id="LN1238">1238</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1239"><td class="num" id="LN1239">1239</td><td class="line"> <span class='comment'>/* the base profile option menu */</span></td></tr>
+<tr class="codeline" data-linenumber="1240"><td class="num" id="LN1240">1240</td><td class="line"> combo = profile_combo_box_new (app);</td></tr>
+<tr class="codeline" data-linenumber="1241"><td class="num" id="LN1241">1241</td><td class="line"> gtk_grid_attach (<span class='macro'>GTK_GRID (grid)<span class='macro_popup'>((((GtkGrid*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((grid)), ((gtk_grid_get_type ()))))))</span></span>, combo, 2, 1, 1, 1);</td></tr>
+<tr class="codeline" data-linenumber="1242"><td class="num" id="LN1242">1242</td><td class="line"> g_object_set_data (<span class='macro'>G_OBJECT (app-&gt;new_profile_dialog)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;new_profile_dialog)), (((GType) ((20) &lt;&lt; (<br>2))))))))</span></span>, <span class='string_literal'>"base_option_menu"</span>, combo);</td></tr>
+<tr class="codeline" data-linenumber="1243"><td class="num" id="LN1243">1243</td><td class="line"> terminal_util_set_atk_name_description (combo, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>_(<span class='string_literal'>"Choose base profile"</span>)<span class='macro_popup'>gettext ("Choose base profile")</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1244"><td class="num" id="LN1244">1244</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1245"><td class="num" id="LN1245">1245</td><td class="line"> gtk_label_set_mnemonic_widget (<span class='macro'>GTK_LABEL (base_label)<span class='macro_popup'>((((GtkLabel*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((base_label)), ((gtk_label_get_type ()))))))</span></span>, combo);</td></tr>
+<tr class="codeline" data-linenumber="1246"><td class="num" id="LN1246">1246</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1247"><td class="num" id="LN1247">1247</td><td class="line"> gtk_dialog_set_default_response (<span class='macro'>GTK_DIALOG (app-&gt;new_profile_dialog)<span class='macro_popup'>((((GtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;new_profile_dialog)), ((gtk_dialog_get_type ()))<br>))))</span></span>, GTK_RESPONSE_ACCEPT);</td></tr>
+<tr class="codeline" data-linenumber="1248"><td class="num" id="LN1248">1248</td><td class="line"> gtk_dialog_set_response_sensitive (<span class='macro'>GTK_DIALOG (app-&gt;new_profile_dialog)<span class='macro_popup'>((((GtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;new_profile_dialog)), ((gtk_dialog_get_type ()))<br>))))</span></span>, GTK_RESPONSE_ACCEPT, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1249"><td class="num" id="LN1249">1249</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1250"><td class="num" id="LN1250">1250</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1251"><td class="num" id="LN1251">1251</td><td class="line"> gtk_window_set_transient_for (<span class='macro'>GTK_WINDOW (app-&gt;new_profile_dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;new_profile_dialog)), ((gtk_window_get_type ()))<br>))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1252"><td class="num" id="LN1252">1252</td><td class="line"> transient_parent);</td></tr>
+<tr class="codeline" data-linenumber="1253"><td class="num" id="LN1253">1253</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1254"><td class="num" id="LN1254">1254</td><td class="line"> gtk_window_present (<span class='macro'>GTK_WINDOW (app-&gt;new_profile_dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;new_profile_dialog)), ((gtk_window_get_type ()))<br>))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1255"><td class="num" id="LN1255">1255</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1256"><td class="num" id="LN1256">1256</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1257"><td class="num" id="LN1257">1257</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1258"><td class="num" id="LN1258">1258</td><td class="line">profile_list_selection_changed_cb (GtkTreeSelection *selection,</td></tr>
+<tr class="codeline" data-linenumber="1259"><td class="num" id="LN1259">1259</td><td class="line"> TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="1260"><td class="num" id="LN1260">1260</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1261"><td class="num" id="LN1261">1261</td><td class="line"> gboolean selected;</td></tr>
+<tr class="codeline" data-linenumber="1262"><td class="num" id="LN1262">1262</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1263"><td class="num" id="LN1263">1263</td><td class="line"> selected = gtk_tree_selection_get_selected (selection, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1264"><td class="num" id="LN1264">1264</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1265"><td class="num" id="LN1265">1265</td><td class="line"> gtk_widget_set_sensitive (app-&gt;manage_profiles_edit_button, selected);</td></tr>
+<tr class="codeline" data-linenumber="1266"><td class="num" id="LN1266">1266</td><td class="line"> gtk_widget_set_sensitive (app-&gt;manage_profiles_delete_button,</td></tr>
+<tr class="codeline" data-linenumber="1267"><td class="num" id="LN1267">1267</td><td class="line"> selected &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="1268"><td class="num" id="LN1268">1268</td><td class="line"> g_hash_table_size (app-&gt;profiles) &gt; 1);</td></tr>
+<tr class="codeline" data-linenumber="1269"><td class="num" id="LN1269">1269</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1270"><td class="num" id="LN1270">1270</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1271"><td class="num" id="LN1271">1271</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1272"><td class="num" id="LN1272">1272</td><td class="line">profile_list_response_cb (GtkWidget *dialog,</td></tr>
+<tr class="codeline" data-linenumber="1273"><td class="num" id="LN1273">1273</td><td class="line"> <span class='keyword'>int</span> id,</td></tr>
+<tr class="codeline" data-linenumber="1274"><td class="num" id="LN1274">1274</td><td class="line"> TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="1275"><td class="num" id="LN1275">1275</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1276"><td class="num" id="LN1276">1276</td><td class="line"> <span class='macro'>g_assert (app-&gt;manage_profiles_dialog == dialog)<span class='macro_popup'>do { if (app-&gt;manage_profiles_dialog == dialog) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-app.c", 1276, ((const char*) (__func__<br>)), "app-&gt;manage_profiles_dialog == dialog"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1277"><td class="num" id="LN1277">1277</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1278"><td class="num" id="LN1278">1278</td><td class="line"> <span class='keyword'>if</span> (id == GTK_RESPONSE_HELP)</td></tr>
+<tr class="codeline" data-linenumber="1279"><td class="num" id="LN1279">1279</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1280"><td class="num" id="LN1280">1280</td><td class="line"> terminal_util_show_help (<span class='string_literal'>"mate-terminal-manage-profiles"</span>, <span class='macro'>GTK_WINDOW (dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((dialog)), ((gtk_window_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1281"><td class="num" id="LN1281">1281</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1282"><td class="num" id="LN1282">1282</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1283"><td class="num" id="LN1283">1283</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1284"><td class="num" id="LN1284">1284</td><td class="line"> gtk_widget_destroy (dialog);</td></tr>
+<tr class="codeline" data-linenumber="1285"><td class="num" id="LN1285">1285</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1286"><td class="num" id="LN1286">1286</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1287"><td class="num" id="LN1287">1287</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1288"><td class="num" id="LN1288">1288</td><td class="line">profile_list_destroyed_cb (GtkWidget *manage_profiles_dialog,</td></tr>
+<tr class="codeline" data-linenumber="1289"><td class="num" id="LN1289">1289</td><td class="line"> TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="1290"><td class="num" id="LN1290">1290</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1291"><td class="num" id="LN1291">1291</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (app, G_CALLBACK (profile_list_treeview_refill), app-&gt;manage_profiles_list)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((app), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (profile_list_treeview_refill))), (app-&gt;<br>manage_profiles_list))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1292"><td class="num" id="LN1292">1292</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (app, G_CALLBACK (profile_combo_box_refill), app-&gt;manage_profiles_default_menu)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((app), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (profile_combo_box_refill))), (app-&gt;manage_profiles_default_menu<br>))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1293"><td class="num" id="LN1293">1293</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1294"><td class="num" id="LN1294">1294</td><td class="line"> app-&gt;manage_profiles_dialog = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1295"><td class="num" id="LN1295">1295</td><td class="line"> app-&gt;manage_profiles_list = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1296"><td class="num" id="LN1296">1296</td><td class="line"> app-&gt;manage_profiles_new_button = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1297"><td class="num" id="LN1297">1297</td><td class="line"> app-&gt;manage_profiles_edit_button = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1298"><td class="num" id="LN1298">1298</td><td class="line"> app-&gt;manage_profiles_delete_button = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1299"><td class="num" id="LN1299">1299</td><td class="line"> app-&gt;manage_profiles_default_menu = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1300"><td class="num" id="LN1300">1300</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1301"><td class="num" id="LN1301">1301</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1302"><td class="num" id="LN1302">1302</td><td class="line"><span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1303"><td class="num" id="LN1303">1303</td><td class="line">terminal_app_manage_profiles (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="1304"><td class="num" id="LN1304">1304</td><td class="line"> GtkWindow *transient_parent)</td></tr>
+<tr class="codeline" data-linenumber="1305"><td class="num" id="LN1305">1305</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1306"><td class="num" id="LN1306">1306</td><td class="line"> GObject *dialog;</td></tr>
+<tr class="codeline" data-linenumber="1307"><td class="num" id="LN1307">1307</td><td class="line"> GObject *tree_view_container, *new_button, *edit_button, *remove_button;</td></tr>
+<tr class="codeline" data-linenumber="1308"><td class="num" id="LN1308">1308</td><td class="line"> GObject *default_hbox, *default_label;</td></tr>
+<tr class="codeline" data-linenumber="1309"><td class="num" id="LN1309">1309</td><td class="line"> GtkTreeSelection *selection;</td></tr>
+<tr class="codeline" data-linenumber="1310"><td class="num" id="LN1310">1310</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1311"><td class="num" id="LN1311">1311</td><td class="line"> <span class='keyword'>if</span> (app-&gt;manage_profiles_dialog)</td></tr>
+<tr class="codeline" data-linenumber="1312"><td class="num" id="LN1312">1312</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1313"><td class="num" id="LN1313">1313</td><td class="line"> gtk_window_set_transient_for (<span class='macro'>GTK_WINDOW (app-&gt;manage_profiles_dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;manage_profiles_dialog)), ((gtk_window_get_type (<br>)))))))</span></span>, transient_parent);</td></tr>
+<tr class="codeline" data-linenumber="1314"><td class="num" id="LN1314">1314</td><td class="line"> gtk_window_present (<span class='macro'>GTK_WINDOW (app-&gt;manage_profiles_dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;manage_profiles_dialog)), ((gtk_window_get_type (<br>)))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1315"><td class="num" id="LN1315">1315</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1316"><td class="num" id="LN1316">1316</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1317"><td class="num" id="LN1317">1317</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1318"><td class="num" id="LN1318">1318</td><td class="line"> <span class='keyword'>if</span> (!terminal_util_load_builder_resource (<span class='macro'>TERMINAL_RESOURCES_PATH_PREFIX<span class='macro_popup'>"/org/mate/terminal"</span></span> <span class='macro'>G_DIR_SEPARATOR_S<span class='macro_popup'>"/"</span></span> <span class='string_literal'>"ui/profile-manager.ui"</span>,</td></tr>
+<tr class="codeline" data-linenumber="1319"><td class="num" id="LN1319">1319</td><td class="line"> <span class='string_literal'>"profile-manager"</span>, &amp;dialog,</td></tr>
+<tr class="codeline" data-linenumber="1320"><td class="num" id="LN1320">1320</td><td class="line"> <span class='string_literal'>"profiles-treeview-container"</span>, &amp;tree_view_container,</td></tr>
+<tr class="codeline" data-linenumber="1321"><td class="num" id="LN1321">1321</td><td class="line"> <span class='string_literal'>"new-profile-button"</span>, &amp;new_button,</td></tr>
+<tr class="codeline" data-linenumber="1322"><td class="num" id="LN1322">1322</td><td class="line"> <span class='string_literal'>"edit-profile-button"</span>, &amp;edit_button,</td></tr>
+<tr class="codeline" data-linenumber="1323"><td class="num" id="LN1323">1323</td><td class="line"> <span class='string_literal'>"delete-profile-button"</span>, &amp;remove_button,</td></tr>
+<tr class="codeline" data-linenumber="1324"><td class="num" id="LN1324">1324</td><td class="line"> <span class='string_literal'>"default-profile-hbox"</span>, &amp;default_hbox,</td></tr>
+<tr class="codeline" data-linenumber="1325"><td class="num" id="LN1325">1325</td><td class="line"> <span class='string_literal'>"default-profile-label"</span>, &amp;default_label,</td></tr>
+<tr class="codeline" data-linenumber="1326"><td class="num" id="LN1326">1326</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="1327"><td class="num" id="LN1327">1327</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1328"><td class="num" id="LN1328">1328</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1329"><td class="num" id="LN1329">1329</td><td class="line"> app-&gt;manage_profiles_dialog = <span class='macro'>GTK_WIDGET (dialog)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((dialog)), ((gtk_widget_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1330"><td class="num" id="LN1330">1330</td><td class="line"> app-&gt;manage_profiles_new_button = <span class='macro'>GTK_WIDGET (new_button)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((new_button)), ((gtk_widget_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1331"><td class="num" id="LN1331">1331</td><td class="line"> app-&gt;manage_profiles_edit_button = <span class='macro'>GTK_WIDGET (edit_button)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((edit_button)), ((gtk_widget_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1332"><td class="num" id="LN1332">1332</td><td class="line"> app-&gt;manage_profiles_delete_button = <span class='macro'>GTK_WIDGET (remove_button)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((remove_button)), ((gtk_widget_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1333"><td class="num" id="LN1333">1333</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1334"><td class="num" id="LN1334">1334</td><td class="line"> <span class='macro'>g_signal_connect (dialog, <span class='string_literal'>"response"</span>, G_CALLBACK (profile_list_response_cb), app)<span class='macro_popup'>g_signal_connect_data ((dialog), ("response"), (((GCallback) (<br>profile_list_response_cb))), (app), ((void*)0), (GConnectFlags<br>) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1335"><td class="num" id="LN1335">1335</td><td class="line"> <span class='macro'>g_signal_connect (dialog, <span class='string_literal'>"destroy"</span>, G_CALLBACK (profile_list_destroyed_cb), app)<span class='macro_popup'>g_signal_connect_data ((dialog), ("destroy"), (((GCallback) (<br>profile_list_destroyed_cb))), (app), ((void*)0), (GConnectFlags<br>) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1336"><td class="num" id="LN1336">1336</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1337"><td class="num" id="LN1337">1337</td><td class="line"> app-&gt;manage_profiles_list = profile_list_treeview_create (app);</td></tr>
+<tr class="codeline" data-linenumber="1338"><td class="num" id="LN1338">1338</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1339"><td class="num" id="LN1339">1339</td><td class="line"> selection = gtk_tree_view_get_selection (<span class='macro'>GTK_TREE_VIEW (app-&gt;manage_profiles_list)<span class='macro_popup'>((((GtkTreeView*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;manage_profiles_list)), ((gtk_tree_view_get_type<br> ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1340"><td class="num" id="LN1340">1340</td><td class="line"> <span class='macro'>g_signal_connect (selection, <span class='string_literal'>"changed"</span>, G_CALLBACK (profile_list_selection_changed_cb), app)<span class='macro_popup'>g_signal_connect_data ((selection), ("changed"), (((GCallback<br>) (profile_list_selection_changed_cb))), (app), ((void*)0), (<br>GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1341"><td class="num" id="LN1341">1341</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1342"><td class="num" id="LN1342">1342</td><td class="line"> profile_list_treeview_refill (app, app-&gt;manage_profiles_list);</td></tr>
+<tr class="codeline" data-linenumber="1343"><td class="num" id="LN1343">1343</td><td class="line"> <span class='macro'>g_signal_connect (app, <span class='string_literal'>"profile-list-changed"</span>,<span class='macro_popup'>g_signal_connect_data ((app), ("profile-list-changed"), (((GCallback<br>) (profile_list_treeview_refill))), (app-&gt;manage_profiles_list<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1344"><td class="num" id="LN1344">1344</td><td class="line"> <span class='macro'>G_CALLBACK (profile_list_treeview_refill), app-&gt;manage_profiles_list)<span class='macro_popup'>g_signal_connect_data ((app), ("profile-list-changed"), (((GCallback<br>) (profile_list_treeview_refill))), (app-&gt;manage_profiles_list<br>), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1345"><td class="num" id="LN1345">1345</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1346"><td class="num" id="LN1346">1346</td><td class="line"> <span class='macro'>g_signal_connect (app-&gt;manage_profiles_list, <span class='string_literal'>"row-activated"</span>,<span class='macro_popup'>g_signal_connect_data ((app-&gt;manage_profiles_list), ("row-activated"<br>), (((GCallback) (profile_list_row_activated_cb))), (app), ((<br>void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1347"><td class="num" id="LN1347">1347</td><td class="line"> <span class='macro'>G_CALLBACK (profile_list_row_activated_cb), app)<span class='macro_popup'>g_signal_connect_data ((app-&gt;manage_profiles_list), ("row-activated"<br>), (((GCallback) (profile_list_row_activated_cb))), (app), ((<br>void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1348"><td class="num" id="LN1348">1348</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1349"><td class="num" id="LN1349">1349</td><td class="line"> gtk_container_add (<span class='macro'>GTK_CONTAINER (tree_view_container)<span class='macro_popup'>((((GtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((tree_view_container)), ((gtk_container_get_type ()))))))</span></span>, app-&gt;manage_profiles_list);</td></tr>
+<tr class="codeline" data-linenumber="1350"><td class="num" id="LN1350">1350</td><td class="line"> gtk_widget_show (app-&gt;manage_profiles_list);</td></tr>
+<tr class="codeline" data-linenumber="1351"><td class="num" id="LN1351">1351</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1352"><td class="num" id="LN1352">1352</td><td class="line"> <span class='macro'>g_signal_connect (new_button, <span class='string_literal'>"clicked"</span>,<span class='macro_popup'>g_signal_connect_data ((new_button), ("clicked"), (((GCallback<br>) (profile_list_new_button_clicked_cb))), (app-&gt;manage_profiles_list<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1353"><td class="num" id="LN1353">1353</td><td class="line"> <span class='macro'>G_CALLBACK (profile_list_new_button_clicked_cb),<span class='macro_popup'>g_signal_connect_data ((new_button), ("clicked"), (((GCallback<br>) (profile_list_new_button_clicked_cb))), (app-&gt;manage_profiles_list<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1354"><td class="num" id="LN1354">1354</td><td class="line"> <span class='macro'>app-&gt;manage_profiles_list)<span class='macro_popup'>g_signal_connect_data ((new_button), ("clicked"), (((GCallback<br>) (profile_list_new_button_clicked_cb))), (app-&gt;manage_profiles_list<br>), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1355"><td class="num" id="LN1355">1355</td><td class="line"> <span class='macro'>g_signal_connect (edit_button, <span class='string_literal'>"clicked"</span>,<span class='macro_popup'>g_signal_connect_data ((edit_button), ("clicked"), (((GCallback<br>) (profile_list_edit_button_clicked_cb))), (app-&gt;manage_profiles_list<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1356"><td class="num" id="LN1356">1356</td><td class="line"> <span class='macro'>G_CALLBACK (profile_list_edit_button_clicked_cb),<span class='macro_popup'>g_signal_connect_data ((edit_button), ("clicked"), (((GCallback<br>) (profile_list_edit_button_clicked_cb))), (app-&gt;manage_profiles_list<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1357"><td class="num" id="LN1357">1357</td><td class="line"> <span class='macro'>app-&gt;manage_profiles_list)<span class='macro_popup'>g_signal_connect_data ((edit_button), ("clicked"), (((GCallback<br>) (profile_list_edit_button_clicked_cb))), (app-&gt;manage_profiles_list<br>), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1358"><td class="num" id="LN1358">1358</td><td class="line"> <span class='macro'>g_signal_connect (remove_button, <span class='string_literal'>"clicked"</span>,<span class='macro_popup'>g_signal_connect_data ((remove_button), ("clicked"), (((GCallback<br>) (profile_list_delete_button_clicked_cb))), (app-&gt;manage_profiles_list<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1359"><td class="num" id="LN1359">1359</td><td class="line"> <span class='macro'>G_CALLBACK (profile_list_delete_button_clicked_cb),<span class='macro_popup'>g_signal_connect_data ((remove_button), ("clicked"), (((GCallback<br>) (profile_list_delete_button_clicked_cb))), (app-&gt;manage_profiles_list<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1360"><td class="num" id="LN1360">1360</td><td class="line"> <span class='macro'>app-&gt;manage_profiles_list)<span class='macro_popup'>g_signal_connect_data ((remove_button), ("clicked"), (((GCallback<br>) (profile_list_delete_button_clicked_cb))), (app-&gt;manage_profiles_list<br>), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1361"><td class="num" id="LN1361">1361</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1362"><td class="num" id="LN1362">1362</td><td class="line"> app-&gt;manage_profiles_default_menu = profile_combo_box_new (app);</td></tr>
+<tr class="codeline" data-linenumber="1363"><td class="num" id="LN1363">1363</td><td class="line"> <span class='macro'>g_signal_connect (app-&gt;manage_profiles_default_menu, <span class='string_literal'>"changed"</span>,<span class='macro_popup'>g_signal_connect_data ((app-&gt;manage_profiles_default_menu)<br>, ("changed"), (((GCallback) (profile_combo_box_changed_cb)))<br>, (app), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1364"><td class="num" id="LN1364">1364</td><td class="line"> <span class='macro'>G_CALLBACK (profile_combo_box_changed_cb), app)<span class='macro_popup'>g_signal_connect_data ((app-&gt;manage_profiles_default_menu)<br>, ("changed"), (((GCallback) (profile_combo_box_changed_cb)))<br>, (app), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1365"><td class="num" id="LN1365">1365</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1366"><td class="num" id="LN1366">1366</td><td class="line"> gtk_box_pack_start (<span class='macro'>GTK_BOX (default_hbox)<span class='macro_popup'>((((GtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((default_hbox)), ((gtk_box_get_type ()))))))</span></span>, app-&gt;manage_profiles_default_menu, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, 0);</td></tr>
+<tr class="codeline" data-linenumber="1367"><td class="num" id="LN1367">1367</td><td class="line"> gtk_widget_show (app-&gt;manage_profiles_default_menu);</td></tr>
+<tr class="codeline" data-linenumber="1368"><td class="num" id="LN1368">1368</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1369"><td class="num" id="LN1369">1369</td><td class="line"> gtk_label_set_mnemonic_widget (<span class='macro'>GTK_LABEL (default_label)<span class='macro_popup'>((((GtkLabel*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((default_label)), ((gtk_label_get_type ()))))))</span></span>, app-&gt;manage_profiles_default_menu);</td></tr>
+<tr class="codeline" data-linenumber="1370"><td class="num" id="LN1370">1370</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1371"><td class="num" id="LN1371">1371</td><td class="line"> gtk_widget_grab_focus (app-&gt;manage_profiles_list);</td></tr>
+<tr class="codeline" data-linenumber="1372"><td class="num" id="LN1372">1372</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1373"><td class="num" id="LN1373">1373</td><td class="line"> gtk_window_set_transient_for (<span class='macro'>GTK_WINDOW (app-&gt;manage_profiles_dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;manage_profiles_dialog)), ((gtk_window_get_type (<br>)))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1374"><td class="num" id="LN1374">1374</td><td class="line"> transient_parent);</td></tr>
+<tr class="codeline" data-linenumber="1375"><td class="num" id="LN1375">1375</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1376"><td class="num" id="LN1376">1376</td><td class="line"> gtk_window_present (<span class='macro'>GTK_WINDOW (app-&gt;manage_profiles_dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;manage_profiles_dialog)), ((gtk_window_get_type (<br>)))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1377"><td class="num" id="LN1377">1377</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1378"><td class="num" id="LN1378">1378</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1379"><td class="num" id="LN1379">1379</td><td class="line"><span class='directive'>#ifdef <span class='macro'>HAVE_SMCLIENT<span class='macro_popup'>1</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1380"><td class="num" id="LN1380">1380</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1381"><td class="num" id="LN1381">1381</td><td class="line">terminal_app_save_state_cb (EggSMClient *client,</td></tr>
+<tr class="codeline" data-linenumber="1382"><td class="num" id="LN1382">1382</td><td class="line"> GKeyFile *key_file,</td></tr>
+<tr class="codeline" data-linenumber="1383"><td class="num" id="LN1383">1383</td><td class="line"> TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="1384"><td class="num" id="LN1384">1384</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1385"><td class="num" id="LN1385">1385</td><td class="line"> terminal_app_save_config (app, key_file);</td></tr>
+<tr class="codeline" data-linenumber="1386"><td class="num" id="LN1386">1386</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1387"><td class="num" id="LN1387">1387</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1388"><td class="num" id="LN1388">1388</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1389"><td class="num" id="LN1389">1389</td><td class="line">terminal_app_client_quit_cb (EggSMClient *client,</td></tr>
+<tr class="codeline" data-linenumber="1390"><td class="num" id="LN1390">1390</td><td class="line"> TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="1391"><td class="num" id="LN1391">1391</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1392"><td class="num" id="LN1392">1392</td><td class="line"> g_signal_emit (app, signals[QUIT], 0);</td></tr>
+<tr class="codeline" data-linenumber="1393"><td class="num" id="LN1393">1393</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1394"><td class="num" id="LN1394">1394</td><td class="line"><span class='directive'>#endif /* HAVE_SMCLIENT */</span></td></tr>
+<tr class="codeline" data-linenumber="1395"><td class="num" id="LN1395">1395</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1396"><td class="num" id="LN1396">1396</td><td class="line"><span class='comment'>/* Class implementation */</span></td></tr>
+<tr class="codeline" data-linenumber="1397"><td class="num" id="LN1397">1397</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1398"><td class="num" id="LN1398">1398</td><td class="line"><span class='macro'>G_DEFINE_TYPE (TerminalApp, terminal_app, G_TYPE_OBJECT)<span class='macro_popup'>static void terminal_app_init (TerminalApp *self); static void<br> terminal_app_class_init (TerminalAppClass *klass); static GType<br> terminal_app_get_type_once (void); static gpointer terminal_app_parent_class<br> = ((void*)0); static gint TerminalApp_private_offset; static<br> void terminal_app_class_intern_init (gpointer klass) { terminal_app_parent_class<br> = g_type_class_peek_parent (klass); if (TerminalApp_private_offset<br> != 0) g_type_class_adjust_private_offset (klass, &amp;TerminalApp_private_offset<br>); terminal_app_class_init ((TerminalAppClass*) klass); } __attribute__<br> ((__unused__)) static inline gpointer terminal_app_get_instance_private<br> (TerminalApp *self) { return (((gpointer) ((guint8*) (self) +<br> (glong) (TerminalApp_private_offset)))); } GType terminal_app_get_type<br> (void) { static gsize static_g_define_type_id = 0; if ((__extension__<br> ({ _Static_assert (sizeof *(&amp;static_g_define_type_id) ==<br> sizeof (gpointer), "Expression evaluates to false"); (void) (<br>0 ? (gpointer) *(&amp;static_g_define_type_id) : ((void*)0));<br> (!(__extension__ ({ _Static_assert (sizeof *(&amp;static_g_define_type_id<br>) == sizeof (gpointer), "Expression evaluates to false"); __typeof__<br> (*(&amp;static_g_define_type_id)) gapg_temp_newval; __typeof__<br> ((&amp;static_g_define_type_id)) gapg_temp_atomic = (&amp;static_g_define_type_id<br>); __atomic_load (gapg_temp_atomic, &amp;gapg_temp_newval, 5)<br>; gapg_temp_newval; })) &amp;&amp; g_once_init_enter (&amp;static_g_define_type_id<br>)); }))) { GType g_define_type_id = terminal_app_get_type_once<br> (); (__extension__ ({ _Static_assert (sizeof *(&amp;static_g_define_type_id<br>) == sizeof (gpointer), "Expression evaluates to false"); 0 ?<br> (void) (*(&amp;static_g_define_type_id) = (g_define_type_id)<br>) : (void) 0; g_once_init_leave ((&amp;static_g_define_type_id<br>), (gsize) (g_define_type_id)); })); } return static_g_define_type_id<br>; } __attribute__ ((__noinline__)) static GType terminal_app_get_type_once<br> (void) { GType g_define_type_id = g_type_register_static_simple<br> (((GType) ((20) &lt;&lt; (2))), g_intern_static_string ("TerminalApp"<br>), sizeof (TerminalAppClass), (GClassInitFunc)(void (*)(void)<br>) terminal_app_class_intern_init, sizeof (TerminalApp), (GInstanceInitFunc<br>)(void (*)(void)) terminal_app_init, (GTypeFlags) 0); { {{};}<br> } return g_define_type_id; }</span></span></td></tr>
+<tr class="codeline" data-linenumber="1399"><td class="num" id="LN1399">1399</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1400"><td class="num" id="LN1400">1400</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1401"><td class="num" id="LN1401">1401</td><td class="line">terminal_app_init (TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="1402"><td class="num" id="LN1402">1402</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1403"><td class="num" id="LN1403">1403</td><td class="line"> global_app = app;</td></tr>
+<tr class="codeline" data-linenumber="1404"><td class="num" id="LN1404">1404</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1405"><td class="num" id="LN1405">1405</td><td class="line"> gtk_window_set_default_icon_name (<span class='macro'>MATE_TERMINAL_ICON_NAME<span class='macro_popup'>"utilities-terminal"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1406"><td class="num" id="LN1406">1406</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1407"><td class="num" id="LN1407">1407</td><td class="line"> <span class='comment'>/* Initialise defaults */</span></td></tr>
+<tr class="codeline" data-linenumber="1408"><td class="num" id="LN1408">1408</td><td class="line"> app-&gt;enable_mnemonics = <span class='macro'>DEFAULT_ENABLE_MNEMONICS<span class='macro_popup'>((!(0)))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1409"><td class="num" id="LN1409">1409</td><td class="line"> app-&gt;enable_menu_accels = <span class='macro'>DEFAULT_ENABLE_MENU_BAR_ACCEL<span class='macro_popup'>((!(0)))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1410"><td class="num" id="LN1410">1410</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1411"><td class="num" id="LN1411">1411</td><td class="line"> app-&gt;profiles = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref);</td></tr>
+<tr class="codeline" data-linenumber="1412"><td class="num" id="LN1412">1412</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1413"><td class="num" id="LN1413">1413</td><td class="line"> app-&gt;encodings = terminal_encodings_get_builtins ();</td></tr>
+<tr class="codeline" data-linenumber="1414"><td class="num" id="LN1414">1414</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1415"><td class="num" id="LN1415">1415</td><td class="line"> settings_global = g_settings_new (<span class='macro'>CONF_GLOBAL_SCHEMA<span class='macro_popup'>"org.mate.terminal" ".global"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1416"><td class="num" id="LN1416">1416</td><td class="line"> app-&gt;settings_font = g_settings_new (<span class='macro'>MONOSPACE_FONT_SCHEMA<span class='macro_popup'>"org.mate.interface"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1417"><td class="num" id="LN1417">1417</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1418"><td class="num" id="LN1418">1418</td><td class="line"> <span class='macro'>g_signal_connect (settings_global,<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "profile-list"<br>), (((GCallback) (terminal_app_profile_list_notify_cb))), (app<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1419"><td class="num" id="LN1419">1419</td><td class="line"> <span class='string_literal'><span class='macro'>"changed::"</span> PROFILE_LIST_KEY,<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "profile-list"<br>), (((GCallback) (terminal_app_profile_list_notify_cb))), (app<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1420"><td class="num" id="LN1420">1420</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_app_profile_list_notify_cb),<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "profile-list"<br>), (((GCallback) (terminal_app_profile_list_notify_cb))), (app<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1421"><td class="num" id="LN1421">1421</td><td class="line"> <span class='macro'>app)<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "profile-list"<br>), (((GCallback) (terminal_app_profile_list_notify_cb))), (app<br>), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1422"><td class="num" id="LN1422">1422</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1423"><td class="num" id="LN1423">1423</td><td class="line"> <span class='macro'>g_signal_connect (settings_global,<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "default-profile"<br>), (((GCallback) (terminal_app_default_profile_notify_cb))), (<br>app), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1424"><td class="num" id="LN1424">1424</td><td class="line"> <span class='string_literal'><span class='macro'>"changed::"</span> DEFAULT_PROFILE_KEY,<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "default-profile"<br>), (((GCallback) (terminal_app_default_profile_notify_cb))), (<br>app), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1425"><td class="num" id="LN1425">1425</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_app_default_profile_notify_cb),<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "default-profile"<br>), (((GCallback) (terminal_app_default_profile_notify_cb))), (<br>app), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1426"><td class="num" id="LN1426">1426</td><td class="line"> <span class='macro'>app)<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "default-profile"<br>), (((GCallback) (terminal_app_default_profile_notify_cb))), (<br>app), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1427"><td class="num" id="LN1427">1427</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1428"><td class="num" id="LN1428">1428</td><td class="line"> <span class='macro'>g_signal_connect (settings_global,<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "active-encodings"<br>), (((GCallback) (terminal_app_encoding_list_notify_cb))), (app<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1429"><td class="num" id="LN1429">1429</td><td class="line"> <span class='string_literal'><span class='macro'>"changed::"</span> ENCODING_LIST_KEY,<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "active-encodings"<br>), (((GCallback) (terminal_app_encoding_list_notify_cb))), (app<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1430"><td class="num" id="LN1430">1430</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_app_encoding_list_notify_cb),<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "active-encodings"<br>), (((GCallback) (terminal_app_encoding_list_notify_cb))), (app<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1431"><td class="num" id="LN1431">1431</td><td class="line"> <span class='macro'>app)<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "active-encodings"<br>), (((GCallback) (terminal_app_encoding_list_notify_cb))), (app<br>), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1432"><td class="num" id="LN1432">1432</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1433"><td class="num" id="LN1433">1433</td><td class="line"> <span class='macro'>g_signal_connect (app-&gt;settings_font,<span class='macro_popup'>g_signal_connect_data ((app-&gt;settings_font), ("changed::" "monospace-font-name"<br>), (((GCallback) (terminal_app_system_font_notify_cb))), (app<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1434"><td class="num" id="LN1434">1434</td><td class="line"> <span class='string_literal'><span class='macro'>"changed::"</span> MONOSPACE_FONT_KEY,<span class='macro_popup'>g_signal_connect_data ((app-&gt;settings_font), ("changed::" "monospace-font-name"<br>), (((GCallback) (terminal_app_system_font_notify_cb))), (app<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1435"><td class="num" id="LN1435">1435</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_app_system_font_notify_cb),<span class='macro_popup'>g_signal_connect_data ((app-&gt;settings_font), ("changed::" "monospace-font-name"<br>), (((GCallback) (terminal_app_system_font_notify_cb))), (app<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1436"><td class="num" id="LN1436">1436</td><td class="line"> <span class='macro'>app)<span class='macro_popup'>g_signal_connect_data ((app-&gt;settings_font), ("changed::" "monospace-font-name"<br>), (((GCallback) (terminal_app_system_font_notify_cb))), (app<br>), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1437"><td class="num" id="LN1437">1437</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1438"><td class="num" id="LN1438">1438</td><td class="line"> <span class='macro'>g_signal_connect (settings_global,<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "use-mnemonics"<br>), (((GCallback) (terminal_app_enable_mnemonics_notify_cb))),<br> (app), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1439"><td class="num" id="LN1439">1439</td><td class="line"> <span class='string_literal'><span class='macro'>"changed::"</span> ENABLE_MNEMONICS_KEY,<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "use-mnemonics"<br>), (((GCallback) (terminal_app_enable_mnemonics_notify_cb))),<br> (app), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1440"><td class="num" id="LN1440">1440</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_app_enable_mnemonics_notify_cb),<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "use-mnemonics"<br>), (((GCallback) (terminal_app_enable_mnemonics_notify_cb))),<br> (app), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1441"><td class="num" id="LN1441">1441</td><td class="line"> <span class='macro'>app)<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "use-mnemonics"<br>), (((GCallback) (terminal_app_enable_mnemonics_notify_cb))),<br> (app), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1442"><td class="num" id="LN1442">1442</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1443"><td class="num" id="LN1443">1443</td><td class="line"> <span class='macro'>g_signal_connect (settings_global,<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "use-menu-accelerators"<br>), (((GCallback) (terminal_app_enable_menu_accels_notify_cb))<br>), (app), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1444"><td class="num" id="LN1444">1444</td><td class="line"> <span class='string_literal'><span class='macro'>"changed::"</span> ENABLE_MENU_BAR_ACCEL_KEY,<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "use-menu-accelerators"<br>), (((GCallback) (terminal_app_enable_menu_accels_notify_cb))<br>), (app), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1445"><td class="num" id="LN1445">1445</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_app_enable_menu_accels_notify_cb),<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "use-menu-accelerators"<br>), (((GCallback) (terminal_app_enable_menu_accels_notify_cb))<br>), (app), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1446"><td class="num" id="LN1446">1446</td><td class="line"> <span class='macro'>app)<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "use-menu-accelerators"<br>), (((GCallback) (terminal_app_enable_menu_accels_notify_cb))<br>), (app), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1447"><td class="num" id="LN1447">1447</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1448"><td class="num" id="LN1448">1448</td><td class="line"> <span class='comment'>/* Load the settings */</span></td></tr>
+<tr class="codeline" data-linenumber="1449"><td class="num" id="LN1449">1449</td><td class="line"> terminal_app_profile_list_notify_cb (settings_global,</td></tr>
+<tr class="codeline" data-linenumber="1450"><td class="num" id="LN1450">1450</td><td class="line"> <span class='macro'>PROFILE_LIST_KEY<span class='macro_popup'>"profile-list"</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1451"><td class="num" id="LN1451">1451</td><td class="line"> app);</td></tr>
+<tr class="codeline" data-linenumber="1452"><td class="num" id="LN1452">1452</td><td class="line"> terminal_app_default_profile_notify_cb (settings_global,</td></tr>
+<tr class="codeline" data-linenumber="1453"><td class="num" id="LN1453">1453</td><td class="line"> <span class='macro'>DEFAULT_PROFILE_KEY<span class='macro_popup'>"default-profile"</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1454"><td class="num" id="LN1454">1454</td><td class="line"> app);</td></tr>
+<tr class="codeline" data-linenumber="1455"><td class="num" id="LN1455">1455</td><td class="line"> terminal_app_encoding_list_notify_cb (settings_global,</td></tr>
+<tr class="codeline" data-linenumber="1456"><td class="num" id="LN1456">1456</td><td class="line"> <span class='macro'>ENCODING_LIST_KEY<span class='macro_popup'>"active-encodings"</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1457"><td class="num" id="LN1457">1457</td><td class="line"> app);</td></tr>
+<tr class="codeline" data-linenumber="1458"><td class="num" id="LN1458">1458</td><td class="line"> terminal_app_system_font_notify_cb (app-&gt;settings_font,</td></tr>
+<tr class="codeline" data-linenumber="1459"><td class="num" id="LN1459">1459</td><td class="line"> <span class='macro'>MONOSPACE_FONT_KEY<span class='macro_popup'>"monospace-font-name"</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1460"><td class="num" id="LN1460">1460</td><td class="line"> app);</td></tr>
+<tr class="codeline" data-linenumber="1461"><td class="num" id="LN1461">1461</td><td class="line"> terminal_app_enable_menu_accels_notify_cb (settings_global,</td></tr>
+<tr class="codeline" data-linenumber="1462"><td class="num" id="LN1462">1462</td><td class="line"> <span class='macro'>ENABLE_MENU_BAR_ACCEL_KEY<span class='macro_popup'>"use-menu-accelerators"</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1463"><td class="num" id="LN1463">1463</td><td class="line"> app);</td></tr>
+<tr class="codeline" data-linenumber="1464"><td class="num" id="LN1464">1464</td><td class="line"> terminal_app_enable_mnemonics_notify_cb (settings_global,</td></tr>
+<tr class="codeline" data-linenumber="1465"><td class="num" id="LN1465">1465</td><td class="line"> <span class='macro'>ENABLE_MNEMONICS_KEY<span class='macro_popup'>"use-mnemonics"</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1466"><td class="num" id="LN1466">1466</td><td class="line"> app);</td></tr>
+<tr class="codeline" data-linenumber="1467"><td class="num" id="LN1467">1467</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1468"><td class="num" id="LN1468">1468</td><td class="line"> <span class='comment'>/* Ensure we have valid settings */</span></td></tr>
+<tr class="codeline" data-linenumber="1469"><td class="num" id="LN1469">1469</td><td class="line"> <span class='macro'>g_assert (app-&gt;default_profile_id != NULL)<span class='macro_popup'>do { if (app-&gt;default_profile_id != ((void*)0)) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-app.c", 1469, ((const char*) (__func__<br>)), "app-&gt;default_profile_id != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1470"><td class="num" id="LN1470">1470</td><td class="line"> <span class='macro'>g_assert (app-&gt;system_font_desc != NULL)<span class='macro_popup'>do { if (app-&gt;system_font_desc != ((void*)0)) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-app.c", 1470, ((const char*) (__func__<br>)), "app-&gt;system_font_desc != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1471"><td class="num" id="LN1471">1471</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1472"><td class="num" id="LN1472">1472</td><td class="line"> terminal_accels_init ();</td></tr>
+<tr class="codeline" data-linenumber="1473"><td class="num" id="LN1473">1473</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1474"><td class="num" id="LN1474">1474</td><td class="line"><span class='directive'>#ifdef <span class='macro'>HAVE_SMCLIENT<span class='macro_popup'>1</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1475"><td class="num" id="LN1475">1475</td><td class="line"> EggSMClient *sm_client;</td></tr>
+<tr class="codeline" data-linenumber="1476"><td class="num" id="LN1476">1476</td><td class="line"> <span class='keyword'>char</span> *desktop_file;</td></tr>
+<tr class="codeline" data-linenumber="1477"><td class="num" id="LN1477">1477</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1478"><td class="num" id="LN1478">1478</td><td class="line"> desktop_file = g_build_filename (<span class='macro'>TERM_DATADIR<span class='macro_popup'>"/usr/local/share"</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1479"><td class="num" id="LN1479">1479</td><td class="line"> <span class='string_literal'>"applications"</span>,</td></tr>
+<tr class="codeline" data-linenumber="1480"><td class="num" id="LN1480">1480</td><td class="line"> <span class='macro'>PACKAGE<span class='macro_popup'>"mate-terminal"</span></span> <span class='string_literal'>".desktop"</span>,</td></tr>
+<tr class="codeline" data-linenumber="1481"><td class="num" id="LN1481">1481</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1482"><td class="num" id="LN1482">1482</td><td class="line"> egg_set_desktop_file_without_defaults (desktop_file);</td></tr>
+<tr class="codeline" data-linenumber="1483"><td class="num" id="LN1483">1483</td><td class="line"> g_free (desktop_file);</td></tr>
+<tr class="codeline" data-linenumber="1484"><td class="num" id="LN1484">1484</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1485"><td class="num" id="LN1485">1485</td><td class="line"> sm_client = egg_sm_client_get ();</td></tr>
+<tr class="codeline" data-linenumber="1486"><td class="num" id="LN1486">1486</td><td class="line"> <span class='macro'>g_signal_connect (sm_client, <span class='string_literal'>"save-state"</span>,<span class='macro_popup'>g_signal_connect_data ((sm_client), ("save-state"), (((GCallback<br>) (terminal_app_save_state_cb))), (app), ((void*)0), (GConnectFlags<br>) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1487"><td class="num" id="LN1487">1487</td><td class="line"> <span class='macro'>G_CALLBACK (terminal_app_save_state_cb), app)<span class='macro_popup'>g_signal_connect_data ((sm_client), ("save-state"), (((GCallback<br>) (terminal_app_save_state_cb))), (app), ((void*)0), (GConnectFlags<br>) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1488"><td class="num" id="LN1488">1488</td><td class="line"> <span class='macro'>g_signal_connect (sm_client, <span class='string_literal'>"quit"</span>,<span class='macro_popup'>g_signal_connect_data ((sm_client), ("quit"), (((GCallback) (<br>terminal_app_client_quit_cb))), (app), ((void*)0), (GConnectFlags<br>) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1489"><td class="num" id="LN1489">1489</td><td class="line"> <span class='macro'>G_CALLBACK (terminal_app_client_quit_cb), app)<span class='macro_popup'>g_signal_connect_data ((sm_client), ("quit"), (((GCallback) (<br>terminal_app_client_quit_cb))), (app), ((void*)0), (GConnectFlags<br>) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1490"><td class="num" id="LN1490">1490</td><td class="line"><span class='directive'>#endif /* HAVE_SMCLIENT */</span></td></tr>
+<tr class="codeline" data-linenumber="1491"><td class="num" id="LN1491">1491</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1492"><td class="num" id="LN1492">1492</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1493"><td class="num" id="LN1493">1493</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1494"><td class="num" id="LN1494">1494</td><td class="line">terminal_app_finalize (GObject *object)</td></tr>
+<tr class="codeline" data-linenumber="1495"><td class="num" id="LN1495">1495</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1496"><td class="num" id="LN1496">1496</td><td class="line"> TerminalApp *app = <span class='macro'>TERMINAL_APP (object)<span class='macro_popup'>((((TerminalApp*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((object)), ((terminal_app_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1497"><td class="num" id="LN1497">1497</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1498"><td class="num" id="LN1498">1498</td><td class="line"><span class='directive'>#ifdef <span class='macro'>HAVE_SMCLIENT<span class='macro_popup'>1</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1499"><td class="num" id="LN1499">1499</td><td class="line"> EggSMClient *sm_client;</td></tr>
+<tr class="codeline" data-linenumber="1500"><td class="num" id="LN1500">1500</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1501"><td class="num" id="LN1501">1501</td><td class="line"> sm_client = egg_sm_client_get ();</td></tr>
+<tr class="codeline" data-linenumber="1502"><td class="num" id="LN1502">1502</td><td class="line"> g_signal_handlers_disconnect_matched (sm_client, G_SIGNAL_MATCH_DATA,</td></tr>
+<tr class="codeline" data-linenumber="1503"><td class="num" id="LN1503">1503</td><td class="line"> 0, 0, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, app);</td></tr>
+<tr class="codeline" data-linenumber="1504"><td class="num" id="LN1504">1504</td><td class="line"><span class='directive'>#endif /* HAVE_SMCLIENT */</span></td></tr>
+<tr class="codeline" data-linenumber="1505"><td class="num" id="LN1505">1505</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1506"><td class="num" id="LN1506">1506</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (settings_global,<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_profile_list_notify_cb))), (app<br>))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1507"><td class="num" id="LN1507">1507</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_app_profile_list_notify_cb),<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_profile_list_notify_cb))), (app<br>))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1508"><td class="num" id="LN1508">1508</td><td class="line"> <span class='macro'>app)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_profile_list_notify_cb))), (app<br>))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1509"><td class="num" id="LN1509">1509</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (settings_global,<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_default_profile_notify_cb))),<br> (app))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1510"><td class="num" id="LN1510">1510</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_app_default_profile_notify_cb),<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_default_profile_notify_cb))),<br> (app))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1511"><td class="num" id="LN1511">1511</td><td class="line"> <span class='macro'>app)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_default_profile_notify_cb))),<br> (app))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1512"><td class="num" id="LN1512">1512</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (settings_global,<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_encoding_list_notify_cb))), (<br>app))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1513"><td class="num" id="LN1513">1513</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_app_encoding_list_notify_cb),<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_encoding_list_notify_cb))), (<br>app))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1514"><td class="num" id="LN1514">1514</td><td class="line"> <span class='macro'>app)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_encoding_list_notify_cb))), (<br>app))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1515"><td class="num" id="LN1515">1515</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (app-&gt;settings_font,<span class='macro_popup'>g_signal_handlers_disconnect_matched ((app-&gt;settings_font)<br>, (GSignalMatchType) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA<br>), 0, 0, ((void*)0), (((GCallback) (terminal_app_system_font_notify_cb<br>))), (app))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1516"><td class="num" id="LN1516">1516</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_app_system_font_notify_cb),<span class='macro_popup'>g_signal_handlers_disconnect_matched ((app-&gt;settings_font)<br>, (GSignalMatchType) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA<br>), 0, 0, ((void*)0), (((GCallback) (terminal_app_system_font_notify_cb<br>))), (app))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1517"><td class="num" id="LN1517">1517</td><td class="line"> <span class='macro'>app)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((app-&gt;settings_font)<br>, (GSignalMatchType) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA<br>), 0, 0, ((void*)0), (((GCallback) (terminal_app_system_font_notify_cb<br>))), (app))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1518"><td class="num" id="LN1518">1518</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (settings_global,<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_enable_menu_accels_notify_cb)<br>)), (app))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1519"><td class="num" id="LN1519">1519</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_app_enable_menu_accels_notify_cb),<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_enable_menu_accels_notify_cb)<br>)), (app))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1520"><td class="num" id="LN1520">1520</td><td class="line"> <span class='macro'>app)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_enable_menu_accels_notify_cb)<br>)), (app))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1521"><td class="num" id="LN1521">1521</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (settings_global,<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_enable_mnemonics_notify_cb)))<br>, (app))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1522"><td class="num" id="LN1522">1522</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_app_enable_mnemonics_notify_cb),<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_enable_mnemonics_notify_cb)))<br>, (app))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1523"><td class="num" id="LN1523">1523</td><td class="line"> <span class='macro'>app)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_enable_mnemonics_notify_cb)))<br>, (app))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1524"><td class="num" id="LN1524">1524</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1525"><td class="num" id="LN1525">1525</td><td class="line"> g_object_unref (settings_global);</td></tr>
+<tr class="codeline" data-linenumber="1526"><td class="num" id="LN1526">1526</td><td class="line"> g_object_unref (app-&gt;settings_font);</td></tr>
+<tr class="codeline" data-linenumber="1527"><td class="num" id="LN1527">1527</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1528"><td class="num" id="LN1528">1528</td><td class="line"> g_free (app-&gt;default_profile_id);</td></tr>
+<tr class="codeline" data-linenumber="1529"><td class="num" id="LN1529">1529</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1530"><td class="num" id="LN1530">1530</td><td class="line"> g_hash_table_destroy (app-&gt;profiles);</td></tr>
+<tr class="codeline" data-linenumber="1531"><td class="num" id="LN1531">1531</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1532"><td class="num" id="LN1532">1532</td><td class="line"> g_hash_table_destroy (app-&gt;encodings);</td></tr>
+<tr class="codeline" data-linenumber="1533"><td class="num" id="LN1533">1533</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1534"><td class="num" id="LN1534">1534</td><td class="line"> pango_font_description_free (app-&gt;system_font_desc);</td></tr>
+<tr class="codeline" data-linenumber="1535"><td class="num" id="LN1535">1535</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1536"><td class="num" id="LN1536">1536</td><td class="line"> terminal_accels_shutdown ();</td></tr>
+<tr class="codeline" data-linenumber="1537"><td class="num" id="LN1537">1537</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1538"><td class="num" id="LN1538">1538</td><td class="line"> <span class='macro'>G_OBJECT_CLASS (terminal_app_parent_class)<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((terminal_app_parent_class)), (((GType) ((20) &lt;&lt; (2<br>))))))))</span></span>-&gt;finalize (object);</td></tr>
+<tr class="codeline" data-linenumber="1539"><td class="num" id="LN1539">1539</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1540"><td class="num" id="LN1540">1540</td><td class="line"> global_app = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1541"><td class="num" id="LN1541">1541</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1542"><td class="num" id="LN1542">1542</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1543"><td class="num" id="LN1543">1543</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1544"><td class="num" id="LN1544">1544</td><td class="line">terminal_app_get_property (GObject *object,</td></tr>
+<tr class="codeline" data-linenumber="1545"><td class="num" id="LN1545">1545</td><td class="line"> guint prop_id,</td></tr>
+<tr class="codeline" data-linenumber="1546"><td class="num" id="LN1546">1546</td><td class="line"> GValue *value,</td></tr>
+<tr class="codeline" data-linenumber="1547"><td class="num" id="LN1547">1547</td><td class="line"> GParamSpec *pspec)</td></tr>
+<tr class="codeline" data-linenumber="1548"><td class="num" id="LN1548">1548</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1549"><td class="num" id="LN1549">1549</td><td class="line"> TerminalApp *app = <span class='macro'>TERMINAL_APP (object)<span class='macro_popup'>((((TerminalApp*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((object)), ((terminal_app_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1550"><td class="num" id="LN1550">1550</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1551"><td class="num" id="LN1551">1551</td><td class="line"> <span class='keyword'>switch</span> (prop_id)</td></tr>
+<tr class="codeline" data-linenumber="1552"><td class="num" id="LN1552">1552</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1553"><td class="num" id="LN1553">1553</td><td class="line"> <span class='keyword'>case</span> PROP_SYSTEM_FONT:</td></tr>
+<tr class="codeline" data-linenumber="1554"><td class="num" id="LN1554">1554</td><td class="line"> <span class='keyword'>if</span> (app-&gt;system_font_desc)</td></tr>
+<tr class="codeline" data-linenumber="1555"><td class="num" id="LN1555">1555</td><td class="line"> g_value_set_boxed (value, app-&gt;system_font_desc);</td></tr>
+<tr class="codeline" data-linenumber="1556"><td class="num" id="LN1556">1556</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="1557"><td class="num" id="LN1557">1557</td><td class="line"> g_value_take_boxed (value, pango_font_description_from_string (<span class='macro'>DEFAULT_MONOSPACE_FONT<span class='macro_popup'>("Monospace 10")</span></span>));</td></tr>
+<tr class="codeline" data-linenumber="1558"><td class="num" id="LN1558">1558</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1559"><td class="num" id="LN1559">1559</td><td class="line"> <span class='keyword'>case</span> PROP_ENABLE_MENU_BAR_ACCEL:</td></tr>
+<tr class="codeline" data-linenumber="1560"><td class="num" id="LN1560">1560</td><td class="line"> g_value_set_boolean (value, app-&gt;enable_menu_accels);</td></tr>
+<tr class="codeline" data-linenumber="1561"><td class="num" id="LN1561">1561</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1562"><td class="num" id="LN1562">1562</td><td class="line"> <span class='keyword'>case</span> PROP_ENABLE_MNEMONICS:</td></tr>
+<tr class="codeline" data-linenumber="1563"><td class="num" id="LN1563">1563</td><td class="line"> g_value_set_boolean (value, app-&gt;enable_mnemonics);</td></tr>
+<tr class="codeline" data-linenumber="1564"><td class="num" id="LN1564">1564</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1565"><td class="num" id="LN1565">1565</td><td class="line"> <span class='keyword'>case</span> PROP_DEFAULT_PROFILE:</td></tr>
+<tr class="codeline" data-linenumber="1566"><td class="num" id="LN1566">1566</td><td class="line"> g_value_set_object (value, app-&gt;default_profile);</td></tr>
+<tr class="codeline" data-linenumber="1567"><td class="num" id="LN1567">1567</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1568"><td class="num" id="LN1568">1568</td><td class="line"> <span class='keyword'>default</span>:</td></tr>
+<tr class="codeline" data-linenumber="1569"><td class="num" id="LN1569">1569</td><td class="line"> <span class='macro'>G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec)<span class='macro_popup'>do { GObject *_glib__object = (GObject*) ((object)); GParamSpec<br> *_glib__pspec = (GParamSpec*) ((pspec)); guint _glib__property_id<br> = ((prop_id)); g_warning ("%s:%d: invalid %s id %u for \"%s\" of type '%s' in '%s'"<br>, "terminal-app.c", 1569, ("property"), _glib__property_id, _glib__pspec<br>-&gt;name, g_type_name ((((((GTypeClass*) (((GTypeInstance*) (<br>_glib__pspec))-&gt;g_class))-&gt;g_type)))), (g_type_name (((<br>(((GTypeClass*) (((GTypeInstance*) (_glib__object))-&gt;g_class<br>))-&gt;g_type)))))); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1570"><td class="num" id="LN1570">1570</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1571"><td class="num" id="LN1571">1571</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1572"><td class="num" id="LN1572">1572</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1573"><td class="num" id="LN1573">1573</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1574"><td class="num" id="LN1574">1574</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1575"><td class="num" id="LN1575">1575</td><td class="line">terminal_app_set_property (GObject *object,</td></tr>
+<tr class="codeline" data-linenumber="1576"><td class="num" id="LN1576">1576</td><td class="line"> guint prop_id,</td></tr>
+<tr class="codeline" data-linenumber="1577"><td class="num" id="LN1577">1577</td><td class="line"> <span class='keyword'>const</span> GValue *value,</td></tr>
+<tr class="codeline" data-linenumber="1578"><td class="num" id="LN1578">1578</td><td class="line"> GParamSpec *pspec)</td></tr>
+<tr class="codeline" data-linenumber="1579"><td class="num" id="LN1579">1579</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1580"><td class="num" id="LN1580">1580</td><td class="line"> TerminalApp *app = <span class='macro'>TERMINAL_APP (object)<span class='macro_popup'>((((TerminalApp*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((object)), ((terminal_app_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1581"><td class="num" id="LN1581">1581</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1582"><td class="num" id="LN1582">1582</td><td class="line"> <span class='keyword'>switch</span> (prop_id)</td></tr>
+<tr class="codeline" data-linenumber="1583"><td class="num" id="LN1583">1583</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1584"><td class="num" id="LN1584">1584</td><td class="line"> <span class='keyword'>case</span> PROP_ENABLE_MENU_BAR_ACCEL:</td></tr>
+<tr class="codeline" data-linenumber="1585"><td class="num" id="LN1585">1585</td><td class="line"> app-&gt;enable_menu_accels = g_value_get_boolean (value);</td></tr>
+<tr class="codeline" data-linenumber="1586"><td class="num" id="LN1586">1586</td><td class="line"> g_settings_set_boolean (settings_global, <span class='macro'>ENABLE_MENU_BAR_ACCEL_KEY<span class='macro_popup'>"use-menu-accelerators"</span></span>, app-&gt;enable_menu_accels);</td></tr>
+<tr class="codeline" data-linenumber="1587"><td class="num" id="LN1587">1587</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1588"><td class="num" id="LN1588">1588</td><td class="line"> <span class='keyword'>case</span> PROP_ENABLE_MNEMONICS:</td></tr>
+<tr class="codeline" data-linenumber="1589"><td class="num" id="LN1589">1589</td><td class="line"> app-&gt;enable_mnemonics = g_value_get_boolean (value);</td></tr>
+<tr class="codeline" data-linenumber="1590"><td class="num" id="LN1590">1590</td><td class="line"> g_settings_set_boolean (settings_global, <span class='macro'>ENABLE_MNEMONICS_KEY<span class='macro_popup'>"use-mnemonics"</span></span>, app-&gt;enable_mnemonics);</td></tr>
+<tr class="codeline" data-linenumber="1591"><td class="num" id="LN1591">1591</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1592"><td class="num" id="LN1592">1592</td><td class="line"> <span class='keyword'>case</span> PROP_DEFAULT_PROFILE:</td></tr>
+<tr class="codeline" data-linenumber="1593"><td class="num" id="LN1593">1593</td><td class="line"> <span class='keyword'>case</span> PROP_SYSTEM_FONT:</td></tr>
+<tr class="codeline" data-linenumber="1594"><td class="num" id="LN1594">1594</td><td class="line"> <span class='comment'>/* not writable */</span></td></tr>
+<tr class="codeline" data-linenumber="1595"><td class="num" id="LN1595">1595</td><td class="line"> <span class='keyword'>default</span>:</td></tr>
+<tr class="codeline" data-linenumber="1596"><td class="num" id="LN1596">1596</td><td class="line"> <span class='macro'>G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec)<span class='macro_popup'>do { GObject *_glib__object = (GObject*) ((object)); GParamSpec<br> *_glib__pspec = (GParamSpec*) ((pspec)); guint _glib__property_id<br> = ((prop_id)); g_warning ("%s:%d: invalid %s id %u for \"%s\" of type '%s' in '%s'"<br>, "terminal-app.c", 1596, ("property"), _glib__property_id, _glib__pspec<br>-&gt;name, g_type_name ((((((GTypeClass*) (((GTypeInstance*) (<br>_glib__pspec))-&gt;g_class))-&gt;g_type)))), (g_type_name (((<br>(((GTypeClass*) (((GTypeInstance*) (_glib__object))-&gt;g_class<br>))-&gt;g_type)))))); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1597"><td class="num" id="LN1597">1597</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1598"><td class="num" id="LN1598">1598</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1599"><td class="num" id="LN1599">1599</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1600"><td class="num" id="LN1600">1600</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1601"><td class="num" id="LN1601">1601</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1602"><td class="num" id="LN1602">1602</td><td class="line">terminal_app_real_quit (TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="1603"><td class="num" id="LN1603">1603</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1604"><td class="num" id="LN1604">1604</td><td class="line"> gtk_main_quit();</td></tr>
+<tr class="codeline" data-linenumber="1605"><td class="num" id="LN1605">1605</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1606"><td class="num" id="LN1606">1606</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1607"><td class="num" id="LN1607">1607</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1608"><td class="num" id="LN1608">1608</td><td class="line">terminal_app_class_init (TerminalAppClass *klass)</td></tr>
+<tr class="codeline" data-linenumber="1609"><td class="num" id="LN1609">1609</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1610"><td class="num" id="LN1610">1610</td><td class="line"> GObjectClass *object_class = <span class='macro'>G_OBJECT_CLASS (klass)<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((klass)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1611"><td class="num" id="LN1611">1611</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1612"><td class="num" id="LN1612">1612</td><td class="line"> object_class-&gt;finalize = terminal_app_finalize;</td></tr>
+<tr class="codeline" data-linenumber="1613"><td class="num" id="LN1613">1613</td><td class="line"> object_class-&gt;get_property = terminal_app_get_property;</td></tr>
+<tr class="codeline" data-linenumber="1614"><td class="num" id="LN1614">1614</td><td class="line"> object_class-&gt;set_property = terminal_app_set_property;</td></tr>
+<tr class="codeline" data-linenumber="1615"><td class="num" id="LN1615">1615</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1616"><td class="num" id="LN1616">1616</td><td class="line"> klass-&gt;quit = terminal_app_real_quit;</td></tr>
+<tr class="codeline" data-linenumber="1617"><td class="num" id="LN1617">1617</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1618"><td class="num" id="LN1618">1618</td><td class="line"> signals[QUIT] =</td></tr>
+<tr class="codeline" data-linenumber="1619"><td class="num" id="LN1619">1619</td><td class="line"> g_signal_new (<span class='macro'>I_(<span class='string_literal'>"quit"</span>)<span class='macro_popup'>g_intern_static_string ("quit")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1620"><td class="num" id="LN1620">1620</td><td class="line"> <span class='macro'>G_OBJECT_CLASS_TYPE (object_class)<span class='macro_popup'>((((GTypeClass*) (object_class))-&gt;g_type))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1621"><td class="num" id="LN1621">1621</td><td class="line"> G_SIGNAL_RUN_LAST,</td></tr>
+<tr class="codeline" data-linenumber="1622"><td class="num" id="LN1622">1622</td><td class="line"> <span class='macro'>G_STRUCT_OFFSET (TerminalAppClass, quit)<span class='macro_popup'>((glong) __builtin_offsetof(TerminalAppClass, quit))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1623"><td class="num" id="LN1623">1623</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1624"><td class="num" id="LN1624">1624</td><td class="line"> g_cclosure_marshal_VOID__VOID,</td></tr>
+<tr class="codeline" data-linenumber="1625"><td class="num" id="LN1625">1625</td><td class="line"> <span class='macro'>G_TYPE_NONE<span class='macro_popup'>((GType) ((1) &lt;&lt; (2)))</span></span>, 0);</td></tr>
+<tr class="codeline" data-linenumber="1626"><td class="num" id="LN1626">1626</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1627"><td class="num" id="LN1627">1627</td><td class="line"> signals[PROFILE_LIST_CHANGED] =</td></tr>
+<tr class="codeline" data-linenumber="1628"><td class="num" id="LN1628">1628</td><td class="line"> g_signal_new (<span class='macro'>I_(<span class='string_literal'>"profile-list-changed"</span>)<span class='macro_popup'>g_intern_static_string ("profile-list-changed")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1629"><td class="num" id="LN1629">1629</td><td class="line"> <span class='macro'>G_OBJECT_CLASS_TYPE (object_class)<span class='macro_popup'>((((GTypeClass*) (object_class))-&gt;g_type))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1630"><td class="num" id="LN1630">1630</td><td class="line"> G_SIGNAL_RUN_LAST,</td></tr>
+<tr class="codeline" data-linenumber="1631"><td class="num" id="LN1631">1631</td><td class="line"> <span class='macro'>G_STRUCT_OFFSET (TerminalAppClass, profile_list_changed)<span class='macro_popup'>((glong) __builtin_offsetof(TerminalAppClass, profile_list_changed<br>))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1632"><td class="num" id="LN1632">1632</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1633"><td class="num" id="LN1633">1633</td><td class="line"> g_cclosure_marshal_VOID__VOID,</td></tr>
+<tr class="codeline" data-linenumber="1634"><td class="num" id="LN1634">1634</td><td class="line"> <span class='macro'>G_TYPE_NONE<span class='macro_popup'>((GType) ((1) &lt;&lt; (2)))</span></span>, 0);</td></tr>
+<tr class="codeline" data-linenumber="1635"><td class="num" id="LN1635">1635</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1636"><td class="num" id="LN1636">1636</td><td class="line"> signals[ENCODING_LIST_CHANGED] =</td></tr>
+<tr class="codeline" data-linenumber="1637"><td class="num" id="LN1637">1637</td><td class="line"> g_signal_new (<span class='macro'>I_(<span class='string_literal'>"encoding-list-changed"</span>)<span class='macro_popup'>g_intern_static_string ("encoding-list-changed")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1638"><td class="num" id="LN1638">1638</td><td class="line"> <span class='macro'>G_OBJECT_CLASS_TYPE (object_class)<span class='macro_popup'>((((GTypeClass*) (object_class))-&gt;g_type))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1639"><td class="num" id="LN1639">1639</td><td class="line"> G_SIGNAL_RUN_LAST,</td></tr>
+<tr class="codeline" data-linenumber="1640"><td class="num" id="LN1640">1640</td><td class="line"> <span class='macro'>G_STRUCT_OFFSET (TerminalAppClass, profile_list_changed)<span class='macro_popup'>((glong) __builtin_offsetof(TerminalAppClass, profile_list_changed<br>))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1641"><td class="num" id="LN1641">1641</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1642"><td class="num" id="LN1642">1642</td><td class="line"> g_cclosure_marshal_VOID__VOID,</td></tr>
+<tr class="codeline" data-linenumber="1643"><td class="num" id="LN1643">1643</td><td class="line"> <span class='macro'>G_TYPE_NONE<span class='macro_popup'>((GType) ((1) &lt;&lt; (2)))</span></span>, 0);</td></tr>
+<tr class="codeline" data-linenumber="1644"><td class="num" id="LN1644">1644</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1645"><td class="num" id="LN1645">1645</td><td class="line"> g_object_class_install_property</td></tr>
+<tr class="codeline" data-linenumber="1646"><td class="num" id="LN1646">1646</td><td class="line"> (object_class,</td></tr>
+<tr class="codeline" data-linenumber="1647"><td class="num" id="LN1647">1647</td><td class="line"> PROP_ENABLE_MENU_BAR_ACCEL,</td></tr>
+<tr class="codeline" data-linenumber="1648"><td class="num" id="LN1648">1648</td><td class="line"> g_param_spec_boolean (<span class='macro'>TERMINAL_APP_ENABLE_MENU_BAR_ACCEL<span class='macro_popup'>"enable-menu-accels"</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1649"><td class="num" id="LN1649">1649</td><td class="line"> <span class='macro'>DEFAULT_ENABLE_MENU_BAR_ACCEL<span class='macro_popup'>((!(0)))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1650"><td class="num" id="LN1650">1650</td><td class="line"> G_PARAM_READWRITE | G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB));</td></tr>
+<tr class="codeline" data-linenumber="1651"><td class="num" id="LN1651">1651</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1652"><td class="num" id="LN1652">1652</td><td class="line"> g_object_class_install_property</td></tr>
+<tr class="codeline" data-linenumber="1653"><td class="num" id="LN1653">1653</td><td class="line"> (object_class,</td></tr>
+<tr class="codeline" data-linenumber="1654"><td class="num" id="LN1654">1654</td><td class="line"> PROP_ENABLE_MNEMONICS,</td></tr>
+<tr class="codeline" data-linenumber="1655"><td class="num" id="LN1655">1655</td><td class="line"> g_param_spec_boolean (<span class='macro'>TERMINAL_APP_ENABLE_MNEMONICS<span class='macro_popup'>"enable-mnemonics"</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1656"><td class="num" id="LN1656">1656</td><td class="line"> <span class='macro'>DEFAULT_ENABLE_MNEMONICS<span class='macro_popup'>((!(0)))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1657"><td class="num" id="LN1657">1657</td><td class="line"> G_PARAM_READWRITE | G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB));</td></tr>
+<tr class="codeline" data-linenumber="1658"><td class="num" id="LN1658">1658</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1659"><td class="num" id="LN1659">1659</td><td class="line"> g_object_class_install_property</td></tr>
+<tr class="codeline" data-linenumber="1660"><td class="num" id="LN1660">1660</td><td class="line"> (object_class,</td></tr>
+<tr class="codeline" data-linenumber="1661"><td class="num" id="LN1661">1661</td><td class="line"> PROP_SYSTEM_FONT,</td></tr>
+<tr class="codeline" data-linenumber="1662"><td class="num" id="LN1662">1662</td><td class="line"> g_param_spec_boxed (<span class='macro'>TERMINAL_APP_SYSTEM_FONT<span class='macro_popup'>"system-font"</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1663"><td class="num" id="LN1663">1663</td><td class="line"> <span class='macro'>PANGO_TYPE_FONT_DESCRIPTION<span class='macro_popup'>(pango_font_description_get_type ())</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1664"><td class="num" id="LN1664">1664</td><td class="line"> G_PARAM_READABLE | G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB));</td></tr>
+<tr class="codeline" data-linenumber="1665"><td class="num" id="LN1665">1665</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1666"><td class="num" id="LN1666">1666</td><td class="line"> g_object_class_install_property</td></tr>
+<tr class="codeline" data-linenumber="1667"><td class="num" id="LN1667">1667</td><td class="line"> (object_class,</td></tr>
+<tr class="codeline" data-linenumber="1668"><td class="num" id="LN1668">1668</td><td class="line"> PROP_DEFAULT_PROFILE,</td></tr>
+<tr class="codeline" data-linenumber="1669"><td class="num" id="LN1669">1669</td><td class="line"> g_param_spec_object (<span class='macro'>TERMINAL_APP_DEFAULT_PROFILE<span class='macro_popup'>"default-profile"</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1670"><td class="num" id="LN1670">1670</td><td class="line"> <span class='macro'>TERMINAL_TYPE_PROFILE<span class='macro_popup'>(terminal_profile_get_type ())</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1671"><td class="num" id="LN1671">1671</td><td class="line"> G_PARAM_READABLE | G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB));</td></tr>
+<tr class="codeline" data-linenumber="1672"><td class="num" id="LN1672">1672</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1673"><td class="num" id="LN1673">1673</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1674"><td class="num" id="LN1674">1674</td><td class="line"><span class='comment'>/* Public API */</span></td></tr>
+<tr class="codeline" data-linenumber="1675"><td class="num" id="LN1675">1675</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1676"><td class="num" id="LN1676">1676</td><td class="line">TerminalApp*</td></tr>
+<tr class="codeline" data-linenumber="1677"><td class="num" id="LN1677">1677</td><td class="line">terminal_app_get (<span class='keyword'>void</span>)</td></tr>
+<tr class="codeline" data-linenumber="1678"><td class="num" id="LN1678">1678</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1679"><td class="num" id="LN1679">1679</td><td class="line"> <span class='keyword'>if</span> (global_app == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1680"><td class="num" id="LN1680">1680</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1681"><td class="num" id="LN1681">1681</td><td class="line"> g_object_new (<span class='macro'>TERMINAL_TYPE_APP<span class='macro_popup'>(terminal_app_get_type ())</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1682"><td class="num" id="LN1682">1682</td><td class="line"> <span class='macro'>g_assert (global_app != NULL)<span class='macro_popup'>do { if (global_app != ((void*)0)) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-app.c", 1682, ((const char*) (__func__<br>)), "global_app != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1683"><td class="num" id="LN1683">1683</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1684"><td class="num" id="LN1684">1684</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1685"><td class="num" id="LN1685">1685</td><td class="line"> <span class='keyword'>return</span> global_app;</td></tr>
+<tr class="codeline" data-linenumber="1686"><td class="num" id="LN1686">1686</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1687"><td class="num" id="LN1687">1687</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1688"><td class="num" id="LN1688">1688</td><td class="line"><span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1689"><td class="num" id="LN1689">1689</td><td class="line">terminal_app_shutdown (<span class='keyword'>void</span>)</td></tr>
+<tr class="codeline" data-linenumber="1690"><td class="num" id="LN1690">1690</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1691"><td class="num" id="LN1691">1691</td><td class="line"> <span class='keyword'>if</span> (global_app == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1692"><td class="num" id="LN1692">1692</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1693"><td class="num" id="LN1693">1693</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1694"><td class="num" id="LN1694">1694</td><td class="line"> g_object_unref (global_app);</td></tr>
+<tr class="codeline" data-linenumber="1695"><td class="num" id="LN1695">1695</td><td class="line"> <span class='macro'>g_assert (global_app == NULL)<span class='macro_popup'>do { if (global_app == ((void*)0)) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-app.c", 1695, ((const char*) (__func__<br>)), "global_app == NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1696"><td class="num" id="LN1696">1696</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1697"><td class="num" id="LN1697">1697</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1698"><td class="num" id="LN1698">1698</td><td class="line"><span class='comment'>/**</span></td></tr>
+<tr class="codeline" data-linenumber="1699"><td class="num" id="LN1699">1699</td><td class="line"> <span class='comment'>* terminal_app_handle_options:</span></td></tr>
+<tr class="codeline" data-linenumber="1700"><td class="num" id="LN1700">1700</td><td class="line"> <span class='comment'>* @app:</span></td></tr>
+<tr class="codeline" data-linenumber="1701"><td class="num" id="LN1701">1701</td><td class="line"> <span class='comment'>* @options: a #TerminalOptions</span></td></tr>
+<tr class="codeline" data-linenumber="1702"><td class="num" id="LN1702">1702</td><td class="line"> <span class='comment'>* @allow_resume: whether to merge the terminal configuration from the</span></td></tr>
+<tr class="codeline" data-linenumber="1703"><td class="num" id="LN1703">1703</td><td class="line"> <span class='comment'>* saved session on resume</span></td></tr>
+<tr class="codeline" data-linenumber="1704"><td class="num" id="LN1704">1704</td><td class="line"> <span class='comment'>* @error: a #GError to fill in</span></td></tr>
+<tr class="codeline" data-linenumber="1705"><td class="num" id="LN1705">1705</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="1706"><td class="num" id="LN1706">1706</td><td class="line"> <span class='comment'>* Processes @options. It loads or saves the terminal configuration, or</span></td></tr>
+<tr class="codeline" data-linenumber="1707"><td class="num" id="LN1707">1707</td><td class="line"> <span class='comment'>* opens the specified windows and tabs.</span></td></tr>
+<tr class="codeline" data-linenumber="1708"><td class="num" id="LN1708">1708</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="1709"><td class="num" id="LN1709">1709</td><td class="line"> <span class='comment'>* Returns: %TRUE if @options could be successfully handled, or %FALSE on</span></td></tr>
+<tr class="codeline" data-linenumber="1710"><td class="num" id="LN1710">1710</td><td class="line"> <span class='comment'>* error</span></td></tr>
+<tr class="codeline" data-linenumber="1711"><td class="num" id="LN1711">1711</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="1712"><td class="num" id="LN1712">1712</td><td class="line">gboolean</td></tr>
+<tr class="codeline" data-linenumber="1713"><td class="num" id="LN1713">1713</td><td class="line">terminal_app_handle_options (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="1714"><td class="num" id="LN1714">1714</td><td class="line"> TerminalOptions *options,</td></tr>
+<tr class="codeline" data-linenumber="1715"><td class="num" id="LN1715">1715</td><td class="line"> gboolean allow_resume,</td></tr>
+<tr class="codeline" data-linenumber="1716"><td class="num" id="LN1716">1716</td><td class="line"> GError **error)</td></tr>
+<tr class="codeline" data-linenumber="1717"><td class="num" id="LN1717">1717</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1718"><td class="num" id="LN1718">1718</td><td class="line"> GList *lw;</td></tr>
+<tr class="codeline" data-linenumber="1719"><td class="num" id="LN1719">1719</td><td class="line"> GdkScreen *gdk_screen;</td></tr>
+<tr class="codeline" data-linenumber="1720"><td class="num" id="LN1720">1720</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1721"><td class="num" id="LN1721">1721</td><td class="line"> gdk_screen = terminal_app_get_screen_by_display_name (options-&gt;display_name);</td></tr>
+<tr class="codeline" data-linenumber="1722"><td class="num" id="LN1722">1722</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1723"><td class="num" id="LN1723">1723</td><td class="line"> <span class='keyword'>if</span> (options-&gt;save_config)</td></tr>
+<tr class="codeline" data-linenumber="1724"><td class="num" id="LN1724">1724</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1725"><td class="num" id="LN1725">1725</td><td class="line"> <span class='keyword'>if</span> (options-&gt;remote_arguments)</td></tr>
+<tr class="codeline" data-linenumber="1726"><td class="num" id="LN1726">1726</td><td class="line"> <span class='keyword'>return</span> terminal_app_save_config_file (app, options-&gt;config_file, error);</td></tr>
+<tr class="codeline" data-linenumber="1727"><td class="num" id="LN1727">1727</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1728"><td class="num" id="LN1728">1728</td><td class="line"> g_set_error_literal (error, <span class='macro'>TERMINAL_OPTION_ERROR<span class='macro_popup'>(g_quark_from_static_string ("terminal-option-error"))</span></span>, TERMINAL_OPTION_ERROR_NOT_IN_FACTORY,</td></tr>
+<tr class="codeline" data-linenumber="1729"><td class="num" id="LN1729">1729</td><td class="line"> <span class='string_literal'>"Cannot use \"--save-config\" when starting the factory process"</span>);</td></tr>
+<tr class="codeline" data-linenumber="1730"><td class="num" id="LN1730">1730</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1731"><td class="num" id="LN1731">1731</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1732"><td class="num" id="LN1732">1732</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1733"><td class="num" id="LN1733">1733</td><td class="line"> <span class='keyword'>if</span> (options-&gt;load_config)</td></tr>
+<tr class="codeline" data-linenumber="1734"><td class="num" id="LN1734">1734</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1735"><td class="num" id="LN1735">1735</td><td class="line"> GKeyFile *key_file;</td></tr>
+<tr class="codeline" data-linenumber="1736"><td class="num" id="LN1736">1736</td><td class="line"> gboolean result;</td></tr>
+<tr class="codeline" data-linenumber="1737"><td class="num" id="LN1737">1737</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1738"><td class="num" id="LN1738">1738</td><td class="line"> key_file = g_key_file_new ();</td></tr>
+<tr class="codeline" data-linenumber="1739"><td class="num" id="LN1739">1739</td><td class="line"> result = g_key_file_load_from_file (key_file, options-&gt;config_file, 0, error) &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="1740"><td class="num" id="LN1740">1740</td><td class="line"> terminal_options_merge_config (options, key_file, SOURCE_DEFAULT, error);</td></tr>
+<tr class="codeline" data-linenumber="1741"><td class="num" id="LN1741">1741</td><td class="line"> g_key_file_free (key_file);</td></tr>
+<tr class="codeline" data-linenumber="1742"><td class="num" id="LN1742">1742</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1743"><td class="num" id="LN1743">1743</td><td class="line"> <span class='keyword'>if</span> (!result)</td></tr>
+<tr class="codeline" data-linenumber="1744"><td class="num" id="LN1744">1744</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1745"><td class="num" id="LN1745">1745</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1746"><td class="num" id="LN1746">1746</td><td class="line"> <span class='comment'>/* fall-through on success */</span></td></tr>
+<tr class="codeline" data-linenumber="1747"><td class="num" id="LN1747">1747</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1748"><td class="num" id="LN1748">1748</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1749"><td class="num" id="LN1749">1749</td><td class="line"><span class='directive'>#ifdef <span class='macro'>HAVE_SMCLIENT<span class='macro_popup'>1</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1750"><td class="num" id="LN1750">1750</td><td class="line"> EggSMClient *sm_client;</td></tr>
+<tr class="codeline" data-linenumber="1751"><td class="num" id="LN1751">1751</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1752"><td class="num" id="LN1752">1752</td><td class="line"> sm_client = egg_sm_client_get ();</td></tr>
+<tr class="codeline" data-linenumber="1753"><td class="num" id="LN1753">1753</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1754"><td class="num" id="LN1754">1754</td><td class="line"> <span class='keyword'>if</span> (allow_resume &amp;&amp; egg_sm_client_is_resumed (sm_client))</td></tr>
+<tr class="codeline" data-linenumber="1755"><td class="num" id="LN1755">1755</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1756"><td class="num" id="LN1756">1756</td><td class="line"> GKeyFile *key_file;</td></tr>
+<tr class="codeline" data-linenumber="1757"><td class="num" id="LN1757">1757</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1758"><td class="num" id="LN1758">1758</td><td class="line"> key_file = egg_sm_client_get_state_file (sm_client);</td></tr>
+<tr class="codeline" data-linenumber="1759"><td class="num" id="LN1759">1759</td><td class="line"> <span class='keyword'>if</span> (key_file != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span> &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="1760"><td class="num" id="LN1760">1760</td><td class="line"> !terminal_options_merge_config (options, key_file, SOURCE_SESSION, error))</td></tr>
+<tr class="codeline" data-linenumber="1761"><td class="num" id="LN1761">1761</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1762"><td class="num" id="LN1762">1762</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1763"><td class="num" id="LN1763">1763</td><td class="line"><span class='directive'>#endif /* HAVE_SMCLIENT */</span></td></tr>
+<tr class="codeline" data-linenumber="1764"><td class="num" id="LN1764">1764</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1765"><td class="num" id="LN1765">1765</td><td class="line"> <span class='comment'>/* Make sure we open at least one window */</span></td></tr>
+<tr class="codeline" data-linenumber="1766"><td class="num" id="LN1766">1766</td><td class="line"> terminal_options_ensure_window (options);</td></tr>
+<tr class="codeline" data-linenumber="1767"><td class="num" id="LN1767">1767</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1768"><td class="num" id="LN1768">1768</td><td class="line"> <span class='keyword'>if</span> (options-&gt;startup_id != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1769"><td class="num" id="LN1769">1769</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_FACTORY,<span class='macro_popup'>do { if (0) g_printerr("Startup ID is '%s'\n", options-&gt;startup_id<br>); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1770"><td class="num" id="LN1770">1770</td><td class="line"> <span class='string_literal'><span class='macro'>"Startup ID is '%s'\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("Startup ID is '%s'\n", options-&gt;startup_id<br>); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1771"><td class="num" id="LN1771">1771</td><td class="line"> <span class='macro'>options-&gt;startup_id)<span class='macro_popup'>do { if (0) g_printerr("Startup ID is '%s'\n", options-&gt;startup_id<br>); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1772"><td class="num" id="LN1772">1772</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1773"><td class="num" id="LN1773">1773</td><td class="line"> <span class='keyword'>for</span> (lw = options-&gt;initial_windows; lw != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; lw = lw-&gt;next)</td></tr>
+<tr class="codeline" data-linenumber="1774"><td class="num" id="LN1774">1774</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1775"><td class="num" id="LN1775">1775</td><td class="line"> InitialWindow *iw = lw-&gt;data;</td></tr>
+<tr class="codeline" data-linenumber="1776"><td class="num" id="LN1776">1776</td><td class="line"> TerminalWindow *window = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1777"><td class="num" id="LN1777">1777</td><td class="line"> GList *lt;</td></tr>
+<tr class="codeline" data-linenumber="1778"><td class="num" id="LN1778">1778</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1779"><td class="num" id="LN1779">1779</td><td class="line"> <span class='macro'>g_assert (iw-&gt;tabs)<span class='macro_popup'>do { if (iw-&gt;tabs) ; else g_assertion_message_expr (((gchar<br>*) 0), "terminal-app.c", 1779, ((const char*) (__func__)), "iw-&gt;tabs"<br>); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1780"><td class="num" id="LN1780">1780</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1781"><td class="num" id="LN1781">1781</td><td class="line"> <span class='keyword'>if</span> ( lw == options-&gt;initial_windows &amp;&amp; ((InitialTab *)iw-&gt;tabs-&gt;data)-&gt;attach_window )</td></tr>
+<tr class="codeline" data-linenumber="1782"><td class="num" id="LN1782">1782</td><td class="line"> window = terminal_app_get_current_window(app, gdk_screen, options-&gt;initial_workspace);</td></tr>
+<tr class="codeline" data-linenumber="1783"><td class="num" id="LN1783">1783</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1784"><td class="num" id="LN1784">1784</td><td class="line"> <span class='keyword'>if</span> (!window)</td></tr>
+<tr class="codeline" data-linenumber="1785"><td class="num" id="LN1785">1785</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1786"><td class="num" id="LN1786">1786</td><td class="line"> <span class='comment'>/* Create &amp; setup new window */</span></td></tr>
+<tr class="codeline" data-linenumber="1787"><td class="num" id="LN1787">1787</td><td class="line"> window = terminal_app_new_window (app, gdk_screen);</td></tr>
+<tr class="codeline" data-linenumber="1788"><td class="num" id="LN1788">1788</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1789"><td class="num" id="LN1789">1789</td><td class="line"> <span class='comment'>/* Restored windows shouldn't demand attention; see bug #586308. */</span></td></tr>
+<tr class="codeline" data-linenumber="1790"><td class="num" id="LN1790">1790</td><td class="line"> <span class='keyword'>if</span> (iw-&gt;source_tag == SOURCE_SESSION)</td></tr>
+<tr class="codeline" data-linenumber="1791"><td class="num" id="LN1791">1791</td><td class="line"> terminal_window_set_is_restored (window);</td></tr>
+<tr class="codeline" data-linenumber="1792"><td class="num" id="LN1792">1792</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1793"><td class="num" id="LN1793">1793</td><td class="line"> <span class='keyword'>if</span> (options-&gt;startup_id != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1794"><td class="num" id="LN1794">1794</td><td class="line"> gtk_window_set_startup_id (<span class='macro'>GTK_WINDOW (window)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_window_get_type ()))))))</span></span>, options-&gt;startup_id);</td></tr>
+<tr class="codeline" data-linenumber="1795"><td class="num" id="LN1795">1795</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1796"><td class="num" id="LN1796">1796</td><td class="line"> <span class='comment'>/* Overwrite the default, unique window role set in terminal_window_init */</span></td></tr>
+<tr class="codeline" data-linenumber="1797"><td class="num" id="LN1797">1797</td><td class="line"> <span class='keyword'>if</span> (iw-&gt;role)</td></tr>
+<tr class="codeline" data-linenumber="1798"><td class="num" id="LN1798">1798</td><td class="line"> gtk_window_set_role (<span class='macro'>GTK_WINDOW (window)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_window_get_type ()))))))</span></span>, iw-&gt;role);</td></tr>
+<tr class="codeline" data-linenumber="1799"><td class="num" id="LN1799">1799</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1800"><td class="num" id="LN1800">1800</td><td class="line"> <span class='keyword'>if</span> (iw-&gt;force_menubar_state)</td></tr>
+<tr class="codeline" data-linenumber="1801"><td class="num" id="LN1801">1801</td><td class="line"> terminal_window_set_menubar_visible (window, iw-&gt;menubar_state);</td></tr>
+<tr class="codeline" data-linenumber="1802"><td class="num" id="LN1802">1802</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1803"><td class="num" id="LN1803">1803</td><td class="line"> <span class='keyword'>if</span> (iw-&gt;start_fullscreen)</td></tr>
+<tr class="codeline" data-linenumber="1804"><td class="num" id="LN1804">1804</td><td class="line"> gtk_window_fullscreen (<span class='macro'>GTK_WINDOW (window)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_window_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1805"><td class="num" id="LN1805">1805</td><td class="line"> <span class='keyword'>if</span> (iw-&gt;start_maximized)</td></tr>
+<tr class="codeline" data-linenumber="1806"><td class="num" id="LN1806">1806</td><td class="line"> gtk_window_maximize (<span class='macro'>GTK_WINDOW (window)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_window_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1807"><td class="num" id="LN1807">1807</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1808"><td class="num" id="LN1808">1808</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1809"><td class="num" id="LN1809">1809</td><td class="line"> <span class='comment'>/* Now add the tabs */</span></td></tr>
+<tr class="codeline" data-linenumber="1810"><td class="num" id="LN1810">1810</td><td class="line"> <span class='keyword'>for</span> (lt = iw-&gt;tabs; lt != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; lt = lt-&gt;next)</td></tr>
+<tr class="codeline" data-linenumber="1811"><td class="num" id="LN1811">1811</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1812"><td class="num" id="LN1812">1812</td><td class="line"> InitialTab *it = lt-&gt;data;</td></tr>
+<tr class="codeline" data-linenumber="1813"><td class="num" id="LN1813">1813</td><td class="line"> TerminalProfile *profile = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1814"><td class="num" id="LN1814">1814</td><td class="line"> TerminalScreen *screen;</td></tr>
+<tr class="codeline" data-linenumber="1815"><td class="num" id="LN1815">1815</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *profile_name;</td></tr>
+<tr class="codeline" data-linenumber="1816"><td class="num" id="LN1816">1816</td><td class="line"> gboolean profile_is_id;</td></tr>
+<tr class="codeline" data-linenumber="1817"><td class="num" id="LN1817">1817</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1818"><td class="num" id="LN1818">1818</td><td class="line"> <span class='keyword'>if</span> (it-&gt;profile)</td></tr>
+<tr class="codeline" data-linenumber="1819"><td class="num" id="LN1819">1819</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1820"><td class="num" id="LN1820">1820</td><td class="line"> profile_name = it-&gt;profile;</td></tr>
+<tr class="codeline" data-linenumber="1821"><td class="num" id="LN1821">1821</td><td class="line"> profile_is_id = it-&gt;profile_is_id;</td></tr>
+<tr class="codeline" data-linenumber="1822"><td class="num" id="LN1822">1822</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1823"><td class="num" id="LN1823">1823</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="1824"><td class="num" id="LN1824">1824</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1825"><td class="num" id="LN1825">1825</td><td class="line"> profile_name = options-&gt;default_profile;</td></tr>
+<tr class="codeline" data-linenumber="1826"><td class="num" id="LN1826">1826</td><td class="line"> profile_is_id = options-&gt;default_profile_is_id;</td></tr>
+<tr class="codeline" data-linenumber="1827"><td class="num" id="LN1827">1827</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1828"><td class="num" id="LN1828">1828</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1829"><td class="num" id="LN1829">1829</td><td class="line"> <span class='keyword'>if</span> (profile_name)</td></tr>
+<tr class="codeline" data-linenumber="1830"><td class="num" id="LN1830">1830</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1831"><td class="num" id="LN1831">1831</td><td class="line"> <span class='keyword'>if</span> (profile_is_id)</td></tr>
+<tr class="codeline" data-linenumber="1832"><td class="num" id="LN1832">1832</td><td class="line"> profile = terminal_app_get_profile_by_name (app, profile_name);</td></tr>
+<tr class="codeline" data-linenumber="1833"><td class="num" id="LN1833">1833</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="1834"><td class="num" id="LN1834">1834</td><td class="line"> profile = terminal_app_get_profile_by_visible_name (app, profile_name);</td></tr>
+<tr class="codeline" data-linenumber="1835"><td class="num" id="LN1835">1835</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1836"><td class="num" id="LN1836">1836</td><td class="line"> <span class='keyword'>if</span> (profile == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1837"><td class="num" id="LN1837">1837</td><td class="line"> g_printerr (<span class='macro'>_(<span class='string_literal'>"No such profile \"%s\", using default profile\n"</span>)<span class='macro_popup'>gettext ("No such profile \"%s\", using default profile\n")</span></span>, it-&gt;profile);</td></tr>
+<tr class="codeline" data-linenumber="1838"><td class="num" id="LN1838">1838</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1839"><td class="num" id="LN1839">1839</td><td class="line"> <span class='keyword'>if</span> (profile == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1840"><td class="num" id="LN1840">1840</td><td class="line"> profile = terminal_app_get_profile_for_new_term (app);</td></tr>
+<tr class="codeline" data-linenumber="1841"><td class="num" id="LN1841">1841</td><td class="line"> <span class='macro'>g_assert (profile)<span class='macro_popup'>do { if (profile) ; else g_assertion_message_expr (((gchar*) 0<br>), "terminal-app.c", 1841, ((const char*) (__func__)), "profile"<br>); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1842"><td class="num" id="LN1842">1842</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1843"><td class="num" id="LN1843">1843</td><td class="line"> screen = terminal_app_new_terminal (app, window, profile,</td></tr>
+<tr class="codeline" data-linenumber="1844"><td class="num" id="LN1844">1844</td><td class="line"> it-&gt;exec_argv ? it-&gt;exec_argv : options-&gt;exec_argv,</td></tr>
+<tr class="codeline" data-linenumber="1845"><td class="num" id="LN1845">1845</td><td class="line"> it-&gt;title ? it-&gt;title : options-&gt;default_title,</td></tr>
+<tr class="codeline" data-linenumber="1846"><td class="num" id="LN1846">1846</td><td class="line"> it-&gt;working_dir ? it-&gt;working_dir : options-&gt;default_working_dir,</td></tr>
+<tr class="codeline" data-linenumber="1847"><td class="num" id="LN1847">1847</td><td class="line"> options-&gt;env,</td></tr>
+<tr class="codeline" data-linenumber="1848"><td class="num" id="LN1848">1848</td><td class="line"> it-&gt;zoom_set ? it-&gt;zoom : options-&gt;zoom);</td></tr>
+<tr class="codeline" data-linenumber="1849"><td class="num" id="LN1849">1849</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1850"><td class="num" id="LN1850">1850</td><td class="line"> <span class='keyword'>if</span> (it-&gt;active)</td></tr>
+<tr class="codeline" data-linenumber="1851"><td class="num" id="LN1851">1851</td><td class="line"> terminal_window_switch_screen (window, screen);</td></tr>
+<tr class="codeline" data-linenumber="1852"><td class="num" id="LN1852">1852</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1853"><td class="num" id="LN1853">1853</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1854"><td class="num" id="LN1854">1854</td><td class="line"> <span class='keyword'>if</span> (iw-&gt;geometry)</td></tr>
+<tr class="codeline" data-linenumber="1855"><td class="num" id="LN1855">1855</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1856"><td class="num" id="LN1856">1856</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_GEOMETRY,<span class='macro_popup'>do { if (0) g_printerr("[window %p] applying geometry %s\n", window<br>, iw-&gt;geometry); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1857"><td class="num" id="LN1857">1857</td><td class="line"> <span class='string_literal'><span class='macro'>"[window %p] applying geometry %s\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("[window %p] applying geometry %s\n", window<br>, iw-&gt;geometry); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1858"><td class="num" id="LN1858">1858</td><td class="line"> <span class='macro'>window, iw-&gt;geometry)<span class='macro_popup'>do { if (0) g_printerr("[window %p] applying geometry %s\n", window<br>, iw-&gt;geometry); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1859"><td class="num" id="LN1859">1859</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1860"><td class="num" id="LN1860">1860</td><td class="line"> <span class='keyword'>if</span> (!terminal_window_update_size_set_geometry (window,</td></tr>
+<tr class="codeline" data-linenumber="1861"><td class="num" id="LN1861">1861</td><td class="line"> terminal_window_get_active (window),</td></tr>
+<tr class="codeline" data-linenumber="1862"><td class="num" id="LN1862">1862</td><td class="line"> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1863"><td class="num" id="LN1863">1863</td><td class="line"> iw-&gt;geometry))</td></tr>
+<tr class="codeline" data-linenumber="1864"><td class="num" id="LN1864">1864</td><td class="line"> g_printerr (<span class='macro'>_(<span class='string_literal'>"Invalid geometry string \"%s\"\n"</span>)<span class='macro_popup'>gettext ("Invalid geometry string \"%s\"\n")</span></span>, iw-&gt;geometry);</td></tr>
+<tr class="codeline" data-linenumber="1865"><td class="num" id="LN1865">1865</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1866"><td class="num" id="LN1866">1866</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1867"><td class="num" id="LN1867">1867</td><td class="line"> gtk_window_present (<span class='macro'>GTK_WINDOW (window)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_window_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1868"><td class="num" id="LN1868">1868</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1869"><td class="num" id="LN1869">1869</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1870"><td class="num" id="LN1870">1870</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1871"><td class="num" id="LN1871">1871</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1872"><td class="num" id="LN1872">1872</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1873"><td class="num" id="LN1873">1873</td><td class="line">TerminalWindow *</td></tr>
+<tr class="codeline" data-linenumber="1874"><td class="num" id="LN1874">1874</td><td class="line">terminal_app_new_window (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="1875"><td class="num" id="LN1875">1875</td><td class="line"> GdkScreen *screen)</td></tr>
+<tr class="codeline" data-linenumber="1876"><td class="num" id="LN1876">1876</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1877"><td class="num" id="LN1877">1877</td><td class="line"> TerminalWindow *window;</td></tr>
+<tr class="codeline" data-linenumber="1878"><td class="num" id="LN1878">1878</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1879"><td class="num" id="LN1879">1879</td><td class="line"> window = terminal_window_new ();</td></tr>
+<tr class="codeline" data-linenumber="1880"><td class="num" id="LN1880">1880</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1881"><td class="num" id="LN1881">1881</td><td class="line"> app-&gt;windows = g_list_append (app-&gt;windows, window);</td></tr>
+<tr class="codeline" data-linenumber="1882"><td class="num" id="LN1882">1882</td><td class="line"> <span class='macro'>g_signal_connect (window, <span class='string_literal'>"destroy"</span>,<span class='macro_popup'>g_signal_connect_data ((window), ("destroy"), (((GCallback) (<br>terminal_window_destroyed))), (app), ((void*)0), (GConnectFlags<br>) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1883"><td class="num" id="LN1883">1883</td><td class="line"> <span class='macro'>G_CALLBACK (terminal_window_destroyed), app)<span class='macro_popup'>g_signal_connect_data ((window), ("destroy"), (((GCallback) (<br>terminal_window_destroyed))), (app), ((void*)0), (GConnectFlags<br>) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1884"><td class="num" id="LN1884">1884</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1885"><td class="num" id="LN1885">1885</td><td class="line"> <span class='keyword'>if</span> (screen)</td></tr>
+<tr class="codeline" data-linenumber="1886"><td class="num" id="LN1886">1886</td><td class="line"> gtk_window_set_screen (<span class='macro'>GTK_WINDOW (window)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_window_get_type ()))))))</span></span>, screen);</td></tr>
+<tr class="codeline" data-linenumber="1887"><td class="num" id="LN1887">1887</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1888"><td class="num" id="LN1888">1888</td><td class="line"> <span class='keyword'>return</span> window;</td></tr>
+<tr class="codeline" data-linenumber="1889"><td class="num" id="LN1889">1889</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1890"><td class="num" id="LN1890">1890</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1891"><td class="num" id="LN1891">1891</td><td class="line">TerminalScreen *</td></tr>
+<tr class="codeline" data-linenumber="1892"><td class="num" id="LN1892">1892</td><td class="line">terminal_app_new_terminal (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="1893"><td class="num" id="LN1893">1893</td><td class="line"> TerminalWindow *window,</td></tr>
+<tr class="codeline" data-linenumber="1894"><td class="num" id="LN1894">1894</td><td class="line"> TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1895"><td class="num" id="LN1895">1895</td><td class="line"> <span class='keyword'>char</span> **override_command,</td></tr>
+<tr class="codeline" data-linenumber="1896"><td class="num" id="LN1896">1896</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *title,</td></tr>
+<tr class="codeline" data-linenumber="1897"><td class="num" id="LN1897">1897</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *working_dir,</td></tr>
+<tr class="codeline" data-linenumber="1898"><td class="num" id="LN1898">1898</td><td class="line"> <span class='keyword'>char</span> **child_env,</td></tr>
+<tr class="codeline" data-linenumber="1899"><td class="num" id="LN1899">1899</td><td class="line"> <span class='keyword'>double</span> zoom)</td></tr>
+<tr class="codeline" data-linenumber="1900"><td class="num" id="LN1900">1900</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1901"><td class="num" id="LN1901">1901</td><td class="line"> TerminalScreen *screen;</td></tr>
+<tr class="codeline" data-linenumber="1902"><td class="num" id="LN1902">1902</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1903"><td class="num" id="LN1903">1903</td><td class="line"> <span class='macro'>g_return_val_if_fail (TERMINAL_IS_APP (app), NULL)<span class='macro_popup'>do { if (((((__extension__ ({ GTypeInstance *__inst = (GTypeInstance<br>*) ((app)); GType __t = ((terminal_app_get_type ())); gboolean<br> __r; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; })))))) { }<br> else { g_return_if_fail_warning (((gchar*) 0), ((const char*<br>) (__func__)), "TERMINAL_IS_APP (app)"); return (((void*)0));<br> } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1904"><td class="num" id="LN1904">1904</td><td class="line"> <span class='macro'>g_return_val_if_fail (TERMINAL_IS_WINDOW (window), NULL)<span class='macro_popup'>do { if (((((__extension__ ({ GTypeInstance *__inst = (GTypeInstance<br>*) ((window)); GType __t = ((terminal_window_get_type ())); gboolean<br> __r; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; })))))) { }<br> else { g_return_if_fail_warning (((gchar*) 0), ((const char*<br>) (__func__)), "TERMINAL_IS_WINDOW (window)"); return (((void<br>*)0)); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1905"><td class="num" id="LN1905">1905</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1906"><td class="num" id="LN1906">1906</td><td class="line"> screen = terminal_screen_new (profile, override_command, title,</td></tr>
+<tr class="codeline" data-linenumber="1907"><td class="num" id="LN1907">1907</td><td class="line"> working_dir, child_env, zoom);</td></tr>
+<tr class="codeline" data-linenumber="1908"><td class="num" id="LN1908">1908</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1909"><td class="num" id="LN1909">1909</td><td class="line"> terminal_window_add_screen (window, screen, -1);</td></tr>
+<tr class="codeline" data-linenumber="1910"><td class="num" id="LN1910">1910</td><td class="line"> terminal_window_switch_screen (window, screen);</td></tr>
+<tr class="codeline" data-linenumber="1911"><td class="num" id="LN1911">1911</td><td class="line"> gtk_widget_grab_focus (<span class='macro'>GTK_WIDGET (screen)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((screen)), ((gtk_widget_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1912"><td class="num" id="LN1912">1912</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1913"><td class="num" id="LN1913">1913</td><td class="line"> <span class='keyword'>return</span> screen;</td></tr>
+<tr class="codeline" data-linenumber="1914"><td class="num" id="LN1914">1914</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1915"><td class="num" id="LN1915">1915</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1916"><td class="num" id="LN1916">1916</td><td class="line"><span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1917"><td class="num" id="LN1917">1917</td><td class="line">terminal_app_edit_profile (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="1918"><td class="num" id="LN1918">1918</td><td class="line"> TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1919"><td class="num" id="LN1919">1919</td><td class="line"> GtkWindow *transient_parent,</td></tr>
+<tr class="codeline" data-linenumber="1920"><td class="num" id="LN1920">1920</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *widget_name)</td></tr>
+<tr class="codeline" data-linenumber="1921"><td class="num" id="LN1921">1921</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1922"><td class="num" id="LN1922">1922</td><td class="line"> terminal_profile_edit (profile, transient_parent, widget_name);</td></tr>
+<tr class="codeline" data-linenumber="1923"><td class="num" id="LN1923">1923</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1924"><td class="num" id="LN1924">1924</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1925"><td class="num" id="LN1925">1925</td><td class="line"><span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1926"><td class="num" id="LN1926">1926</td><td class="line">terminal_app_edit_keybindings (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="1927"><td class="num" id="LN1927">1927</td><td class="line"> GtkWindow *transient_parent)</td></tr>
+<tr class="codeline" data-linenumber="1928"><td class="num" id="LN1928">1928</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1929"><td class="num" id="LN1929">1929</td><td class="line"> terminal_edit_keys_dialog_show (transient_parent);</td></tr>
+<tr class="codeline" data-linenumber="1930"><td class="num" id="LN1930">1930</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1931"><td class="num" id="LN1931">1931</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1932"><td class="num" id="LN1932">1932</td><td class="line"><span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1933"><td class="num" id="LN1933">1933</td><td class="line">terminal_app_edit_encodings (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="1934"><td class="num" id="LN1934">1934</td><td class="line"> GtkWindow *transient_parent)</td></tr>
+<tr class="codeline" data-linenumber="1935"><td class="num" id="LN1935">1935</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1936"><td class="num" id="LN1936">1936</td><td class="line"> terminal_encoding_dialog_show (transient_parent);</td></tr>
+<tr class="codeline" data-linenumber="1937"><td class="num" id="LN1937">1937</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1938"><td class="num" id="LN1938">1938</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1939"><td class="num" id="LN1939">1939</td><td class="line"><span class='comment'>/*</span></td></tr>
+<tr class="codeline" data-linenumber="1940"><td class="num" id="LN1940">1940</td><td class="line"><span class='comment'>* Get the window in the given screen and workspace. If nothing is found,</span></td></tr>
+<tr class="codeline" data-linenumber="1941"><td class="num" id="LN1941">1941</td><td class="line"><span class='comment'>* a NULL is returned.</span></td></tr>
+<tr class="codeline" data-linenumber="1942"><td class="num" id="LN1942">1942</td><td class="line"><span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="1943"><td class="num" id="LN1943">1943</td><td class="line">TerminalWindow *</td></tr>
+<tr class="codeline" data-linenumber="1944"><td class="num" id="LN1944">1944</td><td class="line">terminal_app_get_current_window (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="1945"><td class="num" id="LN1945">1945</td><td class="line"> GdkScreen *from_screen,</td></tr>
+<tr class="codeline" data-linenumber="1946"><td class="num" id="LN1946">1946</td><td class="line"> <span class='keyword'>int</span> workspace)</td></tr>
+<tr class="codeline" data-linenumber="1947"><td class="num" id="LN1947">1947</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1948"><td class="num" id="LN1948">1948</td><td class="line"> GList *res = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1949"><td class="num" id="LN1949">1949</td><td class="line"> TerminalWindow *ret = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1950"><td class="num" id="LN1950">1950</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1951"><td class="num" id="LN1951">1951</td><td class="line"> <span class='keyword'>if</span> (app-&gt;windows == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1952"><td class="num" id="LN1952">1952</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1953"><td class="num" id="LN1953">1953</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1954"><td class="num" id="LN1954">1954</td><td class="line"> res = g_list_last (app-&gt;windows);</td></tr>
+<tr class="codeline" data-linenumber="1955"><td class="num" id="LN1955">1955</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1956"><td class="num" id="LN1956">1956</td><td class="line"> <span class='macro'>g_assert (from_screen != NULL)<span class='macro_popup'>do { if (from_screen != ((void*)0)) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-app.c", 1956, ((const char*) (__func__<br>)), "from_screen != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1957"><td class="num" id="LN1957">1957</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1958"><td class="num" id="LN1958">1958</td><td class="line"> <span class='keyword'>while</span> (res)</td></tr>
+<tr class="codeline" data-linenumber="1959"><td class="num" id="LN1959">1959</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1960"><td class="num" id="LN1960">1960</td><td class="line"> <span class='keyword'>int</span> win_workspace;</td></tr>
+<tr class="codeline" data-linenumber="1961"><td class="num" id="LN1961">1961</td><td class="line"> <span class='keyword'>if</span> (gtk_window_get_screen(<span class='macro'>GTK_WINDOW(res-&gt;data)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((res-&gt;data)), ((gtk_window_get_type ()))))))</span></span>) != from_screen)</td></tr>
+<tr class="codeline" data-linenumber="1962"><td class="num" id="LN1962">1962</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="1963"><td class="num" id="LN1963">1963</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1964"><td class="num" id="LN1964">1964</td><td class="line"> win_workspace = terminal_app_get_workspace_for_window(res-&gt;data);</td></tr>
+<tr class="codeline" data-linenumber="1965"><td class="num" id="LN1965">1965</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1966"><td class="num" id="LN1966">1966</td><td class="line"> <span class='comment'>/* Same workspace or if the window is set to show up on all workspaces */</span></td></tr>
+<tr class="codeline" data-linenumber="1967"><td class="num" id="LN1967">1967</td><td class="line"> <span class='keyword'>if</span> (win_workspace == workspace || win_workspace == -1)</td></tr>
+<tr class="codeline" data-linenumber="1968"><td class="num" id="LN1968">1968</td><td class="line"> ret = terminal_window_get_latest_focused (ret, <span class='macro'>TERMINAL_WINDOW(res-&gt;data)<span class='macro_popup'>((((TerminalWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((res-&gt;data)), ((terminal_window_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1969"><td class="num" id="LN1969">1969</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1970"><td class="num" id="LN1970">1970</td><td class="line"> res = <span class='macro'>g_list_previous (res)<span class='macro_popup'>((res) ? (((GList *)(res))-&gt;prev) : ((void*)0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1971"><td class="num" id="LN1971">1971</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1972"><td class="num" id="LN1972">1972</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1973"><td class="num" id="LN1973">1973</td><td class="line"> <span class='keyword'>return</span> ret;</td></tr>
+<tr class="codeline" data-linenumber="1974"><td class="num" id="LN1974">1974</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1975"><td class="num" id="LN1975">1975</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1976"><td class="num" id="LN1976">1976</td><td class="line"><span class='comment'>/**</span></td></tr>
+<tr class="codeline" data-linenumber="1977"><td class="num" id="LN1977">1977</td><td class="line"> <span class='comment'>* terminal_profile_get_list:</span></td></tr>
+<tr class="codeline" data-linenumber="1978"><td class="num" id="LN1978">1978</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="1979"><td class="num" id="LN1979">1979</td><td class="line"> <span class='comment'>* Returns: a #GList containing all #TerminalProfile objects.</span></td></tr>
+<tr class="codeline" data-linenumber="1980"><td class="num" id="LN1980">1980</td><td class="line"> <span class='comment'>* The content of the list is owned by the backend and</span></td></tr>
+<tr class="codeline" data-linenumber="1981"><td class="num" id="LN1981">1981</td><td class="line"> <span class='comment'>* should not be modified or freed. Use g_list_free() when done</span></td></tr>
+<tr class="codeline" data-linenumber="1982"><td class="num" id="LN1982">1982</td><td class="line"> <span class='comment'>* using the list.</span></td></tr>
+<tr class="codeline" data-linenumber="1983"><td class="num" id="LN1983">1983</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="1984"><td class="num" id="LN1984">1984</td><td class="line">GList*</td></tr>
+<tr class="codeline" data-linenumber="1985"><td class="num" id="LN1985">1985</td><td class="line">terminal_app_get_profile_list (TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="1986"><td class="num" id="LN1986">1986</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1987"><td class="num" id="LN1987">1987</td><td class="line"> <span class='macro'>g_return_val_if_fail (TERMINAL_IS_APP (app), NULL)<span class='macro_popup'>do { if (((((__extension__ ({ GTypeInstance *__inst = (GTypeInstance<br>*) ((app)); GType __t = ((terminal_app_get_type ())); gboolean<br> __r; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; })))))) { }<br> else { g_return_if_fail_warning (((gchar*) 0), ((const char*<br>) (__func__)), "TERMINAL_IS_APP (app)"); return (((void*)0));<br> } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1988"><td class="num" id="LN1988">1988</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1989"><td class="num" id="LN1989">1989</td><td class="line"> <span class='keyword'>return</span> g_list_sort (g_hash_table_get_values (app-&gt;profiles), profiles_alphabetic_cmp);</td></tr>
+<tr class="codeline" data-linenumber="1990"><td class="num" id="LN1990">1990</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1991"><td class="num" id="LN1991">1991</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1992"><td class="num" id="LN1992">1992</td><td class="line">TerminalProfile*</td></tr>
+<tr class="codeline" data-linenumber="1993"><td class="num" id="LN1993">1993</td><td class="line">terminal_app_get_profile_by_name (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="1994"><td class="num" id="LN1994">1994</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *name)</td></tr>
+<tr class="codeline" data-linenumber="1995"><td class="num" id="LN1995">1995</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1996"><td class="num" id="LN1996">1996</td><td class="line"> <span class='macro'>g_return_val_if_fail (TERMINAL_IS_APP (app), NULL)<span class='macro_popup'>do { if (((((__extension__ ({ GTypeInstance *__inst = (GTypeInstance<br>*) ((app)); GType __t = ((terminal_app_get_type ())); gboolean<br> __r; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; })))))) { }<br> else { g_return_if_fail_warning (((gchar*) 0), ((const char*<br>) (__func__)), "TERMINAL_IS_APP (app)"); return (((void*)0));<br> } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1997"><td class="num" id="LN1997">1997</td><td class="line"> <span class='macro'>g_return_val_if_fail (name != NULL, NULL)<span class='macro_popup'>do { if ((name != ((void*)0))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "name != NULL"); return<br> (((void*)0)); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1998"><td class="num" id="LN1998">1998</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1999"><td class="num" id="LN1999">1999</td><td class="line"> <span class='keyword'>return</span> g_hash_table_lookup (app-&gt;profiles, name);</td></tr>
+<tr class="codeline" data-linenumber="2000"><td class="num" id="LN2000">2000</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="2001"><td class="num" id="LN2001">2001</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2002"><td class="num" id="LN2002">2002</td><td class="line">TerminalProfile*</td></tr>
+<tr class="codeline" data-linenumber="2003"><td class="num" id="LN2003">2003</td><td class="line">terminal_app_get_profile_by_visible_name (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="2004"><td class="num" id="LN2004">2004</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *name)</td></tr>
+<tr class="codeline" data-linenumber="2005"><td class="num" id="LN2005">2005</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="2006"><td class="num" id="LN2006">2006</td><td class="line"> LookupInfo info;</td></tr>
+<tr class="codeline" data-linenumber="2007"><td class="num" id="LN2007">2007</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2008"><td class="num" id="LN2008">2008</td><td class="line"> <span class='macro'>g_return_val_if_fail (TERMINAL_IS_APP (app), NULL)<span class='macro_popup'>do { if (((((__extension__ ({ GTypeInstance *__inst = (GTypeInstance<br>*) ((app)); GType __t = ((terminal_app_get_type ())); gboolean<br> __r; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; })))))) { }<br> else { g_return_if_fail_warning (((gchar*) 0), ((const char*<br>) (__func__)), "TERMINAL_IS_APP (app)"); return (((void*)0));<br> } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2009"><td class="num" id="LN2009">2009</td><td class="line"> <span class='macro'>g_return_val_if_fail (name != NULL, NULL)<span class='macro_popup'>do { if ((name != ((void*)0))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "name != NULL"); return<br> (((void*)0)); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2010"><td class="num" id="LN2010">2010</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2011"><td class="num" id="LN2011">2011</td><td class="line"> info.result = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2012"><td class="num" id="LN2012">2012</td><td class="line"> info.target = name;</td></tr>
+<tr class="codeline" data-linenumber="2013"><td class="num" id="LN2013">2013</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2014"><td class="num" id="LN2014">2014</td><td class="line"> g_hash_table_foreach (app-&gt;profiles,</td></tr>
+<tr class="codeline" data-linenumber="2015"><td class="num" id="LN2015">2015</td><td class="line"> profiles_lookup_by_visible_name_foreach,</td></tr>
+<tr class="codeline" data-linenumber="2016"><td class="num" id="LN2016">2016</td><td class="line"> &amp;info);</td></tr>
+<tr class="codeline" data-linenumber="2017"><td class="num" id="LN2017">2017</td><td class="line"> <span class='keyword'>return</span> info.result;</td></tr>
+<tr class="codeline" data-linenumber="2018"><td class="num" id="LN2018">2018</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="2019"><td class="num" id="LN2019">2019</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2020"><td class="num" id="LN2020">2020</td><td class="line">TerminalProfile*</td></tr>
+<tr class="codeline" data-linenumber="2021"><td class="num" id="LN2021">2021</td><td class="line">terminal_app_get_default_profile (TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="2022"><td class="num" id="LN2022">2022</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="2023"><td class="num" id="LN2023">2023</td><td class="line"> <span class='macro'>g_return_val_if_fail (TERMINAL_IS_APP (app), NULL)<span class='macro_popup'>do { if (((((__extension__ ({ GTypeInstance *__inst = (GTypeInstance<br>*) ((app)); GType __t = ((terminal_app_get_type ())); gboolean<br> __r; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; })))))) { }<br> else { g_return_if_fail_warning (((gchar*) 0), ((const char*<br>) (__func__)), "TERMINAL_IS_APP (app)"); return (((void*)0));<br> } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2024"><td class="num" id="LN2024">2024</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2025"><td class="num" id="LN2025">2025</td><td class="line"> <span class='keyword'>return</span> app-&gt;default_profile;</td></tr>
+<tr class="codeline" data-linenumber="2026"><td class="num" id="LN2026">2026</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="2027"><td class="num" id="LN2027">2027</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2028"><td class="num" id="LN2028">2028</td><td class="line">TerminalProfile*</td></tr>
+<tr class="codeline" data-linenumber="2029"><td class="num" id="LN2029">2029</td><td class="line">terminal_app_get_profile_for_new_term (TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="2030"><td class="num" id="LN2030">2030</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="2031"><td class="num" id="LN2031">2031</td><td class="line"> GHashTableIter iter;</td></tr>
+<tr class="codeline" data-linenumber="2032"><td class="num" id="LN2032">2032</td><td class="line"> TerminalProfile *profile = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2033"><td class="num" id="LN2033">2033</td><td class="line"> TerminalProfile **profileptr = &amp;profile;</td></tr>
+<tr class="codeline" data-linenumber="2034"><td class="num" id="LN2034">2034</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2035"><td class="num" id="LN2035">2035</td><td class="line"> <span class='macro'>g_return_val_if_fail (TERMINAL_IS_APP (app), NULL)<span class='macro_popup'>do { if (((((__extension__ ({ GTypeInstance *__inst = (GTypeInstance<br>*) ((app)); GType __t = ((terminal_app_get_type ())); gboolean<br> __r; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; })))))) { }<br> else { g_return_if_fail_warning (((gchar*) 0), ((const char*<br>) (__func__)), "TERMINAL_IS_APP (app)"); return (((void*)0));<br> } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2036"><td class="num" id="LN2036">2036</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2037"><td class="num" id="LN2037">2037</td><td class="line"> <span class='keyword'>if</span> (app-&gt;default_profile)</td></tr>
+<tr class="codeline" data-linenumber="2038"><td class="num" id="LN2038">2038</td><td class="line"> <span class='keyword'>return</span> app-&gt;default_profile;</td></tr>
+<tr class="codeline" data-linenumber="2039"><td class="num" id="LN2039">2039</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2040"><td class="num" id="LN2040">2040</td><td class="line"> g_hash_table_iter_init (&amp;iter, app-&gt;profiles);</td></tr>
+<tr class="codeline" data-linenumber="2041"><td class="num" id="LN2041">2041</td><td class="line"> <span class='keyword'>if</span> (g_hash_table_iter_next (&amp;iter, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, (gpointer *) profileptr))</td></tr>
+<tr class="codeline" data-linenumber="2042"><td class="num" id="LN2042">2042</td><td class="line"> <span class='keyword'>return</span> profile;</td></tr>
+<tr class="codeline" data-linenumber="2043"><td class="num" id="LN2043">2043</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2044"><td class="num" id="LN2044">2044</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2045"><td class="num" id="LN2045">2045</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="2046"><td class="num" id="LN2046">2046</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2047"><td class="num" id="LN2047">2047</td><td class="line">GHashTable *</td></tr>
+<tr class="codeline" data-linenumber="2048"><td class="num" id="LN2048">2048</td><td class="line">terminal_app_get_encodings (TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="2049"><td class="num" id="LN2049">2049</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="2050"><td class="num" id="LN2050">2050</td><td class="line"> <span class='keyword'>return</span> app-&gt;encodings;</td></tr>
+<tr class="codeline" data-linenumber="2051"><td class="num" id="LN2051">2051</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="2052"><td class="num" id="LN2052">2052</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2053"><td class="num" id="LN2053">2053</td><td class="line"><span class='comment'>/**</span></td></tr>
+<tr class="codeline" data-linenumber="2054"><td class="num" id="LN2054">2054</td><td class="line"> <span class='comment'>* terminal_app_ensure_encoding:</span></td></tr>
+<tr class="codeline" data-linenumber="2055"><td class="num" id="LN2055">2055</td><td class="line"> <span class='comment'>* @app:</span></td></tr>
+<tr class="codeline" data-linenumber="2056"><td class="num" id="LN2056">2056</td><td class="line"> <span class='comment'>* @charset:</span></td></tr>
+<tr class="codeline" data-linenumber="2057"><td class="num" id="LN2057">2057</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="2058"><td class="num" id="LN2058">2058</td><td class="line"> <span class='comment'>* Ensures there's a #TerminalEncoding for @charset available.</span></td></tr>
+<tr class="codeline" data-linenumber="2059"><td class="num" id="LN2059">2059</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="2060"><td class="num" id="LN2060">2060</td><td class="line">TerminalEncoding *</td></tr>
+<tr class="codeline" data-linenumber="2061"><td class="num" id="LN2061">2061</td><td class="line">terminal_app_ensure_encoding (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="2062"><td class="num" id="LN2062">2062</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *charset)</td></tr>
+<tr class="codeline" data-linenumber="2063"><td class="num" id="LN2063">2063</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="2064"><td class="num" id="LN2064">2064</td><td class="line"> TerminalEncoding *encoding;</td></tr>
+<tr class="codeline" data-linenumber="2065"><td class="num" id="LN2065">2065</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2066"><td class="num" id="LN2066">2066</td><td class="line"> encoding = g_hash_table_lookup (app-&gt;encodings, charset);</td></tr>
+<tr class="codeline" data-linenumber="2067"><td class="num" id="LN2067">2067</td><td class="line"> <span class='keyword'>if</span> (encoding == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="2068"><td class="num" id="LN2068">2068</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="2069"><td class="num" id="LN2069">2069</td><td class="line"> encoding = terminal_encoding_new (charset,</td></tr>
+<tr class="codeline" data-linenumber="2070"><td class="num" id="LN2070">2070</td><td class="line"> <span class='macro'>_(<span class='string_literal'>"User Defined"</span>)<span class='macro_popup'>gettext ("User Defined")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2071"><td class="num" id="LN2071">2071</td><td class="line"> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2072"><td class="num" id="LN2072">2072</td><td class="line"> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span> <span class='comment'>/* scary! */</span>);</td></tr>
+<tr class="codeline" data-linenumber="2073"><td class="num" id="LN2073">2073</td><td class="line"> g_hash_table_insert (app-&gt;encodings,</td></tr>
+<tr class="codeline" data-linenumber="2074"><td class="num" id="LN2074">2074</td><td class="line"> (gpointer) terminal_encoding_get_id (encoding),</td></tr>
+<tr class="codeline" data-linenumber="2075"><td class="num" id="LN2075">2075</td><td class="line"> encoding);</td></tr>
+<tr class="codeline" data-linenumber="2076"><td class="num" id="LN2076">2076</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="2077"><td class="num" id="LN2077">2077</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2078"><td class="num" id="LN2078">2078</td><td class="line"> <span class='keyword'>return</span> encoding;</td></tr>
+<tr class="codeline" data-linenumber="2079"><td class="num" id="LN2079">2079</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="2080"><td class="num" id="LN2080">2080</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2081"><td class="num" id="LN2081">2081</td><td class="line"><span class='comment'>/**</span></td></tr>
+<tr class="codeline" data-linenumber="2082"><td class="num" id="LN2082">2082</td><td class="line"> <span class='comment'>* terminal_app_get_active_encodings:</span></td></tr>
+<tr class="codeline" data-linenumber="2083"><td class="num" id="LN2083">2083</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="2084"><td class="num" id="LN2084">2084</td><td class="line"> <span class='comment'>* Returns: a newly allocated list of newly referenced #TerminalEncoding objects.</span></td></tr>
+<tr class="codeline" data-linenumber="2085"><td class="num" id="LN2085">2085</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="2086"><td class="num" id="LN2086">2086</td><td class="line">GSList*</td></tr>
+<tr class="codeline" data-linenumber="2087"><td class="num" id="LN2087">2087</td><td class="line">terminal_app_get_active_encodings (TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="2088"><td class="num" id="LN2088">2088</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="2089"><td class="num" id="LN2089">2089</td><td class="line"> GSList *list = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2090"><td class="num" id="LN2090">2090</td><td class="line"> GHashTableIter iter;</td></tr>
+<tr class="codeline" data-linenumber="2091"><td class="num" id="LN2091">2091</td><td class="line"> gpointer key, value;</td></tr>
+<tr class="codeline" data-linenumber="2092"><td class="num" id="LN2092">2092</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2093"><td class="num" id="LN2093">2093</td><td class="line"> g_hash_table_iter_init (&amp;iter, app-&gt;encodings);</td></tr>
+<tr class="codeline" data-linenumber="2094"><td class="num" id="LN2094">2094</td><td class="line"> <span class='keyword'>while</span> (g_hash_table_iter_next (&amp;iter, &amp;key, &amp;value))</td></tr>
+<tr class="codeline" data-linenumber="2095"><td class="num" id="LN2095">2095</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="2096"><td class="num" id="LN2096">2096</td><td class="line"> TerminalEncoding *encoding = (TerminalEncoding *) value;</td></tr>
+<tr class="codeline" data-linenumber="2097"><td class="num" id="LN2097">2097</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2098"><td class="num" id="LN2098">2098</td><td class="line"> <span class='keyword'>if</span> (!encoding-&gt;is_active)</td></tr>
+<tr class="codeline" data-linenumber="2099"><td class="num" id="LN2099">2099</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="2100"><td class="num" id="LN2100">2100</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2101"><td class="num" id="LN2101">2101</td><td class="line"> list = g_slist_prepend (list, terminal_encoding_ref (encoding));</td></tr>
+<tr class="codeline" data-linenumber="2102"><td class="num" id="LN2102">2102</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="2103"><td class="num" id="LN2103">2103</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2104"><td class="num" id="LN2104">2104</td><td class="line"> <span class='keyword'>return</span> g_slist_sort (list, (GCompareFunc) compare_encodings);</td></tr>
+<tr class="codeline" data-linenumber="2105"><td class="num" id="LN2105">2105</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="2106"><td class="num" id="LN2106">2106</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2107"><td class="num" id="LN2107">2107</td><td class="line"><span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="2108"><td class="num" id="LN2108">2108</td><td class="line">terminal_app_save_config (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="2109"><td class="num" id="LN2109">2109</td><td class="line"> GKeyFile *key_file)</td></tr>
+<tr class="codeline" data-linenumber="2110"><td class="num" id="LN2110">2110</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="2111"><td class="num" id="LN2111">2111</td><td class="line"> GList *lw;</td></tr>
+<tr class="codeline" data-linenumber="2112"><td class="num" id="LN2112">2112</td><td class="line"> guint n = 0;</td></tr>
+<tr class="codeline" data-linenumber="2113"><td class="num" id="LN2113">2113</td><td class="line"> GPtrArray *window_names_array;</td></tr>
+<tr class="codeline" data-linenumber="2114"><td class="num" id="LN2114">2114</td><td class="line"> <span class='keyword'>char</span> **window_names;</td></tr>
+<tr class="codeline" data-linenumber="2115"><td class="num" id="LN2115">2115</td><td class="line"> gsize len;</td></tr>
+<tr class="codeline" data-linenumber="2116"><td class="num" id="LN2116">2116</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2117"><td class="num" id="LN2117">2117</td><td class="line"> g_key_file_set_comment (key_file, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='string_literal'>"Written by "</span> <span class='macro'>PACKAGE_STRING<span class='macro_popup'>"mate-terminal 1.27.1"</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="2118"><td class="num" id="LN2118">2118</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2119"><td class="num" id="LN2119">2119</td><td class="line"> g_key_file_set_integer (key_file, <span class='macro'>TERMINAL_CONFIG_GROUP<span class='macro_popup'>"MATE Terminal Configuration"</span></span>, <span class='macro'>TERMINAL_CONFIG_PROP_VERSION<span class='macro_popup'>"Version"</span></span>, <span class='macro'>TERMINAL_CONFIG_VERSION<span class='macro_popup'>(1)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="2120"><td class="num" id="LN2120">2120</td><td class="line"> g_key_file_set_integer (key_file, <span class='macro'>TERMINAL_CONFIG_GROUP<span class='macro_popup'>"MATE Terminal Configuration"</span></span>, <span class='macro'>TERMINAL_CONFIG_PROP_COMPAT_VERSION<span class='macro_popup'>"CompatVersion"</span></span>, <span class='macro'>TERMINAL_CONFIG_COMPAT_VERSION<span class='macro_popup'>(1)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="2121"><td class="num" id="LN2121">2121</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2122"><td class="num" id="LN2122">2122</td><td class="line"> window_names_array = g_ptr_array_sized_new (g_list_length (app-&gt;windows) + 1);</td></tr>
+<tr class="codeline" data-linenumber="2123"><td class="num" id="LN2123">2123</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2124"><td class="num" id="LN2124">2124</td><td class="line"> <span class='keyword'>for</span> (lw = app-&gt;windows; lw != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; lw = lw-&gt;next)</td></tr>
+<tr class="codeline" data-linenumber="2125"><td class="num" id="LN2125">2125</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="2126"><td class="num" id="LN2126">2126</td><td class="line"> TerminalWindow *window = <span class='macro'>TERMINAL_WINDOW (lw-&gt;data)<span class='macro_popup'>((((TerminalWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((lw-&gt;data)), ((terminal_window_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2127"><td class="num" id="LN2127">2127</td><td class="line"> <span class='keyword'>char</span> *group;</td></tr>
+<tr class="codeline" data-linenumber="2128"><td class="num" id="LN2128">2128</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2129"><td class="num" id="LN2129">2129</td><td class="line"> group = g_strdup_printf (<span class='string_literal'>"Window%u"</span>, n++);</td></tr>
+<tr class="codeline" data-linenumber="2130"><td class="num" id="LN2130">2130</td><td class="line"> g_ptr_array_add (window_names_array, group);</td></tr>
+<tr class="codeline" data-linenumber="2131"><td class="num" id="LN2131">2131</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2132"><td class="num" id="LN2132">2132</td><td class="line"> terminal_window_save_state (window, key_file, group);</td></tr>
+<tr class="codeline" data-linenumber="2133"><td class="num" id="LN2133">2133</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="2134"><td class="num" id="LN2134">2134</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2135"><td class="num" id="LN2135">2135</td><td class="line"> len = window_names_array-&gt;len;</td></tr>
+<tr class="codeline" data-linenumber="2136"><td class="num" id="LN2136">2136</td><td class="line"> g_ptr_array_add (window_names_array, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="2137"><td class="num" id="LN2137">2137</td><td class="line"> window_names = (<span class='keyword'>char</span> **) g_ptr_array_free (window_names_array, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="2138"><td class="num" id="LN2138">2138</td><td class="line"> g_key_file_set_string_list (key_file, <span class='macro'>TERMINAL_CONFIG_GROUP<span class='macro_popup'>"MATE Terminal Configuration"</span></span>, <span class='macro'>TERMINAL_CONFIG_PROP_WINDOWS<span class='macro_popup'>"Windows"</span></span>, (<span class='keyword'>const</span> <span class='keyword'>char</span> * <span class='keyword'>const</span> *) window_names, len);</td></tr>
+<tr class="codeline" data-linenumber="2139"><td class="num" id="LN2139">2139</td><td class="line"> g_strfreev (window_names);</td></tr>
+<tr class="codeline" data-linenumber="2140"><td class="num" id="LN2140">2140</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="2141"><td class="num" id="LN2141">2141</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2142"><td class="num" id="LN2142">2142</td><td class="line">gboolean</td></tr>
+<tr class="codeline" data-linenumber="2143"><td class="num" id="LN2143">2143</td><td class="line">terminal_app_save_config_file (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="2144"><td class="num" id="LN2144">2144</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *file_name,</td></tr>
+<tr class="codeline" data-linenumber="2145"><td class="num" id="LN2145">2145</td><td class="line"> GError **error)</td></tr>
+<tr class="codeline" data-linenumber="2146"><td class="num" id="LN2146">2146</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="2147"><td class="num" id="LN2147">2147</td><td class="line"> GKeyFile *key_file;</td></tr>
+<tr class="codeline" data-linenumber="2148"><td class="num" id="LN2148">2148</td><td class="line"> <span class='keyword'>char</span> *data;</td></tr>
+<tr class="codeline" data-linenumber="2149"><td class="num" id="LN2149">2149</td><td class="line"> gsize len;</td></tr>
+<tr class="codeline" data-linenumber="2150"><td class="num" id="LN2150">2150</td><td class="line"> gboolean result;</td></tr>
+<tr class="codeline" data-linenumber="2151"><td class="num" id="LN2151">2151</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2152"><td class="num" id="LN2152">2152</td><td class="line"> key_file = g_key_file_new ();</td></tr>
+<tr class="codeline" data-linenumber="2153"><td class="num" id="LN2153">2153</td><td class="line"> terminal_app_save_config (app, key_file);</td></tr>
+<tr class="codeline" data-linenumber="2154"><td class="num" id="LN2154">2154</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2155"><td class="num" id="LN2155">2155</td><td class="line"> data = g_key_file_to_data (key_file, &amp;len, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="2156"><td class="num" id="LN2156">2156</td><td class="line"> result = g_file_set_contents (file_name, data, len, error);</td></tr>
+<tr class="codeline" data-linenumber="2157"><td class="num" id="LN2157">2157</td><td class="line"> g_free (data);</td></tr>
+<tr class="codeline" data-linenumber="2158"><td class="num" id="LN2158">2158</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2159"><td class="num" id="LN2159">2159</td><td class="line"> <span class='keyword'>return</span> result;</td></tr>
+<tr class="codeline" data-linenumber="2160"><td class="num" id="LN2160">2160</td><td class="line">}</td></tr>
+</table></body></html>
diff --git a/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-2b0dd9.html b/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-2b0dd9.html
new file mode 100644
index 0000000..e50c4af
--- /dev/null
+++ b/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-2b0dd9.html
@@ -0,0 +1,2840 @@
+<!doctype html>
+<html>
+<head>
+<title>terminal-app.c</title>
+
+<style type="text/css">
+body { color:#000000; background-color:#ffffff }
+body { font-family:Helvetica, sans-serif; font-size:10pt }
+h1 { font-size:14pt }
+.FileName { margin-top: 5px; margin-bottom: 5px; display: inline; }
+.FileNav { margin-left: 5px; margin-right: 5px; display: inline; }
+.FileNav a { text-decoration:none; font-size: larger; }
+.divider { margin-top: 30px; margin-bottom: 30px; height: 15px; }
+.divider { background-color: gray; }
+.code { border-collapse:collapse; width:100%; }
+.code { font-family: "Monospace", monospace; font-size:10pt }
+.code { line-height: 1.2em }
+.comment { color: green; font-style: oblique }
+.keyword { color: blue }
+.string_literal { color: red }
+.directive { color: darkmagenta }
+
+/* Macros and variables could have pop-up notes hidden by default.
+ - Macro pop-up: expansion of the macro
+ - Variable pop-up: value (table) of the variable */
+.macro_popup, .variable_popup { display: none; }
+
+/* Pop-up appears on mouse-hover event. */
+.macro:hover .macro_popup, .variable:hover .variable_popup {
+ display: block;
+ padding: 2px;
+ -webkit-border-radius:5px;
+ -webkit-box-shadow:1px 1px 7px #000;
+ border-radius:5px;
+ box-shadow:1px 1px 7px #000;
+ position: absolute;
+ top: -1em;
+ left:10em;
+ z-index: 1
+}
+
+.macro_popup {
+ border: 2px solid red;
+ background-color:#FFF0F0;
+ font-weight: normal;
+}
+
+.variable_popup {
+ border: 2px solid blue;
+ background-color:#F0F0FF;
+ font-weight: bold;
+ font-family: Helvetica, sans-serif;
+ font-size: 9pt;
+}
+
+/* Pop-up notes needs a relative position as a base where they pops up. */
+.macro, .variable {
+ background-color: PaleGoldenRod;
+ position: relative;
+}
+.macro { color: DarkMagenta; }
+
+#tooltiphint {
+ position: fixed;
+ width: 50em;
+ margin-left: -25em;
+ left: 50%;
+ padding: 10px;
+ border: 1px solid #b0b0b0;
+ border-radius: 2px;
+ box-shadow: 1px 1px 7px black;
+ background-color: #c0c0c0;
+ z-index: 2;
+}
+
+.num { width:2.5em; padding-right:2ex; background-color:#eeeeee }
+.num { text-align:right; font-size:8pt }
+.num { color:#444444 }
+.line { padding-left: 1ex; border-left: 3px solid #ccc }
+.line { white-space: pre }
+.msg { -webkit-box-shadow:1px 1px 7px #000 }
+.msg { box-shadow:1px 1px 7px #000 }
+.msg { -webkit-border-radius:5px }
+.msg { border-radius:5px }
+.msg { font-family:Helvetica, sans-serif; font-size:8pt }
+.msg { float:left }
+.msg { position:relative }
+.msg { padding:0.25em 1ex 0.25em 1ex }
+.msg { margin-top:10px; margin-bottom:10px }
+.msg { font-weight:bold }
+.msg { max-width:60em; word-wrap: break-word; white-space: pre-wrap }
+.msgT { padding:0x; spacing:0x }
+.msgEvent { background-color:#fff8b4; color:#000000 }
+.msgControl { background-color:#bbbbbb; color:#000000 }
+.msgNote { background-color:#ddeeff; color:#000000 }
+.mrange { background-color:#dfddf3 }
+.mrange { border-bottom:1px solid #6F9DBE }
+.PathIndex { font-weight: bold; padding:0px 5px; margin-right:5px; }
+.PathIndex { -webkit-border-radius:8px }
+.PathIndex { border-radius:8px }
+.PathIndexEvent { background-color:#bfba87 }
+.PathIndexControl { background-color:#8c8c8c }
+.PathIndexPopUp { background-color: #879abc; }
+.PathNav a { text-decoration:none; font-size: larger }
+.CodeInsertionHint { font-weight: bold; background-color: #10dd10 }
+.CodeRemovalHint { background-color:#de1010 }
+.CodeRemovalHint { border-bottom:1px solid #6F9DBE }
+.msg.selected{ background-color:orange !important; }
+
+table.simpletable {
+ padding: 5px;
+ font-size:12pt;
+ margin:20px;
+ border-collapse: collapse; border-spacing: 0px;
+}
+td.rowname {
+ text-align: right;
+ vertical-align: top;
+ font-weight: bold;
+ color:#444444;
+ padding-right:2ex;
+}
+
+/* Hidden text. */
+input.spoilerhider + label {
+ cursor: pointer;
+ text-decoration: underline;
+ display: block;
+}
+input.spoilerhider {
+ display: none;
+}
+input.spoilerhider ~ .spoiler {
+ overflow: hidden;
+ margin: 10px auto 0;
+ height: 0;
+ opacity: 0;
+}
+input.spoilerhider:checked + label + .spoiler{
+ height: auto;
+ opacity: 1;
+}
+</style>
+</head>
+<body>
+<!-- BUGDESC Casting a non-structure type to a structure type and accessing a field can lead to memory access errors or data corruption -->
+
+<!-- BUGTYPE Cast from non-struct type to struct type -->
+
+<!-- BUGCATEGORY Logic error -->
+
+<!-- BUGFILE /rootdir/src/terminal-app.c -->
+
+<!-- FILENAME terminal-app.c -->
+
+<!-- FUNCTIONNAME terminal_app_default_profile_notify_cb -->
+
+<!-- ISSUEHASHCONTENTOFLINEINCONTEXT 2b0dd9d7f85f7f3701032bdcf276ae50 -->
+
+<!-- BUGLINE 935 -->
+
+<!-- BUGCOLUMN 37 -->
+
+<!-- BUGPATHLENGTH 1 -->
+
+<!-- BUGMETAEND -->
+<!-- REPORTHEADER -->
+<h3>Bug Summary</h3>
+<table class="simpletable">
+<tr><td class="rowname">File:</td><td>terminal-app.c</td></tr>
+<tr><td class="rowname">Warning:</td><td><a href="#EndPath">line 935, column 37</a><br />Casting a non-structure type to a structure type and accessing a field can lead to memory access errors or data corruption</td></tr>
+
+</table>
+<!-- REPORTSUMMARYEXTRA -->
+<h3>Annotated Source Code</h3>
+<p>Press <a href="#" onclick="toggleHelp(); return false;">'?'</a>
+ to see keyboard shortcuts</p>
+<input type="checkbox" class="spoilerhider" id="showinvocation" />
+<label for="showinvocation" >Show analyzer invocation</label>
+<div class="spoiler">clang -cc1 -cc1 -triple x86_64-redhat-linux-gnu -analyze -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name terminal-app.c -analyzer-checker=core -analyzer-checker=apiModeling -analyzer-checker=unix -analyzer-checker=deadcode -analyzer-checker=security.insecureAPI.UncheckedReturn -analyzer-checker=security.insecureAPI.getpw -analyzer-checker=security.insecureAPI.gets -analyzer-checker=security.insecureAPI.mktemp -analyzer-checker=security.insecureAPI.mkstemp -analyzer-checker=security.insecureAPI.vfork -analyzer-checker=nullability.NullPassedToNonnull -analyzer-checker=nullability.NullReturnedFromNonnull -analyzer-output plist -w -setup-static-analyzer -mrelocation-model static -mframe-pointer=all -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -tune-cpu generic -debugger-tuning=gdb -fcoverage-compilation-dir=/rootdir/src -resource-dir /usr/bin/../lib/clang/17 -D HAVE_CONFIG_H -I . -I .. -I ../src/mate-submodules/libegg -D TERMINAL_COMPILATION -D TERMINAL_RESOURCES_PATH_PREFIX="/org/mate/terminal" -D TERM_DATADIR="/usr/local/share" -D TERM_LOCALEDIR="/usr/local/share/locale" -D TERM_PKGDATADIR="/usr/local/share/mate-terminal" -D TERM_HELPDIR="/usr/local/share/help" -D SN_API_NOT_YET_FROZEN -D GDK_MULTIHEAD_SAFE -D G_DISABLE_SINGLE_INCLUDES -D PANGO_DISABLE_SINGLE_INCLUDES -D ATK_DISABLE_SINGLE_INCLUDES -D GDK_DISABLE_SINGLE_INCLUDES -D GDK_PIXBUF_DISABLE_SINGLE_INCLUDES -D GTK_DISABLE_SINGLE_INCLUDES -I /usr/include/dconf -I /usr/include/vte-2.91 -I /usr/include/pango-1.0 -I /usr/include/gtk-3.0 -I /usr/include/gdk-pixbuf-2.0 -I /usr/include/cairo -I /usr/include/dbus-1.0 -I /usr/lib64/dbus-1.0/include -I /usr/include/atk-1.0 -I /usr/include/harfbuzz -I /usr/include/freetype2 -I /usr/include/glib-2.0 -I /usr/lib64/glib-2.0/include -I /usr/include/cloudproviders -I /usr/include/at-spi2-atk/2.0 -I /usr/include/at-spi-2.0 -I /usr/include/blkid -I /usr/include/gio-unix-2.0 -I /usr/include/pixman-1 -I /usr/include/libmount -I /usr/include/libxml2 -I /usr/include/fribidi -I /usr/include/libpng16 -I /usr/include/sysprof-6 -internal-isystem /usr/bin/../lib/clang/17/include -internal-isystem /usr/local/include -internal-isystem /usr/bin/../lib/gcc/x86_64-redhat-linux/13/../../../../x86_64-redhat-linux/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -Wno-unused-parameter -fdebug-compilation-dir=/rootdir/src -ferror-limit 19 -fgnuc-version=4.2.1 -analyzer-checker deadcode.DeadStores -analyzer-checker alpha.deadcode.UnreachableCode -analyzer-checker alpha.core.CastSize -analyzer-checker alpha.core.CastToStruct -analyzer-checker alpha.core.IdenticalExpr -analyzer-checker alpha.core.SizeofPtr -analyzer-checker alpha.security.ArrayBoundV2 -analyzer-checker alpha.security.MallocOverflow -analyzer-checker alpha.security.ReturnPtrRange -analyzer-checker alpha.unix.SimpleStream -analyzer-checker alpha.unix.cstring.BufferOverlap -analyzer-checker alpha.unix.cstring.NotNullTerminated -analyzer-checker alpha.unix.cstring.OutOfBounds -analyzer-checker alpha.core.FixedAddr -analyzer-checker security.insecureAPI.strcpy -analyzer-output=html -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /rootdir/html-report/2024-02-18-131424-5067-1 -x c terminal-app.c
+</div>
+<div id='tooltiphint' hidden="true">
+ <p>Keyboard shortcuts: </p>
+ <ul>
+ <li>Use 'j/k' keys for keyboard navigation</li>
+ <li>Use 'Shift+S' to show/hide relevant lines</li>
+ <li>Use '?' to toggle this window</li>
+ </ul>
+ <a href="#" onclick="toggleHelp(); return false;">Close</a>
+</div>
+<script type='text/javascript'>
+var relevant_lines = {"1": {"935": 1}};
+
+var filterCounterexample = function (hide) {
+ var tables = document.getElementsByClassName("code");
+ for (var t=0; t<tables.length; t++) {
+ var table = tables[t];
+ var file_id = table.getAttribute("data-fileid");
+ var lines_in_fid = relevant_lines[file_id];
+ if (!lines_in_fid) {
+ lines_in_fid = {};
+ }
+ var lines = table.getElementsByClassName("codeline");
+ for (var i=0; i<lines.length; i++) {
+ var el = lines[i];
+ var lineNo = el.getAttribute("data-linenumber");
+ if (!lines_in_fid[lineNo]) {
+ if (hide) {
+ el.setAttribute("hidden", "");
+ } else {
+ el.removeAttribute("hidden");
+ }
+ }
+ }
+ }
+}
+
+window.addEventListener("keydown", function (event) {
+ if (event.defaultPrevented) {
+ return;
+ }
+ // SHIFT + S
+ if (event.shiftKey && event.keyCode == 83) {
+ var checked = document.getElementsByName("showCounterexample")[0].checked;
+ filterCounterexample(!checked);
+ document.getElementsByName("showCounterexample")[0].click();
+ } else {
+ return;
+ }
+ event.preventDefault();
+}, true);
+
+document.addEventListener("DOMContentLoaded", function() {
+ document.querySelector('input[name="showCounterexample"]').onchange=
+ function (event) {
+ filterCounterexample(this.checked);
+ };
+});
+</script>
+
+<form>
+ <input type="checkbox" name="showCounterexample" id="showCounterexample" />
+ <label for="showCounterexample">
+ Show only relevant lines
+ </label>
+ <input type="checkbox" name="showArrows"
+ id="showArrows" style="margin-left: 10px" />
+ <label for="showArrows">
+ Show control flow arrows
+ </label>
+</form>
+
+<script type='text/javascript'>
+// Return range of numbers from a range [lower, upper).
+function range(lower, upper) {
+ var array = [];
+ for (var i = lower; i <= upper; ++i) {
+ array.push(i);
+ }
+ return array;
+}
+
+var getRelatedArrowIndices = function(pathId) {
+ // HTML numeration of events is a bit different than it is in the path.
+ // Everything is rotated one step to the right, so the last element
+ // (error diagnostic) has index 0.
+ if (pathId == 0) {
+ // arrowIndices has at least 2 elements
+ pathId = arrowIndices.length - 1;
+ }
+
+ return range(arrowIndices[pathId], arrowIndices[pathId - 1]);
+}
+
+var highlightArrowsForSelectedEvent = function() {
+ const selectedNum = findNum();
+ const arrowIndicesToHighlight = getRelatedArrowIndices(selectedNum);
+ arrowIndicesToHighlight.forEach((index) => {
+ var arrow = document.querySelector("#arrow" + index);
+ if(arrow) {
+ classListAdd(arrow, "selected")
+ }
+ });
+}
+
+var getAbsoluteBoundingRect = function(element) {
+ const relative = element.getBoundingClientRect();
+ return {
+ left: relative.left + window.pageXOffset,
+ right: relative.right + window.pageXOffset,
+ top: relative.top + window.pageYOffset,
+ bottom: relative.bottom + window.pageYOffset,
+ height: relative.height,
+ width: relative.width
+ };
+}
+
+var drawArrow = function(index) {
+ // This function is based on the great answer from SO:
+ // https://stackoverflow.com/a/39575674/11582326
+ var start = document.querySelector("#start" + index);
+ var end = document.querySelector("#end" + index);
+ var arrow = document.querySelector("#arrow" + index);
+
+ var startRect = getAbsoluteBoundingRect(start);
+ var endRect = getAbsoluteBoundingRect(end);
+
+ // It is an arrow from a token to itself, no need to visualize it.
+ if (startRect.top == endRect.top &&
+ startRect.left == endRect.left)
+ return;
+
+ // Each arrow is a very simple Bézier curve, with two nodes and
+ // two handles. So, we need to calculate four points in the window:
+ // * start node
+ var posStart = { x: 0, y: 0 };
+ // * end node
+ var posEnd = { x: 0, y: 0 };
+ // * handle for the start node
+ var startHandle = { x: 0, y: 0 };
+ // * handle for the end node
+ var endHandle = { x: 0, y: 0 };
+ // One can visualize it as follows:
+ //
+ // start handle
+ // /
+ // X"""_.-""""X
+ // .' \
+ // / start node
+ // |
+ // |
+ // | end node
+ // \ /
+ // `->X
+ // X-'
+ // \
+ // end handle
+ //
+ // NOTE: (0, 0) is the top left corner of the window.
+
+ // We have 3 similar, but still different scenarios to cover:
+ //
+ // 1. Two tokens on different lines.
+ // -xxx
+ // /
+ // \
+ // -> xxx
+ // In this situation, we draw arrow on the left curving to the left.
+ // 2. Two tokens on the same line, and the destination is on the right.
+ // ____
+ // / \
+ // / V
+ // xxx xxx
+ // In this situation, we draw arrow above curving upwards.
+ // 3. Two tokens on the same line, and the destination is on the left.
+ // xxx xxx
+ // ^ /
+ // \____/
+ // In this situation, we draw arrow below curving downwards.
+ const onDifferentLines = startRect.top <= endRect.top - 5 ||
+ startRect.top >= endRect.top + 5;
+ const leftToRight = startRect.left < endRect.left;
+
+ // NOTE: various magic constants are chosen empirically for
+ // better positioning and look
+ if (onDifferentLines) {
+ // Case #1
+ const topToBottom = startRect.top < endRect.top;
+ posStart.x = startRect.left - 1;
+ // We don't want to start it at the top left corner of the token,
+ // it doesn't feel like this is where the arrow comes from.
+ // For this reason, we start it in the middle of the left side
+ // of the token.
+ posStart.y = startRect.top + startRect.height / 2;
+
+ // End node has arrow head and we give it a bit more space.
+ posEnd.x = endRect.left - 4;
+ posEnd.y = endRect.top;
+
+ // Utility object with x and y offsets for handles.
+ var curvature = {
+ // We want bottom-to-top arrow to curve a bit more, so it doesn't
+ // overlap much with top-to-bottom curves (much more frequent).
+ x: topToBottom ? 15 : 25,
+ y: Math.min((posEnd.y - posStart.y) / 3, 10)
+ }
+
+ // When destination is on the different line, we can make a
+ // curvier arrow because we have space for it.
+ // So, instead of using
+ //
+ // startHandle.x = posStart.x - curvature.x
+ // endHandle.x = posEnd.x - curvature.x
+ //
+ // We use the leftmost of these two values for both handles.
+ startHandle.x = Math.min(posStart.x, posEnd.x) - curvature.x;
+ endHandle.x = startHandle.x;
+
+ // Curving downwards from the start node...
+ startHandle.y = posStart.y + curvature.y;
+ // ... and upwards from the end node.
+ endHandle.y = posEnd.y - curvature.y;
+
+ } else if (leftToRight) {
+ // Case #2
+ // Starting from the top right corner...
+ posStart.x = startRect.right - 1;
+ posStart.y = startRect.top;
+
+ // ...and ending at the top left corner of the end token.
+ posEnd.x = endRect.left + 1;
+ posEnd.y = endRect.top - 1;
+
+ // Utility object with x and y offsets for handles.
+ var curvature = {
+ x: Math.min((posEnd.x - posStart.x) / 3, 15),
+ y: 5
+ }
+
+ // Curving to the right...
+ startHandle.x = posStart.x + curvature.x;
+ // ... and upwards from the start node.
+ startHandle.y = posStart.y - curvature.y;
+
+ // And to the left...
+ endHandle.x = posEnd.x - curvature.x;
+ // ... and upwards from the end node.
+ endHandle.y = posEnd.y - curvature.y;
+
+ } else {
+ // Case #3
+ // Starting from the bottom right corner...
+ posStart.x = startRect.right;
+ posStart.y = startRect.bottom;
+
+ // ...and ending also at the bottom right corner, but of the end token.
+ posEnd.x = endRect.right - 1;
+ posEnd.y = endRect.bottom + 1;
+
+ // Utility object with x and y offsets for handles.
+ var curvature = {
+ x: Math.min((posStart.x - posEnd.x) / 3, 15),
+ y: 5
+ }
+
+ // Curving to the left...
+ startHandle.x = posStart.x - curvature.x;
+ // ... and downwards from the start node.
+ startHandle.y = posStart.y + curvature.y;
+
+ // And to the right...
+ endHandle.x = posEnd.x + curvature.x;
+ // ... and downwards from the end node.
+ endHandle.y = posEnd.y + curvature.y;
+ }
+
+ // Put it all together into a path.
+ // More information on the format:
+ // https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths
+ var pathStr = "M" + posStart.x + "," + posStart.y + " " +
+ "C" + startHandle.x + "," + startHandle.y + " " +
+ endHandle.x + "," + endHandle.y + " " +
+ posEnd.x + "," + posEnd.y;
+
+ arrow.setAttribute("d", pathStr);
+};
+
+var drawArrows = function() {
+ const numOfArrows = document.querySelectorAll("path[id^=arrow]").length;
+ for (var i = 0; i < numOfArrows; ++i) {
+ drawArrow(i);
+ }
+}
+
+var toggleArrows = function(event) {
+ const arrows = document.querySelector("#arrows");
+ if (event.target.checked) {
+ arrows.setAttribute("visibility", "visible");
+ } else {
+ arrows.setAttribute("visibility", "hidden");
+ }
+}
+
+window.addEventListener("resize", drawArrows);
+document.addEventListener("DOMContentLoaded", function() {
+ // Whenever we show invocation, locations change, i.e. we
+ // need to redraw arrows.
+ document
+ .querySelector('input[id="showinvocation"]')
+ .addEventListener("click", drawArrows);
+ // Hiding irrelevant lines also should cause arrow rerender.
+ document
+ .querySelector('input[name="showCounterexample"]')
+ .addEventListener("change", drawArrows);
+ document
+ .querySelector('input[name="showArrows"]')
+ .addEventListener("change", toggleArrows);
+ drawArrows();
+ // Default highlighting for the last event.
+ highlightArrowsForSelectedEvent();
+});
+</script>
+
+<script type='text/javascript'>
+var digitMatcher = new RegExp("[0-9]+");
+
+var querySelectorAllArray = function(selector) {
+ return Array.prototype.slice.call(
+ document.querySelectorAll(selector));
+}
+
+document.addEventListener("DOMContentLoaded", function() {
+ querySelectorAllArray(".PathNav > a").forEach(
+ function(currentValue, currentIndex) {
+ var hrefValue = currentValue.getAttribute("href");
+ currentValue.onclick = function() {
+ scrollTo(document.querySelector(hrefValue));
+ return false;
+ };
+ });
+});
+
+var findNum = function() {
+ var s = document.querySelector(".msg.selected");
+ if (!s || s.id == "EndPath") {
+ return 0;
+ }
+ var out = parseInt(digitMatcher.exec(s.id)[0]);
+ return out;
+};
+
+var classListAdd = function(el, theClass) {
+ if(!el.className.baseVal)
+ el.className += " " + theClass;
+ else
+ el.className.baseVal += " " + theClass;
+};
+
+var classListRemove = function(el, theClass) {
+ var className = (!el.className.baseVal) ?
+ el.className : el.className.baseVal;
+ className = className.replace(" " + theClass, "");
+ if(!el.className.baseVal)
+ el.className = className;
+ else
+ el.className.baseVal = className;
+};
+
+var scrollTo = function(el) {
+ querySelectorAllArray(".selected").forEach(function(s) {
+ classListRemove(s, "selected");
+ });
+ classListAdd(el, "selected");
+ window.scrollBy(0, el.getBoundingClientRect().top -
+ (window.innerHeight / 2));
+ highlightArrowsForSelectedEvent();
+};
+
+var move = function(num, up, numItems) {
+ if (num == 1 && up || num == numItems - 1 && !up) {
+ return 0;
+ } else if (num == 0 && up) {
+ return numItems - 1;
+ } else if (num == 0 && !up) {
+ return 1 % numItems;
+ }
+ return up ? num - 1 : num + 1;
+}
+
+var numToId = function(num) {
+ if (num == 0) {
+ return document.getElementById("EndPath")
+ }
+ return document.getElementById("Path" + num);
+};
+
+var navigateTo = function(up) {
+ var numItems = document.querySelectorAll(
+ ".line > .msgEvent, .line > .msgControl").length;
+ var currentSelected = findNum();
+ var newSelected = move(currentSelected, up, numItems);
+ var newEl = numToId(newSelected, numItems);
+
+ // Scroll element into center.
+ scrollTo(newEl);
+};
+
+window.addEventListener("keydown", function (event) {
+ if (event.defaultPrevented) {
+ return;
+ }
+ // key 'j'
+ if (event.keyCode == 74) {
+ navigateTo(/*up=*/false);
+ // key 'k'
+ } else if (event.keyCode == 75) {
+ navigateTo(/*up=*/true);
+ } else {
+ return;
+ }
+ event.preventDefault();
+}, true);
+</script>
+
+<script type='text/javascript'>
+
+var toggleHelp = function() {
+ var hint = document.querySelector("#tooltiphint");
+ var attributeName = "hidden";
+ if (hint.hasAttribute(attributeName)) {
+ hint.removeAttribute(attributeName);
+ } else {
+ hint.setAttribute("hidden", "true");
+ }
+};
+window.addEventListener("keydown", function (event) {
+ if (event.defaultPrevented) {
+ return;
+ }
+ if (event.key == "?") {
+ toggleHelp();
+ } else {
+ return;
+ }
+ event.preventDefault();
+});
+</script>
+
+<style type="text/css">
+ svg {
+ position:absolute;
+ top:0;
+ left:0;
+ height:100%;
+ width:100%;
+ pointer-events: none;
+ overflow: visible
+ }
+ .arrow {
+ stroke-opacity: 0.2;
+ stroke-width: 1;
+ marker-end: url(#arrowhead);
+ }
+
+ .arrow.selected {
+ stroke-opacity: 0.6;
+ stroke-width: 2;
+ marker-end: url(#arrowheadSelected);
+ }
+
+ .arrowhead {
+ orient: auto;
+ stroke: none;
+ opacity: 0.6;
+ fill: blue;
+ }
+</style>
+<svg xmlns="http://www.w3.org/2000/svg">
+ <defs>
+ <marker id="arrowheadSelected" class="arrowhead" opacity="0.6"
+ viewBox="0 0 10 10" refX="3" refY="5"
+ markerWidth="4" markerHeight="4">
+ <path d="M 0 0 L 10 5 L 0 10 z" />
+ </marker>
+ <marker id="arrowhead" class="arrowhead" opacity="0.2"
+ viewBox="0 0 10 10" refX="3" refY="5"
+ markerWidth="4" markerHeight="4">
+ <path d="M 0 0 L 10 5 L 0 10 z" />
+ </marker>
+ </defs>
+ <g id="arrows" fill="none" stroke="blue" visibility="hidden">
+
+ </g>
+</svg>
+<script type='text/javascript'>
+const arrowIndices = [ 0,0 ]
+</script>
+<table class="code" data-fileid="1">
+<tr class="codeline" data-linenumber="1"><td class="num" id="LN1">1</td><td class="line"><span class='comment'>/*</span></td></tr>
+<tr class="codeline" data-linenumber="2"><td class="num" id="LN2">2</td><td class="line"> <span class='comment'>* Copyright © 2001, 2002 Havoc Pennington</span></td></tr>
+<tr class="codeline" data-linenumber="3"><td class="num" id="LN3">3</td><td class="line"> <span class='comment'>* Copyright © 2002 Red Hat, Inc.</span></td></tr>
+<tr class="codeline" data-linenumber="4"><td class="num" id="LN4">4</td><td class="line"> <span class='comment'>* Copyright © 2002 Sun Microsystems</span></td></tr>
+<tr class="codeline" data-linenumber="5"><td class="num" id="LN5">5</td><td class="line"> <span class='comment'>* Copyright © 2003 Mariano Suarez-Alvarez</span></td></tr>
+<tr class="codeline" data-linenumber="6"><td class="num" id="LN6">6</td><td class="line"> <span class='comment'>* Copyright © 2008 Christian Persch</span></td></tr>
+<tr class="codeline" data-linenumber="7"><td class="num" id="LN7">7</td><td class="line"> <span class='comment'>* Copyright (C) 2012-2021 MATE Developers</span></td></tr>
+<tr class="codeline" data-linenumber="8"><td class="num" id="LN8">8</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="9"><td class="num" id="LN9">9</td><td class="line"> <span class='comment'>* Mate-terminal is free software; you can redistribute it and/or modify</span></td></tr>
+<tr class="codeline" data-linenumber="10"><td class="num" id="LN10">10</td><td class="line"> <span class='comment'>* it under the terms of the GNU General Public License as published by</span></td></tr>
+<tr class="codeline" data-linenumber="11"><td class="num" id="LN11">11</td><td class="line"> <span class='comment'>* the Free Software Foundation; either version 3 of the License, or</span></td></tr>
+<tr class="codeline" data-linenumber="12"><td class="num" id="LN12">12</td><td class="line"> <span class='comment'>* (at your option) any later version.</span></td></tr>
+<tr class="codeline" data-linenumber="13"><td class="num" id="LN13">13</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="14"><td class="num" id="LN14">14</td><td class="line"> <span class='comment'>* Mate-terminal is distributed in the hope that it will be useful,</span></td></tr>
+<tr class="codeline" data-linenumber="15"><td class="num" id="LN15">15</td><td class="line"> <span class='comment'>* but WITHOUT ANY WARRANTY; without even the implied warranty of</span></td></tr>
+<tr class="codeline" data-linenumber="16"><td class="num" id="LN16">16</td><td class="line"> <span class='comment'>* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></td></tr>
+<tr class="codeline" data-linenumber="17"><td class="num" id="LN17">17</td><td class="line"> <span class='comment'>* GNU General Public License for more details.</span></td></tr>
+<tr class="codeline" data-linenumber="18"><td class="num" id="LN18">18</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="19"><td class="num" id="LN19">19</td><td class="line"> <span class='comment'>* You should have received a copy of the GNU General Public License</span></td></tr>
+<tr class="codeline" data-linenumber="20"><td class="num" id="LN20">20</td><td class="line"> <span class='comment'>* along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.</span></td></tr>
+<tr class="codeline" data-linenumber="21"><td class="num" id="LN21">21</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="22"><td class="num" id="LN22">22</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="23"><td class="num" id="LN23">23</td><td class="line"><span class='directive'>#include &lt;config.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="24"><td class="num" id="LN24">24</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="25"><td class="num" id="LN25">25</td><td class="line"><span class='directive'>#include &lt;<span class='macro'>errno<span class='macro_popup'>(*__errno_location ())</span></span>.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="26"><td class="num" id="LN26">26</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="27"><td class="num" id="LN27">27</td><td class="line"><span class='directive'>#include &lt;glib.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="28"><td class="num" id="LN28">28</td><td class="line"><span class='directive'>#include &lt;dconf.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="29"><td class="num" id="LN29">29</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="30"><td class="num" id="LN30">30</td><td class="line"><span class='directive'>#include "terminal-intl.h"</span></td></tr>
+<tr class="codeline" data-linenumber="31"><td class="num" id="LN31">31</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="32"><td class="num" id="LN32">32</td><td class="line"><span class='directive'>#include "terminal-debug.h"</span></td></tr>
+<tr class="codeline" data-linenumber="33"><td class="num" id="LN33">33</td><td class="line"><span class='directive'>#include "terminal-app.h"</span></td></tr>
+<tr class="codeline" data-linenumber="34"><td class="num" id="LN34">34</td><td class="line"><span class='directive'>#include "terminal-accels.h"</span></td></tr>
+<tr class="codeline" data-linenumber="35"><td class="num" id="LN35">35</td><td class="line"><span class='directive'>#include "terminal-screen.h"</span></td></tr>
+<tr class="codeline" data-linenumber="36"><td class="num" id="LN36">36</td><td class="line"><span class='directive'>#include "terminal-screen-container.h"</span></td></tr>
+<tr class="codeline" data-linenumber="37"><td class="num" id="LN37">37</td><td class="line"><span class='directive'>#include "terminal-window.h"</span></td></tr>
+<tr class="codeline" data-linenumber="38"><td class="num" id="LN38">38</td><td class="line"><span class='directive'>#include "terminal-util.h"</span></td></tr>
+<tr class="codeline" data-linenumber="39"><td class="num" id="LN39">39</td><td class="line"><span class='directive'>#include "profile-editor.h"</span></td></tr>
+<tr class="codeline" data-linenumber="40"><td class="num" id="LN40">40</td><td class="line"><span class='directive'>#include "terminal-encoding.h"</span></td></tr>
+<tr class="codeline" data-linenumber="41"><td class="num" id="LN41">41</td><td class="line"><span class='directive'>#include &lt;string.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="42"><td class="num" id="LN42">42</td><td class="line"><span class='directive'>#include &lt;stdlib.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="43"><td class="num" id="LN43">43</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="44"><td class="num" id="LN44">44</td><td class="line"><span class='directive'>#ifdef <span class='macro'>HAVE_SMCLIENT<span class='macro_popup'>1</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="45"><td class="num" id="LN45">45</td><td class="line"><span class='directive'>#include "eggsmclient.h"</span></td></tr>
+<tr class="codeline" data-linenumber="46"><td class="num" id="LN46">46</td><td class="line"><span class='directive'>#include "eggdesktopfile.h"</span></td></tr>
+<tr class="codeline" data-linenumber="47"><td class="num" id="LN47">47</td><td class="line"><span class='directive'>#endif /* HAVE_SMCLIENT */</span></td></tr>
+<tr class="codeline" data-linenumber="48"><td class="num" id="LN48">48</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="49"><td class="num" id="LN49">49</td><td class="line"><span class='directive'>#define <span class='macro'>FALLBACK_PROFILE_ID<span class='macro_popup'>"default"</span></span> "default"</span></td></tr>
+<tr class="codeline" data-linenumber="50"><td class="num" id="LN50">50</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="51"><td class="num" id="LN51">51</td><td class="line"><span class='comment'>/* Settings storage works as follows:</span></td></tr>
+<tr class="codeline" data-linenumber="52"><td class="num" id="LN52">52</td><td class="line"> <span class='comment'>* /apps/mate-terminal/global/</span></td></tr>
+<tr class="codeline" data-linenumber="53"><td class="num" id="LN53">53</td><td class="line"> <span class='comment'>* /apps/mate-terminal/profiles/Foo/</span></td></tr>
+<tr class="codeline" data-linenumber="54"><td class="num" id="LN54">54</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="55"><td class="num" id="LN55">55</td><td class="line"> <span class='comment'>* It's somewhat tricky to manage the profiles/ dir since we need to track</span></td></tr>
+<tr class="codeline" data-linenumber="56"><td class="num" id="LN56">56</td><td class="line"> <span class='comment'>* the list of profiles, but GSettings doesn't have a concept of notifying that</span></td></tr>
+<tr class="codeline" data-linenumber="57"><td class="num" id="LN57">57</td><td class="line"> <span class='comment'>* a directory has appeared or disappeared.</span></td></tr>
+<tr class="codeline" data-linenumber="58"><td class="num" id="LN58">58</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="59"><td class="num" id="LN59">59</td><td class="line"> <span class='comment'>* Session state is stored entirely in the RestartCommand command line.</span></td></tr>
+<tr class="codeline" data-linenumber="60"><td class="num" id="LN60">60</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="61"><td class="num" id="LN61">61</td><td class="line"> <span class='comment'>* The number one rule: all stored information is EITHER per-session,</span></td></tr>
+<tr class="codeline" data-linenumber="62"><td class="num" id="LN62">62</td><td class="line"> <span class='comment'>* per-profile, or set from a command line option. THERE CAN BE NO</span></td></tr>
+<tr class="codeline" data-linenumber="63"><td class="num" id="LN63">63</td><td class="line"> <span class='comment'>* OVERLAP. The UI and implementation totally break if you overlap</span></td></tr>
+<tr class="codeline" data-linenumber="64"><td class="num" id="LN64">64</td><td class="line"> <span class='comment'>* these categories. See mate-terminal 1.x for why.</span></td></tr>
+<tr class="codeline" data-linenumber="65"><td class="num" id="LN65">65</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="66"><td class="num" id="LN66">66</td><td class="line"> <span class='comment'>* Don't use this code as an example of how to use GSettings - it's hugely</span></td></tr>
+<tr class="codeline" data-linenumber="67"><td class="num" id="LN67">67</td><td class="line"> <span class='comment'>* overcomplicated due to the profiles stuff. Most apps should not</span></td></tr>
+<tr class="codeline" data-linenumber="68"><td class="num" id="LN68">68</td><td class="line"> <span class='comment'>* have to do scary things of this nature, and should not have</span></td></tr>
+<tr class="codeline" data-linenumber="69"><td class="num" id="LN69">69</td><td class="line"> <span class='comment'>* a profiles feature.</span></td></tr>
+<tr class="codeline" data-linenumber="70"><td class="num" id="LN70">70</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="71"><td class="num" id="LN71">71</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="72"><td class="num" id="LN72">72</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="73"><td class="num" id="LN73">73</td><td class="line">GSettings *settings_global;</td></tr>
+<tr class="codeline" data-linenumber="74"><td class="num" id="LN74">74</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="75"><td class="num" id="LN75">75</td><td class="line"><span class='keyword'>struct</span> _TerminalAppClass</td></tr>
+<tr class="codeline" data-linenumber="76"><td class="num" id="LN76">76</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="77"><td class="num" id="LN77">77</td><td class="line"> GObjectClass parent_class;</td></tr>
+<tr class="codeline" data-linenumber="78"><td class="num" id="LN78">78</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="79"><td class="num" id="LN79">79</td><td class="line"> <span class='keyword'>void</span> (* quit) (TerminalApp *app);</td></tr>
+<tr class="codeline" data-linenumber="80"><td class="num" id="LN80">80</td><td class="line"> <span class='keyword'>void</span> (* profile_list_changed) (TerminalApp *app);</td></tr>
+<tr class="codeline" data-linenumber="81"><td class="num" id="LN81">81</td><td class="line"> <span class='keyword'>void</span> (* encoding_list_changed) (TerminalApp *app);</td></tr>
+<tr class="codeline" data-linenumber="82"><td class="num" id="LN82">82</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="83"><td class="num" id="LN83">83</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="84"><td class="num" id="LN84">84</td><td class="line"><span class='keyword'>struct</span> _TerminalApp</td></tr>
+<tr class="codeline" data-linenumber="85"><td class="num" id="LN85">85</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="86"><td class="num" id="LN86">86</td><td class="line"> GObject parent_instance;</td></tr>
+<tr class="codeline" data-linenumber="87"><td class="num" id="LN87">87</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="88"><td class="num" id="LN88">88</td><td class="line"> GList *windows;</td></tr>
+<tr class="codeline" data-linenumber="89"><td class="num" id="LN89">89</td><td class="line"> GtkWidget *new_profile_dialog;</td></tr>
+<tr class="codeline" data-linenumber="90"><td class="num" id="LN90">90</td><td class="line"> GtkWidget *manage_profiles_dialog;</td></tr>
+<tr class="codeline" data-linenumber="91"><td class="num" id="LN91">91</td><td class="line"> GtkWidget *manage_profiles_list;</td></tr>
+<tr class="codeline" data-linenumber="92"><td class="num" id="LN92">92</td><td class="line"> GtkWidget *manage_profiles_new_button;</td></tr>
+<tr class="codeline" data-linenumber="93"><td class="num" id="LN93">93</td><td class="line"> GtkWidget *manage_profiles_edit_button;</td></tr>
+<tr class="codeline" data-linenumber="94"><td class="num" id="LN94">94</td><td class="line"> GtkWidget *manage_profiles_delete_button;</td></tr>
+<tr class="codeline" data-linenumber="95"><td class="num" id="LN95">95</td><td class="line"> GtkWidget *manage_profiles_default_menu;</td></tr>
+<tr class="codeline" data-linenumber="96"><td class="num" id="LN96">96</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="97"><td class="num" id="LN97">97</td><td class="line"> GSettings *settings_font;</td></tr>
+<tr class="codeline" data-linenumber="98"><td class="num" id="LN98">98</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="99"><td class="num" id="LN99">99</td><td class="line"> GHashTable *profiles;</td></tr>
+<tr class="codeline" data-linenumber="100"><td class="num" id="LN100">100</td><td class="line"> <span class='keyword'>char</span>* default_profile_id;</td></tr>
+<tr class="codeline" data-linenumber="101"><td class="num" id="LN101">101</td><td class="line"> TerminalProfile *default_profile;</td></tr>
+<tr class="codeline" data-linenumber="102"><td class="num" id="LN102">102</td><td class="line"> gboolean default_profile_locked;</td></tr>
+<tr class="codeline" data-linenumber="103"><td class="num" id="LN103">103</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="104"><td class="num" id="LN104">104</td><td class="line"> GHashTable *encodings;</td></tr>
+<tr class="codeline" data-linenumber="105"><td class="num" id="LN105">105</td><td class="line"> gboolean encodings_locked;</td></tr>
+<tr class="codeline" data-linenumber="106"><td class="num" id="LN106">106</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="107"><td class="num" id="LN107">107</td><td class="line"> PangoFontDescription *system_font_desc;</td></tr>
+<tr class="codeline" data-linenumber="108"><td class="num" id="LN108">108</td><td class="line"> gboolean enable_mnemonics;</td></tr>
+<tr class="codeline" data-linenumber="109"><td class="num" id="LN109">109</td><td class="line"> gboolean enable_menu_accels;</td></tr>
+<tr class="codeline" data-linenumber="110"><td class="num" id="LN110">110</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="111"><td class="num" id="LN111">111</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="112"><td class="num" id="LN112">112</td><td class="line"><span class='keyword'>enum</span></td></tr>
+<tr class="codeline" data-linenumber="113"><td class="num" id="LN113">113</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="114"><td class="num" id="LN114">114</td><td class="line"> PROP_0,</td></tr>
+<tr class="codeline" data-linenumber="115"><td class="num" id="LN115">115</td><td class="line"> PROP_DEFAULT_PROFILE,</td></tr>
+<tr class="codeline" data-linenumber="116"><td class="num" id="LN116">116</td><td class="line"> PROP_ENABLE_MENU_BAR_ACCEL,</td></tr>
+<tr class="codeline" data-linenumber="117"><td class="num" id="LN117">117</td><td class="line"> PROP_ENABLE_MNEMONICS,</td></tr>
+<tr class="codeline" data-linenumber="118"><td class="num" id="LN118">118</td><td class="line"> PROP_SYSTEM_FONT,</td></tr>
+<tr class="codeline" data-linenumber="119"><td class="num" id="LN119">119</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="120"><td class="num" id="LN120">120</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="121"><td class="num" id="LN121">121</td><td class="line"><span class='keyword'>enum</span></td></tr>
+<tr class="codeline" data-linenumber="122"><td class="num" id="LN122">122</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="123"><td class="num" id="LN123">123</td><td class="line"> QUIT,</td></tr>
+<tr class="codeline" data-linenumber="124"><td class="num" id="LN124">124</td><td class="line"> PROFILE_LIST_CHANGED,</td></tr>
+<tr class="codeline" data-linenumber="125"><td class="num" id="LN125">125</td><td class="line"> ENCODING_LIST_CHANGED,</td></tr>
+<tr class="codeline" data-linenumber="126"><td class="num" id="LN126">126</td><td class="line"> LAST_SIGNAL</td></tr>
+<tr class="codeline" data-linenumber="127"><td class="num" id="LN127">127</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="128"><td class="num" id="LN128">128</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="129"><td class="num" id="LN129">129</td><td class="line"><span class='keyword'>static</span> guint signals[LAST_SIGNAL] = { 0 };</td></tr>
+<tr class="codeline" data-linenumber="130"><td class="num" id="LN130">130</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="131"><td class="num" id="LN131">131</td><td class="line"><span class='keyword'>enum</span></td></tr>
+<tr class="codeline" data-linenumber="132"><td class="num" id="LN132">132</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="133"><td class="num" id="LN133">133</td><td class="line"> COL_PROFILE,</td></tr>
+<tr class="codeline" data-linenumber="134"><td class="num" id="LN134">134</td><td class="line"> NUM_COLUMNS</td></tr>
+<tr class="codeline" data-linenumber="135"><td class="num" id="LN135">135</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="136"><td class="num" id="LN136">136</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="137"><td class="num" id="LN137">137</td><td class="line"><span class='keyword'>enum</span></td></tr>
+<tr class="codeline" data-linenumber="138"><td class="num" id="LN138">138</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="139"><td class="num" id="LN139">139</td><td class="line"> SOURCE_DEFAULT = 0,</td></tr>
+<tr class="codeline" data-linenumber="140"><td class="num" id="LN140">140</td><td class="line"> SOURCE_SESSION = 1</td></tr>
+<tr class="codeline" data-linenumber="141"><td class="num" id="LN141">141</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="142"><td class="num" id="LN142">142</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="143"><td class="num" id="LN143">143</td><td class="line"><span class='keyword'>static</span> TerminalApp *global_app = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="144"><td class="num" id="LN144">144</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="145"><td class="num" id="LN145">145</td><td class="line"><span class='directive'>#define <span class='macro'>MONOSPACE_FONT_SCHEMA<span class='macro_popup'>"org.mate.interface"</span></span> "org.mate.interface"</span></td></tr>
+<tr class="codeline" data-linenumber="146"><td class="num" id="LN146">146</td><td class="line"><span class='directive'>#define <span class='macro'>MONOSPACE_FONT_KEY<span class='macro_popup'>"monospace-font-name"</span></span> "monospace-font-name"</span></td></tr>
+<tr class="codeline" data-linenumber="147"><td class="num" id="LN147">147</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_MONOSPACE_FONT<span class='macro_popup'>("Monospace 10")</span></span> ("Monospace 10")</span></td></tr>
+<tr class="codeline" data-linenumber="148"><td class="num" id="LN148">148</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="149"><td class="num" id="LN149">149</td><td class="line"><span class='directive'>#define <span class='macro'>ENABLE_MNEMONICS_KEY<span class='macro_popup'>"use-mnemonics"</span></span> "use-mnemonics"</span></td></tr>
+<tr class="codeline" data-linenumber="150"><td class="num" id="LN150">150</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_ENABLE_MNEMONICS<span class='macro_popup'>((!(0)))</span></span> (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="151"><td class="num" id="LN151">151</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="152"><td class="num" id="LN152">152</td><td class="line"><span class='directive'>#define <span class='macro'>ENABLE_MENU_BAR_ACCEL_KEY<span class='macro_popup'>"use-menu-accelerators"</span></span> "use-menu-accelerators"</span></td></tr>
+<tr class="codeline" data-linenumber="153"><td class="num" id="LN153">153</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_ENABLE_MENU_BAR_ACCEL<span class='macro_popup'>((!(0)))</span></span> (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="154"><td class="num" id="LN154">154</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="155"><td class="num" id="LN155">155</td><td class="line"><span class='directive'>#define <span class='macro'>PROFILE_LIST_KEY<span class='macro_popup'>"profile-list"</span></span> "profile-list"</span></td></tr>
+<tr class="codeline" data-linenumber="156"><td class="num" id="LN156">156</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_PROFILE_KEY<span class='macro_popup'>"default-profile"</span></span> "default-profile"</span></td></tr>
+<tr class="codeline" data-linenumber="157"><td class="num" id="LN157">157</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="158"><td class="num" id="LN158">158</td><td class="line"><span class='directive'>#define <span class='macro'>ENCODING_LIST_KEY<span class='macro_popup'>"active-encodings"</span></span> "active-encodings"</span></td></tr>
+<tr class="codeline" data-linenumber="159"><td class="num" id="LN159">159</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="160"><td class="num" id="LN160">160</td><td class="line"><span class='comment'>/* two following functions were copied from libmate-desktop to get rid</span></td></tr>
+<tr class="codeline" data-linenumber="161"><td class="num" id="LN161">161</td><td class="line"> <span class='comment'>* of dependency on it</span></td></tr>
+<tr class="codeline" data-linenumber="162"><td class="num" id="LN162">162</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="163"><td class="num" id="LN163">163</td><td class="line"> <span class='comment'>* FIXME: I suspect there's no need for excessive copies, we might use</span></td></tr>
+<tr class="codeline" data-linenumber="164"><td class="num" id="LN164">164</td><td class="line"> <span class='comment'>* existing profile list to form GVariant's and write them to GSettings</span></td></tr>
+<tr class="codeline" data-linenumber="165"><td class="num" id="LN165">165</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="166"><td class="num" id="LN166">166</td><td class="line"><span class='keyword'>static</span> gboolean</td></tr>
+<tr class="codeline" data-linenumber="167"><td class="num" id="LN167">167</td><td class="line">gsettings_append_strv (GSettings *settings,</td></tr>
+<tr class="codeline" data-linenumber="168"><td class="num" id="LN168">168</td><td class="line"> <span class='keyword'>const</span> gchar *key,</td></tr>
+<tr class="codeline" data-linenumber="169"><td class="num" id="LN169">169</td><td class="line"> <span class='keyword'>const</span> gchar *value)</td></tr>
+<tr class="codeline" data-linenumber="170"><td class="num" id="LN170">170</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="171"><td class="num" id="LN171">171</td><td class="line"> gchar **old;</td></tr>
+<tr class="codeline" data-linenumber="172"><td class="num" id="LN172">172</td><td class="line"> gchar **new;</td></tr>
+<tr class="codeline" data-linenumber="173"><td class="num" id="LN173">173</td><td class="line"> gint size;</td></tr>
+<tr class="codeline" data-linenumber="174"><td class="num" id="LN174">174</td><td class="line"> gboolean retval;</td></tr>
+<tr class="codeline" data-linenumber="175"><td class="num" id="LN175">175</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="176"><td class="num" id="LN176">176</td><td class="line"> old = g_settings_get_strv (settings, key);</td></tr>
+<tr class="codeline" data-linenumber="177"><td class="num" id="LN177">177</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="178"><td class="num" id="LN178">178</td><td class="line"> <span class='keyword'>for</span> (size = 0; old[size] != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; size++);</td></tr>
+<tr class="codeline" data-linenumber="179"><td class="num" id="LN179">179</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="180"><td class="num" id="LN180">180</td><td class="line"> size += 1; <span class='comment'>/* appended value */</span></td></tr>
+<tr class="codeline" data-linenumber="181"><td class="num" id="LN181">181</td><td class="line"> size += 1; <span class='comment'>/* NULL */</span></td></tr>
+<tr class="codeline" data-linenumber="182"><td class="num" id="LN182">182</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="183"><td class="num" id="LN183">183</td><td class="line"> new = g_realloc_n (old, size, <span class='keyword'>sizeof</span> (gchar *));</td></tr>
+<tr class="codeline" data-linenumber="184"><td class="num" id="LN184">184</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="185"><td class="num" id="LN185">185</td><td class="line"> new[size - 2] = <span class='macro'>g_strdup (value)<span class='macro_popup'>g_strdup_inline (value)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="186"><td class="num" id="LN186">186</td><td class="line"> new[size - 1] = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="187"><td class="num" id="LN187">187</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="188"><td class="num" id="LN188">188</td><td class="line"> retval = g_settings_set_strv (settings, key,</td></tr>
+<tr class="codeline" data-linenumber="189"><td class="num" id="LN189">189</td><td class="line"> (<span class='keyword'>const</span> gchar **) new);</td></tr>
+<tr class="codeline" data-linenumber="190"><td class="num" id="LN190">190</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="191"><td class="num" id="LN191">191</td><td class="line"> g_strfreev (new);</td></tr>
+<tr class="codeline" data-linenumber="192"><td class="num" id="LN192">192</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="193"><td class="num" id="LN193">193</td><td class="line"> <span class='keyword'>return</span> retval;</td></tr>
+<tr class="codeline" data-linenumber="194"><td class="num" id="LN194">194</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="195"><td class="num" id="LN195">195</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="196"><td class="num" id="LN196">196</td><td class="line"><span class='keyword'>static</span> gboolean</td></tr>
+<tr class="codeline" data-linenumber="197"><td class="num" id="LN197">197</td><td class="line">gsettings_remove_all_from_strv (GSettings *settings,</td></tr>
+<tr class="codeline" data-linenumber="198"><td class="num" id="LN198">198</td><td class="line"> <span class='keyword'>const</span> gchar *key,</td></tr>
+<tr class="codeline" data-linenumber="199"><td class="num" id="LN199">199</td><td class="line"> <span class='keyword'>const</span> gchar *value)</td></tr>
+<tr class="codeline" data-linenumber="200"><td class="num" id="LN200">200</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="201"><td class="num" id="LN201">201</td><td class="line"> GArray *array;</td></tr>
+<tr class="codeline" data-linenumber="202"><td class="num" id="LN202">202</td><td class="line"> gchar **old;</td></tr>
+<tr class="codeline" data-linenumber="203"><td class="num" id="LN203">203</td><td class="line"> gint i;</td></tr>
+<tr class="codeline" data-linenumber="204"><td class="num" id="LN204">204</td><td class="line"> gboolean retval;</td></tr>
+<tr class="codeline" data-linenumber="205"><td class="num" id="LN205">205</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="206"><td class="num" id="LN206">206</td><td class="line"> old = g_settings_get_strv (settings, key);</td></tr>
+<tr class="codeline" data-linenumber="207"><td class="num" id="LN207">207</td><td class="line"> array = g_array_new (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>, <span class='keyword'>sizeof</span> (gchar *));</td></tr>
+<tr class="codeline" data-linenumber="208"><td class="num" id="LN208">208</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="209"><td class="num" id="LN209">209</td><td class="line"> <span class='keyword'>for</span> (i = 0; old[i] != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; i++) {</td></tr>
+<tr class="codeline" data-linenumber="210"><td class="num" id="LN210">210</td><td class="line"> <span class='keyword'>if</span> (g_strcmp0 (old[i], value) != 0)</td></tr>
+<tr class="codeline" data-linenumber="211"><td class="num" id="LN211">211</td><td class="line"> array = <span class='macro'>g_array_append_val (array, old[i])<span class='macro_popup'>g_array_append_vals (array, &amp;(old[i]), 1)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="212"><td class="num" id="LN212">212</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="213"><td class="num" id="LN213">213</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="214"><td class="num" id="LN214">214</td><td class="line"> retval = g_settings_set_strv (settings, key,</td></tr>
+<tr class="codeline" data-linenumber="215"><td class="num" id="LN215">215</td><td class="line"> (<span class='keyword'>const</span> gchar **) array-&gt;data);</td></tr>
+<tr class="codeline" data-linenumber="216"><td class="num" id="LN216">216</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="217"><td class="num" id="LN217">217</td><td class="line"> g_strfreev (old);</td></tr>
+<tr class="codeline" data-linenumber="218"><td class="num" id="LN218">218</td><td class="line"> g_array_free (array, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="219"><td class="num" id="LN219">219</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="220"><td class="num" id="LN220">220</td><td class="line"> <span class='keyword'>return</span> retval;</td></tr>
+<tr class="codeline" data-linenumber="221"><td class="num" id="LN221">221</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="222"><td class="num" id="LN222">222</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="223"><td class="num" id="LN223">223</td><td class="line"><span class='comment'>/* Helper functions */</span></td></tr>
+<tr class="codeline" data-linenumber="224"><td class="num" id="LN224">224</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="225"><td class="num" id="LN225">225</td><td class="line"><span class='keyword'>static</span> GdkScreen*</td></tr>
+<tr class="codeline" data-linenumber="226"><td class="num" id="LN226">226</td><td class="line">terminal_app_get_screen_by_display_name (<span class='keyword'>const</span> <span class='keyword'>char</span> *display_name)</td></tr>
+<tr class="codeline" data-linenumber="227"><td class="num" id="LN227">227</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="228"><td class="num" id="LN228">228</td><td class="line"> GdkDisplay *display = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="229"><td class="num" id="LN229">229</td><td class="line"> GdkScreen *screen = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="230"><td class="num" id="LN230">230</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="231"><td class="num" id="LN231">231</td><td class="line"> <span class='keyword'>if</span> (display_name == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="232"><td class="num" id="LN232">232</td><td class="line"> display = gdk_display_get_default ();</td></tr>
+<tr class="codeline" data-linenumber="233"><td class="num" id="LN233">233</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="234"><td class="num" id="LN234">234</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="235"><td class="num" id="LN235">235</td><td class="line"> GSList *displays, *l;</td></tr>
+<tr class="codeline" data-linenumber="236"><td class="num" id="LN236">236</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *period;</td></tr>
+<tr class="codeline" data-linenumber="237"><td class="num" id="LN237">237</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="238"><td class="num" id="LN238">238</td><td class="line"> period = strrchr (display_name, '.');</td></tr>
+<tr class="codeline" data-linenumber="239"><td class="num" id="LN239">239</td><td class="line"> displays = gdk_display_manager_list_displays (gdk_display_manager_get ());</td></tr>
+<tr class="codeline" data-linenumber="240"><td class="num" id="LN240">240</td><td class="line"> <span class='keyword'>for</span> (l = displays; l != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; l = l-&gt;next)</td></tr>
+<tr class="codeline" data-linenumber="241"><td class="num" id="LN241">241</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="242"><td class="num" id="LN242">242</td><td class="line"> GdkDisplay *disp = l-&gt;data;</td></tr>
+<tr class="codeline" data-linenumber="243"><td class="num" id="LN243">243</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="244"><td class="num" id="LN244">244</td><td class="line"> <span class='comment'>/* compare without the screen number part, if present */</span></td></tr>
+<tr class="codeline" data-linenumber="245"><td class="num" id="LN245">245</td><td class="line"> <span class='keyword'>if</span> ((period &amp;&amp; strncmp (gdk_display_get_name (disp), display_name, period - display_name) == 0) ||</td></tr>
+<tr class="codeline" data-linenumber="246"><td class="num" id="LN246">246</td><td class="line"> (period == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span> &amp;&amp; strcmp (gdk_display_get_name (disp), display_name) == 0))</td></tr>
+<tr class="codeline" data-linenumber="247"><td class="num" id="LN247">247</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="248"><td class="num" id="LN248">248</td><td class="line"> display = disp;</td></tr>
+<tr class="codeline" data-linenumber="249"><td class="num" id="LN249">249</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="250"><td class="num" id="LN250">250</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="251"><td class="num" id="LN251">251</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="252"><td class="num" id="LN252">252</td><td class="line"> g_slist_free (displays);</td></tr>
+<tr class="codeline" data-linenumber="253"><td class="num" id="LN253">253</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="254"><td class="num" id="LN254">254</td><td class="line"> <span class='keyword'>if</span> (display == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="255"><td class="num" id="LN255">255</td><td class="line"> display = gdk_display_open (display_name); <span class='comment'>/* FIXME we never close displays */</span></td></tr>
+<tr class="codeline" data-linenumber="256"><td class="num" id="LN256">256</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="257"><td class="num" id="LN257">257</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="258"><td class="num" id="LN258">258</td><td class="line"> <span class='keyword'>if</span> (display == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="259"><td class="num" id="LN259">259</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="260"><td class="num" id="LN260">260</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="261"><td class="num" id="LN261">261</td><td class="line"> screen = gdk_display_get_default_screen (display);</td></tr>
+<tr class="codeline" data-linenumber="262"><td class="num" id="LN262">262</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="263"><td class="num" id="LN263">263</td><td class="line"> <span class='keyword'>return</span> screen;</td></tr>
+<tr class="codeline" data-linenumber="264"><td class="num" id="LN264">264</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="265"><td class="num" id="LN265">265</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="266"><td class="num" id="LN266">266</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>int</span></td></tr>
+<tr class="codeline" data-linenumber="267"><td class="num" id="LN267">267</td><td class="line">terminal_app_get_workspace_for_window (TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="268"><td class="num" id="LN268">268</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="269"><td class="num" id="LN269">269</td><td class="line"> <span class='keyword'>int</span> ret = -1;</td></tr>
+<tr class="codeline" data-linenumber="270"><td class="num" id="LN270">270</td><td class="line"> guchar *data = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="271"><td class="num" id="LN271">271</td><td class="line"> GdkAtom atom;</td></tr>
+<tr class="codeline" data-linenumber="272"><td class="num" id="LN272">272</td><td class="line"> GdkAtom cardinal_atom;</td></tr>
+<tr class="codeline" data-linenumber="273"><td class="num" id="LN273">273</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="274"><td class="num" id="LN274">274</td><td class="line"> atom = gdk_atom_intern_static_string (<span class='string_literal'>"_NET_WM_DESKTOP"</span>);</td></tr>
+<tr class="codeline" data-linenumber="275"><td class="num" id="LN275">275</td><td class="line"> cardinal_atom = gdk_atom_intern_static_string (<span class='string_literal'>"CARDINAL"</span>);</td></tr>
+<tr class="codeline" data-linenumber="276"><td class="num" id="LN276">276</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="277"><td class="num" id="LN277">277</td><td class="line"> gdk_property_get (gtk_widget_get_window(<span class='macro'>GTK_WIDGET(window)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_widget_get_type ()))))))</span></span>),</td></tr>
+<tr class="codeline" data-linenumber="278"><td class="num" id="LN278">278</td><td class="line"> atom, cardinal_atom, 0, 8, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="279"><td class="num" id="LN279">279</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, &amp;data);</td></tr>
+<tr class="codeline" data-linenumber="280"><td class="num" id="LN280">280</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="281"><td class="num" id="LN281">281</td><td class="line"> <span class='keyword'>if</span> (data)</td></tr>
+<tr class="codeline" data-linenumber="282"><td class="num" id="LN282">282</td><td class="line"> ret = *(<span class='keyword'>int</span> *)data;</td></tr>
+<tr class="codeline" data-linenumber="283"><td class="num" id="LN283">283</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="284"><td class="num" id="LN284">284</td><td class="line"> g_free (data);</td></tr>
+<tr class="codeline" data-linenumber="285"><td class="num" id="LN285">285</td><td class="line"> <span class='keyword'>return</span> ret;</td></tr>
+<tr class="codeline" data-linenumber="286"><td class="num" id="LN286">286</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="287"><td class="num" id="LN287">287</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="288"><td class="num" id="LN288">288</td><td class="line"><span class='comment'>/* Menubar mnemonics settings handling */</span></td></tr>
+<tr class="codeline" data-linenumber="289"><td class="num" id="LN289">289</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="290"><td class="num" id="LN290">290</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>int</span></td></tr>
+<tr class="codeline" data-linenumber="291"><td class="num" id="LN291">291</td><td class="line">profiles_alphabetic_cmp (gconstpointer pa,</td></tr>
+<tr class="codeline" data-linenumber="292"><td class="num" id="LN292">292</td><td class="line"> gconstpointer pb)</td></tr>
+<tr class="codeline" data-linenumber="293"><td class="num" id="LN293">293</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="294"><td class="num" id="LN294">294</td><td class="line"> TerminalProfile *a = (TerminalProfile *) pa;</td></tr>
+<tr class="codeline" data-linenumber="295"><td class="num" id="LN295">295</td><td class="line"> TerminalProfile *b = (TerminalProfile *) pb;</td></tr>
+<tr class="codeline" data-linenumber="296"><td class="num" id="LN296">296</td><td class="line"> <span class='keyword'>int</span> result;</td></tr>
+<tr class="codeline" data-linenumber="297"><td class="num" id="LN297">297</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="298"><td class="num" id="LN298">298</td><td class="line"> result = g_utf8_collate (terminal_profile_get_property_string (a, <span class='macro'>TERMINAL_PROFILE_VISIBLE_NAME<span class='macro_popup'>"visible-name"</span></span>),</td></tr>
+<tr class="codeline" data-linenumber="299"><td class="num" id="LN299">299</td><td class="line"> terminal_profile_get_property_string (b, <span class='macro'>TERMINAL_PROFILE_VISIBLE_NAME<span class='macro_popup'>"visible-name"</span></span>));</td></tr>
+<tr class="codeline" data-linenumber="300"><td class="num" id="LN300">300</td><td class="line"> <span class='keyword'>if</span> (result == 0)</td></tr>
+<tr class="codeline" data-linenumber="301"><td class="num" id="LN301">301</td><td class="line"> result = strcmp (terminal_profile_get_property_string (a, <span class='macro'>TERMINAL_PROFILE_NAME<span class='macro_popup'>"name"</span></span>),</td></tr>
+<tr class="codeline" data-linenumber="302"><td class="num" id="LN302">302</td><td class="line"> terminal_profile_get_property_string (b, <span class='macro'>TERMINAL_PROFILE_NAME<span class='macro_popup'>"name"</span></span>));</td></tr>
+<tr class="codeline" data-linenumber="303"><td class="num" id="LN303">303</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="304"><td class="num" id="LN304">304</td><td class="line"> <span class='keyword'>return</span> result;</td></tr>
+<tr class="codeline" data-linenumber="305"><td class="num" id="LN305">305</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="306"><td class="num" id="LN306">306</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="307"><td class="num" id="LN307">307</td><td class="line"><span class='keyword'>typedef</span> <span class='keyword'>struct</span></td></tr>
+<tr class="codeline" data-linenumber="308"><td class="num" id="LN308">308</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="309"><td class="num" id="LN309">309</td><td class="line"> TerminalProfile *result;</td></tr>
+<tr class="codeline" data-linenumber="310"><td class="num" id="LN310">310</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *target;</td></tr>
+<tr class="codeline" data-linenumber="311"><td class="num" id="LN311">311</td><td class="line">} LookupInfo;</td></tr>
+<tr class="codeline" data-linenumber="312"><td class="num" id="LN312">312</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="313"><td class="num" id="LN313">313</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="314"><td class="num" id="LN314">314</td><td class="line">profiles_lookup_by_visible_name_foreach (gpointer key,</td></tr>
+<tr class="codeline" data-linenumber="315"><td class="num" id="LN315">315</td><td class="line"> gpointer value,</td></tr>
+<tr class="codeline" data-linenumber="316"><td class="num" id="LN316">316</td><td class="line"> gpointer data)</td></tr>
+<tr class="codeline" data-linenumber="317"><td class="num" id="LN317">317</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="318"><td class="num" id="LN318">318</td><td class="line"> LookupInfo *info = data;</td></tr>
+<tr class="codeline" data-linenumber="319"><td class="num" id="LN319">319</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *name;</td></tr>
+<tr class="codeline" data-linenumber="320"><td class="num" id="LN320">320</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="321"><td class="num" id="LN321">321</td><td class="line"> name = terminal_profile_get_property_string (value, <span class='macro'>TERMINAL_PROFILE_VISIBLE_NAME<span class='macro_popup'>"visible-name"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="322"><td class="num" id="LN322">322</td><td class="line"> <span class='keyword'>if</span> (name &amp;&amp; strcmp (info-&gt;target, name) == 0)</td></tr>
+<tr class="codeline" data-linenumber="323"><td class="num" id="LN323">323</td><td class="line"> info-&gt;result = value;</td></tr>
+<tr class="codeline" data-linenumber="324"><td class="num" id="LN324">324</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="325"><td class="num" id="LN325">325</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="326"><td class="num" id="LN326">326</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="327"><td class="num" id="LN327">327</td><td class="line">terminal_window_destroyed (TerminalWindow *window,</td></tr>
+<tr class="codeline" data-linenumber="328"><td class="num" id="LN328">328</td><td class="line"> TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="329"><td class="num" id="LN329">329</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="330"><td class="num" id="LN330">330</td><td class="line"> app-&gt;windows = g_list_remove (app-&gt;windows, window);</td></tr>
+<tr class="codeline" data-linenumber="331"><td class="num" id="LN331">331</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="332"><td class="num" id="LN332">332</td><td class="line"> <span class='keyword'>if</span> (app-&gt;windows == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="333"><td class="num" id="LN333">333</td><td class="line"> g_signal_emit (app, signals[QUIT], 0);</td></tr>
+<tr class="codeline" data-linenumber="334"><td class="num" id="LN334">334</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="335"><td class="num" id="LN335">335</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="336"><td class="num" id="LN336">336</td><td class="line"><span class='keyword'>static</span> TerminalProfile *</td></tr>
+<tr class="codeline" data-linenumber="337"><td class="num" id="LN337">337</td><td class="line">terminal_app_create_profile (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="338"><td class="num" id="LN338">338</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *name)</td></tr>
+<tr class="codeline" data-linenumber="339"><td class="num" id="LN339">339</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="340"><td class="num" id="LN340">340</td><td class="line"> TerminalProfile *profile;</td></tr>
+<tr class="codeline" data-linenumber="341"><td class="num" id="LN341">341</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="342"><td class="num" id="LN342">342</td><td class="line"> <span class='macro'>g_assert (terminal_app_get_profile_by_name (app, name) == NULL)<span class='macro_popup'>do { if (terminal_app_get_profile_by_name (app, name) == ((void<br>*)0)) ; else g_assertion_message_expr (((gchar*) 0), "terminal-app.c"<br>, 342, ((const char*) (__func__)), "terminal_app_get_profile_by_name (app, name) == NULL"<br>); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="343"><td class="num" id="LN343">343</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="344"><td class="num" id="LN344">344</td><td class="line"> profile = _terminal_profile_new (name);</td></tr>
+<tr class="codeline" data-linenumber="345"><td class="num" id="LN345">345</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="346"><td class="num" id="LN346">346</td><td class="line"> g_hash_table_insert (app-&gt;profiles,</td></tr>
+<tr class="codeline" data-linenumber="347"><td class="num" id="LN347">347</td><td class="line"> <span class='macro'>g_strdup (terminal_profile_get_property_string (profile, TERMINAL_PROFILE_NAME))<span class='macro_popup'>g_strdup_inline (terminal_profile_get_property_string (profile<br>, "name"))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="348"><td class="num" id="LN348">348</td><td class="line"> profile <span class='comment'>/* adopts the refcount */</span>);</td></tr>
+<tr class="codeline" data-linenumber="349"><td class="num" id="LN349">349</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="350"><td class="num" id="LN350">350</td><td class="line"> <span class='keyword'>if</span> (app-&gt;default_profile == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span> &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="351"><td class="num" id="LN351">351</td><td class="line"> app-&gt;default_profile_id != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span> &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="352"><td class="num" id="LN352">352</td><td class="line"> strcmp (app-&gt;default_profile_id,</td></tr>
+<tr class="codeline" data-linenumber="353"><td class="num" id="LN353">353</td><td class="line"> terminal_profile_get_property_string (profile, <span class='macro'>TERMINAL_PROFILE_NAME<span class='macro_popup'>"name"</span></span>)) == 0)</td></tr>
+<tr class="codeline" data-linenumber="354"><td class="num" id="LN354">354</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="355"><td class="num" id="LN355">355</td><td class="line"> <span class='comment'>/* We are the default profile */</span></td></tr>
+<tr class="codeline" data-linenumber="356"><td class="num" id="LN356">356</td><td class="line"> app-&gt;default_profile = profile;</td></tr>
+<tr class="codeline" data-linenumber="357"><td class="num" id="LN357">357</td><td class="line"> g_object_notify (<span class='macro'>G_OBJECT (app)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, <span class='macro'>TERMINAL_APP_DEFAULT_PROFILE<span class='macro_popup'>"default-profile"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="358"><td class="num" id="LN358">358</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="359"><td class="num" id="LN359">359</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="360"><td class="num" id="LN360">360</td><td class="line"> <span class='keyword'>return</span> profile;</td></tr>
+<tr class="codeline" data-linenumber="361"><td class="num" id="LN361">361</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="362"><td class="num" id="LN362">362</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="363"><td class="num" id="LN363">363</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="364"><td class="num" id="LN364">364</td><td class="line">terminal_app_delete_profile (TerminalProfile *profile)</td></tr>
+<tr class="codeline" data-linenumber="365"><td class="num" id="LN365">365</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="366"><td class="num" id="LN366">366</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *profile_name;</td></tr>
+<tr class="codeline" data-linenumber="367"><td class="num" id="LN367">367</td><td class="line"> <span class='keyword'>char</span> *profile_dir;</td></tr>
+<tr class="codeline" data-linenumber="368"><td class="num" id="LN368">368</td><td class="line"> GError *error = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="369"><td class="num" id="LN369">369</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="370"><td class="num" id="LN370">370</td><td class="line"> profile_name = terminal_profile_get_property_string (profile, <span class='macro'>TERMINAL_PROFILE_NAME<span class='macro_popup'>"name"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="371"><td class="num" id="LN371">371</td><td class="line"> profile_dir = g_strconcat (<span class='macro'>CONF_PROFILE_PREFIX<span class='macro_popup'>"/org/mate/terminal/profiles/"</span></span>, profile_name, <span class='string_literal'>"/"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="372"><td class="num" id="LN372">372</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="373"><td class="num" id="LN373">373</td><td class="line"> gsettings_remove_all_from_strv (settings_global, <span class='macro'>PROFILE_LIST_KEY<span class='macro_popup'>"profile-list"</span></span>, profile_name);</td></tr>
+<tr class="codeline" data-linenumber="374"><td class="num" id="LN374">374</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="375"><td class="num" id="LN375">375</td><td class="line"> <span class='comment'>/* And remove the profile directory */</span></td></tr>
+<tr class="codeline" data-linenumber="376"><td class="num" id="LN376">376</td><td class="line"> DConfClient *client = dconf_client_new ();</td></tr>
+<tr class="codeline" data-linenumber="377"><td class="num" id="LN377">377</td><td class="line"> <span class='keyword'>if</span> (!dconf_client_write_sync (client, profile_dir, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, &amp;error))</td></tr>
+<tr class="codeline" data-linenumber="378"><td class="num" id="LN378">378</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="379"><td class="num" id="LN379">379</td><td class="line"> g_warning (<span class='string_literal'>"Failed to recursively unset %s: %s\n"</span>, profile_dir, error-&gt;message);</td></tr>
+<tr class="codeline" data-linenumber="380"><td class="num" id="LN380">380</td><td class="line"> g_error_free (error);</td></tr>
+<tr class="codeline" data-linenumber="381"><td class="num" id="LN381">381</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="382"><td class="num" id="LN382">382</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="383"><td class="num" id="LN383">383</td><td class="line"> g_object_unref (client);</td></tr>
+<tr class="codeline" data-linenumber="384"><td class="num" id="LN384">384</td><td class="line"> g_free (profile_dir);</td></tr>
+<tr class="codeline" data-linenumber="385"><td class="num" id="LN385">385</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="386"><td class="num" id="LN386">386</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="387"><td class="num" id="LN387">387</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="388"><td class="num" id="LN388">388</td><td class="line">terminal_app_profile_cell_data_func (GtkTreeViewColumn *tree_column,</td></tr>
+<tr class="codeline" data-linenumber="389"><td class="num" id="LN389">389</td><td class="line"> GtkCellRenderer *cell,</td></tr>
+<tr class="codeline" data-linenumber="390"><td class="num" id="LN390">390</td><td class="line"> GtkTreeModel *tree_model,</td></tr>
+<tr class="codeline" data-linenumber="391"><td class="num" id="LN391">391</td><td class="line"> GtkTreeIter *iter,</td></tr>
+<tr class="codeline" data-linenumber="392"><td class="num" id="LN392">392</td><td class="line"> gpointer data)</td></tr>
+<tr class="codeline" data-linenumber="393"><td class="num" id="LN393">393</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="394"><td class="num" id="LN394">394</td><td class="line"> TerminalProfile *profile;</td></tr>
+<tr class="codeline" data-linenumber="395"><td class="num" id="LN395">395</td><td class="line"> GValue value = { 0, };</td></tr>
+<tr class="codeline" data-linenumber="396"><td class="num" id="LN396">396</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="397"><td class="num" id="LN397">397</td><td class="line"> gtk_tree_model_get (tree_model, iter, (<span class='keyword'>int</span>) COL_PROFILE, &amp;profile, (<span class='keyword'>int</span>) -1);</td></tr>
+<tr class="codeline" data-linenumber="398"><td class="num" id="LN398">398</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="399"><td class="num" id="LN399">399</td><td class="line"> g_value_init (&amp;value, <span class='macro'>G_TYPE_STRING<span class='macro_popup'>((GType) ((16) &lt;&lt; (2)))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="400"><td class="num" id="LN400">400</td><td class="line"> g_object_get_property (<span class='macro'>G_OBJECT (profile)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((profile)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, <span class='string_literal'>"visible-name"</span>, &amp;value);</td></tr>
+<tr class="codeline" data-linenumber="401"><td class="num" id="LN401">401</td><td class="line"> g_object_set_property (<span class='macro'>G_OBJECT (cell)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((cell)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, <span class='string_literal'>"text"</span>, &amp;value);</td></tr>
+<tr class="codeline" data-linenumber="402"><td class="num" id="LN402">402</td><td class="line"> g_value_unset (&amp;value);</td></tr>
+<tr class="codeline" data-linenumber="403"><td class="num" id="LN403">403</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="404"><td class="num" id="LN404">404</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="405"><td class="num" id="LN405">405</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>int</span></td></tr>
+<tr class="codeline" data-linenumber="406"><td class="num" id="LN406">406</td><td class="line">terminal_app_profile_sort_func (GtkTreeModel *model,</td></tr>
+<tr class="codeline" data-linenumber="407"><td class="num" id="LN407">407</td><td class="line"> GtkTreeIter *a,</td></tr>
+<tr class="codeline" data-linenumber="408"><td class="num" id="LN408">408</td><td class="line"> GtkTreeIter *b,</td></tr>
+<tr class="codeline" data-linenumber="409"><td class="num" id="LN409">409</td><td class="line"> gpointer user_data)</td></tr>
+<tr class="codeline" data-linenumber="410"><td class="num" id="LN410">410</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="411"><td class="num" id="LN411">411</td><td class="line"> TerminalProfile *profile_a, *profile_b;</td></tr>
+<tr class="codeline" data-linenumber="412"><td class="num" id="LN412">412</td><td class="line"> <span class='keyword'>int</span> retval;</td></tr>
+<tr class="codeline" data-linenumber="413"><td class="num" id="LN413">413</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="414"><td class="num" id="LN414">414</td><td class="line"> gtk_tree_model_get (model, a, (<span class='keyword'>int</span>) COL_PROFILE, &amp;profile_a, (<span class='keyword'>int</span>) -1);</td></tr>
+<tr class="codeline" data-linenumber="415"><td class="num" id="LN415">415</td><td class="line"> gtk_tree_model_get (model, b, (<span class='keyword'>int</span>) COL_PROFILE, &amp;profile_b, (<span class='keyword'>int</span>) -1);</td></tr>
+<tr class="codeline" data-linenumber="416"><td class="num" id="LN416">416</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="417"><td class="num" id="LN417">417</td><td class="line"> retval = profiles_alphabetic_cmp (profile_a, profile_b);</td></tr>
+<tr class="codeline" data-linenumber="418"><td class="num" id="LN418">418</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="419"><td class="num" id="LN419">419</td><td class="line"> g_object_unref (profile_a);</td></tr>
+<tr class="codeline" data-linenumber="420"><td class="num" id="LN420">420</td><td class="line"> g_object_unref (profile_b);</td></tr>
+<tr class="codeline" data-linenumber="421"><td class="num" id="LN421">421</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="422"><td class="num" id="LN422">422</td><td class="line"> <span class='keyword'>return</span> retval;</td></tr>
+<tr class="codeline" data-linenumber="423"><td class="num" id="LN423">423</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="424"><td class="num" id="LN424">424</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="425"><td class="num" id="LN425">425</td><td class="line"><span class='keyword'>static</span> <span class='comment'>/* ref */</span> GtkTreeModel *</td></tr>
+<tr class="codeline" data-linenumber="426"><td class="num" id="LN426">426</td><td class="line">terminal_app_get_profile_liststore (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="427"><td class="num" id="LN427">427</td><td class="line"> TerminalProfile *selected_profile,</td></tr>
+<tr class="codeline" data-linenumber="428"><td class="num" id="LN428">428</td><td class="line"> GtkTreeIter *selected_profile_iter,</td></tr>
+<tr class="codeline" data-linenumber="429"><td class="num" id="LN429">429</td><td class="line"> gboolean *selected_profile_iter_set)</td></tr>
+<tr class="codeline" data-linenumber="430"><td class="num" id="LN430">430</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="431"><td class="num" id="LN431">431</td><td class="line"> GtkListStore *store;</td></tr>
+<tr class="codeline" data-linenumber="432"><td class="num" id="LN432">432</td><td class="line"> GtkTreeIter iter;</td></tr>
+<tr class="codeline" data-linenumber="433"><td class="num" id="LN433">433</td><td class="line"> GList *profiles, *l;</td></tr>
+<tr class="codeline" data-linenumber="434"><td class="num" id="LN434">434</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="435"><td class="num" id="LN435">435</td><td class="line"> store = gtk_list_store_new (NUM_COLUMNS, <span class='macro'>TERMINAL_TYPE_PROFILE<span class='macro_popup'>(terminal_profile_get_type ())</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="436"><td class="num" id="LN436">436</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="437"><td class="num" id="LN437">437</td><td class="line"> *selected_profile_iter_set = <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="438"><td class="num" id="LN438">438</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="439"><td class="num" id="LN439">439</td><td class="line"> <span class='keyword'>if</span> (selected_profile &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="440"><td class="num" id="LN440">440</td><td class="line"> _terminal_profile_get_forgotten (selected_profile))</td></tr>
+<tr class="codeline" data-linenumber="441"><td class="num" id="LN441">441</td><td class="line"> selected_profile = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="442"><td class="num" id="LN442">442</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="443"><td class="num" id="LN443">443</td><td class="line"> profiles = terminal_app_get_profile_list (app);</td></tr>
+<tr class="codeline" data-linenumber="444"><td class="num" id="LN444">444</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="445"><td class="num" id="LN445">445</td><td class="line"> <span class='keyword'>for</span> (l = profiles; l != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; l = l-&gt;next)</td></tr>
+<tr class="codeline" data-linenumber="446"><td class="num" id="LN446">446</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="447"><td class="num" id="LN447">447</td><td class="line"> TerminalProfile *profile = <span class='macro'>TERMINAL_PROFILE (l-&gt;data)<span class='macro_popup'>((((TerminalProfile*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((l-&gt;data)), ((terminal_profile_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="448"><td class="num" id="LN448">448</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="449"><td class="num" id="LN449">449</td><td class="line"> gtk_list_store_insert_with_values (store, &amp;iter, 0,</td></tr>
+<tr class="codeline" data-linenumber="450"><td class="num" id="LN450">450</td><td class="line"> (<span class='keyword'>int</span>) COL_PROFILE, profile,</td></tr>
+<tr class="codeline" data-linenumber="451"><td class="num" id="LN451">451</td><td class="line"> (<span class='keyword'>int</span>) -1);</td></tr>
+<tr class="codeline" data-linenumber="452"><td class="num" id="LN452">452</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="453"><td class="num" id="LN453">453</td><td class="line"> <span class='keyword'>if</span> (selected_profile_iter &amp;&amp; profile == selected_profile)</td></tr>
+<tr class="codeline" data-linenumber="454"><td class="num" id="LN454">454</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="455"><td class="num" id="LN455">455</td><td class="line"> *selected_profile_iter = iter;</td></tr>
+<tr class="codeline" data-linenumber="456"><td class="num" id="LN456">456</td><td class="line"> *selected_profile_iter_set = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="457"><td class="num" id="LN457">457</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="458"><td class="num" id="LN458">458</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="459"><td class="num" id="LN459">459</td><td class="line"> g_list_free (profiles);</td></tr>
+<tr class="codeline" data-linenumber="460"><td class="num" id="LN460">460</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="461"><td class="num" id="LN461">461</td><td class="line"> <span class='comment'>/* Now turn on sorting */</span></td></tr>
+<tr class="codeline" data-linenumber="462"><td class="num" id="LN462">462</td><td class="line"> gtk_tree_sortable_set_sort_func (<span class='macro'>GTK_TREE_SORTABLE (store)<span class='macro_popup'>((((GtkTreeSortable*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((store)), ((gtk_tree_sortable_get_type ()))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="463"><td class="num" id="LN463">463</td><td class="line"> COL_PROFILE,</td></tr>
+<tr class="codeline" data-linenumber="464"><td class="num" id="LN464">464</td><td class="line"> terminal_app_profile_sort_func,</td></tr>
+<tr class="codeline" data-linenumber="465"><td class="num" id="LN465">465</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="466"><td class="num" id="LN466">466</td><td class="line"> gtk_tree_sortable_set_sort_column_id (<span class='macro'>GTK_TREE_SORTABLE (store)<span class='macro_popup'>((((GtkTreeSortable*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((store)), ((gtk_tree_sortable_get_type ()))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="467"><td class="num" id="LN467">467</td><td class="line"> COL_PROFILE, GTK_SORT_ASCENDING);</td></tr>
+<tr class="codeline" data-linenumber="468"><td class="num" id="LN468">468</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="469"><td class="num" id="LN469">469</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>GTK_TREE_MODEL (store)<span class='macro_popup'>((((GtkTreeModel*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((store)), ((gtk_tree_model_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="470"><td class="num" id="LN470">470</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="471"><td class="num" id="LN471">471</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="472"><td class="num" id="LN472">472</td><td class="line"><span class='keyword'>static</span> <span class='comment'>/* ref */</span> TerminalProfile*</td></tr>
+<tr class="codeline" data-linenumber="473"><td class="num" id="LN473">473</td><td class="line">profile_combo_box_get_selected (GtkWidget *widget)</td></tr>
+<tr class="codeline" data-linenumber="474"><td class="num" id="LN474">474</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="475"><td class="num" id="LN475">475</td><td class="line"> GtkComboBox *combo = <span class='macro'>GTK_COMBO_BOX (widget)<span class='macro_popup'>((((GtkComboBox*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((widget)), ((gtk_combo_box_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="476"><td class="num" id="LN476">476</td><td class="line"> TerminalProfile *profile = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="477"><td class="num" id="LN477">477</td><td class="line"> GtkTreeIter iter;</td></tr>
+<tr class="codeline" data-linenumber="478"><td class="num" id="LN478">478</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="479"><td class="num" id="LN479">479</td><td class="line"> <span class='keyword'>if</span> (gtk_combo_box_get_active_iter (combo, &amp;iter))</td></tr>
+<tr class="codeline" data-linenumber="480"><td class="num" id="LN480">480</td><td class="line"> gtk_tree_model_get (gtk_combo_box_get_model (combo), &amp;iter,</td></tr>
+<tr class="codeline" data-linenumber="481"><td class="num" id="LN481">481</td><td class="line"> (<span class='keyword'>int</span>) COL_PROFILE, &amp;profile, (<span class='keyword'>int</span>) -1);</td></tr>
+<tr class="codeline" data-linenumber="482"><td class="num" id="LN482">482</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="483"><td class="num" id="LN483">483</td><td class="line"> <span class='keyword'>return</span> profile;</td></tr>
+<tr class="codeline" data-linenumber="484"><td class="num" id="LN484">484</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="485"><td class="num" id="LN485">485</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="486"><td class="num" id="LN486">486</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="487"><td class="num" id="LN487">487</td><td class="line">profile_combo_box_refill (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="488"><td class="num" id="LN488">488</td><td class="line"> GtkWidget *widget)</td></tr>
+<tr class="codeline" data-linenumber="489"><td class="num" id="LN489">489</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="490"><td class="num" id="LN490">490</td><td class="line"> GtkComboBox *combo = <span class='macro'>GTK_COMBO_BOX (widget)<span class='macro_popup'>((((GtkComboBox*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((widget)), ((gtk_combo_box_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="491"><td class="num" id="LN491">491</td><td class="line"> GtkTreeIter iter;</td></tr>
+<tr class="codeline" data-linenumber="492"><td class="num" id="LN492">492</td><td class="line"> gboolean iter_set;</td></tr>
+<tr class="codeline" data-linenumber="493"><td class="num" id="LN493">493</td><td class="line"> TerminalProfile *selected_profile;</td></tr>
+<tr class="codeline" data-linenumber="494"><td class="num" id="LN494">494</td><td class="line"> GtkTreeModel *model;</td></tr>
+<tr class="codeline" data-linenumber="495"><td class="num" id="LN495">495</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="496"><td class="num" id="LN496">496</td><td class="line"> selected_profile = profile_combo_box_get_selected (widget);</td></tr>
+<tr class="codeline" data-linenumber="497"><td class="num" id="LN497">497</td><td class="line"> <span class='keyword'>if</span> (!selected_profile)</td></tr>
+<tr class="codeline" data-linenumber="498"><td class="num" id="LN498">498</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="499"><td class="num" id="LN499">499</td><td class="line"> selected_profile = terminal_app_get_default_profile (app);</td></tr>
+<tr class="codeline" data-linenumber="500"><td class="num" id="LN500">500</td><td class="line"> <span class='keyword'>if</span> (selected_profile)</td></tr>
+<tr class="codeline" data-linenumber="501"><td class="num" id="LN501">501</td><td class="line"> <span class='macro'>g_object_ref (selected_profile)<span class='macro_popup'>((__typeof__ (selected_profile)) (g_object_ref) (selected_profile<br>))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="502"><td class="num" id="LN502">502</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="503"><td class="num" id="LN503">503</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="504"><td class="num" id="LN504">504</td><td class="line"> model = terminal_app_get_profile_liststore (app,</td></tr>
+<tr class="codeline" data-linenumber="505"><td class="num" id="LN505">505</td><td class="line"> selected_profile,</td></tr>
+<tr class="codeline" data-linenumber="506"><td class="num" id="LN506">506</td><td class="line"> &amp;iter,</td></tr>
+<tr class="codeline" data-linenumber="507"><td class="num" id="LN507">507</td><td class="line"> &amp;iter_set);</td></tr>
+<tr class="codeline" data-linenumber="508"><td class="num" id="LN508">508</td><td class="line"> gtk_combo_box_set_model (combo, model);</td></tr>
+<tr class="codeline" data-linenumber="509"><td class="num" id="LN509">509</td><td class="line"> g_object_unref (model);</td></tr>
+<tr class="codeline" data-linenumber="510"><td class="num" id="LN510">510</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="511"><td class="num" id="LN511">511</td><td class="line"> <span class='keyword'>if</span> (iter_set)</td></tr>
+<tr class="codeline" data-linenumber="512"><td class="num" id="LN512">512</td><td class="line"> gtk_combo_box_set_active_iter (combo, &amp;iter);</td></tr>
+<tr class="codeline" data-linenumber="513"><td class="num" id="LN513">513</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="514"><td class="num" id="LN514">514</td><td class="line"> <span class='keyword'>if</span> (selected_profile)</td></tr>
+<tr class="codeline" data-linenumber="515"><td class="num" id="LN515">515</td><td class="line"> g_object_unref (selected_profile);</td></tr>
+<tr class="codeline" data-linenumber="516"><td class="num" id="LN516">516</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="517"><td class="num" id="LN517">517</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="518"><td class="num" id="LN518">518</td><td class="line"><span class='keyword'>static</span> GtkWidget*</td></tr>
+<tr class="codeline" data-linenumber="519"><td class="num" id="LN519">519</td><td class="line">profile_combo_box_new (TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="520"><td class="num" id="LN520">520</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="521"><td class="num" id="LN521">521</td><td class="line"> GtkWidget *combo;</td></tr>
+<tr class="codeline" data-linenumber="522"><td class="num" id="LN522">522</td><td class="line"> GtkCellRenderer *renderer;</td></tr>
+<tr class="codeline" data-linenumber="523"><td class="num" id="LN523">523</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="524"><td class="num" id="LN524">524</td><td class="line"> combo = gtk_combo_box_new ();</td></tr>
+<tr class="codeline" data-linenumber="525"><td class="num" id="LN525">525</td><td class="line"> terminal_util_set_atk_name_description (combo, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>_(<span class='string_literal'>"Click button to choose profile"</span>)<span class='macro_popup'>gettext ("Click button to choose profile")</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="526"><td class="num" id="LN526">526</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="527"><td class="num" id="LN527">527</td><td class="line"> renderer = gtk_cell_renderer_text_new ();</td></tr>
+<tr class="codeline" data-linenumber="528"><td class="num" id="LN528">528</td><td class="line"> gtk_cell_layout_pack_start (<span class='macro'>GTK_CELL_LAYOUT (combo)<span class='macro_popup'>((((GtkCellLayout*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((combo)), ((gtk_cell_layout_get_type ()))))))</span></span>, renderer, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="529"><td class="num" id="LN529">529</td><td class="line"> gtk_cell_layout_set_cell_data_func (<span class='macro'>GTK_CELL_LAYOUT (combo)<span class='macro_popup'>((((GtkCellLayout*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((combo)), ((gtk_cell_layout_get_type ()))))))</span></span>, renderer,</td></tr>
+<tr class="codeline" data-linenumber="530"><td class="num" id="LN530">530</td><td class="line"> (GtkCellLayoutDataFunc) terminal_app_profile_cell_data_func,</td></tr>
+<tr class="codeline" data-linenumber="531"><td class="num" id="LN531">531</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="532"><td class="num" id="LN532">532</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="533"><td class="num" id="LN533">533</td><td class="line"> profile_combo_box_refill (app, combo);</td></tr>
+<tr class="codeline" data-linenumber="534"><td class="num" id="LN534">534</td><td class="line"> <span class='macro'>g_signal_connect (app, <span class='string_literal'>"profile-list-changed"</span>,<span class='macro_popup'>g_signal_connect_data ((app), ("profile-list-changed"), (((GCallback<br>) (profile_combo_box_refill))), (combo), ((void*)0), (GConnectFlags<br>) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="535"><td class="num" id="LN535">535</td><td class="line"> <span class='macro'>G_CALLBACK (profile_combo_box_refill), combo)<span class='macro_popup'>g_signal_connect_data ((app), ("profile-list-changed"), (((GCallback<br>) (profile_combo_box_refill))), (combo), ((void*)0), (GConnectFlags<br>) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="536"><td class="num" id="LN536">536</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="537"><td class="num" id="LN537">537</td><td class="line"> gtk_widget_show (combo);</td></tr>
+<tr class="codeline" data-linenumber="538"><td class="num" id="LN538">538</td><td class="line"> <span class='keyword'>return</span> combo;</td></tr>
+<tr class="codeline" data-linenumber="539"><td class="num" id="LN539">539</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="540"><td class="num" id="LN540">540</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="541"><td class="num" id="LN541">541</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="542"><td class="num" id="LN542">542</td><td class="line">profile_combo_box_changed_cb (GtkWidget *widget,</td></tr>
+<tr class="codeline" data-linenumber="543"><td class="num" id="LN543">543</td><td class="line"> TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="544"><td class="num" id="LN544">544</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="545"><td class="num" id="LN545">545</td><td class="line"> TerminalProfile *profile;</td></tr>
+<tr class="codeline" data-linenumber="546"><td class="num" id="LN546">546</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="547"><td class="num" id="LN547">547</td><td class="line"> profile = profile_combo_box_get_selected (widget);</td></tr>
+<tr class="codeline" data-linenumber="548"><td class="num" id="LN548">548</td><td class="line"> <span class='keyword'>if</span> (!profile)</td></tr>
+<tr class="codeline" data-linenumber="549"><td class="num" id="LN549">549</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="550"><td class="num" id="LN550">550</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="551"><td class="num" id="LN551">551</td><td class="line"> g_settings_set_string (settings_global, <span class='macro'>DEFAULT_PROFILE_KEY<span class='macro_popup'>"default-profile"</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="552"><td class="num" id="LN552">552</td><td class="line"> terminal_profile_get_property_string (profile, <span class='macro'>TERMINAL_PROFILE_NAME<span class='macro_popup'>"name"</span></span>));</td></tr>
+<tr class="codeline" data-linenumber="553"><td class="num" id="LN553">553</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="554"><td class="num" id="LN554">554</td><td class="line"> <span class='comment'>/* Even though the GSettings change notification does this, it happens too late.</span></td></tr>
+<tr class="codeline" data-linenumber="555"><td class="num" id="LN555">555</td><td class="line"> <span class='comment'>* In some cases, the default profile changes twice in quick succession,</span></td></tr>
+<tr class="codeline" data-linenumber="556"><td class="num" id="LN556">556</td><td class="line"> <span class='comment'>* and update_default_profile must be called in sync with those changes.</span></td></tr>
+<tr class="codeline" data-linenumber="557"><td class="num" id="LN557">557</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="558"><td class="num" id="LN558">558</td><td class="line"> app-&gt;default_profile = profile;</td></tr>
+<tr class="codeline" data-linenumber="559"><td class="num" id="LN559">559</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="560"><td class="num" id="LN560">560</td><td class="line"> g_object_notify (<span class='macro'>G_OBJECT (app)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, <span class='macro'>TERMINAL_APP_DEFAULT_PROFILE<span class='macro_popup'>"default-profile"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="561"><td class="num" id="LN561">561</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="562"><td class="num" id="LN562">562</td><td class="line"> g_object_unref (profile);</td></tr>
+<tr class="codeline" data-linenumber="563"><td class="num" id="LN563">563</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="564"><td class="num" id="LN564">564</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="565"><td class="num" id="LN565">565</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="566"><td class="num" id="LN566">566</td><td class="line">profile_list_treeview_refill (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="567"><td class="num" id="LN567">567</td><td class="line"> GtkWidget *widget)</td></tr>
+<tr class="codeline" data-linenumber="568"><td class="num" id="LN568">568</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="569"><td class="num" id="LN569">569</td><td class="line"> GtkTreeView *tree_view = <span class='macro'>GTK_TREE_VIEW (widget)<span class='macro_popup'>((((GtkTreeView*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((widget)), ((gtk_tree_view_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="570"><td class="num" id="LN570">570</td><td class="line"> GtkTreeIter iter;</td></tr>
+<tr class="codeline" data-linenumber="571"><td class="num" id="LN571">571</td><td class="line"> gboolean iter_set;</td></tr>
+<tr class="codeline" data-linenumber="572"><td class="num" id="LN572">572</td><td class="line"> GtkTreeSelection *selection;</td></tr>
+<tr class="codeline" data-linenumber="573"><td class="num" id="LN573">573</td><td class="line"> GtkTreeModel *model;</td></tr>
+<tr class="codeline" data-linenumber="574"><td class="num" id="LN574">574</td><td class="line"> TerminalProfile *selected_profile = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="575"><td class="num" id="LN575">575</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="576"><td class="num" id="LN576">576</td><td class="line"> model = gtk_tree_view_get_model (tree_view);</td></tr>
+<tr class="codeline" data-linenumber="577"><td class="num" id="LN577">577</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="578"><td class="num" id="LN578">578</td><td class="line"> selection = gtk_tree_view_get_selection (tree_view);</td></tr>
+<tr class="codeline" data-linenumber="579"><td class="num" id="LN579">579</td><td class="line"> <span class='keyword'>if</span> (gtk_tree_selection_get_selected (selection, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, &amp;iter))</td></tr>
+<tr class="codeline" data-linenumber="580"><td class="num" id="LN580">580</td><td class="line"> gtk_tree_model_get (model, &amp;iter, (<span class='keyword'>int</span>) COL_PROFILE, &amp;selected_profile, (<span class='keyword'>int</span>) -1);</td></tr>
+<tr class="codeline" data-linenumber="581"><td class="num" id="LN581">581</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="582"><td class="num" id="LN582">582</td><td class="line"> model = terminal_app_get_profile_liststore (terminal_app_get (),</td></tr>
+<tr class="codeline" data-linenumber="583"><td class="num" id="LN583">583</td><td class="line"> selected_profile,</td></tr>
+<tr class="codeline" data-linenumber="584"><td class="num" id="LN584">584</td><td class="line"> &amp;iter,</td></tr>
+<tr class="codeline" data-linenumber="585"><td class="num" id="LN585">585</td><td class="line"> &amp;iter_set);</td></tr>
+<tr class="codeline" data-linenumber="586"><td class="num" id="LN586">586</td><td class="line"> gtk_tree_view_set_model (tree_view, model);</td></tr>
+<tr class="codeline" data-linenumber="587"><td class="num" id="LN587">587</td><td class="line"> g_object_unref (model);</td></tr>
+<tr class="codeline" data-linenumber="588"><td class="num" id="LN588">588</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="589"><td class="num" id="LN589">589</td><td class="line"> <span class='keyword'>if</span> (!iter_set)</td></tr>
+<tr class="codeline" data-linenumber="590"><td class="num" id="LN590">590</td><td class="line"> iter_set = gtk_tree_model_get_iter_first (model, &amp;iter);</td></tr>
+<tr class="codeline" data-linenumber="591"><td class="num" id="LN591">591</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="592"><td class="num" id="LN592">592</td><td class="line"> <span class='keyword'>if</span> (iter_set)</td></tr>
+<tr class="codeline" data-linenumber="593"><td class="num" id="LN593">593</td><td class="line"> gtk_tree_selection_select_iter (selection, &amp;iter);</td></tr>
+<tr class="codeline" data-linenumber="594"><td class="num" id="LN594">594</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="595"><td class="num" id="LN595">595</td><td class="line"> <span class='keyword'>if</span> (selected_profile)</td></tr>
+<tr class="codeline" data-linenumber="596"><td class="num" id="LN596">596</td><td class="line"> g_object_unref (selected_profile);</td></tr>
+<tr class="codeline" data-linenumber="597"><td class="num" id="LN597">597</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="598"><td class="num" id="LN598">598</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="599"><td class="num" id="LN599">599</td><td class="line"><span class='keyword'>static</span> GtkWidget*</td></tr>
+<tr class="codeline" data-linenumber="600"><td class="num" id="LN600">600</td><td class="line">profile_list_treeview_create (TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="601"><td class="num" id="LN601">601</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="602"><td class="num" id="LN602">602</td><td class="line"> GtkWidget *tree_view;</td></tr>
+<tr class="codeline" data-linenumber="603"><td class="num" id="LN603">603</td><td class="line"> GtkTreeSelection *selection;</td></tr>
+<tr class="codeline" data-linenumber="604"><td class="num" id="LN604">604</td><td class="line"> GtkCellRenderer *renderer;</td></tr>
+<tr class="codeline" data-linenumber="605"><td class="num" id="LN605">605</td><td class="line"> GtkTreeViewColumn *column;</td></tr>
+<tr class="codeline" data-linenumber="606"><td class="num" id="LN606">606</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="607"><td class="num" id="LN607">607</td><td class="line"> tree_view = gtk_tree_view_new ();</td></tr>
+<tr class="codeline" data-linenumber="608"><td class="num" id="LN608">608</td><td class="line"> terminal_util_set_atk_name_description (tree_view, <span class='macro'>_(<span class='string_literal'>"Profile list"</span>)<span class='macro_popup'>gettext ("Profile list")</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="609"><td class="num" id="LN609">609</td><td class="line"> gtk_tree_view_set_headers_visible (<span class='macro'>GTK_TREE_VIEW (tree_view)<span class='macro_popup'>((((GtkTreeView*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((tree_view)), ((gtk_tree_view_get_type ()))))))</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="610"><td class="num" id="LN610">610</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="611"><td class="num" id="LN611">611</td><td class="line"> selection = gtk_tree_view_get_selection (<span class='macro'>GTK_TREE_VIEW (tree_view)<span class='macro_popup'>((((GtkTreeView*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((tree_view)), ((gtk_tree_view_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="612"><td class="num" id="LN612">612</td><td class="line"> gtk_tree_selection_set_mode (<span class='macro'>GTK_TREE_SELECTION (selection)<span class='macro_popup'>((((GtkTreeSelection*) (void *) g_type_check_instance_cast ((<br>GTypeInstance*) ((selection)), ((gtk_tree_selection_get_type (<br>)))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="613"><td class="num" id="LN613">613</td><td class="line"> GTK_SELECTION_BROWSE);</td></tr>
+<tr class="codeline" data-linenumber="614"><td class="num" id="LN614">614</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="615"><td class="num" id="LN615">615</td><td class="line"> column = gtk_tree_view_column_new ();</td></tr>
+<tr class="codeline" data-linenumber="616"><td class="num" id="LN616">616</td><td class="line"> renderer = gtk_cell_renderer_text_new ();</td></tr>
+<tr class="codeline" data-linenumber="617"><td class="num" id="LN617">617</td><td class="line"> gtk_cell_layout_pack_start (<span class='macro'>GTK_CELL_LAYOUT (column)<span class='macro_popup'>((((GtkCellLayout*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((column)), ((gtk_cell_layout_get_type ()))))))</span></span>, renderer, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="618"><td class="num" id="LN618">618</td><td class="line"> gtk_cell_layout_set_cell_data_func (<span class='macro'>GTK_CELL_LAYOUT (column)<span class='macro_popup'>((((GtkCellLayout*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((column)), ((gtk_cell_layout_get_type ()))))))</span></span>, renderer,</td></tr>
+<tr class="codeline" data-linenumber="619"><td class="num" id="LN619">619</td><td class="line"> (GtkCellLayoutDataFunc) terminal_app_profile_cell_data_func,</td></tr>
+<tr class="codeline" data-linenumber="620"><td class="num" id="LN620">620</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="621"><td class="num" id="LN621">621</td><td class="line"> gtk_tree_view_append_column (<span class='macro'>GTK_TREE_VIEW (tree_view)<span class='macro_popup'>((((GtkTreeView*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((tree_view)), ((gtk_tree_view_get_type ()))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="622"><td class="num" id="LN622">622</td><td class="line"> <span class='macro'>GTK_TREE_VIEW_COLUMN (column)<span class='macro_popup'>((((GtkTreeViewColumn*) (void *) g_type_check_instance_cast (<br>(GTypeInstance*) ((column)), ((gtk_tree_view_column_get_type (<br>)))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="623"><td class="num" id="LN623">623</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="624"><td class="num" id="LN624">624</td><td class="line"> <span class='keyword'>return</span> tree_view;</td></tr>
+<tr class="codeline" data-linenumber="625"><td class="num" id="LN625">625</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="626"><td class="num" id="LN626">626</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="627"><td class="num" id="LN627">627</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="628"><td class="num" id="LN628">628</td><td class="line">profile_list_delete_confirm_response_cb (GtkWidget *dialog,</td></tr>
+<tr class="codeline" data-linenumber="629"><td class="num" id="LN629">629</td><td class="line"> <span class='keyword'>int</span> response)</td></tr>
+<tr class="codeline" data-linenumber="630"><td class="num" id="LN630">630</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="631"><td class="num" id="LN631">631</td><td class="line"> TerminalProfile *profile;</td></tr>
+<tr class="codeline" data-linenumber="632"><td class="num" id="LN632">632</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="633"><td class="num" id="LN633">633</td><td class="line"> profile = <span class='macro'>TERMINAL_PROFILE (g_object_get_data (G_OBJECT (dialog), <span class='string_literal'>"profile"</span>))<span class='macro_popup'>((((TerminalProfile*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((g_object_get_data (((((GObject*) (void *) g_type_check_instance_cast<br> ((GTypeInstance*) ((dialog)), (((GType) ((20) &lt;&lt; (2)))<br>))))), "profile"))), ((terminal_profile_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="634"><td class="num" id="LN634">634</td><td class="line"> <span class='macro'>g_assert (profile != NULL)<span class='macro_popup'>do { if (profile != ((void*)0)) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-app.c", 634, ((const char*) (__func__<br>)), "profile != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="635"><td class="num" id="LN635">635</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="636"><td class="num" id="LN636">636</td><td class="line"> <span class='keyword'>if</span> (response == GTK_RESPONSE_ACCEPT)</td></tr>
+<tr class="codeline" data-linenumber="637"><td class="num" id="LN637">637</td><td class="line"> terminal_app_delete_profile (profile);</td></tr>
+<tr class="codeline" data-linenumber="638"><td class="num" id="LN638">638</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="639"><td class="num" id="LN639">639</td><td class="line"> gtk_widget_destroy (dialog);</td></tr>
+<tr class="codeline" data-linenumber="640"><td class="num" id="LN640">640</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="641"><td class="num" id="LN641">641</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="642"><td class="num" id="LN642">642</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="643"><td class="num" id="LN643">643</td><td class="line">mate_dialog_add_button (GtkDialog *dialog,</td></tr>
+<tr class="codeline" data-linenumber="644"><td class="num" id="LN644">644</td><td class="line"> <span class='keyword'>const</span> gchar *button_text,</td></tr>
+<tr class="codeline" data-linenumber="645"><td class="num" id="LN645">645</td><td class="line"> <span class='keyword'>const</span> gchar *icon_name,</td></tr>
+<tr class="codeline" data-linenumber="646"><td class="num" id="LN646">646</td><td class="line"> gint response_id)</td></tr>
+<tr class="codeline" data-linenumber="647"><td class="num" id="LN647">647</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="648"><td class="num" id="LN648">648</td><td class="line"> GtkWidget *button;</td></tr>
+<tr class="codeline" data-linenumber="649"><td class="num" id="LN649">649</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="650"><td class="num" id="LN650">650</td><td class="line"> button = gtk_button_new_with_mnemonic (button_text);</td></tr>
+<tr class="codeline" data-linenumber="651"><td class="num" id="LN651">651</td><td class="line"> gtk_button_set_image (<span class='macro'>GTK_BUTTON (button)<span class='macro_popup'>((((GtkButton*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((button)), ((gtk_button_get_type ()))))))</span></span>, gtk_image_new_from_icon_name (icon_name, GTK_ICON_SIZE_BUTTON));</td></tr>
+<tr class="codeline" data-linenumber="652"><td class="num" id="LN652">652</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="653"><td class="num" id="LN653">653</td><td class="line"> gtk_button_set_use_underline (<span class='macro'>GTK_BUTTON (button)<span class='macro_popup'>((((GtkButton*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((button)), ((gtk_button_get_type ()))))))</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="654"><td class="num" id="LN654">654</td><td class="line"> gtk_style_context_add_class (gtk_widget_get_style_context (button), <span class='string_literal'>"text-button"</span>);</td></tr>
+<tr class="codeline" data-linenumber="655"><td class="num" id="LN655">655</td><td class="line"> gtk_widget_set_can_default (button, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="656"><td class="num" id="LN656">656</td><td class="line"> gtk_widget_show (button);</td></tr>
+<tr class="codeline" data-linenumber="657"><td class="num" id="LN657">657</td><td class="line"> gtk_dialog_add_action_widget (<span class='macro'>GTK_DIALOG (dialog)<span class='macro_popup'>((((GtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((dialog)), ((gtk_dialog_get_type ()))))))</span></span>, button, response_id);</td></tr>
+<tr class="codeline" data-linenumber="658"><td class="num" id="LN658">658</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="659"><td class="num" id="LN659">659</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="660"><td class="num" id="LN660">660</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="661"><td class="num" id="LN661">661</td><td class="line">profile_list_delete_button_clicked_cb (GtkWidget *button,</td></tr>
+<tr class="codeline" data-linenumber="662"><td class="num" id="LN662">662</td><td class="line"> GtkWidget *widget)</td></tr>
+<tr class="codeline" data-linenumber="663"><td class="num" id="LN663">663</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="664"><td class="num" id="LN664">664</td><td class="line"> GtkTreeView *tree_view = <span class='macro'>GTK_TREE_VIEW (widget)<span class='macro_popup'>((((GtkTreeView*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((widget)), ((gtk_tree_view_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="665"><td class="num" id="LN665">665</td><td class="line"> GtkTreeSelection *selection;</td></tr>
+<tr class="codeline" data-linenumber="666"><td class="num" id="LN666">666</td><td class="line"> GtkWidget *dialog;</td></tr>
+<tr class="codeline" data-linenumber="667"><td class="num" id="LN667">667</td><td class="line"> GtkTreeIter iter;</td></tr>
+<tr class="codeline" data-linenumber="668"><td class="num" id="LN668">668</td><td class="line"> GtkTreeModel *model;</td></tr>
+<tr class="codeline" data-linenumber="669"><td class="num" id="LN669">669</td><td class="line"> TerminalProfile *selected_profile;</td></tr>
+<tr class="codeline" data-linenumber="670"><td class="num" id="LN670">670</td><td class="line"> GtkWidget *transient_parent;</td></tr>
+<tr class="codeline" data-linenumber="671"><td class="num" id="LN671">671</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="672"><td class="num" id="LN672">672</td><td class="line"> model = gtk_tree_view_get_model (tree_view);</td></tr>
+<tr class="codeline" data-linenumber="673"><td class="num" id="LN673">673</td><td class="line"> selection = gtk_tree_view_get_selection (tree_view);</td></tr>
+<tr class="codeline" data-linenumber="674"><td class="num" id="LN674">674</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="675"><td class="num" id="LN675">675</td><td class="line"> <span class='keyword'>if</span> (!gtk_tree_selection_get_selected (selection, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, &amp;iter))</td></tr>
+<tr class="codeline" data-linenumber="676"><td class="num" id="LN676">676</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="677"><td class="num" id="LN677">677</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="678"><td class="num" id="LN678">678</td><td class="line"> gtk_tree_model_get (model, &amp;iter, (<span class='keyword'>int</span>) COL_PROFILE, &amp;selected_profile, (<span class='keyword'>int</span>) -1);</td></tr>
+<tr class="codeline" data-linenumber="679"><td class="num" id="LN679">679</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="680"><td class="num" id="LN680">680</td><td class="line"> transient_parent = gtk_widget_get_toplevel (widget);</td></tr>
+<tr class="codeline" data-linenumber="681"><td class="num" id="LN681">681</td><td class="line"> dialog = gtk_message_dialog_new (<span class='macro'>GTK_WINDOW (transient_parent)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((transient_parent)), ((gtk_window_get_type ()))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="682"><td class="num" id="LN682">682</td><td class="line"> GTK_DIALOG_DESTROY_WITH_PARENT,</td></tr>
+<tr class="codeline" data-linenumber="683"><td class="num" id="LN683">683</td><td class="line"> GTK_MESSAGE_QUESTION,</td></tr>
+<tr class="codeline" data-linenumber="684"><td class="num" id="LN684">684</td><td class="line"> GTK_BUTTONS_NONE,</td></tr>
+<tr class="codeline" data-linenumber="685"><td class="num" id="LN685">685</td><td class="line"> <span class='macro'>_(<span class='string_literal'>"Delete profile “%s”?"</span>)<span class='macro_popup'>gettext ("Delete profile “%s”?")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="686"><td class="num" id="LN686">686</td><td class="line"> terminal_profile_get_property_string (selected_profile, <span class='macro'>TERMINAL_PROFILE_VISIBLE_NAME<span class='macro_popup'>"visible-name"</span></span>));</td></tr>
+<tr class="codeline" data-linenumber="687"><td class="num" id="LN687">687</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="688"><td class="num" id="LN688">688</td><td class="line"> mate_dialog_add_button (<span class='macro'>GTK_DIALOG (dialog)<span class='macro_popup'>((((GtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((dialog)), ((gtk_dialog_get_type ()))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="689"><td class="num" id="LN689">689</td><td class="line"> <span class='macro'>_(<span class='string_literal'>"_Cancel"</span>)<span class='macro_popup'>gettext ("_Cancel")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="690"><td class="num" id="LN690">690</td><td class="line"> <span class='string_literal'>"process-stop"</span>,</td></tr>
+<tr class="codeline" data-linenumber="691"><td class="num" id="LN691">691</td><td class="line"> GTK_RESPONSE_REJECT);</td></tr>
+<tr class="codeline" data-linenumber="692"><td class="num" id="LN692">692</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="693"><td class="num" id="LN693">693</td><td class="line"> mate_dialog_add_button (<span class='macro'>GTK_DIALOG (dialog)<span class='macro_popup'>((((GtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((dialog)), ((gtk_dialog_get_type ()))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="694"><td class="num" id="LN694">694</td><td class="line"> <span class='macro'>_(<span class='string_literal'>"_Delete"</span>)<span class='macro_popup'>gettext ("_Delete")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="695"><td class="num" id="LN695">695</td><td class="line"> <span class='string_literal'>"edit-delete"</span>,</td></tr>
+<tr class="codeline" data-linenumber="696"><td class="num" id="LN696">696</td><td class="line"> GTK_RESPONSE_ACCEPT);</td></tr>
+<tr class="codeline" data-linenumber="697"><td class="num" id="LN697">697</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="698"><td class="num" id="LN698">698</td><td class="line"> gtk_dialog_set_default_response (<span class='macro'>GTK_DIALOG (dialog)<span class='macro_popup'>((((GtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((dialog)), ((gtk_dialog_get_type ()))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="699"><td class="num" id="LN699">699</td><td class="line"> GTK_RESPONSE_ACCEPT);</td></tr>
+<tr class="codeline" data-linenumber="700"><td class="num" id="LN700">700</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="701"><td class="num" id="LN701">701</td><td class="line"> gtk_window_set_title (<span class='macro'>GTK_WINDOW (dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((dialog)), ((gtk_window_get_type ()))))))</span></span>, <span class='macro'>_(<span class='string_literal'>"Delete Profile"</span>)<span class='macro_popup'>gettext ("Delete Profile")</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="702"><td class="num" id="LN702">702</td><td class="line"> gtk_window_set_resizable (<span class='macro'>GTK_WINDOW (dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((dialog)), ((gtk_window_get_type ()))))))</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="703"><td class="num" id="LN703">703</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="704"><td class="num" id="LN704">704</td><td class="line"> <span class='comment'>/* Transfer refcount of |selected_profile|, so no unref below */</span></td></tr>
+<tr class="codeline" data-linenumber="705"><td class="num" id="LN705">705</td><td class="line"> g_object_set_data_full (<span class='macro'>G_OBJECT (dialog)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((dialog)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, <span class='string_literal'>"profile"</span>, selected_profile, g_object_unref);</td></tr>
+<tr class="codeline" data-linenumber="706"><td class="num" id="LN706">706</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="707"><td class="num" id="LN707">707</td><td class="line"> <span class='macro'>g_signal_connect (dialog, <span class='string_literal'>"response"</span>,<span class='macro_popup'>g_signal_connect_data ((dialog), ("response"), (((GCallback) (<br>profile_list_delete_confirm_response_cb))), (((void*)0)), ((void<br>*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="708"><td class="num" id="LN708">708</td><td class="line"> <span class='macro'>G_CALLBACK (profile_list_delete_confirm_response_cb),<span class='macro_popup'>g_signal_connect_data ((dialog), ("response"), (((GCallback) (<br>profile_list_delete_confirm_response_cb))), (((void*)0)), ((void<br>*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="709"><td class="num" id="LN709">709</td><td class="line"> <span class='macro'>NULL)<span class='macro_popup'>g_signal_connect_data ((dialog), ("response"), (((GCallback) (<br>profile_list_delete_confirm_response_cb))), (((void*)0)), ((void<br>*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="710"><td class="num" id="LN710">710</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="711"><td class="num" id="LN711">711</td><td class="line"> gtk_window_present (<span class='macro'>GTK_WINDOW (dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((dialog)), ((gtk_window_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="712"><td class="num" id="LN712">712</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="713"><td class="num" id="LN713">713</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="714"><td class="num" id="LN714">714</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="715"><td class="num" id="LN715">715</td><td class="line">profile_list_new_button_clicked_cb (GtkWidget *button,</td></tr>
+<tr class="codeline" data-linenumber="716"><td class="num" id="LN716">716</td><td class="line"> gpointer data)</td></tr>
+<tr class="codeline" data-linenumber="717"><td class="num" id="LN717">717</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="718"><td class="num" id="LN718">718</td><td class="line"> TerminalApp *app;</td></tr>
+<tr class="codeline" data-linenumber="719"><td class="num" id="LN719">719</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="720"><td class="num" id="LN720">720</td><td class="line"> app = terminal_app_get ();</td></tr>
+<tr class="codeline" data-linenumber="721"><td class="num" id="LN721">721</td><td class="line"> terminal_app_new_profile (app, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>GTK_WINDOW (app-&gt;manage_profiles_dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;manage_profiles_dialog)), ((gtk_window_get_type (<br>)))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="722"><td class="num" id="LN722">722</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="723"><td class="num" id="LN723">723</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="724"><td class="num" id="LN724">724</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="725"><td class="num" id="LN725">725</td><td class="line">profile_list_edit_button_clicked_cb (GtkWidget *button,</td></tr>
+<tr class="codeline" data-linenumber="726"><td class="num" id="LN726">726</td><td class="line"> GtkWidget *widget)</td></tr>
+<tr class="codeline" data-linenumber="727"><td class="num" id="LN727">727</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="728"><td class="num" id="LN728">728</td><td class="line"> GtkTreeView *tree_view = <span class='macro'>GTK_TREE_VIEW (widget)<span class='macro_popup'>((((GtkTreeView*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((widget)), ((gtk_tree_view_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="729"><td class="num" id="LN729">729</td><td class="line"> GtkTreeSelection *selection;</td></tr>
+<tr class="codeline" data-linenumber="730"><td class="num" id="LN730">730</td><td class="line"> GtkTreeIter iter;</td></tr>
+<tr class="codeline" data-linenumber="731"><td class="num" id="LN731">731</td><td class="line"> GtkTreeModel *model;</td></tr>
+<tr class="codeline" data-linenumber="732"><td class="num" id="LN732">732</td><td class="line"> TerminalProfile *selected_profile;</td></tr>
+<tr class="codeline" data-linenumber="733"><td class="num" id="LN733">733</td><td class="line"> TerminalApp *app;</td></tr>
+<tr class="codeline" data-linenumber="734"><td class="num" id="LN734">734</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="735"><td class="num" id="LN735">735</td><td class="line"> app = terminal_app_get ();</td></tr>
+<tr class="codeline" data-linenumber="736"><td class="num" id="LN736">736</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="737"><td class="num" id="LN737">737</td><td class="line"> model = gtk_tree_view_get_model (tree_view);</td></tr>
+<tr class="codeline" data-linenumber="738"><td class="num" id="LN738">738</td><td class="line"> selection = gtk_tree_view_get_selection (tree_view);</td></tr>
+<tr class="codeline" data-linenumber="739"><td class="num" id="LN739">739</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="740"><td class="num" id="LN740">740</td><td class="line"> <span class='keyword'>if</span> (!gtk_tree_selection_get_selected (selection, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, &amp;iter))</td></tr>
+<tr class="codeline" data-linenumber="741"><td class="num" id="LN741">741</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="742"><td class="num" id="LN742">742</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="743"><td class="num" id="LN743">743</td><td class="line"> gtk_tree_model_get (model, &amp;iter, (<span class='keyword'>int</span>) COL_PROFILE, &amp;selected_profile, (<span class='keyword'>int</span>) -1);</td></tr>
+<tr class="codeline" data-linenumber="744"><td class="num" id="LN744">744</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="745"><td class="num" id="LN745">745</td><td class="line"> terminal_app_edit_profile (app, selected_profile,</td></tr>
+<tr class="codeline" data-linenumber="746"><td class="num" id="LN746">746</td><td class="line"> <span class='macro'>GTK_WINDOW (app-&gt;manage_profiles_dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;manage_profiles_dialog)), ((gtk_window_get_type (<br>)))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="747"><td class="num" id="LN747">747</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="748"><td class="num" id="LN748">748</td><td class="line"> g_object_unref (selected_profile);</td></tr>
+<tr class="codeline" data-linenumber="749"><td class="num" id="LN749">749</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="750"><td class="num" id="LN750">750</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="751"><td class="num" id="LN751">751</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="752"><td class="num" id="LN752">752</td><td class="line">profile_list_row_activated_cb (GtkTreeView *tree_view,</td></tr>
+<tr class="codeline" data-linenumber="753"><td class="num" id="LN753">753</td><td class="line"> GtkTreePath *path,</td></tr>
+<tr class="codeline" data-linenumber="754"><td class="num" id="LN754">754</td><td class="line"> GtkTreeViewColumn *column,</td></tr>
+<tr class="codeline" data-linenumber="755"><td class="num" id="LN755">755</td><td class="line"> gpointer data)</td></tr>
+<tr class="codeline" data-linenumber="756"><td class="num" id="LN756">756</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="757"><td class="num" id="LN757">757</td><td class="line"> GtkTreeIter iter;</td></tr>
+<tr class="codeline" data-linenumber="758"><td class="num" id="LN758">758</td><td class="line"> GtkTreeModel *model;</td></tr>
+<tr class="codeline" data-linenumber="759"><td class="num" id="LN759">759</td><td class="line"> TerminalProfile *selected_profile;</td></tr>
+<tr class="codeline" data-linenumber="760"><td class="num" id="LN760">760</td><td class="line"> TerminalApp *app;</td></tr>
+<tr class="codeline" data-linenumber="761"><td class="num" id="LN761">761</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="762"><td class="num" id="LN762">762</td><td class="line"> app = terminal_app_get ();</td></tr>
+<tr class="codeline" data-linenumber="763"><td class="num" id="LN763">763</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="764"><td class="num" id="LN764">764</td><td class="line"> model = gtk_tree_view_get_model (tree_view);</td></tr>
+<tr class="codeline" data-linenumber="765"><td class="num" id="LN765">765</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="766"><td class="num" id="LN766">766</td><td class="line"> <span class='keyword'>if</span> (!gtk_tree_model_get_iter (model, &amp;iter, path))</td></tr>
+<tr class="codeline" data-linenumber="767"><td class="num" id="LN767">767</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="768"><td class="num" id="LN768">768</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="769"><td class="num" id="LN769">769</td><td class="line"> gtk_tree_model_get (model, &amp;iter, (<span class='keyword'>int</span>) COL_PROFILE, &amp;selected_profile, (<span class='keyword'>int</span>) -1);</td></tr>
+<tr class="codeline" data-linenumber="770"><td class="num" id="LN770">770</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="771"><td class="num" id="LN771">771</td><td class="line"> terminal_app_edit_profile (app, selected_profile,</td></tr>
+<tr class="codeline" data-linenumber="772"><td class="num" id="LN772">772</td><td class="line"> <span class='macro'>GTK_WINDOW (app-&gt;manage_profiles_dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;manage_profiles_dialog)), ((gtk_window_get_type (<br>)))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="773"><td class="num" id="LN773">773</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="774"><td class="num" id="LN774">774</td><td class="line"> g_object_unref (selected_profile);</td></tr>
+<tr class="codeline" data-linenumber="775"><td class="num" id="LN775">775</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="776"><td class="num" id="LN776">776</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="777"><td class="num" id="LN777">777</td><td class="line"><span class='keyword'>static</span> GList*</td></tr>
+<tr class="codeline" data-linenumber="778"><td class="num" id="LN778">778</td><td class="line">find_profile_link (GList *profiles,</td></tr>
+<tr class="codeline" data-linenumber="779"><td class="num" id="LN779">779</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *name)</td></tr>
+<tr class="codeline" data-linenumber="780"><td class="num" id="LN780">780</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="781"><td class="num" id="LN781">781</td><td class="line"> GList *l;</td></tr>
+<tr class="codeline" data-linenumber="782"><td class="num" id="LN782">782</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="783"><td class="num" id="LN783">783</td><td class="line"> <span class='keyword'>for</span> (l = profiles; l != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; l = l-&gt;next)</td></tr>
+<tr class="codeline" data-linenumber="784"><td class="num" id="LN784">784</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="785"><td class="num" id="LN785">785</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *profile_name;</td></tr>
+<tr class="codeline" data-linenumber="786"><td class="num" id="LN786">786</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="787"><td class="num" id="LN787">787</td><td class="line"> profile_name = terminal_profile_get_property_string (<span class='macro'>TERMINAL_PROFILE (l-&gt;data)<span class='macro_popup'>((((TerminalProfile*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((l-&gt;data)), ((terminal_profile_get_type ()))))))</span></span>, <span class='macro'>TERMINAL_PROFILE_NAME<span class='macro_popup'>"name"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="788"><td class="num" id="LN788">788</td><td class="line"> <span class='keyword'>if</span> (profile_name &amp;&amp; strcmp (profile_name, name) == 0)</td></tr>
+<tr class="codeline" data-linenumber="789"><td class="num" id="LN789">789</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="790"><td class="num" id="LN790">790</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="791"><td class="num" id="LN791">791</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="792"><td class="num" id="LN792">792</td><td class="line"> <span class='keyword'>return</span> l;</td></tr>
+<tr class="codeline" data-linenumber="793"><td class="num" id="LN793">793</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="794"><td class="num" id="LN794">794</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="795"><td class="num" id="LN795">795</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="796"><td class="num" id="LN796">796</td><td class="line">terminal_app_profile_list_notify_cb (GSettings *settings,</td></tr>
+<tr class="codeline" data-linenumber="797"><td class="num" id="LN797">797</td><td class="line"> <span class='keyword'>const</span> gchar *key,</td></tr>
+<tr class="codeline" data-linenumber="798"><td class="num" id="LN798">798</td><td class="line"> gpointer user_data)</td></tr>
+<tr class="codeline" data-linenumber="799"><td class="num" id="LN799">799</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="800"><td class="num" id="LN800">800</td><td class="line"> TerminalApp *app = <span class='macro'>TERMINAL_APP (user_data)<span class='macro_popup'>((((TerminalApp*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((user_data)), ((terminal_app_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="801"><td class="num" id="LN801">801</td><td class="line"> GObject *object = <span class='macro'>G_OBJECT (app)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="802"><td class="num" id="LN802">802</td><td class="line"> GVariant *val;</td></tr>
+<tr class="codeline" data-linenumber="803"><td class="num" id="LN803">803</td><td class="line"> <span class='keyword'>const</span> gchar **value_list;</td></tr>
+<tr class="codeline" data-linenumber="804"><td class="num" id="LN804">804</td><td class="line"> <span class='keyword'>int</span> i;</td></tr>
+<tr class="codeline" data-linenumber="805"><td class="num" id="LN805">805</td><td class="line"> GList *profiles_to_delete, *l;</td></tr>
+<tr class="codeline" data-linenumber="806"><td class="num" id="LN806">806</td><td class="line"> gboolean need_new_default;</td></tr>
+<tr class="codeline" data-linenumber="807"><td class="num" id="LN807">807</td><td class="line"> TerminalProfile *fallback;</td></tr>
+<tr class="codeline" data-linenumber="808"><td class="num" id="LN808">808</td><td class="line"> guint count;</td></tr>
+<tr class="codeline" data-linenumber="809"><td class="num" id="LN809">809</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="810"><td class="num" id="LN810">810</td><td class="line"> g_object_freeze_notify (object);</td></tr>
+<tr class="codeline" data-linenumber="811"><td class="num" id="LN811">811</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="812"><td class="num" id="LN812">812</td><td class="line"> profiles_to_delete = terminal_app_get_profile_list (app);</td></tr>
+<tr class="codeline" data-linenumber="813"><td class="num" id="LN813">813</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="814"><td class="num" id="LN814">814</td><td class="line"> val = g_settings_get_value (settings, key);</td></tr>
+<tr class="codeline" data-linenumber="815"><td class="num" id="LN815">815</td><td class="line"> <span class='keyword'>if</span> (val == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span> ||</td></tr>
+<tr class="codeline" data-linenumber="816"><td class="num" id="LN816">816</td><td class="line"> (!g_variant_is_of_type (val, <span class='macro'>G_VARIANT_TYPE_STRING_ARRAY<span class='macro_popup'>((const GVariantType *) "as")</span></span>) &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="817"><td class="num" id="LN817">817</td><td class="line"> !g_variant_is_of_type (val, <span class='macro'>G_VARIANT_TYPE_STRING<span class='macro_popup'>((const GVariantType *) "s")</span></span>)))</td></tr>
+<tr class="codeline" data-linenumber="818"><td class="num" id="LN818">818</td><td class="line"> <span class='keyword'>goto</span> ensure_one_profile;</td></tr>
+<tr class="codeline" data-linenumber="819"><td class="num" id="LN819">819</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="820"><td class="num" id="LN820">820</td><td class="line"> value_list = g_variant_get_strv (val, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="821"><td class="num" id="LN821">821</td><td class="line"> <span class='keyword'>if</span> (value_list == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="822"><td class="num" id="LN822">822</td><td class="line"> <span class='keyword'>goto</span> ensure_one_profile;</td></tr>
+<tr class="codeline" data-linenumber="823"><td class="num" id="LN823">823</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="824"><td class="num" id="LN824">824</td><td class="line"> <span class='comment'>/* Add any new ones */</span></td></tr>
+<tr class="codeline" data-linenumber="825"><td class="num" id="LN825">825</td><td class="line"> <span class='keyword'>for</span> (i = 0; value_list[i] != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; ++i)</td></tr>
+<tr class="codeline" data-linenumber="826"><td class="num" id="LN826">826</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="827"><td class="num" id="LN827">827</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *profile_name = value_list[i];</td></tr>
+<tr class="codeline" data-linenumber="828"><td class="num" id="LN828">828</td><td class="line"> GList *link;</td></tr>
+<tr class="codeline" data-linenumber="829"><td class="num" id="LN829">829</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="830"><td class="num" id="LN830">830</td><td class="line"> <span class='keyword'>if</span> (!profile_name)</td></tr>
+<tr class="codeline" data-linenumber="831"><td class="num" id="LN831">831</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="832"><td class="num" id="LN832">832</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="833"><td class="num" id="LN833">833</td><td class="line"> link = find_profile_link (profiles_to_delete, profile_name);</td></tr>
+<tr class="codeline" data-linenumber="834"><td class="num" id="LN834">834</td><td class="line"> <span class='keyword'>if</span> (link)</td></tr>
+<tr class="codeline" data-linenumber="835"><td class="num" id="LN835">835</td><td class="line"> <span class='comment'>/* make profiles_to_delete point to profiles we didn't find in the list */</span></td></tr>
+<tr class="codeline" data-linenumber="836"><td class="num" id="LN836">836</td><td class="line"> profiles_to_delete = g_list_delete_link (profiles_to_delete, link);</td></tr>
+<tr class="codeline" data-linenumber="837"><td class="num" id="LN837">837</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="838"><td class="num" id="LN838">838</td><td class="line"> terminal_app_create_profile (app, profile_name);</td></tr>
+<tr class="codeline" data-linenumber="839"><td class="num" id="LN839">839</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="840"><td class="num" id="LN840">840</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="841"><td class="num" id="LN841">841</td><td class="line"> g_free (value_list);</td></tr>
+<tr class="codeline" data-linenumber="842"><td class="num" id="LN842">842</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="843"><td class="num" id="LN843">843</td><td class="line">ensure_one_profile:</td></tr>
+<tr class="codeline" data-linenumber="844"><td class="num" id="LN844">844</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="845"><td class="num" id="LN845">845</td><td class="line"> <span class='keyword'>if</span> (val != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="846"><td class="num" id="LN846">846</td><td class="line"> g_variant_unref (val);</td></tr>
+<tr class="codeline" data-linenumber="847"><td class="num" id="LN847">847</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="848"><td class="num" id="LN848">848</td><td class="line"> fallback = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="849"><td class="num" id="LN849">849</td><td class="line"> count = g_hash_table_size (app-&gt;profiles);</td></tr>
+<tr class="codeline" data-linenumber="850"><td class="num" id="LN850">850</td><td class="line"> <span class='keyword'>if</span> (count == 0 || count &lt;= g_list_length (profiles_to_delete))</td></tr>
+<tr class="codeline" data-linenumber="851"><td class="num" id="LN851">851</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="852"><td class="num" id="LN852">852</td><td class="line"> <span class='comment'>/* We are going to run out, so create the fallback</span></td></tr>
+<tr class="codeline" data-linenumber="853"><td class="num" id="LN853">853</td><td class="line"> <span class='comment'>* to be sure we always have one. Must be done</span></td></tr>
+<tr class="codeline" data-linenumber="854"><td class="num" id="LN854">854</td><td class="line"> <span class='comment'>* here before we emit "forgotten" signals so that</span></td></tr>
+<tr class="codeline" data-linenumber="855"><td class="num" id="LN855">855</td><td class="line"> <span class='comment'>* screens have a profile to fall back to.</span></td></tr>
+<tr class="codeline" data-linenumber="856"><td class="num" id="LN856">856</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="857"><td class="num" id="LN857">857</td><td class="line"> <span class='comment'>* If the profile with the FALLBACK_ID already exists,</span></td></tr>
+<tr class="codeline" data-linenumber="858"><td class="num" id="LN858">858</td><td class="line"> <span class='comment'>* we aren't allowed to delete it, unless at least one</span></td></tr>
+<tr class="codeline" data-linenumber="859"><td class="num" id="LN859">859</td><td class="line"> <span class='comment'>* other profile will still exist. And if you delete</span></td></tr>
+<tr class="codeline" data-linenumber="860"><td class="num" id="LN860">860</td><td class="line"> <span class='comment'>* all profiles, the FALLBACK_ID profile returns as</span></td></tr>
+<tr class="codeline" data-linenumber="861"><td class="num" id="LN861">861</td><td class="line"> <span class='comment'>* the living dead.</span></td></tr>
+<tr class="codeline" data-linenumber="862"><td class="num" id="LN862">862</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="863"><td class="num" id="LN863">863</td><td class="line"> fallback = terminal_app_get_profile_by_name (app, <span class='macro'>FALLBACK_PROFILE_ID<span class='macro_popup'>"default"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="864"><td class="num" id="LN864">864</td><td class="line"> <span class='keyword'>if</span> (fallback == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="865"><td class="num" id="LN865">865</td><td class="line"> fallback = terminal_app_create_profile (app, <span class='macro'>FALLBACK_PROFILE_ID<span class='macro_popup'>"default"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="866"><td class="num" id="LN866">866</td><td class="line"> <span class='macro'>g_assert (fallback != NULL)<span class='macro_popup'>do { if (fallback != ((void*)0)) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-app.c", 866, ((const char*) (__func__<br>)), "fallback != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="867"><td class="num" id="LN867">867</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="868"><td class="num" id="LN868">868</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="869"><td class="num" id="LN869">869</td><td class="line"> <span class='comment'>/* Forget no-longer-existing profiles */</span></td></tr>
+<tr class="codeline" data-linenumber="870"><td class="num" id="LN870">870</td><td class="line"> need_new_default = <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="871"><td class="num" id="LN871">871</td><td class="line"> <span class='keyword'>for</span> (l = profiles_to_delete; l != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; l = l-&gt;next)</td></tr>
+<tr class="codeline" data-linenumber="872"><td class="num" id="LN872">872</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="873"><td class="num" id="LN873">873</td><td class="line"> TerminalProfile *profile = <span class='macro'>TERMINAL_PROFILE (l-&gt;data)<span class='macro_popup'>((((TerminalProfile*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((l-&gt;data)), ((terminal_profile_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="874"><td class="num" id="LN874">874</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *name;</td></tr>
+<tr class="codeline" data-linenumber="875"><td class="num" id="LN875">875</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="876"><td class="num" id="LN876">876</td><td class="line"> name = terminal_profile_get_property_string (profile, <span class='macro'>TERMINAL_PROFILE_NAME<span class='macro_popup'>"name"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="877"><td class="num" id="LN877">877</td><td class="line"> <span class='keyword'>if</span> (strcmp (name, <span class='macro'>FALLBACK_PROFILE_ID<span class='macro_popup'>"default"</span></span>) == 0)</td></tr>
+<tr class="codeline" data-linenumber="878"><td class="num" id="LN878">878</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="879"><td class="num" id="LN879">879</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="880"><td class="num" id="LN880">880</td><td class="line"> <span class='keyword'>if</span> (profile == app-&gt;default_profile)</td></tr>
+<tr class="codeline" data-linenumber="881"><td class="num" id="LN881">881</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="882"><td class="num" id="LN882">882</td><td class="line"> app-&gt;default_profile = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="883"><td class="num" id="LN883">883</td><td class="line"> need_new_default = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="884"><td class="num" id="LN884">884</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="885"><td class="num" id="LN885">885</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="886"><td class="num" id="LN886">886</td><td class="line"> _terminal_profile_forget (profile);</td></tr>
+<tr class="codeline" data-linenumber="887"><td class="num" id="LN887">887</td><td class="line"> g_hash_table_remove (app-&gt;profiles, name);</td></tr>
+<tr class="codeline" data-linenumber="888"><td class="num" id="LN888">888</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="889"><td class="num" id="LN889">889</td><td class="line"> <span class='comment'>/* |profile| possibly isn't dead yet since the profiles dialogue's tree model holds a ref too... */</span></td></tr>
+<tr class="codeline" data-linenumber="890"><td class="num" id="LN890">890</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="891"><td class="num" id="LN891">891</td><td class="line"> g_list_free (profiles_to_delete);</td></tr>
+<tr class="codeline" data-linenumber="892"><td class="num" id="LN892">892</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="893"><td class="num" id="LN893">893</td><td class="line"> <span class='keyword'>if</span> (need_new_default)</td></tr>
+<tr class="codeline" data-linenumber="894"><td class="num" id="LN894">894</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="895"><td class="num" id="LN895">895</td><td class="line"> TerminalProfile *new_default;</td></tr>
+<tr class="codeline" data-linenumber="896"><td class="num" id="LN896">896</td><td class="line"> TerminalProfile **new_default_ptr = &amp;new_default;</td></tr>
+<tr class="codeline" data-linenumber="897"><td class="num" id="LN897">897</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="898"><td class="num" id="LN898">898</td><td class="line"> new_default = terminal_app_get_profile_by_name (app, <span class='macro'>FALLBACK_PROFILE_ID<span class='macro_popup'>"default"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="899"><td class="num" id="LN899">899</td><td class="line"> <span class='keyword'>if</span> (new_default == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="900"><td class="num" id="LN900">900</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="901"><td class="num" id="LN901">901</td><td class="line"> GHashTableIter iter;</td></tr>
+<tr class="codeline" data-linenumber="902"><td class="num" id="LN902">902</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="903"><td class="num" id="LN903">903</td><td class="line"> g_hash_table_iter_init (&amp;iter, app-&gt;profiles);</td></tr>
+<tr class="codeline" data-linenumber="904"><td class="num" id="LN904">904</td><td class="line"> <span class='keyword'>if</span> (!g_hash_table_iter_next (&amp;iter, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, (gpointer *) new_default_ptr))</td></tr>
+<tr class="codeline" data-linenumber="905"><td class="num" id="LN905">905</td><td class="line"> <span class='comment'>/* shouldn't really happen ever, but just to be safe */</span></td></tr>
+<tr class="codeline" data-linenumber="906"><td class="num" id="LN906">906</td><td class="line"> new_default = terminal_app_create_profile (app, <span class='macro'>FALLBACK_PROFILE_ID<span class='macro_popup'>"default"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="907"><td class="num" id="LN907">907</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="908"><td class="num" id="LN908">908</td><td class="line"> <span class='macro'>g_assert (new_default != NULL)<span class='macro_popup'>do { if (new_default != ((void*)0)) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-app.c", 908, ((const char*) (__func__<br>)), "new_default != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="909"><td class="num" id="LN909">909</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="910"><td class="num" id="LN910">910</td><td class="line"> app-&gt;default_profile = new_default;</td></tr>
+<tr class="codeline" data-linenumber="911"><td class="num" id="LN911">911</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="912"><td class="num" id="LN912">912</td><td class="line"> g_object_notify (object, <span class='macro'>TERMINAL_APP_DEFAULT_PROFILE<span class='macro_popup'>"default-profile"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="913"><td class="num" id="LN913">913</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="914"><td class="num" id="LN914">914</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="915"><td class="num" id="LN915">915</td><td class="line"> <span class='macro'>g_assert (g_hash_table_size (app-&gt;profiles) &gt; 0)<span class='macro_popup'>do { if (g_hash_table_size (app-&gt;profiles) &gt; 0) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-app.c", 915, ((const char*) (__func__<br>)), "g_hash_table_size (app-&gt;profiles) &gt; 0"); } while (<br>0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="916"><td class="num" id="LN916">916</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="917"><td class="num" id="LN917">917</td><td class="line"> g_signal_emit (app, signals[PROFILE_LIST_CHANGED], 0);</td></tr>
+<tr class="codeline" data-linenumber="918"><td class="num" id="LN918">918</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="919"><td class="num" id="LN919">919</td><td class="line"> g_object_thaw_notify (object);</td></tr>
+<tr class="codeline" data-linenumber="920"><td class="num" id="LN920">920</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="921"><td class="num" id="LN921">921</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="922"><td class="num" id="LN922">922</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="923"><td class="num" id="LN923">923</td><td class="line">terminal_app_default_profile_notify_cb (GSettings *settings,</td></tr>
+<tr class="codeline" data-linenumber="924"><td class="num" id="LN924">924</td><td class="line"> <span class='keyword'>const</span> gchar *key,</td></tr>
+<tr class="codeline" data-linenumber="925"><td class="num" id="LN925">925</td><td class="line"> gpointer user_data)</td></tr>
+<tr class="codeline" data-linenumber="926"><td class="num" id="LN926">926</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="927"><td class="num" id="LN927">927</td><td class="line"> TerminalApp *app = <span class='macro'>TERMINAL_APP (user_data)<span class='macro_popup'>((((TerminalApp*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((user_data)), ((terminal_app_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="928"><td class="num" id="LN928">928</td><td class="line"> GVariant *val;</td></tr>
+<tr class="codeline" data-linenumber="929"><td class="num" id="LN929">929</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *name = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="930"><td class="num" id="LN930">930</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="931"><td class="num" id="LN931">931</td><td class="line"> app-&gt;default_profile_locked = !g_settings_is_writable (settings, key);</td></tr>
+<tr class="codeline" data-linenumber="932"><td class="num" id="LN932">932</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="933"><td class="num" id="LN933">933</td><td class="line"> val = g_settings_get_value (settings, key);</td></tr>
+<tr class="codeline" data-linenumber="934"><td class="num" id="LN934">934</td><td class="line"> <span class='keyword'>if</span> (val != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span> &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="935"><td class="num" id="LN935">935</td><td class="line"> g_variant_is_of_type (val, <span class="mrange"><span class="mrange"><span class='macro'>G_VARIANT_TYPE_STRING<span class='macro_popup'>((const GVariantType *) "s")</span></span></span></span>))</td></tr>
+<tr><td class="num"></td><td class="line"><div id="EndPath" class="msg msgEvent" style="margin-left:44ex; max-width:31em">Casting a non-structure type to a structure type and accessing a field can lead to memory access errors or data corruption</div></td></tr>
+<tr class="codeline" data-linenumber="936"><td class="num" id="LN936">936</td><td class="line"> name = g_variant_get_string (val, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="937"><td class="num" id="LN937">937</td><td class="line"> <span class='keyword'>if</span> (!name || !name[0])</td></tr>
+<tr class="codeline" data-linenumber="938"><td class="num" id="LN938">938</td><td class="line"> name = <span class='macro'>FALLBACK_PROFILE_ID<span class='macro_popup'>"default"</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="939"><td class="num" id="LN939">939</td><td class="line"> <span class='macro'>g_assert (name != NULL)<span class='macro_popup'>do { if (name != ((void*)0)) ; else g_assertion_message_expr (<br>((gchar*) 0), "terminal-app.c", 939, ((const char*) (__func__<br>)), "name != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="940"><td class="num" id="LN940">940</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="941"><td class="num" id="LN941">941</td><td class="line"> g_free (app-&gt;default_profile_id);</td></tr>
+<tr class="codeline" data-linenumber="942"><td class="num" id="LN942">942</td><td class="line"> app-&gt;default_profile_id = <span class='macro'>g_strdup (name)<span class='macro_popup'>g_strdup_inline (name)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="943"><td class="num" id="LN943">943</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="944"><td class="num" id="LN944">944</td><td class="line"> app-&gt;default_profile = terminal_app_get_profile_by_name (app, name);</td></tr>
+<tr class="codeline" data-linenumber="945"><td class="num" id="LN945">945</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="946"><td class="num" id="LN946">946</td><td class="line"> g_object_notify (<span class='macro'>G_OBJECT (app)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, <span class='macro'>TERMINAL_APP_DEFAULT_PROFILE<span class='macro_popup'>"default-profile"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="947"><td class="num" id="LN947">947</td><td class="line"> g_variant_unref (val);</td></tr>
+<tr class="codeline" data-linenumber="948"><td class="num" id="LN948">948</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="949"><td class="num" id="LN949">949</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="950"><td class="num" id="LN950">950</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>int</span></td></tr>
+<tr class="codeline" data-linenumber="951"><td class="num" id="LN951">951</td><td class="line">compare_encodings (TerminalEncoding *a,</td></tr>
+<tr class="codeline" data-linenumber="952"><td class="num" id="LN952">952</td><td class="line"> TerminalEncoding *b)</td></tr>
+<tr class="codeline" data-linenumber="953"><td class="num" id="LN953">953</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="954"><td class="num" id="LN954">954</td><td class="line"> <span class='keyword'>return</span> g_utf8_collate (a-&gt;name, b-&gt;name);</td></tr>
+<tr class="codeline" data-linenumber="955"><td class="num" id="LN955">955</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="956"><td class="num" id="LN956">956</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="957"><td class="num" id="LN957">957</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="958"><td class="num" id="LN958">958</td><td class="line">encoding_mark_active (gpointer key,</td></tr>
+<tr class="codeline" data-linenumber="959"><td class="num" id="LN959">959</td><td class="line"> gpointer value,</td></tr>
+<tr class="codeline" data-linenumber="960"><td class="num" id="LN960">960</td><td class="line"> gpointer data)</td></tr>
+<tr class="codeline" data-linenumber="961"><td class="num" id="LN961">961</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="962"><td class="num" id="LN962">962</td><td class="line"> TerminalEncoding *encoding = (TerminalEncoding *) value;</td></tr>
+<tr class="codeline" data-linenumber="963"><td class="num" id="LN963">963</td><td class="line"> guint active = <span class='macro'>GPOINTER_TO_UINT (data)<span class='macro_popup'>((guint) (gulong) (data))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="964"><td class="num" id="LN964">964</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="965"><td class="num" id="LN965">965</td><td class="line"> encoding-&gt;is_active = active;</td></tr>
+<tr class="codeline" data-linenumber="966"><td class="num" id="LN966">966</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="967"><td class="num" id="LN967">967</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="968"><td class="num" id="LN968">968</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="969"><td class="num" id="LN969">969</td><td class="line">terminal_app_encoding_list_notify_cb (GSettings *settings,</td></tr>
+<tr class="codeline" data-linenumber="970"><td class="num" id="LN970">970</td><td class="line"> <span class='keyword'>const</span> gchar *key,</td></tr>
+<tr class="codeline" data-linenumber="971"><td class="num" id="LN971">971</td><td class="line"> gpointer user_data)</td></tr>
+<tr class="codeline" data-linenumber="972"><td class="num" id="LN972">972</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="973"><td class="num" id="LN973">973</td><td class="line"> TerminalApp *app = <span class='macro'>TERMINAL_APP (user_data)<span class='macro_popup'>((((TerminalApp*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((user_data)), ((terminal_app_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="974"><td class="num" id="LN974">974</td><td class="line"> GVariant *val;</td></tr>
+<tr class="codeline" data-linenumber="975"><td class="num" id="LN975">975</td><td class="line"> <span class='keyword'>const</span> gchar **strings;</td></tr>
+<tr class="codeline" data-linenumber="976"><td class="num" id="LN976">976</td><td class="line"> <span class='keyword'>int</span> i;</td></tr>
+<tr class="codeline" data-linenumber="977"><td class="num" id="LN977">977</td><td class="line"> TerminalEncoding *encoding;</td></tr>
+<tr class="codeline" data-linenumber="978"><td class="num" id="LN978">978</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *charset;</td></tr>
+<tr class="codeline" data-linenumber="979"><td class="num" id="LN979">979</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="980"><td class="num" id="LN980">980</td><td class="line"> app-&gt;encodings_locked = !g_settings_is_writable (settings, key);</td></tr>
+<tr class="codeline" data-linenumber="981"><td class="num" id="LN981">981</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="982"><td class="num" id="LN982">982</td><td class="line"> <span class='comment'>/* Mark all as non-active, then re-enable the active ones */</span></td></tr>
+<tr class="codeline" data-linenumber="983"><td class="num" id="LN983">983</td><td class="line"> g_hash_table_foreach (app-&gt;encodings, (GHFunc) encoding_mark_active, <span class='macro'>GUINT_TO_POINTER (FALSE)<span class='macro_popup'>((gpointer) (gulong) ((0)))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="984"><td class="num" id="LN984">984</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="985"><td class="num" id="LN985">985</td><td class="line"> <span class='comment'>/* First add the locale's charset */</span></td></tr>
+<tr class="codeline" data-linenumber="986"><td class="num" id="LN986">986</td><td class="line"> encoding = g_hash_table_lookup (app-&gt;encodings, <span class='string_literal'>"current"</span>);</td></tr>
+<tr class="codeline" data-linenumber="987"><td class="num" id="LN987">987</td><td class="line"> <span class='macro'>g_assert (encoding)<span class='macro_popup'>do { if (encoding) ; else g_assertion_message_expr (((gchar*)<br> 0), "terminal-app.c", 987, ((const char*) (__func__)), "encoding"<br>); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="988"><td class="num" id="LN988">988</td><td class="line"> <span class='keyword'>if</span> (terminal_encoding_is_valid (encoding))</td></tr>
+<tr class="codeline" data-linenumber="989"><td class="num" id="LN989">989</td><td class="line"> encoding-&gt;is_active = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="990"><td class="num" id="LN990">990</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="991"><td class="num" id="LN991">991</td><td class="line"> <span class='comment'>/* Also always make UTF-8 available */</span></td></tr>
+<tr class="codeline" data-linenumber="992"><td class="num" id="LN992">992</td><td class="line"> encoding = g_hash_table_lookup (app-&gt;encodings, <span class='string_literal'>"UTF-8"</span>);</td></tr>
+<tr class="codeline" data-linenumber="993"><td class="num" id="LN993">993</td><td class="line"> <span class='macro'>g_assert (encoding)<span class='macro_popup'>do { if (encoding) ; else g_assertion_message_expr (((gchar*)<br> 0), "terminal-app.c", 993, ((const char*) (__func__)), "encoding"<br>); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="994"><td class="num" id="LN994">994</td><td class="line"> <span class='keyword'>if</span> (terminal_encoding_is_valid (encoding))</td></tr>
+<tr class="codeline" data-linenumber="995"><td class="num" id="LN995">995</td><td class="line"> encoding-&gt;is_active = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="996"><td class="num" id="LN996">996</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="997"><td class="num" id="LN997">997</td><td class="line"> val = g_settings_get_value (settings, key);</td></tr>
+<tr class="codeline" data-linenumber="998"><td class="num" id="LN998">998</td><td class="line"> <span class='keyword'>if</span> (val != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span> &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="999"><td class="num" id="LN999">999</td><td class="line"> g_variant_is_of_type (val, <span class='macro'>G_VARIANT_TYPE_STRING_ARRAY<span class='macro_popup'>((const GVariantType *) "as")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="1000"><td class="num" id="LN1000">1000</td><td class="line"> strings = g_variant_get_strv (val, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1001"><td class="num" id="LN1001">1001</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="1002"><td class="num" id="LN1002">1002</td><td class="line"> strings = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1003"><td class="num" id="LN1003">1003</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1004"><td class="num" id="LN1004">1004</td><td class="line"> <span class='keyword'>if</span> (strings != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1005"><td class="num" id="LN1005">1005</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1006"><td class="num" id="LN1006">1006</td><td class="line"> <span class='keyword'>for</span> (i = 0; strings[i] != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; ++i)</td></tr>
+<tr class="codeline" data-linenumber="1007"><td class="num" id="LN1007">1007</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1008"><td class="num" id="LN1008">1008</td><td class="line"> charset = strings[i];</td></tr>
+<tr class="codeline" data-linenumber="1009"><td class="num" id="LN1009">1009</td><td class="line"> <span class='keyword'>if</span> (!charset)</td></tr>
+<tr class="codeline" data-linenumber="1010"><td class="num" id="LN1010">1010</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="1011"><td class="num" id="LN1011">1011</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1012"><td class="num" id="LN1012">1012</td><td class="line"> encoding = terminal_app_ensure_encoding (app, charset);</td></tr>
+<tr class="codeline" data-linenumber="1013"><td class="num" id="LN1013">1013</td><td class="line"> <span class='keyword'>if</span> (!terminal_encoding_is_valid (encoding))</td></tr>
+<tr class="codeline" data-linenumber="1014"><td class="num" id="LN1014">1014</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="1015"><td class="num" id="LN1015">1015</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1016"><td class="num" id="LN1016">1016</td><td class="line"> encoding-&gt;is_active = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1017"><td class="num" id="LN1017">1017</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1018"><td class="num" id="LN1018">1018</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1019"><td class="num" id="LN1019">1019</td><td class="line"> g_free (strings);</td></tr>
+<tr class="codeline" data-linenumber="1020"><td class="num" id="LN1020">1020</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1021"><td class="num" id="LN1021">1021</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1022"><td class="num" id="LN1022">1022</td><td class="line"> g_signal_emit (app, signals[ENCODING_LIST_CHANGED], 0);</td></tr>
+<tr class="codeline" data-linenumber="1023"><td class="num" id="LN1023">1023</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1024"><td class="num" id="LN1024">1024</td><td class="line"> <span class='keyword'>if</span> (val != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1025"><td class="num" id="LN1025">1025</td><td class="line"> g_variant_unref (val);</td></tr>
+<tr class="codeline" data-linenumber="1026"><td class="num" id="LN1026">1026</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1027"><td class="num" id="LN1027">1027</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1028"><td class="num" id="LN1028">1028</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1029"><td class="num" id="LN1029">1029</td><td class="line">terminal_app_system_font_notify_cb (GSettings *settings,</td></tr>
+<tr class="codeline" data-linenumber="1030"><td class="num" id="LN1030">1030</td><td class="line"> <span class='keyword'>const</span> gchar *key,</td></tr>
+<tr class="codeline" data-linenumber="1031"><td class="num" id="LN1031">1031</td><td class="line"> gpointer user_data)</td></tr>
+<tr class="codeline" data-linenumber="1032"><td class="num" id="LN1032">1032</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1033"><td class="num" id="LN1033">1033</td><td class="line"> TerminalApp *app = <span class='macro'>TERMINAL_APP (user_data)<span class='macro_popup'>((((TerminalApp*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((user_data)), ((terminal_app_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1034"><td class="num" id="LN1034">1034</td><td class="line"> GVariant *val;</td></tr>
+<tr class="codeline" data-linenumber="1035"><td class="num" id="LN1035">1035</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *font = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1036"><td class="num" id="LN1036">1036</td><td class="line"> PangoFontDescription *font_desc;</td></tr>
+<tr class="codeline" data-linenumber="1037"><td class="num" id="LN1037">1037</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1038"><td class="num" id="LN1038">1038</td><td class="line"> <span class='keyword'>if</span> (strcmp (key, <span class='macro'>MONOSPACE_FONT_KEY<span class='macro_popup'>"monospace-font-name"</span></span>) != 0)</td></tr>
+<tr class="codeline" data-linenumber="1039"><td class="num" id="LN1039">1039</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1040"><td class="num" id="LN1040">1040</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1041"><td class="num" id="LN1041">1041</td><td class="line"> val = g_settings_get_value (settings, key);</td></tr>
+<tr class="codeline" data-linenumber="1042"><td class="num" id="LN1042">1042</td><td class="line"> <span class='keyword'>if</span> (val &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="1043"><td class="num" id="LN1043">1043</td><td class="line"> g_variant_is_of_type (val, <span class='macro'>G_VARIANT_TYPE_STRING<span class='macro_popup'>((const GVariantType *) "s")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="1044"><td class="num" id="LN1044">1044</td><td class="line"> font = g_variant_get_string (val, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1045"><td class="num" id="LN1045">1045</td><td class="line"> <span class='keyword'>if</span> (!font)</td></tr>
+<tr class="codeline" data-linenumber="1046"><td class="num" id="LN1046">1046</td><td class="line"> font = <span class='macro'>DEFAULT_MONOSPACE_FONT<span class='macro_popup'>("Monospace 10")</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1047"><td class="num" id="LN1047">1047</td><td class="line"> <span class='macro'>g_assert (font != NULL)<span class='macro_popup'>do { if (font != ((void*)0)) ; else g_assertion_message_expr (<br>((gchar*) 0), "terminal-app.c", 1047, ((const char*) (__func__<br>)), "font != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1048"><td class="num" id="LN1048">1048</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1049"><td class="num" id="LN1049">1049</td><td class="line"> <span class='keyword'>if</span> (font &amp;&amp; (strlen (font) == 0)) <span class='comment'>/* empty string */</span></td></tr>
+<tr class="codeline" data-linenumber="1050"><td class="num" id="LN1050">1050</td><td class="line"> font = <span class='macro'>DEFAULT_MONOSPACE_FONT<span class='macro_popup'>("Monospace 10")</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1051"><td class="num" id="LN1051">1051</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1052"><td class="num" id="LN1052">1052</td><td class="line"> font_desc = pango_font_description_from_string (font);</td></tr>
+<tr class="codeline" data-linenumber="1053"><td class="num" id="LN1053">1053</td><td class="line"> <span class='keyword'>if</span> (app-&gt;system_font_desc &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="1054"><td class="num" id="LN1054">1054</td><td class="line"> pango_font_description_equal (app-&gt;system_font_desc, font_desc))</td></tr>
+<tr class="codeline" data-linenumber="1055"><td class="num" id="LN1055">1055</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1056"><td class="num" id="LN1056">1056</td><td class="line"> pango_font_description_free (font_desc);</td></tr>
+<tr class="codeline" data-linenumber="1057"><td class="num" id="LN1057">1057</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1058"><td class="num" id="LN1058">1058</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1059"><td class="num" id="LN1059">1059</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1060"><td class="num" id="LN1060">1060</td><td class="line"> <span class='keyword'>if</span> (app-&gt;system_font_desc)</td></tr>
+<tr class="codeline" data-linenumber="1061"><td class="num" id="LN1061">1061</td><td class="line"> pango_font_description_free (app-&gt;system_font_desc);</td></tr>
+<tr class="codeline" data-linenumber="1062"><td class="num" id="LN1062">1062</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1063"><td class="num" id="LN1063">1063</td><td class="line"> app-&gt;system_font_desc = font_desc;</td></tr>
+<tr class="codeline" data-linenumber="1064"><td class="num" id="LN1064">1064</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1065"><td class="num" id="LN1065">1065</td><td class="line"> g_object_notify (<span class='macro'>G_OBJECT (app)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, <span class='macro'>TERMINAL_APP_SYSTEM_FONT<span class='macro_popup'>"system-font"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1066"><td class="num" id="LN1066">1066</td><td class="line"> g_variant_unref (val);</td></tr>
+<tr class="codeline" data-linenumber="1067"><td class="num" id="LN1067">1067</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1068"><td class="num" id="LN1068">1068</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1069"><td class="num" id="LN1069">1069</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1070"><td class="num" id="LN1070">1070</td><td class="line">terminal_app_enable_mnemonics_notify_cb (GSettings *settings,</td></tr>
+<tr class="codeline" data-linenumber="1071"><td class="num" id="LN1071">1071</td><td class="line"> <span class='keyword'>const</span> gchar *key,</td></tr>
+<tr class="codeline" data-linenumber="1072"><td class="num" id="LN1072">1072</td><td class="line"> gpointer user_data)</td></tr>
+<tr class="codeline" data-linenumber="1073"><td class="num" id="LN1073">1073</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1074"><td class="num" id="LN1074">1074</td><td class="line"> TerminalApp *app = <span class='macro'>TERMINAL_APP (user_data)<span class='macro_popup'>((((TerminalApp*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((user_data)), ((terminal_app_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1075"><td class="num" id="LN1075">1075</td><td class="line"> gboolean enable;</td></tr>
+<tr class="codeline" data-linenumber="1076"><td class="num" id="LN1076">1076</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1077"><td class="num" id="LN1077">1077</td><td class="line"> enable = g_settings_get_boolean (settings, key);</td></tr>
+<tr class="codeline" data-linenumber="1078"><td class="num" id="LN1078">1078</td><td class="line"> <span class='keyword'>if</span> (enable == app-&gt;enable_mnemonics)</td></tr>
+<tr class="codeline" data-linenumber="1079"><td class="num" id="LN1079">1079</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1080"><td class="num" id="LN1080">1080</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1081"><td class="num" id="LN1081">1081</td><td class="line"> app-&gt;enable_mnemonics = enable;</td></tr>
+<tr class="codeline" data-linenumber="1082"><td class="num" id="LN1082">1082</td><td class="line"> g_object_notify (<span class='macro'>G_OBJECT (app)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, <span class='macro'>TERMINAL_APP_ENABLE_MNEMONICS<span class='macro_popup'>"enable-mnemonics"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1083"><td class="num" id="LN1083">1083</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1084"><td class="num" id="LN1084">1084</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1085"><td class="num" id="LN1085">1085</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1086"><td class="num" id="LN1086">1086</td><td class="line">terminal_app_enable_menu_accels_notify_cb (GSettings *settings,</td></tr>
+<tr class="codeline" data-linenumber="1087"><td class="num" id="LN1087">1087</td><td class="line"> <span class='keyword'>const</span> gchar *key,</td></tr>
+<tr class="codeline" data-linenumber="1088"><td class="num" id="LN1088">1088</td><td class="line"> gpointer user_data)</td></tr>
+<tr class="codeline" data-linenumber="1089"><td class="num" id="LN1089">1089</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1090"><td class="num" id="LN1090">1090</td><td class="line"> TerminalApp *app = <span class='macro'>TERMINAL_APP (user_data)<span class='macro_popup'>((((TerminalApp*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((user_data)), ((terminal_app_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1091"><td class="num" id="LN1091">1091</td><td class="line"> gboolean enable;</td></tr>
+<tr class="codeline" data-linenumber="1092"><td class="num" id="LN1092">1092</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1093"><td class="num" id="LN1093">1093</td><td class="line"> enable = g_settings_get_boolean (settings, key);</td></tr>
+<tr class="codeline" data-linenumber="1094"><td class="num" id="LN1094">1094</td><td class="line"> <span class='keyword'>if</span> (enable == app-&gt;enable_menu_accels)</td></tr>
+<tr class="codeline" data-linenumber="1095"><td class="num" id="LN1095">1095</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1096"><td class="num" id="LN1096">1096</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1097"><td class="num" id="LN1097">1097</td><td class="line"> app-&gt;enable_menu_accels = enable;</td></tr>
+<tr class="codeline" data-linenumber="1098"><td class="num" id="LN1098">1098</td><td class="line"> g_object_notify (<span class='macro'>G_OBJECT (app)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, <span class='macro'>TERMINAL_APP_ENABLE_MENU_BAR_ACCEL<span class='macro_popup'>"enable-menu-accels"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1099"><td class="num" id="LN1099">1099</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1100"><td class="num" id="LN1100">1100</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1101"><td class="num" id="LN1101">1101</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1102"><td class="num" id="LN1102">1102</td><td class="line">new_profile_response_cb (GtkWidget *new_profile_dialog,</td></tr>
+<tr class="codeline" data-linenumber="1103"><td class="num" id="LN1103">1103</td><td class="line"> <span class='keyword'>int</span> response_id,</td></tr>
+<tr class="codeline" data-linenumber="1104"><td class="num" id="LN1104">1104</td><td class="line"> TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="1105"><td class="num" id="LN1105">1105</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1106"><td class="num" id="LN1106">1106</td><td class="line"> <span class='keyword'>if</span> (response_id == GTK_RESPONSE_ACCEPT)</td></tr>
+<tr class="codeline" data-linenumber="1107"><td class="num" id="LN1107">1107</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1108"><td class="num" id="LN1108">1108</td><td class="line"> GtkWidget *name_entry;</td></tr>
+<tr class="codeline" data-linenumber="1109"><td class="num" id="LN1109">1109</td><td class="line"> <span class='keyword'>char</span> *name;</td></tr>
+<tr class="codeline" data-linenumber="1110"><td class="num" id="LN1110">1110</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *new_profile_name;</td></tr>
+<tr class="codeline" data-linenumber="1111"><td class="num" id="LN1111">1111</td><td class="line"> GtkWidget *base_option_menu;</td></tr>
+<tr class="codeline" data-linenumber="1112"><td class="num" id="LN1112">1112</td><td class="line"> TerminalProfile *base_profile = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1113"><td class="num" id="LN1113">1113</td><td class="line"> TerminalProfile *new_profile;</td></tr>
+<tr class="codeline" data-linenumber="1114"><td class="num" id="LN1114">1114</td><td class="line"> GList *profiles;</td></tr>
+<tr class="codeline" data-linenumber="1115"><td class="num" id="LN1115">1115</td><td class="line"> GList *tmp;</td></tr>
+<tr class="codeline" data-linenumber="1116"><td class="num" id="LN1116">1116</td><td class="line"> GtkWindow *transient_parent;</td></tr>
+<tr class="codeline" data-linenumber="1117"><td class="num" id="LN1117">1117</td><td class="line"> GtkWidget *confirm_dialog;</td></tr>
+<tr class="codeline" data-linenumber="1118"><td class="num" id="LN1118">1118</td><td class="line"> gint retval;</td></tr>
+<tr class="codeline" data-linenumber="1119"><td class="num" id="LN1119">1119</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1120"><td class="num" id="LN1120">1120</td><td class="line"> base_option_menu = g_object_get_data (<span class='macro'>G_OBJECT (new_profile_dialog)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((new_profile_dialog)), (((GType) ((20) &lt;&lt; (2)))))))<br>)</span></span>, <span class='string_literal'>"base_option_menu"</span>);</td></tr>
+<tr class="codeline" data-linenumber="1121"><td class="num" id="LN1121">1121</td><td class="line"> base_profile = profile_combo_box_get_selected (base_option_menu);</td></tr>
+<tr class="codeline" data-linenumber="1122"><td class="num" id="LN1122">1122</td><td class="line"> <span class='keyword'>if</span> (!base_profile)</td></tr>
+<tr class="codeline" data-linenumber="1123"><td class="num" id="LN1123">1123</td><td class="line"> base_profile = terminal_app_get_default_profile (app);</td></tr>
+<tr class="codeline" data-linenumber="1124"><td class="num" id="LN1124">1124</td><td class="line"> <span class='keyword'>if</span> (!base_profile)</td></tr>
+<tr class="codeline" data-linenumber="1125"><td class="num" id="LN1125">1125</td><td class="line"> <span class='keyword'>return</span>; <span class='comment'>/* shouldn't happen ever though */</span></td></tr>
+<tr class="codeline" data-linenumber="1126"><td class="num" id="LN1126">1126</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1127"><td class="num" id="LN1127">1127</td><td class="line"> name_entry = g_object_get_data (<span class='macro'>G_OBJECT (new_profile_dialog)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((new_profile_dialog)), (((GType) ((20) &lt;&lt; (2)))))))<br>)</span></span>, <span class='string_literal'>"name_entry"</span>);</td></tr>
+<tr class="codeline" data-linenumber="1128"><td class="num" id="LN1128">1128</td><td class="line"> name = gtk_editable_get_chars (<span class='macro'>GTK_EDITABLE (name_entry)<span class='macro_popup'>((((GtkEditable*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((name_entry)), ((gtk_editable_get_type ()))))))</span></span>, 0, -1);</td></tr>
+<tr class="codeline" data-linenumber="1129"><td class="num" id="LN1129">1129</td><td class="line"> <span class='macro'>g_strstrip (name)<span class='macro_popup'>g_strchomp (g_strchug (name))</span></span>; <span class='comment'>/* name will be non empty after stripping */</span></td></tr>
+<tr class="codeline" data-linenumber="1130"><td class="num" id="LN1130">1130</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1131"><td class="num" id="LN1131">1131</td><td class="line"> profiles = terminal_app_get_profile_list (app);</td></tr>
+<tr class="codeline" data-linenumber="1132"><td class="num" id="LN1132">1132</td><td class="line"> <span class='keyword'>for</span> (tmp = profiles; tmp != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; tmp = tmp-&gt;next)</td></tr>
+<tr class="codeline" data-linenumber="1133"><td class="num" id="LN1133">1133</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1134"><td class="num" id="LN1134">1134</td><td class="line"> TerminalProfile *profile = tmp-&gt;data;</td></tr>
+<tr class="codeline" data-linenumber="1135"><td class="num" id="LN1135">1135</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *visible_name;</td></tr>
+<tr class="codeline" data-linenumber="1136"><td class="num" id="LN1136">1136</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1137"><td class="num" id="LN1137">1137</td><td class="line"> visible_name = terminal_profile_get_property_string (profile, <span class='macro'>TERMINAL_PROFILE_VISIBLE_NAME<span class='macro_popup'>"visible-name"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1138"><td class="num" id="LN1138">1138</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1139"><td class="num" id="LN1139">1139</td><td class="line"> <span class='keyword'>if</span> (visible_name &amp;&amp; strcmp (name, visible_name) == 0)</td></tr>
+<tr class="codeline" data-linenumber="1140"><td class="num" id="LN1140">1140</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1141"><td class="num" id="LN1141">1141</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1142"><td class="num" id="LN1142">1142</td><td class="line"> <span class='keyword'>if</span> (tmp)</td></tr>
+<tr class="codeline" data-linenumber="1143"><td class="num" id="LN1143">1143</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1144"><td class="num" id="LN1144">1144</td><td class="line"> confirm_dialog = gtk_message_dialog_new (<span class='macro'>GTK_WINDOW (new_profile_dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((new_profile_dialog)), ((gtk_window_get_type ()))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1145"><td class="num" id="LN1145">1145</td><td class="line"> GTK_DIALOG_DESTROY_WITH_PARENT,</td></tr>
+<tr class="codeline" data-linenumber="1146"><td class="num" id="LN1146">1146</td><td class="line"> GTK_MESSAGE_QUESTION,</td></tr>
+<tr class="codeline" data-linenumber="1147"><td class="num" id="LN1147">1147</td><td class="line"> GTK_BUTTONS_YES_NO,</td></tr>
+<tr class="codeline" data-linenumber="1148"><td class="num" id="LN1148">1148</td><td class="line"> <span class='macro'>_(<span class='string_literal'>"You already have a profile called “%s”. Do you want to create another profile with the same name?"</span>)<span class='macro_popup'>gettext ("You already have a profile called “%s”. Do you want to create another profile with the same name?"<br>)</span></span>, name);</td></tr>
+<tr class="codeline" data-linenumber="1149"><td class="num" id="LN1149">1149</td><td class="line"> <span class='comment'>/* Alternative button order was set automatically by GtkMessageDialog */</span></td></tr>
+<tr class="codeline" data-linenumber="1150"><td class="num" id="LN1150">1150</td><td class="line"> retval = gtk_dialog_run (<span class='macro'>GTK_DIALOG (confirm_dialog)<span class='macro_popup'>((((GtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((confirm_dialog)), ((gtk_dialog_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1151"><td class="num" id="LN1151">1151</td><td class="line"> gtk_widget_destroy (confirm_dialog);</td></tr>
+<tr class="codeline" data-linenumber="1152"><td class="num" id="LN1152">1152</td><td class="line"> <span class='keyword'>if</span> (retval == GTK_RESPONSE_NO)</td></tr>
+<tr class="codeline" data-linenumber="1153"><td class="num" id="LN1153">1153</td><td class="line"> <span class='keyword'>goto</span> cleanup;</td></tr>
+<tr class="codeline" data-linenumber="1154"><td class="num" id="LN1154">1154</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1155"><td class="num" id="LN1155">1155</td><td class="line"> g_list_free (profiles);</td></tr>
+<tr class="codeline" data-linenumber="1156"><td class="num" id="LN1156">1156</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1157"><td class="num" id="LN1157">1157</td><td class="line"> transient_parent = gtk_window_get_transient_for (<span class='macro'>GTK_WINDOW (new_profile_dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((new_profile_dialog)), ((gtk_window_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1158"><td class="num" id="LN1158">1158</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1159"><td class="num" id="LN1159">1159</td><td class="line"> new_profile = _terminal_profile_clone (base_profile, name);</td></tr>
+<tr class="codeline" data-linenumber="1160"><td class="num" id="LN1160">1160</td><td class="line"> new_profile_name = terminal_profile_get_property_string (new_profile, <span class='macro'>TERMINAL_PROFILE_NAME<span class='macro_popup'>"name"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1161"><td class="num" id="LN1161">1161</td><td class="line"> g_hash_table_insert (app-&gt;profiles,</td></tr>
+<tr class="codeline" data-linenumber="1162"><td class="num" id="LN1162">1162</td><td class="line"> <span class='macro'>g_strdup (new_profile_name)<span class='macro_popup'>g_strdup_inline (new_profile_name)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1163"><td class="num" id="LN1163">1163</td><td class="line"> new_profile <span class='comment'>/* adopts the refcount */</span>);</td></tr>
+<tr class="codeline" data-linenumber="1164"><td class="num" id="LN1164">1164</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1165"><td class="num" id="LN1165">1165</td><td class="line"> <span class='comment'>/* And now save the new profile name to GSettings */</span></td></tr>
+<tr class="codeline" data-linenumber="1166"><td class="num" id="LN1166">1166</td><td class="line"> gsettings_append_strv (settings_global,</td></tr>
+<tr class="codeline" data-linenumber="1167"><td class="num" id="LN1167">1167</td><td class="line"> <span class='macro'>PROFILE_LIST_KEY<span class='macro_popup'>"profile-list"</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1168"><td class="num" id="LN1168">1168</td><td class="line"> new_profile_name);</td></tr>
+<tr class="codeline" data-linenumber="1169"><td class="num" id="LN1169">1169</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1170"><td class="num" id="LN1170">1170</td><td class="line"> terminal_profile_edit (new_profile, transient_parent, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1171"><td class="num" id="LN1171">1171</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1172"><td class="num" id="LN1172">1172</td><td class="line">cleanup:</td></tr>
+<tr class="codeline" data-linenumber="1173"><td class="num" id="LN1173">1173</td><td class="line"> g_free (name);</td></tr>
+<tr class="codeline" data-linenumber="1174"><td class="num" id="LN1174">1174</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1175"><td class="num" id="LN1175">1175</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1176"><td class="num" id="LN1176">1176</td><td class="line"> gtk_widget_destroy (new_profile_dialog);</td></tr>
+<tr class="codeline" data-linenumber="1177"><td class="num" id="LN1177">1177</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1178"><td class="num" id="LN1178">1178</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1179"><td class="num" id="LN1179">1179</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1180"><td class="num" id="LN1180">1180</td><td class="line">new_profile_dialog_destroy_cb (GtkWidget *new_profile_dialog,</td></tr>
+<tr class="codeline" data-linenumber="1181"><td class="num" id="LN1181">1181</td><td class="line"> TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="1182"><td class="num" id="LN1182">1182</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1183"><td class="num" id="LN1183">1183</td><td class="line"> GtkWidget *combo;</td></tr>
+<tr class="codeline" data-linenumber="1184"><td class="num" id="LN1184">1184</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1185"><td class="num" id="LN1185">1185</td><td class="line"> combo = g_object_get_data (<span class='macro'>G_OBJECT (new_profile_dialog)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((new_profile_dialog)), (((GType) ((20) &lt;&lt; (2)))))))<br>)</span></span>, <span class='string_literal'>"base_option_menu"</span>);</td></tr>
+<tr class="codeline" data-linenumber="1186"><td class="num" id="LN1186">1186</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (app, G_CALLBACK (profile_combo_box_refill), combo)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((app), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (profile_combo_box_refill))), (combo))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1187"><td class="num" id="LN1187">1187</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1188"><td class="num" id="LN1188">1188</td><td class="line"> app-&gt;new_profile_dialog = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1189"><td class="num" id="LN1189">1189</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1190"><td class="num" id="LN1190">1190</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1191"><td class="num" id="LN1191">1191</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1192"><td class="num" id="LN1192">1192</td><td class="line">new_profile_name_entry_changed_cb (GtkEntry *entry,</td></tr>
+<tr class="codeline" data-linenumber="1193"><td class="num" id="LN1193">1193</td><td class="line"> GtkDialog *dialog)</td></tr>
+<tr class="codeline" data-linenumber="1194"><td class="num" id="LN1194">1194</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1195"><td class="num" id="LN1195">1195</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *name;</td></tr>
+<tr class="codeline" data-linenumber="1196"><td class="num" id="LN1196">1196</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1197"><td class="num" id="LN1197">1197</td><td class="line"> name = gtk_entry_get_text (entry);</td></tr>
+<tr class="codeline" data-linenumber="1198"><td class="num" id="LN1198">1198</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1199"><td class="num" id="LN1199">1199</td><td class="line"> <span class='comment'>/* make the create button sensitive only if something other than space has been set */</span></td></tr>
+<tr class="codeline" data-linenumber="1200"><td class="num" id="LN1200">1200</td><td class="line"> <span class='keyword'>while</span> (*name != '\0' &amp;&amp; <span class='macro'>g_ascii_isspace (*name)<span class='macro_popup'>((g_ascii_table[(guchar) (*name)] &amp; G_ASCII_SPACE) != 0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1201"><td class="num" id="LN1201">1201</td><td class="line"> ++name;</td></tr>
+<tr class="codeline" data-linenumber="1202"><td class="num" id="LN1202">1202</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1203"><td class="num" id="LN1203">1203</td><td class="line"> gtk_dialog_set_response_sensitive (dialog, GTK_RESPONSE_ACCEPT, name[0] != '\0');</td></tr>
+<tr class="codeline" data-linenumber="1204"><td class="num" id="LN1204">1204</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1205"><td class="num" id="LN1205">1205</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1206"><td class="num" id="LN1206">1206</td><td class="line"><span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1207"><td class="num" id="LN1207">1207</td><td class="line">terminal_app_new_profile (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="1208"><td class="num" id="LN1208">1208</td><td class="line"> TerminalProfile *default_base_profile,</td></tr>
+<tr class="codeline" data-linenumber="1209"><td class="num" id="LN1209">1209</td><td class="line"> GtkWindow *transient_parent)</td></tr>
+<tr class="codeline" data-linenumber="1210"><td class="num" id="LN1210">1210</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1211"><td class="num" id="LN1211">1211</td><td class="line"> <span class='keyword'>if</span> (app-&gt;new_profile_dialog == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1212"><td class="num" id="LN1212">1212</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1213"><td class="num" id="LN1213">1213</td><td class="line"> GtkWidget *create_button, *grid, *name_label, *name_entry, *base_label, *combo;</td></tr>
+<tr class="codeline" data-linenumber="1214"><td class="num" id="LN1214">1214</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1215"><td class="num" id="LN1215">1215</td><td class="line"> <span class='keyword'>if</span> (!terminal_util_load_builder_resource (<span class='macro'>TERMINAL_RESOURCES_PATH_PREFIX<span class='macro_popup'>"/org/mate/terminal"</span></span> <span class='macro'>G_DIR_SEPARATOR_S<span class='macro_popup'>"/"</span></span> <span class='string_literal'>"ui/profile-new-dialog.ui"</span>,</td></tr>
+<tr class="codeline" data-linenumber="1216"><td class="num" id="LN1216">1216</td><td class="line"> <span class='string_literal'>"new-profile-dialog"</span>, &amp;app-&gt;new_profile_dialog,</td></tr>
+<tr class="codeline" data-linenumber="1217"><td class="num" id="LN1217">1217</td><td class="line"> <span class='string_literal'>"new-profile-create-button"</span>, &amp;create_button,</td></tr>
+<tr class="codeline" data-linenumber="1218"><td class="num" id="LN1218">1218</td><td class="line"> <span class='string_literal'>"new-profile-grid"</span>, &amp;grid,</td></tr>
+<tr class="codeline" data-linenumber="1219"><td class="num" id="LN1219">1219</td><td class="line"> <span class='string_literal'>"new-profile-name-label"</span>, &amp;name_label,</td></tr>
+<tr class="codeline" data-linenumber="1220"><td class="num" id="LN1220">1220</td><td class="line"> <span class='string_literal'>"new-profile-name-entry"</span>, &amp;name_entry,</td></tr>
+<tr class="codeline" data-linenumber="1221"><td class="num" id="LN1221">1221</td><td class="line"> <span class='string_literal'>"new-profile-base-label"</span>, &amp;base_label,</td></tr>
+<tr class="codeline" data-linenumber="1222"><td class="num" id="LN1222">1222</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="1223"><td class="num" id="LN1223">1223</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1224"><td class="num" id="LN1224">1224</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1225"><td class="num" id="LN1225">1225</td><td class="line"> <span class='macro'>g_signal_connect (G_OBJECT (app-&gt;new_profile_dialog), <span class='string_literal'>"response"</span>, G_CALLBACK (new_profile_response_cb), app)<span class='macro_popup'>g_signal_connect_data ((((((GObject*) (void *) g_type_check_instance_cast<br> ((GTypeInstance*) ((app-&gt;new_profile_dialog)), (((GType) (<br>(20) &lt;&lt; (2))))))))), ("response"), (((GCallback) (new_profile_response_cb<br>))), (app), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1226"><td class="num" id="LN1226">1226</td><td class="line"> <span class='macro'>g_signal_connect (app-&gt;new_profile_dialog, <span class='string_literal'>"destroy"</span>, G_CALLBACK (new_profile_dialog_destroy_cb), app)<span class='macro_popup'>g_signal_connect_data ((app-&gt;new_profile_dialog), ("destroy"<br>), (((GCallback) (new_profile_dialog_destroy_cb))), (app), ((<br>void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1227"><td class="num" id="LN1227">1227</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1228"><td class="num" id="LN1228">1228</td><td class="line"> g_object_set_data (<span class='macro'>G_OBJECT (app-&gt;new_profile_dialog)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;new_profile_dialog)), (((GType) ((20) &lt;&lt; (<br>2))))))))</span></span>, <span class='string_literal'>"create_button"</span>, create_button);</td></tr>
+<tr class="codeline" data-linenumber="1229"><td class="num" id="LN1229">1229</td><td class="line"> gtk_widget_set_sensitive (create_button, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1230"><td class="num" id="LN1230">1230</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1231"><td class="num" id="LN1231">1231</td><td class="line"> <span class='comment'>/* the name entry */</span></td></tr>
+<tr class="codeline" data-linenumber="1232"><td class="num" id="LN1232">1232</td><td class="line"> g_object_set_data (<span class='macro'>G_OBJECT (app-&gt;new_profile_dialog)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;new_profile_dialog)), (((GType) ((20) &lt;&lt; (<br>2))))))))</span></span>, <span class='string_literal'>"name_entry"</span>, name_entry);</td></tr>
+<tr class="codeline" data-linenumber="1233"><td class="num" id="LN1233">1233</td><td class="line"> <span class='macro'>g_signal_connect (name_entry, <span class='string_literal'>"changed"</span>, G_CALLBACK (new_profile_name_entry_changed_cb), app-&gt;new_profile_dialog)<span class='macro_popup'>g_signal_connect_data ((name_entry), ("changed"), (((GCallback<br>) (new_profile_name_entry_changed_cb))), (app-&gt;new_profile_dialog<br>), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1234"><td class="num" id="LN1234">1234</td><td class="line"> gtk_entry_set_activates_default (<span class='macro'>GTK_ENTRY (name_entry)<span class='macro_popup'>((((GtkEntry*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((name_entry)), ((gtk_entry_get_type ()))))))</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1235"><td class="num" id="LN1235">1235</td><td class="line"> gtk_widget_grab_focus (name_entry);</td></tr>
+<tr class="codeline" data-linenumber="1236"><td class="num" id="LN1236">1236</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1237"><td class="num" id="LN1237">1237</td><td class="line"> gtk_label_set_mnemonic_widget (<span class='macro'>GTK_LABEL (name_label)<span class='macro_popup'>((((GtkLabel*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((name_label)), ((gtk_label_get_type ()))))))</span></span>, name_entry);</td></tr>
+<tr class="codeline" data-linenumber="1238"><td class="num" id="LN1238">1238</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1239"><td class="num" id="LN1239">1239</td><td class="line"> <span class='comment'>/* the base profile option menu */</span></td></tr>
+<tr class="codeline" data-linenumber="1240"><td class="num" id="LN1240">1240</td><td class="line"> combo = profile_combo_box_new (app);</td></tr>
+<tr class="codeline" data-linenumber="1241"><td class="num" id="LN1241">1241</td><td class="line"> gtk_grid_attach (<span class='macro'>GTK_GRID (grid)<span class='macro_popup'>((((GtkGrid*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((grid)), ((gtk_grid_get_type ()))))))</span></span>, combo, 2, 1, 1, 1);</td></tr>
+<tr class="codeline" data-linenumber="1242"><td class="num" id="LN1242">1242</td><td class="line"> g_object_set_data (<span class='macro'>G_OBJECT (app-&gt;new_profile_dialog)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;new_profile_dialog)), (((GType) ((20) &lt;&lt; (<br>2))))))))</span></span>, <span class='string_literal'>"base_option_menu"</span>, combo);</td></tr>
+<tr class="codeline" data-linenumber="1243"><td class="num" id="LN1243">1243</td><td class="line"> terminal_util_set_atk_name_description (combo, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>_(<span class='string_literal'>"Choose base profile"</span>)<span class='macro_popup'>gettext ("Choose base profile")</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1244"><td class="num" id="LN1244">1244</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1245"><td class="num" id="LN1245">1245</td><td class="line"> gtk_label_set_mnemonic_widget (<span class='macro'>GTK_LABEL (base_label)<span class='macro_popup'>((((GtkLabel*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((base_label)), ((gtk_label_get_type ()))))))</span></span>, combo);</td></tr>
+<tr class="codeline" data-linenumber="1246"><td class="num" id="LN1246">1246</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1247"><td class="num" id="LN1247">1247</td><td class="line"> gtk_dialog_set_default_response (<span class='macro'>GTK_DIALOG (app-&gt;new_profile_dialog)<span class='macro_popup'>((((GtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;new_profile_dialog)), ((gtk_dialog_get_type ()))<br>))))</span></span>, GTK_RESPONSE_ACCEPT);</td></tr>
+<tr class="codeline" data-linenumber="1248"><td class="num" id="LN1248">1248</td><td class="line"> gtk_dialog_set_response_sensitive (<span class='macro'>GTK_DIALOG (app-&gt;new_profile_dialog)<span class='macro_popup'>((((GtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;new_profile_dialog)), ((gtk_dialog_get_type ()))<br>))))</span></span>, GTK_RESPONSE_ACCEPT, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1249"><td class="num" id="LN1249">1249</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1250"><td class="num" id="LN1250">1250</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1251"><td class="num" id="LN1251">1251</td><td class="line"> gtk_window_set_transient_for (<span class='macro'>GTK_WINDOW (app-&gt;new_profile_dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;new_profile_dialog)), ((gtk_window_get_type ()))<br>))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1252"><td class="num" id="LN1252">1252</td><td class="line"> transient_parent);</td></tr>
+<tr class="codeline" data-linenumber="1253"><td class="num" id="LN1253">1253</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1254"><td class="num" id="LN1254">1254</td><td class="line"> gtk_window_present (<span class='macro'>GTK_WINDOW (app-&gt;new_profile_dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;new_profile_dialog)), ((gtk_window_get_type ()))<br>))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1255"><td class="num" id="LN1255">1255</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1256"><td class="num" id="LN1256">1256</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1257"><td class="num" id="LN1257">1257</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1258"><td class="num" id="LN1258">1258</td><td class="line">profile_list_selection_changed_cb (GtkTreeSelection *selection,</td></tr>
+<tr class="codeline" data-linenumber="1259"><td class="num" id="LN1259">1259</td><td class="line"> TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="1260"><td class="num" id="LN1260">1260</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1261"><td class="num" id="LN1261">1261</td><td class="line"> gboolean selected;</td></tr>
+<tr class="codeline" data-linenumber="1262"><td class="num" id="LN1262">1262</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1263"><td class="num" id="LN1263">1263</td><td class="line"> selected = gtk_tree_selection_get_selected (selection, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1264"><td class="num" id="LN1264">1264</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1265"><td class="num" id="LN1265">1265</td><td class="line"> gtk_widget_set_sensitive (app-&gt;manage_profiles_edit_button, selected);</td></tr>
+<tr class="codeline" data-linenumber="1266"><td class="num" id="LN1266">1266</td><td class="line"> gtk_widget_set_sensitive (app-&gt;manage_profiles_delete_button,</td></tr>
+<tr class="codeline" data-linenumber="1267"><td class="num" id="LN1267">1267</td><td class="line"> selected &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="1268"><td class="num" id="LN1268">1268</td><td class="line"> g_hash_table_size (app-&gt;profiles) &gt; 1);</td></tr>
+<tr class="codeline" data-linenumber="1269"><td class="num" id="LN1269">1269</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1270"><td class="num" id="LN1270">1270</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1271"><td class="num" id="LN1271">1271</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1272"><td class="num" id="LN1272">1272</td><td class="line">profile_list_response_cb (GtkWidget *dialog,</td></tr>
+<tr class="codeline" data-linenumber="1273"><td class="num" id="LN1273">1273</td><td class="line"> <span class='keyword'>int</span> id,</td></tr>
+<tr class="codeline" data-linenumber="1274"><td class="num" id="LN1274">1274</td><td class="line"> TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="1275"><td class="num" id="LN1275">1275</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1276"><td class="num" id="LN1276">1276</td><td class="line"> <span class='macro'>g_assert (app-&gt;manage_profiles_dialog == dialog)<span class='macro_popup'>do { if (app-&gt;manage_profiles_dialog == dialog) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-app.c", 1276, ((const char*) (__func__<br>)), "app-&gt;manage_profiles_dialog == dialog"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1277"><td class="num" id="LN1277">1277</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1278"><td class="num" id="LN1278">1278</td><td class="line"> <span class='keyword'>if</span> (id == GTK_RESPONSE_HELP)</td></tr>
+<tr class="codeline" data-linenumber="1279"><td class="num" id="LN1279">1279</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1280"><td class="num" id="LN1280">1280</td><td class="line"> terminal_util_show_help (<span class='string_literal'>"mate-terminal-manage-profiles"</span>, <span class='macro'>GTK_WINDOW (dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((dialog)), ((gtk_window_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1281"><td class="num" id="LN1281">1281</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1282"><td class="num" id="LN1282">1282</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1283"><td class="num" id="LN1283">1283</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1284"><td class="num" id="LN1284">1284</td><td class="line"> gtk_widget_destroy (dialog);</td></tr>
+<tr class="codeline" data-linenumber="1285"><td class="num" id="LN1285">1285</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1286"><td class="num" id="LN1286">1286</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1287"><td class="num" id="LN1287">1287</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1288"><td class="num" id="LN1288">1288</td><td class="line">profile_list_destroyed_cb (GtkWidget *manage_profiles_dialog,</td></tr>
+<tr class="codeline" data-linenumber="1289"><td class="num" id="LN1289">1289</td><td class="line"> TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="1290"><td class="num" id="LN1290">1290</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1291"><td class="num" id="LN1291">1291</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (app, G_CALLBACK (profile_list_treeview_refill), app-&gt;manage_profiles_list)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((app), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (profile_list_treeview_refill))), (app-&gt;<br>manage_profiles_list))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1292"><td class="num" id="LN1292">1292</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (app, G_CALLBACK (profile_combo_box_refill), app-&gt;manage_profiles_default_menu)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((app), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (profile_combo_box_refill))), (app-&gt;manage_profiles_default_menu<br>))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1293"><td class="num" id="LN1293">1293</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1294"><td class="num" id="LN1294">1294</td><td class="line"> app-&gt;manage_profiles_dialog = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1295"><td class="num" id="LN1295">1295</td><td class="line"> app-&gt;manage_profiles_list = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1296"><td class="num" id="LN1296">1296</td><td class="line"> app-&gt;manage_profiles_new_button = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1297"><td class="num" id="LN1297">1297</td><td class="line"> app-&gt;manage_profiles_edit_button = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1298"><td class="num" id="LN1298">1298</td><td class="line"> app-&gt;manage_profiles_delete_button = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1299"><td class="num" id="LN1299">1299</td><td class="line"> app-&gt;manage_profiles_default_menu = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1300"><td class="num" id="LN1300">1300</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1301"><td class="num" id="LN1301">1301</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1302"><td class="num" id="LN1302">1302</td><td class="line"><span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1303"><td class="num" id="LN1303">1303</td><td class="line">terminal_app_manage_profiles (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="1304"><td class="num" id="LN1304">1304</td><td class="line"> GtkWindow *transient_parent)</td></tr>
+<tr class="codeline" data-linenumber="1305"><td class="num" id="LN1305">1305</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1306"><td class="num" id="LN1306">1306</td><td class="line"> GObject *dialog;</td></tr>
+<tr class="codeline" data-linenumber="1307"><td class="num" id="LN1307">1307</td><td class="line"> GObject *tree_view_container, *new_button, *edit_button, *remove_button;</td></tr>
+<tr class="codeline" data-linenumber="1308"><td class="num" id="LN1308">1308</td><td class="line"> GObject *default_hbox, *default_label;</td></tr>
+<tr class="codeline" data-linenumber="1309"><td class="num" id="LN1309">1309</td><td class="line"> GtkTreeSelection *selection;</td></tr>
+<tr class="codeline" data-linenumber="1310"><td class="num" id="LN1310">1310</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1311"><td class="num" id="LN1311">1311</td><td class="line"> <span class='keyword'>if</span> (app-&gt;manage_profiles_dialog)</td></tr>
+<tr class="codeline" data-linenumber="1312"><td class="num" id="LN1312">1312</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1313"><td class="num" id="LN1313">1313</td><td class="line"> gtk_window_set_transient_for (<span class='macro'>GTK_WINDOW (app-&gt;manage_profiles_dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;manage_profiles_dialog)), ((gtk_window_get_type (<br>)))))))</span></span>, transient_parent);</td></tr>
+<tr class="codeline" data-linenumber="1314"><td class="num" id="LN1314">1314</td><td class="line"> gtk_window_present (<span class='macro'>GTK_WINDOW (app-&gt;manage_profiles_dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;manage_profiles_dialog)), ((gtk_window_get_type (<br>)))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1315"><td class="num" id="LN1315">1315</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1316"><td class="num" id="LN1316">1316</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1317"><td class="num" id="LN1317">1317</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1318"><td class="num" id="LN1318">1318</td><td class="line"> <span class='keyword'>if</span> (!terminal_util_load_builder_resource (<span class='macro'>TERMINAL_RESOURCES_PATH_PREFIX<span class='macro_popup'>"/org/mate/terminal"</span></span> <span class='macro'>G_DIR_SEPARATOR_S<span class='macro_popup'>"/"</span></span> <span class='string_literal'>"ui/profile-manager.ui"</span>,</td></tr>
+<tr class="codeline" data-linenumber="1319"><td class="num" id="LN1319">1319</td><td class="line"> <span class='string_literal'>"profile-manager"</span>, &amp;dialog,</td></tr>
+<tr class="codeline" data-linenumber="1320"><td class="num" id="LN1320">1320</td><td class="line"> <span class='string_literal'>"profiles-treeview-container"</span>, &amp;tree_view_container,</td></tr>
+<tr class="codeline" data-linenumber="1321"><td class="num" id="LN1321">1321</td><td class="line"> <span class='string_literal'>"new-profile-button"</span>, &amp;new_button,</td></tr>
+<tr class="codeline" data-linenumber="1322"><td class="num" id="LN1322">1322</td><td class="line"> <span class='string_literal'>"edit-profile-button"</span>, &amp;edit_button,</td></tr>
+<tr class="codeline" data-linenumber="1323"><td class="num" id="LN1323">1323</td><td class="line"> <span class='string_literal'>"delete-profile-button"</span>, &amp;remove_button,</td></tr>
+<tr class="codeline" data-linenumber="1324"><td class="num" id="LN1324">1324</td><td class="line"> <span class='string_literal'>"default-profile-hbox"</span>, &amp;default_hbox,</td></tr>
+<tr class="codeline" data-linenumber="1325"><td class="num" id="LN1325">1325</td><td class="line"> <span class='string_literal'>"default-profile-label"</span>, &amp;default_label,</td></tr>
+<tr class="codeline" data-linenumber="1326"><td class="num" id="LN1326">1326</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="1327"><td class="num" id="LN1327">1327</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1328"><td class="num" id="LN1328">1328</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1329"><td class="num" id="LN1329">1329</td><td class="line"> app-&gt;manage_profiles_dialog = <span class='macro'>GTK_WIDGET (dialog)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((dialog)), ((gtk_widget_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1330"><td class="num" id="LN1330">1330</td><td class="line"> app-&gt;manage_profiles_new_button = <span class='macro'>GTK_WIDGET (new_button)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((new_button)), ((gtk_widget_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1331"><td class="num" id="LN1331">1331</td><td class="line"> app-&gt;manage_profiles_edit_button = <span class='macro'>GTK_WIDGET (edit_button)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((edit_button)), ((gtk_widget_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1332"><td class="num" id="LN1332">1332</td><td class="line"> app-&gt;manage_profiles_delete_button = <span class='macro'>GTK_WIDGET (remove_button)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((remove_button)), ((gtk_widget_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1333"><td class="num" id="LN1333">1333</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1334"><td class="num" id="LN1334">1334</td><td class="line"> <span class='macro'>g_signal_connect (dialog, <span class='string_literal'>"response"</span>, G_CALLBACK (profile_list_response_cb), app)<span class='macro_popup'>g_signal_connect_data ((dialog), ("response"), (((GCallback) (<br>profile_list_response_cb))), (app), ((void*)0), (GConnectFlags<br>) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1335"><td class="num" id="LN1335">1335</td><td class="line"> <span class='macro'>g_signal_connect (dialog, <span class='string_literal'>"destroy"</span>, G_CALLBACK (profile_list_destroyed_cb), app)<span class='macro_popup'>g_signal_connect_data ((dialog), ("destroy"), (((GCallback) (<br>profile_list_destroyed_cb))), (app), ((void*)0), (GConnectFlags<br>) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1336"><td class="num" id="LN1336">1336</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1337"><td class="num" id="LN1337">1337</td><td class="line"> app-&gt;manage_profiles_list = profile_list_treeview_create (app);</td></tr>
+<tr class="codeline" data-linenumber="1338"><td class="num" id="LN1338">1338</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1339"><td class="num" id="LN1339">1339</td><td class="line"> selection = gtk_tree_view_get_selection (<span class='macro'>GTK_TREE_VIEW (app-&gt;manage_profiles_list)<span class='macro_popup'>((((GtkTreeView*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;manage_profiles_list)), ((gtk_tree_view_get_type<br> ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1340"><td class="num" id="LN1340">1340</td><td class="line"> <span class='macro'>g_signal_connect (selection, <span class='string_literal'>"changed"</span>, G_CALLBACK (profile_list_selection_changed_cb), app)<span class='macro_popup'>g_signal_connect_data ((selection), ("changed"), (((GCallback<br>) (profile_list_selection_changed_cb))), (app), ((void*)0), (<br>GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1341"><td class="num" id="LN1341">1341</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1342"><td class="num" id="LN1342">1342</td><td class="line"> profile_list_treeview_refill (app, app-&gt;manage_profiles_list);</td></tr>
+<tr class="codeline" data-linenumber="1343"><td class="num" id="LN1343">1343</td><td class="line"> <span class='macro'>g_signal_connect (app, <span class='string_literal'>"profile-list-changed"</span>,<span class='macro_popup'>g_signal_connect_data ((app), ("profile-list-changed"), (((GCallback<br>) (profile_list_treeview_refill))), (app-&gt;manage_profiles_list<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1344"><td class="num" id="LN1344">1344</td><td class="line"> <span class='macro'>G_CALLBACK (profile_list_treeview_refill), app-&gt;manage_profiles_list)<span class='macro_popup'>g_signal_connect_data ((app), ("profile-list-changed"), (((GCallback<br>) (profile_list_treeview_refill))), (app-&gt;manage_profiles_list<br>), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1345"><td class="num" id="LN1345">1345</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1346"><td class="num" id="LN1346">1346</td><td class="line"> <span class='macro'>g_signal_connect (app-&gt;manage_profiles_list, <span class='string_literal'>"row-activated"</span>,<span class='macro_popup'>g_signal_connect_data ((app-&gt;manage_profiles_list), ("row-activated"<br>), (((GCallback) (profile_list_row_activated_cb))), (app), ((<br>void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1347"><td class="num" id="LN1347">1347</td><td class="line"> <span class='macro'>G_CALLBACK (profile_list_row_activated_cb), app)<span class='macro_popup'>g_signal_connect_data ((app-&gt;manage_profiles_list), ("row-activated"<br>), (((GCallback) (profile_list_row_activated_cb))), (app), ((<br>void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1348"><td class="num" id="LN1348">1348</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1349"><td class="num" id="LN1349">1349</td><td class="line"> gtk_container_add (<span class='macro'>GTK_CONTAINER (tree_view_container)<span class='macro_popup'>((((GtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((tree_view_container)), ((gtk_container_get_type ()))))))</span></span>, app-&gt;manage_profiles_list);</td></tr>
+<tr class="codeline" data-linenumber="1350"><td class="num" id="LN1350">1350</td><td class="line"> gtk_widget_show (app-&gt;manage_profiles_list);</td></tr>
+<tr class="codeline" data-linenumber="1351"><td class="num" id="LN1351">1351</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1352"><td class="num" id="LN1352">1352</td><td class="line"> <span class='macro'>g_signal_connect (new_button, <span class='string_literal'>"clicked"</span>,<span class='macro_popup'>g_signal_connect_data ((new_button), ("clicked"), (((GCallback<br>) (profile_list_new_button_clicked_cb))), (app-&gt;manage_profiles_list<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1353"><td class="num" id="LN1353">1353</td><td class="line"> <span class='macro'>G_CALLBACK (profile_list_new_button_clicked_cb),<span class='macro_popup'>g_signal_connect_data ((new_button), ("clicked"), (((GCallback<br>) (profile_list_new_button_clicked_cb))), (app-&gt;manage_profiles_list<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1354"><td class="num" id="LN1354">1354</td><td class="line"> <span class='macro'>app-&gt;manage_profiles_list)<span class='macro_popup'>g_signal_connect_data ((new_button), ("clicked"), (((GCallback<br>) (profile_list_new_button_clicked_cb))), (app-&gt;manage_profiles_list<br>), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1355"><td class="num" id="LN1355">1355</td><td class="line"> <span class='macro'>g_signal_connect (edit_button, <span class='string_literal'>"clicked"</span>,<span class='macro_popup'>g_signal_connect_data ((edit_button), ("clicked"), (((GCallback<br>) (profile_list_edit_button_clicked_cb))), (app-&gt;manage_profiles_list<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1356"><td class="num" id="LN1356">1356</td><td class="line"> <span class='macro'>G_CALLBACK (profile_list_edit_button_clicked_cb),<span class='macro_popup'>g_signal_connect_data ((edit_button), ("clicked"), (((GCallback<br>) (profile_list_edit_button_clicked_cb))), (app-&gt;manage_profiles_list<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1357"><td class="num" id="LN1357">1357</td><td class="line"> <span class='macro'>app-&gt;manage_profiles_list)<span class='macro_popup'>g_signal_connect_data ((edit_button), ("clicked"), (((GCallback<br>) (profile_list_edit_button_clicked_cb))), (app-&gt;manage_profiles_list<br>), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1358"><td class="num" id="LN1358">1358</td><td class="line"> <span class='macro'>g_signal_connect (remove_button, <span class='string_literal'>"clicked"</span>,<span class='macro_popup'>g_signal_connect_data ((remove_button), ("clicked"), (((GCallback<br>) (profile_list_delete_button_clicked_cb))), (app-&gt;manage_profiles_list<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1359"><td class="num" id="LN1359">1359</td><td class="line"> <span class='macro'>G_CALLBACK (profile_list_delete_button_clicked_cb),<span class='macro_popup'>g_signal_connect_data ((remove_button), ("clicked"), (((GCallback<br>) (profile_list_delete_button_clicked_cb))), (app-&gt;manage_profiles_list<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1360"><td class="num" id="LN1360">1360</td><td class="line"> <span class='macro'>app-&gt;manage_profiles_list)<span class='macro_popup'>g_signal_connect_data ((remove_button), ("clicked"), (((GCallback<br>) (profile_list_delete_button_clicked_cb))), (app-&gt;manage_profiles_list<br>), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1361"><td class="num" id="LN1361">1361</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1362"><td class="num" id="LN1362">1362</td><td class="line"> app-&gt;manage_profiles_default_menu = profile_combo_box_new (app);</td></tr>
+<tr class="codeline" data-linenumber="1363"><td class="num" id="LN1363">1363</td><td class="line"> <span class='macro'>g_signal_connect (app-&gt;manage_profiles_default_menu, <span class='string_literal'>"changed"</span>,<span class='macro_popup'>g_signal_connect_data ((app-&gt;manage_profiles_default_menu)<br>, ("changed"), (((GCallback) (profile_combo_box_changed_cb)))<br>, (app), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1364"><td class="num" id="LN1364">1364</td><td class="line"> <span class='macro'>G_CALLBACK (profile_combo_box_changed_cb), app)<span class='macro_popup'>g_signal_connect_data ((app-&gt;manage_profiles_default_menu)<br>, ("changed"), (((GCallback) (profile_combo_box_changed_cb)))<br>, (app), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1365"><td class="num" id="LN1365">1365</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1366"><td class="num" id="LN1366">1366</td><td class="line"> gtk_box_pack_start (<span class='macro'>GTK_BOX (default_hbox)<span class='macro_popup'>((((GtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((default_hbox)), ((gtk_box_get_type ()))))))</span></span>, app-&gt;manage_profiles_default_menu, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, 0);</td></tr>
+<tr class="codeline" data-linenumber="1367"><td class="num" id="LN1367">1367</td><td class="line"> gtk_widget_show (app-&gt;manage_profiles_default_menu);</td></tr>
+<tr class="codeline" data-linenumber="1368"><td class="num" id="LN1368">1368</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1369"><td class="num" id="LN1369">1369</td><td class="line"> gtk_label_set_mnemonic_widget (<span class='macro'>GTK_LABEL (default_label)<span class='macro_popup'>((((GtkLabel*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((default_label)), ((gtk_label_get_type ()))))))</span></span>, app-&gt;manage_profiles_default_menu);</td></tr>
+<tr class="codeline" data-linenumber="1370"><td class="num" id="LN1370">1370</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1371"><td class="num" id="LN1371">1371</td><td class="line"> gtk_widget_grab_focus (app-&gt;manage_profiles_list);</td></tr>
+<tr class="codeline" data-linenumber="1372"><td class="num" id="LN1372">1372</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1373"><td class="num" id="LN1373">1373</td><td class="line"> gtk_window_set_transient_for (<span class='macro'>GTK_WINDOW (app-&gt;manage_profiles_dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;manage_profiles_dialog)), ((gtk_window_get_type (<br>)))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1374"><td class="num" id="LN1374">1374</td><td class="line"> transient_parent);</td></tr>
+<tr class="codeline" data-linenumber="1375"><td class="num" id="LN1375">1375</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1376"><td class="num" id="LN1376">1376</td><td class="line"> gtk_window_present (<span class='macro'>GTK_WINDOW (app-&gt;manage_profiles_dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;manage_profiles_dialog)), ((gtk_window_get_type (<br>)))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1377"><td class="num" id="LN1377">1377</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1378"><td class="num" id="LN1378">1378</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1379"><td class="num" id="LN1379">1379</td><td class="line"><span class='directive'>#ifdef <span class='macro'>HAVE_SMCLIENT<span class='macro_popup'>1</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1380"><td class="num" id="LN1380">1380</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1381"><td class="num" id="LN1381">1381</td><td class="line">terminal_app_save_state_cb (EggSMClient *client,</td></tr>
+<tr class="codeline" data-linenumber="1382"><td class="num" id="LN1382">1382</td><td class="line"> GKeyFile *key_file,</td></tr>
+<tr class="codeline" data-linenumber="1383"><td class="num" id="LN1383">1383</td><td class="line"> TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="1384"><td class="num" id="LN1384">1384</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1385"><td class="num" id="LN1385">1385</td><td class="line"> terminal_app_save_config (app, key_file);</td></tr>
+<tr class="codeline" data-linenumber="1386"><td class="num" id="LN1386">1386</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1387"><td class="num" id="LN1387">1387</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1388"><td class="num" id="LN1388">1388</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1389"><td class="num" id="LN1389">1389</td><td class="line">terminal_app_client_quit_cb (EggSMClient *client,</td></tr>
+<tr class="codeline" data-linenumber="1390"><td class="num" id="LN1390">1390</td><td class="line"> TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="1391"><td class="num" id="LN1391">1391</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1392"><td class="num" id="LN1392">1392</td><td class="line"> g_signal_emit (app, signals[QUIT], 0);</td></tr>
+<tr class="codeline" data-linenumber="1393"><td class="num" id="LN1393">1393</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1394"><td class="num" id="LN1394">1394</td><td class="line"><span class='directive'>#endif /* HAVE_SMCLIENT */</span></td></tr>
+<tr class="codeline" data-linenumber="1395"><td class="num" id="LN1395">1395</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1396"><td class="num" id="LN1396">1396</td><td class="line"><span class='comment'>/* Class implementation */</span></td></tr>
+<tr class="codeline" data-linenumber="1397"><td class="num" id="LN1397">1397</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1398"><td class="num" id="LN1398">1398</td><td class="line"><span class='macro'>G_DEFINE_TYPE (TerminalApp, terminal_app, G_TYPE_OBJECT)<span class='macro_popup'>static void terminal_app_init (TerminalApp *self); static void<br> terminal_app_class_init (TerminalAppClass *klass); static GType<br> terminal_app_get_type_once (void); static gpointer terminal_app_parent_class<br> = ((void*)0); static gint TerminalApp_private_offset; static<br> void terminal_app_class_intern_init (gpointer klass) { terminal_app_parent_class<br> = g_type_class_peek_parent (klass); if (TerminalApp_private_offset<br> != 0) g_type_class_adjust_private_offset (klass, &amp;TerminalApp_private_offset<br>); terminal_app_class_init ((TerminalAppClass*) klass); } __attribute__<br> ((__unused__)) static inline gpointer terminal_app_get_instance_private<br> (TerminalApp *self) { return (((gpointer) ((guint8*) (self) +<br> (glong) (TerminalApp_private_offset)))); } GType terminal_app_get_type<br> (void) { static gsize static_g_define_type_id = 0; if ((__extension__<br> ({ _Static_assert (sizeof *(&amp;static_g_define_type_id) ==<br> sizeof (gpointer), "Expression evaluates to false"); (void) (<br>0 ? (gpointer) *(&amp;static_g_define_type_id) : ((void*)0));<br> (!(__extension__ ({ _Static_assert (sizeof *(&amp;static_g_define_type_id<br>) == sizeof (gpointer), "Expression evaluates to false"); __typeof__<br> (*(&amp;static_g_define_type_id)) gapg_temp_newval; __typeof__<br> ((&amp;static_g_define_type_id)) gapg_temp_atomic = (&amp;static_g_define_type_id<br>); __atomic_load (gapg_temp_atomic, &amp;gapg_temp_newval, 5)<br>; gapg_temp_newval; })) &amp;&amp; g_once_init_enter (&amp;static_g_define_type_id<br>)); }))) { GType g_define_type_id = terminal_app_get_type_once<br> (); (__extension__ ({ _Static_assert (sizeof *(&amp;static_g_define_type_id<br>) == sizeof (gpointer), "Expression evaluates to false"); 0 ?<br> (void) (*(&amp;static_g_define_type_id) = (g_define_type_id)<br>) : (void) 0; g_once_init_leave ((&amp;static_g_define_type_id<br>), (gsize) (g_define_type_id)); })); } return static_g_define_type_id<br>; } __attribute__ ((__noinline__)) static GType terminal_app_get_type_once<br> (void) { GType g_define_type_id = g_type_register_static_simple<br> (((GType) ((20) &lt;&lt; (2))), g_intern_static_string ("TerminalApp"<br>), sizeof (TerminalAppClass), (GClassInitFunc)(void (*)(void)<br>) terminal_app_class_intern_init, sizeof (TerminalApp), (GInstanceInitFunc<br>)(void (*)(void)) terminal_app_init, (GTypeFlags) 0); { {{};}<br> } return g_define_type_id; }</span></span></td></tr>
+<tr class="codeline" data-linenumber="1399"><td class="num" id="LN1399">1399</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1400"><td class="num" id="LN1400">1400</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1401"><td class="num" id="LN1401">1401</td><td class="line">terminal_app_init (TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="1402"><td class="num" id="LN1402">1402</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1403"><td class="num" id="LN1403">1403</td><td class="line"> global_app = app;</td></tr>
+<tr class="codeline" data-linenumber="1404"><td class="num" id="LN1404">1404</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1405"><td class="num" id="LN1405">1405</td><td class="line"> gtk_window_set_default_icon_name (<span class='macro'>MATE_TERMINAL_ICON_NAME<span class='macro_popup'>"utilities-terminal"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1406"><td class="num" id="LN1406">1406</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1407"><td class="num" id="LN1407">1407</td><td class="line"> <span class='comment'>/* Initialise defaults */</span></td></tr>
+<tr class="codeline" data-linenumber="1408"><td class="num" id="LN1408">1408</td><td class="line"> app-&gt;enable_mnemonics = <span class='macro'>DEFAULT_ENABLE_MNEMONICS<span class='macro_popup'>((!(0)))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1409"><td class="num" id="LN1409">1409</td><td class="line"> app-&gt;enable_menu_accels = <span class='macro'>DEFAULT_ENABLE_MENU_BAR_ACCEL<span class='macro_popup'>((!(0)))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1410"><td class="num" id="LN1410">1410</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1411"><td class="num" id="LN1411">1411</td><td class="line"> app-&gt;profiles = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref);</td></tr>
+<tr class="codeline" data-linenumber="1412"><td class="num" id="LN1412">1412</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1413"><td class="num" id="LN1413">1413</td><td class="line"> app-&gt;encodings = terminal_encodings_get_builtins ();</td></tr>
+<tr class="codeline" data-linenumber="1414"><td class="num" id="LN1414">1414</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1415"><td class="num" id="LN1415">1415</td><td class="line"> settings_global = g_settings_new (<span class='macro'>CONF_GLOBAL_SCHEMA<span class='macro_popup'>"org.mate.terminal" ".global"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1416"><td class="num" id="LN1416">1416</td><td class="line"> app-&gt;settings_font = g_settings_new (<span class='macro'>MONOSPACE_FONT_SCHEMA<span class='macro_popup'>"org.mate.interface"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1417"><td class="num" id="LN1417">1417</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1418"><td class="num" id="LN1418">1418</td><td class="line"> <span class='macro'>g_signal_connect (settings_global,<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "profile-list"<br>), (((GCallback) (terminal_app_profile_list_notify_cb))), (app<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1419"><td class="num" id="LN1419">1419</td><td class="line"> <span class='string_literal'><span class='macro'>"changed::"</span> PROFILE_LIST_KEY,<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "profile-list"<br>), (((GCallback) (terminal_app_profile_list_notify_cb))), (app<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1420"><td class="num" id="LN1420">1420</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_app_profile_list_notify_cb),<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "profile-list"<br>), (((GCallback) (terminal_app_profile_list_notify_cb))), (app<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1421"><td class="num" id="LN1421">1421</td><td class="line"> <span class='macro'>app)<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "profile-list"<br>), (((GCallback) (terminal_app_profile_list_notify_cb))), (app<br>), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1422"><td class="num" id="LN1422">1422</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1423"><td class="num" id="LN1423">1423</td><td class="line"> <span class='macro'>g_signal_connect (settings_global,<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "default-profile"<br>), (((GCallback) (terminal_app_default_profile_notify_cb))), (<br>app), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1424"><td class="num" id="LN1424">1424</td><td class="line"> <span class='string_literal'><span class='macro'>"changed::"</span> DEFAULT_PROFILE_KEY,<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "default-profile"<br>), (((GCallback) (terminal_app_default_profile_notify_cb))), (<br>app), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1425"><td class="num" id="LN1425">1425</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_app_default_profile_notify_cb),<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "default-profile"<br>), (((GCallback) (terminal_app_default_profile_notify_cb))), (<br>app), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1426"><td class="num" id="LN1426">1426</td><td class="line"> <span class='macro'>app)<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "default-profile"<br>), (((GCallback) (terminal_app_default_profile_notify_cb))), (<br>app), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1427"><td class="num" id="LN1427">1427</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1428"><td class="num" id="LN1428">1428</td><td class="line"> <span class='macro'>g_signal_connect (settings_global,<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "active-encodings"<br>), (((GCallback) (terminal_app_encoding_list_notify_cb))), (app<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1429"><td class="num" id="LN1429">1429</td><td class="line"> <span class='string_literal'><span class='macro'>"changed::"</span> ENCODING_LIST_KEY,<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "active-encodings"<br>), (((GCallback) (terminal_app_encoding_list_notify_cb))), (app<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1430"><td class="num" id="LN1430">1430</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_app_encoding_list_notify_cb),<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "active-encodings"<br>), (((GCallback) (terminal_app_encoding_list_notify_cb))), (app<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1431"><td class="num" id="LN1431">1431</td><td class="line"> <span class='macro'>app)<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "active-encodings"<br>), (((GCallback) (terminal_app_encoding_list_notify_cb))), (app<br>), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1432"><td class="num" id="LN1432">1432</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1433"><td class="num" id="LN1433">1433</td><td class="line"> <span class='macro'>g_signal_connect (app-&gt;settings_font,<span class='macro_popup'>g_signal_connect_data ((app-&gt;settings_font), ("changed::" "monospace-font-name"<br>), (((GCallback) (terminal_app_system_font_notify_cb))), (app<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1434"><td class="num" id="LN1434">1434</td><td class="line"> <span class='string_literal'><span class='macro'>"changed::"</span> MONOSPACE_FONT_KEY,<span class='macro_popup'>g_signal_connect_data ((app-&gt;settings_font), ("changed::" "monospace-font-name"<br>), (((GCallback) (terminal_app_system_font_notify_cb))), (app<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1435"><td class="num" id="LN1435">1435</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_app_system_font_notify_cb),<span class='macro_popup'>g_signal_connect_data ((app-&gt;settings_font), ("changed::" "monospace-font-name"<br>), (((GCallback) (terminal_app_system_font_notify_cb))), (app<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1436"><td class="num" id="LN1436">1436</td><td class="line"> <span class='macro'>app)<span class='macro_popup'>g_signal_connect_data ((app-&gt;settings_font), ("changed::" "monospace-font-name"<br>), (((GCallback) (terminal_app_system_font_notify_cb))), (app<br>), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1437"><td class="num" id="LN1437">1437</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1438"><td class="num" id="LN1438">1438</td><td class="line"> <span class='macro'>g_signal_connect (settings_global,<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "use-mnemonics"<br>), (((GCallback) (terminal_app_enable_mnemonics_notify_cb))),<br> (app), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1439"><td class="num" id="LN1439">1439</td><td class="line"> <span class='string_literal'><span class='macro'>"changed::"</span> ENABLE_MNEMONICS_KEY,<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "use-mnemonics"<br>), (((GCallback) (terminal_app_enable_mnemonics_notify_cb))),<br> (app), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1440"><td class="num" id="LN1440">1440</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_app_enable_mnemonics_notify_cb),<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "use-mnemonics"<br>), (((GCallback) (terminal_app_enable_mnemonics_notify_cb))),<br> (app), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1441"><td class="num" id="LN1441">1441</td><td class="line"> <span class='macro'>app)<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "use-mnemonics"<br>), (((GCallback) (terminal_app_enable_mnemonics_notify_cb))),<br> (app), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1442"><td class="num" id="LN1442">1442</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1443"><td class="num" id="LN1443">1443</td><td class="line"> <span class='macro'>g_signal_connect (settings_global,<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "use-menu-accelerators"<br>), (((GCallback) (terminal_app_enable_menu_accels_notify_cb))<br>), (app), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1444"><td class="num" id="LN1444">1444</td><td class="line"> <span class='string_literal'><span class='macro'>"changed::"</span> ENABLE_MENU_BAR_ACCEL_KEY,<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "use-menu-accelerators"<br>), (((GCallback) (terminal_app_enable_menu_accels_notify_cb))<br>), (app), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1445"><td class="num" id="LN1445">1445</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_app_enable_menu_accels_notify_cb),<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "use-menu-accelerators"<br>), (((GCallback) (terminal_app_enable_menu_accels_notify_cb))<br>), (app), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1446"><td class="num" id="LN1446">1446</td><td class="line"> <span class='macro'>app)<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "use-menu-accelerators"<br>), (((GCallback) (terminal_app_enable_menu_accels_notify_cb))<br>), (app), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1447"><td class="num" id="LN1447">1447</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1448"><td class="num" id="LN1448">1448</td><td class="line"> <span class='comment'>/* Load the settings */</span></td></tr>
+<tr class="codeline" data-linenumber="1449"><td class="num" id="LN1449">1449</td><td class="line"> terminal_app_profile_list_notify_cb (settings_global,</td></tr>
+<tr class="codeline" data-linenumber="1450"><td class="num" id="LN1450">1450</td><td class="line"> <span class='macro'>PROFILE_LIST_KEY<span class='macro_popup'>"profile-list"</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1451"><td class="num" id="LN1451">1451</td><td class="line"> app);</td></tr>
+<tr class="codeline" data-linenumber="1452"><td class="num" id="LN1452">1452</td><td class="line"> terminal_app_default_profile_notify_cb (settings_global,</td></tr>
+<tr class="codeline" data-linenumber="1453"><td class="num" id="LN1453">1453</td><td class="line"> <span class='macro'>DEFAULT_PROFILE_KEY<span class='macro_popup'>"default-profile"</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1454"><td class="num" id="LN1454">1454</td><td class="line"> app);</td></tr>
+<tr class="codeline" data-linenumber="1455"><td class="num" id="LN1455">1455</td><td class="line"> terminal_app_encoding_list_notify_cb (settings_global,</td></tr>
+<tr class="codeline" data-linenumber="1456"><td class="num" id="LN1456">1456</td><td class="line"> <span class='macro'>ENCODING_LIST_KEY<span class='macro_popup'>"active-encodings"</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1457"><td class="num" id="LN1457">1457</td><td class="line"> app);</td></tr>
+<tr class="codeline" data-linenumber="1458"><td class="num" id="LN1458">1458</td><td class="line"> terminal_app_system_font_notify_cb (app-&gt;settings_font,</td></tr>
+<tr class="codeline" data-linenumber="1459"><td class="num" id="LN1459">1459</td><td class="line"> <span class='macro'>MONOSPACE_FONT_KEY<span class='macro_popup'>"monospace-font-name"</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1460"><td class="num" id="LN1460">1460</td><td class="line"> app);</td></tr>
+<tr class="codeline" data-linenumber="1461"><td class="num" id="LN1461">1461</td><td class="line"> terminal_app_enable_menu_accels_notify_cb (settings_global,</td></tr>
+<tr class="codeline" data-linenumber="1462"><td class="num" id="LN1462">1462</td><td class="line"> <span class='macro'>ENABLE_MENU_BAR_ACCEL_KEY<span class='macro_popup'>"use-menu-accelerators"</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1463"><td class="num" id="LN1463">1463</td><td class="line"> app);</td></tr>
+<tr class="codeline" data-linenumber="1464"><td class="num" id="LN1464">1464</td><td class="line"> terminal_app_enable_mnemonics_notify_cb (settings_global,</td></tr>
+<tr class="codeline" data-linenumber="1465"><td class="num" id="LN1465">1465</td><td class="line"> <span class='macro'>ENABLE_MNEMONICS_KEY<span class='macro_popup'>"use-mnemonics"</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1466"><td class="num" id="LN1466">1466</td><td class="line"> app);</td></tr>
+<tr class="codeline" data-linenumber="1467"><td class="num" id="LN1467">1467</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1468"><td class="num" id="LN1468">1468</td><td class="line"> <span class='comment'>/* Ensure we have valid settings */</span></td></tr>
+<tr class="codeline" data-linenumber="1469"><td class="num" id="LN1469">1469</td><td class="line"> <span class='macro'>g_assert (app-&gt;default_profile_id != NULL)<span class='macro_popup'>do { if (app-&gt;default_profile_id != ((void*)0)) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-app.c", 1469, ((const char*) (__func__<br>)), "app-&gt;default_profile_id != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1470"><td class="num" id="LN1470">1470</td><td class="line"> <span class='macro'>g_assert (app-&gt;system_font_desc != NULL)<span class='macro_popup'>do { if (app-&gt;system_font_desc != ((void*)0)) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-app.c", 1470, ((const char*) (__func__<br>)), "app-&gt;system_font_desc != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1471"><td class="num" id="LN1471">1471</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1472"><td class="num" id="LN1472">1472</td><td class="line"> terminal_accels_init ();</td></tr>
+<tr class="codeline" data-linenumber="1473"><td class="num" id="LN1473">1473</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1474"><td class="num" id="LN1474">1474</td><td class="line"><span class='directive'>#ifdef <span class='macro'>HAVE_SMCLIENT<span class='macro_popup'>1</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1475"><td class="num" id="LN1475">1475</td><td class="line"> EggSMClient *sm_client;</td></tr>
+<tr class="codeline" data-linenumber="1476"><td class="num" id="LN1476">1476</td><td class="line"> <span class='keyword'>char</span> *desktop_file;</td></tr>
+<tr class="codeline" data-linenumber="1477"><td class="num" id="LN1477">1477</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1478"><td class="num" id="LN1478">1478</td><td class="line"> desktop_file = g_build_filename (<span class='macro'>TERM_DATADIR<span class='macro_popup'>"/usr/local/share"</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1479"><td class="num" id="LN1479">1479</td><td class="line"> <span class='string_literal'>"applications"</span>,</td></tr>
+<tr class="codeline" data-linenumber="1480"><td class="num" id="LN1480">1480</td><td class="line"> <span class='macro'>PACKAGE<span class='macro_popup'>"mate-terminal"</span></span> <span class='string_literal'>".desktop"</span>,</td></tr>
+<tr class="codeline" data-linenumber="1481"><td class="num" id="LN1481">1481</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1482"><td class="num" id="LN1482">1482</td><td class="line"> egg_set_desktop_file_without_defaults (desktop_file);</td></tr>
+<tr class="codeline" data-linenumber="1483"><td class="num" id="LN1483">1483</td><td class="line"> g_free (desktop_file);</td></tr>
+<tr class="codeline" data-linenumber="1484"><td class="num" id="LN1484">1484</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1485"><td class="num" id="LN1485">1485</td><td class="line"> sm_client = egg_sm_client_get ();</td></tr>
+<tr class="codeline" data-linenumber="1486"><td class="num" id="LN1486">1486</td><td class="line"> <span class='macro'>g_signal_connect (sm_client, <span class='string_literal'>"save-state"</span>,<span class='macro_popup'>g_signal_connect_data ((sm_client), ("save-state"), (((GCallback<br>) (terminal_app_save_state_cb))), (app), ((void*)0), (GConnectFlags<br>) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1487"><td class="num" id="LN1487">1487</td><td class="line"> <span class='macro'>G_CALLBACK (terminal_app_save_state_cb), app)<span class='macro_popup'>g_signal_connect_data ((sm_client), ("save-state"), (((GCallback<br>) (terminal_app_save_state_cb))), (app), ((void*)0), (GConnectFlags<br>) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1488"><td class="num" id="LN1488">1488</td><td class="line"> <span class='macro'>g_signal_connect (sm_client, <span class='string_literal'>"quit"</span>,<span class='macro_popup'>g_signal_connect_data ((sm_client), ("quit"), (((GCallback) (<br>terminal_app_client_quit_cb))), (app), ((void*)0), (GConnectFlags<br>) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1489"><td class="num" id="LN1489">1489</td><td class="line"> <span class='macro'>G_CALLBACK (terminal_app_client_quit_cb), app)<span class='macro_popup'>g_signal_connect_data ((sm_client), ("quit"), (((GCallback) (<br>terminal_app_client_quit_cb))), (app), ((void*)0), (GConnectFlags<br>) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1490"><td class="num" id="LN1490">1490</td><td class="line"><span class='directive'>#endif /* HAVE_SMCLIENT */</span></td></tr>
+<tr class="codeline" data-linenumber="1491"><td class="num" id="LN1491">1491</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1492"><td class="num" id="LN1492">1492</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1493"><td class="num" id="LN1493">1493</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1494"><td class="num" id="LN1494">1494</td><td class="line">terminal_app_finalize (GObject *object)</td></tr>
+<tr class="codeline" data-linenumber="1495"><td class="num" id="LN1495">1495</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1496"><td class="num" id="LN1496">1496</td><td class="line"> TerminalApp *app = <span class='macro'>TERMINAL_APP (object)<span class='macro_popup'>((((TerminalApp*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((object)), ((terminal_app_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1497"><td class="num" id="LN1497">1497</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1498"><td class="num" id="LN1498">1498</td><td class="line"><span class='directive'>#ifdef <span class='macro'>HAVE_SMCLIENT<span class='macro_popup'>1</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1499"><td class="num" id="LN1499">1499</td><td class="line"> EggSMClient *sm_client;</td></tr>
+<tr class="codeline" data-linenumber="1500"><td class="num" id="LN1500">1500</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1501"><td class="num" id="LN1501">1501</td><td class="line"> sm_client = egg_sm_client_get ();</td></tr>
+<tr class="codeline" data-linenumber="1502"><td class="num" id="LN1502">1502</td><td class="line"> g_signal_handlers_disconnect_matched (sm_client, G_SIGNAL_MATCH_DATA,</td></tr>
+<tr class="codeline" data-linenumber="1503"><td class="num" id="LN1503">1503</td><td class="line"> 0, 0, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, app);</td></tr>
+<tr class="codeline" data-linenumber="1504"><td class="num" id="LN1504">1504</td><td class="line"><span class='directive'>#endif /* HAVE_SMCLIENT */</span></td></tr>
+<tr class="codeline" data-linenumber="1505"><td class="num" id="LN1505">1505</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1506"><td class="num" id="LN1506">1506</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (settings_global,<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_profile_list_notify_cb))), (app<br>))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1507"><td class="num" id="LN1507">1507</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_app_profile_list_notify_cb),<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_profile_list_notify_cb))), (app<br>))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1508"><td class="num" id="LN1508">1508</td><td class="line"> <span class='macro'>app)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_profile_list_notify_cb))), (app<br>))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1509"><td class="num" id="LN1509">1509</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (settings_global,<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_default_profile_notify_cb))),<br> (app))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1510"><td class="num" id="LN1510">1510</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_app_default_profile_notify_cb),<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_default_profile_notify_cb))),<br> (app))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1511"><td class="num" id="LN1511">1511</td><td class="line"> <span class='macro'>app)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_default_profile_notify_cb))),<br> (app))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1512"><td class="num" id="LN1512">1512</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (settings_global,<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_encoding_list_notify_cb))), (<br>app))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1513"><td class="num" id="LN1513">1513</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_app_encoding_list_notify_cb),<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_encoding_list_notify_cb))), (<br>app))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1514"><td class="num" id="LN1514">1514</td><td class="line"> <span class='macro'>app)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_encoding_list_notify_cb))), (<br>app))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1515"><td class="num" id="LN1515">1515</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (app-&gt;settings_font,<span class='macro_popup'>g_signal_handlers_disconnect_matched ((app-&gt;settings_font)<br>, (GSignalMatchType) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA<br>), 0, 0, ((void*)0), (((GCallback) (terminal_app_system_font_notify_cb<br>))), (app))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1516"><td class="num" id="LN1516">1516</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_app_system_font_notify_cb),<span class='macro_popup'>g_signal_handlers_disconnect_matched ((app-&gt;settings_font)<br>, (GSignalMatchType) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA<br>), 0, 0, ((void*)0), (((GCallback) (terminal_app_system_font_notify_cb<br>))), (app))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1517"><td class="num" id="LN1517">1517</td><td class="line"> <span class='macro'>app)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((app-&gt;settings_font)<br>, (GSignalMatchType) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA<br>), 0, 0, ((void*)0), (((GCallback) (terminal_app_system_font_notify_cb<br>))), (app))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1518"><td class="num" id="LN1518">1518</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (settings_global,<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_enable_menu_accels_notify_cb)<br>)), (app))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1519"><td class="num" id="LN1519">1519</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_app_enable_menu_accels_notify_cb),<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_enable_menu_accels_notify_cb)<br>)), (app))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1520"><td class="num" id="LN1520">1520</td><td class="line"> <span class='macro'>app)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_enable_menu_accels_notify_cb)<br>)), (app))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1521"><td class="num" id="LN1521">1521</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (settings_global,<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_enable_mnemonics_notify_cb)))<br>, (app))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1522"><td class="num" id="LN1522">1522</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_app_enable_mnemonics_notify_cb),<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_enable_mnemonics_notify_cb)))<br>, (app))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1523"><td class="num" id="LN1523">1523</td><td class="line"> <span class='macro'>app)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_enable_mnemonics_notify_cb)))<br>, (app))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1524"><td class="num" id="LN1524">1524</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1525"><td class="num" id="LN1525">1525</td><td class="line"> g_object_unref (settings_global);</td></tr>
+<tr class="codeline" data-linenumber="1526"><td class="num" id="LN1526">1526</td><td class="line"> g_object_unref (app-&gt;settings_font);</td></tr>
+<tr class="codeline" data-linenumber="1527"><td class="num" id="LN1527">1527</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1528"><td class="num" id="LN1528">1528</td><td class="line"> g_free (app-&gt;default_profile_id);</td></tr>
+<tr class="codeline" data-linenumber="1529"><td class="num" id="LN1529">1529</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1530"><td class="num" id="LN1530">1530</td><td class="line"> g_hash_table_destroy (app-&gt;profiles);</td></tr>
+<tr class="codeline" data-linenumber="1531"><td class="num" id="LN1531">1531</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1532"><td class="num" id="LN1532">1532</td><td class="line"> g_hash_table_destroy (app-&gt;encodings);</td></tr>
+<tr class="codeline" data-linenumber="1533"><td class="num" id="LN1533">1533</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1534"><td class="num" id="LN1534">1534</td><td class="line"> pango_font_description_free (app-&gt;system_font_desc);</td></tr>
+<tr class="codeline" data-linenumber="1535"><td class="num" id="LN1535">1535</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1536"><td class="num" id="LN1536">1536</td><td class="line"> terminal_accels_shutdown ();</td></tr>
+<tr class="codeline" data-linenumber="1537"><td class="num" id="LN1537">1537</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1538"><td class="num" id="LN1538">1538</td><td class="line"> <span class='macro'>G_OBJECT_CLASS (terminal_app_parent_class)<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((terminal_app_parent_class)), (((GType) ((20) &lt;&lt; (2<br>))))))))</span></span>-&gt;finalize (object);</td></tr>
+<tr class="codeline" data-linenumber="1539"><td class="num" id="LN1539">1539</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1540"><td class="num" id="LN1540">1540</td><td class="line"> global_app = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1541"><td class="num" id="LN1541">1541</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1542"><td class="num" id="LN1542">1542</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1543"><td class="num" id="LN1543">1543</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1544"><td class="num" id="LN1544">1544</td><td class="line">terminal_app_get_property (GObject *object,</td></tr>
+<tr class="codeline" data-linenumber="1545"><td class="num" id="LN1545">1545</td><td class="line"> guint prop_id,</td></tr>
+<tr class="codeline" data-linenumber="1546"><td class="num" id="LN1546">1546</td><td class="line"> GValue *value,</td></tr>
+<tr class="codeline" data-linenumber="1547"><td class="num" id="LN1547">1547</td><td class="line"> GParamSpec *pspec)</td></tr>
+<tr class="codeline" data-linenumber="1548"><td class="num" id="LN1548">1548</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1549"><td class="num" id="LN1549">1549</td><td class="line"> TerminalApp *app = <span class='macro'>TERMINAL_APP (object)<span class='macro_popup'>((((TerminalApp*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((object)), ((terminal_app_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1550"><td class="num" id="LN1550">1550</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1551"><td class="num" id="LN1551">1551</td><td class="line"> <span class='keyword'>switch</span> (prop_id)</td></tr>
+<tr class="codeline" data-linenumber="1552"><td class="num" id="LN1552">1552</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1553"><td class="num" id="LN1553">1553</td><td class="line"> <span class='keyword'>case</span> PROP_SYSTEM_FONT:</td></tr>
+<tr class="codeline" data-linenumber="1554"><td class="num" id="LN1554">1554</td><td class="line"> <span class='keyword'>if</span> (app-&gt;system_font_desc)</td></tr>
+<tr class="codeline" data-linenumber="1555"><td class="num" id="LN1555">1555</td><td class="line"> g_value_set_boxed (value, app-&gt;system_font_desc);</td></tr>
+<tr class="codeline" data-linenumber="1556"><td class="num" id="LN1556">1556</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="1557"><td class="num" id="LN1557">1557</td><td class="line"> g_value_take_boxed (value, pango_font_description_from_string (<span class='macro'>DEFAULT_MONOSPACE_FONT<span class='macro_popup'>("Monospace 10")</span></span>));</td></tr>
+<tr class="codeline" data-linenumber="1558"><td class="num" id="LN1558">1558</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1559"><td class="num" id="LN1559">1559</td><td class="line"> <span class='keyword'>case</span> PROP_ENABLE_MENU_BAR_ACCEL:</td></tr>
+<tr class="codeline" data-linenumber="1560"><td class="num" id="LN1560">1560</td><td class="line"> g_value_set_boolean (value, app-&gt;enable_menu_accels);</td></tr>
+<tr class="codeline" data-linenumber="1561"><td class="num" id="LN1561">1561</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1562"><td class="num" id="LN1562">1562</td><td class="line"> <span class='keyword'>case</span> PROP_ENABLE_MNEMONICS:</td></tr>
+<tr class="codeline" data-linenumber="1563"><td class="num" id="LN1563">1563</td><td class="line"> g_value_set_boolean (value, app-&gt;enable_mnemonics);</td></tr>
+<tr class="codeline" data-linenumber="1564"><td class="num" id="LN1564">1564</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1565"><td class="num" id="LN1565">1565</td><td class="line"> <span class='keyword'>case</span> PROP_DEFAULT_PROFILE:</td></tr>
+<tr class="codeline" data-linenumber="1566"><td class="num" id="LN1566">1566</td><td class="line"> g_value_set_object (value, app-&gt;default_profile);</td></tr>
+<tr class="codeline" data-linenumber="1567"><td class="num" id="LN1567">1567</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1568"><td class="num" id="LN1568">1568</td><td class="line"> <span class='keyword'>default</span>:</td></tr>
+<tr class="codeline" data-linenumber="1569"><td class="num" id="LN1569">1569</td><td class="line"> <span class='macro'>G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec)<span class='macro_popup'>do { GObject *_glib__object = (GObject*) ((object)); GParamSpec<br> *_glib__pspec = (GParamSpec*) ((pspec)); guint _glib__property_id<br> = ((prop_id)); g_warning ("%s:%d: invalid %s id %u for \"%s\" of type '%s' in '%s'"<br>, "terminal-app.c", 1569, ("property"), _glib__property_id, _glib__pspec<br>-&gt;name, g_type_name ((((((GTypeClass*) (((GTypeInstance*) (<br>_glib__pspec))-&gt;g_class))-&gt;g_type)))), (g_type_name (((<br>(((GTypeClass*) (((GTypeInstance*) (_glib__object))-&gt;g_class<br>))-&gt;g_type)))))); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1570"><td class="num" id="LN1570">1570</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1571"><td class="num" id="LN1571">1571</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1572"><td class="num" id="LN1572">1572</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1573"><td class="num" id="LN1573">1573</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1574"><td class="num" id="LN1574">1574</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1575"><td class="num" id="LN1575">1575</td><td class="line">terminal_app_set_property (GObject *object,</td></tr>
+<tr class="codeline" data-linenumber="1576"><td class="num" id="LN1576">1576</td><td class="line"> guint prop_id,</td></tr>
+<tr class="codeline" data-linenumber="1577"><td class="num" id="LN1577">1577</td><td class="line"> <span class='keyword'>const</span> GValue *value,</td></tr>
+<tr class="codeline" data-linenumber="1578"><td class="num" id="LN1578">1578</td><td class="line"> GParamSpec *pspec)</td></tr>
+<tr class="codeline" data-linenumber="1579"><td class="num" id="LN1579">1579</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1580"><td class="num" id="LN1580">1580</td><td class="line"> TerminalApp *app = <span class='macro'>TERMINAL_APP (object)<span class='macro_popup'>((((TerminalApp*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((object)), ((terminal_app_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1581"><td class="num" id="LN1581">1581</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1582"><td class="num" id="LN1582">1582</td><td class="line"> <span class='keyword'>switch</span> (prop_id)</td></tr>
+<tr class="codeline" data-linenumber="1583"><td class="num" id="LN1583">1583</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1584"><td class="num" id="LN1584">1584</td><td class="line"> <span class='keyword'>case</span> PROP_ENABLE_MENU_BAR_ACCEL:</td></tr>
+<tr class="codeline" data-linenumber="1585"><td class="num" id="LN1585">1585</td><td class="line"> app-&gt;enable_menu_accels = g_value_get_boolean (value);</td></tr>
+<tr class="codeline" data-linenumber="1586"><td class="num" id="LN1586">1586</td><td class="line"> g_settings_set_boolean (settings_global, <span class='macro'>ENABLE_MENU_BAR_ACCEL_KEY<span class='macro_popup'>"use-menu-accelerators"</span></span>, app-&gt;enable_menu_accels);</td></tr>
+<tr class="codeline" data-linenumber="1587"><td class="num" id="LN1587">1587</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1588"><td class="num" id="LN1588">1588</td><td class="line"> <span class='keyword'>case</span> PROP_ENABLE_MNEMONICS:</td></tr>
+<tr class="codeline" data-linenumber="1589"><td class="num" id="LN1589">1589</td><td class="line"> app-&gt;enable_mnemonics = g_value_get_boolean (value);</td></tr>
+<tr class="codeline" data-linenumber="1590"><td class="num" id="LN1590">1590</td><td class="line"> g_settings_set_boolean (settings_global, <span class='macro'>ENABLE_MNEMONICS_KEY<span class='macro_popup'>"use-mnemonics"</span></span>, app-&gt;enable_mnemonics);</td></tr>
+<tr class="codeline" data-linenumber="1591"><td class="num" id="LN1591">1591</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1592"><td class="num" id="LN1592">1592</td><td class="line"> <span class='keyword'>case</span> PROP_DEFAULT_PROFILE:</td></tr>
+<tr class="codeline" data-linenumber="1593"><td class="num" id="LN1593">1593</td><td class="line"> <span class='keyword'>case</span> PROP_SYSTEM_FONT:</td></tr>
+<tr class="codeline" data-linenumber="1594"><td class="num" id="LN1594">1594</td><td class="line"> <span class='comment'>/* not writable */</span></td></tr>
+<tr class="codeline" data-linenumber="1595"><td class="num" id="LN1595">1595</td><td class="line"> <span class='keyword'>default</span>:</td></tr>
+<tr class="codeline" data-linenumber="1596"><td class="num" id="LN1596">1596</td><td class="line"> <span class='macro'>G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec)<span class='macro_popup'>do { GObject *_glib__object = (GObject*) ((object)); GParamSpec<br> *_glib__pspec = (GParamSpec*) ((pspec)); guint _glib__property_id<br> = ((prop_id)); g_warning ("%s:%d: invalid %s id %u for \"%s\" of type '%s' in '%s'"<br>, "terminal-app.c", 1596, ("property"), _glib__property_id, _glib__pspec<br>-&gt;name, g_type_name ((((((GTypeClass*) (((GTypeInstance*) (<br>_glib__pspec))-&gt;g_class))-&gt;g_type)))), (g_type_name (((<br>(((GTypeClass*) (((GTypeInstance*) (_glib__object))-&gt;g_class<br>))-&gt;g_type)))))); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1597"><td class="num" id="LN1597">1597</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1598"><td class="num" id="LN1598">1598</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1599"><td class="num" id="LN1599">1599</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1600"><td class="num" id="LN1600">1600</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1601"><td class="num" id="LN1601">1601</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1602"><td class="num" id="LN1602">1602</td><td class="line">terminal_app_real_quit (TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="1603"><td class="num" id="LN1603">1603</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1604"><td class="num" id="LN1604">1604</td><td class="line"> gtk_main_quit();</td></tr>
+<tr class="codeline" data-linenumber="1605"><td class="num" id="LN1605">1605</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1606"><td class="num" id="LN1606">1606</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1607"><td class="num" id="LN1607">1607</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1608"><td class="num" id="LN1608">1608</td><td class="line">terminal_app_class_init (TerminalAppClass *klass)</td></tr>
+<tr class="codeline" data-linenumber="1609"><td class="num" id="LN1609">1609</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1610"><td class="num" id="LN1610">1610</td><td class="line"> GObjectClass *object_class = <span class='macro'>G_OBJECT_CLASS (klass)<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((klass)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1611"><td class="num" id="LN1611">1611</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1612"><td class="num" id="LN1612">1612</td><td class="line"> object_class-&gt;finalize = terminal_app_finalize;</td></tr>
+<tr class="codeline" data-linenumber="1613"><td class="num" id="LN1613">1613</td><td class="line"> object_class-&gt;get_property = terminal_app_get_property;</td></tr>
+<tr class="codeline" data-linenumber="1614"><td class="num" id="LN1614">1614</td><td class="line"> object_class-&gt;set_property = terminal_app_set_property;</td></tr>
+<tr class="codeline" data-linenumber="1615"><td class="num" id="LN1615">1615</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1616"><td class="num" id="LN1616">1616</td><td class="line"> klass-&gt;quit = terminal_app_real_quit;</td></tr>
+<tr class="codeline" data-linenumber="1617"><td class="num" id="LN1617">1617</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1618"><td class="num" id="LN1618">1618</td><td class="line"> signals[QUIT] =</td></tr>
+<tr class="codeline" data-linenumber="1619"><td class="num" id="LN1619">1619</td><td class="line"> g_signal_new (<span class='macro'>I_(<span class='string_literal'>"quit"</span>)<span class='macro_popup'>g_intern_static_string ("quit")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1620"><td class="num" id="LN1620">1620</td><td class="line"> <span class='macro'>G_OBJECT_CLASS_TYPE (object_class)<span class='macro_popup'>((((GTypeClass*) (object_class))-&gt;g_type))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1621"><td class="num" id="LN1621">1621</td><td class="line"> G_SIGNAL_RUN_LAST,</td></tr>
+<tr class="codeline" data-linenumber="1622"><td class="num" id="LN1622">1622</td><td class="line"> <span class='macro'>G_STRUCT_OFFSET (TerminalAppClass, quit)<span class='macro_popup'>((glong) __builtin_offsetof(TerminalAppClass, quit))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1623"><td class="num" id="LN1623">1623</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1624"><td class="num" id="LN1624">1624</td><td class="line"> g_cclosure_marshal_VOID__VOID,</td></tr>
+<tr class="codeline" data-linenumber="1625"><td class="num" id="LN1625">1625</td><td class="line"> <span class='macro'>G_TYPE_NONE<span class='macro_popup'>((GType) ((1) &lt;&lt; (2)))</span></span>, 0);</td></tr>
+<tr class="codeline" data-linenumber="1626"><td class="num" id="LN1626">1626</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1627"><td class="num" id="LN1627">1627</td><td class="line"> signals[PROFILE_LIST_CHANGED] =</td></tr>
+<tr class="codeline" data-linenumber="1628"><td class="num" id="LN1628">1628</td><td class="line"> g_signal_new (<span class='macro'>I_(<span class='string_literal'>"profile-list-changed"</span>)<span class='macro_popup'>g_intern_static_string ("profile-list-changed")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1629"><td class="num" id="LN1629">1629</td><td class="line"> <span class='macro'>G_OBJECT_CLASS_TYPE (object_class)<span class='macro_popup'>((((GTypeClass*) (object_class))-&gt;g_type))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1630"><td class="num" id="LN1630">1630</td><td class="line"> G_SIGNAL_RUN_LAST,</td></tr>
+<tr class="codeline" data-linenumber="1631"><td class="num" id="LN1631">1631</td><td class="line"> <span class='macro'>G_STRUCT_OFFSET (TerminalAppClass, profile_list_changed)<span class='macro_popup'>((glong) __builtin_offsetof(TerminalAppClass, profile_list_changed<br>))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1632"><td class="num" id="LN1632">1632</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1633"><td class="num" id="LN1633">1633</td><td class="line"> g_cclosure_marshal_VOID__VOID,</td></tr>
+<tr class="codeline" data-linenumber="1634"><td class="num" id="LN1634">1634</td><td class="line"> <span class='macro'>G_TYPE_NONE<span class='macro_popup'>((GType) ((1) &lt;&lt; (2)))</span></span>, 0);</td></tr>
+<tr class="codeline" data-linenumber="1635"><td class="num" id="LN1635">1635</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1636"><td class="num" id="LN1636">1636</td><td class="line"> signals[ENCODING_LIST_CHANGED] =</td></tr>
+<tr class="codeline" data-linenumber="1637"><td class="num" id="LN1637">1637</td><td class="line"> g_signal_new (<span class='macro'>I_(<span class='string_literal'>"encoding-list-changed"</span>)<span class='macro_popup'>g_intern_static_string ("encoding-list-changed")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1638"><td class="num" id="LN1638">1638</td><td class="line"> <span class='macro'>G_OBJECT_CLASS_TYPE (object_class)<span class='macro_popup'>((((GTypeClass*) (object_class))-&gt;g_type))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1639"><td class="num" id="LN1639">1639</td><td class="line"> G_SIGNAL_RUN_LAST,</td></tr>
+<tr class="codeline" data-linenumber="1640"><td class="num" id="LN1640">1640</td><td class="line"> <span class='macro'>G_STRUCT_OFFSET (TerminalAppClass, profile_list_changed)<span class='macro_popup'>((glong) __builtin_offsetof(TerminalAppClass, profile_list_changed<br>))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1641"><td class="num" id="LN1641">1641</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1642"><td class="num" id="LN1642">1642</td><td class="line"> g_cclosure_marshal_VOID__VOID,</td></tr>
+<tr class="codeline" data-linenumber="1643"><td class="num" id="LN1643">1643</td><td class="line"> <span class='macro'>G_TYPE_NONE<span class='macro_popup'>((GType) ((1) &lt;&lt; (2)))</span></span>, 0);</td></tr>
+<tr class="codeline" data-linenumber="1644"><td class="num" id="LN1644">1644</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1645"><td class="num" id="LN1645">1645</td><td class="line"> g_object_class_install_property</td></tr>
+<tr class="codeline" data-linenumber="1646"><td class="num" id="LN1646">1646</td><td class="line"> (object_class,</td></tr>
+<tr class="codeline" data-linenumber="1647"><td class="num" id="LN1647">1647</td><td class="line"> PROP_ENABLE_MENU_BAR_ACCEL,</td></tr>
+<tr class="codeline" data-linenumber="1648"><td class="num" id="LN1648">1648</td><td class="line"> g_param_spec_boolean (<span class='macro'>TERMINAL_APP_ENABLE_MENU_BAR_ACCEL<span class='macro_popup'>"enable-menu-accels"</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1649"><td class="num" id="LN1649">1649</td><td class="line"> <span class='macro'>DEFAULT_ENABLE_MENU_BAR_ACCEL<span class='macro_popup'>((!(0)))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1650"><td class="num" id="LN1650">1650</td><td class="line"> G_PARAM_READWRITE | G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB));</td></tr>
+<tr class="codeline" data-linenumber="1651"><td class="num" id="LN1651">1651</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1652"><td class="num" id="LN1652">1652</td><td class="line"> g_object_class_install_property</td></tr>
+<tr class="codeline" data-linenumber="1653"><td class="num" id="LN1653">1653</td><td class="line"> (object_class,</td></tr>
+<tr class="codeline" data-linenumber="1654"><td class="num" id="LN1654">1654</td><td class="line"> PROP_ENABLE_MNEMONICS,</td></tr>
+<tr class="codeline" data-linenumber="1655"><td class="num" id="LN1655">1655</td><td class="line"> g_param_spec_boolean (<span class='macro'>TERMINAL_APP_ENABLE_MNEMONICS<span class='macro_popup'>"enable-mnemonics"</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1656"><td class="num" id="LN1656">1656</td><td class="line"> <span class='macro'>DEFAULT_ENABLE_MNEMONICS<span class='macro_popup'>((!(0)))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1657"><td class="num" id="LN1657">1657</td><td class="line"> G_PARAM_READWRITE | G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB));</td></tr>
+<tr class="codeline" data-linenumber="1658"><td class="num" id="LN1658">1658</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1659"><td class="num" id="LN1659">1659</td><td class="line"> g_object_class_install_property</td></tr>
+<tr class="codeline" data-linenumber="1660"><td class="num" id="LN1660">1660</td><td class="line"> (object_class,</td></tr>
+<tr class="codeline" data-linenumber="1661"><td class="num" id="LN1661">1661</td><td class="line"> PROP_SYSTEM_FONT,</td></tr>
+<tr class="codeline" data-linenumber="1662"><td class="num" id="LN1662">1662</td><td class="line"> g_param_spec_boxed (<span class='macro'>TERMINAL_APP_SYSTEM_FONT<span class='macro_popup'>"system-font"</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1663"><td class="num" id="LN1663">1663</td><td class="line"> <span class='macro'>PANGO_TYPE_FONT_DESCRIPTION<span class='macro_popup'>(pango_font_description_get_type ())</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1664"><td class="num" id="LN1664">1664</td><td class="line"> G_PARAM_READABLE | G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB));</td></tr>
+<tr class="codeline" data-linenumber="1665"><td class="num" id="LN1665">1665</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1666"><td class="num" id="LN1666">1666</td><td class="line"> g_object_class_install_property</td></tr>
+<tr class="codeline" data-linenumber="1667"><td class="num" id="LN1667">1667</td><td class="line"> (object_class,</td></tr>
+<tr class="codeline" data-linenumber="1668"><td class="num" id="LN1668">1668</td><td class="line"> PROP_DEFAULT_PROFILE,</td></tr>
+<tr class="codeline" data-linenumber="1669"><td class="num" id="LN1669">1669</td><td class="line"> g_param_spec_object (<span class='macro'>TERMINAL_APP_DEFAULT_PROFILE<span class='macro_popup'>"default-profile"</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1670"><td class="num" id="LN1670">1670</td><td class="line"> <span class='macro'>TERMINAL_TYPE_PROFILE<span class='macro_popup'>(terminal_profile_get_type ())</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1671"><td class="num" id="LN1671">1671</td><td class="line"> G_PARAM_READABLE | G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB));</td></tr>
+<tr class="codeline" data-linenumber="1672"><td class="num" id="LN1672">1672</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1673"><td class="num" id="LN1673">1673</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1674"><td class="num" id="LN1674">1674</td><td class="line"><span class='comment'>/* Public API */</span></td></tr>
+<tr class="codeline" data-linenumber="1675"><td class="num" id="LN1675">1675</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1676"><td class="num" id="LN1676">1676</td><td class="line">TerminalApp*</td></tr>
+<tr class="codeline" data-linenumber="1677"><td class="num" id="LN1677">1677</td><td class="line">terminal_app_get (<span class='keyword'>void</span>)</td></tr>
+<tr class="codeline" data-linenumber="1678"><td class="num" id="LN1678">1678</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1679"><td class="num" id="LN1679">1679</td><td class="line"> <span class='keyword'>if</span> (global_app == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1680"><td class="num" id="LN1680">1680</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1681"><td class="num" id="LN1681">1681</td><td class="line"> g_object_new (<span class='macro'>TERMINAL_TYPE_APP<span class='macro_popup'>(terminal_app_get_type ())</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1682"><td class="num" id="LN1682">1682</td><td class="line"> <span class='macro'>g_assert (global_app != NULL)<span class='macro_popup'>do { if (global_app != ((void*)0)) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-app.c", 1682, ((const char*) (__func__<br>)), "global_app != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1683"><td class="num" id="LN1683">1683</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1684"><td class="num" id="LN1684">1684</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1685"><td class="num" id="LN1685">1685</td><td class="line"> <span class='keyword'>return</span> global_app;</td></tr>
+<tr class="codeline" data-linenumber="1686"><td class="num" id="LN1686">1686</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1687"><td class="num" id="LN1687">1687</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1688"><td class="num" id="LN1688">1688</td><td class="line"><span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1689"><td class="num" id="LN1689">1689</td><td class="line">terminal_app_shutdown (<span class='keyword'>void</span>)</td></tr>
+<tr class="codeline" data-linenumber="1690"><td class="num" id="LN1690">1690</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1691"><td class="num" id="LN1691">1691</td><td class="line"> <span class='keyword'>if</span> (global_app == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1692"><td class="num" id="LN1692">1692</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1693"><td class="num" id="LN1693">1693</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1694"><td class="num" id="LN1694">1694</td><td class="line"> g_object_unref (global_app);</td></tr>
+<tr class="codeline" data-linenumber="1695"><td class="num" id="LN1695">1695</td><td class="line"> <span class='macro'>g_assert (global_app == NULL)<span class='macro_popup'>do { if (global_app == ((void*)0)) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-app.c", 1695, ((const char*) (__func__<br>)), "global_app == NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1696"><td class="num" id="LN1696">1696</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1697"><td class="num" id="LN1697">1697</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1698"><td class="num" id="LN1698">1698</td><td class="line"><span class='comment'>/**</span></td></tr>
+<tr class="codeline" data-linenumber="1699"><td class="num" id="LN1699">1699</td><td class="line"> <span class='comment'>* terminal_app_handle_options:</span></td></tr>
+<tr class="codeline" data-linenumber="1700"><td class="num" id="LN1700">1700</td><td class="line"> <span class='comment'>* @app:</span></td></tr>
+<tr class="codeline" data-linenumber="1701"><td class="num" id="LN1701">1701</td><td class="line"> <span class='comment'>* @options: a #TerminalOptions</span></td></tr>
+<tr class="codeline" data-linenumber="1702"><td class="num" id="LN1702">1702</td><td class="line"> <span class='comment'>* @allow_resume: whether to merge the terminal configuration from the</span></td></tr>
+<tr class="codeline" data-linenumber="1703"><td class="num" id="LN1703">1703</td><td class="line"> <span class='comment'>* saved session on resume</span></td></tr>
+<tr class="codeline" data-linenumber="1704"><td class="num" id="LN1704">1704</td><td class="line"> <span class='comment'>* @error: a #GError to fill in</span></td></tr>
+<tr class="codeline" data-linenumber="1705"><td class="num" id="LN1705">1705</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="1706"><td class="num" id="LN1706">1706</td><td class="line"> <span class='comment'>* Processes @options. It loads or saves the terminal configuration, or</span></td></tr>
+<tr class="codeline" data-linenumber="1707"><td class="num" id="LN1707">1707</td><td class="line"> <span class='comment'>* opens the specified windows and tabs.</span></td></tr>
+<tr class="codeline" data-linenumber="1708"><td class="num" id="LN1708">1708</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="1709"><td class="num" id="LN1709">1709</td><td class="line"> <span class='comment'>* Returns: %TRUE if @options could be successfully handled, or %FALSE on</span></td></tr>
+<tr class="codeline" data-linenumber="1710"><td class="num" id="LN1710">1710</td><td class="line"> <span class='comment'>* error</span></td></tr>
+<tr class="codeline" data-linenumber="1711"><td class="num" id="LN1711">1711</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="1712"><td class="num" id="LN1712">1712</td><td class="line">gboolean</td></tr>
+<tr class="codeline" data-linenumber="1713"><td class="num" id="LN1713">1713</td><td class="line">terminal_app_handle_options (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="1714"><td class="num" id="LN1714">1714</td><td class="line"> TerminalOptions *options,</td></tr>
+<tr class="codeline" data-linenumber="1715"><td class="num" id="LN1715">1715</td><td class="line"> gboolean allow_resume,</td></tr>
+<tr class="codeline" data-linenumber="1716"><td class="num" id="LN1716">1716</td><td class="line"> GError **error)</td></tr>
+<tr class="codeline" data-linenumber="1717"><td class="num" id="LN1717">1717</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1718"><td class="num" id="LN1718">1718</td><td class="line"> GList *lw;</td></tr>
+<tr class="codeline" data-linenumber="1719"><td class="num" id="LN1719">1719</td><td class="line"> GdkScreen *gdk_screen;</td></tr>
+<tr class="codeline" data-linenumber="1720"><td class="num" id="LN1720">1720</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1721"><td class="num" id="LN1721">1721</td><td class="line"> gdk_screen = terminal_app_get_screen_by_display_name (options-&gt;display_name);</td></tr>
+<tr class="codeline" data-linenumber="1722"><td class="num" id="LN1722">1722</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1723"><td class="num" id="LN1723">1723</td><td class="line"> <span class='keyword'>if</span> (options-&gt;save_config)</td></tr>
+<tr class="codeline" data-linenumber="1724"><td class="num" id="LN1724">1724</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1725"><td class="num" id="LN1725">1725</td><td class="line"> <span class='keyword'>if</span> (options-&gt;remote_arguments)</td></tr>
+<tr class="codeline" data-linenumber="1726"><td class="num" id="LN1726">1726</td><td class="line"> <span class='keyword'>return</span> terminal_app_save_config_file (app, options-&gt;config_file, error);</td></tr>
+<tr class="codeline" data-linenumber="1727"><td class="num" id="LN1727">1727</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1728"><td class="num" id="LN1728">1728</td><td class="line"> g_set_error_literal (error, <span class='macro'>TERMINAL_OPTION_ERROR<span class='macro_popup'>(g_quark_from_static_string ("terminal-option-error"))</span></span>, TERMINAL_OPTION_ERROR_NOT_IN_FACTORY,</td></tr>
+<tr class="codeline" data-linenumber="1729"><td class="num" id="LN1729">1729</td><td class="line"> <span class='string_literal'>"Cannot use \"--save-config\" when starting the factory process"</span>);</td></tr>
+<tr class="codeline" data-linenumber="1730"><td class="num" id="LN1730">1730</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1731"><td class="num" id="LN1731">1731</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1732"><td class="num" id="LN1732">1732</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1733"><td class="num" id="LN1733">1733</td><td class="line"> <span class='keyword'>if</span> (options-&gt;load_config)</td></tr>
+<tr class="codeline" data-linenumber="1734"><td class="num" id="LN1734">1734</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1735"><td class="num" id="LN1735">1735</td><td class="line"> GKeyFile *key_file;</td></tr>
+<tr class="codeline" data-linenumber="1736"><td class="num" id="LN1736">1736</td><td class="line"> gboolean result;</td></tr>
+<tr class="codeline" data-linenumber="1737"><td class="num" id="LN1737">1737</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1738"><td class="num" id="LN1738">1738</td><td class="line"> key_file = g_key_file_new ();</td></tr>
+<tr class="codeline" data-linenumber="1739"><td class="num" id="LN1739">1739</td><td class="line"> result = g_key_file_load_from_file (key_file, options-&gt;config_file, 0, error) &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="1740"><td class="num" id="LN1740">1740</td><td class="line"> terminal_options_merge_config (options, key_file, SOURCE_DEFAULT, error);</td></tr>
+<tr class="codeline" data-linenumber="1741"><td class="num" id="LN1741">1741</td><td class="line"> g_key_file_free (key_file);</td></tr>
+<tr class="codeline" data-linenumber="1742"><td class="num" id="LN1742">1742</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1743"><td class="num" id="LN1743">1743</td><td class="line"> <span class='keyword'>if</span> (!result)</td></tr>
+<tr class="codeline" data-linenumber="1744"><td class="num" id="LN1744">1744</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1745"><td class="num" id="LN1745">1745</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1746"><td class="num" id="LN1746">1746</td><td class="line"> <span class='comment'>/* fall-through on success */</span></td></tr>
+<tr class="codeline" data-linenumber="1747"><td class="num" id="LN1747">1747</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1748"><td class="num" id="LN1748">1748</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1749"><td class="num" id="LN1749">1749</td><td class="line"><span class='directive'>#ifdef <span class='macro'>HAVE_SMCLIENT<span class='macro_popup'>1</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1750"><td class="num" id="LN1750">1750</td><td class="line"> EggSMClient *sm_client;</td></tr>
+<tr class="codeline" data-linenumber="1751"><td class="num" id="LN1751">1751</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1752"><td class="num" id="LN1752">1752</td><td class="line"> sm_client = egg_sm_client_get ();</td></tr>
+<tr class="codeline" data-linenumber="1753"><td class="num" id="LN1753">1753</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1754"><td class="num" id="LN1754">1754</td><td class="line"> <span class='keyword'>if</span> (allow_resume &amp;&amp; egg_sm_client_is_resumed (sm_client))</td></tr>
+<tr class="codeline" data-linenumber="1755"><td class="num" id="LN1755">1755</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1756"><td class="num" id="LN1756">1756</td><td class="line"> GKeyFile *key_file;</td></tr>
+<tr class="codeline" data-linenumber="1757"><td class="num" id="LN1757">1757</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1758"><td class="num" id="LN1758">1758</td><td class="line"> key_file = egg_sm_client_get_state_file (sm_client);</td></tr>
+<tr class="codeline" data-linenumber="1759"><td class="num" id="LN1759">1759</td><td class="line"> <span class='keyword'>if</span> (key_file != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span> &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="1760"><td class="num" id="LN1760">1760</td><td class="line"> !terminal_options_merge_config (options, key_file, SOURCE_SESSION, error))</td></tr>
+<tr class="codeline" data-linenumber="1761"><td class="num" id="LN1761">1761</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1762"><td class="num" id="LN1762">1762</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1763"><td class="num" id="LN1763">1763</td><td class="line"><span class='directive'>#endif /* HAVE_SMCLIENT */</span></td></tr>
+<tr class="codeline" data-linenumber="1764"><td class="num" id="LN1764">1764</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1765"><td class="num" id="LN1765">1765</td><td class="line"> <span class='comment'>/* Make sure we open at least one window */</span></td></tr>
+<tr class="codeline" data-linenumber="1766"><td class="num" id="LN1766">1766</td><td class="line"> terminal_options_ensure_window (options);</td></tr>
+<tr class="codeline" data-linenumber="1767"><td class="num" id="LN1767">1767</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1768"><td class="num" id="LN1768">1768</td><td class="line"> <span class='keyword'>if</span> (options-&gt;startup_id != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1769"><td class="num" id="LN1769">1769</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_FACTORY,<span class='macro_popup'>do { if (0) g_printerr("Startup ID is '%s'\n", options-&gt;startup_id<br>); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1770"><td class="num" id="LN1770">1770</td><td class="line"> <span class='string_literal'><span class='macro'>"Startup ID is '%s'\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("Startup ID is '%s'\n", options-&gt;startup_id<br>); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1771"><td class="num" id="LN1771">1771</td><td class="line"> <span class='macro'>options-&gt;startup_id)<span class='macro_popup'>do { if (0) g_printerr("Startup ID is '%s'\n", options-&gt;startup_id<br>); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1772"><td class="num" id="LN1772">1772</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1773"><td class="num" id="LN1773">1773</td><td class="line"> <span class='keyword'>for</span> (lw = options-&gt;initial_windows; lw != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; lw = lw-&gt;next)</td></tr>
+<tr class="codeline" data-linenumber="1774"><td class="num" id="LN1774">1774</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1775"><td class="num" id="LN1775">1775</td><td class="line"> InitialWindow *iw = lw-&gt;data;</td></tr>
+<tr class="codeline" data-linenumber="1776"><td class="num" id="LN1776">1776</td><td class="line"> TerminalWindow *window = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1777"><td class="num" id="LN1777">1777</td><td class="line"> GList *lt;</td></tr>
+<tr class="codeline" data-linenumber="1778"><td class="num" id="LN1778">1778</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1779"><td class="num" id="LN1779">1779</td><td class="line"> <span class='macro'>g_assert (iw-&gt;tabs)<span class='macro_popup'>do { if (iw-&gt;tabs) ; else g_assertion_message_expr (((gchar<br>*) 0), "terminal-app.c", 1779, ((const char*) (__func__)), "iw-&gt;tabs"<br>); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1780"><td class="num" id="LN1780">1780</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1781"><td class="num" id="LN1781">1781</td><td class="line"> <span class='keyword'>if</span> ( lw == options-&gt;initial_windows &amp;&amp; ((InitialTab *)iw-&gt;tabs-&gt;data)-&gt;attach_window )</td></tr>
+<tr class="codeline" data-linenumber="1782"><td class="num" id="LN1782">1782</td><td class="line"> window = terminal_app_get_current_window(app, gdk_screen, options-&gt;initial_workspace);</td></tr>
+<tr class="codeline" data-linenumber="1783"><td class="num" id="LN1783">1783</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1784"><td class="num" id="LN1784">1784</td><td class="line"> <span class='keyword'>if</span> (!window)</td></tr>
+<tr class="codeline" data-linenumber="1785"><td class="num" id="LN1785">1785</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1786"><td class="num" id="LN1786">1786</td><td class="line"> <span class='comment'>/* Create &amp; setup new window */</span></td></tr>
+<tr class="codeline" data-linenumber="1787"><td class="num" id="LN1787">1787</td><td class="line"> window = terminal_app_new_window (app, gdk_screen);</td></tr>
+<tr class="codeline" data-linenumber="1788"><td class="num" id="LN1788">1788</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1789"><td class="num" id="LN1789">1789</td><td class="line"> <span class='comment'>/* Restored windows shouldn't demand attention; see bug #586308. */</span></td></tr>
+<tr class="codeline" data-linenumber="1790"><td class="num" id="LN1790">1790</td><td class="line"> <span class='keyword'>if</span> (iw-&gt;source_tag == SOURCE_SESSION)</td></tr>
+<tr class="codeline" data-linenumber="1791"><td class="num" id="LN1791">1791</td><td class="line"> terminal_window_set_is_restored (window);</td></tr>
+<tr class="codeline" data-linenumber="1792"><td class="num" id="LN1792">1792</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1793"><td class="num" id="LN1793">1793</td><td class="line"> <span class='keyword'>if</span> (options-&gt;startup_id != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1794"><td class="num" id="LN1794">1794</td><td class="line"> gtk_window_set_startup_id (<span class='macro'>GTK_WINDOW (window)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_window_get_type ()))))))</span></span>, options-&gt;startup_id);</td></tr>
+<tr class="codeline" data-linenumber="1795"><td class="num" id="LN1795">1795</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1796"><td class="num" id="LN1796">1796</td><td class="line"> <span class='comment'>/* Overwrite the default, unique window role set in terminal_window_init */</span></td></tr>
+<tr class="codeline" data-linenumber="1797"><td class="num" id="LN1797">1797</td><td class="line"> <span class='keyword'>if</span> (iw-&gt;role)</td></tr>
+<tr class="codeline" data-linenumber="1798"><td class="num" id="LN1798">1798</td><td class="line"> gtk_window_set_role (<span class='macro'>GTK_WINDOW (window)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_window_get_type ()))))))</span></span>, iw-&gt;role);</td></tr>
+<tr class="codeline" data-linenumber="1799"><td class="num" id="LN1799">1799</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1800"><td class="num" id="LN1800">1800</td><td class="line"> <span class='keyword'>if</span> (iw-&gt;force_menubar_state)</td></tr>
+<tr class="codeline" data-linenumber="1801"><td class="num" id="LN1801">1801</td><td class="line"> terminal_window_set_menubar_visible (window, iw-&gt;menubar_state);</td></tr>
+<tr class="codeline" data-linenumber="1802"><td class="num" id="LN1802">1802</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1803"><td class="num" id="LN1803">1803</td><td class="line"> <span class='keyword'>if</span> (iw-&gt;start_fullscreen)</td></tr>
+<tr class="codeline" data-linenumber="1804"><td class="num" id="LN1804">1804</td><td class="line"> gtk_window_fullscreen (<span class='macro'>GTK_WINDOW (window)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_window_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1805"><td class="num" id="LN1805">1805</td><td class="line"> <span class='keyword'>if</span> (iw-&gt;start_maximized)</td></tr>
+<tr class="codeline" data-linenumber="1806"><td class="num" id="LN1806">1806</td><td class="line"> gtk_window_maximize (<span class='macro'>GTK_WINDOW (window)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_window_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1807"><td class="num" id="LN1807">1807</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1808"><td class="num" id="LN1808">1808</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1809"><td class="num" id="LN1809">1809</td><td class="line"> <span class='comment'>/* Now add the tabs */</span></td></tr>
+<tr class="codeline" data-linenumber="1810"><td class="num" id="LN1810">1810</td><td class="line"> <span class='keyword'>for</span> (lt = iw-&gt;tabs; lt != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; lt = lt-&gt;next)</td></tr>
+<tr class="codeline" data-linenumber="1811"><td class="num" id="LN1811">1811</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1812"><td class="num" id="LN1812">1812</td><td class="line"> InitialTab *it = lt-&gt;data;</td></tr>
+<tr class="codeline" data-linenumber="1813"><td class="num" id="LN1813">1813</td><td class="line"> TerminalProfile *profile = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1814"><td class="num" id="LN1814">1814</td><td class="line"> TerminalScreen *screen;</td></tr>
+<tr class="codeline" data-linenumber="1815"><td class="num" id="LN1815">1815</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *profile_name;</td></tr>
+<tr class="codeline" data-linenumber="1816"><td class="num" id="LN1816">1816</td><td class="line"> gboolean profile_is_id;</td></tr>
+<tr class="codeline" data-linenumber="1817"><td class="num" id="LN1817">1817</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1818"><td class="num" id="LN1818">1818</td><td class="line"> <span class='keyword'>if</span> (it-&gt;profile)</td></tr>
+<tr class="codeline" data-linenumber="1819"><td class="num" id="LN1819">1819</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1820"><td class="num" id="LN1820">1820</td><td class="line"> profile_name = it-&gt;profile;</td></tr>
+<tr class="codeline" data-linenumber="1821"><td class="num" id="LN1821">1821</td><td class="line"> profile_is_id = it-&gt;profile_is_id;</td></tr>
+<tr class="codeline" data-linenumber="1822"><td class="num" id="LN1822">1822</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1823"><td class="num" id="LN1823">1823</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="1824"><td class="num" id="LN1824">1824</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1825"><td class="num" id="LN1825">1825</td><td class="line"> profile_name = options-&gt;default_profile;</td></tr>
+<tr class="codeline" data-linenumber="1826"><td class="num" id="LN1826">1826</td><td class="line"> profile_is_id = options-&gt;default_profile_is_id;</td></tr>
+<tr class="codeline" data-linenumber="1827"><td class="num" id="LN1827">1827</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1828"><td class="num" id="LN1828">1828</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1829"><td class="num" id="LN1829">1829</td><td class="line"> <span class='keyword'>if</span> (profile_name)</td></tr>
+<tr class="codeline" data-linenumber="1830"><td class="num" id="LN1830">1830</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1831"><td class="num" id="LN1831">1831</td><td class="line"> <span class='keyword'>if</span> (profile_is_id)</td></tr>
+<tr class="codeline" data-linenumber="1832"><td class="num" id="LN1832">1832</td><td class="line"> profile = terminal_app_get_profile_by_name (app, profile_name);</td></tr>
+<tr class="codeline" data-linenumber="1833"><td class="num" id="LN1833">1833</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="1834"><td class="num" id="LN1834">1834</td><td class="line"> profile = terminal_app_get_profile_by_visible_name (app, profile_name);</td></tr>
+<tr class="codeline" data-linenumber="1835"><td class="num" id="LN1835">1835</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1836"><td class="num" id="LN1836">1836</td><td class="line"> <span class='keyword'>if</span> (profile == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1837"><td class="num" id="LN1837">1837</td><td class="line"> g_printerr (<span class='macro'>_(<span class='string_literal'>"No such profile \"%s\", using default profile\n"</span>)<span class='macro_popup'>gettext ("No such profile \"%s\", using default profile\n")</span></span>, it-&gt;profile);</td></tr>
+<tr class="codeline" data-linenumber="1838"><td class="num" id="LN1838">1838</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1839"><td class="num" id="LN1839">1839</td><td class="line"> <span class='keyword'>if</span> (profile == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1840"><td class="num" id="LN1840">1840</td><td class="line"> profile = terminal_app_get_profile_for_new_term (app);</td></tr>
+<tr class="codeline" data-linenumber="1841"><td class="num" id="LN1841">1841</td><td class="line"> <span class='macro'>g_assert (profile)<span class='macro_popup'>do { if (profile) ; else g_assertion_message_expr (((gchar*) 0<br>), "terminal-app.c", 1841, ((const char*) (__func__)), "profile"<br>); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1842"><td class="num" id="LN1842">1842</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1843"><td class="num" id="LN1843">1843</td><td class="line"> screen = terminal_app_new_terminal (app, window, profile,</td></tr>
+<tr class="codeline" data-linenumber="1844"><td class="num" id="LN1844">1844</td><td class="line"> it-&gt;exec_argv ? it-&gt;exec_argv : options-&gt;exec_argv,</td></tr>
+<tr class="codeline" data-linenumber="1845"><td class="num" id="LN1845">1845</td><td class="line"> it-&gt;title ? it-&gt;title : options-&gt;default_title,</td></tr>
+<tr class="codeline" data-linenumber="1846"><td class="num" id="LN1846">1846</td><td class="line"> it-&gt;working_dir ? it-&gt;working_dir : options-&gt;default_working_dir,</td></tr>
+<tr class="codeline" data-linenumber="1847"><td class="num" id="LN1847">1847</td><td class="line"> options-&gt;env,</td></tr>
+<tr class="codeline" data-linenumber="1848"><td class="num" id="LN1848">1848</td><td class="line"> it-&gt;zoom_set ? it-&gt;zoom : options-&gt;zoom);</td></tr>
+<tr class="codeline" data-linenumber="1849"><td class="num" id="LN1849">1849</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1850"><td class="num" id="LN1850">1850</td><td class="line"> <span class='keyword'>if</span> (it-&gt;active)</td></tr>
+<tr class="codeline" data-linenumber="1851"><td class="num" id="LN1851">1851</td><td class="line"> terminal_window_switch_screen (window, screen);</td></tr>
+<tr class="codeline" data-linenumber="1852"><td class="num" id="LN1852">1852</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1853"><td class="num" id="LN1853">1853</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1854"><td class="num" id="LN1854">1854</td><td class="line"> <span class='keyword'>if</span> (iw-&gt;geometry)</td></tr>
+<tr class="codeline" data-linenumber="1855"><td class="num" id="LN1855">1855</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1856"><td class="num" id="LN1856">1856</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_GEOMETRY,<span class='macro_popup'>do { if (0) g_printerr("[window %p] applying geometry %s\n", window<br>, iw-&gt;geometry); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1857"><td class="num" id="LN1857">1857</td><td class="line"> <span class='string_literal'><span class='macro'>"[window %p] applying geometry %s\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("[window %p] applying geometry %s\n", window<br>, iw-&gt;geometry); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1858"><td class="num" id="LN1858">1858</td><td class="line"> <span class='macro'>window, iw-&gt;geometry)<span class='macro_popup'>do { if (0) g_printerr("[window %p] applying geometry %s\n", window<br>, iw-&gt;geometry); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1859"><td class="num" id="LN1859">1859</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1860"><td class="num" id="LN1860">1860</td><td class="line"> <span class='keyword'>if</span> (!terminal_window_update_size_set_geometry (window,</td></tr>
+<tr class="codeline" data-linenumber="1861"><td class="num" id="LN1861">1861</td><td class="line"> terminal_window_get_active (window),</td></tr>
+<tr class="codeline" data-linenumber="1862"><td class="num" id="LN1862">1862</td><td class="line"> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1863"><td class="num" id="LN1863">1863</td><td class="line"> iw-&gt;geometry))</td></tr>
+<tr class="codeline" data-linenumber="1864"><td class="num" id="LN1864">1864</td><td class="line"> g_printerr (<span class='macro'>_(<span class='string_literal'>"Invalid geometry string \"%s\"\n"</span>)<span class='macro_popup'>gettext ("Invalid geometry string \"%s\"\n")</span></span>, iw-&gt;geometry);</td></tr>
+<tr class="codeline" data-linenumber="1865"><td class="num" id="LN1865">1865</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1866"><td class="num" id="LN1866">1866</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1867"><td class="num" id="LN1867">1867</td><td class="line"> gtk_window_present (<span class='macro'>GTK_WINDOW (window)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_window_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1868"><td class="num" id="LN1868">1868</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1869"><td class="num" id="LN1869">1869</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1870"><td class="num" id="LN1870">1870</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1871"><td class="num" id="LN1871">1871</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1872"><td class="num" id="LN1872">1872</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1873"><td class="num" id="LN1873">1873</td><td class="line">TerminalWindow *</td></tr>
+<tr class="codeline" data-linenumber="1874"><td class="num" id="LN1874">1874</td><td class="line">terminal_app_new_window (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="1875"><td class="num" id="LN1875">1875</td><td class="line"> GdkScreen *screen)</td></tr>
+<tr class="codeline" data-linenumber="1876"><td class="num" id="LN1876">1876</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1877"><td class="num" id="LN1877">1877</td><td class="line"> TerminalWindow *window;</td></tr>
+<tr class="codeline" data-linenumber="1878"><td class="num" id="LN1878">1878</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1879"><td class="num" id="LN1879">1879</td><td class="line"> window = terminal_window_new ();</td></tr>
+<tr class="codeline" data-linenumber="1880"><td class="num" id="LN1880">1880</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1881"><td class="num" id="LN1881">1881</td><td class="line"> app-&gt;windows = g_list_append (app-&gt;windows, window);</td></tr>
+<tr class="codeline" data-linenumber="1882"><td class="num" id="LN1882">1882</td><td class="line"> <span class='macro'>g_signal_connect (window, <span class='string_literal'>"destroy"</span>,<span class='macro_popup'>g_signal_connect_data ((window), ("destroy"), (((GCallback) (<br>terminal_window_destroyed))), (app), ((void*)0), (GConnectFlags<br>) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1883"><td class="num" id="LN1883">1883</td><td class="line"> <span class='macro'>G_CALLBACK (terminal_window_destroyed), app)<span class='macro_popup'>g_signal_connect_data ((window), ("destroy"), (((GCallback) (<br>terminal_window_destroyed))), (app), ((void*)0), (GConnectFlags<br>) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1884"><td class="num" id="LN1884">1884</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1885"><td class="num" id="LN1885">1885</td><td class="line"> <span class='keyword'>if</span> (screen)</td></tr>
+<tr class="codeline" data-linenumber="1886"><td class="num" id="LN1886">1886</td><td class="line"> gtk_window_set_screen (<span class='macro'>GTK_WINDOW (window)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_window_get_type ()))))))</span></span>, screen);</td></tr>
+<tr class="codeline" data-linenumber="1887"><td class="num" id="LN1887">1887</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1888"><td class="num" id="LN1888">1888</td><td class="line"> <span class='keyword'>return</span> window;</td></tr>
+<tr class="codeline" data-linenumber="1889"><td class="num" id="LN1889">1889</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1890"><td class="num" id="LN1890">1890</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1891"><td class="num" id="LN1891">1891</td><td class="line">TerminalScreen *</td></tr>
+<tr class="codeline" data-linenumber="1892"><td class="num" id="LN1892">1892</td><td class="line">terminal_app_new_terminal (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="1893"><td class="num" id="LN1893">1893</td><td class="line"> TerminalWindow *window,</td></tr>
+<tr class="codeline" data-linenumber="1894"><td class="num" id="LN1894">1894</td><td class="line"> TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1895"><td class="num" id="LN1895">1895</td><td class="line"> <span class='keyword'>char</span> **override_command,</td></tr>
+<tr class="codeline" data-linenumber="1896"><td class="num" id="LN1896">1896</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *title,</td></tr>
+<tr class="codeline" data-linenumber="1897"><td class="num" id="LN1897">1897</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *working_dir,</td></tr>
+<tr class="codeline" data-linenumber="1898"><td class="num" id="LN1898">1898</td><td class="line"> <span class='keyword'>char</span> **child_env,</td></tr>
+<tr class="codeline" data-linenumber="1899"><td class="num" id="LN1899">1899</td><td class="line"> <span class='keyword'>double</span> zoom)</td></tr>
+<tr class="codeline" data-linenumber="1900"><td class="num" id="LN1900">1900</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1901"><td class="num" id="LN1901">1901</td><td class="line"> TerminalScreen *screen;</td></tr>
+<tr class="codeline" data-linenumber="1902"><td class="num" id="LN1902">1902</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1903"><td class="num" id="LN1903">1903</td><td class="line"> <span class='macro'>g_return_val_if_fail (TERMINAL_IS_APP (app), NULL)<span class='macro_popup'>do { if (((((__extension__ ({ GTypeInstance *__inst = (GTypeInstance<br>*) ((app)); GType __t = ((terminal_app_get_type ())); gboolean<br> __r; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; })))))) { }<br> else { g_return_if_fail_warning (((gchar*) 0), ((const char*<br>) (__func__)), "TERMINAL_IS_APP (app)"); return (((void*)0));<br> } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1904"><td class="num" id="LN1904">1904</td><td class="line"> <span class='macro'>g_return_val_if_fail (TERMINAL_IS_WINDOW (window), NULL)<span class='macro_popup'>do { if (((((__extension__ ({ GTypeInstance *__inst = (GTypeInstance<br>*) ((window)); GType __t = ((terminal_window_get_type ())); gboolean<br> __r; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; })))))) { }<br> else { g_return_if_fail_warning (((gchar*) 0), ((const char*<br>) (__func__)), "TERMINAL_IS_WINDOW (window)"); return (((void<br>*)0)); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1905"><td class="num" id="LN1905">1905</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1906"><td class="num" id="LN1906">1906</td><td class="line"> screen = terminal_screen_new (profile, override_command, title,</td></tr>
+<tr class="codeline" data-linenumber="1907"><td class="num" id="LN1907">1907</td><td class="line"> working_dir, child_env, zoom);</td></tr>
+<tr class="codeline" data-linenumber="1908"><td class="num" id="LN1908">1908</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1909"><td class="num" id="LN1909">1909</td><td class="line"> terminal_window_add_screen (window, screen, -1);</td></tr>
+<tr class="codeline" data-linenumber="1910"><td class="num" id="LN1910">1910</td><td class="line"> terminal_window_switch_screen (window, screen);</td></tr>
+<tr class="codeline" data-linenumber="1911"><td class="num" id="LN1911">1911</td><td class="line"> gtk_widget_grab_focus (<span class='macro'>GTK_WIDGET (screen)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((screen)), ((gtk_widget_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1912"><td class="num" id="LN1912">1912</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1913"><td class="num" id="LN1913">1913</td><td class="line"> <span class='keyword'>return</span> screen;</td></tr>
+<tr class="codeline" data-linenumber="1914"><td class="num" id="LN1914">1914</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1915"><td class="num" id="LN1915">1915</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1916"><td class="num" id="LN1916">1916</td><td class="line"><span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1917"><td class="num" id="LN1917">1917</td><td class="line">terminal_app_edit_profile (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="1918"><td class="num" id="LN1918">1918</td><td class="line"> TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1919"><td class="num" id="LN1919">1919</td><td class="line"> GtkWindow *transient_parent,</td></tr>
+<tr class="codeline" data-linenumber="1920"><td class="num" id="LN1920">1920</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *widget_name)</td></tr>
+<tr class="codeline" data-linenumber="1921"><td class="num" id="LN1921">1921</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1922"><td class="num" id="LN1922">1922</td><td class="line"> terminal_profile_edit (profile, transient_parent, widget_name);</td></tr>
+<tr class="codeline" data-linenumber="1923"><td class="num" id="LN1923">1923</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1924"><td class="num" id="LN1924">1924</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1925"><td class="num" id="LN1925">1925</td><td class="line"><span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1926"><td class="num" id="LN1926">1926</td><td class="line">terminal_app_edit_keybindings (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="1927"><td class="num" id="LN1927">1927</td><td class="line"> GtkWindow *transient_parent)</td></tr>
+<tr class="codeline" data-linenumber="1928"><td class="num" id="LN1928">1928</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1929"><td class="num" id="LN1929">1929</td><td class="line"> terminal_edit_keys_dialog_show (transient_parent);</td></tr>
+<tr class="codeline" data-linenumber="1930"><td class="num" id="LN1930">1930</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1931"><td class="num" id="LN1931">1931</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1932"><td class="num" id="LN1932">1932</td><td class="line"><span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1933"><td class="num" id="LN1933">1933</td><td class="line">terminal_app_edit_encodings (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="1934"><td class="num" id="LN1934">1934</td><td class="line"> GtkWindow *transient_parent)</td></tr>
+<tr class="codeline" data-linenumber="1935"><td class="num" id="LN1935">1935</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1936"><td class="num" id="LN1936">1936</td><td class="line"> terminal_encoding_dialog_show (transient_parent);</td></tr>
+<tr class="codeline" data-linenumber="1937"><td class="num" id="LN1937">1937</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1938"><td class="num" id="LN1938">1938</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1939"><td class="num" id="LN1939">1939</td><td class="line"><span class='comment'>/*</span></td></tr>
+<tr class="codeline" data-linenumber="1940"><td class="num" id="LN1940">1940</td><td class="line"><span class='comment'>* Get the window in the given screen and workspace. If nothing is found,</span></td></tr>
+<tr class="codeline" data-linenumber="1941"><td class="num" id="LN1941">1941</td><td class="line"><span class='comment'>* a NULL is returned.</span></td></tr>
+<tr class="codeline" data-linenumber="1942"><td class="num" id="LN1942">1942</td><td class="line"><span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="1943"><td class="num" id="LN1943">1943</td><td class="line">TerminalWindow *</td></tr>
+<tr class="codeline" data-linenumber="1944"><td class="num" id="LN1944">1944</td><td class="line">terminal_app_get_current_window (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="1945"><td class="num" id="LN1945">1945</td><td class="line"> GdkScreen *from_screen,</td></tr>
+<tr class="codeline" data-linenumber="1946"><td class="num" id="LN1946">1946</td><td class="line"> <span class='keyword'>int</span> workspace)</td></tr>
+<tr class="codeline" data-linenumber="1947"><td class="num" id="LN1947">1947</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1948"><td class="num" id="LN1948">1948</td><td class="line"> GList *res = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1949"><td class="num" id="LN1949">1949</td><td class="line"> TerminalWindow *ret = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1950"><td class="num" id="LN1950">1950</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1951"><td class="num" id="LN1951">1951</td><td class="line"> <span class='keyword'>if</span> (app-&gt;windows == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1952"><td class="num" id="LN1952">1952</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1953"><td class="num" id="LN1953">1953</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1954"><td class="num" id="LN1954">1954</td><td class="line"> res = g_list_last (app-&gt;windows);</td></tr>
+<tr class="codeline" data-linenumber="1955"><td class="num" id="LN1955">1955</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1956"><td class="num" id="LN1956">1956</td><td class="line"> <span class='macro'>g_assert (from_screen != NULL)<span class='macro_popup'>do { if (from_screen != ((void*)0)) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-app.c", 1956, ((const char*) (__func__<br>)), "from_screen != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1957"><td class="num" id="LN1957">1957</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1958"><td class="num" id="LN1958">1958</td><td class="line"> <span class='keyword'>while</span> (res)</td></tr>
+<tr class="codeline" data-linenumber="1959"><td class="num" id="LN1959">1959</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1960"><td class="num" id="LN1960">1960</td><td class="line"> <span class='keyword'>int</span> win_workspace;</td></tr>
+<tr class="codeline" data-linenumber="1961"><td class="num" id="LN1961">1961</td><td class="line"> <span class='keyword'>if</span> (gtk_window_get_screen(<span class='macro'>GTK_WINDOW(res-&gt;data)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((res-&gt;data)), ((gtk_window_get_type ()))))))</span></span>) != from_screen)</td></tr>
+<tr class="codeline" data-linenumber="1962"><td class="num" id="LN1962">1962</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="1963"><td class="num" id="LN1963">1963</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1964"><td class="num" id="LN1964">1964</td><td class="line"> win_workspace = terminal_app_get_workspace_for_window(res-&gt;data);</td></tr>
+<tr class="codeline" data-linenumber="1965"><td class="num" id="LN1965">1965</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1966"><td class="num" id="LN1966">1966</td><td class="line"> <span class='comment'>/* Same workspace or if the window is set to show up on all workspaces */</span></td></tr>
+<tr class="codeline" data-linenumber="1967"><td class="num" id="LN1967">1967</td><td class="line"> <span class='keyword'>if</span> (win_workspace == workspace || win_workspace == -1)</td></tr>
+<tr class="codeline" data-linenumber="1968"><td class="num" id="LN1968">1968</td><td class="line"> ret = terminal_window_get_latest_focused (ret, <span class='macro'>TERMINAL_WINDOW(res-&gt;data)<span class='macro_popup'>((((TerminalWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((res-&gt;data)), ((terminal_window_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1969"><td class="num" id="LN1969">1969</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1970"><td class="num" id="LN1970">1970</td><td class="line"> res = <span class='macro'>g_list_previous (res)<span class='macro_popup'>((res) ? (((GList *)(res))-&gt;prev) : ((void*)0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1971"><td class="num" id="LN1971">1971</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1972"><td class="num" id="LN1972">1972</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1973"><td class="num" id="LN1973">1973</td><td class="line"> <span class='keyword'>return</span> ret;</td></tr>
+<tr class="codeline" data-linenumber="1974"><td class="num" id="LN1974">1974</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1975"><td class="num" id="LN1975">1975</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1976"><td class="num" id="LN1976">1976</td><td class="line"><span class='comment'>/**</span></td></tr>
+<tr class="codeline" data-linenumber="1977"><td class="num" id="LN1977">1977</td><td class="line"> <span class='comment'>* terminal_profile_get_list:</span></td></tr>
+<tr class="codeline" data-linenumber="1978"><td class="num" id="LN1978">1978</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="1979"><td class="num" id="LN1979">1979</td><td class="line"> <span class='comment'>* Returns: a #GList containing all #TerminalProfile objects.</span></td></tr>
+<tr class="codeline" data-linenumber="1980"><td class="num" id="LN1980">1980</td><td class="line"> <span class='comment'>* The content of the list is owned by the backend and</span></td></tr>
+<tr class="codeline" data-linenumber="1981"><td class="num" id="LN1981">1981</td><td class="line"> <span class='comment'>* should not be modified or freed. Use g_list_free() when done</span></td></tr>
+<tr class="codeline" data-linenumber="1982"><td class="num" id="LN1982">1982</td><td class="line"> <span class='comment'>* using the list.</span></td></tr>
+<tr class="codeline" data-linenumber="1983"><td class="num" id="LN1983">1983</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="1984"><td class="num" id="LN1984">1984</td><td class="line">GList*</td></tr>
+<tr class="codeline" data-linenumber="1985"><td class="num" id="LN1985">1985</td><td class="line">terminal_app_get_profile_list (TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="1986"><td class="num" id="LN1986">1986</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1987"><td class="num" id="LN1987">1987</td><td class="line"> <span class='macro'>g_return_val_if_fail (TERMINAL_IS_APP (app), NULL)<span class='macro_popup'>do { if (((((__extension__ ({ GTypeInstance *__inst = (GTypeInstance<br>*) ((app)); GType __t = ((terminal_app_get_type ())); gboolean<br> __r; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; })))))) { }<br> else { g_return_if_fail_warning (((gchar*) 0), ((const char*<br>) (__func__)), "TERMINAL_IS_APP (app)"); return (((void*)0));<br> } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1988"><td class="num" id="LN1988">1988</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1989"><td class="num" id="LN1989">1989</td><td class="line"> <span class='keyword'>return</span> g_list_sort (g_hash_table_get_values (app-&gt;profiles), profiles_alphabetic_cmp);</td></tr>
+<tr class="codeline" data-linenumber="1990"><td class="num" id="LN1990">1990</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1991"><td class="num" id="LN1991">1991</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1992"><td class="num" id="LN1992">1992</td><td class="line">TerminalProfile*</td></tr>
+<tr class="codeline" data-linenumber="1993"><td class="num" id="LN1993">1993</td><td class="line">terminal_app_get_profile_by_name (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="1994"><td class="num" id="LN1994">1994</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *name)</td></tr>
+<tr class="codeline" data-linenumber="1995"><td class="num" id="LN1995">1995</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1996"><td class="num" id="LN1996">1996</td><td class="line"> <span class='macro'>g_return_val_if_fail (TERMINAL_IS_APP (app), NULL)<span class='macro_popup'>do { if (((((__extension__ ({ GTypeInstance *__inst = (GTypeInstance<br>*) ((app)); GType __t = ((terminal_app_get_type ())); gboolean<br> __r; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; })))))) { }<br> else { g_return_if_fail_warning (((gchar*) 0), ((const char*<br>) (__func__)), "TERMINAL_IS_APP (app)"); return (((void*)0));<br> } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1997"><td class="num" id="LN1997">1997</td><td class="line"> <span class='macro'>g_return_val_if_fail (name != NULL, NULL)<span class='macro_popup'>do { if ((name != ((void*)0))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "name != NULL"); return<br> (((void*)0)); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1998"><td class="num" id="LN1998">1998</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1999"><td class="num" id="LN1999">1999</td><td class="line"> <span class='keyword'>return</span> g_hash_table_lookup (app-&gt;profiles, name);</td></tr>
+<tr class="codeline" data-linenumber="2000"><td class="num" id="LN2000">2000</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="2001"><td class="num" id="LN2001">2001</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2002"><td class="num" id="LN2002">2002</td><td class="line">TerminalProfile*</td></tr>
+<tr class="codeline" data-linenumber="2003"><td class="num" id="LN2003">2003</td><td class="line">terminal_app_get_profile_by_visible_name (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="2004"><td class="num" id="LN2004">2004</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *name)</td></tr>
+<tr class="codeline" data-linenumber="2005"><td class="num" id="LN2005">2005</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="2006"><td class="num" id="LN2006">2006</td><td class="line"> LookupInfo info;</td></tr>
+<tr class="codeline" data-linenumber="2007"><td class="num" id="LN2007">2007</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2008"><td class="num" id="LN2008">2008</td><td class="line"> <span class='macro'>g_return_val_if_fail (TERMINAL_IS_APP (app), NULL)<span class='macro_popup'>do { if (((((__extension__ ({ GTypeInstance *__inst = (GTypeInstance<br>*) ((app)); GType __t = ((terminal_app_get_type ())); gboolean<br> __r; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; })))))) { }<br> else { g_return_if_fail_warning (((gchar*) 0), ((const char*<br>) (__func__)), "TERMINAL_IS_APP (app)"); return (((void*)0));<br> } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2009"><td class="num" id="LN2009">2009</td><td class="line"> <span class='macro'>g_return_val_if_fail (name != NULL, NULL)<span class='macro_popup'>do { if ((name != ((void*)0))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "name != NULL"); return<br> (((void*)0)); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2010"><td class="num" id="LN2010">2010</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2011"><td class="num" id="LN2011">2011</td><td class="line"> info.result = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2012"><td class="num" id="LN2012">2012</td><td class="line"> info.target = name;</td></tr>
+<tr class="codeline" data-linenumber="2013"><td class="num" id="LN2013">2013</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2014"><td class="num" id="LN2014">2014</td><td class="line"> g_hash_table_foreach (app-&gt;profiles,</td></tr>
+<tr class="codeline" data-linenumber="2015"><td class="num" id="LN2015">2015</td><td class="line"> profiles_lookup_by_visible_name_foreach,</td></tr>
+<tr class="codeline" data-linenumber="2016"><td class="num" id="LN2016">2016</td><td class="line"> &amp;info);</td></tr>
+<tr class="codeline" data-linenumber="2017"><td class="num" id="LN2017">2017</td><td class="line"> <span class='keyword'>return</span> info.result;</td></tr>
+<tr class="codeline" data-linenumber="2018"><td class="num" id="LN2018">2018</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="2019"><td class="num" id="LN2019">2019</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2020"><td class="num" id="LN2020">2020</td><td class="line">TerminalProfile*</td></tr>
+<tr class="codeline" data-linenumber="2021"><td class="num" id="LN2021">2021</td><td class="line">terminal_app_get_default_profile (TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="2022"><td class="num" id="LN2022">2022</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="2023"><td class="num" id="LN2023">2023</td><td class="line"> <span class='macro'>g_return_val_if_fail (TERMINAL_IS_APP (app), NULL)<span class='macro_popup'>do { if (((((__extension__ ({ GTypeInstance *__inst = (GTypeInstance<br>*) ((app)); GType __t = ((terminal_app_get_type ())); gboolean<br> __r; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; })))))) { }<br> else { g_return_if_fail_warning (((gchar*) 0), ((const char*<br>) (__func__)), "TERMINAL_IS_APP (app)"); return (((void*)0));<br> } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2024"><td class="num" id="LN2024">2024</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2025"><td class="num" id="LN2025">2025</td><td class="line"> <span class='keyword'>return</span> app-&gt;default_profile;</td></tr>
+<tr class="codeline" data-linenumber="2026"><td class="num" id="LN2026">2026</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="2027"><td class="num" id="LN2027">2027</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2028"><td class="num" id="LN2028">2028</td><td class="line">TerminalProfile*</td></tr>
+<tr class="codeline" data-linenumber="2029"><td class="num" id="LN2029">2029</td><td class="line">terminal_app_get_profile_for_new_term (TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="2030"><td class="num" id="LN2030">2030</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="2031"><td class="num" id="LN2031">2031</td><td class="line"> GHashTableIter iter;</td></tr>
+<tr class="codeline" data-linenumber="2032"><td class="num" id="LN2032">2032</td><td class="line"> TerminalProfile *profile = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2033"><td class="num" id="LN2033">2033</td><td class="line"> TerminalProfile **profileptr = &amp;profile;</td></tr>
+<tr class="codeline" data-linenumber="2034"><td class="num" id="LN2034">2034</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2035"><td class="num" id="LN2035">2035</td><td class="line"> <span class='macro'>g_return_val_if_fail (TERMINAL_IS_APP (app), NULL)<span class='macro_popup'>do { if (((((__extension__ ({ GTypeInstance *__inst = (GTypeInstance<br>*) ((app)); GType __t = ((terminal_app_get_type ())); gboolean<br> __r; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; })))))) { }<br> else { g_return_if_fail_warning (((gchar*) 0), ((const char*<br>) (__func__)), "TERMINAL_IS_APP (app)"); return (((void*)0));<br> } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2036"><td class="num" id="LN2036">2036</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2037"><td class="num" id="LN2037">2037</td><td class="line"> <span class='keyword'>if</span> (app-&gt;default_profile)</td></tr>
+<tr class="codeline" data-linenumber="2038"><td class="num" id="LN2038">2038</td><td class="line"> <span class='keyword'>return</span> app-&gt;default_profile;</td></tr>
+<tr class="codeline" data-linenumber="2039"><td class="num" id="LN2039">2039</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2040"><td class="num" id="LN2040">2040</td><td class="line"> g_hash_table_iter_init (&amp;iter, app-&gt;profiles);</td></tr>
+<tr class="codeline" data-linenumber="2041"><td class="num" id="LN2041">2041</td><td class="line"> <span class='keyword'>if</span> (g_hash_table_iter_next (&amp;iter, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, (gpointer *) profileptr))</td></tr>
+<tr class="codeline" data-linenumber="2042"><td class="num" id="LN2042">2042</td><td class="line"> <span class='keyword'>return</span> profile;</td></tr>
+<tr class="codeline" data-linenumber="2043"><td class="num" id="LN2043">2043</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2044"><td class="num" id="LN2044">2044</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2045"><td class="num" id="LN2045">2045</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="2046"><td class="num" id="LN2046">2046</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2047"><td class="num" id="LN2047">2047</td><td class="line">GHashTable *</td></tr>
+<tr class="codeline" data-linenumber="2048"><td class="num" id="LN2048">2048</td><td class="line">terminal_app_get_encodings (TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="2049"><td class="num" id="LN2049">2049</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="2050"><td class="num" id="LN2050">2050</td><td class="line"> <span class='keyword'>return</span> app-&gt;encodings;</td></tr>
+<tr class="codeline" data-linenumber="2051"><td class="num" id="LN2051">2051</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="2052"><td class="num" id="LN2052">2052</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2053"><td class="num" id="LN2053">2053</td><td class="line"><span class='comment'>/**</span></td></tr>
+<tr class="codeline" data-linenumber="2054"><td class="num" id="LN2054">2054</td><td class="line"> <span class='comment'>* terminal_app_ensure_encoding:</span></td></tr>
+<tr class="codeline" data-linenumber="2055"><td class="num" id="LN2055">2055</td><td class="line"> <span class='comment'>* @app:</span></td></tr>
+<tr class="codeline" data-linenumber="2056"><td class="num" id="LN2056">2056</td><td class="line"> <span class='comment'>* @charset:</span></td></tr>
+<tr class="codeline" data-linenumber="2057"><td class="num" id="LN2057">2057</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="2058"><td class="num" id="LN2058">2058</td><td class="line"> <span class='comment'>* Ensures there's a #TerminalEncoding for @charset available.</span></td></tr>
+<tr class="codeline" data-linenumber="2059"><td class="num" id="LN2059">2059</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="2060"><td class="num" id="LN2060">2060</td><td class="line">TerminalEncoding *</td></tr>
+<tr class="codeline" data-linenumber="2061"><td class="num" id="LN2061">2061</td><td class="line">terminal_app_ensure_encoding (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="2062"><td class="num" id="LN2062">2062</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *charset)</td></tr>
+<tr class="codeline" data-linenumber="2063"><td class="num" id="LN2063">2063</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="2064"><td class="num" id="LN2064">2064</td><td class="line"> TerminalEncoding *encoding;</td></tr>
+<tr class="codeline" data-linenumber="2065"><td class="num" id="LN2065">2065</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2066"><td class="num" id="LN2066">2066</td><td class="line"> encoding = g_hash_table_lookup (app-&gt;encodings, charset);</td></tr>
+<tr class="codeline" data-linenumber="2067"><td class="num" id="LN2067">2067</td><td class="line"> <span class='keyword'>if</span> (encoding == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="2068"><td class="num" id="LN2068">2068</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="2069"><td class="num" id="LN2069">2069</td><td class="line"> encoding = terminal_encoding_new (charset,</td></tr>
+<tr class="codeline" data-linenumber="2070"><td class="num" id="LN2070">2070</td><td class="line"> <span class='macro'>_(<span class='string_literal'>"User Defined"</span>)<span class='macro_popup'>gettext ("User Defined")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2071"><td class="num" id="LN2071">2071</td><td class="line"> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2072"><td class="num" id="LN2072">2072</td><td class="line"> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span> <span class='comment'>/* scary! */</span>);</td></tr>
+<tr class="codeline" data-linenumber="2073"><td class="num" id="LN2073">2073</td><td class="line"> g_hash_table_insert (app-&gt;encodings,</td></tr>
+<tr class="codeline" data-linenumber="2074"><td class="num" id="LN2074">2074</td><td class="line"> (gpointer) terminal_encoding_get_id (encoding),</td></tr>
+<tr class="codeline" data-linenumber="2075"><td class="num" id="LN2075">2075</td><td class="line"> encoding);</td></tr>
+<tr class="codeline" data-linenumber="2076"><td class="num" id="LN2076">2076</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="2077"><td class="num" id="LN2077">2077</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2078"><td class="num" id="LN2078">2078</td><td class="line"> <span class='keyword'>return</span> encoding;</td></tr>
+<tr class="codeline" data-linenumber="2079"><td class="num" id="LN2079">2079</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="2080"><td class="num" id="LN2080">2080</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2081"><td class="num" id="LN2081">2081</td><td class="line"><span class='comment'>/**</span></td></tr>
+<tr class="codeline" data-linenumber="2082"><td class="num" id="LN2082">2082</td><td class="line"> <span class='comment'>* terminal_app_get_active_encodings:</span></td></tr>
+<tr class="codeline" data-linenumber="2083"><td class="num" id="LN2083">2083</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="2084"><td class="num" id="LN2084">2084</td><td class="line"> <span class='comment'>* Returns: a newly allocated list of newly referenced #TerminalEncoding objects.</span></td></tr>
+<tr class="codeline" data-linenumber="2085"><td class="num" id="LN2085">2085</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="2086"><td class="num" id="LN2086">2086</td><td class="line">GSList*</td></tr>
+<tr class="codeline" data-linenumber="2087"><td class="num" id="LN2087">2087</td><td class="line">terminal_app_get_active_encodings (TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="2088"><td class="num" id="LN2088">2088</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="2089"><td class="num" id="LN2089">2089</td><td class="line"> GSList *list = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2090"><td class="num" id="LN2090">2090</td><td class="line"> GHashTableIter iter;</td></tr>
+<tr class="codeline" data-linenumber="2091"><td class="num" id="LN2091">2091</td><td class="line"> gpointer key, value;</td></tr>
+<tr class="codeline" data-linenumber="2092"><td class="num" id="LN2092">2092</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2093"><td class="num" id="LN2093">2093</td><td class="line"> g_hash_table_iter_init (&amp;iter, app-&gt;encodings);</td></tr>
+<tr class="codeline" data-linenumber="2094"><td class="num" id="LN2094">2094</td><td class="line"> <span class='keyword'>while</span> (g_hash_table_iter_next (&amp;iter, &amp;key, &amp;value))</td></tr>
+<tr class="codeline" data-linenumber="2095"><td class="num" id="LN2095">2095</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="2096"><td class="num" id="LN2096">2096</td><td class="line"> TerminalEncoding *encoding = (TerminalEncoding *) value;</td></tr>
+<tr class="codeline" data-linenumber="2097"><td class="num" id="LN2097">2097</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2098"><td class="num" id="LN2098">2098</td><td class="line"> <span class='keyword'>if</span> (!encoding-&gt;is_active)</td></tr>
+<tr class="codeline" data-linenumber="2099"><td class="num" id="LN2099">2099</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="2100"><td class="num" id="LN2100">2100</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2101"><td class="num" id="LN2101">2101</td><td class="line"> list = g_slist_prepend (list, terminal_encoding_ref (encoding));</td></tr>
+<tr class="codeline" data-linenumber="2102"><td class="num" id="LN2102">2102</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="2103"><td class="num" id="LN2103">2103</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2104"><td class="num" id="LN2104">2104</td><td class="line"> <span class='keyword'>return</span> g_slist_sort (list, (GCompareFunc) compare_encodings);</td></tr>
+<tr class="codeline" data-linenumber="2105"><td class="num" id="LN2105">2105</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="2106"><td class="num" id="LN2106">2106</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2107"><td class="num" id="LN2107">2107</td><td class="line"><span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="2108"><td class="num" id="LN2108">2108</td><td class="line">terminal_app_save_config (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="2109"><td class="num" id="LN2109">2109</td><td class="line"> GKeyFile *key_file)</td></tr>
+<tr class="codeline" data-linenumber="2110"><td class="num" id="LN2110">2110</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="2111"><td class="num" id="LN2111">2111</td><td class="line"> GList *lw;</td></tr>
+<tr class="codeline" data-linenumber="2112"><td class="num" id="LN2112">2112</td><td class="line"> guint n = 0;</td></tr>
+<tr class="codeline" data-linenumber="2113"><td class="num" id="LN2113">2113</td><td class="line"> GPtrArray *window_names_array;</td></tr>
+<tr class="codeline" data-linenumber="2114"><td class="num" id="LN2114">2114</td><td class="line"> <span class='keyword'>char</span> **window_names;</td></tr>
+<tr class="codeline" data-linenumber="2115"><td class="num" id="LN2115">2115</td><td class="line"> gsize len;</td></tr>
+<tr class="codeline" data-linenumber="2116"><td class="num" id="LN2116">2116</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2117"><td class="num" id="LN2117">2117</td><td class="line"> g_key_file_set_comment (key_file, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='string_literal'>"Written by "</span> <span class='macro'>PACKAGE_STRING<span class='macro_popup'>"mate-terminal 1.27.1"</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="2118"><td class="num" id="LN2118">2118</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2119"><td class="num" id="LN2119">2119</td><td class="line"> g_key_file_set_integer (key_file, <span class='macro'>TERMINAL_CONFIG_GROUP<span class='macro_popup'>"MATE Terminal Configuration"</span></span>, <span class='macro'>TERMINAL_CONFIG_PROP_VERSION<span class='macro_popup'>"Version"</span></span>, <span class='macro'>TERMINAL_CONFIG_VERSION<span class='macro_popup'>(1)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="2120"><td class="num" id="LN2120">2120</td><td class="line"> g_key_file_set_integer (key_file, <span class='macro'>TERMINAL_CONFIG_GROUP<span class='macro_popup'>"MATE Terminal Configuration"</span></span>, <span class='macro'>TERMINAL_CONFIG_PROP_COMPAT_VERSION<span class='macro_popup'>"CompatVersion"</span></span>, <span class='macro'>TERMINAL_CONFIG_COMPAT_VERSION<span class='macro_popup'>(1)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="2121"><td class="num" id="LN2121">2121</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2122"><td class="num" id="LN2122">2122</td><td class="line"> window_names_array = g_ptr_array_sized_new (g_list_length (app-&gt;windows) + 1);</td></tr>
+<tr class="codeline" data-linenumber="2123"><td class="num" id="LN2123">2123</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2124"><td class="num" id="LN2124">2124</td><td class="line"> <span class='keyword'>for</span> (lw = app-&gt;windows; lw != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; lw = lw-&gt;next)</td></tr>
+<tr class="codeline" data-linenumber="2125"><td class="num" id="LN2125">2125</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="2126"><td class="num" id="LN2126">2126</td><td class="line"> TerminalWindow *window = <span class='macro'>TERMINAL_WINDOW (lw-&gt;data)<span class='macro_popup'>((((TerminalWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((lw-&gt;data)), ((terminal_window_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2127"><td class="num" id="LN2127">2127</td><td class="line"> <span class='keyword'>char</span> *group;</td></tr>
+<tr class="codeline" data-linenumber="2128"><td class="num" id="LN2128">2128</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2129"><td class="num" id="LN2129">2129</td><td class="line"> group = g_strdup_printf (<span class='string_literal'>"Window%u"</span>, n++);</td></tr>
+<tr class="codeline" data-linenumber="2130"><td class="num" id="LN2130">2130</td><td class="line"> g_ptr_array_add (window_names_array, group);</td></tr>
+<tr class="codeline" data-linenumber="2131"><td class="num" id="LN2131">2131</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2132"><td class="num" id="LN2132">2132</td><td class="line"> terminal_window_save_state (window, key_file, group);</td></tr>
+<tr class="codeline" data-linenumber="2133"><td class="num" id="LN2133">2133</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="2134"><td class="num" id="LN2134">2134</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2135"><td class="num" id="LN2135">2135</td><td class="line"> len = window_names_array-&gt;len;</td></tr>
+<tr class="codeline" data-linenumber="2136"><td class="num" id="LN2136">2136</td><td class="line"> g_ptr_array_add (window_names_array, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="2137"><td class="num" id="LN2137">2137</td><td class="line"> window_names = (<span class='keyword'>char</span> **) g_ptr_array_free (window_names_array, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="2138"><td class="num" id="LN2138">2138</td><td class="line"> g_key_file_set_string_list (key_file, <span class='macro'>TERMINAL_CONFIG_GROUP<span class='macro_popup'>"MATE Terminal Configuration"</span></span>, <span class='macro'>TERMINAL_CONFIG_PROP_WINDOWS<span class='macro_popup'>"Windows"</span></span>, (<span class='keyword'>const</span> <span class='keyword'>char</span> * <span class='keyword'>const</span> *) window_names, len);</td></tr>
+<tr class="codeline" data-linenumber="2139"><td class="num" id="LN2139">2139</td><td class="line"> g_strfreev (window_names);</td></tr>
+<tr class="codeline" data-linenumber="2140"><td class="num" id="LN2140">2140</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="2141"><td class="num" id="LN2141">2141</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2142"><td class="num" id="LN2142">2142</td><td class="line">gboolean</td></tr>
+<tr class="codeline" data-linenumber="2143"><td class="num" id="LN2143">2143</td><td class="line">terminal_app_save_config_file (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="2144"><td class="num" id="LN2144">2144</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *file_name,</td></tr>
+<tr class="codeline" data-linenumber="2145"><td class="num" id="LN2145">2145</td><td class="line"> GError **error)</td></tr>
+<tr class="codeline" data-linenumber="2146"><td class="num" id="LN2146">2146</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="2147"><td class="num" id="LN2147">2147</td><td class="line"> GKeyFile *key_file;</td></tr>
+<tr class="codeline" data-linenumber="2148"><td class="num" id="LN2148">2148</td><td class="line"> <span class='keyword'>char</span> *data;</td></tr>
+<tr class="codeline" data-linenumber="2149"><td class="num" id="LN2149">2149</td><td class="line"> gsize len;</td></tr>
+<tr class="codeline" data-linenumber="2150"><td class="num" id="LN2150">2150</td><td class="line"> gboolean result;</td></tr>
+<tr class="codeline" data-linenumber="2151"><td class="num" id="LN2151">2151</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2152"><td class="num" id="LN2152">2152</td><td class="line"> key_file = g_key_file_new ();</td></tr>
+<tr class="codeline" data-linenumber="2153"><td class="num" id="LN2153">2153</td><td class="line"> terminal_app_save_config (app, key_file);</td></tr>
+<tr class="codeline" data-linenumber="2154"><td class="num" id="LN2154">2154</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2155"><td class="num" id="LN2155">2155</td><td class="line"> data = g_key_file_to_data (key_file, &amp;len, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="2156"><td class="num" id="LN2156">2156</td><td class="line"> result = g_file_set_contents (file_name, data, len, error);</td></tr>
+<tr class="codeline" data-linenumber="2157"><td class="num" id="LN2157">2157</td><td class="line"> g_free (data);</td></tr>
+<tr class="codeline" data-linenumber="2158"><td class="num" id="LN2158">2158</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2159"><td class="num" id="LN2159">2159</td><td class="line"> <span class='keyword'>return</span> result;</td></tr>
+<tr class="codeline" data-linenumber="2160"><td class="num" id="LN2160">2160</td><td class="line">}</td></tr>
+</table></body></html>
diff --git a/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-3c2acf.html b/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-3c2acf.html
new file mode 100644
index 0000000..4d05e96
--- /dev/null
+++ b/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-3c2acf.html
@@ -0,0 +1,2385 @@
+<!doctype html>
+<html>
+<head>
+<title>terminal-profile.c</title>
+
+<style type="text/css">
+body { color:#000000; background-color:#ffffff }
+body { font-family:Helvetica, sans-serif; font-size:10pt }
+h1 { font-size:14pt }
+.FileName { margin-top: 5px; margin-bottom: 5px; display: inline; }
+.FileNav { margin-left: 5px; margin-right: 5px; display: inline; }
+.FileNav a { text-decoration:none; font-size: larger; }
+.divider { margin-top: 30px; margin-bottom: 30px; height: 15px; }
+.divider { background-color: gray; }
+.code { border-collapse:collapse; width:100%; }
+.code { font-family: "Monospace", monospace; font-size:10pt }
+.code { line-height: 1.2em }
+.comment { color: green; font-style: oblique }
+.keyword { color: blue }
+.string_literal { color: red }
+.directive { color: darkmagenta }
+
+/* Macros and variables could have pop-up notes hidden by default.
+ - Macro pop-up: expansion of the macro
+ - Variable pop-up: value (table) of the variable */
+.macro_popup, .variable_popup { display: none; }
+
+/* Pop-up appears on mouse-hover event. */
+.macro:hover .macro_popup, .variable:hover .variable_popup {
+ display: block;
+ padding: 2px;
+ -webkit-border-radius:5px;
+ -webkit-box-shadow:1px 1px 7px #000;
+ border-radius:5px;
+ box-shadow:1px 1px 7px #000;
+ position: absolute;
+ top: -1em;
+ left:10em;
+ z-index: 1
+}
+
+.macro_popup {
+ border: 2px solid red;
+ background-color:#FFF0F0;
+ font-weight: normal;
+}
+
+.variable_popup {
+ border: 2px solid blue;
+ background-color:#F0F0FF;
+ font-weight: bold;
+ font-family: Helvetica, sans-serif;
+ font-size: 9pt;
+}
+
+/* Pop-up notes needs a relative position as a base where they pops up. */
+.macro, .variable {
+ background-color: PaleGoldenRod;
+ position: relative;
+}
+.macro { color: DarkMagenta; }
+
+#tooltiphint {
+ position: fixed;
+ width: 50em;
+ margin-left: -25em;
+ left: 50%;
+ padding: 10px;
+ border: 1px solid #b0b0b0;
+ border-radius: 2px;
+ box-shadow: 1px 1px 7px black;
+ background-color: #c0c0c0;
+ z-index: 2;
+}
+
+.num { width:2.5em; padding-right:2ex; background-color:#eeeeee }
+.num { text-align:right; font-size:8pt }
+.num { color:#444444 }
+.line { padding-left: 1ex; border-left: 3px solid #ccc }
+.line { white-space: pre }
+.msg { -webkit-box-shadow:1px 1px 7px #000 }
+.msg { box-shadow:1px 1px 7px #000 }
+.msg { -webkit-border-radius:5px }
+.msg { border-radius:5px }
+.msg { font-family:Helvetica, sans-serif; font-size:8pt }
+.msg { float:left }
+.msg { position:relative }
+.msg { padding:0.25em 1ex 0.25em 1ex }
+.msg { margin-top:10px; margin-bottom:10px }
+.msg { font-weight:bold }
+.msg { max-width:60em; word-wrap: break-word; white-space: pre-wrap }
+.msgT { padding:0x; spacing:0x }
+.msgEvent { background-color:#fff8b4; color:#000000 }
+.msgControl { background-color:#bbbbbb; color:#000000 }
+.msgNote { background-color:#ddeeff; color:#000000 }
+.mrange { background-color:#dfddf3 }
+.mrange { border-bottom:1px solid #6F9DBE }
+.PathIndex { font-weight: bold; padding:0px 5px; margin-right:5px; }
+.PathIndex { -webkit-border-radius:8px }
+.PathIndex { border-radius:8px }
+.PathIndexEvent { background-color:#bfba87 }
+.PathIndexControl { background-color:#8c8c8c }
+.PathIndexPopUp { background-color: #879abc; }
+.PathNav a { text-decoration:none; font-size: larger }
+.CodeInsertionHint { font-weight: bold; background-color: #10dd10 }
+.CodeRemovalHint { background-color:#de1010 }
+.CodeRemovalHint { border-bottom:1px solid #6F9DBE }
+.msg.selected{ background-color:orange !important; }
+
+table.simpletable {
+ padding: 5px;
+ font-size:12pt;
+ margin:20px;
+ border-collapse: collapse; border-spacing: 0px;
+}
+td.rowname {
+ text-align: right;
+ vertical-align: top;
+ font-weight: bold;
+ color:#444444;
+ padding-right:2ex;
+}
+
+/* Hidden text. */
+input.spoilerhider + label {
+ cursor: pointer;
+ text-decoration: underline;
+ display: block;
+}
+input.spoilerhider {
+ display: none;
+}
+input.spoilerhider ~ .spoiler {
+ overflow: hidden;
+ margin: 10px auto 0;
+ height: 0;
+ opacity: 0;
+}
+input.spoilerhider:checked + label + .spoiler{
+ height: auto;
+ opacity: 1;
+}
+</style>
+</head>
+<body>
+<!-- BUGDESC Casting a non-structure type to a structure type and accessing a field can lead to memory access errors or data corruption -->
+
+<!-- BUGTYPE Cast from non-struct type to struct type -->
+
+<!-- BUGCATEGORY Logic error -->
+
+<!-- BUGFILE /rootdir/src/terminal-profile.c -->
+
+<!-- FILENAME terminal-profile.c -->
+
+<!-- FUNCTIONNAME terminal_profile_gsettings_notify_cb -->
+
+<!-- ISSUEHASHCONTENTOFLINEINCONTEXT 3c2acfac5ab9d0d058f77bd4866afacb -->
+
+<!-- BUGLINE 650 -->
+
+<!-- BUGCOLUMN 46 -->
+
+<!-- BUGPATHLENGTH 1 -->
+
+<!-- BUGMETAEND -->
+<!-- REPORTHEADER -->
+<h3>Bug Summary</h3>
+<table class="simpletable">
+<tr><td class="rowname">File:</td><td>terminal-profile.c</td></tr>
+<tr><td class="rowname">Warning:</td><td><a href="#EndPath">line 650, column 46</a><br />Casting a non-structure type to a structure type and accessing a field can lead to memory access errors or data corruption</td></tr>
+
+</table>
+<!-- REPORTSUMMARYEXTRA -->
+<h3>Annotated Source Code</h3>
+<p>Press <a href="#" onclick="toggleHelp(); return false;">'?'</a>
+ to see keyboard shortcuts</p>
+<input type="checkbox" class="spoilerhider" id="showinvocation" />
+<label for="showinvocation" >Show analyzer invocation</label>
+<div class="spoiler">clang -cc1 -cc1 -triple x86_64-redhat-linux-gnu -analyze -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name terminal-profile.c -analyzer-checker=core -analyzer-checker=apiModeling -analyzer-checker=unix -analyzer-checker=deadcode -analyzer-checker=security.insecureAPI.UncheckedReturn -analyzer-checker=security.insecureAPI.getpw -analyzer-checker=security.insecureAPI.gets -analyzer-checker=security.insecureAPI.mktemp -analyzer-checker=security.insecureAPI.mkstemp -analyzer-checker=security.insecureAPI.vfork -analyzer-checker=nullability.NullPassedToNonnull -analyzer-checker=nullability.NullReturnedFromNonnull -analyzer-output plist -w -setup-static-analyzer -mrelocation-model static -mframe-pointer=all -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -tune-cpu generic -debugger-tuning=gdb -fcoverage-compilation-dir=/rootdir/src -resource-dir /usr/bin/../lib/clang/17 -D HAVE_CONFIG_H -I . -I .. -I ../src/mate-submodules/libegg -D TERMINAL_COMPILATION -D TERMINAL_RESOURCES_PATH_PREFIX="/org/mate/terminal" -D TERM_DATADIR="/usr/local/share" -D TERM_LOCALEDIR="/usr/local/share/locale" -D TERM_PKGDATADIR="/usr/local/share/mate-terminal" -D TERM_HELPDIR="/usr/local/share/help" -D SN_API_NOT_YET_FROZEN -D GDK_MULTIHEAD_SAFE -D G_DISABLE_SINGLE_INCLUDES -D PANGO_DISABLE_SINGLE_INCLUDES -D ATK_DISABLE_SINGLE_INCLUDES -D GDK_DISABLE_SINGLE_INCLUDES -D GDK_PIXBUF_DISABLE_SINGLE_INCLUDES -D GTK_DISABLE_SINGLE_INCLUDES -I /usr/include/dconf -I /usr/include/vte-2.91 -I /usr/include/pango-1.0 -I /usr/include/gtk-3.0 -I /usr/include/gdk-pixbuf-2.0 -I /usr/include/cairo -I /usr/include/dbus-1.0 -I /usr/lib64/dbus-1.0/include -I /usr/include/atk-1.0 -I /usr/include/harfbuzz -I /usr/include/freetype2 -I /usr/include/glib-2.0 -I /usr/lib64/glib-2.0/include -I /usr/include/cloudproviders -I /usr/include/at-spi2-atk/2.0 -I /usr/include/at-spi-2.0 -I /usr/include/blkid -I /usr/include/gio-unix-2.0 -I /usr/include/pixman-1 -I /usr/include/libmount -I /usr/include/libxml2 -I /usr/include/fribidi -I /usr/include/libpng16 -I /usr/include/sysprof-6 -internal-isystem /usr/bin/../lib/clang/17/include -internal-isystem /usr/local/include -internal-isystem /usr/bin/../lib/gcc/x86_64-redhat-linux/13/../../../../x86_64-redhat-linux/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -Wno-unused-parameter -fdebug-compilation-dir=/rootdir/src -ferror-limit 19 -fgnuc-version=4.2.1 -analyzer-checker deadcode.DeadStores -analyzer-checker alpha.deadcode.UnreachableCode -analyzer-checker alpha.core.CastSize -analyzer-checker alpha.core.CastToStruct -analyzer-checker alpha.core.IdenticalExpr -analyzer-checker alpha.core.SizeofPtr -analyzer-checker alpha.security.ArrayBoundV2 -analyzer-checker alpha.security.MallocOverflow -analyzer-checker alpha.security.ReturnPtrRange -analyzer-checker alpha.unix.SimpleStream -analyzer-checker alpha.unix.cstring.BufferOverlap -analyzer-checker alpha.unix.cstring.NotNullTerminated -analyzer-checker alpha.unix.cstring.OutOfBounds -analyzer-checker alpha.core.FixedAddr -analyzer-checker security.insecureAPI.strcpy -analyzer-output=html -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /rootdir/html-report/2024-02-18-131424-5067-1 -x c terminal-profile.c
+</div>
+<div id='tooltiphint' hidden="true">
+ <p>Keyboard shortcuts: </p>
+ <ul>
+ <li>Use 'j/k' keys for keyboard navigation</li>
+ <li>Use 'Shift+S' to show/hide relevant lines</li>
+ <li>Use '?' to toggle this window</li>
+ </ul>
+ <a href="#" onclick="toggleHelp(); return false;">Close</a>
+</div>
+<script type='text/javascript'>
+var relevant_lines = {"1": {"650": 1}};
+
+var filterCounterexample = function (hide) {
+ var tables = document.getElementsByClassName("code");
+ for (var t=0; t<tables.length; t++) {
+ var table = tables[t];
+ var file_id = table.getAttribute("data-fileid");
+ var lines_in_fid = relevant_lines[file_id];
+ if (!lines_in_fid) {
+ lines_in_fid = {};
+ }
+ var lines = table.getElementsByClassName("codeline");
+ for (var i=0; i<lines.length; i++) {
+ var el = lines[i];
+ var lineNo = el.getAttribute("data-linenumber");
+ if (!lines_in_fid[lineNo]) {
+ if (hide) {
+ el.setAttribute("hidden", "");
+ } else {
+ el.removeAttribute("hidden");
+ }
+ }
+ }
+ }
+}
+
+window.addEventListener("keydown", function (event) {
+ if (event.defaultPrevented) {
+ return;
+ }
+ // SHIFT + S
+ if (event.shiftKey && event.keyCode == 83) {
+ var checked = document.getElementsByName("showCounterexample")[0].checked;
+ filterCounterexample(!checked);
+ document.getElementsByName("showCounterexample")[0].click();
+ } else {
+ return;
+ }
+ event.preventDefault();
+}, true);
+
+document.addEventListener("DOMContentLoaded", function() {
+ document.querySelector('input[name="showCounterexample"]').onchange=
+ function (event) {
+ filterCounterexample(this.checked);
+ };
+});
+</script>
+
+<form>
+ <input type="checkbox" name="showCounterexample" id="showCounterexample" />
+ <label for="showCounterexample">
+ Show only relevant lines
+ </label>
+ <input type="checkbox" name="showArrows"
+ id="showArrows" style="margin-left: 10px" />
+ <label for="showArrows">
+ Show control flow arrows
+ </label>
+</form>
+
+<script type='text/javascript'>
+// Return range of numbers from a range [lower, upper).
+function range(lower, upper) {
+ var array = [];
+ for (var i = lower; i <= upper; ++i) {
+ array.push(i);
+ }
+ return array;
+}
+
+var getRelatedArrowIndices = function(pathId) {
+ // HTML numeration of events is a bit different than it is in the path.
+ // Everything is rotated one step to the right, so the last element
+ // (error diagnostic) has index 0.
+ if (pathId == 0) {
+ // arrowIndices has at least 2 elements
+ pathId = arrowIndices.length - 1;
+ }
+
+ return range(arrowIndices[pathId], arrowIndices[pathId - 1]);
+}
+
+var highlightArrowsForSelectedEvent = function() {
+ const selectedNum = findNum();
+ const arrowIndicesToHighlight = getRelatedArrowIndices(selectedNum);
+ arrowIndicesToHighlight.forEach((index) => {
+ var arrow = document.querySelector("#arrow" + index);
+ if(arrow) {
+ classListAdd(arrow, "selected")
+ }
+ });
+}
+
+var getAbsoluteBoundingRect = function(element) {
+ const relative = element.getBoundingClientRect();
+ return {
+ left: relative.left + window.pageXOffset,
+ right: relative.right + window.pageXOffset,
+ top: relative.top + window.pageYOffset,
+ bottom: relative.bottom + window.pageYOffset,
+ height: relative.height,
+ width: relative.width
+ };
+}
+
+var drawArrow = function(index) {
+ // This function is based on the great answer from SO:
+ // https://stackoverflow.com/a/39575674/11582326
+ var start = document.querySelector("#start" + index);
+ var end = document.querySelector("#end" + index);
+ var arrow = document.querySelector("#arrow" + index);
+
+ var startRect = getAbsoluteBoundingRect(start);
+ var endRect = getAbsoluteBoundingRect(end);
+
+ // It is an arrow from a token to itself, no need to visualize it.
+ if (startRect.top == endRect.top &&
+ startRect.left == endRect.left)
+ return;
+
+ // Each arrow is a very simple Bézier curve, with two nodes and
+ // two handles. So, we need to calculate four points in the window:
+ // * start node
+ var posStart = { x: 0, y: 0 };
+ // * end node
+ var posEnd = { x: 0, y: 0 };
+ // * handle for the start node
+ var startHandle = { x: 0, y: 0 };
+ // * handle for the end node
+ var endHandle = { x: 0, y: 0 };
+ // One can visualize it as follows:
+ //
+ // start handle
+ // /
+ // X"""_.-""""X
+ // .' \
+ // / start node
+ // |
+ // |
+ // | end node
+ // \ /
+ // `->X
+ // X-'
+ // \
+ // end handle
+ //
+ // NOTE: (0, 0) is the top left corner of the window.
+
+ // We have 3 similar, but still different scenarios to cover:
+ //
+ // 1. Two tokens on different lines.
+ // -xxx
+ // /
+ // \
+ // -> xxx
+ // In this situation, we draw arrow on the left curving to the left.
+ // 2. Two tokens on the same line, and the destination is on the right.
+ // ____
+ // / \
+ // / V
+ // xxx xxx
+ // In this situation, we draw arrow above curving upwards.
+ // 3. Two tokens on the same line, and the destination is on the left.
+ // xxx xxx
+ // ^ /
+ // \____/
+ // In this situation, we draw arrow below curving downwards.
+ const onDifferentLines = startRect.top <= endRect.top - 5 ||
+ startRect.top >= endRect.top + 5;
+ const leftToRight = startRect.left < endRect.left;
+
+ // NOTE: various magic constants are chosen empirically for
+ // better positioning and look
+ if (onDifferentLines) {
+ // Case #1
+ const topToBottom = startRect.top < endRect.top;
+ posStart.x = startRect.left - 1;
+ // We don't want to start it at the top left corner of the token,
+ // it doesn't feel like this is where the arrow comes from.
+ // For this reason, we start it in the middle of the left side
+ // of the token.
+ posStart.y = startRect.top + startRect.height / 2;
+
+ // End node has arrow head and we give it a bit more space.
+ posEnd.x = endRect.left - 4;
+ posEnd.y = endRect.top;
+
+ // Utility object with x and y offsets for handles.
+ var curvature = {
+ // We want bottom-to-top arrow to curve a bit more, so it doesn't
+ // overlap much with top-to-bottom curves (much more frequent).
+ x: topToBottom ? 15 : 25,
+ y: Math.min((posEnd.y - posStart.y) / 3, 10)
+ }
+
+ // When destination is on the different line, we can make a
+ // curvier arrow because we have space for it.
+ // So, instead of using
+ //
+ // startHandle.x = posStart.x - curvature.x
+ // endHandle.x = posEnd.x - curvature.x
+ //
+ // We use the leftmost of these two values for both handles.
+ startHandle.x = Math.min(posStart.x, posEnd.x) - curvature.x;
+ endHandle.x = startHandle.x;
+
+ // Curving downwards from the start node...
+ startHandle.y = posStart.y + curvature.y;
+ // ... and upwards from the end node.
+ endHandle.y = posEnd.y - curvature.y;
+
+ } else if (leftToRight) {
+ // Case #2
+ // Starting from the top right corner...
+ posStart.x = startRect.right - 1;
+ posStart.y = startRect.top;
+
+ // ...and ending at the top left corner of the end token.
+ posEnd.x = endRect.left + 1;
+ posEnd.y = endRect.top - 1;
+
+ // Utility object with x and y offsets for handles.
+ var curvature = {
+ x: Math.min((posEnd.x - posStart.x) / 3, 15),
+ y: 5
+ }
+
+ // Curving to the right...
+ startHandle.x = posStart.x + curvature.x;
+ // ... and upwards from the start node.
+ startHandle.y = posStart.y - curvature.y;
+
+ // And to the left...
+ endHandle.x = posEnd.x - curvature.x;
+ // ... and upwards from the end node.
+ endHandle.y = posEnd.y - curvature.y;
+
+ } else {
+ // Case #3
+ // Starting from the bottom right corner...
+ posStart.x = startRect.right;
+ posStart.y = startRect.bottom;
+
+ // ...and ending also at the bottom right corner, but of the end token.
+ posEnd.x = endRect.right - 1;
+ posEnd.y = endRect.bottom + 1;
+
+ // Utility object with x and y offsets for handles.
+ var curvature = {
+ x: Math.min((posStart.x - posEnd.x) / 3, 15),
+ y: 5
+ }
+
+ // Curving to the left...
+ startHandle.x = posStart.x - curvature.x;
+ // ... and downwards from the start node.
+ startHandle.y = posStart.y + curvature.y;
+
+ // And to the right...
+ endHandle.x = posEnd.x + curvature.x;
+ // ... and downwards from the end node.
+ endHandle.y = posEnd.y + curvature.y;
+ }
+
+ // Put it all together into a path.
+ // More information on the format:
+ // https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths
+ var pathStr = "M" + posStart.x + "," + posStart.y + " " +
+ "C" + startHandle.x + "," + startHandle.y + " " +
+ endHandle.x + "," + endHandle.y + " " +
+ posEnd.x + "," + posEnd.y;
+
+ arrow.setAttribute("d", pathStr);
+};
+
+var drawArrows = function() {
+ const numOfArrows = document.querySelectorAll("path[id^=arrow]").length;
+ for (var i = 0; i < numOfArrows; ++i) {
+ drawArrow(i);
+ }
+}
+
+var toggleArrows = function(event) {
+ const arrows = document.querySelector("#arrows");
+ if (event.target.checked) {
+ arrows.setAttribute("visibility", "visible");
+ } else {
+ arrows.setAttribute("visibility", "hidden");
+ }
+}
+
+window.addEventListener("resize", drawArrows);
+document.addEventListener("DOMContentLoaded", function() {
+ // Whenever we show invocation, locations change, i.e. we
+ // need to redraw arrows.
+ document
+ .querySelector('input[id="showinvocation"]')
+ .addEventListener("click", drawArrows);
+ // Hiding irrelevant lines also should cause arrow rerender.
+ document
+ .querySelector('input[name="showCounterexample"]')
+ .addEventListener("change", drawArrows);
+ document
+ .querySelector('input[name="showArrows"]')
+ .addEventListener("change", toggleArrows);
+ drawArrows();
+ // Default highlighting for the last event.
+ highlightArrowsForSelectedEvent();
+});
+</script>
+
+<script type='text/javascript'>
+var digitMatcher = new RegExp("[0-9]+");
+
+var querySelectorAllArray = function(selector) {
+ return Array.prototype.slice.call(
+ document.querySelectorAll(selector));
+}
+
+document.addEventListener("DOMContentLoaded", function() {
+ querySelectorAllArray(".PathNav > a").forEach(
+ function(currentValue, currentIndex) {
+ var hrefValue = currentValue.getAttribute("href");
+ currentValue.onclick = function() {
+ scrollTo(document.querySelector(hrefValue));
+ return false;
+ };
+ });
+});
+
+var findNum = function() {
+ var s = document.querySelector(".msg.selected");
+ if (!s || s.id == "EndPath") {
+ return 0;
+ }
+ var out = parseInt(digitMatcher.exec(s.id)[0]);
+ return out;
+};
+
+var classListAdd = function(el, theClass) {
+ if(!el.className.baseVal)
+ el.className += " " + theClass;
+ else
+ el.className.baseVal += " " + theClass;
+};
+
+var classListRemove = function(el, theClass) {
+ var className = (!el.className.baseVal) ?
+ el.className : el.className.baseVal;
+ className = className.replace(" " + theClass, "");
+ if(!el.className.baseVal)
+ el.className = className;
+ else
+ el.className.baseVal = className;
+};
+
+var scrollTo = function(el) {
+ querySelectorAllArray(".selected").forEach(function(s) {
+ classListRemove(s, "selected");
+ });
+ classListAdd(el, "selected");
+ window.scrollBy(0, el.getBoundingClientRect().top -
+ (window.innerHeight / 2));
+ highlightArrowsForSelectedEvent();
+};
+
+var move = function(num, up, numItems) {
+ if (num == 1 && up || num == numItems - 1 && !up) {
+ return 0;
+ } else if (num == 0 && up) {
+ return numItems - 1;
+ } else if (num == 0 && !up) {
+ return 1 % numItems;
+ }
+ return up ? num - 1 : num + 1;
+}
+
+var numToId = function(num) {
+ if (num == 0) {
+ return document.getElementById("EndPath")
+ }
+ return document.getElementById("Path" + num);
+};
+
+var navigateTo = function(up) {
+ var numItems = document.querySelectorAll(
+ ".line > .msgEvent, .line > .msgControl").length;
+ var currentSelected = findNum();
+ var newSelected = move(currentSelected, up, numItems);
+ var newEl = numToId(newSelected, numItems);
+
+ // Scroll element into center.
+ scrollTo(newEl);
+};
+
+window.addEventListener("keydown", function (event) {
+ if (event.defaultPrevented) {
+ return;
+ }
+ // key 'j'
+ if (event.keyCode == 74) {
+ navigateTo(/*up=*/false);
+ // key 'k'
+ } else if (event.keyCode == 75) {
+ navigateTo(/*up=*/true);
+ } else {
+ return;
+ }
+ event.preventDefault();
+}, true);
+</script>
+
+<script type='text/javascript'>
+
+var toggleHelp = function() {
+ var hint = document.querySelector("#tooltiphint");
+ var attributeName = "hidden";
+ if (hint.hasAttribute(attributeName)) {
+ hint.removeAttribute(attributeName);
+ } else {
+ hint.setAttribute("hidden", "true");
+ }
+};
+window.addEventListener("keydown", function (event) {
+ if (event.defaultPrevented) {
+ return;
+ }
+ if (event.key == "?") {
+ toggleHelp();
+ } else {
+ return;
+ }
+ event.preventDefault();
+});
+</script>
+
+<style type="text/css">
+ svg {
+ position:absolute;
+ top:0;
+ left:0;
+ height:100%;
+ width:100%;
+ pointer-events: none;
+ overflow: visible
+ }
+ .arrow {
+ stroke-opacity: 0.2;
+ stroke-width: 1;
+ marker-end: url(#arrowhead);
+ }
+
+ .arrow.selected {
+ stroke-opacity: 0.6;
+ stroke-width: 2;
+ marker-end: url(#arrowheadSelected);
+ }
+
+ .arrowhead {
+ orient: auto;
+ stroke: none;
+ opacity: 0.6;
+ fill: blue;
+ }
+</style>
+<svg xmlns="http://www.w3.org/2000/svg">
+ <defs>
+ <marker id="arrowheadSelected" class="arrowhead" opacity="0.6"
+ viewBox="0 0 10 10" refX="3" refY="5"
+ markerWidth="4" markerHeight="4">
+ <path d="M 0 0 L 10 5 L 0 10 z" />
+ </marker>
+ <marker id="arrowhead" class="arrowhead" opacity="0.2"
+ viewBox="0 0 10 10" refX="3" refY="5"
+ markerWidth="4" markerHeight="4">
+ <path d="M 0 0 L 10 5 L 0 10 z" />
+ </marker>
+ </defs>
+ <g id="arrows" fill="none" stroke="blue" visibility="hidden">
+
+ </g>
+</svg>
+<script type='text/javascript'>
+const arrowIndices = [ 0,0 ]
+</script>
+<table class="code" data-fileid="1">
+<tr class="codeline" data-linenumber="1"><td class="num" id="LN1">1</td><td class="line"><span class='comment'>/*</span></td></tr>
+<tr class="codeline" data-linenumber="2"><td class="num" id="LN2">2</td><td class="line"> <span class='comment'>* Copyright © 2001 Havoc Pennington</span></td></tr>
+<tr class="codeline" data-linenumber="3"><td class="num" id="LN3">3</td><td class="line"> <span class='comment'>* Copyright © 2002 Mathias Hasselmann</span></td></tr>
+<tr class="codeline" data-linenumber="4"><td class="num" id="LN4">4</td><td class="line"> <span class='comment'>* Copyright © 2008 Christian Persch</span></td></tr>
+<tr class="codeline" data-linenumber="5"><td class="num" id="LN5">5</td><td class="line"> <span class='comment'>* Copyright (C) 2012-2021 MATE Developers</span></td></tr>
+<tr class="codeline" data-linenumber="6"><td class="num" id="LN6">6</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="7"><td class="num" id="LN7">7</td><td class="line"> <span class='comment'>* Mate-terminal is free software; you can redistribute it and/or modify</span></td></tr>
+<tr class="codeline" data-linenumber="8"><td class="num" id="LN8">8</td><td class="line"> <span class='comment'>* it under the terms of the GNU General Public License as published by</span></td></tr>
+<tr class="codeline" data-linenumber="9"><td class="num" id="LN9">9</td><td class="line"> <span class='comment'>* the Free Software Foundation; either version 3 of the License, or</span></td></tr>
+<tr class="codeline" data-linenumber="10"><td class="num" id="LN10">10</td><td class="line"> <span class='comment'>* (at your option) any later version.</span></td></tr>
+<tr class="codeline" data-linenumber="11"><td class="num" id="LN11">11</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="12"><td class="num" id="LN12">12</td><td class="line"> <span class='comment'>* Mate-terminal is distributed in the hope that it will be useful,</span></td></tr>
+<tr class="codeline" data-linenumber="13"><td class="num" id="LN13">13</td><td class="line"> <span class='comment'>* but WITHOUT ANY WARRANTY; without even the implied warranty of</span></td></tr>
+<tr class="codeline" data-linenumber="14"><td class="num" id="LN14">14</td><td class="line"> <span class='comment'>* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></td></tr>
+<tr class="codeline" data-linenumber="15"><td class="num" id="LN15">15</td><td class="line"> <span class='comment'>* GNU General Public License for more details.</span></td></tr>
+<tr class="codeline" data-linenumber="16"><td class="num" id="LN16">16</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="17"><td class="num" id="LN17">17</td><td class="line"> <span class='comment'>* You should have received a copy of the GNU General Public License</span></td></tr>
+<tr class="codeline" data-linenumber="18"><td class="num" id="LN18">18</td><td class="line"> <span class='comment'>* along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.</span></td></tr>
+<tr class="codeline" data-linenumber="19"><td class="num" id="LN19">19</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="20"><td class="num" id="LN20">20</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="21"><td class="num" id="LN21">21</td><td class="line"><span class='directive'>#include &lt;config.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="22"><td class="num" id="LN22">22</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="23"><td class="num" id="LN23">23</td><td class="line"><span class='directive'>#include &lt;string.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="24"><td class="num" id="LN24">24</td><td class="line"><span class='directive'>#include &lt;stdlib.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="25"><td class="num" id="LN25">25</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="26"><td class="num" id="LN26">26</td><td class="line"><span class='directive'>#include &lt;gtk/gtk.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="27"><td class="num" id="LN27">27</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="28"><td class="num" id="LN28">28</td><td class="line"><span class='directive'>#include "terminal-app.h"</span></td></tr>
+<tr class="codeline" data-linenumber="29"><td class="num" id="LN29">29</td><td class="line"><span class='directive'>#include "terminal-debug.h"</span></td></tr>
+<tr class="codeline" data-linenumber="30"><td class="num" id="LN30">30</td><td class="line"><span class='directive'>#include "terminal-intl.h"</span></td></tr>
+<tr class="codeline" data-linenumber="31"><td class="num" id="LN31">31</td><td class="line"><span class='directive'>#include "terminal-profile.h"</span></td></tr>
+<tr class="codeline" data-linenumber="32"><td class="num" id="LN32">32</td><td class="line"><span class='directive'>#include "terminal-screen.h"</span></td></tr>
+<tr class="codeline" data-linenumber="33"><td class="num" id="LN33">33</td><td class="line"><span class='directive'>#include "terminal-type-builtins.h"</span></td></tr>
+<tr class="codeline" data-linenumber="34"><td class="num" id="LN34">34</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="35"><td class="num" id="LN35">35</td><td class="line"><span class='comment'>/* To add a new key, you need to:</span></td></tr>
+<tr class="codeline" data-linenumber="36"><td class="num" id="LN36">36</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="37"><td class="num" id="LN37">37</td><td class="line"> <span class='comment'>* - add an entry to the enum below</span></td></tr>
+<tr class="codeline" data-linenumber="38"><td class="num" id="LN38">38</td><td class="line"> <span class='comment'>* - add a #define with its name in terminal-profile.h</span></td></tr>
+<tr class="codeline" data-linenumber="39"><td class="num" id="LN39">39</td><td class="line"> <span class='comment'>* - add a gobject property for it in terminal_profile_class_init</span></td></tr>
+<tr class="codeline" data-linenumber="40"><td class="num" id="LN40">40</td><td class="line"> <span class='comment'>* - if the property's type needs special casing, add that to</span></td></tr>
+<tr class="codeline" data-linenumber="41"><td class="num" id="LN41">41</td><td class="line"> <span class='comment'>* terminal_profile_gsettings_notify_cb and</span></td></tr>
+<tr class="codeline" data-linenumber="42"><td class="num" id="LN42">42</td><td class="line"> <span class='comment'>* terminal_profile_gsettings_changeset_add</span></td></tr>
+<tr class="codeline" data-linenumber="43"><td class="num" id="LN43">43</td><td class="line"> <span class='comment'>* - if necessary the default value cannot be handled via the paramspec,</span></td></tr>
+<tr class="codeline" data-linenumber="44"><td class="num" id="LN44">44</td><td class="line"> <span class='comment'>* handle that in terminal_profile_reset_property_internal</span></td></tr>
+<tr class="codeline" data-linenumber="45"><td class="num" id="LN45">45</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="46"><td class="num" id="LN46">46</td><td class="line"><span class='keyword'>enum</span></td></tr>
+<tr class="codeline" data-linenumber="47"><td class="num" id="LN47">47</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="48"><td class="num" id="LN48">48</td><td class="line"> PROP_0,</td></tr>
+<tr class="codeline" data-linenumber="49"><td class="num" id="LN49">49</td><td class="line"> PROP_ALLOW_BOLD,</td></tr>
+<tr class="codeline" data-linenumber="50"><td class="num" id="LN50">50</td><td class="line"> PROP_BACKGROUND_COLOR,</td></tr>
+<tr class="codeline" data-linenumber="51"><td class="num" id="LN51">51</td><td class="line"> PROP_BACKGROUND_DARKNESS,</td></tr>
+<tr class="codeline" data-linenumber="52"><td class="num" id="LN52">52</td><td class="line"> PROP_BACKGROUND_IMAGE,</td></tr>
+<tr class="codeline" data-linenumber="53"><td class="num" id="LN53">53</td><td class="line"> PROP_BACKGROUND_IMAGE_FILE,</td></tr>
+<tr class="codeline" data-linenumber="54"><td class="num" id="LN54">54</td><td class="line"> PROP_BACKGROUND_TYPE,</td></tr>
+<tr class="codeline" data-linenumber="55"><td class="num" id="LN55">55</td><td class="line"> PROP_BACKSPACE_BINDING,</td></tr>
+<tr class="codeline" data-linenumber="56"><td class="num" id="LN56">56</td><td class="line"> PROP_BOLD_COLOR,</td></tr>
+<tr class="codeline" data-linenumber="57"><td class="num" id="LN57">57</td><td class="line"> PROP_BOLD_COLOR_SAME_AS_FG,</td></tr>
+<tr class="codeline" data-linenumber="58"><td class="num" id="LN58">58</td><td class="line"> PROP_CURSOR_BLINK_MODE,</td></tr>
+<tr class="codeline" data-linenumber="59"><td class="num" id="LN59">59</td><td class="line"> PROP_CURSOR_SHAPE,</td></tr>
+<tr class="codeline" data-linenumber="60"><td class="num" id="LN60">60</td><td class="line"> PROP_CUSTOM_COMMAND,</td></tr>
+<tr class="codeline" data-linenumber="61"><td class="num" id="LN61">61</td><td class="line"> PROP_DEFAULT_SIZE_COLUMNS,</td></tr>
+<tr class="codeline" data-linenumber="62"><td class="num" id="LN62">62</td><td class="line"> PROP_DEFAULT_SIZE_ROWS,</td></tr>
+<tr class="codeline" data-linenumber="63"><td class="num" id="LN63">63</td><td class="line"> PROP_DEFAULT_SHOW_MENUBAR,</td></tr>
+<tr class="codeline" data-linenumber="64"><td class="num" id="LN64">64</td><td class="line"> PROP_DELETE_BINDING,</td></tr>
+<tr class="codeline" data-linenumber="65"><td class="num" id="LN65">65</td><td class="line"> PROP_EXIT_ACTION,</td></tr>
+<tr class="codeline" data-linenumber="66"><td class="num" id="LN66">66</td><td class="line"> PROP_FONT,</td></tr>
+<tr class="codeline" data-linenumber="67"><td class="num" id="LN67">67</td><td class="line"> PROP_FOREGROUND_COLOR,</td></tr>
+<tr class="codeline" data-linenumber="68"><td class="num" id="LN68">68</td><td class="line"> PROP_LOGIN_SHELL,</td></tr>
+<tr class="codeline" data-linenumber="69"><td class="num" id="LN69">69</td><td class="line"> PROP_NAME,</td></tr>
+<tr class="codeline" data-linenumber="70"><td class="num" id="LN70">70</td><td class="line"> PROP_PALETTE,</td></tr>
+<tr class="codeline" data-linenumber="71"><td class="num" id="LN71">71</td><td class="line"> PROP_SCROLL_BACKGROUND,</td></tr>
+<tr class="codeline" data-linenumber="72"><td class="num" id="LN72">72</td><td class="line"> PROP_SCROLLBACK_LINES,</td></tr>
+<tr class="codeline" data-linenumber="73"><td class="num" id="LN73">73</td><td class="line"> PROP_SCROLLBACK_UNLIMITED,</td></tr>
+<tr class="codeline" data-linenumber="74"><td class="num" id="LN74">74</td><td class="line"> PROP_SCROLLBAR_POSITION,</td></tr>
+<tr class="codeline" data-linenumber="75"><td class="num" id="LN75">75</td><td class="line"> PROP_SCROLL_ON_KEYSTROKE,</td></tr>
+<tr class="codeline" data-linenumber="76"><td class="num" id="LN76">76</td><td class="line"> PROP_SCROLL_ON_OUTPUT,</td></tr>
+<tr class="codeline" data-linenumber="77"><td class="num" id="LN77">77</td><td class="line"> PROP_SILENT_BELL,</td></tr>
+<tr class="codeline" data-linenumber="78"><td class="num" id="LN78">78</td><td class="line"> PROP_TITLE,</td></tr>
+<tr class="codeline" data-linenumber="79"><td class="num" id="LN79">79</td><td class="line"> PROP_TITLE_MODE,</td></tr>
+<tr class="codeline" data-linenumber="80"><td class="num" id="LN80">80</td><td class="line"> PROP_USE_CUSTOM_COMMAND,</td></tr>
+<tr class="codeline" data-linenumber="81"><td class="num" id="LN81">81</td><td class="line"> PROP_USE_CUSTOM_DEFAULT_SIZE,</td></tr>
+<tr class="codeline" data-linenumber="82"><td class="num" id="LN82">82</td><td class="line"> PROP_USE_SKEY,</td></tr>
+<tr class="codeline" data-linenumber="83"><td class="num" id="LN83">83</td><td class="line"> PROP_USE_URLS,</td></tr>
+<tr class="codeline" data-linenumber="84"><td class="num" id="LN84">84</td><td class="line"> PROP_USE_SYSTEM_FONT,</td></tr>
+<tr class="codeline" data-linenumber="85"><td class="num" id="LN85">85</td><td class="line"> PROP_USE_THEME_COLORS,</td></tr>
+<tr class="codeline" data-linenumber="86"><td class="num" id="LN86">86</td><td class="line"> PROP_VISIBLE_NAME,</td></tr>
+<tr class="codeline" data-linenumber="87"><td class="num" id="LN87">87</td><td class="line"> PROP_WORD_CHARS,</td></tr>
+<tr class="codeline" data-linenumber="88"><td class="num" id="LN88">88</td><td class="line"> PROP_COPY_SELECTION,</td></tr>
+<tr class="codeline" data-linenumber="89"><td class="num" id="LN89">89</td><td class="line"> LAST_PROP</td></tr>
+<tr class="codeline" data-linenumber="90"><td class="num" id="LN90">90</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="91"><td class="num" id="LN91">91</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="92"><td class="num" id="LN92">92</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_ALLOW_BOLD<span class='macro_popup'>"allow-bold"</span></span> "allow-bold"</span></td></tr>
+<tr class="codeline" data-linenumber="93"><td class="num" id="LN93">93</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_BACKGROUND_COLOR<span class='macro_popup'>"background-color"</span></span> "background-color"</span></td></tr>
+<tr class="codeline" data-linenumber="94"><td class="num" id="LN94">94</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_BACKGROUND_DARKNESS<span class='macro_popup'>"background-darkness"</span></span> "background-darkness"</span></td></tr>
+<tr class="codeline" data-linenumber="95"><td class="num" id="LN95">95</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_BACKGROUND_IMAGE_FILE<span class='macro_popup'>"background-image"</span></span> "background-image"</span></td></tr>
+<tr class="codeline" data-linenumber="96"><td class="num" id="LN96">96</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_BACKGROUND_TYPE<span class='macro_popup'>"background-type"</span></span> "background-type"</span></td></tr>
+<tr class="codeline" data-linenumber="97"><td class="num" id="LN97">97</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_BACKSPACE_BINDING<span class='macro_popup'>"backspace-binding"</span></span> "backspace-binding"</span></td></tr>
+<tr class="codeline" data-linenumber="98"><td class="num" id="LN98">98</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_BOLD_COLOR<span class='macro_popup'>"bold-color"</span></span> "bold-color"</span></td></tr>
+<tr class="codeline" data-linenumber="99"><td class="num" id="LN99">99</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_BOLD_COLOR_SAME_AS_FG<span class='macro_popup'>"bold-color-same-as-fg"</span></span> "bold-color-same-as-fg"</span></td></tr>
+<tr class="codeline" data-linenumber="100"><td class="num" id="LN100">100</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_CURSOR_BLINK_MODE<span class='macro_popup'>"cursor-blink-mode"</span></span> "cursor-blink-mode"</span></td></tr>
+<tr class="codeline" data-linenumber="101"><td class="num" id="LN101">101</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_CURSOR_SHAPE<span class='macro_popup'>"cursor-shape"</span></span> "cursor-shape"</span></td></tr>
+<tr class="codeline" data-linenumber="102"><td class="num" id="LN102">102</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_CUSTOM_COMMAND<span class='macro_popup'>"custom-command"</span></span> "custom-command"</span></td></tr>
+<tr class="codeline" data-linenumber="103"><td class="num" id="LN103">103</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_DEFAULT_SHOW_MENUBAR<span class='macro_popup'>"default-show-menubar"</span></span> "default-show-menubar"</span></td></tr>
+<tr class="codeline" data-linenumber="104"><td class="num" id="LN104">104</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_DEFAULT_SIZE_COLUMNS<span class='macro_popup'>"default-size-columns"</span></span> "default-size-columns"</span></td></tr>
+<tr class="codeline" data-linenumber="105"><td class="num" id="LN105">105</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_DEFAULT_SIZE_ROWS<span class='macro_popup'>"default-size-rows"</span></span> "default-size-rows"</span></td></tr>
+<tr class="codeline" data-linenumber="106"><td class="num" id="LN106">106</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_DELETE_BINDING<span class='macro_popup'>"delete-binding"</span></span> "delete-binding"</span></td></tr>
+<tr class="codeline" data-linenumber="107"><td class="num" id="LN107">107</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_EXIT_ACTION<span class='macro_popup'>"exit-action"</span></span> "exit-action"</span></td></tr>
+<tr class="codeline" data-linenumber="108"><td class="num" id="LN108">108</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_FONT<span class='macro_popup'>"font"</span></span> "font"</span></td></tr>
+<tr class="codeline" data-linenumber="109"><td class="num" id="LN109">109</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_FOREGROUND_COLOR<span class='macro_popup'>"foreground-color"</span></span> "foreground-color"</span></td></tr>
+<tr class="codeline" data-linenumber="110"><td class="num" id="LN110">110</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_LOGIN_SHELL<span class='macro_popup'>"login-shell"</span></span> "login-shell"</span></td></tr>
+<tr class="codeline" data-linenumber="111"><td class="num" id="LN111">111</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_PALETTE<span class='macro_popup'>"palette"</span></span> "palette"</span></td></tr>
+<tr class="codeline" data-linenumber="112"><td class="num" id="LN112">112</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_SCROLL_BACKGROUND<span class='macro_popup'>"scroll-background"</span></span> "scroll-background"</span></td></tr>
+<tr class="codeline" data-linenumber="113"><td class="num" id="LN113">113</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_SCROLLBACK_LINES<span class='macro_popup'>"scrollback-lines"</span></span> "scrollback-lines"</span></td></tr>
+<tr class="codeline" data-linenumber="114"><td class="num" id="LN114">114</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_SCROLLBACK_UNLIMITED<span class='macro_popup'>"scrollback-unlimited"</span></span> "scrollback-unlimited"</span></td></tr>
+<tr class="codeline" data-linenumber="115"><td class="num" id="LN115">115</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_SCROLLBAR_POSITION<span class='macro_popup'>"scrollbar-position"</span></span> "scrollbar-position"</span></td></tr>
+<tr class="codeline" data-linenumber="116"><td class="num" id="LN116">116</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_SCROLL_ON_KEYSTROKE<span class='macro_popup'>"scroll-on-keystroke"</span></span> "scroll-on-keystroke"</span></td></tr>
+<tr class="codeline" data-linenumber="117"><td class="num" id="LN117">117</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_SCROLL_ON_OUTPUT<span class='macro_popup'>"scroll-on-output"</span></span> "scroll-on-output"</span></td></tr>
+<tr class="codeline" data-linenumber="118"><td class="num" id="LN118">118</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_SILENT_BELL<span class='macro_popup'>"silent-bell"</span></span> "silent-bell"</span></td></tr>
+<tr class="codeline" data-linenumber="119"><td class="num" id="LN119">119</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_COPY_SELECTION<span class='macro_popup'>"copy-selection"</span></span> "copy-selection"</span></td></tr>
+<tr class="codeline" data-linenumber="120"><td class="num" id="LN120">120</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_TITLE_MODE<span class='macro_popup'>"title-mode"</span></span> "title-mode"</span></td></tr>
+<tr class="codeline" data-linenumber="121"><td class="num" id="LN121">121</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_TITLE<span class='macro_popup'>"title"</span></span> "title"</span></td></tr>
+<tr class="codeline" data-linenumber="122"><td class="num" id="LN122">122</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_USE_CUSTOM_COMMAND<span class='macro_popup'>"use-custom-command"</span></span> "use-custom-command"</span></td></tr>
+<tr class="codeline" data-linenumber="123"><td class="num" id="LN123">123</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_USE_CUSTOM_DEFAULT_SIZE<span class='macro_popup'>"use-custom-default-size"</span></span> "use-custom-default-size"</span></td></tr>
+<tr class="codeline" data-linenumber="124"><td class="num" id="LN124">124</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_USE_SKEY<span class='macro_popup'>"use-skey"</span></span> "use-skey"</span></td></tr>
+<tr class="codeline" data-linenumber="125"><td class="num" id="LN125">125</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_USE_URLS<span class='macro_popup'>"use-urls"</span></span> "use-urls"</span></td></tr>
+<tr class="codeline" data-linenumber="126"><td class="num" id="LN126">126</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_USE_SYSTEM_FONT<span class='macro_popup'>"use-system-font"</span></span> "use-system-font"</span></td></tr>
+<tr class="codeline" data-linenumber="127"><td class="num" id="LN127">127</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_USE_THEME_COLORS<span class='macro_popup'>"use-theme-colors"</span></span> "use-theme-colors"</span></td></tr>
+<tr class="codeline" data-linenumber="128"><td class="num" id="LN128">128</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_VISIBLE_NAME<span class='macro_popup'>"visible-name"</span></span> "visible-name"</span></td></tr>
+<tr class="codeline" data-linenumber="129"><td class="num" id="LN129">129</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_WORD_CHARS<span class='macro_popup'>"word-chars"</span></span> "word-chars"</span></td></tr>
+<tr class="codeline" data-linenumber="130"><td class="num" id="LN130">130</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="131"><td class="num" id="LN131">131</td><td class="line"><span class='comment'>/* Keep these in sync with the GSettings schema! */</span></td></tr>
+<tr class="codeline" data-linenumber="132"><td class="num" id="LN132">132</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_ALLOW_BOLD<span class='macro_popup'>((!(0)))</span></span> (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="133"><td class="num" id="LN133">133</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_BACKGROUND_COLOR<span class='macro_popup'>("#FFFFDD")</span></span> ("#FFFFDD")</span></td></tr>
+<tr class="codeline" data-linenumber="134"><td class="num" id="LN134">134</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_BOLD_COLOR_SAME_AS_FG<span class='macro_popup'>((!(0)))</span></span> (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="135"><td class="num" id="LN135">135</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_BACKGROUND_DARKNESS<span class='macro_popup'>(0.5)</span></span> (0.5)</span></td></tr>
+<tr class="codeline" data-linenumber="136"><td class="num" id="LN136">136</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_BACKGROUND_IMAGE_FILE<span class='macro_popup'>("")</span></span> ("")</span></td></tr>
+<tr class="codeline" data-linenumber="137"><td class="num" id="LN137">137</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_BACKGROUND_TYPE<span class='macro_popup'>(TERMINAL_BACKGROUND_SOLID)</span></span> (TERMINAL_BACKGROUND_SOLID)</span></td></tr>
+<tr class="codeline" data-linenumber="138"><td class="num" id="LN138">138</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_BACKSPACE_BINDING<span class='macro_popup'>(VTE_ERASE_ASCII_DELETE)</span></span> (VTE_ERASE_ASCII_DELETE)</span></td></tr>
+<tr class="codeline" data-linenumber="139"><td class="num" id="LN139">139</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_CURSOR_BLINK_MODE<span class='macro_popup'>(VTE_CURSOR_BLINK_SYSTEM)</span></span> (VTE_CURSOR_BLINK_SYSTEM)</span></td></tr>
+<tr class="codeline" data-linenumber="140"><td class="num" id="LN140">140</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_CURSOR_SHAPE<span class='macro_popup'>(VTE_CURSOR_SHAPE_BLOCK)</span></span> (VTE_CURSOR_SHAPE_BLOCK)</span></td></tr>
+<tr class="codeline" data-linenumber="141"><td class="num" id="LN141">141</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_CUSTOM_COMMAND<span class='macro_popup'>("")</span></span> ("")</span></td></tr>
+<tr class="codeline" data-linenumber="142"><td class="num" id="LN142">142</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_DEFAULT_SHOW_MENUBAR<span class='macro_popup'>((!(0)))</span></span> (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="143"><td class="num" id="LN143">143</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_DEFAULT_SIZE_COLUMNS<span class='macro_popup'>(80)</span></span> (80)</span></td></tr>
+<tr class="codeline" data-linenumber="144"><td class="num" id="LN144">144</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_DEFAULT_SIZE_ROWS<span class='macro_popup'>(24)</span></span> (24)</span></td></tr>
+<tr class="codeline" data-linenumber="145"><td class="num" id="LN145">145</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_DELETE_BINDING<span class='macro_popup'>(VTE_ERASE_DELETE_SEQUENCE)</span></span> (VTE_ERASE_DELETE_SEQUENCE)</span></td></tr>
+<tr class="codeline" data-linenumber="146"><td class="num" id="LN146">146</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_EXIT_ACTION<span class='macro_popup'>(TERMINAL_EXIT_CLOSE)</span></span> (TERMINAL_EXIT_CLOSE)</span></td></tr>
+<tr class="codeline" data-linenumber="147"><td class="num" id="LN147">147</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_FONT<span class='macro_popup'>("Monospace 12")</span></span> ("Monospace 12")</span></td></tr>
+<tr class="codeline" data-linenumber="148"><td class="num" id="LN148">148</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_FOREGROUND_COLOR<span class='macro_popup'>("#000000")</span></span> ("#000000")</span></td></tr>
+<tr class="codeline" data-linenumber="149"><td class="num" id="LN149">149</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_LOGIN_SHELL<span class='macro_popup'>((0))</span></span> (<span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="150"><td class="num" id="LN150">150</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_NAME<span class='macro_popup'>(((void*)0))</span></span> (<span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="151"><td class="num" id="LN151">151</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_PALETTE<span class='macro_popup'>(terminal_palettes[0])</span></span> (terminal_palettes[<span class='macro'>TERMINAL_PALETTE_TANGO<span class='macro_popup'>0</span></span>])</span></td></tr>
+<tr class="codeline" data-linenumber="152"><td class="num" id="LN152">152</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_SCROLL_BACKGROUND<span class='macro_popup'>((!(0)))</span></span> (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="153"><td class="num" id="LN153">153</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_SCROLLBACK_LINES<span class='macro_popup'>(512)</span></span> (512)</span></td></tr>
+<tr class="codeline" data-linenumber="154"><td class="num" id="LN154">154</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_SCROLLBACK_UNLIMITED<span class='macro_popup'>((0))</span></span> (<span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="155"><td class="num" id="LN155">155</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_SCROLLBAR_POSITION<span class='macro_popup'>(TERMINAL_SCROLLBAR_RIGHT)</span></span> (TERMINAL_SCROLLBAR_RIGHT)</span></td></tr>
+<tr class="codeline" data-linenumber="156"><td class="num" id="LN156">156</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_SCROLL_ON_KEYSTROKE<span class='macro_popup'>((!(0)))</span></span> (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="157"><td class="num" id="LN157">157</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_SCROLL_ON_OUTPUT<span class='macro_popup'>((0))</span></span> (<span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="158"><td class="num" id="LN158">158</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_SILENT_BELL<span class='macro_popup'>((0))</span></span> (<span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="159"><td class="num" id="LN159">159</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_COPY_SELECTION<span class='macro_popup'>((0))</span></span> (<span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="160"><td class="num" id="LN160">160</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_TITLE_MODE<span class='macro_popup'>(TERMINAL_TITLE_REPLACE)</span></span> (TERMINAL_TITLE_REPLACE)</span></td></tr>
+<tr class="codeline" data-linenumber="161"><td class="num" id="LN161">161</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_TITLE<span class='macro_popup'>(("Terminal"))</span></span> (<span class='macro'>N_("Terminal")<span class='macro_popup'>("Terminal")</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="162"><td class="num" id="LN162">162</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_USE_CUSTOM_COMMAND<span class='macro_popup'>((0))</span></span> (<span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="163"><td class="num" id="LN163">163</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_USE_CUSTOM_DEFAULT_SIZE<span class='macro_popup'>((0))</span></span> (<span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="164"><td class="num" id="LN164">164</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_USE_SKEY<span class='macro_popup'>((!(0)))</span></span> (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="165"><td class="num" id="LN165">165</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_USE_URLS<span class='macro_popup'>((!(0)))</span></span> (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="166"><td class="num" id="LN166">166</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_USE_SYSTEM_FONT<span class='macro_popup'>((!(0)))</span></span> (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="167"><td class="num" id="LN167">167</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_USE_THEME_COLORS<span class='macro_popup'>((!(0)))</span></span> (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="168"><td class="num" id="LN168">168</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_VISIBLE_NAME<span class='macro_popup'>(("Unnamed"))</span></span> (<span class='macro'>N_("Unnamed")<span class='macro_popup'>("Unnamed")</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="169"><td class="num" id="LN169">169</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_WORD_CHARS<span class='macro_popup'>("-A-Za-z0-9,./?%&amp;#:_=+@~")</span></span> ("-A-Za-z0-9,./?%&amp;#:_=+@~")</span></td></tr>
+<tr class="codeline" data-linenumber="170"><td class="num" id="LN170">170</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="171"><td class="num" id="LN171">171</td><td class="line"><span class='keyword'>struct</span> _TerminalProfilePrivate</td></tr>
+<tr class="codeline" data-linenumber="172"><td class="num" id="LN172">172</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="173"><td class="num" id="LN173">173</td><td class="line"> GValueArray *properties;</td></tr>
+<tr class="codeline" data-linenumber="174"><td class="num" id="LN174">174</td><td class="line"> gboolean *locked;</td></tr>
+<tr class="codeline" data-linenumber="175"><td class="num" id="LN175">175</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="176"><td class="num" id="LN176">176</td><td class="line"> GSettings *settings;</td></tr>
+<tr class="codeline" data-linenumber="177"><td class="num" id="LN177">177</td><td class="line"> <span class='keyword'>char</span> *profile_dir;</td></tr>
+<tr class="codeline" data-linenumber="178"><td class="num" id="LN178">178</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="179"><td class="num" id="LN179">179</td><td class="line"> GSList *dirty_pspecs;</td></tr>
+<tr class="codeline" data-linenumber="180"><td class="num" id="LN180">180</td><td class="line"> guint save_idle_id;</td></tr>
+<tr class="codeline" data-linenumber="181"><td class="num" id="LN181">181</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="182"><td class="num" id="LN182">182</td><td class="line"> GParamSpec *gsettings_notification_pspec;</td></tr>
+<tr class="codeline" data-linenumber="183"><td class="num" id="LN183">183</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="184"><td class="num" id="LN184">184</td><td class="line"> gboolean background_load_failed;</td></tr>
+<tr class="codeline" data-linenumber="185"><td class="num" id="LN185">185</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="186"><td class="num" id="LN186">186</td><td class="line"> guint forgotten : 1;</td></tr>
+<tr class="codeline" data-linenumber="187"><td class="num" id="LN187">187</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="188"><td class="num" id="LN188">188</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="189"><td class="num" id="LN189">189</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>const</span> GdkRGBA terminal_palettes[<span class='macro'>TERMINAL_PALETTE_N_BUILTINS<span class='macro_popup'>5</span></span>][<span class='macro'>TERMINAL_PALETTE_SIZE<span class='macro_popup'>16</span></span>] =</td></tr>
+<tr class="codeline" data-linenumber="190"><td class="num" id="LN190">190</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="191"><td class="num" id="LN191">191</td><td class="line"> <span class='comment'>/* Tango palette */</span></td></tr>
+<tr class="codeline" data-linenumber="192"><td class="num" id="LN192">192</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="193"><td class="num" id="LN193">193</td><td class="line"> { 0, 0, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="194"><td class="num" id="LN194">194</td><td class="line"> { 0.8, 0, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="195"><td class="num" id="LN195">195</td><td class="line"> { 0.305882, 0.603922, 0.0235294, 1 },</td></tr>
+<tr class="codeline" data-linenumber="196"><td class="num" id="LN196">196</td><td class="line"> { 0.768627, 0.627451, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="197"><td class="num" id="LN197">197</td><td class="line"> { 0.203922, 0.396078, 0.643137, 1 },</td></tr>
+<tr class="codeline" data-linenumber="198"><td class="num" id="LN198">198</td><td class="line"> { 0.458824, 0.313725, 0.482353, 1 },</td></tr>
+<tr class="codeline" data-linenumber="199"><td class="num" id="LN199">199</td><td class="line"> { 0.0235294, 0.596078, 0.603922, 1 },</td></tr>
+<tr class="codeline" data-linenumber="200"><td class="num" id="LN200">200</td><td class="line"> { 0.827451, 0.843137, 0.811765, 1 },</td></tr>
+<tr class="codeline" data-linenumber="201"><td class="num" id="LN201">201</td><td class="line"> { 0.333333, 0.341176, 0.32549, 1 },</td></tr>
+<tr class="codeline" data-linenumber="202"><td class="num" id="LN202">202</td><td class="line"> { 0.937255, 0.160784, 0.160784, 1 },</td></tr>
+<tr class="codeline" data-linenumber="203"><td class="num" id="LN203">203</td><td class="line"> { 0.541176, 0.886275, 0.203922, 1 },</td></tr>
+<tr class="codeline" data-linenumber="204"><td class="num" id="LN204">204</td><td class="line"> { 0.988235, 0.913725, 0.309804, 1 },</td></tr>
+<tr class="codeline" data-linenumber="205"><td class="num" id="LN205">205</td><td class="line"> { 0.447059, 0.623529, 0.811765, 1 },</td></tr>
+<tr class="codeline" data-linenumber="206"><td class="num" id="LN206">206</td><td class="line"> { 0.678431, 0.498039, 0.658824, 1 },</td></tr>
+<tr class="codeline" data-linenumber="207"><td class="num" id="LN207">207</td><td class="line"> { 0.203922, 0.886275, 0.886275, 1 },</td></tr>
+<tr class="codeline" data-linenumber="208"><td class="num" id="LN208">208</td><td class="line"> { 0.933333, 0.933333, 0.92549, 1 },</td></tr>
+<tr class="codeline" data-linenumber="209"><td class="num" id="LN209">209</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="210"><td class="num" id="LN210">210</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="211"><td class="num" id="LN211">211</td><td class="line"> <span class='comment'>/* Linux palette */</span></td></tr>
+<tr class="codeline" data-linenumber="212"><td class="num" id="LN212">212</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="213"><td class="num" id="LN213">213</td><td class="line"> { 0, 0, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="214"><td class="num" id="LN214">214</td><td class="line"> { 0.666667, 0, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="215"><td class="num" id="LN215">215</td><td class="line"> { 0, 0.666667, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="216"><td class="num" id="LN216">216</td><td class="line"> { 0.666667, 0.333333, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="217"><td class="num" id="LN217">217</td><td class="line"> { 0, 0, 0.666667, 1 },</td></tr>
+<tr class="codeline" data-linenumber="218"><td class="num" id="LN218">218</td><td class="line"> { 0.666667, 0, 0.666667, 1 },</td></tr>
+<tr class="codeline" data-linenumber="219"><td class="num" id="LN219">219</td><td class="line"> { 0, 0.666667, 0.666667, 1 },</td></tr>
+<tr class="codeline" data-linenumber="220"><td class="num" id="LN220">220</td><td class="line"> { 0.666667, 0.666667, 0.666667, 1 },</td></tr>
+<tr class="codeline" data-linenumber="221"><td class="num" id="LN221">221</td><td class="line"> { 0.333333, 0.333333, 0.333333, 1 },</td></tr>
+<tr class="codeline" data-linenumber="222"><td class="num" id="LN222">222</td><td class="line"> { 1, 0.333333, 0.333333, 1 },</td></tr>
+<tr class="codeline" data-linenumber="223"><td class="num" id="LN223">223</td><td class="line"> { 0.333333, 1, 0.333333, 1 },</td></tr>
+<tr class="codeline" data-linenumber="224"><td class="num" id="LN224">224</td><td class="line"> { 1, 1, 0.333333, 1 },</td></tr>
+<tr class="codeline" data-linenumber="225"><td class="num" id="LN225">225</td><td class="line"> { 0.333333, 0.333333, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="226"><td class="num" id="LN226">226</td><td class="line"> { 1, 0.333333, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="227"><td class="num" id="LN227">227</td><td class="line"> { 0.333333, 1, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="228"><td class="num" id="LN228">228</td><td class="line"> { 1, 1, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="229"><td class="num" id="LN229">229</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="230"><td class="num" id="LN230">230</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="231"><td class="num" id="LN231">231</td><td class="line"> <span class='comment'>/* XTerm palette */</span></td></tr>
+<tr class="codeline" data-linenumber="232"><td class="num" id="LN232">232</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="233"><td class="num" id="LN233">233</td><td class="line"> { 0, 0, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="234"><td class="num" id="LN234">234</td><td class="line"> { 0.803922, 0, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="235"><td class="num" id="LN235">235</td><td class="line"> { 0, 0.803922, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="236"><td class="num" id="LN236">236</td><td class="line"> { 0.803922, 0.803922, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="237"><td class="num" id="LN237">237</td><td class="line"> { 0.117647, 0.564706, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="238"><td class="num" id="LN238">238</td><td class="line"> { 0.803922, 0, 0.803922, 1 },</td></tr>
+<tr class="codeline" data-linenumber="239"><td class="num" id="LN239">239</td><td class="line"> { 0, 0.803922, 0.803922, 1 },</td></tr>
+<tr class="codeline" data-linenumber="240"><td class="num" id="LN240">240</td><td class="line"> { 0.898039, 0.898039, 0.898039, 1 },</td></tr>
+<tr class="codeline" data-linenumber="241"><td class="num" id="LN241">241</td><td class="line"> { 0.298039, 0.298039, 0.298039, 1 },</td></tr>
+<tr class="codeline" data-linenumber="242"><td class="num" id="LN242">242</td><td class="line"> { 1, 0, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="243"><td class="num" id="LN243">243</td><td class="line"> { 0, 1, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="244"><td class="num" id="LN244">244</td><td class="line"> { 1, 1, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="245"><td class="num" id="LN245">245</td><td class="line"> { 0.27451, 0.509804, 0.705882, 1 },</td></tr>
+<tr class="codeline" data-linenumber="246"><td class="num" id="LN246">246</td><td class="line"> { 1, 0, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="247"><td class="num" id="LN247">247</td><td class="line"> { 0, 1, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="248"><td class="num" id="LN248">248</td><td class="line"> { 1, 1, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="249"><td class="num" id="LN249">249</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="250"><td class="num" id="LN250">250</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="251"><td class="num" id="LN251">251</td><td class="line"> <span class='comment'>/* RXVT palette */</span></td></tr>
+<tr class="codeline" data-linenumber="252"><td class="num" id="LN252">252</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="253"><td class="num" id="LN253">253</td><td class="line"> { 0, 0, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="254"><td class="num" id="LN254">254</td><td class="line"> { 0.803922, 0, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="255"><td class="num" id="LN255">255</td><td class="line"> { 0, 0.803922, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="256"><td class="num" id="LN256">256</td><td class="line"> { 0.803922, 0.803922, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="257"><td class="num" id="LN257">257</td><td class="line"> { 0, 0, 0.803922, 1 },</td></tr>
+<tr class="codeline" data-linenumber="258"><td class="num" id="LN258">258</td><td class="line"> { 0.803922, 0, 0.803922, 1 },</td></tr>
+<tr class="codeline" data-linenumber="259"><td class="num" id="LN259">259</td><td class="line"> { 0, 0.803922, 0.803922, 1 },</td></tr>
+<tr class="codeline" data-linenumber="260"><td class="num" id="LN260">260</td><td class="line"> { 0.980392, 0.921569, 0.843137, 1 },</td></tr>
+<tr class="codeline" data-linenumber="261"><td class="num" id="LN261">261</td><td class="line"> { 0.25098, 0.25098, 0.25098, 1 },</td></tr>
+<tr class="codeline" data-linenumber="262"><td class="num" id="LN262">262</td><td class="line"> { 1, 0, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="263"><td class="num" id="LN263">263</td><td class="line"> { 0, 1, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="264"><td class="num" id="LN264">264</td><td class="line"> { 1, 1, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="265"><td class="num" id="LN265">265</td><td class="line"> { 0, 0, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="266"><td class="num" id="LN266">266</td><td class="line"> { 1, 0, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="267"><td class="num" id="LN267">267</td><td class="line"> { 0, 1, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="268"><td class="num" id="LN268">268</td><td class="line"> { 1, 1, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="269"><td class="num" id="LN269">269</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="270"><td class="num" id="LN270">270</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="271"><td class="num" id="LN271">271</td><td class="line"> <span class='comment'>/* Solarized palette (1.0.0beta2): http://ethanschoonover.com/solarized */</span></td></tr>
+<tr class="codeline" data-linenumber="272"><td class="num" id="LN272">272</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="273"><td class="num" id="LN273">273</td><td class="line"> { 0.02745, 0.211764, 0.258823, 1 },</td></tr>
+<tr class="codeline" data-linenumber="274"><td class="num" id="LN274">274</td><td class="line"> { 0.862745, 0.196078, 0.184313, 1 },</td></tr>
+<tr class="codeline" data-linenumber="275"><td class="num" id="LN275">275</td><td class="line"> { 0.521568, 0.6, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="276"><td class="num" id="LN276">276</td><td class="line"> { 0.709803, 0.537254, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="277"><td class="num" id="LN277">277</td><td class="line"> { 0.149019, 0.545098, 0.823529, 1 },</td></tr>
+<tr class="codeline" data-linenumber="278"><td class="num" id="LN278">278</td><td class="line"> { 0.82745, 0.211764, 0.509803, 1 },</td></tr>
+<tr class="codeline" data-linenumber="279"><td class="num" id="LN279">279</td><td class="line"> { 0.164705, 0.631372, 0.596078, 1 },</td></tr>
+<tr class="codeline" data-linenumber="280"><td class="num" id="LN280">280</td><td class="line"> { 0.933333, 0.909803, 0.835294, 1 },</td></tr>
+<tr class="codeline" data-linenumber="281"><td class="num" id="LN281">281</td><td class="line"> { 0, 0.168627, 0.211764, 1 },</td></tr>
+<tr class="codeline" data-linenumber="282"><td class="num" id="LN282">282</td><td class="line"> { 0.796078, 0.294117, 0.086274, 1 },</td></tr>
+<tr class="codeline" data-linenumber="283"><td class="num" id="LN283">283</td><td class="line"> { 0.345098, 0.431372, 0.458823, 1 },</td></tr>
+<tr class="codeline" data-linenumber="284"><td class="num" id="LN284">284</td><td class="line"> { 0.396078, 0.482352, 0.513725, 1 },</td></tr>
+<tr class="codeline" data-linenumber="285"><td class="num" id="LN285">285</td><td class="line"> { 0.513725, 0.580392, 0.588235, 1 },</td></tr>
+<tr class="codeline" data-linenumber="286"><td class="num" id="LN286">286</td><td class="line"> { 0.423529, 0.443137, 0.768627, 1 },</td></tr>
+<tr class="codeline" data-linenumber="287"><td class="num" id="LN287">287</td><td class="line"> { 0.57647, 0.631372, 0.631372, 1 },</td></tr>
+<tr class="codeline" data-linenumber="288"><td class="num" id="LN288">288</td><td class="line"> { 0.992156, 0.964705, 0.890196, 1 },</td></tr>
+<tr class="codeline" data-linenumber="289"><td class="num" id="LN289">289</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="290"><td class="num" id="LN290">290</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="291"><td class="num" id="LN291">291</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="292"><td class="num" id="LN292">292</td><td class="line"><span class='keyword'>enum</span></td></tr>
+<tr class="codeline" data-linenumber="293"><td class="num" id="LN293">293</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="294"><td class="num" id="LN294">294</td><td class="line"> FORGOTTEN,</td></tr>
+<tr class="codeline" data-linenumber="295"><td class="num" id="LN295">295</td><td class="line"> LAST_SIGNAL</td></tr>
+<tr class="codeline" data-linenumber="296"><td class="num" id="LN296">296</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="297"><td class="num" id="LN297">297</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="298"><td class="num" id="LN298">298</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> terminal_profile_finalize (GObject *object);</td></tr>
+<tr class="codeline" data-linenumber="299"><td class="num" id="LN299">299</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> terminal_profile_set_property (GObject *object,</td></tr>
+<tr class="codeline" data-linenumber="300"><td class="num" id="LN300">300</td><td class="line"> guint prop_id,</td></tr>
+<tr class="codeline" data-linenumber="301"><td class="num" id="LN301">301</td><td class="line"> <span class='keyword'>const</span> GValue *value,</td></tr>
+<tr class="codeline" data-linenumber="302"><td class="num" id="LN302">302</td><td class="line"> GParamSpec *pspec);</td></tr>
+<tr class="codeline" data-linenumber="303"><td class="num" id="LN303">303</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> ensure_pixbuf_property (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="304"><td class="num" id="LN304">304</td><td class="line"> guint path_prop_id,</td></tr>
+<tr class="codeline" data-linenumber="305"><td class="num" id="LN305">305</td><td class="line"> guint pixbuf_prop_id,</td></tr>
+<tr class="codeline" data-linenumber="306"><td class="num" id="LN306">306</td><td class="line"> gboolean *load_failed);</td></tr>
+<tr class="codeline" data-linenumber="307"><td class="num" id="LN307">307</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="308"><td class="num" id="LN308">308</td><td class="line"><span class='keyword'>static</span> guint signals[LAST_SIGNAL] = { 0 };</td></tr>
+<tr class="codeline" data-linenumber="309"><td class="num" id="LN309">309</td><td class="line"><span class='keyword'>static</span> GQuark gsettings_key_quark;</td></tr>
+<tr class="codeline" data-linenumber="310"><td class="num" id="LN310">310</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="311"><td class="num" id="LN311">311</td><td class="line"><span class='macro'>G_DEFINE_TYPE_WITH_PRIVATE (TerminalProfile, terminal_profile, G_TYPE_OBJECT)<span class='macro_popup'>static void terminal_profile_init (TerminalProfile *self); static<br> void terminal_profile_class_init (TerminalProfileClass *klass<br>); static GType terminal_profile_get_type_once (void); static<br> gpointer terminal_profile_parent_class = ((void*)0); static gint<br> TerminalProfile_private_offset; static void terminal_profile_class_intern_init<br> (gpointer klass) { terminal_profile_parent_class = g_type_class_peek_parent<br> (klass); if (TerminalProfile_private_offset != 0) g_type_class_adjust_private_offset<br> (klass, &amp;TerminalProfile_private_offset); terminal_profile_class_init<br> ((TerminalProfileClass*) klass); } __attribute__ ((__unused__<br>)) static inline gpointer terminal_profile_get_instance_private<br> (TerminalProfile *self) { return (((gpointer) ((guint8*) (self<br>) + (glong) (TerminalProfile_private_offset)))); } GType terminal_profile_get_type<br> (void) { static gsize static_g_define_type_id = 0; if ((__extension__<br> ({ _Static_assert (sizeof *(&amp;static_g_define_type_id) ==<br> sizeof (gpointer), "Expression evaluates to false"); (void) (<br>0 ? (gpointer) *(&amp;static_g_define_type_id) : ((void*)0));<br> (!(__extension__ ({ _Static_assert (sizeof *(&amp;static_g_define_type_id<br>) == sizeof (gpointer), "Expression evaluates to false"); __typeof__<br> (*(&amp;static_g_define_type_id)) gapg_temp_newval; __typeof__<br> ((&amp;static_g_define_type_id)) gapg_temp_atomic = (&amp;static_g_define_type_id<br>); __atomic_load (gapg_temp_atomic, &amp;gapg_temp_newval, 5)<br>; gapg_temp_newval; })) &amp;&amp; g_once_init_enter (&amp;static_g_define_type_id<br>)); }))) { GType g_define_type_id = terminal_profile_get_type_once<br> (); (__extension__ ({ _Static_assert (sizeof *(&amp;static_g_define_type_id<br>) == sizeof (gpointer), "Expression evaluates to false"); 0 ?<br> (void) (*(&amp;static_g_define_type_id) = (g_define_type_id)<br>) : (void) 0; g_once_init_leave ((&amp;static_g_define_type_id<br>), (gsize) (g_define_type_id)); })); } return static_g_define_type_id<br>; } __attribute__ ((__noinline__)) static GType terminal_profile_get_type_once<br> (void) { GType g_define_type_id = g_type_register_static_simple<br> (((GType) ((20) &lt;&lt; (2))), g_intern_static_string ("TerminalProfile"<br>), sizeof (TerminalProfileClass), (GClassInitFunc)(void (*)(void<br>)) terminal_profile_class_intern_init, sizeof (TerminalProfile<br>), (GInstanceInitFunc)(void (*)(void)) terminal_profile_init,<br> (GTypeFlags) 0); { {{ TerminalProfile_private_offset = g_type_add_instance_private<br> (g_define_type_id, sizeof (TerminalProfilePrivate)); };} } return<br> g_define_type_id; }</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="312"><td class="num" id="LN312">312</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="313"><td class="num" id="LN313">313</td><td class="line"><span class='comment'>/* gdk_rgba_equal is too strict! */</span></td></tr>
+<tr class="codeline" data-linenumber="314"><td class="num" id="LN314">314</td><td class="line"><span class='keyword'>static</span> gboolean</td></tr>
+<tr class="codeline" data-linenumber="315"><td class="num" id="LN315">315</td><td class="line">rgba_equal (<span class='keyword'>const</span> GdkRGBA *a,</td></tr>
+<tr class="codeline" data-linenumber="316"><td class="num" id="LN316">316</td><td class="line"> <span class='keyword'>const</span> GdkRGBA *b)</td></tr>
+<tr class="codeline" data-linenumber="317"><td class="num" id="LN317">317</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="318"><td class="num" id="LN318">318</td><td class="line"> gdouble dr, dg, db, da;</td></tr>
+<tr class="codeline" data-linenumber="319"><td class="num" id="LN319">319</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="320"><td class="num" id="LN320">320</td><td class="line"> dr = a-&gt;red - b-&gt;red;</td></tr>
+<tr class="codeline" data-linenumber="321"><td class="num" id="LN321">321</td><td class="line"> dg = a-&gt;green - b-&gt;green;</td></tr>
+<tr class="codeline" data-linenumber="322"><td class="num" id="LN322">322</td><td class="line"> db = a-&gt;blue - b-&gt;blue;</td></tr>
+<tr class="codeline" data-linenumber="323"><td class="num" id="LN323">323</td><td class="line"> da = a-&gt;alpha - b-&gt;alpha;</td></tr>
+<tr class="codeline" data-linenumber="324"><td class="num" id="LN324">324</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="325"><td class="num" id="LN325">325</td><td class="line"> <span class='keyword'>return</span> (dr * dr + dg * dg + db * db + da * da) &lt; 1e-4;</td></tr>
+<tr class="codeline" data-linenumber="326"><td class="num" id="LN326">326</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="327"><td class="num" id="LN327">327</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="328"><td class="num" id="LN328">328</td><td class="line"><span class='keyword'>static</span> gboolean</td></tr>
+<tr class="codeline" data-linenumber="329"><td class="num" id="LN329">329</td><td class="line">palette_cmp (<span class='keyword'>const</span> GdkRGBA *ca,</td></tr>
+<tr class="codeline" data-linenumber="330"><td class="num" id="LN330">330</td><td class="line"> <span class='keyword'>const</span> GdkRGBA *cb)</td></tr>
+<tr class="codeline" data-linenumber="331"><td class="num" id="LN331">331</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="332"><td class="num" id="LN332">332</td><td class="line"> guint i;</td></tr>
+<tr class="codeline" data-linenumber="333"><td class="num" id="LN333">333</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="334"><td class="num" id="LN334">334</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; <span class='macro'>TERMINAL_PALETTE_SIZE<span class='macro_popup'>16</span></span>; ++i)</td></tr>
+<tr class="codeline" data-linenumber="335"><td class="num" id="LN335">335</td><td class="line"> <span class='keyword'>if</span> (!rgba_equal (&amp;ca[i], &amp;cb[i]))</td></tr>
+<tr class="codeline" data-linenumber="336"><td class="num" id="LN336">336</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="337"><td class="num" id="LN337">337</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="338"><td class="num" id="LN338">338</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="339"><td class="num" id="LN339">339</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="340"><td class="num" id="LN340">340</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="341"><td class="num" id="LN341">341</td><td class="line"><span class='keyword'>static</span> GParamSpec *</td></tr>
+<tr class="codeline" data-linenumber="342"><td class="num" id="LN342">342</td><td class="line">get_pspec_from_name (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="343"><td class="num" id="LN343">343</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="344"><td class="num" id="LN344">344</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="345"><td class="num" id="LN345">345</td><td class="line"> TerminalProfileClass *klass = <span class='macro'>TERMINAL_PROFILE_GET_CLASS (profile)<span class='macro_popup'>((((TerminalProfileClass*) (((GTypeInstance*) ((profile)))-&gt;<br>g_class))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="346"><td class="num" id="LN346">346</td><td class="line"> GParamSpec *pspec;</td></tr>
+<tr class="codeline" data-linenumber="347"><td class="num" id="LN347">347</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="348"><td class="num" id="LN348">348</td><td class="line"> pspec = g_object_class_find_property (<span class='macro'>G_OBJECT_CLASS (klass)<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((klass)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="349"><td class="num" id="LN349">349</td><td class="line"> <span class='keyword'>if</span> (pspec &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="350"><td class="num" id="LN350">350</td><td class="line"> pspec-&gt;owner_type != <span class='macro'>TERMINAL_TYPE_PROFILE<span class='macro_popup'>(terminal_profile_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="351"><td class="num" id="LN351">351</td><td class="line"> pspec = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="352"><td class="num" id="LN352">352</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="353"><td class="num" id="LN353">353</td><td class="line"> <span class='keyword'>return</span> pspec;</td></tr>
+<tr class="codeline" data-linenumber="354"><td class="num" id="LN354">354</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="355"><td class="num" id="LN355">355</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="356"><td class="num" id="LN356">356</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>const</span> GValue *</td></tr>
+<tr class="codeline" data-linenumber="357"><td class="num" id="LN357">357</td><td class="line">get_prop_value_from_prop_name (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="358"><td class="num" id="LN358">358</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="359"><td class="num" id="LN359">359</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="360"><td class="num" id="LN360">360</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="361"><td class="num" id="LN361">361</td><td class="line"> GParamSpec *pspec;</td></tr>
+<tr class="codeline" data-linenumber="362"><td class="num" id="LN362">362</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="363"><td class="num" id="LN363">363</td><td class="line"> pspec = get_pspec_from_name (profile, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="364"><td class="num" id="LN364">364</td><td class="line"> <span class='keyword'>if</span> (!pspec)</td></tr>
+<tr class="codeline" data-linenumber="365"><td class="num" id="LN365">365</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="366"><td class="num" id="LN366">366</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="367"><td class="num" id="LN367">367</td><td class="line"> <span class='keyword'>if</span> (<span class='macro'>G_UNLIKELY (pspec-&gt;param_id == PROP_BACKGROUND_IMAGE)<span class='macro_popup'>(pspec-&gt;param_id == PROP_BACKGROUND_IMAGE)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="368"><td class="num" id="LN368">368</td><td class="line"> ensure_pixbuf_property (profile, PROP_BACKGROUND_IMAGE_FILE, PROP_BACKGROUND_IMAGE, &amp;priv-&gt;background_load_failed);</td></tr>
+<tr class="codeline" data-linenumber="369"><td class="num" id="LN369">369</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="370"><td class="num" id="LN370">370</td><td class="line"> <span class='keyword'>return</span> g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id);</td></tr>
+<tr class="codeline" data-linenumber="371"><td class="num" id="LN371">371</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="372"><td class="num" id="LN372">372</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="373"><td class="num" id="LN373">373</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="374"><td class="num" id="LN374">374</td><td class="line">set_value_from_palette (GValue *ret_value,</td></tr>
+<tr class="codeline" data-linenumber="375"><td class="num" id="LN375">375</td><td class="line"> <span class='keyword'>const</span> GdkRGBA *colors,</td></tr>
+<tr class="codeline" data-linenumber="376"><td class="num" id="LN376">376</td><td class="line"> guint n_colors)</td></tr>
+<tr class="codeline" data-linenumber="377"><td class="num" id="LN377">377</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="378"><td class="num" id="LN378">378</td><td class="line"> GValueArray *array;</td></tr>
+<tr class="codeline" data-linenumber="379"><td class="num" id="LN379">379</td><td class="line"> guint i, max_n_colors;</td></tr>
+<tr class="codeline" data-linenumber="380"><td class="num" id="LN380">380</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="381"><td class="num" id="LN381">381</td><td class="line"> max_n_colors = <span class='macro'>MAX (n_colors, TERMINAL_PALETTE_SIZE)<span class='macro_popup'>(((n_colors) &gt; (16)) ? (n_colors) : (16))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="382"><td class="num" id="LN382">382</td><td class="line"> array = g_value_array_new (max_n_colors);</td></tr>
+<tr class="codeline" data-linenumber="383"><td class="num" id="LN383">383</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; max_n_colors; ++i)</td></tr>
+<tr class="codeline" data-linenumber="384"><td class="num" id="LN384">384</td><td class="line"> g_value_array_append (array, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="385"><td class="num" id="LN385">385</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="386"><td class="num" id="LN386">386</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; n_colors; ++i)</td></tr>
+<tr class="codeline" data-linenumber="387"><td class="num" id="LN387">387</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="388"><td class="num" id="LN388">388</td><td class="line"> GValue *value = g_value_array_get_nth (array, i);</td></tr>
+<tr class="codeline" data-linenumber="389"><td class="num" id="LN389">389</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="390"><td class="num" id="LN390">390</td><td class="line"> g_value_init (value, <span class='macro'>GDK_TYPE_RGBA<span class='macro_popup'>(gdk_rgba_get_type ())</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="391"><td class="num" id="LN391">391</td><td class="line"> g_value_set_boxed (value, &amp;colors[i]);</td></tr>
+<tr class="codeline" data-linenumber="392"><td class="num" id="LN392">392</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="393"><td class="num" id="LN393">393</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="394"><td class="num" id="LN394">394</td><td class="line"> <span class='comment'>/* If we haven't enough colours yet, fill up with the default palette */</span></td></tr>
+<tr class="codeline" data-linenumber="395"><td class="num" id="LN395">395</td><td class="line"> <span class='keyword'>for</span> (i = n_colors; i &lt; <span class='macro'>TERMINAL_PALETTE_SIZE<span class='macro_popup'>16</span></span>; ++i)</td></tr>
+<tr class="codeline" data-linenumber="396"><td class="num" id="LN396">396</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="397"><td class="num" id="LN397">397</td><td class="line"> GValue *value = g_value_array_get_nth (array, i);</td></tr>
+<tr class="codeline" data-linenumber="398"><td class="num" id="LN398">398</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="399"><td class="num" id="LN399">399</td><td class="line"> g_value_init (value, <span class='macro'>GDK_TYPE_RGBA<span class='macro_popup'>(gdk_rgba_get_type ())</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="400"><td class="num" id="LN400">400</td><td class="line"> g_value_set_boxed (value, &amp;<span class='macro'>DEFAULT_PALETTE<span class='macro_popup'>(terminal_palettes[0])</span></span>[i]);</td></tr>
+<tr class="codeline" data-linenumber="401"><td class="num" id="LN401">401</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="402"><td class="num" id="LN402">402</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="403"><td class="num" id="LN403">403</td><td class="line"> g_value_take_boxed (ret_value, array);</td></tr>
+<tr class="codeline" data-linenumber="404"><td class="num" id="LN404">404</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="405"><td class="num" id="LN405">405</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="406"><td class="num" id="LN406">406</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>int</span></td></tr>
+<tr class="codeline" data-linenumber="407"><td class="num" id="LN407">407</td><td class="line">values_equal (GParamSpec *pspec,</td></tr>
+<tr class="codeline" data-linenumber="408"><td class="num" id="LN408">408</td><td class="line"> <span class='keyword'>const</span> GValue *va,</td></tr>
+<tr class="codeline" data-linenumber="409"><td class="num" id="LN409">409</td><td class="line"> <span class='keyword'>const</span> GValue *vb)</td></tr>
+<tr class="codeline" data-linenumber="410"><td class="num" id="LN410">410</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="411"><td class="num" id="LN411">411</td><td class="line"> <span class='comment'>/* g_param_values_cmp isn't good enough for some types, since e.g.</span></td></tr>
+<tr class="codeline" data-linenumber="412"><td class="num" id="LN412">412</td><td class="line"> <span class='comment'>* it compares colours and font descriptions by pointer value, not</span></td></tr>
+<tr class="codeline" data-linenumber="413"><td class="num" id="LN413">413</td><td class="line"> <span class='comment'>* with the correct compare functions. Providing extra</span></td></tr>
+<tr class="codeline" data-linenumber="414"><td class="num" id="LN414">414</td><td class="line"> <span class='comment'>* PangoParamSpecFontDescription and GdkParamSpecColor wouldn't</span></td></tr>
+<tr class="codeline" data-linenumber="415"><td class="num" id="LN415">415</td><td class="line"> <span class='comment'>* have fixed this either, since it's unclear how to _order_ them.</span></td></tr>
+<tr class="codeline" data-linenumber="416"><td class="num" id="LN416">416</td><td class="line"> <span class='comment'>* Luckily we only need to check them for equality here.</span></td></tr>
+<tr class="codeline" data-linenumber="417"><td class="num" id="LN417">417</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="418"><td class="num" id="LN418">418</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="419"><td class="num" id="LN419">419</td><td class="line"> <span class='keyword'>if</span> (g_param_values_cmp (pspec, va, vb) == 0)</td></tr>
+<tr class="codeline" data-linenumber="420"><td class="num" id="LN420">420</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="421"><td class="num" id="LN421">421</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="422"><td class="num" id="LN422">422</td><td class="line"> <span class='keyword'>if</span> (<span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span> == <span class='macro'>GDK_TYPE_RGBA<span class='macro_popup'>(gdk_rgba_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="423"><td class="num" id="LN423">423</td><td class="line"> <span class='keyword'>return</span> rgba_equal (g_value_get_boxed (va), g_value_get_boxed (vb));</td></tr>
+<tr class="codeline" data-linenumber="424"><td class="num" id="LN424">424</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="425"><td class="num" id="LN425">425</td><td class="line"> <span class='keyword'>if</span> (<span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span> == <span class='macro'>PANGO_TYPE_FONT_DESCRIPTION<span class='macro_popup'>(pango_font_description_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="426"><td class="num" id="LN426">426</td><td class="line"> <span class='keyword'>return</span> pango_font_description_equal (g_value_get_boxed (va), g_value_get_boxed (vb));</td></tr>
+<tr class="codeline" data-linenumber="427"><td class="num" id="LN427">427</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="428"><td class="num" id="LN428">428</td><td class="line"> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_VALUE_ARRAY (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[18]) GCC warning "Deprecated pre-processor symbol"<br>
+); gboolean __r; if (!__inst) __r = (0); else if (__inst-&gt;<br>g_class &amp;&amp; __inst-&gt;g_class-&gt;g_type == __t) __r =<br> (!(0)); else __r = g_type_check_instance_is_a (__inst, __t);<br> __r; })))) GCC warning "Deprecated pre-processor symbol"
+</span></span> &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="429"><td class="num" id="LN429">429</td><td class="line"> <span class='macro'>G_PARAM_SPEC_VALUE_TYPE (G_PARAM_SPEC_VALUE_ARRAY (pspec)-&gt;element_spec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((((((GParamSpecValueArray*) (void *) g_type_check_instance_cast<br> ((GTypeInstance*) ((pspec)), ((g_param_spec_types[18]) GCC warning<br> "Deprecated pre-processor symbol"
+))))) GCC warning "Deprecated pre-processor symbol"<br>
+-&gt;element_spec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;<br>value_type)</span></span> == <span class='macro'>GDK_TYPE_RGBA<span class='macro_popup'>(gdk_rgba_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="430"><td class="num" id="LN430">430</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="431"><td class="num" id="LN431">431</td><td class="line"> GValueArray *ara, *arb;</td></tr>
+<tr class="codeline" data-linenumber="432"><td class="num" id="LN432">432</td><td class="line"> guint i;</td></tr>
+<tr class="codeline" data-linenumber="433"><td class="num" id="LN433">433</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="434"><td class="num" id="LN434">434</td><td class="line"> ara = g_value_get_boxed (va);</td></tr>
+<tr class="codeline" data-linenumber="435"><td class="num" id="LN435">435</td><td class="line"> arb = g_value_get_boxed (vb);</td></tr>
+<tr class="codeline" data-linenumber="436"><td class="num" id="LN436">436</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="437"><td class="num" id="LN437">437</td><td class="line"> <span class='keyword'>if</span> (!ara || !arb || ara-&gt;n_values != arb-&gt;n_values)</td></tr>
+<tr class="codeline" data-linenumber="438"><td class="num" id="LN438">438</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="439"><td class="num" id="LN439">439</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="440"><td class="num" id="LN440">440</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; ara-&gt;n_values; ++i)</td></tr>
+<tr class="codeline" data-linenumber="441"><td class="num" id="LN441">441</td><td class="line"> <span class='keyword'>if</span> (!rgba_equal (g_value_get_boxed (g_value_array_get_nth (ara, i)),</td></tr>
+<tr class="codeline" data-linenumber="442"><td class="num" id="LN442">442</td><td class="line"> g_value_get_boxed (g_value_array_get_nth (arb, i))))</td></tr>
+<tr class="codeline" data-linenumber="443"><td class="num" id="LN443">443</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="444"><td class="num" id="LN444">444</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="445"><td class="num" id="LN445">445</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="446"><td class="num" id="LN446">446</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="447"><td class="num" id="LN447">447</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="448"><td class="num" id="LN448">448</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="449"><td class="num" id="LN449">449</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="450"><td class="num" id="LN450">450</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="451"><td class="num" id="LN451">451</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="452"><td class="num" id="LN452">452</td><td class="line">ensure_pixbuf_property (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="453"><td class="num" id="LN453">453</td><td class="line"> guint path_prop_id,</td></tr>
+<tr class="codeline" data-linenumber="454"><td class="num" id="LN454">454</td><td class="line"> guint pixbuf_prop_id,</td></tr>
+<tr class="codeline" data-linenumber="455"><td class="num" id="LN455">455</td><td class="line"> gboolean *load_failed)</td></tr>
+<tr class="codeline" data-linenumber="456"><td class="num" id="LN456">456</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="457"><td class="num" id="LN457">457</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="458"><td class="num" id="LN458">458</td><td class="line"> GValue *path_value, *pixbuf_value;</td></tr>
+<tr class="codeline" data-linenumber="459"><td class="num" id="LN459">459</td><td class="line"> GdkPixbuf *pixbuf;</td></tr>
+<tr class="codeline" data-linenumber="460"><td class="num" id="LN460">460</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *path_utf8;</td></tr>
+<tr class="codeline" data-linenumber="461"><td class="num" id="LN461">461</td><td class="line"> <span class='keyword'>char</span> *path;</td></tr>
+<tr class="codeline" data-linenumber="462"><td class="num" id="LN462">462</td><td class="line"> GError *error = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="463"><td class="num" id="LN463">463</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="464"><td class="num" id="LN464">464</td><td class="line"> pixbuf_value = g_value_array_get_nth (priv-&gt;properties, pixbuf_prop_id);</td></tr>
+<tr class="codeline" data-linenumber="465"><td class="num" id="LN465">465</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="466"><td class="num" id="LN466">466</td><td class="line"> pixbuf = g_value_get_object (pixbuf_value);</td></tr>
+<tr class="codeline" data-linenumber="467"><td class="num" id="LN467">467</td><td class="line"> <span class='keyword'>if</span> (pixbuf)</td></tr>
+<tr class="codeline" data-linenumber="468"><td class="num" id="LN468">468</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="469"><td class="num" id="LN469">469</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="470"><td class="num" id="LN470">470</td><td class="line"> <span class='keyword'>if</span> (*load_failed)</td></tr>
+<tr class="codeline" data-linenumber="471"><td class="num" id="LN471">471</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="472"><td class="num" id="LN472">472</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="473"><td class="num" id="LN473">473</td><td class="line"> path_value = g_value_array_get_nth (priv-&gt;properties, path_prop_id);</td></tr>
+<tr class="codeline" data-linenumber="474"><td class="num" id="LN474">474</td><td class="line"> path_utf8 = g_value_get_string (path_value);</td></tr>
+<tr class="codeline" data-linenumber="475"><td class="num" id="LN475">475</td><td class="line"> <span class='keyword'>if</span> (!path_utf8 || !path_utf8[0])</td></tr>
+<tr class="codeline" data-linenumber="476"><td class="num" id="LN476">476</td><td class="line"> <span class='keyword'>goto</span> failed;</td></tr>
+<tr class="codeline" data-linenumber="477"><td class="num" id="LN477">477</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="478"><td class="num" id="LN478">478</td><td class="line"> path = g_filename_from_utf8 (path_utf8, -1, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="479"><td class="num" id="LN479">479</td><td class="line"> <span class='keyword'>if</span> (!path)</td></tr>
+<tr class="codeline" data-linenumber="480"><td class="num" id="LN480">480</td><td class="line"> <span class='keyword'>goto</span> failed;</td></tr>
+<tr class="codeline" data-linenumber="481"><td class="num" id="LN481">481</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="482"><td class="num" id="LN482">482</td><td class="line"> pixbuf = gdk_pixbuf_new_from_file (path, &amp;error);</td></tr>
+<tr class="codeline" data-linenumber="483"><td class="num" id="LN483">483</td><td class="line"> <span class='keyword'>if</span> (!pixbuf)</td></tr>
+<tr class="codeline" data-linenumber="484"><td class="num" id="LN484">484</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="485"><td class="num" id="LN485">485</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_PROFILE,<span class='macro_popup'>do { if (0) g_printerr("Failed to load image \"%s\": %s\n", path<br>, error-&gt;message); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="486"><td class="num" id="LN486">486</td><td class="line"> <span class='string_literal'><span class='macro'>"Failed to load image \"%s\": %s\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("Failed to load image \"%s\": %s\n", path<br>, error-&gt;message); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="487"><td class="num" id="LN487">487</td><td class="line"> <span class='macro'>path, error-&gt;message)<span class='macro_popup'>do { if (0) g_printerr("Failed to load image \"%s\": %s\n", path<br>, error-&gt;message); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="488"><td class="num" id="LN488">488</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="489"><td class="num" id="LN489">489</td><td class="line"> g_error_free (error);</td></tr>
+<tr class="codeline" data-linenumber="490"><td class="num" id="LN490">490</td><td class="line"> g_free (path);</td></tr>
+<tr class="codeline" data-linenumber="491"><td class="num" id="LN491">491</td><td class="line"> <span class='keyword'>goto</span> failed;</td></tr>
+<tr class="codeline" data-linenumber="492"><td class="num" id="LN492">492</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="493"><td class="num" id="LN493">493</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="494"><td class="num" id="LN494">494</td><td class="line"> g_value_take_object (pixbuf_value, pixbuf);</td></tr>
+<tr class="codeline" data-linenumber="495"><td class="num" id="LN495">495</td><td class="line"> g_free (path);</td></tr>
+<tr class="codeline" data-linenumber="496"><td class="num" id="LN496">496</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="497"><td class="num" id="LN497">497</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="498"><td class="num" id="LN498">498</td><td class="line">failed:</td></tr>
+<tr class="codeline" data-linenumber="499"><td class="num" id="LN499">499</td><td class="line"> *load_failed = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="500"><td class="num" id="LN500">500</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="501"><td class="num" id="LN501">501</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="502"><td class="num" id="LN502">502</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="503"><td class="num" id="LN503">503</td><td class="line">terminal_profile_reset_property_internal (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="504"><td class="num" id="LN504">504</td><td class="line"> GParamSpec *pspec,</td></tr>
+<tr class="codeline" data-linenumber="505"><td class="num" id="LN505">505</td><td class="line"> gboolean notify)</td></tr>
+<tr class="codeline" data-linenumber="506"><td class="num" id="LN506">506</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="507"><td class="num" id="LN507">507</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="508"><td class="num" id="LN508">508</td><td class="line"> GValue value_ = { 0, };</td></tr>
+<tr class="codeline" data-linenumber="509"><td class="num" id="LN509">509</td><td class="line"> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="510"><td class="num" id="LN510">510</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="511"><td class="num" id="LN511">511</td><td class="line"> <span class='keyword'>if</span> (notify)</td></tr>
+<tr class="codeline" data-linenumber="512"><td class="num" id="LN512">512</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="513"><td class="num" id="LN513">513</td><td class="line"> value = &amp;value_;</td></tr>
+<tr class="codeline" data-linenumber="514"><td class="num" id="LN514">514</td><td class="line"> g_value_init (value, <span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="515"><td class="num" id="LN515">515</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="516"><td class="num" id="LN516">516</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="517"><td class="num" id="LN517">517</td><td class="line"> value = g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id);</td></tr>
+<tr class="codeline" data-linenumber="518"><td class="num" id="LN518">518</td><td class="line"> <span class='macro'>g_assert (value != NULL)<span class='macro_popup'>do { if (value != ((void*)0)) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-profile.c", 518, ((const char*) (__func__<br>)), "value != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="519"><td class="num" id="LN519">519</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="520"><td class="num" id="LN520">520</td><td class="line"> <span class='comment'>/* A few properties don't have defaults via the param spec; set them explicitly */</span></td></tr>
+<tr class="codeline" data-linenumber="521"><td class="num" id="LN521">521</td><td class="line"> <span class='keyword'>switch</span> (pspec-&gt;param_id)</td></tr>
+<tr class="codeline" data-linenumber="522"><td class="num" id="LN522">522</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="523"><td class="num" id="LN523">523</td><td class="line"> <span class='keyword'>case</span> PROP_FOREGROUND_COLOR:</td></tr>
+<tr class="codeline" data-linenumber="524"><td class="num" id="LN524">524</td><td class="line"> <span class='keyword'>case</span> PROP_BOLD_COLOR:</td></tr>
+<tr class="codeline" data-linenumber="525"><td class="num" id="LN525">525</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="526"><td class="num" id="LN526">526</td><td class="line"> GdkRGBA color;</td></tr>
+<tr class="codeline" data-linenumber="527"><td class="num" id="LN527">527</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="528"><td class="num" id="LN528">528</td><td class="line"> <span class='keyword'>if</span> (!gdk_rgba_parse (&amp;color, <span class='macro'>DEFAULT_FOREGROUND_COLOR<span class='macro_popup'>("#000000")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="529"><td class="num" id="LN529">529</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="530"><td class="num" id="LN530">530</td><td class="line"> color.alpha = 1.0;</td></tr>
+<tr class="codeline" data-linenumber="531"><td class="num" id="LN531">531</td><td class="line"> g_value_set_boxed (value, &amp;color);</td></tr>
+<tr class="codeline" data-linenumber="532"><td class="num" id="LN532">532</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="533"><td class="num" id="LN533">533</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="534"><td class="num" id="LN534">534</td><td class="line"> <span class='keyword'>case</span> PROP_BACKGROUND_COLOR:</td></tr>
+<tr class="codeline" data-linenumber="535"><td class="num" id="LN535">535</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="536"><td class="num" id="LN536">536</td><td class="line"> GdkRGBA color;</td></tr>
+<tr class="codeline" data-linenumber="537"><td class="num" id="LN537">537</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="538"><td class="num" id="LN538">538</td><td class="line"> <span class='keyword'>if</span> (!gdk_rgba_parse (&amp;color, <span class='macro'>DEFAULT_BACKGROUND_COLOR<span class='macro_popup'>("#FFFFDD")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="539"><td class="num" id="LN539">539</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="540"><td class="num" id="LN540">540</td><td class="line"> color.alpha = 1.0;</td></tr>
+<tr class="codeline" data-linenumber="541"><td class="num" id="LN541">541</td><td class="line"> g_value_set_boxed (value, &amp;color);</td></tr>
+<tr class="codeline" data-linenumber="542"><td class="num" id="LN542">542</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="543"><td class="num" id="LN543">543</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="544"><td class="num" id="LN544">544</td><td class="line"> <span class='keyword'>case</span> PROP_FONT:</td></tr>
+<tr class="codeline" data-linenumber="545"><td class="num" id="LN545">545</td><td class="line"> g_value_take_boxed (value, pango_font_description_from_string (<span class='macro'>DEFAULT_FONT<span class='macro_popup'>("Monospace 12")</span></span>));</td></tr>
+<tr class="codeline" data-linenumber="546"><td class="num" id="LN546">546</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="547"><td class="num" id="LN547">547</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="548"><td class="num" id="LN548">548</td><td class="line"> <span class='keyword'>case</span> PROP_PALETTE:</td></tr>
+<tr class="codeline" data-linenumber="549"><td class="num" id="LN549">549</td><td class="line"> set_value_from_palette (value, <span class='macro'>DEFAULT_PALETTE<span class='macro_popup'>(terminal_palettes[0])</span></span>, <span class='macro'>TERMINAL_PALETTE_SIZE<span class='macro_popup'>16</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="550"><td class="num" id="LN550">550</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="551"><td class="num" id="LN551">551</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="552"><td class="num" id="LN552">552</td><td class="line"> <span class='keyword'>default</span>:</td></tr>
+<tr class="codeline" data-linenumber="553"><td class="num" id="LN553">553</td><td class="line"> g_param_value_set_default (pspec, value);</td></tr>
+<tr class="codeline" data-linenumber="554"><td class="num" id="LN554">554</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="555"><td class="num" id="LN555">555</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="556"><td class="num" id="LN556">556</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="557"><td class="num" id="LN557">557</td><td class="line"> <span class='keyword'>if</span> (notify)</td></tr>
+<tr class="codeline" data-linenumber="558"><td class="num" id="LN558">558</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="559"><td class="num" id="LN559">559</td><td class="line"> g_object_set_property (<span class='macro'>G_OBJECT (profile)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((profile)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, pspec-&gt;name, value);</td></tr>
+<tr class="codeline" data-linenumber="560"><td class="num" id="LN560">560</td><td class="line"> g_value_unset (value);</td></tr>
+<tr class="codeline" data-linenumber="561"><td class="num" id="LN561">561</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="562"><td class="num" id="LN562">562</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="563"><td class="num" id="LN563">563</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="564"><td class="num" id="LN564">564</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="565"><td class="num" id="LN565">565</td><td class="line">terminal_profile_gsettings_notify_cb (GSettings *settings,</td></tr>
+<tr class="codeline" data-linenumber="566"><td class="num" id="LN566">566</td><td class="line"> gchar *key,</td></tr>
+<tr class="codeline" data-linenumber="567"><td class="num" id="LN567">567</td><td class="line"> gpointer user_data)</td></tr>
+<tr class="codeline" data-linenumber="568"><td class="num" id="LN568">568</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="569"><td class="num" id="LN569">569</td><td class="line"> TerminalProfile *profile = <span class='macro'>TERMINAL_PROFILE (user_data)<span class='macro_popup'>((((TerminalProfile*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((user_data)), ((terminal_profile_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="570"><td class="num" id="LN570">570</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="571"><td class="num" id="LN571">571</td><td class="line"> TerminalProfileClass *klass;</td></tr>
+<tr class="codeline" data-linenumber="572"><td class="num" id="LN572">572</td><td class="line"> GVariant *settings_value;</td></tr>
+<tr class="codeline" data-linenumber="573"><td class="num" id="LN573">573</td><td class="line"> GParamSpec *pspec;</td></tr>
+<tr class="codeline" data-linenumber="574"><td class="num" id="LN574">574</td><td class="line"> GValue value = { 0, };</td></tr>
+<tr class="codeline" data-linenumber="575"><td class="num" id="LN575">575</td><td class="line"> gboolean equal;</td></tr>
+<tr class="codeline" data-linenumber="576"><td class="num" id="LN576">576</td><td class="line"> gboolean force_set = <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="577"><td class="num" id="LN577">577</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="578"><td class="num" id="LN578">578</td><td class="line"> <span class='keyword'>if</span> (!key) <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="579"><td class="num" id="LN579">579</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="580"><td class="num" id="LN580">580</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_PROFILE,<span class='macro_popup'>do { if (0) g_printerr("GSettings notification for key %s [%s]\n"<br>, key, g_settings_is_writable (settings, key) ? "writable" : "LOCKED"<br>); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="581"><td class="num" id="LN581">581</td><td class="line"> <span class='string_literal'><span class='macro'>"GSettings notification for key %s [%s]\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("GSettings notification for key %s [%s]\n"<br>, key, g_settings_is_writable (settings, key) ? "writable" : "LOCKED"<br>); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="582"><td class="num" id="LN582">582</td><td class="line"> <span class='macro'>key,<span class='macro_popup'>do { if (0) g_printerr("GSettings notification for key %s [%s]\n"<br>, key, g_settings_is_writable (settings, key) ? "writable" : "LOCKED"<br>); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="583"><td class="num" id="LN583">583</td><td class="line"> <span class='macro'>g_settings_is_writable (settings, key) ? <span class='string_literal'>"writable"</span> : <span class='string_literal'>"LOCKED"</span>)<span class='macro_popup'>do { if (0) g_printerr("GSettings notification for key %s [%s]\n"<br>, key, g_settings_is_writable (settings, key) ? "writable" : "LOCKED"<br>); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="584"><td class="num" id="LN584">584</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="585"><td class="num" id="LN585">585</td><td class="line"> klass = <span class='macro'>TERMINAL_PROFILE_GET_CLASS (profile)<span class='macro_popup'>((((TerminalProfileClass*) (((GTypeInstance*) ((profile)))-&gt;<br>g_class))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="586"><td class="num" id="LN586">586</td><td class="line"> pspec = g_hash_table_lookup (klass-&gt;gsettings_keys, key);</td></tr>
+<tr class="codeline" data-linenumber="587"><td class="num" id="LN587">587</td><td class="line"> <span class='keyword'>if</span> (!pspec)</td></tr>
+<tr class="codeline" data-linenumber="588"><td class="num" id="LN588">588</td><td class="line"> <span class='keyword'>return</span>; <span class='comment'>/* ignore unknown keys, for future extensibility */</span></td></tr>
+<tr class="codeline" data-linenumber="589"><td class="num" id="LN589">589</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="590"><td class="num" id="LN590">590</td><td class="line"> priv-&gt;locked[pspec-&gt;param_id] = !g_settings_is_writable (settings, key);</td></tr>
+<tr class="codeline" data-linenumber="591"><td class="num" id="LN591">591</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="592"><td class="num" id="LN592">592</td><td class="line"> settings_value = g_settings_get_value (settings, key);</td></tr>
+<tr class="codeline" data-linenumber="593"><td class="num" id="LN593">593</td><td class="line"> <span class='keyword'>if</span> (!settings_value)</td></tr>
+<tr class="codeline" data-linenumber="594"><td class="num" id="LN594">594</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="595"><td class="num" id="LN595">595</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="596"><td class="num" id="LN596">596</td><td class="line"> g_value_init (&amp;value, <span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="597"><td class="num" id="LN597">597</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="598"><td class="num" id="LN598">598</td><td class="line"> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_BOOLEAN (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[2])); gboolean __r<br>; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="599"><td class="num" id="LN599">599</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="600"><td class="num" id="LN600">600</td><td class="line"> <span class='keyword'>if</span> (!g_variant_is_of_type (settings_value, <span class='macro'>G_VARIANT_TYPE_BOOLEAN<span class='macro_popup'>((const GVariantType *) "b")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="601"><td class="num" id="LN601">601</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="602"><td class="num" id="LN602">602</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="603"><td class="num" id="LN603">603</td><td class="line"> g_value_set_boolean (&amp;value, g_variant_get_boolean (settings_value));</td></tr>
+<tr class="codeline" data-linenumber="604"><td class="num" id="LN604">604</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="605"><td class="num" id="LN605">605</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_STRING (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[14])); gboolean __r<br>; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="606"><td class="num" id="LN606">606</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="607"><td class="num" id="LN607">607</td><td class="line"> <span class='keyword'>if</span> (!g_variant_is_of_type (settings_value, <span class='macro'>G_VARIANT_TYPE_STRING<span class='macro_popup'>((const GVariantType *) "s")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="608"><td class="num" id="LN608">608</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="609"><td class="num" id="LN609">609</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="610"><td class="num" id="LN610">610</td><td class="line"> g_value_set_string (&amp;value, g_variant_get_string (settings_value, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>));</td></tr>
+<tr class="codeline" data-linenumber="611"><td class="num" id="LN611">611</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="612"><td class="num" id="LN612">612</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_ENUM (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[10])); gboolean __r<br>; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="613"><td class="num" id="LN613">613</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="614"><td class="num" id="LN614">614</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="615"><td class="num" id="LN615">615</td><td class="line"> <span class='keyword'>if</span> (!g_variant_is_of_type (settings_value, <span class='macro'>G_VARIANT_TYPE_STRING<span class='macro_popup'>((const GVariantType *) "s")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="616"><td class="num" id="LN616">616</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="617"><td class="num" id="LN617">617</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="618"><td class="num" id="LN618">618</td><td class="line"> g_value_set_enum (&amp;value, g_settings_get_enum (settings, key));</td></tr>
+<tr class="codeline" data-linenumber="619"><td class="num" id="LN619">619</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="620"><td class="num" id="LN620">620</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span> == <span class='macro'>GDK_TYPE_RGBA<span class='macro_popup'>(gdk_rgba_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="621"><td class="num" id="LN621">621</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="622"><td class="num" id="LN622">622</td><td class="line"> GdkRGBA color;</td></tr>
+<tr class="codeline" data-linenumber="623"><td class="num" id="LN623">623</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="624"><td class="num" id="LN624">624</td><td class="line"> <span class='keyword'>if</span> (!g_variant_is_of_type (settings_value, <span class='macro'>G_VARIANT_TYPE_STRING<span class='macro_popup'>((const GVariantType *) "s")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="625"><td class="num" id="LN625">625</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="626"><td class="num" id="LN626">626</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="627"><td class="num" id="LN627">627</td><td class="line"> <span class='keyword'>if</span> (!gdk_rgba_parse (&amp;color, g_variant_get_string (settings_value, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)))</td></tr>
+<tr class="codeline" data-linenumber="628"><td class="num" id="LN628">628</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="629"><td class="num" id="LN629">629</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="630"><td class="num" id="LN630">630</td><td class="line"> g_value_set_boxed (&amp;value, &amp;color);</td></tr>
+<tr class="codeline" data-linenumber="631"><td class="num" id="LN631">631</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="632"><td class="num" id="LN632">632</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span> == <span class='macro'>PANGO_TYPE_FONT_DESCRIPTION<span class='macro_popup'>(pango_font_description_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="633"><td class="num" id="LN633">633</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="634"><td class="num" id="LN634">634</td><td class="line"> <span class='keyword'>if</span> (!g_variant_is_of_type (settings_value, <span class='macro'>G_VARIANT_TYPE_STRING<span class='macro_popup'>((const GVariantType *) "s")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="635"><td class="num" id="LN635">635</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="636"><td class="num" id="LN636">636</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="637"><td class="num" id="LN637">637</td><td class="line"> g_value_take_boxed (&amp;value, pango_font_description_from_string (g_variant_get_string (settings_value, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)));</td></tr>
+<tr class="codeline" data-linenumber="638"><td class="num" id="LN638">638</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="639"><td class="num" id="LN639">639</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_DOUBLE (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[13])); gboolean __r<br>; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="640"><td class="num" id="LN640">640</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="641"><td class="num" id="LN641">641</td><td class="line"> <span class='keyword'>if</span> (!g_variant_is_of_type (settings_value, <span class='macro'>G_VARIANT_TYPE_DOUBLE<span class='macro_popup'>((const GVariantType *) "d")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="642"><td class="num" id="LN642">642</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="643"><td class="num" id="LN643">643</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="644"><td class="num" id="LN644">644</td><td class="line"> g_value_set_double (&amp;value, g_variant_get_double (settings_value));</td></tr>
+<tr class="codeline" data-linenumber="645"><td class="num" id="LN645">645</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="646"><td class="num" id="LN646">646</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_INT (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[3])); gboolean __r<br>; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="647"><td class="num" id="LN647">647</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="648"><td class="num" id="LN648">648</td><td class="line"> <span class='keyword'>if</span> (!g_variant_is_of_type (settings_value, <span class='macro'>G_VARIANT_TYPE_INT16<span class='macro_popup'>((const GVariantType *) "n")</span></span>) &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="649"><td class="num" id="LN649">649</td><td class="line"> !g_variant_is_of_type (settings_value, <span class='macro'>G_VARIANT_TYPE_INT32<span class='macro_popup'>((const GVariantType *) "i")</span></span>) &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="650"><td class="num" id="LN650">650</td><td class="line"> !g_variant_is_of_type (settings_value, <span class="mrange"><span class="mrange"><span class='macro'>G_VARIANT_TYPE_INT64<span class='macro_popup'>((const GVariantType *) "x")</span></span></span></span>))</td></tr>
+<tr><td class="num"></td><td class="line"><div id="EndPath" class="msg msgEvent" style="margin-left:60ex; max-width:31em">Casting a non-structure type to a structure type and accessing a field can lead to memory access errors or data corruption</div></td></tr>
+<tr class="codeline" data-linenumber="651"><td class="num" id="LN651">651</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="652"><td class="num" id="LN652">652</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="653"><td class="num" id="LN653">653</td><td class="line"> g_value_set_int (&amp;value, g_settings_get_int(settings, key));</td></tr>
+<tr class="codeline" data-linenumber="654"><td class="num" id="LN654">654</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="655"><td class="num" id="LN655">655</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_VALUE_ARRAY (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[18]) GCC warning "Deprecated pre-processor symbol"<br>
+); gboolean __r; if (!__inst) __r = (0); else if (__inst-&gt;<br>g_class &amp;&amp; __inst-&gt;g_class-&gt;g_type == __t) __r =<br> (!(0)); else __r = g_type_check_instance_is_a (__inst, __t);<br> __r; })))) GCC warning "Deprecated pre-processor symbol"
+</span></span> &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="656"><td class="num" id="LN656">656</td><td class="line"> <span class='macro'>G_PARAM_SPEC_VALUE_TYPE (G_PARAM_SPEC_VALUE_ARRAY (pspec)-&gt;element_spec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((((((GParamSpecValueArray*) (void *) g_type_check_instance_cast<br> ((GTypeInstance*) ((pspec)), ((g_param_spec_types[18]) GCC warning<br> "Deprecated pre-processor symbol"
+))))) GCC warning "Deprecated pre-processor symbol"<br>
+-&gt;element_spec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;<br>value_type)</span></span> == <span class='macro'>GDK_TYPE_RGBA<span class='macro_popup'>(gdk_rgba_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="657"><td class="num" id="LN657">657</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="658"><td class="num" id="LN658">658</td><td class="line"> <span class='keyword'>char</span> **color_strings;</td></tr>
+<tr class="codeline" data-linenumber="659"><td class="num" id="LN659">659</td><td class="line"> GdkRGBA *colors;</td></tr>
+<tr class="codeline" data-linenumber="660"><td class="num" id="LN660">660</td><td class="line"> <span class='keyword'>int</span> n_colors, i;</td></tr>
+<tr class="codeline" data-linenumber="661"><td class="num" id="LN661">661</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="662"><td class="num" id="LN662">662</td><td class="line"> <span class='keyword'>if</span> (!g_variant_is_of_type (settings_value, <span class='macro'>G_VARIANT_TYPE_STRING<span class='macro_popup'>((const GVariantType *) "s")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="663"><td class="num" id="LN663">663</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="664"><td class="num" id="LN664">664</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="665"><td class="num" id="LN665">665</td><td class="line"> color_strings = g_strsplit (g_variant_get_string (settings_value, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>), <span class='string_literal'>":"</span>, -1);</td></tr>
+<tr class="codeline" data-linenumber="666"><td class="num" id="LN666">666</td><td class="line"> <span class='keyword'>if</span> (!color_strings)</td></tr>
+<tr class="codeline" data-linenumber="667"><td class="num" id="LN667">667</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="668"><td class="num" id="LN668">668</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="669"><td class="num" id="LN669">669</td><td class="line"> n_colors = g_strv_length (color_strings);</td></tr>
+<tr class="codeline" data-linenumber="670"><td class="num" id="LN670">670</td><td class="line"> colors = <span class='macro'>g_new0 (GdkRGBA, n_colors)<span class='macro_popup'>((GdkRGBA *) g_malloc0_n ((n_colors), sizeof (GdkRGBA)))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="671"><td class="num" id="LN671">671</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; n_colors; ++i)</td></tr>
+<tr class="codeline" data-linenumber="672"><td class="num" id="LN672">672</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="673"><td class="num" id="LN673">673</td><td class="line"> <span class='keyword'>if</span> (!gdk_rgba_parse (&amp;colors[i], color_strings[i]))</td></tr>
+<tr class="codeline" data-linenumber="674"><td class="num" id="LN674">674</td><td class="line"> <span class='keyword'>continue</span>; <span class='comment'>/* ignore errors */</span></td></tr>
+<tr class="codeline" data-linenumber="675"><td class="num" id="LN675">675</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="676"><td class="num" id="LN676">676</td><td class="line"> g_strfreev (color_strings);</td></tr>
+<tr class="codeline" data-linenumber="677"><td class="num" id="LN677">677</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="678"><td class="num" id="LN678">678</td><td class="line"> <span class='comment'>/* We continue even with a palette size != TERMINAL_PALETTE_SIZE,</span></td></tr>
+<tr class="codeline" data-linenumber="679"><td class="num" id="LN679">679</td><td class="line"> <span class='comment'>* so we can change the palette size in future versions without</span></td></tr>
+<tr class="codeline" data-linenumber="680"><td class="num" id="LN680">680</td><td class="line"> <span class='comment'>* causing too many issues.</span></td></tr>
+<tr class="codeline" data-linenumber="681"><td class="num" id="LN681">681</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="682"><td class="num" id="LN682">682</td><td class="line"> set_value_from_palette (&amp;value, colors, n_colors);</td></tr>
+<tr class="codeline" data-linenumber="683"><td class="num" id="LN683">683</td><td class="line"> g_free (colors);</td></tr>
+<tr class="codeline" data-linenumber="684"><td class="num" id="LN684">684</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="685"><td class="num" id="LN685">685</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="686"><td class="num" id="LN686">686</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="687"><td class="num" id="LN687">687</td><td class="line"> g_printerr (<span class='string_literal'>"Unhandled value type %s of pspec %s\n"</span>, g_type_name (<span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span>), pspec-&gt;name);</td></tr>
+<tr class="codeline" data-linenumber="688"><td class="num" id="LN688">688</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="689"><td class="num" id="LN689">689</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="690"><td class="num" id="LN690">690</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="691"><td class="num" id="LN691">691</td><td class="line"> <span class='keyword'>if</span> (g_param_value_validate (pspec, &amp;value))</td></tr>
+<tr class="codeline" data-linenumber="692"><td class="num" id="LN692">692</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="693"><td class="num" id="LN693">693</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_PROFILE,<span class='macro_popup'>do { if (0) g_printerr("Invalid value in GSettings for key %s was changed to comply with pspec %s\n"<br>, key, pspec-&gt;name); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="694"><td class="num" id="LN694">694</td><td class="line"> <span class='string_literal'><span class='macro'>"Invalid value in GSettings for key %s was changed to comply with pspec %s\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("Invalid value in GSettings for key %s was changed to comply with pspec %s\n"<br>, key, pspec-&gt;name); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="695"><td class="num" id="LN695">695</td><td class="line"> <span class='macro'>key, pspec-&gt;name)<span class='macro_popup'>do { if (0) g_printerr("Invalid value in GSettings for key %s was changed to comply with pspec %s\n"<br>, key, pspec-&gt;name); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="696"><td class="num" id="LN696">696</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="697"><td class="num" id="LN697">697</td><td class="line"> force_set = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="698"><td class="num" id="LN698">698</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="699"><td class="num" id="LN699">699</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="700"><td class="num" id="LN700">700</td><td class="line"> <span class='comment'>/* Only set the property if the value is different than our current value,</span></td></tr>
+<tr class="codeline" data-linenumber="701"><td class="num" id="LN701">701</td><td class="line"> <span class='comment'>* so we don't go into an infinite loop.</span></td></tr>
+<tr class="codeline" data-linenumber="702"><td class="num" id="LN702">702</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="703"><td class="num" id="LN703">703</td><td class="line"> equal = values_equal (pspec, &amp;value, g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id));</td></tr>
+<tr class="codeline" data-linenumber="704"><td class="num" id="LN704">704</td><td class="line"><span class='directive'>#ifdef MATE_ENABLE_DEBUG</span></td></tr>
+<tr class="codeline" data-linenumber="705"><td class="num" id="LN705">705</td><td class="line"> <span class='macro'>_TERMINAL_DEBUG_IF (TERMINAL_DEBUG_PROFILE)<span class='macro_popup'>if (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="706"><td class="num" id="LN706">706</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="707"><td class="num" id="LN707">707</td><td class="line"> <span class='keyword'>if</span> (!equal)</td></tr>
+<tr class="codeline" data-linenumber="708"><td class="num" id="LN708">708</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_PROFILE,<span class='macro_popup'>do { if (0) g_printerr("Setting property %s to a different value\n"<br> " now: %s\n" " new: %s\n", pspec-&gt;name, g_strdup_value_contents<br> (g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id<br>)), g_strdup_value_contents (&amp;value)); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="709"><td class="num" id="LN709">709</td><td class="line"> <span class='string_literal'><span class='macro'>"Setting property %s to a different value\n"<span class='macro_popup'>do { if (0) g_printerr("Setting property %s to a different value\n"<br> " now: %s\n" " new: %s\n", pspec-&gt;name, g_strdup_value_contents<br> (g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id<br>)), g_strdup_value_contents (&amp;value)); } while (0)</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="710"><td class="num" id="LN710">710</td><td class="line"> <span class='string_literal'><span class='macro'>" now: %s\n"<span class='macro_popup'>do { if (0) g_printerr("Setting property %s to a different value\n"<br> " now: %s\n" " new: %s\n", pspec-&gt;name, g_strdup_value_contents<br> (g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id<br>)), g_strdup_value_contents (&amp;value)); } while (0)</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="711"><td class="num" id="LN711">711</td><td class="line"> <span class='string_literal'><span class='macro'>" new: %s\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("Setting property %s to a different value\n"<br> " now: %s\n" " new: %s\n", pspec-&gt;name, g_strdup_value_contents<br> (g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id<br>)), g_strdup_value_contents (&amp;value)); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="712"><td class="num" id="LN712">712</td><td class="line"> <span class='macro'>pspec-&gt;name,<span class='macro_popup'>do { if (0) g_printerr("Setting property %s to a different value\n"<br> " now: %s\n" " new: %s\n", pspec-&gt;name, g_strdup_value_contents<br> (g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id<br>)), g_strdup_value_contents (&amp;value)); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="713"><td class="num" id="LN713">713</td><td class="line"> <span class='macro'>g_strdup_value_contents (g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id)),<span class='macro_popup'>do { if (0) g_printerr("Setting property %s to a different value\n"<br> " now: %s\n" " new: %s\n", pspec-&gt;name, g_strdup_value_contents<br> (g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id<br>)), g_strdup_value_contents (&amp;value)); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="714"><td class="num" id="LN714">714</td><td class="line"> <span class='macro'>g_strdup_value_contents (&amp;value))<span class='macro_popup'>do { if (0) g_printerr("Setting property %s to a different value\n"<br> " now: %s\n" " new: %s\n", pspec-&gt;name, g_strdup_value_contents<br> (g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id<br>)), g_strdup_value_contents (&amp;value)); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="715"><td class="num" id="LN715">715</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="716"><td class="num" id="LN716">716</td><td class="line"><span class='directive'>#endif</span></td></tr>
+<tr class="codeline" data-linenumber="717"><td class="num" id="LN717">717</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="718"><td class="num" id="LN718">718</td><td class="line"> <span class='keyword'>if</span> (!equal || force_set)</td></tr>
+<tr class="codeline" data-linenumber="719"><td class="num" id="LN719">719</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="720"><td class="num" id="LN720">720</td><td class="line"> priv-&gt;gsettings_notification_pspec = pspec;</td></tr>
+<tr class="codeline" data-linenumber="721"><td class="num" id="LN721">721</td><td class="line"> g_object_set_property (<span class='macro'>G_OBJECT (profile)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((profile)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, pspec-&gt;name, &amp;value);</td></tr>
+<tr class="codeline" data-linenumber="722"><td class="num" id="LN722">722</td><td class="line"> priv-&gt;gsettings_notification_pspec = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="723"><td class="num" id="LN723">723</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="724"><td class="num" id="LN724">724</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="725"><td class="num" id="LN725">725</td><td class="line">out:</td></tr>
+<tr class="codeline" data-linenumber="726"><td class="num" id="LN726">726</td><td class="line"> <span class='comment'>/* FIXME: if we arrive here through goto in the error cases,</span></td></tr>
+<tr class="codeline" data-linenumber="727"><td class="num" id="LN727">727</td><td class="line"> <span class='comment'>* should we maybe reset the property to its default value?</span></td></tr>
+<tr class="codeline" data-linenumber="728"><td class="num" id="LN728">728</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="729"><td class="num" id="LN729">729</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="730"><td class="num" id="LN730">730</td><td class="line"> g_value_unset (&amp;value);</td></tr>
+<tr class="codeline" data-linenumber="731"><td class="num" id="LN731">731</td><td class="line"> g_variant_unref (settings_value);</td></tr>
+<tr class="codeline" data-linenumber="732"><td class="num" id="LN732">732</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="733"><td class="num" id="LN733">733</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="734"><td class="num" id="LN734">734</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="735"><td class="num" id="LN735">735</td><td class="line">terminal_profile_gsettings_changeset_add (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="736"><td class="num" id="LN736">736</td><td class="line"> GSettings *changeset,</td></tr>
+<tr class="codeline" data-linenumber="737"><td class="num" id="LN737">737</td><td class="line"> GParamSpec *pspec)</td></tr>
+<tr class="codeline" data-linenumber="738"><td class="num" id="LN738">738</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="739"><td class="num" id="LN739">739</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="740"><td class="num" id="LN740">740</td><td class="line"> <span class='keyword'>char</span> *key;</td></tr>
+<tr class="codeline" data-linenumber="741"><td class="num" id="LN741">741</td><td class="line"> <span class='keyword'>const</span> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="742"><td class="num" id="LN742">742</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="743"><td class="num" id="LN743">743</td><td class="line"> <span class='comment'>/* FIXME: do this? */</span></td></tr>
+<tr class="codeline" data-linenumber="744"><td class="num" id="LN744">744</td><td class="line"><span class='directive'>#if 0</span></td></tr>
+<tr class="codeline" data-linenumber="745"><td class="num" id="LN745">745</td><td class="line"> <span class='keyword'>if</span> (priv-&gt;locked[pspec-&gt;param_id])</td></tr>
+<tr class="codeline" data-linenumber="746"><td class="num" id="LN746">746</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="747"><td class="num" id="LN747">747</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="748"><td class="num" id="LN748">748</td><td class="line"> <span class='keyword'>if</span> (!g_settings_is_writable (priv-&gt;settings, gsettings_key, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="749"><td class="num" id="LN749">749</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="750"><td class="num" id="LN750">750</td><td class="line"><span class='directive'>#endif</span></td></tr>
+<tr class="codeline" data-linenumber="751"><td class="num" id="LN751">751</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="752"><td class="num" id="LN752">752</td><td class="line"> key = g_param_spec_get_qdata (pspec, gsettings_key_quark);</td></tr>
+<tr class="codeline" data-linenumber="753"><td class="num" id="LN753">753</td><td class="line"> <span class='keyword'>if</span> (!key)</td></tr>
+<tr class="codeline" data-linenumber="754"><td class="num" id="LN754">754</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="755"><td class="num" id="LN755">755</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="756"><td class="num" id="LN756">756</td><td class="line"> value = g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id);</td></tr>
+<tr class="codeline" data-linenumber="757"><td class="num" id="LN757">757</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="758"><td class="num" id="LN758">758</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_PROFILE,<span class='macro_popup'>do { if (0) g_printerr("Adding pspec %s with value %s to the GSettings changeset\n"<br>, pspec-&gt;name, g_strdup_value_contents (value)); } while (<br>0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="759"><td class="num" id="LN759">759</td><td class="line"> <span class='string_literal'><span class='macro'>"Adding pspec %s with value %s to the GSettings changeset\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("Adding pspec %s with value %s to the GSettings changeset\n"<br>, pspec-&gt;name, g_strdup_value_contents (value)); } while (<br>0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="760"><td class="num" id="LN760">760</td><td class="line"> <span class='macro'>pspec-&gt;name, g_strdup_value_contents (value))<span class='macro_popup'>do { if (0) g_printerr("Adding pspec %s with value %s to the GSettings changeset\n"<br>, pspec-&gt;name, g_strdup_value_contents (value)); } while (<br>0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="761"><td class="num" id="LN761">761</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="762"><td class="num" id="LN762">762</td><td class="line"> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_BOOLEAN (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[2])); gboolean __r<br>; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="763"><td class="num" id="LN763">763</td><td class="line"> g_settings_set_boolean (changeset, key, g_value_get_boolean (value));</td></tr>
+<tr class="codeline" data-linenumber="764"><td class="num" id="LN764">764</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_STRING (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[14])); gboolean __r<br>; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="765"><td class="num" id="LN765">765</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="766"><td class="num" id="LN766">766</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *str;</td></tr>
+<tr class="codeline" data-linenumber="767"><td class="num" id="LN767">767</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="768"><td class="num" id="LN768">768</td><td class="line"> str = g_value_get_string (value);</td></tr>
+<tr class="codeline" data-linenumber="769"><td class="num" id="LN769">769</td><td class="line"> g_settings_set_string (changeset, key, str ? str : <span class='string_literal'>""</span>);</td></tr>
+<tr class="codeline" data-linenumber="770"><td class="num" id="LN770">770</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="771"><td class="num" id="LN771">771</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_ENUM (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[10])); gboolean __r<br>; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="772"><td class="num" id="LN772">772</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="773"><td class="num" id="LN773">773</td><td class="line"> <span class='keyword'>const</span> GEnumValue *eval;</td></tr>
+<tr class="codeline" data-linenumber="774"><td class="num" id="LN774">774</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="775"><td class="num" id="LN775">775</td><td class="line"> eval = g_enum_get_value (<span class='macro'>G_PARAM_SPEC_ENUM (pspec)<span class='macro_popup'>((((GParamSpecEnum*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), ((g_param_spec_types[10]))))))</span></span>-&gt;enum_class, g_value_get_enum (value));</td></tr>
+<tr class="codeline" data-linenumber="776"><td class="num" id="LN776">776</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="777"><td class="num" id="LN777">777</td><td class="line"> g_settings_set_enum (changeset, key, eval-&gt;value);</td></tr>
+<tr class="codeline" data-linenumber="778"><td class="num" id="LN778">778</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="779"><td class="num" id="LN779">779</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span> == <span class='macro'>GDK_TYPE_RGBA<span class='macro_popup'>(gdk_rgba_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="780"><td class="num" id="LN780">780</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="781"><td class="num" id="LN781">781</td><td class="line"> GdkRGBA *color;</td></tr>
+<tr class="codeline" data-linenumber="782"><td class="num" id="LN782">782</td><td class="line"> <span class='keyword'>char</span> str[16];</td></tr>
+<tr class="codeline" data-linenumber="783"><td class="num" id="LN783">783</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="784"><td class="num" id="LN784">784</td><td class="line"> color = g_value_get_boxed (value);</td></tr>
+<tr class="codeline" data-linenumber="785"><td class="num" id="LN785">785</td><td class="line"> <span class='keyword'>if</span> (!color)</td></tr>
+<tr class="codeline" data-linenumber="786"><td class="num" id="LN786">786</td><td class="line"> <span class='keyword'>goto</span> cleanup;</td></tr>
+<tr class="codeline" data-linenumber="787"><td class="num" id="LN787">787</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="788"><td class="num" id="LN788">788</td><td class="line"> g_snprintf (str, <span class='keyword'>sizeof</span> (str),</td></tr>
+<tr class="codeline" data-linenumber="789"><td class="num" id="LN789">789</td><td class="line"> <span class='string_literal'>"#%04X%04X%04X"</span>,</td></tr>
+<tr class="codeline" data-linenumber="790"><td class="num" id="LN790">790</td><td class="line"> (guint) (color-&gt;red * 65535),</td></tr>
+<tr class="codeline" data-linenumber="791"><td class="num" id="LN791">791</td><td class="line"> (guint) (color-&gt;green * 65535),</td></tr>
+<tr class="codeline" data-linenumber="792"><td class="num" id="LN792">792</td><td class="line"> (guint) (color-&gt;blue * 65535));</td></tr>
+<tr class="codeline" data-linenumber="793"><td class="num" id="LN793">793</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="794"><td class="num" id="LN794">794</td><td class="line"> g_settings_set_string (changeset, key, str);</td></tr>
+<tr class="codeline" data-linenumber="795"><td class="num" id="LN795">795</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="796"><td class="num" id="LN796">796</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span> == <span class='macro'>PANGO_TYPE_FONT_DESCRIPTION<span class='macro_popup'>(pango_font_description_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="797"><td class="num" id="LN797">797</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="798"><td class="num" id="LN798">798</td><td class="line"> PangoFontDescription *font_desc;</td></tr>
+<tr class="codeline" data-linenumber="799"><td class="num" id="LN799">799</td><td class="line"> <span class='keyword'>char</span> *font;</td></tr>
+<tr class="codeline" data-linenumber="800"><td class="num" id="LN800">800</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="801"><td class="num" id="LN801">801</td><td class="line"> font_desc = g_value_get_boxed (value);</td></tr>
+<tr class="codeline" data-linenumber="802"><td class="num" id="LN802">802</td><td class="line"> <span class='keyword'>if</span> (!font_desc)</td></tr>
+<tr class="codeline" data-linenumber="803"><td class="num" id="LN803">803</td><td class="line"> <span class='keyword'>goto</span> cleanup;</td></tr>
+<tr class="codeline" data-linenumber="804"><td class="num" id="LN804">804</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="805"><td class="num" id="LN805">805</td><td class="line"> font = pango_font_description_to_string (font_desc);</td></tr>
+<tr class="codeline" data-linenumber="806"><td class="num" id="LN806">806</td><td class="line"> g_settings_set_string (changeset, key, font);</td></tr>
+<tr class="codeline" data-linenumber="807"><td class="num" id="LN807">807</td><td class="line"> g_free (font);</td></tr>
+<tr class="codeline" data-linenumber="808"><td class="num" id="LN808">808</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="809"><td class="num" id="LN809">809</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_DOUBLE (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[13])); gboolean __r<br>; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="810"><td class="num" id="LN810">810</td><td class="line"> g_settings_set_double (changeset, key, g_value_get_double (value));</td></tr>
+<tr class="codeline" data-linenumber="811"><td class="num" id="LN811">811</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_INT (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[3])); gboolean __r<br>; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="812"><td class="num" id="LN812">812</td><td class="line"> g_settings_set_int (changeset, key, g_value_get_int (value));</td></tr>
+<tr class="codeline" data-linenumber="813"><td class="num" id="LN813">813</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_VALUE_ARRAY (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[18]) GCC warning "Deprecated pre-processor symbol"<br>
+); gboolean __r; if (!__inst) __r = (0); else if (__inst-&gt;<br>g_class &amp;&amp; __inst-&gt;g_class-&gt;g_type == __t) __r =<br> (!(0)); else __r = g_type_check_instance_is_a (__inst, __t);<br> __r; })))) GCC warning "Deprecated pre-processor symbol"
+</span></span> &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="814"><td class="num" id="LN814">814</td><td class="line"> <span class='macro'>G_PARAM_SPEC_VALUE_TYPE (G_PARAM_SPEC_VALUE_ARRAY (pspec)-&gt;element_spec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((((((GParamSpecValueArray*) (void *) g_type_check_instance_cast<br> ((GTypeInstance*) ((pspec)), ((g_param_spec_types[18]) GCC warning<br> "Deprecated pre-processor symbol"
+))))) GCC warning "Deprecated pre-processor symbol"<br>
+-&gt;element_spec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;<br>value_type)</span></span> == <span class='macro'>GDK_TYPE_RGBA<span class='macro_popup'>(gdk_rgba_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="815"><td class="num" id="LN815">815</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="816"><td class="num" id="LN816">816</td><td class="line"> GValueArray *array;</td></tr>
+<tr class="codeline" data-linenumber="817"><td class="num" id="LN817">817</td><td class="line"> GString *string;</td></tr>
+<tr class="codeline" data-linenumber="818"><td class="num" id="LN818">818</td><td class="line"> guint n_colors, i;</td></tr>
+<tr class="codeline" data-linenumber="819"><td class="num" id="LN819">819</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="820"><td class="num" id="LN820">820</td><td class="line"> <span class='comment'>/* We need to do this ourselves, because the gtk_color_selection_palette_to_string</span></td></tr>
+<tr class="codeline" data-linenumber="821"><td class="num" id="LN821">821</td><td class="line"> <span class='comment'>* does not carry all the bytes, and xterm's palette is messed up...</span></td></tr>
+<tr class="codeline" data-linenumber="822"><td class="num" id="LN822">822</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="823"><td class="num" id="LN823">823</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="824"><td class="num" id="LN824">824</td><td class="line"> array = g_value_get_boxed (value);</td></tr>
+<tr class="codeline" data-linenumber="825"><td class="num" id="LN825">825</td><td class="line"> <span class='keyword'>if</span> (!array)</td></tr>
+<tr class="codeline" data-linenumber="826"><td class="num" id="LN826">826</td><td class="line"> <span class='keyword'>goto</span> cleanup;</td></tr>
+<tr class="codeline" data-linenumber="827"><td class="num" id="LN827">827</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="828"><td class="num" id="LN828">828</td><td class="line"> n_colors = array-&gt;n_values;</td></tr>
+<tr class="codeline" data-linenumber="829"><td class="num" id="LN829">829</td><td class="line"> string = g_string_sized_new (n_colors * (1 <span class='comment'>/* # */</span> + 3 * 4) + n_colors <span class='comment'>/* : separators and terminating \0 */</span>);</td></tr>
+<tr class="codeline" data-linenumber="830"><td class="num" id="LN830">830</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; n_colors; ++i)</td></tr>
+<tr class="codeline" data-linenumber="831"><td class="num" id="LN831">831</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="832"><td class="num" id="LN832">832</td><td class="line"> GdkRGBA *color;</td></tr>
+<tr class="codeline" data-linenumber="833"><td class="num" id="LN833">833</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="834"><td class="num" id="LN834">834</td><td class="line"> <span class='keyword'>if</span> (i &gt; 0)</td></tr>
+<tr class="codeline" data-linenumber="835"><td class="num" id="LN835">835</td><td class="line"> <span class='macro'>g_string_append_c (string, ':')<span class='macro_popup'>g_string_append_c_inline (string, ':')</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="836"><td class="num" id="LN836">836</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="837"><td class="num" id="LN837">837</td><td class="line"> color = g_value_get_boxed (g_value_array_get_nth (array, i));</td></tr>
+<tr class="codeline" data-linenumber="838"><td class="num" id="LN838">838</td><td class="line"> <span class='keyword'>if</span> (!color)</td></tr>
+<tr class="codeline" data-linenumber="839"><td class="num" id="LN839">839</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="840"><td class="num" id="LN840">840</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="841"><td class="num" id="LN841">841</td><td class="line"> g_string_append_printf (string,</td></tr>
+<tr class="codeline" data-linenumber="842"><td class="num" id="LN842">842</td><td class="line"> <span class='string_literal'>"#%04X%04X%04X"</span>,</td></tr>
+<tr class="codeline" data-linenumber="843"><td class="num" id="LN843">843</td><td class="line"> (guint) (color-&gt;red * 65535),</td></tr>
+<tr class="codeline" data-linenumber="844"><td class="num" id="LN844">844</td><td class="line"> (guint) (color-&gt;green * 65535),</td></tr>
+<tr class="codeline" data-linenumber="845"><td class="num" id="LN845">845</td><td class="line"> (guint) (color-&gt;blue * 65535));</td></tr>
+<tr class="codeline" data-linenumber="846"><td class="num" id="LN846">846</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="847"><td class="num" id="LN847">847</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="848"><td class="num" id="LN848">848</td><td class="line"> g_settings_set_string (changeset, key, string-&gt;str);</td></tr>
+<tr class="codeline" data-linenumber="849"><td class="num" id="LN849">849</td><td class="line"> <span class='macro'>g_string_free (string, TRUE)<span class='macro_popup'>(__builtin_constant_p ((!(0))) ? (((!(0))) ? (g_string_free) (<br>(string), ((!(0)))) : g_string_free_and_steal (string)) : (g_string_free<br>) ((string), ((!(0)))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="850"><td class="num" id="LN850">850</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="851"><td class="num" id="LN851">851</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="852"><td class="num" id="LN852">852</td><td class="line"> g_printerr (<span class='string_literal'>"Unhandled value type %s of pspec %s\n"</span>, g_type_name (<span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span>), pspec-&gt;name);</td></tr>
+<tr class="codeline" data-linenumber="853"><td class="num" id="LN853">853</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="854"><td class="num" id="LN854">854</td><td class="line">cleanup:</td></tr>
+<tr class="codeline" data-linenumber="855"><td class="num" id="LN855">855</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="856"><td class="num" id="LN856">856</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="857"><td class="num" id="LN857">857</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="858"><td class="num" id="LN858">858</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="859"><td class="num" id="LN859">859</td><td class="line">terminal_profile_save (TerminalProfile *profile)</td></tr>
+<tr class="codeline" data-linenumber="860"><td class="num" id="LN860">860</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="861"><td class="num" id="LN861">861</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="862"><td class="num" id="LN862">862</td><td class="line"> GSettings *changeset;</td></tr>
+<tr class="codeline" data-linenumber="863"><td class="num" id="LN863">863</td><td class="line"> GSList *l;</td></tr>
+<tr class="codeline" data-linenumber="864"><td class="num" id="LN864">864</td><td class="line"> gchar *concat;</td></tr>
+<tr class="codeline" data-linenumber="865"><td class="num" id="LN865">865</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="866"><td class="num" id="LN866">866</td><td class="line"> priv-&gt;save_idle_id = 0;</td></tr>
+<tr class="codeline" data-linenumber="867"><td class="num" id="LN867">867</td><td class="line"> concat = g_strconcat (<span class='macro'>CONF_PROFILE_PREFIX<span class='macro_popup'>"/org/mate/terminal/profiles/"</span></span>, priv-&gt;profile_dir,<span class='string_literal'>"/"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="868"><td class="num" id="LN868">868</td><td class="line"> changeset = g_settings_new_with_path (<span class='macro'>CONF_PROFILE_SCHEMA<span class='macro_popup'>"org.mate.terminal" ".profile"</span></span>, concat);</td></tr>
+<tr class="codeline" data-linenumber="869"><td class="num" id="LN869">869</td><td class="line"> g_free (concat);</td></tr>
+<tr class="codeline" data-linenumber="870"><td class="num" id="LN870">870</td><td class="line"> g_settings_delay (changeset);</td></tr>
+<tr class="codeline" data-linenumber="871"><td class="num" id="LN871">871</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="872"><td class="num" id="LN872">872</td><td class="line"> <span class='keyword'>for</span> (l = priv-&gt;dirty_pspecs; l != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; l = l-&gt;next)</td></tr>
+<tr class="codeline" data-linenumber="873"><td class="num" id="LN873">873</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="874"><td class="num" id="LN874">874</td><td class="line"> GParamSpec *pspec = (GParamSpec *) l-&gt;data;</td></tr>
+<tr class="codeline" data-linenumber="875"><td class="num" id="LN875">875</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="876"><td class="num" id="LN876">876</td><td class="line"> <span class='keyword'>if</span> (pspec-&gt;owner_type != <span class='macro'>TERMINAL_TYPE_PROFILE<span class='macro_popup'>(terminal_profile_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="877"><td class="num" id="LN877">877</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="878"><td class="num" id="LN878">878</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="879"><td class="num" id="LN879">879</td><td class="line"> <span class='keyword'>if</span> ((pspec-&gt;flags &amp; G_PARAM_WRITABLE) == 0)</td></tr>
+<tr class="codeline" data-linenumber="880"><td class="num" id="LN880">880</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="881"><td class="num" id="LN881">881</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="882"><td class="num" id="LN882">882</td><td class="line"> terminal_profile_gsettings_changeset_add (profile, changeset, pspec);</td></tr>
+<tr class="codeline" data-linenumber="883"><td class="num" id="LN883">883</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="884"><td class="num" id="LN884">884</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="885"><td class="num" id="LN885">885</td><td class="line"> g_slist_free (priv-&gt;dirty_pspecs);</td></tr>
+<tr class="codeline" data-linenumber="886"><td class="num" id="LN886">886</td><td class="line"> priv-&gt;dirty_pspecs = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="887"><td class="num" id="LN887">887</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="888"><td class="num" id="LN888">888</td><td class="line"> g_settings_apply (changeset);</td></tr>
+<tr class="codeline" data-linenumber="889"><td class="num" id="LN889">889</td><td class="line"> g_object_unref (changeset);</td></tr>
+<tr class="codeline" data-linenumber="890"><td class="num" id="LN890">890</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="891"><td class="num" id="LN891">891</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="892"><td class="num" id="LN892">892</td><td class="line"><span class='keyword'>static</span> gboolean</td></tr>
+<tr class="codeline" data-linenumber="893"><td class="num" id="LN893">893</td><td class="line">terminal_profile_save_idle_cb (TerminalProfile *profile)</td></tr>
+<tr class="codeline" data-linenumber="894"><td class="num" id="LN894">894</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="895"><td class="num" id="LN895">895</td><td class="line"> terminal_profile_save (profile);</td></tr>
+<tr class="codeline" data-linenumber="896"><td class="num" id="LN896">896</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="897"><td class="num" id="LN897">897</td><td class="line"> <span class='comment'>/* don't run again */</span></td></tr>
+<tr class="codeline" data-linenumber="898"><td class="num" id="LN898">898</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="899"><td class="num" id="LN899">899</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="900"><td class="num" id="LN900">900</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="901"><td class="num" id="LN901">901</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="902"><td class="num" id="LN902">902</td><td class="line">terminal_profile_schedule_save (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="903"><td class="num" id="LN903">903</td><td class="line"> GParamSpec *pspec)</td></tr>
+<tr class="codeline" data-linenumber="904"><td class="num" id="LN904">904</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="905"><td class="num" id="LN905">905</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="906"><td class="num" id="LN906">906</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="907"><td class="num" id="LN907">907</td><td class="line"> <span class='macro'>g_assert (pspec != NULL)<span class='macro_popup'>do { if (pspec != ((void*)0)) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-profile.c", 907, ((const char*) (__func__<br>)), "pspec != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="908"><td class="num" id="LN908">908</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="909"><td class="num" id="LN909">909</td><td class="line"> <span class='keyword'>if</span> (!g_slist_find (priv-&gt;dirty_pspecs, pspec))</td></tr>
+<tr class="codeline" data-linenumber="910"><td class="num" id="LN910">910</td><td class="line"> priv-&gt;dirty_pspecs = g_slist_prepend (priv-&gt;dirty_pspecs, pspec);</td></tr>
+<tr class="codeline" data-linenumber="911"><td class="num" id="LN911">911</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="912"><td class="num" id="LN912">912</td><td class="line"> <span class='keyword'>if</span> (priv-&gt;save_idle_id != 0)</td></tr>
+<tr class="codeline" data-linenumber="913"><td class="num" id="LN913">913</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="914"><td class="num" id="LN914">914</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="915"><td class="num" id="LN915">915</td><td class="line"> priv-&gt;save_idle_id = g_idle_add ((GSourceFunc) terminal_profile_save_idle_cb, profile);</td></tr>
+<tr class="codeline" data-linenumber="916"><td class="num" id="LN916">916</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="917"><td class="num" id="LN917">917</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="918"><td class="num" id="LN918">918</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="919"><td class="num" id="LN919">919</td><td class="line">terminal_profile_init (TerminalProfile *profile)</td></tr>
+<tr class="codeline" data-linenumber="920"><td class="num" id="LN920">920</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="921"><td class="num" id="LN921">921</td><td class="line"> TerminalProfilePrivate *priv;</td></tr>
+<tr class="codeline" data-linenumber="922"><td class="num" id="LN922">922</td><td class="line"> GObjectClass *object_class;</td></tr>
+<tr class="codeline" data-linenumber="923"><td class="num" id="LN923">923</td><td class="line"> GParamSpec **pspecs;</td></tr>
+<tr class="codeline" data-linenumber="924"><td class="num" id="LN924">924</td><td class="line"> guint n_pspecs, i;</td></tr>
+<tr class="codeline" data-linenumber="925"><td class="num" id="LN925">925</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="926"><td class="num" id="LN926">926</td><td class="line"> priv = profile-&gt;priv = terminal_profile_get_instance_private (profile);</td></tr>
+<tr class="codeline" data-linenumber="927"><td class="num" id="LN927">927</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="928"><td class="num" id="LN928">928</td><td class="line"> priv-&gt;gsettings_notification_pspec = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="929"><td class="num" id="LN929">929</td><td class="line"> priv-&gt;locked = <span class='macro'>g_new0 (gboolean, LAST_PROP)<span class='macro_popup'>((gboolean *) g_malloc0_n ((LAST_PROP), sizeof (gboolean)))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="930"><td class="num" id="LN930">930</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="931"><td class="num" id="LN931">931</td><td class="line"> priv-&gt;properties = g_value_array_new (LAST_PROP);</td></tr>
+<tr class="codeline" data-linenumber="932"><td class="num" id="LN932">932</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; LAST_PROP; ++i)</td></tr>
+<tr class="codeline" data-linenumber="933"><td class="num" id="LN933">933</td><td class="line"> g_value_array_append (priv-&gt;properties, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="934"><td class="num" id="LN934">934</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="935"><td class="num" id="LN935">935</td><td class="line"> pspecs = g_object_class_list_properties (<span class='macro'>G_OBJECT_CLASS (TERMINAL_PROFILE_GET_CLASS (profile))<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((((((TerminalProfileClass*) (((GTypeInstance*) ((profile)<br>))-&gt;g_class)))))), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, &amp;n_pspecs);</td></tr>
+<tr class="codeline" data-linenumber="936"><td class="num" id="LN936">936</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; n_pspecs; ++i)</td></tr>
+<tr class="codeline" data-linenumber="937"><td class="num" id="LN937">937</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="938"><td class="num" id="LN938">938</td><td class="line"> GParamSpec *pspec = pspecs[i];</td></tr>
+<tr class="codeline" data-linenumber="939"><td class="num" id="LN939">939</td><td class="line"> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="940"><td class="num" id="LN940">940</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="941"><td class="num" id="LN941">941</td><td class="line"> <span class='keyword'>if</span> (pspec-&gt;owner_type != <span class='macro'>TERMINAL_TYPE_PROFILE<span class='macro_popup'>(terminal_profile_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="942"><td class="num" id="LN942">942</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="943"><td class="num" id="LN943">943</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="944"><td class="num" id="LN944">944</td><td class="line"> <span class='macro'>g_assert (pspec-&gt;param_id &lt; LAST_PROP)<span class='macro_popup'>do { if (pspec-&gt;param_id &lt; LAST_PROP) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-profile.c", 944, ((const char*) (__func__<br>)), "pspec-&gt;param_id &lt; LAST_PROP"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="945"><td class="num" id="LN945">945</td><td class="line"> value = g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id);</td></tr>
+<tr class="codeline" data-linenumber="946"><td class="num" id="LN946">946</td><td class="line"> g_value_init (value, pspec-&gt;value_type);</td></tr>
+<tr class="codeline" data-linenumber="947"><td class="num" id="LN947">947</td><td class="line"> g_param_value_set_default (pspec, value);</td></tr>
+<tr class="codeline" data-linenumber="948"><td class="num" id="LN948">948</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="949"><td class="num" id="LN949">949</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="950"><td class="num" id="LN950">950</td><td class="line"> g_free (pspecs);</td></tr>
+<tr class="codeline" data-linenumber="951"><td class="num" id="LN951">951</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="952"><td class="num" id="LN952">952</td><td class="line"> <span class='comment'>/* A few properties don't have defaults via the param spec; set them explicitly */</span></td></tr>
+<tr class="codeline" data-linenumber="953"><td class="num" id="LN953">953</td><td class="line"> object_class = <span class='macro'>G_OBJECT_CLASS (TERMINAL_PROFILE_GET_CLASS (profile))<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((((((TerminalProfileClass*) (((GTypeInstance*) ((profile)<br>))-&gt;g_class)))))), (((GType) ((20) &lt;&lt; (2))))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="954"><td class="num" id="LN954">954</td><td class="line"> terminal_profile_reset_property_internal (profile, g_object_class_find_property (object_class, <span class='macro'>TERMINAL_PROFILE_FOREGROUND_COLOR<span class='macro_popup'>"foreground-color"</span></span>), <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="955"><td class="num" id="LN955">955</td><td class="line"> terminal_profile_reset_property_internal (profile, g_object_class_find_property (object_class, <span class='macro'>TERMINAL_PROFILE_BOLD_COLOR<span class='macro_popup'>"bold-color"</span></span>), <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="956"><td class="num" id="LN956">956</td><td class="line"> terminal_profile_reset_property_internal (profile, g_object_class_find_property (object_class, <span class='macro'>TERMINAL_PROFILE_BACKGROUND_COLOR<span class='macro_popup'>"background-color"</span></span>), <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="957"><td class="num" id="LN957">957</td><td class="line"> terminal_profile_reset_property_internal (profile, g_object_class_find_property (object_class, <span class='macro'>TERMINAL_PROFILE_FONT<span class='macro_popup'>"font"</span></span>), <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="958"><td class="num" id="LN958">958</td><td class="line"> terminal_profile_reset_property_internal (profile, g_object_class_find_property (object_class, <span class='macro'>TERMINAL_PROFILE_PALETTE<span class='macro_popup'>"palette"</span></span>), <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="959"><td class="num" id="LN959">959</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="960"><td class="num" id="LN960">960</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="961"><td class="num" id="LN961">961</td><td class="line"><span class='keyword'>static</span> GObject *</td></tr>
+<tr class="codeline" data-linenumber="962"><td class="num" id="LN962">962</td><td class="line">terminal_profile_constructor (GType type,</td></tr>
+<tr class="codeline" data-linenumber="963"><td class="num" id="LN963">963</td><td class="line"> guint n_construct_properties,</td></tr>
+<tr class="codeline" data-linenumber="964"><td class="num" id="LN964">964</td><td class="line"> GObjectConstructParam *construct_params)</td></tr>
+<tr class="codeline" data-linenumber="965"><td class="num" id="LN965">965</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="966"><td class="num" id="LN966">966</td><td class="line"> GObject *object;</td></tr>
+<tr class="codeline" data-linenumber="967"><td class="num" id="LN967">967</td><td class="line"> TerminalProfile *profile;</td></tr>
+<tr class="codeline" data-linenumber="968"><td class="num" id="LN968">968</td><td class="line"> TerminalProfilePrivate *priv;</td></tr>
+<tr class="codeline" data-linenumber="969"><td class="num" id="LN969">969</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *name;</td></tr>
+<tr class="codeline" data-linenumber="970"><td class="num" id="LN970">970</td><td class="line"> GParamSpec **pspecs;</td></tr>
+<tr class="codeline" data-linenumber="971"><td class="num" id="LN971">971</td><td class="line"> guint n_pspecs, i;</td></tr>
+<tr class="codeline" data-linenumber="972"><td class="num" id="LN972">972</td><td class="line"> gchar *concat;</td></tr>
+<tr class="codeline" data-linenumber="973"><td class="num" id="LN973">973</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="974"><td class="num" id="LN974">974</td><td class="line"> object = <span class='macro'>G_OBJECT_CLASS (terminal_profile_parent_class)<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((terminal_profile_parent_class)), (((GType) ((20) &lt;&lt;<br> (2))))))))</span></span>-&gt;constructor</td></tr>
+<tr class="codeline" data-linenumber="975"><td class="num" id="LN975">975</td><td class="line"> (type, n_construct_properties, construct_params);</td></tr>
+<tr class="codeline" data-linenumber="976"><td class="num" id="LN976">976</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="977"><td class="num" id="LN977">977</td><td class="line"> profile = <span class='macro'>TERMINAL_PROFILE (object)<span class='macro_popup'>((((TerminalProfile*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((object)), ((terminal_profile_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="978"><td class="num" id="LN978">978</td><td class="line"> priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="979"><td class="num" id="LN979">979</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="980"><td class="num" id="LN980">980</td><td class="line"> name = g_value_get_string (g_value_array_get_nth (priv-&gt;properties, PROP_NAME));</td></tr>
+<tr class="codeline" data-linenumber="981"><td class="num" id="LN981">981</td><td class="line"> <span class='macro'>g_assert (name != NULL)<span class='macro_popup'>do { if (name != ((void*)0)) ; else g_assertion_message_expr (<br>((gchar*) 0), "terminal-profile.c", 981, ((const char*) (__func__<br>)), "name != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="982"><td class="num" id="LN982">982</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="983"><td class="num" id="LN983">983</td><td class="line"> concat = g_strconcat (<span class='macro'>CONF_PROFILE_PREFIX<span class='macro_popup'>"/org/mate/terminal/profiles/"</span></span>, name, <span class='string_literal'>"/"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="984"><td class="num" id="LN984">984</td><td class="line"> priv-&gt;settings = g_settings_new_with_path (<span class='macro'>CONF_PROFILE_SCHEMA<span class='macro_popup'>"org.mate.terminal" ".profile"</span></span>, concat);</td></tr>
+<tr class="codeline" data-linenumber="985"><td class="num" id="LN985">985</td><td class="line"> <span class='macro'>g_assert (priv-&gt;settings != NULL)<span class='macro_popup'>do { if (priv-&gt;settings != ((void*)0)) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-profile.c", 985, ((const char*) (__func__<br>)), "priv-&gt;settings != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="986"><td class="num" id="LN986">986</td><td class="line"> g_free (concat);</td></tr>
+<tr class="codeline" data-linenumber="987"><td class="num" id="LN987">987</td><td class="line"> concat = g_strconcat(<span class='string_literal'>"changed::"</span>, priv-&gt;profile_dir, <span class='string_literal'>"/"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="988"><td class="num" id="LN988">988</td><td class="line"> <span class='macro'>g_signal_connect (priv-&gt;settings,<span class='macro_popup'>g_signal_connect_data ((priv-&gt;settings), (concat), (((GCallback<br>) (terminal_profile_gsettings_notify_cb))), (profile), ((void<br>*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="989"><td class="num" id="LN989">989</td><td class="line"> <span class='macro'>concat,<span class='macro_popup'>g_signal_connect_data ((priv-&gt;settings), (concat), (((GCallback<br>) (terminal_profile_gsettings_notify_cb))), (profile), ((void<br>*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="990"><td class="num" id="LN990">990</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_profile_gsettings_notify_cb),<span class='macro_popup'>g_signal_connect_data ((priv-&gt;settings), (concat), (((GCallback<br>) (terminal_profile_gsettings_notify_cb))), (profile), ((void<br>*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="991"><td class="num" id="LN991">991</td><td class="line"> <span class='macro'>profile)<span class='macro_popup'>g_signal_connect_data ((priv-&gt;settings), (concat), (((GCallback<br>) (terminal_profile_gsettings_notify_cb))), (profile), ((void<br>*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="992"><td class="num" id="LN992">992</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="993"><td class="num" id="LN993">993</td><td class="line"> g_free (concat);</td></tr>
+<tr class="codeline" data-linenumber="994"><td class="num" id="LN994">994</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="995"><td class="num" id="LN995">995</td><td class="line"> <span class='comment'>/* Now load those properties from GSettings that were not set as construction params */</span></td></tr>
+<tr class="codeline" data-linenumber="996"><td class="num" id="LN996">996</td><td class="line"> pspecs = g_object_class_list_properties (<span class='macro'>G_OBJECT_CLASS (TERMINAL_PROFILE_GET_CLASS (profile))<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((((((TerminalProfileClass*) (((GTypeInstance*) ((profile)<br>))-&gt;g_class)))))), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, &amp;n_pspecs);</td></tr>
+<tr class="codeline" data-linenumber="997"><td class="num" id="LN997">997</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; n_pspecs; ++i)</td></tr>
+<tr class="codeline" data-linenumber="998"><td class="num" id="LN998">998</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="999"><td class="num" id="LN999">999</td><td class="line"> GParamSpec *pspec = pspecs[i];</td></tr>
+<tr class="codeline" data-linenumber="1000"><td class="num" id="LN1000">1000</td><td class="line"> guint j;</td></tr>
+<tr class="codeline" data-linenumber="1001"><td class="num" id="LN1001">1001</td><td class="line"> gboolean is_construct = <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1002"><td class="num" id="LN1002">1002</td><td class="line"> <span class='keyword'>char</span> *key;</td></tr>
+<tr class="codeline" data-linenumber="1003"><td class="num" id="LN1003">1003</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1004"><td class="num" id="LN1004">1004</td><td class="line"> <span class='keyword'>if</span> (pspec-&gt;owner_type != <span class='macro'>TERMINAL_TYPE_PROFILE<span class='macro_popup'>(terminal_profile_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1005"><td class="num" id="LN1005">1005</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="1006"><td class="num" id="LN1006">1006</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1007"><td class="num" id="LN1007">1007</td><td class="line"> <span class='keyword'>if</span> ((pspec-&gt;flags &amp; G_PARAM_WRITABLE) == 0 ||</td></tr>
+<tr class="codeline" data-linenumber="1008"><td class="num" id="LN1008">1008</td><td class="line"> (pspec-&gt;flags &amp; G_PARAM_CONSTRUCT_ONLY) != 0)</td></tr>
+<tr class="codeline" data-linenumber="1009"><td class="num" id="LN1009">1009</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="1010"><td class="num" id="LN1010">1010</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1011"><td class="num" id="LN1011">1011</td><td class="line"> <span class='keyword'>for</span> (j = 0; j &lt; n_construct_properties; ++j)</td></tr>
+<tr class="codeline" data-linenumber="1012"><td class="num" id="LN1012">1012</td><td class="line"> <span class='keyword'>if</span> (pspec == construct_params[j].pspec)</td></tr>
+<tr class="codeline" data-linenumber="1013"><td class="num" id="LN1013">1013</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1014"><td class="num" id="LN1014">1014</td><td class="line"> is_construct = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1015"><td class="num" id="LN1015">1015</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1016"><td class="num" id="LN1016">1016</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1017"><td class="num" id="LN1017">1017</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1018"><td class="num" id="LN1018">1018</td><td class="line"> <span class='keyword'>if</span> (is_construct)</td></tr>
+<tr class="codeline" data-linenumber="1019"><td class="num" id="LN1019">1019</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="1020"><td class="num" id="LN1020">1020</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1021"><td class="num" id="LN1021">1021</td><td class="line"> key = g_param_spec_get_qdata (pspec, gsettings_key_quark);</td></tr>
+<tr class="codeline" data-linenumber="1022"><td class="num" id="LN1022">1022</td><td class="line"> <span class='keyword'>if</span> (!key)</td></tr>
+<tr class="codeline" data-linenumber="1023"><td class="num" id="LN1023">1023</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="1024"><td class="num" id="LN1024">1024</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1025"><td class="num" id="LN1025">1025</td><td class="line"> terminal_profile_gsettings_notify_cb (priv-&gt;settings, key, profile);</td></tr>
+<tr class="codeline" data-linenumber="1026"><td class="num" id="LN1026">1026</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1027"><td class="num" id="LN1027">1027</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1028"><td class="num" id="LN1028">1028</td><td class="line"> g_free (pspecs);</td></tr>
+<tr class="codeline" data-linenumber="1029"><td class="num" id="LN1029">1029</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1030"><td class="num" id="LN1030">1030</td><td class="line"> <span class='keyword'>return</span> object;</td></tr>
+<tr class="codeline" data-linenumber="1031"><td class="num" id="LN1031">1031</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1032"><td class="num" id="LN1032">1032</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1033"><td class="num" id="LN1033">1033</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1034"><td class="num" id="LN1034">1034</td><td class="line">terminal_profile_finalize (GObject *object)</td></tr>
+<tr class="codeline" data-linenumber="1035"><td class="num" id="LN1035">1035</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1036"><td class="num" id="LN1036">1036</td><td class="line"> TerminalProfile *profile = <span class='macro'>TERMINAL_PROFILE (object)<span class='macro_popup'>((((TerminalProfile*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((object)), ((terminal_profile_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1037"><td class="num" id="LN1037">1037</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1038"><td class="num" id="LN1038">1038</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1039"><td class="num" id="LN1039">1039</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (priv-&gt;settings,<span class='macro_popup'>g_signal_handlers_disconnect_matched ((priv-&gt;settings), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_profile_gsettings_notify_cb))), (<br>profile))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1040"><td class="num" id="LN1040">1040</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_profile_gsettings_notify_cb),<span class='macro_popup'>g_signal_handlers_disconnect_matched ((priv-&gt;settings), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_profile_gsettings_notify_cb))), (<br>profile))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1041"><td class="num" id="LN1041">1041</td><td class="line"> <span class='macro'>profile)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((priv-&gt;settings), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_profile_gsettings_notify_cb))), (<br>profile))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1042"><td class="num" id="LN1042">1042</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1043"><td class="num" id="LN1043">1043</td><td class="line"> <span class='keyword'>if</span> (priv-&gt;save_idle_id)</td></tr>
+<tr class="codeline" data-linenumber="1044"><td class="num" id="LN1044">1044</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1045"><td class="num" id="LN1045">1045</td><td class="line"> g_source_remove (priv-&gt;save_idle_id);</td></tr>
+<tr class="codeline" data-linenumber="1046"><td class="num" id="LN1046">1046</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1047"><td class="num" id="LN1047">1047</td><td class="line"> <span class='comment'>/* Save now */</span></td></tr>
+<tr class="codeline" data-linenumber="1048"><td class="num" id="LN1048">1048</td><td class="line"> terminal_profile_save (profile);</td></tr>
+<tr class="codeline" data-linenumber="1049"><td class="num" id="LN1049">1049</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1050"><td class="num" id="LN1050">1050</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1051"><td class="num" id="LN1051">1051</td><td class="line"> _terminal_profile_forget (profile);</td></tr>
+<tr class="codeline" data-linenumber="1052"><td class="num" id="LN1052">1052</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1053"><td class="num" id="LN1053">1053</td><td class="line"> g_object_unref (priv-&gt;settings);</td></tr>
+<tr class="codeline" data-linenumber="1054"><td class="num" id="LN1054">1054</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1055"><td class="num" id="LN1055">1055</td><td class="line"> g_free (priv-&gt;profile_dir);</td></tr>
+<tr class="codeline" data-linenumber="1056"><td class="num" id="LN1056">1056</td><td class="line"> g_free (priv-&gt;locked);</td></tr>
+<tr class="codeline" data-linenumber="1057"><td class="num" id="LN1057">1057</td><td class="line"> g_value_array_free (priv-&gt;properties);</td></tr>
+<tr class="codeline" data-linenumber="1058"><td class="num" id="LN1058">1058</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1059"><td class="num" id="LN1059">1059</td><td class="line"> <span class='macro'>G_OBJECT_CLASS (terminal_profile_parent_class)<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((terminal_profile_parent_class)), (((GType) ((20) &lt;&lt;<br> (2))))))))</span></span>-&gt;finalize (object);</td></tr>
+<tr class="codeline" data-linenumber="1060"><td class="num" id="LN1060">1060</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1061"><td class="num" id="LN1061">1061</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1062"><td class="num" id="LN1062">1062</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1063"><td class="num" id="LN1063">1063</td><td class="line">terminal_profile_get_property (GObject *object,</td></tr>
+<tr class="codeline" data-linenumber="1064"><td class="num" id="LN1064">1064</td><td class="line"> guint prop_id,</td></tr>
+<tr class="codeline" data-linenumber="1065"><td class="num" id="LN1065">1065</td><td class="line"> GValue *value,</td></tr>
+<tr class="codeline" data-linenumber="1066"><td class="num" id="LN1066">1066</td><td class="line"> GParamSpec *pspec)</td></tr>
+<tr class="codeline" data-linenumber="1067"><td class="num" id="LN1067">1067</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1068"><td class="num" id="LN1068">1068</td><td class="line"> TerminalProfile *profile = <span class='macro'>TERMINAL_PROFILE (object)<span class='macro_popup'>((((TerminalProfile*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((object)), ((terminal_profile_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1069"><td class="num" id="LN1069">1069</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1070"><td class="num" id="LN1070">1070</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1071"><td class="num" id="LN1071">1071</td><td class="line"> <span class='keyword'>if</span> (prop_id == 0 || prop_id &gt;= LAST_PROP)</td></tr>
+<tr class="codeline" data-linenumber="1072"><td class="num" id="LN1072">1072</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1073"><td class="num" id="LN1073">1073</td><td class="line"> <span class='macro'>G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec)<span class='macro_popup'>do { GObject *_glib__object = (GObject*) ((object)); GParamSpec<br> *_glib__pspec = (GParamSpec*) ((pspec)); guint _glib__property_id<br> = ((prop_id)); g_warning ("%s:%d: invalid %s id %u for \"%s\" of type '%s' in '%s'"<br>, "terminal-profile.c", 1073, ("property"), _glib__property_id<br>, _glib__pspec-&gt;name, g_type_name ((((((GTypeClass*) (((GTypeInstance<br>*) (_glib__pspec))-&gt;g_class))-&gt;g_type)))), (g_type_name<br> ((((((GTypeClass*) (((GTypeInstance*) (_glib__object))-&gt;g_class<br>))-&gt;g_type)))))); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1074"><td class="num" id="LN1074">1074</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1075"><td class="num" id="LN1075">1075</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1076"><td class="num" id="LN1076">1076</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1077"><td class="num" id="LN1077">1077</td><td class="line"> <span class='comment'>/* Note: When adding things here, do the same in get_prop_value_from_prop_name! */</span></td></tr>
+<tr class="codeline" data-linenumber="1078"><td class="num" id="LN1078">1078</td><td class="line"> <span class='keyword'>switch</span> (prop_id)</td></tr>
+<tr class="codeline" data-linenumber="1079"><td class="num" id="LN1079">1079</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1080"><td class="num" id="LN1080">1080</td><td class="line"> <span class='keyword'>case</span> PROP_BACKGROUND_IMAGE:</td></tr>
+<tr class="codeline" data-linenumber="1081"><td class="num" id="LN1081">1081</td><td class="line"> ensure_pixbuf_property (profile, PROP_BACKGROUND_IMAGE_FILE, PROP_BACKGROUND_IMAGE, &amp;priv-&gt;background_load_failed);</td></tr>
+<tr class="codeline" data-linenumber="1082"><td class="num" id="LN1082">1082</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1083"><td class="num" id="LN1083">1083</td><td class="line"> <span class='keyword'>default</span>:</td></tr>
+<tr class="codeline" data-linenumber="1084"><td class="num" id="LN1084">1084</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1085"><td class="num" id="LN1085">1085</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1086"><td class="num" id="LN1086">1086</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1087"><td class="num" id="LN1087">1087</td><td class="line"> g_value_copy (g_value_array_get_nth (priv-&gt;properties, prop_id), value);</td></tr>
+<tr class="codeline" data-linenumber="1088"><td class="num" id="LN1088">1088</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1089"><td class="num" id="LN1089">1089</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1090"><td class="num" id="LN1090">1090</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1091"><td class="num" id="LN1091">1091</td><td class="line">terminal_profile_set_property (GObject *object,</td></tr>
+<tr class="codeline" data-linenumber="1092"><td class="num" id="LN1092">1092</td><td class="line"> guint prop_id,</td></tr>
+<tr class="codeline" data-linenumber="1093"><td class="num" id="LN1093">1093</td><td class="line"> <span class='keyword'>const</span> GValue *value,</td></tr>
+<tr class="codeline" data-linenumber="1094"><td class="num" id="LN1094">1094</td><td class="line"> GParamSpec *pspec)</td></tr>
+<tr class="codeline" data-linenumber="1095"><td class="num" id="LN1095">1095</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1096"><td class="num" id="LN1096">1096</td><td class="line"> TerminalProfile *profile = <span class='macro'>TERMINAL_PROFILE (object)<span class='macro_popup'>((((TerminalProfile*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((object)), ((terminal_profile_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1097"><td class="num" id="LN1097">1097</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1098"><td class="num" id="LN1098">1098</td><td class="line"> GValue *prop_value;</td></tr>
+<tr class="codeline" data-linenumber="1099"><td class="num" id="LN1099">1099</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1100"><td class="num" id="LN1100">1100</td><td class="line"> <span class='keyword'>if</span> (prop_id == 0 || prop_id &gt;= LAST_PROP)</td></tr>
+<tr class="codeline" data-linenumber="1101"><td class="num" id="LN1101">1101</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1102"><td class="num" id="LN1102">1102</td><td class="line"> <span class='macro'>G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec)<span class='macro_popup'>do { GObject *_glib__object = (GObject*) ((object)); GParamSpec<br> *_glib__pspec = (GParamSpec*) ((pspec)); guint _glib__property_id<br> = ((prop_id)); g_warning ("%s:%d: invalid %s id %u for \"%s\" of type '%s' in '%s'"<br>, "terminal-profile.c", 1102, ("property"), _glib__property_id<br>, _glib__pspec-&gt;name, g_type_name ((((((GTypeClass*) (((GTypeInstance<br>*) (_glib__pspec))-&gt;g_class))-&gt;g_type)))), (g_type_name<br> ((((((GTypeClass*) (((GTypeInstance*) (_glib__object))-&gt;g_class<br>))-&gt;g_type)))))); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1103"><td class="num" id="LN1103">1103</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1104"><td class="num" id="LN1104">1104</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1105"><td class="num" id="LN1105">1105</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1106"><td class="num" id="LN1106">1106</td><td class="line"> prop_value = g_value_array_get_nth (priv-&gt;properties, prop_id);</td></tr>
+<tr class="codeline" data-linenumber="1107"><td class="num" id="LN1107">1107</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1108"><td class="num" id="LN1108">1108</td><td class="line"> <span class='comment'>/* Preprocessing */</span></td></tr>
+<tr class="codeline" data-linenumber="1109"><td class="num" id="LN1109">1109</td><td class="line"> <span class='keyword'>switch</span> (prop_id)</td></tr>
+<tr class="codeline" data-linenumber="1110"><td class="num" id="LN1110">1110</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1111"><td class="num" id="LN1111">1111</td><td class="line"><span class='directive'>#if 0</span></td></tr>
+<tr class="codeline" data-linenumber="1112"><td class="num" id="LN1112">1112</td><td class="line"> <span class='keyword'>case</span> PROP_FONT:</td></tr>
+<tr class="codeline" data-linenumber="1113"><td class="num" id="LN1113">1113</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1114"><td class="num" id="LN1114">1114</td><td class="line"> PangoFontDescription *font_desc, *new_font_desc;</td></tr>
+<tr class="codeline" data-linenumber="1115"><td class="num" id="LN1115">1115</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1116"><td class="num" id="LN1116">1116</td><td class="line"> font_desc = g_value_get_boxed (prop_value);</td></tr>
+<tr class="codeline" data-linenumber="1117"><td class="num" id="LN1117">1117</td><td class="line"> new_font_desc = g_value_get_boxed (value);</td></tr>
+<tr class="codeline" data-linenumber="1118"><td class="num" id="LN1118">1118</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1119"><td class="num" id="LN1119">1119</td><td class="line"> <span class='keyword'>if</span> (font_desc &amp;&amp; new_font_desc)</td></tr>
+<tr class="codeline" data-linenumber="1120"><td class="num" id="LN1120">1120</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1121"><td class="num" id="LN1121">1121</td><td class="line"> <span class='comment'>/* Merge in case the new string isn't complete enough to load a font */</span></td></tr>
+<tr class="codeline" data-linenumber="1122"><td class="num" id="LN1122">1122</td><td class="line"> pango_font_description_merge (font_desc, new_font_desc, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1123"><td class="num" id="LN1123">1123</td><td class="line"> pango_font_description_free (new_font_desc);</td></tr>
+<tr class="codeline" data-linenumber="1124"><td class="num" id="LN1124">1124</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1125"><td class="num" id="LN1125">1125</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1126"><td class="num" id="LN1126">1126</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1127"><td class="num" id="LN1127">1127</td><td class="line"> <span class='comment'>/* fall-through */</span></td></tr>
+<tr class="codeline" data-linenumber="1128"><td class="num" id="LN1128">1128</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1129"><td class="num" id="LN1129">1129</td><td class="line"><span class='directive'>#endif</span></td></tr>
+<tr class="codeline" data-linenumber="1130"><td class="num" id="LN1130">1130</td><td class="line"> <span class='keyword'>default</span>:</td></tr>
+<tr class="codeline" data-linenumber="1131"><td class="num" id="LN1131">1131</td><td class="line"> g_value_copy (value, prop_value);</td></tr>
+<tr class="codeline" data-linenumber="1132"><td class="num" id="LN1132">1132</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1133"><td class="num" id="LN1133">1133</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1134"><td class="num" id="LN1134">1134</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1135"><td class="num" id="LN1135">1135</td><td class="line"> <span class='comment'>/* Postprocessing */</span></td></tr>
+<tr class="codeline" data-linenumber="1136"><td class="num" id="LN1136">1136</td><td class="line"> <span class='keyword'>switch</span> (prop_id)</td></tr>
+<tr class="codeline" data-linenumber="1137"><td class="num" id="LN1137">1137</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1138"><td class="num" id="LN1138">1138</td><td class="line"> <span class='keyword'>case</span> PROP_NAME:</td></tr>
+<tr class="codeline" data-linenumber="1139"><td class="num" id="LN1139">1139</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1140"><td class="num" id="LN1140">1140</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *name = g_value_get_string (value);</td></tr>
+<tr class="codeline" data-linenumber="1141"><td class="num" id="LN1141">1141</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1142"><td class="num" id="LN1142">1142</td><td class="line"> <span class='macro'>g_assert (name != NULL)<span class='macro_popup'>do { if (name != ((void*)0)) ; else g_assertion_message_expr (<br>((gchar*) 0), "terminal-profile.c", 1142, ((const char*) (__func__<br>)), "name != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1143"><td class="num" id="LN1143">1143</td><td class="line"> priv-&gt;profile_dir = <span class='macro'>g_strdup (name)<span class='macro_popup'>g_strdup_inline (name)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1144"><td class="num" id="LN1144">1144</td><td class="line"> <span class='keyword'>if</span> (priv-&gt;settings != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>) {</td></tr>
+<tr class="codeline" data-linenumber="1145"><td class="num" id="LN1145">1145</td><td class="line"> gchar *concat;</td></tr>
+<tr class="codeline" data-linenumber="1146"><td class="num" id="LN1146">1146</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (priv-&gt;settings,<span class='macro_popup'>g_signal_handlers_disconnect_matched ((priv-&gt;settings), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_profile_gsettings_notify_cb))), (<br>profile))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1147"><td class="num" id="LN1147">1147</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_profile_gsettings_notify_cb),<span class='macro_popup'>g_signal_handlers_disconnect_matched ((priv-&gt;settings), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_profile_gsettings_notify_cb))), (<br>profile))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1148"><td class="num" id="LN1148">1148</td><td class="line"> <span class='macro'>profile)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((priv-&gt;settings), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_profile_gsettings_notify_cb))), (<br>profile))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1149"><td class="num" id="LN1149">1149</td><td class="line"> g_object_unref (priv-&gt;settings);</td></tr>
+<tr class="codeline" data-linenumber="1150"><td class="num" id="LN1150">1150</td><td class="line"> concat= g_strconcat (<span class='macro'>CONF_PROFILE_PREFIX<span class='macro_popup'>"/org/mate/terminal/profiles/"</span></span>, priv-&gt;profile_dir, <span class='string_literal'>"/"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1151"><td class="num" id="LN1151">1151</td><td class="line"> priv-&gt;settings = g_settings_new_with_path (<span class='macro'>CONF_PROFILE_SCHEMA<span class='macro_popup'>"org.mate.terminal" ".profile"</span></span>, concat);</td></tr>
+<tr class="codeline" data-linenumber="1152"><td class="num" id="LN1152">1152</td><td class="line"> g_free (concat);</td></tr>
+<tr class="codeline" data-linenumber="1153"><td class="num" id="LN1153">1153</td><td class="line"> concat = g_strconcat(<span class='string_literal'>"changed::"</span>, priv-&gt;profile_dir, <span class='string_literal'>"/"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1154"><td class="num" id="LN1154">1154</td><td class="line"> <span class='macro'>g_signal_connect (priv-&gt;settings,<span class='macro_popup'>g_signal_connect_data ((priv-&gt;settings), (concat), (((GCallback<br>) (terminal_profile_gsettings_notify_cb))), (profile), ((void<br>*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1155"><td class="num" id="LN1155">1155</td><td class="line"> <span class='macro'>concat,<span class='macro_popup'>g_signal_connect_data ((priv-&gt;settings), (concat), (((GCallback<br>) (terminal_profile_gsettings_notify_cb))), (profile), ((void<br>*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1156"><td class="num" id="LN1156">1156</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_profile_gsettings_notify_cb),<span class='macro_popup'>g_signal_connect_data ((priv-&gt;settings), (concat), (((GCallback<br>) (terminal_profile_gsettings_notify_cb))), (profile), ((void<br>*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1157"><td class="num" id="LN1157">1157</td><td class="line"> <span class='macro'>profile)<span class='macro_popup'>g_signal_connect_data ((priv-&gt;settings), (concat), (((GCallback<br>) (terminal_profile_gsettings_notify_cb))), (profile), ((void<br>*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1158"><td class="num" id="LN1158">1158</td><td class="line"> g_free (concat);</td></tr>
+<tr class="codeline" data-linenumber="1159"><td class="num" id="LN1159">1159</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1160"><td class="num" id="LN1160">1160</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1161"><td class="num" id="LN1161">1161</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1162"><td class="num" id="LN1162">1162</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1163"><td class="num" id="LN1163">1163</td><td class="line"> <span class='keyword'>case</span> PROP_BACKGROUND_IMAGE_FILE:</td></tr>
+<tr class="codeline" data-linenumber="1164"><td class="num" id="LN1164">1164</td><td class="line"> <span class='comment'>/* Clear the cached image */</span></td></tr>
+<tr class="codeline" data-linenumber="1165"><td class="num" id="LN1165">1165</td><td class="line"> g_value_set_object (g_value_array_get_nth (priv-&gt;properties, PROP_BACKGROUND_IMAGE), <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1166"><td class="num" id="LN1166">1166</td><td class="line"> priv-&gt;background_load_failed = <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1167"><td class="num" id="LN1167">1167</td><td class="line"> g_object_notify (object, <span class='macro'>TERMINAL_PROFILE_BACKGROUND_IMAGE<span class='macro_popup'>"background-image"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1168"><td class="num" id="LN1168">1168</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1169"><td class="num" id="LN1169">1169</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1170"><td class="num" id="LN1170">1170</td><td class="line"> <span class='keyword'>default</span>:</td></tr>
+<tr class="codeline" data-linenumber="1171"><td class="num" id="LN1171">1171</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1172"><td class="num" id="LN1172">1172</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1173"><td class="num" id="LN1173">1173</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1174"><td class="num" id="LN1174">1174</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1175"><td class="num" id="LN1175">1175</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1176"><td class="num" id="LN1176">1176</td><td class="line">terminal_profile_notify (GObject *object,</td></tr>
+<tr class="codeline" data-linenumber="1177"><td class="num" id="LN1177">1177</td><td class="line"> GParamSpec *pspec)</td></tr>
+<tr class="codeline" data-linenumber="1178"><td class="num" id="LN1178">1178</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1179"><td class="num" id="LN1179">1179</td><td class="line"> TerminalProfilePrivate *priv = <span class='macro'>TERMINAL_PROFILE (object)<span class='macro_popup'>((((TerminalProfile*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((object)), ((terminal_profile_get_type ()))))))</span></span>-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1180"><td class="num" id="LN1180">1180</td><td class="line"> <span class='keyword'>void</span> (* notify) (GObject *, GParamSpec *) = <span class='macro'>G_OBJECT_CLASS (terminal_profile_parent_class)<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((terminal_profile_parent_class)), (((GType) ((20) &lt;&lt;<br> (2))))))))</span></span>-&gt;notify;</td></tr>
+<tr class="codeline" data-linenumber="1181"><td class="num" id="LN1181">1181</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1182"><td class="num" id="LN1182">1182</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_PROFILE,<span class='macro_popup'>do { if (0) g_printerr("Property notification for prop %s\n",<br> pspec-&gt;name); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1183"><td class="num" id="LN1183">1183</td><td class="line"> <span class='string_literal'><span class='macro'>"Property notification for prop %s\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("Property notification for prop %s\n",<br> pspec-&gt;name); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1184"><td class="num" id="LN1184">1184</td><td class="line"> <span class='macro'>pspec-&gt;name)<span class='macro_popup'>do { if (0) g_printerr("Property notification for prop %s\n",<br> pspec-&gt;name); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1185"><td class="num" id="LN1185">1185</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1186"><td class="num" id="LN1186">1186</td><td class="line"> <span class='keyword'>if</span> (notify)</td></tr>
+<tr class="codeline" data-linenumber="1187"><td class="num" id="LN1187">1187</td><td class="line"> notify (object, pspec);</td></tr>
+<tr class="codeline" data-linenumber="1188"><td class="num" id="LN1188">1188</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1189"><td class="num" id="LN1189">1189</td><td class="line"> <span class='keyword'>if</span> (pspec-&gt;owner_type == <span class='macro'>TERMINAL_TYPE_PROFILE<span class='macro_popup'>(terminal_profile_get_type ())</span></span> &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="1190"><td class="num" id="LN1190">1190</td><td class="line"> (pspec-&gt;flags &amp; G_PARAM_WRITABLE) &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="1191"><td class="num" id="LN1191">1191</td><td class="line"> g_param_spec_get_qdata (pspec, gsettings_key_quark) != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span> &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="1192"><td class="num" id="LN1192">1192</td><td class="line"> pspec != priv-&gt;gsettings_notification_pspec)</td></tr>
+<tr class="codeline" data-linenumber="1193"><td class="num" id="LN1193">1193</td><td class="line"> terminal_profile_schedule_save (<span class='macro'>TERMINAL_PROFILE (object)<span class='macro_popup'>((((TerminalProfile*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((object)), ((terminal_profile_get_type ()))))))</span></span>, pspec);</td></tr>
+<tr class="codeline" data-linenumber="1194"><td class="num" id="LN1194">1194</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1195"><td class="num" id="LN1195">1195</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1196"><td class="num" id="LN1196">1196</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1197"><td class="num" id="LN1197">1197</td><td class="line">terminal_profile_class_init (TerminalProfileClass *klass)</td></tr>
+<tr class="codeline" data-linenumber="1198"><td class="num" id="LN1198">1198</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1199"><td class="num" id="LN1199">1199</td><td class="line"> GObjectClass *object_class = <span class='macro'>G_OBJECT_CLASS (klass)<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((klass)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1200"><td class="num" id="LN1200">1200</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1201"><td class="num" id="LN1201">1201</td><td class="line"> gsettings_key_quark = g_quark_from_static_string (<span class='string_literal'>"GT::GSettingsKey"</span>);</td></tr>
+<tr class="codeline" data-linenumber="1202"><td class="num" id="LN1202">1202</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1203"><td class="num" id="LN1203">1203</td><td class="line"> object_class-&gt;constructor = terminal_profile_constructor;</td></tr>
+<tr class="codeline" data-linenumber="1204"><td class="num" id="LN1204">1204</td><td class="line"> object_class-&gt;finalize = terminal_profile_finalize;</td></tr>
+<tr class="codeline" data-linenumber="1205"><td class="num" id="LN1205">1205</td><td class="line"> object_class-&gt;get_property = terminal_profile_get_property;</td></tr>
+<tr class="codeline" data-linenumber="1206"><td class="num" id="LN1206">1206</td><td class="line"> object_class-&gt;set_property = terminal_profile_set_property;</td></tr>
+<tr class="codeline" data-linenumber="1207"><td class="num" id="LN1207">1207</td><td class="line"> object_class-&gt;notify = terminal_profile_notify;</td></tr>
+<tr class="codeline" data-linenumber="1208"><td class="num" id="LN1208">1208</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1209"><td class="num" id="LN1209">1209</td><td class="line"> signals[FORGOTTEN] =</td></tr>
+<tr class="codeline" data-linenumber="1210"><td class="num" id="LN1210">1210</td><td class="line"> g_signal_new (<span class='string_literal'>"forgotten"</span>,</td></tr>
+<tr class="codeline" data-linenumber="1211"><td class="num" id="LN1211">1211</td><td class="line"> <span class='macro'>G_OBJECT_CLASS_TYPE (object_class)<span class='macro_popup'>((((GTypeClass*) (object_class))-&gt;g_type))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1212"><td class="num" id="LN1212">1212</td><td class="line"> G_SIGNAL_RUN_LAST,</td></tr>
+<tr class="codeline" data-linenumber="1213"><td class="num" id="LN1213">1213</td><td class="line"> <span class='macro'>G_STRUCT_OFFSET (TerminalProfileClass, forgotten)<span class='macro_popup'>((glong) __builtin_offsetof(TerminalProfileClass, forgotten))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1214"><td class="num" id="LN1214">1214</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1215"><td class="num" id="LN1215">1215</td><td class="line"> g_cclosure_marshal_VOID__VOID,</td></tr>
+<tr class="codeline" data-linenumber="1216"><td class="num" id="LN1216">1216</td><td class="line"> <span class='macro'>G_TYPE_NONE<span class='macro_popup'>((GType) ((1) &lt;&lt; (2)))</span></span>, 0);</td></tr>
+<tr class="codeline" data-linenumber="1217"><td class="num" id="LN1217">1217</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1218"><td class="num" id="LN1218">1218</td><td class="line"> <span class='comment'>/* gsettings_key -&gt; pspec hash */</span></td></tr>
+<tr class="codeline" data-linenumber="1219"><td class="num" id="LN1219">1219</td><td class="line"> klass-&gt;gsettings_keys = g_hash_table_new (g_str_hash, g_str_equal);</td></tr>
+<tr class="codeline" data-linenumber="1220"><td class="num" id="LN1220">1220</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1221"><td class="num" id="LN1221">1221</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PSPEC_STATIC<span class='macro_popup'>(G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)</span></span> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)</span></td></tr>
+<tr class="codeline" data-linenumber="1222"><td class="num" id="LN1222">1222</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1223"><td class="num" id="LN1223">1223</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY(propId, propSpec, propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = propSpec; g_object_class_install_property<br> (object_class, propId, pspec); g_param_spec_set_qdata (pspec<br>, gsettings_key_quark, (gpointer) propGSettings); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) propGSettings, pspec);<br>}</span></span> \</span></td></tr>
+<tr class="codeline" data-linenumber="1224"><td class="num" id="LN1224">1224</td><td class="line"><span class='directive'>{\</span></td></tr>
+<tr class="codeline" data-linenumber="1225"><td class="num" id="LN1225">1225</td><td class="line"> <span class='directive'>GParamSpec *pspec = propSpec;\</span></td></tr>
+<tr class="codeline" data-linenumber="1226"><td class="num" id="LN1226">1226</td><td class="line"> <span class='directive'>g_object_class_install_property (object_class, propId, pspec);\</span></td></tr>
+<tr class="codeline" data-linenumber="1227"><td class="num" id="LN1227">1227</td><td class="line"> <span class='directive'>g_param_spec_set_qdata (pspec, gsettings_key_quark, (gpointer) propGSettings);\</span></td></tr>
+<tr class="codeline" data-linenumber="1228"><td class="num" id="LN1228">1228</td><td class="line"> <span class='directive'>g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) propGSettings, pspec);\</span></td></tr>
+<tr class="codeline" data-linenumber="1229"><td class="num" id="LN1229">1229</td><td class="line"><span class='directive'>}</span></td></tr>
+<tr class="codeline" data-linenumber="1230"><td class="num" id="LN1230">1230</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1231"><td class="num" id="LN1231">1231</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY_OUTER(propId, propSpec)<span class='macro_popup'>{ GParamSpec *pspec = propSpec; g_object_class_install_property<br> (object_class, propId, pspec);}</span></span> \</span></td></tr>
+<tr class="codeline" data-linenumber="1232"><td class="num" id="LN1232">1232</td><td class="line"><span class='directive'>{\</span></td></tr>
+<tr class="codeline" data-linenumber="1233"><td class="num" id="LN1233">1233</td><td class="line"> <span class='directive'>GParamSpec *pspec = propSpec;\</span></td></tr>
+<tr class="codeline" data-linenumber="1234"><td class="num" id="LN1234">1234</td><td class="line"> <span class='directive'>g_object_class_install_property (object_class, propId, pspec);\</span></td></tr>
+<tr class="codeline" data-linenumber="1235"><td class="num" id="LN1235">1235</td><td class="line"><span class='directive'>}</span></td></tr>
+<tr class="codeline" data-linenumber="1236"><td class="num" id="LN1236">1236</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1237"><td class="num" id="LN1237">1237</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN(prop, propDefault, propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean (TERMINAL_PROFILE_prop<br>, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_prop, pspec); g_param_spec_set_qdata (pspec<br>, gsettings_key_quark, (gpointer) propGSettings); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) propGSettings, pspec);<br>}</span></span> \</span></td></tr>
+<tr class="codeline" data-linenumber="1238"><td class="num" id="LN1238">1238</td><td class="line"> <span class='directive'><span class='macro'>TERMINAL_PROFILE_PROPERTY (PROP_##prop,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1239"><td class="num" id="LN1239">1239</td><td class="line"> <span class='directive'><span class='macro'>g_param_spec_boolean (TERMINAL_PROFILE_##prop, NULL, NULL,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1240"><td class="num" id="LN1240">1240</td><td class="line"> <span class='directive'><span class='macro'>propDefault,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1241"><td class="num" id="LN1241">1241</td><td class="line"> <span class='directive'><span class='macro'>G_PARAM_READWRITE | TERMINAL_PROFILE_PSPEC_STATIC),\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1242"><td class="num" id="LN1242">1242</td><td class="line"> <span class='directive'><span class='macro'>propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1243"><td class="num" id="LN1243">1243</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1244"><td class="num" id="LN1244">1244</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOXED(prop, propType, propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boxed (TERMINAL_PROFILE_prop<br>, ((void*)0), ((void*)0), propType, G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_prop, pspec); g_param_spec_set_qdata (pspec<br>, gsettings_key_quark, (gpointer) propGSettings); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) propGSettings, pspec);<br>}</span></span>\</span></td></tr>
+<tr class="codeline" data-linenumber="1245"><td class="num" id="LN1245">1245</td><td class="line"> <span class='directive'><span class='macro'>TERMINAL_PROFILE_PROPERTY (PROP_##prop,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boxed (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propType, G_PARAM_READWRITE | (<br>G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1246"><td class="num" id="LN1246">1246</td><td class="line"> <span class='directive'><span class='macro'>g_param_spec_boxed (TERMINAL_PROFILE_##prop, NULL, NULL,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boxed (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propType, G_PARAM_READWRITE | (<br>G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1247"><td class="num" id="LN1247">1247</td><td class="line"> <span class='directive'><span class='macro'>propType,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boxed (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propType, G_PARAM_READWRITE | (<br>G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1248"><td class="num" id="LN1248">1248</td><td class="line"> <span class='directive'><span class='macro'>G_PARAM_READWRITE | TERMINAL_PROFILE_PSPEC_STATIC),\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boxed (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propType, G_PARAM_READWRITE | (<br>G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1249"><td class="num" id="LN1249">1249</td><td class="line"> <span class='directive'><span class='macro'>propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boxed (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propType, G_PARAM_READWRITE | (<br>G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1250"><td class="num" id="LN1250">1250</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1251"><td class="num" id="LN1251">1251</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY_DOUBLE(prop, propMin, propMax, propDefault, propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_double (TERMINAL_PROFILE_prop<br>, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_prop,<br> pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark, (<br>gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span>\</span></td></tr>
+<tr class="codeline" data-linenumber="1252"><td class="num" id="LN1252">1252</td><td class="line"> <span class='directive'><span class='macro'>TERMINAL_PROFILE_PROPERTY (PROP_##prop,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_double (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1253"><td class="num" id="LN1253">1253</td><td class="line"> <span class='directive'><span class='macro'>g_param_spec_double (TERMINAL_PROFILE_##prop, NULL, NULL,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_double (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1254"><td class="num" id="LN1254">1254</td><td class="line"> <span class='directive'><span class='macro'>propMin, propMax, propDefault,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_double (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1255"><td class="num" id="LN1255">1255</td><td class="line"> <span class='directive'><span class='macro'>G_PARAM_READWRITE | TERMINAL_PROFILE_PSPEC_STATIC),\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_double (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1256"><td class="num" id="LN1256">1256</td><td class="line"> <span class='directive'><span class='macro'>propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_double (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1257"><td class="num" id="LN1257">1257</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1258"><td class="num" id="LN1258">1258</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY_ENUM(prop, propType, propDefault, propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum (TERMINAL_PROFILE_prop<br>, ((void*)0), ((void*)0), propType, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_prop,<br> pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark, (<br>gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span>\</span></td></tr>
+<tr class="codeline" data-linenumber="1259"><td class="num" id="LN1259">1259</td><td class="line"> <span class='directive'><span class='macro'>TERMINAL_PROFILE_PROPERTY (PROP_##prop,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum (TERMINAL_PROFILE_##prop<br>, ((void*)0), ((void*)0), propType, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1260"><td class="num" id="LN1260">1260</td><td class="line"> <span class='directive'><span class='macro'>g_param_spec_enum (TERMINAL_PROFILE_##prop, NULL, NULL,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum (TERMINAL_PROFILE_##prop<br>, ((void*)0), ((void*)0), propType, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1261"><td class="num" id="LN1261">1261</td><td class="line"> <span class='directive'><span class='macro'>propType, propDefault,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum (TERMINAL_PROFILE_##prop<br>, ((void*)0), ((void*)0), propType, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1262"><td class="num" id="LN1262">1262</td><td class="line"> <span class='directive'><span class='macro'>G_PARAM_READWRITE | TERMINAL_PROFILE_PSPEC_STATIC),\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum (TERMINAL_PROFILE_##prop<br>, ((void*)0), ((void*)0), propType, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1263"><td class="num" id="LN1263">1263</td><td class="line"> <span class='directive'><span class='macro'>propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum (TERMINAL_PROFILE_##prop<br>, ((void*)0), ((void*)0), propType, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1264"><td class="num" id="LN1264">1264</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1265"><td class="num" id="LN1265">1265</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY_INT(prop, propMin, propMax, propDefault, propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_int (TERMINAL_PROFILE_prop<br>, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_prop,<br> pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark, (<br>gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span>\</span></td></tr>
+<tr class="codeline" data-linenumber="1266"><td class="num" id="LN1266">1266</td><td class="line"> <span class='directive'><span class='macro'>TERMINAL_PROFILE_PROPERTY (PROP_##prop,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_int (TERMINAL_PROFILE_##prop<br>, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1267"><td class="num" id="LN1267">1267</td><td class="line"> <span class='directive'><span class='macro'>g_param_spec_int (TERMINAL_PROFILE_##prop, NULL, NULL,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_int (TERMINAL_PROFILE_##prop<br>, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1268"><td class="num" id="LN1268">1268</td><td class="line"> <span class='directive'><span class='macro'>propMin, propMax, propDefault,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_int (TERMINAL_PROFILE_##prop<br>, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1269"><td class="num" id="LN1269">1269</td><td class="line"> <span class='directive'><span class='macro'>G_PARAM_READWRITE | TERMINAL_PROFILE_PSPEC_STATIC),\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_int (TERMINAL_PROFILE_##prop<br>, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1270"><td class="num" id="LN1270">1270</td><td class="line"> <span class='directive'><span class='macro'>propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_int (TERMINAL_PROFILE_##prop<br>, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1271"><td class="num" id="LN1271">1271</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1272"><td class="num" id="LN1272">1272</td><td class="line"> <span class='comment'>/* these are all read-only */</span></td></tr>
+<tr class="codeline" data-linenumber="1273"><td class="num" id="LN1273">1273</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY_OBJECT(prop, propType)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_object (TERMINAL_PROFILE_prop<br>, ((void*)0), ((void*)0), propType, G_PARAM_READABLE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_prop, pspec);}</span></span>\</span></td></tr>
+<tr class="codeline" data-linenumber="1274"><td class="num" id="LN1274">1274</td><td class="line"> <span class='directive'><span class='macro'>TERMINAL_PROFILE_PROPERTY_OUTER (PROP_##prop,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_object (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propType, G_PARAM_READABLE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_##prop, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1275"><td class="num" id="LN1275">1275</td><td class="line"> <span class='directive'><span class='macro'>g_param_spec_object (TERMINAL_PROFILE_##prop, NULL, NULL,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_object (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propType, G_PARAM_READABLE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_##prop, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1276"><td class="num" id="LN1276">1276</td><td class="line"> <span class='directive'><span class='macro'>propType,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_object (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propType, G_PARAM_READABLE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_##prop, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1277"><td class="num" id="LN1277">1277</td><td class="line"> <span class='directive'><span class='macro'>G_PARAM_READABLE | TERMINAL_PROFILE_PSPEC_STATIC))<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_object (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propType, G_PARAM_READABLE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_##prop, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1278"><td class="num" id="LN1278">1278</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1279"><td class="num" id="LN1279">1279</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY_STRING(prop, propDefault, propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_prop<br>, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_prop, pspec); g_param_spec_set_qdata (pspec<br>, gsettings_key_quark, (gpointer) propGSettings); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) propGSettings, pspec);<br>}</span></span>\</span></td></tr>
+<tr class="codeline" data-linenumber="1280"><td class="num" id="LN1280">1280</td><td class="line"> <span class='directive'><span class='macro'>TERMINAL_PROFILE_PROPERTY (PROP_##prop,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1281"><td class="num" id="LN1281">1281</td><td class="line"> <span class='directive'><span class='macro'>g_param_spec_string (TERMINAL_PROFILE_##prop, NULL, NULL,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1282"><td class="num" id="LN1282">1282</td><td class="line"> <span class='directive'><span class='macro'>propDefault,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1283"><td class="num" id="LN1283">1283</td><td class="line"> <span class='directive'><span class='macro'>G_PARAM_READWRITE | TERMINAL_PROFILE_PSPEC_STATIC),\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1284"><td class="num" id="LN1284">1284</td><td class="line"> <span class='directive'><span class='macro'>propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1285"><td class="num" id="LN1285">1285</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1286"><td class="num" id="LN1286">1286</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY_STRING_CO(prop, propDefault)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_prop<br>, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_prop,<br> pspec);}</span></span>\</span></td></tr>
+<tr class="codeline" data-linenumber="1287"><td class="num" id="LN1287">1287</td><td class="line"> <span class='directive'><span class='macro'>TERMINAL_PROFILE_PROPERTY_OUTER (PROP_##prop,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE |<br> G_PARAM_CONSTRUCT_ONLY | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1288"><td class="num" id="LN1288">1288</td><td class="line"> <span class='directive'><span class='macro'>g_param_spec_string (TERMINAL_PROFILE_##prop, NULL, NULL,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE |<br> G_PARAM_CONSTRUCT_ONLY | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1289"><td class="num" id="LN1289">1289</td><td class="line"> <span class='directive'><span class='macro'>propDefault,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE |<br> G_PARAM_CONSTRUCT_ONLY | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1290"><td class="num" id="LN1290">1290</td><td class="line"> <span class='directive'><span class='macro'>G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | TERMINAL_PROFILE_PSPEC_STATIC))<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE |<br> G_PARAM_CONSTRUCT_ONLY | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1291"><td class="num" id="LN1291">1291</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1292"><td class="num" id="LN1292">1292</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY_VALUE_ARRAY_BOXED(prop, propElementName, propElementType, propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_value_array (TERMINAL_PROFILE_prop<br>, ((void*)0), ((void*)0), g_param_spec_boxed (propElementName<br>, ((void*)0), ((void*)0), propElementType, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_prop, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span>\</span></td></tr>
+<tr class="codeline" data-linenumber="1293"><td class="num" id="LN1293">1293</td><td class="line"> <span class='directive'><span class='macro'>TERMINAL_PROFILE_PROPERTY (PROP_##prop,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_value_array (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), g_param_spec_boxed (propElementName<br>, ((void*)0), ((void*)0), propElementType, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1294"><td class="num" id="LN1294">1294</td><td class="line"> <span class='directive'><span class='macro'>g_param_spec_value_array (TERMINAL_PROFILE_##prop, NULL, NULL,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_value_array (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), g_param_spec_boxed (propElementName<br>, ((void*)0), ((void*)0), propElementType, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1295"><td class="num" id="LN1295">1295</td><td class="line"> <span class='directive'><span class='macro'>g_param_spec_boxed (propElementName, NULL, NULL,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_value_array (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), g_param_spec_boxed (propElementName<br>, ((void*)0), ((void*)0), propElementType, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1296"><td class="num" id="LN1296">1296</td><td class="line"> <span class='directive'><span class='macro'>propElementType, \<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_value_array (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), g_param_spec_boxed (propElementName<br>, ((void*)0), ((void*)0), propElementType, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1297"><td class="num" id="LN1297">1297</td><td class="line"> <span class='directive'><span class='macro'>G_PARAM_READWRITE | TERMINAL_PROFILE_PSPEC_STATIC),\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_value_array (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), g_param_spec_boxed (propElementName<br>, ((void*)0), ((void*)0), propElementType, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1298"><td class="num" id="LN1298">1298</td><td class="line"> <span class='directive'><span class='macro'>G_PARAM_READWRITE | TERMINAL_PROFILE_PSPEC_STATIC),\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_value_array (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), g_param_spec_boxed (propElementName<br>, ((void*)0), ((void*)0), propElementType, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1299"><td class="num" id="LN1299">1299</td><td class="line"> <span class='directive'><span class='macro'>propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_value_array (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), g_param_spec_boxed (propElementName<br>, ((void*)0), ((void*)0), propElementType, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1300"><td class="num" id="LN1300">1300</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1301"><td class="num" id="LN1301">1301</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (ALLOW_BOLD, DEFAULT_ALLOW_BOLD, KEY_ALLOW_BOLD)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("allow-bold", ((void<br>*)0), ((void*)0), ((!(0))), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_ALLOW_BOLD, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "allow-bold"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "allow-bold", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1302"><td class="num" id="LN1302">1302</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (BOLD_COLOR_SAME_AS_FG, DEFAULT_BOLD_COLOR_SAME_AS_FG, KEY_BOLD_COLOR_SAME_AS_FG)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("bold-color-same-as-fg"<br>, ((void*)0), ((void*)0), ((!(0))), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_BOLD_COLOR_SAME_AS_FG, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "bold-color-same-as-fg"<br>); g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "bold-color-same-as-fg"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1303"><td class="num" id="LN1303">1303</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (DEFAULT_SHOW_MENUBAR, DEFAULT_DEFAULT_SHOW_MENUBAR, KEY_DEFAULT_SHOW_MENUBAR)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("default-show-menubar"<br>, ((void*)0), ((void*)0), ((!(0))), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_DEFAULT_SHOW_MENUBAR, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "default-show-menubar"<br>); g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "default-show-menubar"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1304"><td class="num" id="LN1304">1304</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (LOGIN_SHELL, DEFAULT_LOGIN_SHELL, KEY_LOGIN_SHELL)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("login-shell", ((<br>void*)0), ((void*)0), ((0)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_LOGIN_SHELL, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "login-shell"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "login-shell", pspec);<br>}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1305"><td class="num" id="LN1305">1305</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (SCROLL_BACKGROUND, DEFAULT_SCROLL_BACKGROUND, KEY_SCROLL_BACKGROUND)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("scroll-background"<br>, ((void*)0), ((void*)0), ((!(0))), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_SCROLL_BACKGROUND, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "scroll-background")<br>; g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "scroll-background"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1306"><td class="num" id="LN1306">1306</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (SCROLLBACK_UNLIMITED, DEFAULT_SCROLLBACK_UNLIMITED, KEY_SCROLLBACK_UNLIMITED)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("scrollback-unlimited"<br>, ((void*)0), ((void*)0), ((0)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_SCROLLBACK_UNLIMITED, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "scrollback-unlimited"<br>); g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "scrollback-unlimited"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1307"><td class="num" id="LN1307">1307</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (SCROLL_ON_KEYSTROKE, DEFAULT_SCROLL_ON_KEYSTROKE, KEY_SCROLL_ON_KEYSTROKE)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("scroll-on-keystroke"<br>, ((void*)0), ((void*)0), ((!(0))), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_SCROLL_ON_KEYSTROKE, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "scroll-on-keystroke"<br>); g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "scroll-on-keystroke"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1308"><td class="num" id="LN1308">1308</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (SCROLL_ON_OUTPUT, DEFAULT_SCROLL_ON_OUTPUT, KEY_SCROLL_ON_OUTPUT)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("scroll-on-output"<br>, ((void*)0), ((void*)0), ((0)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_SCROLL_ON_OUTPUT, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "scroll-on-output");<br> g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "scroll-on-output"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1309"><td class="num" id="LN1309">1309</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (SILENT_BELL, DEFAULT_SILENT_BELL, KEY_SILENT_BELL)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("silent-bell", ((<br>void*)0), ((void*)0), ((0)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_SILENT_BELL, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "silent-bell"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "silent-bell", pspec);<br>}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1310"><td class="num" id="LN1310">1310</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (COPY_SELECTION, DEFAULT_COPY_SELECTION, KEY_COPY_SELECTION)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("copy-selection",<br> ((void*)0), ((void*)0), ((0)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_COPY_SELECTION, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "copy-selection"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "copy-selection", pspec<br>);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1311"><td class="num" id="LN1311">1311</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (USE_CUSTOM_COMMAND, DEFAULT_USE_CUSTOM_COMMAND, KEY_USE_CUSTOM_COMMAND)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("use-custom-command"<br>, ((void*)0), ((void*)0), ((0)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_USE_CUSTOM_COMMAND, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "use-custom-command"<br>); g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "use-custom-command"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1312"><td class="num" id="LN1312">1312</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (USE_CUSTOM_DEFAULT_SIZE, DEFAULT_USE_CUSTOM_DEFAULT_SIZE, KEY_USE_CUSTOM_DEFAULT_SIZE)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("use-custom-default-size"<br>, ((void*)0), ((void*)0), ((0)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_USE_CUSTOM_DEFAULT_SIZE, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "use-custom-default-size"<br>); g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "use-custom-default-size"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1313"><td class="num" id="LN1313">1313</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (USE_SKEY, DEFAULT_USE_SKEY, KEY_USE_SKEY)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("use-skey", ((void<br>*)0), ((void*)0), ((!(0))), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_USE_SKEY, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "use-skey"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "use-skey", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1314"><td class="num" id="LN1314">1314</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (USE_URLS, DEFAULT_USE_URLS, KEY_USE_URLS)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("use-urls", ((void<br>*)0), ((void*)0), ((!(0))), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_USE_URLS, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "use-urls"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "use-urls", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1315"><td class="num" id="LN1315">1315</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (USE_SYSTEM_FONT, DEFAULT_USE_SYSTEM_FONT, KEY_USE_SYSTEM_FONT)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("use-system-font"<br>, ((void*)0), ((void*)0), ((!(0))), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_USE_SYSTEM_FONT, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "use-system-font"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "use-system-font", pspec<br>);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1316"><td class="num" id="LN1316">1316</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (USE_THEME_COLORS, DEFAULT_USE_THEME_COLORS, KEY_USE_THEME_COLORS)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("use-theme-colors"<br>, ((void*)0), ((void*)0), ((!(0))), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_USE_THEME_COLORS, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "use-theme-colors");<br> g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "use-theme-colors"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1317"><td class="num" id="LN1317">1317</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1318"><td class="num" id="LN1318">1318</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOXED (BACKGROUND_COLOR, GDK_TYPE_RGBA, KEY_BACKGROUND_COLOR)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boxed ("background-color",<br> ((void*)0), ((void*)0), (gdk_rgba_get_type ()), G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_BACKGROUND_COLOR<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) "background-color"); g_hash_table_insert (klass-&gt;<br>gsettings_keys, (gpointer) "background-color", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1319"><td class="num" id="LN1319">1319</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOXED (BOLD_COLOR, GDK_TYPE_RGBA, KEY_BOLD_COLOR)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boxed ("bold-color", ((void<br>*)0), ((void*)0), (gdk_rgba_get_type ()), G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_BOLD_COLOR<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) "bold-color"); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) "bold-color", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1320"><td class="num" id="LN1320">1320</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOXED (FONT, PANGO_TYPE_FONT_DESCRIPTION, KEY_FONT)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boxed ("font", ((void*)0),<br> ((void*)0), (pango_font_description_get_type ()), G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_FONT,<br> pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark, (<br>gpointer) "font"); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) "font", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1321"><td class="num" id="LN1321">1321</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOXED (FOREGROUND_COLOR, GDK_TYPE_RGBA, KEY_FOREGROUND_COLOR)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boxed ("foreground-color",<br> ((void*)0), ((void*)0), (gdk_rgba_get_type ()), G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_FOREGROUND_COLOR<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) "foreground-color"); g_hash_table_insert (klass-&gt;<br>gsettings_keys, (gpointer) "foreground-color", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1322"><td class="num" id="LN1322">1322</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1323"><td class="num" id="LN1323">1323</td><td class="line"> <span class='comment'>/* 0.0 = normal bg, 1.0 = all black bg, 0.5 = half darkened */</span></td></tr>
+<tr class="codeline" data-linenumber="1324"><td class="num" id="LN1324">1324</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_DOUBLE (BACKGROUND_DARKNESS, 0.0, 1.0, DEFAULT_BACKGROUND_DARKNESS, KEY_BACKGROUND_DARKNESS)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_double ("background-darkness"<br>, ((void*)0), ((void*)0), 0.0, 1.0, (0.5), G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_BACKGROUND_DARKNESS<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) "background-darkness"); g_hash_table_insert (klass<br>-&gt;gsettings_keys, (gpointer) "background-darkness", pspec)<br>;}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1325"><td class="num" id="LN1325">1325</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1326"><td class="num" id="LN1326">1326</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_ENUM (BACKGROUND_TYPE, TERMINAL_TYPE_BACKGROUND_TYPE, DEFAULT_BACKGROUND_TYPE, KEY_BACKGROUND_TYPE)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum ("background-type", (<br>(void*)0), ((void*)0), (terminal_background_type_get_type ())<br>, (TERMINAL_BACKGROUND_SOLID), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_BACKGROUND_TYPE, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "background-type"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "background-type", pspec<br>);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1327"><td class="num" id="LN1327">1327</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_ENUM (BACKSPACE_BINDING, VTE_TYPE_ERASE_BINDING, DEFAULT_BACKSPACE_BINDING, KEY_BACKSPACE_BINDING)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum ("backspace-binding",<br> ((void*)0), ((void*)0), (vte_erase_binding_get_type ()), (VTE_ERASE_ASCII_DELETE<br>), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_BACKSPACE_BINDING, pspec); g_param_spec_set_qdata (pspec<br>, gsettings_key_quark, (gpointer) "backspace-binding"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "backspace-binding", pspec<br>);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1328"><td class="num" id="LN1328">1328</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_ENUM (CURSOR_BLINK_MODE, VTE_TYPE_CURSOR_BLINK_MODE, DEFAULT_CURSOR_BLINK_MODE, KEY_CURSOR_BLINK_MODE)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum ("cursor-blink-mode",<br> ((void*)0), ((void*)0), (vte_cursor_blink_mode_get_type ()),<br> (VTE_CURSOR_BLINK_SYSTEM), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_CURSOR_BLINK_MODE, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "cursor-blink-mode")<br>; g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "cursor-blink-mode"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1329"><td class="num" id="LN1329">1329</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_ENUM (CURSOR_SHAPE, VTE_TYPE_CURSOR_SHAPE, DEFAULT_CURSOR_SHAPE, KEY_CURSOR_SHAPE)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum ("cursor-shape", ((void<br>*)0), ((void*)0), (vte_cursor_shape_get_type ()), (VTE_CURSOR_SHAPE_BLOCK<br>), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_CURSOR_SHAPE, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) "cursor-shape"); g_hash_table_insert (klass-&gt;<br>gsettings_keys, (gpointer) "cursor-shape", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1330"><td class="num" id="LN1330">1330</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_ENUM (DELETE_BINDING, VTE_TYPE_ERASE_BINDING, DEFAULT_DELETE_BINDING, KEY_DELETE_BINDING)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum ("delete-binding", ((<br>void*)0), ((void*)0), (vte_erase_binding_get_type ()), (VTE_ERASE_DELETE_SEQUENCE<br>), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_DELETE_BINDING, pspec); g_param_spec_set_qdata (pspec,<br> gsettings_key_quark, (gpointer) "delete-binding"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "delete-binding", pspec<br>);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1331"><td class="num" id="LN1331">1331</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_ENUM (EXIT_ACTION, TERMINAL_TYPE_EXIT_ACTION, DEFAULT_EXIT_ACTION, KEY_EXIT_ACTION)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum ("exit-action", ((void<br>*)0), ((void*)0), (terminal_exit_action_get_type ()), (TERMINAL_EXIT_CLOSE<br>), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_EXIT_ACTION, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) "exit-action"); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) "exit-action", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1332"><td class="num" id="LN1332">1332</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_ENUM (SCROLLBAR_POSITION, TERMINAL_TYPE_SCROLLBAR_POSITION, DEFAULT_SCROLLBAR_POSITION, KEY_SCROLLBAR_POSITION)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum ("scrollbar-position"<br>, ((void*)0), ((void*)0), (terminal_scrollbar_position_get_type<br> ()), (TERMINAL_SCROLLBAR_RIGHT), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_SCROLLBAR_POSITION, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "scrollbar-position"<br>); g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "scrollbar-position"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1333"><td class="num" id="LN1333">1333</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_ENUM (TITLE_MODE, TERMINAL_TYPE_TITLE_MODE, DEFAULT_TITLE_MODE, KEY_TITLE_MODE)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum ("title-mode", ((void<br>*)0), ((void*)0), (terminal_title_mode_get_type ()), (TERMINAL_TITLE_REPLACE<br>), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_TITLE_MODE, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) "title-mode"); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) "title-mode", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1334"><td class="num" id="LN1334">1334</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1335"><td class="num" id="LN1335">1335</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_INT (DEFAULT_SIZE_COLUMNS, 1, 1024, DEFAULT_DEFAULT_SIZE_COLUMNS, KEY_DEFAULT_SIZE_COLUMNS)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_int ("default-size-columns"<br>, ((void*)0), ((void*)0), 1, 1024, (80), G_PARAM_READWRITE | (<br>G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_DEFAULT_SIZE_COLUMNS<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) "default-size-columns"); g_hash_table_insert (klass<br>-&gt;gsettings_keys, (gpointer) "default-size-columns", pspec<br>);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1336"><td class="num" id="LN1336">1336</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_INT (DEFAULT_SIZE_ROWS, 1, 1024, DEFAULT_DEFAULT_SIZE_ROWS, KEY_DEFAULT_SIZE_ROWS)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_int ("default-size-rows", (<br>(void*)0), ((void*)0), 1, 1024, (24), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_DEFAULT_SIZE_ROWS, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "default-size-rows")<br>; g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "default-size-rows"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1337"><td class="num" id="LN1337">1337</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_INT (SCROLLBACK_LINES, 1, G_MAXINT, DEFAULT_SCROLLBACK_LINES, KEY_SCROLLBACK_LINES)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_int ("scrollback-lines", (<br>(void*)0), ((void*)0), 1, 2147483647, (512), G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_SCROLLBACK_LINES<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) "scrollback-lines"); g_hash_table_insert (klass-&gt;<br>gsettings_keys, (gpointer) "scrollback-lines", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1338"><td class="num" id="LN1338">1338</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1339"><td class="num" id="LN1339">1339</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_OBJECT (BACKGROUND_IMAGE, GDK_TYPE_PIXBUF)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_object ("background-image"<br>, ((void*)0), ((void*)0), (gdk_pixbuf_get_type ()), G_PARAM_READABLE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_BACKGROUND_IMAGE<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1340"><td class="num" id="LN1340">1340</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1341"><td class="num" id="LN1341">1341</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_STRING_CO (NAME, DEFAULT_NAME)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string ("name", ((void*)0)<br>, ((void*)0), (((void*)0)), G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_NAME,<br> pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1342"><td class="num" id="LN1342">1342</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1343"><td class="num" id="LN1343">1343</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_STRING (BACKGROUND_IMAGE_FILE, DEFAULT_BACKGROUND_IMAGE_FILE, KEY_BACKGROUND_IMAGE_FILE)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string ("background-image-file"<br>, ((void*)0), ((void*)0), (""), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_BACKGROUND_IMAGE_FILE, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "background-image");<br> g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "background-image"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1344"><td class="num" id="LN1344">1344</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_STRING (CUSTOM_COMMAND, DEFAULT_CUSTOM_COMMAND, KEY_CUSTOM_COMMAND)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string ("custom-command", (<br>(void*)0), ((void*)0), (""), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_CUSTOM_COMMAND, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "custom-command"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "custom-command", pspec<br>);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1345"><td class="num" id="LN1345">1345</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_STRING (TITLE, _(DEFAULT_TITLE), KEY_TITLE)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string ("title", ((void*)0<br>), ((void*)0), gettext ((("Terminal"))), G_PARAM_READWRITE | (<br>G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_TITLE<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) "title"); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) "title", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1346"><td class="num" id="LN1346">1346</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_STRING (VISIBLE_NAME, _(DEFAULT_VISIBLE_NAME), KEY_VISIBLE_NAME)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string ("visible-name", ((<br>void*)0), ((void*)0), gettext ((("Unnamed"))), G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_VISIBLE_NAME<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) "visible-name"); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) "visible-name", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1347"><td class="num" id="LN1347">1347</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_STRING (WORD_CHARS, DEFAULT_WORD_CHARS, KEY_WORD_CHARS)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string ("word-chars", ((void<br>*)0), ((void*)0), ("-A-Za-z0-9,./?%&amp;#:_=+@~"), G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_WORD_CHARS<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) "word-chars"); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) "word-chars", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1348"><td class="num" id="LN1348">1348</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1349"><td class="num" id="LN1349">1349</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_VALUE_ARRAY_BOXED (PALETTE, <span class='string_literal'>"palette-color"</span>, GDK_TYPE_RGBA, KEY_PALETTE)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_value_array ("palette", ((<br>void*)0), ((void*)0), g_param_spec_boxed ("palette-color", ((<br>void*)0), ((void*)0), (gdk_rgba_get_type ()), G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_PALETTE, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) "palette"); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) "palette", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1350"><td class="num" id="LN1350">1350</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1351"><td class="num" id="LN1351">1351</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1352"><td class="num" id="LN1352">1352</td><td class="line"><span class='comment'>/* Semi-Public API */</span></td></tr>
+<tr class="codeline" data-linenumber="1353"><td class="num" id="LN1353">1353</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1354"><td class="num" id="LN1354">1354</td><td class="line">TerminalProfile*</td></tr>
+<tr class="codeline" data-linenumber="1355"><td class="num" id="LN1355">1355</td><td class="line">_terminal_profile_new (<span class='keyword'>const</span> <span class='keyword'>char</span> *name)</td></tr>
+<tr class="codeline" data-linenumber="1356"><td class="num" id="LN1356">1356</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1357"><td class="num" id="LN1357">1357</td><td class="line"> <span class='keyword'>return</span> g_object_new (<span class='macro'>TERMINAL_TYPE_PROFILE<span class='macro_popup'>(terminal_profile_get_type ())</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1358"><td class="num" id="LN1358">1358</td><td class="line"> <span class='string_literal'>"name"</span>, name,</td></tr>
+<tr class="codeline" data-linenumber="1359"><td class="num" id="LN1359">1359</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1360"><td class="num" id="LN1360">1360</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1361"><td class="num" id="LN1361">1361</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1362"><td class="num" id="LN1362">1362</td><td class="line"><span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1363"><td class="num" id="LN1363">1363</td><td class="line">_terminal_profile_forget (TerminalProfile *profile)</td></tr>
+<tr class="codeline" data-linenumber="1364"><td class="num" id="LN1364">1364</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1365"><td class="num" id="LN1365">1365</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1366"><td class="num" id="LN1366">1366</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1367"><td class="num" id="LN1367">1367</td><td class="line"> <span class='keyword'>if</span> (!priv-&gt;forgotten)</td></tr>
+<tr class="codeline" data-linenumber="1368"><td class="num" id="LN1368">1368</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1369"><td class="num" id="LN1369">1369</td><td class="line"> priv-&gt;forgotten = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1370"><td class="num" id="LN1370">1370</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1371"><td class="num" id="LN1371">1371</td><td class="line"> g_signal_emit (<span class='macro'>G_OBJECT (profile)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((profile)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, signals[FORGOTTEN], 0);</td></tr>
+<tr class="codeline" data-linenumber="1372"><td class="num" id="LN1372">1372</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1373"><td class="num" id="LN1373">1373</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1374"><td class="num" id="LN1374">1374</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1375"><td class="num" id="LN1375">1375</td><td class="line">gboolean</td></tr>
+<tr class="codeline" data-linenumber="1376"><td class="num" id="LN1376">1376</td><td class="line">_terminal_profile_get_forgotten (TerminalProfile *profile)</td></tr>
+<tr class="codeline" data-linenumber="1377"><td class="num" id="LN1377">1377</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1378"><td class="num" id="LN1378">1378</td><td class="line"> <span class='keyword'>return</span> profile-&gt;priv-&gt;forgotten;</td></tr>
+<tr class="codeline" data-linenumber="1379"><td class="num" id="LN1379">1379</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1380"><td class="num" id="LN1380">1380</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1381"><td class="num" id="LN1381">1381</td><td class="line">TerminalProfile *</td></tr>
+<tr class="codeline" data-linenumber="1382"><td class="num" id="LN1382">1382</td><td class="line">_terminal_profile_clone (TerminalProfile *base_profile,</td></tr>
+<tr class="codeline" data-linenumber="1383"><td class="num" id="LN1383">1383</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *visible_name)</td></tr>
+<tr class="codeline" data-linenumber="1384"><td class="num" id="LN1384">1384</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1385"><td class="num" id="LN1385">1385</td><td class="line"> TerminalApp *app = terminal_app_get ();</td></tr>
+<tr class="codeline" data-linenumber="1386"><td class="num" id="LN1386">1386</td><td class="line"> GObject *base_object = <span class='macro'>G_OBJECT (base_profile)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((base_profile)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1387"><td class="num" id="LN1387">1387</td><td class="line"> TerminalProfilePrivate *new_priv;</td></tr>
+<tr class="codeline" data-linenumber="1388"><td class="num" id="LN1388">1388</td><td class="line"> <span class='keyword'>char</span> profile_name[32];</td></tr>
+<tr class="codeline" data-linenumber="1389"><td class="num" id="LN1389">1389</td><td class="line"> GParameter *params;</td></tr>
+<tr class="codeline" data-linenumber="1390"><td class="num" id="LN1390">1390</td><td class="line"> GParamSpec **pspecs;</td></tr>
+<tr class="codeline" data-linenumber="1391"><td class="num" id="LN1391">1391</td><td class="line"> guint n_pspecs, i, n_params, profile_num;</td></tr>
+<tr class="codeline" data-linenumber="1392"><td class="num" id="LN1392">1392</td><td class="line"> TerminalProfile *new_profile;</td></tr>
+<tr class="codeline" data-linenumber="1393"><td class="num" id="LN1393">1393</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1394"><td class="num" id="LN1394">1394</td><td class="line"> <span class='macro'>g_object_ref (base_profile)<span class='macro_popup'>((__typeof__ (base_profile)) (g_object_ref) (base_profile))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1395"><td class="num" id="LN1395">1395</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1396"><td class="num" id="LN1396">1396</td><td class="line"> profile_num = 0;</td></tr>
+<tr class="codeline" data-linenumber="1397"><td class="num" id="LN1397">1397</td><td class="line"> <span class='keyword'>do</span></td></tr>
+<tr class="codeline" data-linenumber="1398"><td class="num" id="LN1398">1398</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1399"><td class="num" id="LN1399">1399</td><td class="line"> g_snprintf (profile_name, <span class='keyword'>sizeof</span> (profile_name), <span class='string_literal'>"profile%u"</span>, profile_num++);</td></tr>
+<tr class="codeline" data-linenumber="1400"><td class="num" id="LN1400">1400</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1401"><td class="num" id="LN1401">1401</td><td class="line"> <span class='keyword'>while</span> (terminal_app_get_profile_by_name (app, profile_name) != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1402"><td class="num" id="LN1402">1402</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1403"><td class="num" id="LN1403">1403</td><td class="line"> <span class='comment'>/* Now we have an unused profile name */</span></td></tr>
+<tr class="codeline" data-linenumber="1404"><td class="num" id="LN1404">1404</td><td class="line"> pspecs = g_object_class_list_properties (<span class='macro'>G_OBJECT_CLASS (TERMINAL_PROFILE_GET_CLASS (base_profile))<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((((((TerminalProfileClass*) (((GTypeInstance*) ((base_profile<br>)))-&gt;g_class)))))), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, &amp;n_pspecs);</td></tr>
+<tr class="codeline" data-linenumber="1405"><td class="num" id="LN1405">1405</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1406"><td class="num" id="LN1406">1406</td><td class="line"> params = <span class='macro'>g_newa (GParameter, n_pspecs)<span class='macro_popup'>((GParameter*) __builtin_alloca (sizeof (GParameter) * (gsize<br>) (n_pspecs)))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1407"><td class="num" id="LN1407">1407</td><td class="line"> n_params = 0;</td></tr>
+<tr class="codeline" data-linenumber="1408"><td class="num" id="LN1408">1408</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1409"><td class="num" id="LN1409">1409</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; n_pspecs; ++i)</td></tr>
+<tr class="codeline" data-linenumber="1410"><td class="num" id="LN1410">1410</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1411"><td class="num" id="LN1411">1411</td><td class="line"> GParamSpec *pspec = pspecs[i];</td></tr>
+<tr class="codeline" data-linenumber="1412"><td class="num" id="LN1412">1412</td><td class="line"> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="1413"><td class="num" id="LN1413">1413</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1414"><td class="num" id="LN1414">1414</td><td class="line"> <span class='keyword'>if</span> (pspec-&gt;owner_type != <span class='macro'>TERMINAL_TYPE_PROFILE<span class='macro_popup'>(terminal_profile_get_type ())</span></span> ||</td></tr>
+<tr class="codeline" data-linenumber="1415"><td class="num" id="LN1415">1415</td><td class="line"> (pspec-&gt;flags &amp; G_PARAM_WRITABLE) == 0)</td></tr>
+<tr class="codeline" data-linenumber="1416"><td class="num" id="LN1416">1416</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="1417"><td class="num" id="LN1417">1417</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1418"><td class="num" id="LN1418">1418</td><td class="line"> params[n_params].name = pspec-&gt;name;</td></tr>
+<tr class="codeline" data-linenumber="1419"><td class="num" id="LN1419">1419</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1420"><td class="num" id="LN1420">1420</td><td class="line"> value = &amp;params[n_params].value;</td></tr>
+<tr class="codeline" data-linenumber="1421"><td class="num" id="LN1421">1421</td><td class="line"> <span class='macro'>G_VALUE_TYPE (value)<span class='macro_popup'>(((GValue*) (value))-&gt;g_type)</span></span> = 0;</td></tr>
+<tr class="codeline" data-linenumber="1422"><td class="num" id="LN1422">1422</td><td class="line"> g_value_init (value, <span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1423"><td class="num" id="LN1423">1423</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1424"><td class="num" id="LN1424">1424</td><td class="line"> <span class='keyword'>if</span> (pspec-&gt;name == <span class='macro'>I_(TERMINAL_PROFILE_NAME)<span class='macro_popup'>g_intern_static_string ("name")</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1425"><td class="num" id="LN1425">1425</td><td class="line"> g_value_set_static_string (value, profile_name);</td></tr>
+<tr class="codeline" data-linenumber="1426"><td class="num" id="LN1426">1426</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (pspec-&gt;name == <span class='macro'>I_(TERMINAL_PROFILE_VISIBLE_NAME)<span class='macro_popup'>g_intern_static_string ("visible-name")</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1427"><td class="num" id="LN1427">1427</td><td class="line"> g_value_set_static_string (value, visible_name);</td></tr>
+<tr class="codeline" data-linenumber="1428"><td class="num" id="LN1428">1428</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="1429"><td class="num" id="LN1429">1429</td><td class="line"> g_object_get_property (base_object, pspec-&gt;name, value);</td></tr>
+<tr class="codeline" data-linenumber="1430"><td class="num" id="LN1430">1430</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1431"><td class="num" id="LN1431">1431</td><td class="line"> ++n_params;</td></tr>
+<tr class="codeline" data-linenumber="1432"><td class="num" id="LN1432">1432</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1433"><td class="num" id="LN1433">1433</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1434"><td class="num" id="LN1434">1434</td><td class="line"> new_profile = g_object_newv (<span class='macro'>TERMINAL_TYPE_PROFILE<span class='macro_popup'>(terminal_profile_get_type ())</span></span>, n_params, params);</td></tr>
+<tr class="codeline" data-linenumber="1435"><td class="num" id="LN1435">1435</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1436"><td class="num" id="LN1436">1436</td><td class="line"> g_object_unref (base_profile);</td></tr>
+<tr class="codeline" data-linenumber="1437"><td class="num" id="LN1437">1437</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1438"><td class="num" id="LN1438">1438</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; n_params; ++i)</td></tr>
+<tr class="codeline" data-linenumber="1439"><td class="num" id="LN1439">1439</td><td class="line"> g_value_unset (&amp;params[i].value);</td></tr>
+<tr class="codeline" data-linenumber="1440"><td class="num" id="LN1440">1440</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1441"><td class="num" id="LN1441">1441</td><td class="line"> <span class='comment'>/* Flush the new profile to GSettings */</span></td></tr>
+<tr class="codeline" data-linenumber="1442"><td class="num" id="LN1442">1442</td><td class="line"> new_priv = new_profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1443"><td class="num" id="LN1443">1443</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1444"><td class="num" id="LN1444">1444</td><td class="line"> g_slist_free (new_priv-&gt;dirty_pspecs);</td></tr>
+<tr class="codeline" data-linenumber="1445"><td class="num" id="LN1445">1445</td><td class="line"> new_priv-&gt;dirty_pspecs = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1446"><td class="num" id="LN1446">1446</td><td class="line"> <span class='keyword'>if</span> (new_priv-&gt;save_idle_id != 0)</td></tr>
+<tr class="codeline" data-linenumber="1447"><td class="num" id="LN1447">1447</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1448"><td class="num" id="LN1448">1448</td><td class="line"> g_source_remove (new_priv-&gt;save_idle_id);</td></tr>
+<tr class="codeline" data-linenumber="1449"><td class="num" id="LN1449">1449</td><td class="line"> new_priv-&gt;save_idle_id = 0;</td></tr>
+<tr class="codeline" data-linenumber="1450"><td class="num" id="LN1450">1450</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1451"><td class="num" id="LN1451">1451</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1452"><td class="num" id="LN1452">1452</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; n_pspecs; ++i)</td></tr>
+<tr class="codeline" data-linenumber="1453"><td class="num" id="LN1453">1453</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1454"><td class="num" id="LN1454">1454</td><td class="line"> GParamSpec *pspec = pspecs[i];</td></tr>
+<tr class="codeline" data-linenumber="1455"><td class="num" id="LN1455">1455</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1456"><td class="num" id="LN1456">1456</td><td class="line"> <span class='keyword'>if</span> (pspec-&gt;owner_type != <span class='macro'>TERMINAL_TYPE_PROFILE<span class='macro_popup'>(terminal_profile_get_type ())</span></span> ||</td></tr>
+<tr class="codeline" data-linenumber="1457"><td class="num" id="LN1457">1457</td><td class="line"> (pspec-&gt;flags &amp; G_PARAM_WRITABLE) == 0)</td></tr>
+<tr class="codeline" data-linenumber="1458"><td class="num" id="LN1458">1458</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="1459"><td class="num" id="LN1459">1459</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1460"><td class="num" id="LN1460">1460</td><td class="line"> new_priv-&gt;dirty_pspecs = g_slist_prepend (new_priv-&gt;dirty_pspecs, pspec);</td></tr>
+<tr class="codeline" data-linenumber="1461"><td class="num" id="LN1461">1461</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1462"><td class="num" id="LN1462">1462</td><td class="line"> g_free (pspecs);</td></tr>
+<tr class="codeline" data-linenumber="1463"><td class="num" id="LN1463">1463</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1464"><td class="num" id="LN1464">1464</td><td class="line"> terminal_profile_save (new_profile);</td></tr>
+<tr class="codeline" data-linenumber="1465"><td class="num" id="LN1465">1465</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1466"><td class="num" id="LN1466">1466</td><td class="line"> <span class='keyword'>return</span> new_profile;</td></tr>
+<tr class="codeline" data-linenumber="1467"><td class="num" id="LN1467">1467</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1468"><td class="num" id="LN1468">1468</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1469"><td class="num" id="LN1469">1469</td><td class="line"><span class='comment'>/* Public API */</span></td></tr>
+<tr class="codeline" data-linenumber="1470"><td class="num" id="LN1470">1470</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1471"><td class="num" id="LN1471">1471</td><td class="line">gboolean</td></tr>
+<tr class="codeline" data-linenumber="1472"><td class="num" id="LN1472">1472</td><td class="line">terminal_profile_get_property_boolean (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1473"><td class="num" id="LN1473">1473</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="1474"><td class="num" id="LN1474">1474</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1475"><td class="num" id="LN1475">1475</td><td class="line"> <span class='keyword'>const</span> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="1476"><td class="num" id="LN1476">1476</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1477"><td class="num" id="LN1477">1477</td><td class="line"> value = get_prop_value_from_prop_name (profile, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="1478"><td class="num" id="LN1478">1478</td><td class="line"> <span class='macro'>g_return_val_if_fail (value != NULL &amp;&amp; G_VALUE_HOLDS_BOOLEAN (value), FALSE)<span class='macro_popup'>do { if ((value != ((void*)0) &amp;&amp; (((__extension__ ({ const<br> GValue *__val = (const GValue*) ((value)); GType __t = (((GType<br>) ((5) &lt;&lt; (2)))); gboolean __r; if (!__val) __r = (0); else<br> if (__val-&gt;g_type == __t) __r = (!(0)); else __r = g_type_check_value_holds<br> (__val, __t); __r; })))))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "value != NULL &amp;&amp; G_VALUE_HOLDS_BOOLEAN (value)"<br>); return ((0)); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1479"><td class="num" id="LN1479">1479</td><td class="line"> <span class='keyword'>if</span> (!value || !<span class='macro'>G_VALUE_HOLDS_BOOLEAN (value)<span class='macro_popup'>(((__extension__ ({ const GValue *__val = (const GValue*) ((value<br>)); GType __t = (((GType) ((5) &lt;&lt; (2)))); gboolean __r;<br> if (!__val) __r = (0); else if (__val-&gt;g_type == __t) __r<br> = (!(0)); else __r = g_type_check_value_holds (__val, __t); __r<br>; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1480"><td class="num" id="LN1480">1480</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1481"><td class="num" id="LN1481">1481</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1482"><td class="num" id="LN1482">1482</td><td class="line"> <span class='keyword'>return</span> g_value_get_boolean (value);</td></tr>
+<tr class="codeline" data-linenumber="1483"><td class="num" id="LN1483">1483</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1484"><td class="num" id="LN1484">1484</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1485"><td class="num" id="LN1485">1485</td><td class="line">gconstpointer</td></tr>
+<tr class="codeline" data-linenumber="1486"><td class="num" id="LN1486">1486</td><td class="line">terminal_profile_get_property_boxed (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1487"><td class="num" id="LN1487">1487</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="1488"><td class="num" id="LN1488">1488</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1489"><td class="num" id="LN1489">1489</td><td class="line"> <span class='keyword'>const</span> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="1490"><td class="num" id="LN1490">1490</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1491"><td class="num" id="LN1491">1491</td><td class="line"> value = get_prop_value_from_prop_name (profile, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="1492"><td class="num" id="LN1492">1492</td><td class="line"> <span class='macro'>g_return_val_if_fail (value != NULL &amp;&amp; G_VALUE_HOLDS_BOXED (value), NULL)<span class='macro_popup'>do { if ((value != ((void*)0) &amp;&amp; (((__extension__ ({ const<br> GValue *__val = (const GValue*) ((value)); GType __t = (((GType<br>) ((18) &lt;&lt; (2)))); gboolean __r; if (!__val) __r = (0);<br> else if (__val-&gt;g_type == __t) __r = (!(0)); else __r = g_type_check_value_holds<br> (__val, __t); __r; })))))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "value != NULL &amp;&amp; G_VALUE_HOLDS_BOXED (value)"<br>); return (((void*)0)); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1493"><td class="num" id="LN1493">1493</td><td class="line"> <span class='keyword'>if</span> (!value || !<span class='macro'>G_VALUE_HOLDS_BOXED (value)<span class='macro_popup'>(((__extension__ ({ const GValue *__val = (const GValue*) ((value<br>)); GType __t = (((GType) ((18) &lt;&lt; (2)))); gboolean __r<br>; if (!__val) __r = (0); else if (__val-&gt;g_type == __t) __r<br> = (!(0)); else __r = g_type_check_value_holds (__val, __t); __r<br>; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1494"><td class="num" id="LN1494">1494</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1495"><td class="num" id="LN1495">1495</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1496"><td class="num" id="LN1496">1496</td><td class="line"> <span class='keyword'>return</span> g_value_get_boxed (value);</td></tr>
+<tr class="codeline" data-linenumber="1497"><td class="num" id="LN1497">1497</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1498"><td class="num" id="LN1498">1498</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1499"><td class="num" id="LN1499">1499</td><td class="line"><span class='keyword'>double</span></td></tr>
+<tr class="codeline" data-linenumber="1500"><td class="num" id="LN1500">1500</td><td class="line">terminal_profile_get_property_double (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1501"><td class="num" id="LN1501">1501</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="1502"><td class="num" id="LN1502">1502</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1503"><td class="num" id="LN1503">1503</td><td class="line"> <span class='keyword'>const</span> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="1504"><td class="num" id="LN1504">1504</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1505"><td class="num" id="LN1505">1505</td><td class="line"> value = get_prop_value_from_prop_name (profile, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="1506"><td class="num" id="LN1506">1506</td><td class="line"> <span class='macro'>g_return_val_if_fail (value != NULL &amp;&amp; G_VALUE_HOLDS_DOUBLE (value), 0.0)<span class='macro_popup'>do { if ((value != ((void*)0) &amp;&amp; (((__extension__ ({ const<br> GValue *__val = (const GValue*) ((value)); GType __t = (((GType<br>) ((15) &lt;&lt; (2)))); gboolean __r; if (!__val) __r = (0);<br> else if (__val-&gt;g_type == __t) __r = (!(0)); else __r = g_type_check_value_holds<br> (__val, __t); __r; })))))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "value != NULL &amp;&amp; G_VALUE_HOLDS_DOUBLE (value)"<br>); return (0.0); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1507"><td class="num" id="LN1507">1507</td><td class="line"> <span class='keyword'>if</span> (!value || !<span class='macro'>G_VALUE_HOLDS_DOUBLE (value)<span class='macro_popup'>(((__extension__ ({ const GValue *__val = (const GValue*) ((value<br>)); GType __t = (((GType) ((15) &lt;&lt; (2)))); gboolean __r<br>; if (!__val) __r = (0); else if (__val-&gt;g_type == __t) __r<br> = (!(0)); else __r = g_type_check_value_holds (__val, __t); __r<br>; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1508"><td class="num" id="LN1508">1508</td><td class="line"> <span class='keyword'>return</span> 0.0;</td></tr>
+<tr class="codeline" data-linenumber="1509"><td class="num" id="LN1509">1509</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1510"><td class="num" id="LN1510">1510</td><td class="line"> <span class='keyword'>return</span> g_value_get_double (value);</td></tr>
+<tr class="codeline" data-linenumber="1511"><td class="num" id="LN1511">1511</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1512"><td class="num" id="LN1512">1512</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1513"><td class="num" id="LN1513">1513</td><td class="line"><span class='keyword'>int</span></td></tr>
+<tr class="codeline" data-linenumber="1514"><td class="num" id="LN1514">1514</td><td class="line">terminal_profile_get_property_enum (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1515"><td class="num" id="LN1515">1515</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="1516"><td class="num" id="LN1516">1516</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1517"><td class="num" id="LN1517">1517</td><td class="line"> <span class='keyword'>const</span> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="1518"><td class="num" id="LN1518">1518</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1519"><td class="num" id="LN1519">1519</td><td class="line"> value = get_prop_value_from_prop_name (profile, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="1520"><td class="num" id="LN1520">1520</td><td class="line"> <span class='macro'>g_return_val_if_fail (value != NULL &amp;&amp; G_VALUE_HOLDS_ENUM (value), 0)<span class='macro_popup'>do { if ((value != ((void*)0) &amp;&amp; (((__extension__ ({ const<br> GValue *__val = (const GValue*) ((value)); GType __t = (((GType<br>) ((12) &lt;&lt; (2)))); gboolean __r; if (!__val) __r = (0);<br> else if (__val-&gt;g_type == __t) __r = (!(0)); else __r = g_type_check_value_holds<br> (__val, __t); __r; })))))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "value != NULL &amp;&amp; G_VALUE_HOLDS_ENUM (value)"<br>); return (0); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1521"><td class="num" id="LN1521">1521</td><td class="line"> <span class='keyword'>if</span> (!value || !<span class='macro'>G_VALUE_HOLDS_ENUM (value)<span class='macro_popup'>(((__extension__ ({ const GValue *__val = (const GValue*) ((value<br>)); GType __t = (((GType) ((12) &lt;&lt; (2)))); gboolean __r<br>; if (!__val) __r = (0); else if (__val-&gt;g_type == __t) __r<br> = (!(0)); else __r = g_type_check_value_holds (__val, __t); __r<br>; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1522"><td class="num" id="LN1522">1522</td><td class="line"> <span class='keyword'>return</span> 0;</td></tr>
+<tr class="codeline" data-linenumber="1523"><td class="num" id="LN1523">1523</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1524"><td class="num" id="LN1524">1524</td><td class="line"> <span class='keyword'>return</span> g_value_get_enum (value);</td></tr>
+<tr class="codeline" data-linenumber="1525"><td class="num" id="LN1525">1525</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1526"><td class="num" id="LN1526">1526</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1527"><td class="num" id="LN1527">1527</td><td class="line"><span class='keyword'>int</span></td></tr>
+<tr class="codeline" data-linenumber="1528"><td class="num" id="LN1528">1528</td><td class="line">terminal_profile_get_property_int (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1529"><td class="num" id="LN1529">1529</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="1530"><td class="num" id="LN1530">1530</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1531"><td class="num" id="LN1531">1531</td><td class="line"> <span class='keyword'>const</span> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="1532"><td class="num" id="LN1532">1532</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1533"><td class="num" id="LN1533">1533</td><td class="line"> value = get_prop_value_from_prop_name (profile, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="1534"><td class="num" id="LN1534">1534</td><td class="line"> <span class='macro'>g_return_val_if_fail (value != NULL &amp;&amp; G_VALUE_HOLDS_INT (value), 0)<span class='macro_popup'>do { if ((value != ((void*)0) &amp;&amp; (((__extension__ ({ const<br> GValue *__val = (const GValue*) ((value)); GType __t = (((GType<br>) ((6) &lt;&lt; (2)))); gboolean __r; if (!__val) __r = (0); else<br> if (__val-&gt;g_type == __t) __r = (!(0)); else __r = g_type_check_value_holds<br> (__val, __t); __r; })))))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "value != NULL &amp;&amp; G_VALUE_HOLDS_INT (value)"<br>); return (0); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1535"><td class="num" id="LN1535">1535</td><td class="line"> <span class='keyword'>if</span> (!value || !<span class='macro'>G_VALUE_HOLDS_INT (value)<span class='macro_popup'>(((__extension__ ({ const GValue *__val = (const GValue*) ((value<br>)); GType __t = (((GType) ((6) &lt;&lt; (2)))); gboolean __r;<br> if (!__val) __r = (0); else if (__val-&gt;g_type == __t) __r<br> = (!(0)); else __r = g_type_check_value_holds (__val, __t); __r<br>; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1536"><td class="num" id="LN1536">1536</td><td class="line"> <span class='keyword'>return</span> 0;</td></tr>
+<tr class="codeline" data-linenumber="1537"><td class="num" id="LN1537">1537</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1538"><td class="num" id="LN1538">1538</td><td class="line"> <span class='keyword'>return</span> g_value_get_int (value);</td></tr>
+<tr class="codeline" data-linenumber="1539"><td class="num" id="LN1539">1539</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1540"><td class="num" id="LN1540">1540</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1541"><td class="num" id="LN1541">1541</td><td class="line">gpointer</td></tr>
+<tr class="codeline" data-linenumber="1542"><td class="num" id="LN1542">1542</td><td class="line">terminal_profile_get_property_object (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1543"><td class="num" id="LN1543">1543</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="1544"><td class="num" id="LN1544">1544</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1545"><td class="num" id="LN1545">1545</td><td class="line"> <span class='keyword'>const</span> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="1546"><td class="num" id="LN1546">1546</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1547"><td class="num" id="LN1547">1547</td><td class="line"> value = get_prop_value_from_prop_name (profile, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="1548"><td class="num" id="LN1548">1548</td><td class="line"> <span class='macro'>g_return_val_if_fail (value != NULL &amp;&amp; G_VALUE_HOLDS_OBJECT (value), NULL)<span class='macro_popup'>do { if ((value != ((void*)0) &amp;&amp; (((__extension__ ({ const<br> GValue *__val = (const GValue*) ((value)); GType __t = (((GType<br>) ((20) &lt;&lt; (2)))); gboolean __r; if (!__val) __r = (0);<br> else if (__val-&gt;g_type == __t) __r = (!(0)); else __r = g_type_check_value_holds<br> (__val, __t); __r; })))))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "value != NULL &amp;&amp; G_VALUE_HOLDS_OBJECT (value)"<br>); return (((void*)0)); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1549"><td class="num" id="LN1549">1549</td><td class="line"> <span class='keyword'>if</span> (!value || !<span class='macro'>G_VALUE_HOLDS_OBJECT (value)<span class='macro_popup'>(((__extension__ ({ const GValue *__val = (const GValue*) ((value<br>)); GType __t = (((GType) ((20) &lt;&lt; (2)))); gboolean __r<br>; if (!__val) __r = (0); else if (__val-&gt;g_type == __t) __r<br> = (!(0)); else __r = g_type_check_value_holds (__val, __t); __r<br>; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1550"><td class="num" id="LN1550">1550</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1551"><td class="num" id="LN1551">1551</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1552"><td class="num" id="LN1552">1552</td><td class="line"> <span class='keyword'>return</span> g_value_get_object (value);</td></tr>
+<tr class="codeline" data-linenumber="1553"><td class="num" id="LN1553">1553</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1554"><td class="num" id="LN1554">1554</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1555"><td class="num" id="LN1555">1555</td><td class="line"><span class='keyword'>const</span> <span class='keyword'>char</span>*</td></tr>
+<tr class="codeline" data-linenumber="1556"><td class="num" id="LN1556">1556</td><td class="line">terminal_profile_get_property_string (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1557"><td class="num" id="LN1557">1557</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="1558"><td class="num" id="LN1558">1558</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1559"><td class="num" id="LN1559">1559</td><td class="line"> <span class='keyword'>const</span> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="1560"><td class="num" id="LN1560">1560</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1561"><td class="num" id="LN1561">1561</td><td class="line"> value = get_prop_value_from_prop_name (profile, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="1562"><td class="num" id="LN1562">1562</td><td class="line"> <span class='macro'>g_return_val_if_fail (value != NULL &amp;&amp; G_VALUE_HOLDS_STRING (value), NULL)<span class='macro_popup'>do { if ((value != ((void*)0) &amp;&amp; (((__extension__ ({ const<br> GValue *__val = (const GValue*) ((value)); GType __t = (((GType<br>) ((16) &lt;&lt; (2)))); gboolean __r; if (!__val) __r = (0);<br> else if (__val-&gt;g_type == __t) __r = (!(0)); else __r = g_type_check_value_holds<br> (__val, __t); __r; })))))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "value != NULL &amp;&amp; G_VALUE_HOLDS_STRING (value)"<br>); return (((void*)0)); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1563"><td class="num" id="LN1563">1563</td><td class="line"> <span class='keyword'>if</span> (!value || !<span class='macro'>G_VALUE_HOLDS_STRING (value)<span class='macro_popup'>(((__extension__ ({ const GValue *__val = (const GValue*) ((value<br>)); GType __t = (((GType) ((16) &lt;&lt; (2)))); gboolean __r<br>; if (!__val) __r = (0); else if (__val-&gt;g_type == __t) __r<br> = (!(0)); else __r = g_type_check_value_holds (__val, __t); __r<br>; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1564"><td class="num" id="LN1564">1564</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1565"><td class="num" id="LN1565">1565</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1566"><td class="num" id="LN1566">1566</td><td class="line"> <span class='keyword'>return</span> g_value_get_string (value);</td></tr>
+<tr class="codeline" data-linenumber="1567"><td class="num" id="LN1567">1567</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1568"><td class="num" id="LN1568">1568</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1569"><td class="num" id="LN1569">1569</td><td class="line">gboolean</td></tr>
+<tr class="codeline" data-linenumber="1570"><td class="num" id="LN1570">1570</td><td class="line">terminal_profile_property_locked (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1571"><td class="num" id="LN1571">1571</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="1572"><td class="num" id="LN1572">1572</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1573"><td class="num" id="LN1573">1573</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1574"><td class="num" id="LN1574">1574</td><td class="line"> GParamSpec *pspec;</td></tr>
+<tr class="codeline" data-linenumber="1575"><td class="num" id="LN1575">1575</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1576"><td class="num" id="LN1576">1576</td><td class="line"> pspec = get_pspec_from_name (profile, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="1577"><td class="num" id="LN1577">1577</td><td class="line"> <span class='macro'>g_return_val_if_fail (pspec != NULL, FALSE)<span class='macro_popup'>do { if ((pspec != ((void*)0))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "pspec != NULL");<br> return ((0)); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1578"><td class="num" id="LN1578">1578</td><td class="line"> <span class='keyword'>if</span> (!pspec)</td></tr>
+<tr class="codeline" data-linenumber="1579"><td class="num" id="LN1579">1579</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1580"><td class="num" id="LN1580">1580</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1581"><td class="num" id="LN1581">1581</td><td class="line"> <span class='keyword'>return</span> priv-&gt;locked[pspec-&gt;param_id];</td></tr>
+<tr class="codeline" data-linenumber="1582"><td class="num" id="LN1582">1582</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1583"><td class="num" id="LN1583">1583</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1584"><td class="num" id="LN1584">1584</td><td class="line"><span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1585"><td class="num" id="LN1585">1585</td><td class="line">terminal_profile_reset_property (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1586"><td class="num" id="LN1586">1586</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="1587"><td class="num" id="LN1587">1587</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1588"><td class="num" id="LN1588">1588</td><td class="line"> GParamSpec *pspec;</td></tr>
+<tr class="codeline" data-linenumber="1589"><td class="num" id="LN1589">1589</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1590"><td class="num" id="LN1590">1590</td><td class="line"> pspec = get_pspec_from_name (profile, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="1591"><td class="num" id="LN1591">1591</td><td class="line"> <span class='macro'>g_return_if_fail (pspec != NULL)<span class='macro_popup'>do { if ((pspec != ((void*)0))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "pspec != NULL");<br> return; } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1592"><td class="num" id="LN1592">1592</td><td class="line"> <span class='keyword'>if</span> (!pspec ||</td></tr>
+<tr class="codeline" data-linenumber="1593"><td class="num" id="LN1593">1593</td><td class="line"> (pspec-&gt;flags &amp; G_PARAM_WRITABLE) == 0)</td></tr>
+<tr class="codeline" data-linenumber="1594"><td class="num" id="LN1594">1594</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1595"><td class="num" id="LN1595">1595</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1596"><td class="num" id="LN1596">1596</td><td class="line"> terminal_profile_reset_property_internal (profile, pspec, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1597"><td class="num" id="LN1597">1597</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1598"><td class="num" id="LN1598">1598</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1599"><td class="num" id="LN1599">1599</td><td class="line">gboolean</td></tr>
+<tr class="codeline" data-linenumber="1600"><td class="num" id="LN1600">1600</td><td class="line">terminal_profile_get_palette (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1601"><td class="num" id="LN1601">1601</td><td class="line"> GdkRGBA *colors,</td></tr>
+<tr class="codeline" data-linenumber="1602"><td class="num" id="LN1602">1602</td><td class="line"> guint *n_colors)</td></tr>
+<tr class="codeline" data-linenumber="1603"><td class="num" id="LN1603">1603</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1604"><td class="num" id="LN1604">1604</td><td class="line"> TerminalProfilePrivate *priv;</td></tr>
+<tr class="codeline" data-linenumber="1605"><td class="num" id="LN1605">1605</td><td class="line"> GValueArray *array;</td></tr>
+<tr class="codeline" data-linenumber="1606"><td class="num" id="LN1606">1606</td><td class="line"> guint i, n;</td></tr>
+<tr class="codeline" data-linenumber="1607"><td class="num" id="LN1607">1607</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1608"><td class="num" id="LN1608">1608</td><td class="line"> <span class='macro'>g_return_val_if_fail (TERMINAL_IS_PROFILE (profile), FALSE)<span class='macro_popup'>do { if (((((__extension__ ({ GTypeInstance *__inst = (GTypeInstance<br>*) ((profile)); GType __t = ((terminal_profile_get_type ()));<br> gboolean __r; if (!__inst) __r = (0); else if (__inst-&gt;g_class<br> &amp;&amp; __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)<br>); else __r = g_type_check_instance_is_a (__inst, __t); __r; }<br>)))))) { } else { g_return_if_fail_warning (((gchar*) 0), ((const<br> char*) (__func__)), "TERMINAL_IS_PROFILE (profile)"); return<br> ((0)); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1609"><td class="num" id="LN1609">1609</td><td class="line"> <span class='macro'>g_return_val_if_fail (colors != NULL &amp;&amp; n_colors != NULL, FALSE)<span class='macro_popup'>do { if ((colors != ((void*)0) &amp;&amp; n_colors != ((void*<br>)0))) { } else { g_return_if_fail_warning (((gchar*) 0), ((const<br> char*) (__func__)), "colors != NULL &amp;&amp; n_colors != NULL"<br>); return ((0)); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1610"><td class="num" id="LN1610">1610</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1611"><td class="num" id="LN1611">1611</td><td class="line"> priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1612"><td class="num" id="LN1612">1612</td><td class="line"> array = g_value_get_boxed (g_value_array_get_nth (priv-&gt;properties, PROP_PALETTE));</td></tr>
+<tr class="codeline" data-linenumber="1613"><td class="num" id="LN1613">1613</td><td class="line"> <span class='keyword'>if</span> (!array)</td></tr>
+<tr class="codeline" data-linenumber="1614"><td class="num" id="LN1614">1614</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1615"><td class="num" id="LN1615">1615</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1616"><td class="num" id="LN1616">1616</td><td class="line"> n = <span class='macro'>MIN (array-&gt;n_values, *n_colors)<span class='macro_popup'>(((array-&gt;n_values) &lt; (*n_colors)) ? (array-&gt;n_values<br>) : (*n_colors))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1617"><td class="num" id="LN1617">1617</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; n; ++i)</td></tr>
+<tr class="codeline" data-linenumber="1618"><td class="num" id="LN1618">1618</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1619"><td class="num" id="LN1619">1619</td><td class="line"> GdkRGBA *color = g_value_get_boxed (g_value_array_get_nth (array, i));</td></tr>
+<tr class="codeline" data-linenumber="1620"><td class="num" id="LN1620">1620</td><td class="line"> <span class='keyword'>if</span> (!color)</td></tr>
+<tr class="codeline" data-linenumber="1621"><td class="num" id="LN1621">1621</td><td class="line"> <span class='keyword'>continue</span>; <span class='comment'>/* shouldn't happen!! */</span></td></tr>
+<tr class="codeline" data-linenumber="1622"><td class="num" id="LN1622">1622</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1623"><td class="num" id="LN1623">1623</td><td class="line"> colors[i] = *color;</td></tr>
+<tr class="codeline" data-linenumber="1624"><td class="num" id="LN1624">1624</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1625"><td class="num" id="LN1625">1625</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1626"><td class="num" id="LN1626">1626</td><td class="line"> *n_colors = n;</td></tr>
+<tr class="codeline" data-linenumber="1627"><td class="num" id="LN1627">1627</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1628"><td class="num" id="LN1628">1628</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1629"><td class="num" id="LN1629">1629</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1630"><td class="num" id="LN1630">1630</td><td class="line">gboolean</td></tr>
+<tr class="codeline" data-linenumber="1631"><td class="num" id="LN1631">1631</td><td class="line">terminal_profile_get_palette_is_builtin (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1632"><td class="num" id="LN1632">1632</td><td class="line"> guint *n)</td></tr>
+<tr class="codeline" data-linenumber="1633"><td class="num" id="LN1633">1633</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1634"><td class="num" id="LN1634">1634</td><td class="line"> GdkRGBA colors[<span class='macro'>TERMINAL_PALETTE_SIZE<span class='macro_popup'>16</span></span>];</td></tr>
+<tr class="codeline" data-linenumber="1635"><td class="num" id="LN1635">1635</td><td class="line"> guint n_colors;</td></tr>
+<tr class="codeline" data-linenumber="1636"><td class="num" id="LN1636">1636</td><td class="line"> guint i;</td></tr>
+<tr class="codeline" data-linenumber="1637"><td class="num" id="LN1637">1637</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1638"><td class="num" id="LN1638">1638</td><td class="line"> n_colors = <span class='macro'>G_N_ELEMENTS (colors)<span class='macro_popup'>(sizeof (colors) / sizeof ((colors)[0]))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1639"><td class="num" id="LN1639">1639</td><td class="line"> <span class='keyword'>if</span> (!terminal_profile_get_palette (profile, colors, &amp;n_colors) ||</td></tr>
+<tr class="codeline" data-linenumber="1640"><td class="num" id="LN1640">1640</td><td class="line"> n_colors != <span class='macro'>TERMINAL_PALETTE_SIZE<span class='macro_popup'>16</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1641"><td class="num" id="LN1641">1641</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1642"><td class="num" id="LN1642">1642</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1643"><td class="num" id="LN1643">1643</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; <span class='macro'>TERMINAL_PALETTE_N_BUILTINS<span class='macro_popup'>5</span></span>; ++i)</td></tr>
+<tr class="codeline" data-linenumber="1644"><td class="num" id="LN1644">1644</td><td class="line"> <span class='keyword'>if</span> (palette_cmp (colors, terminal_palettes[i]))</td></tr>
+<tr class="codeline" data-linenumber="1645"><td class="num" id="LN1645">1645</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1646"><td class="num" id="LN1646">1646</td><td class="line"> *n = i;</td></tr>
+<tr class="codeline" data-linenumber="1647"><td class="num" id="LN1647">1647</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1648"><td class="num" id="LN1648">1648</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1649"><td class="num" id="LN1649">1649</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1650"><td class="num" id="LN1650">1650</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1651"><td class="num" id="LN1651">1651</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1652"><td class="num" id="LN1652">1652</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1653"><td class="num" id="LN1653">1653</td><td class="line"><span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1654"><td class="num" id="LN1654">1654</td><td class="line">terminal_profile_set_palette_builtin (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1655"><td class="num" id="LN1655">1655</td><td class="line"> guint n)</td></tr>
+<tr class="codeline" data-linenumber="1656"><td class="num" id="LN1656">1656</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1657"><td class="num" id="LN1657">1657</td><td class="line"> GValue value = { 0, };</td></tr>
+<tr class="codeline" data-linenumber="1658"><td class="num" id="LN1658">1658</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1659"><td class="num" id="LN1659">1659</td><td class="line"> <span class='macro'>g_return_if_fail (n &lt; TERMINAL_PALETTE_N_BUILTINS)<span class='macro_popup'>do { if ((n &lt; 5)) { } else { g_return_if_fail_warning (((gchar<br>*) 0), ((const char*) (__func__)), "n &lt; TERMINAL_PALETTE_N_BUILTINS"<br>); return; } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1660"><td class="num" id="LN1660">1660</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1661"><td class="num" id="LN1661">1661</td><td class="line"> g_value_init (&amp;value, <span class='macro'>G_TYPE_VALUE_ARRAY<span class='macro_popup'>(g_value_array_get_type ()) GCC warning "Deprecated pre-processor symbol: replace with \"(g_array_get_type ())\""<br>
+</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1662"><td class="num" id="LN1662">1662</td><td class="line"> set_value_from_palette (&amp;value, terminal_palettes[n], <span class='macro'>TERMINAL_PALETTE_SIZE<span class='macro_popup'>16</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1663"><td class="num" id="LN1663">1663</td><td class="line"> g_object_set_property (<span class='macro'>G_OBJECT (profile)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((profile)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, <span class='macro'>TERMINAL_PROFILE_PALETTE<span class='macro_popup'>"palette"</span></span>, &amp;value);</td></tr>
+<tr class="codeline" data-linenumber="1664"><td class="num" id="LN1664">1664</td><td class="line"> g_value_unset (&amp;value);</td></tr>
+<tr class="codeline" data-linenumber="1665"><td class="num" id="LN1665">1665</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1666"><td class="num" id="LN1666">1666</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1667"><td class="num" id="LN1667">1667</td><td class="line">gboolean</td></tr>
+<tr class="codeline" data-linenumber="1668"><td class="num" id="LN1668">1668</td><td class="line">terminal_profile_modify_palette_entry (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1669"><td class="num" id="LN1669">1669</td><td class="line"> guint i,</td></tr>
+<tr class="codeline" data-linenumber="1670"><td class="num" id="LN1670">1670</td><td class="line"> <span class='keyword'>const</span> GdkRGBA *color)</td></tr>
+<tr class="codeline" data-linenumber="1671"><td class="num" id="LN1671">1671</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1672"><td class="num" id="LN1672">1672</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1673"><td class="num" id="LN1673">1673</td><td class="line"> GValueArray *array;</td></tr>
+<tr class="codeline" data-linenumber="1674"><td class="num" id="LN1674">1674</td><td class="line"> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="1675"><td class="num" id="LN1675">1675</td><td class="line"> GdkRGBA *old_color;</td></tr>
+<tr class="codeline" data-linenumber="1676"><td class="num" id="LN1676">1676</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1677"><td class="num" id="LN1677">1677</td><td class="line"> array = g_value_get_boxed (g_value_array_get_nth (priv-&gt;properties, PROP_PALETTE));</td></tr>
+<tr class="codeline" data-linenumber="1678"><td class="num" id="LN1678">1678</td><td class="line"> <span class='keyword'>if</span> (!array ||</td></tr>
+<tr class="codeline" data-linenumber="1679"><td class="num" id="LN1679">1679</td><td class="line"> i &gt;= array-&gt;n_values)</td></tr>
+<tr class="codeline" data-linenumber="1680"><td class="num" id="LN1680">1680</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1681"><td class="num" id="LN1681">1681</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1682"><td class="num" id="LN1682">1682</td><td class="line"> value = g_value_array_get_nth (array, i);</td></tr>
+<tr class="codeline" data-linenumber="1683"><td class="num" id="LN1683">1683</td><td class="line"> old_color = g_value_get_boxed (value);</td></tr>
+<tr class="codeline" data-linenumber="1684"><td class="num" id="LN1684">1684</td><td class="line"> <span class='keyword'>if</span> (!old_color ||</td></tr>
+<tr class="codeline" data-linenumber="1685"><td class="num" id="LN1685">1685</td><td class="line"> !rgba_equal (old_color, color))</td></tr>
+<tr class="codeline" data-linenumber="1686"><td class="num" id="LN1686">1686</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1687"><td class="num" id="LN1687">1687</td><td class="line"> g_value_set_boxed (value, color);</td></tr>
+<tr class="codeline" data-linenumber="1688"><td class="num" id="LN1688">1688</td><td class="line"> g_object_notify (<span class='macro'>G_OBJECT (profile)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((profile)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, <span class='macro'>TERMINAL_PROFILE_PALETTE<span class='macro_popup'>"palette"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1689"><td class="num" id="LN1689">1689</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1690"><td class="num" id="LN1690">1690</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1691"><td class="num" id="LN1691">1691</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1692"><td class="num" id="LN1692">1692</td><td class="line">}</td></tr>
+</table></body></html>
diff --git a/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-49a7b3.html b/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-49a7b3.html
new file mode 100644
index 0000000..90baec3
--- /dev/null
+++ b/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-49a7b3.html
@@ -0,0 +1,2385 @@
+<!doctype html>
+<html>
+<head>
+<title>terminal-profile.c</title>
+
+<style type="text/css">
+body { color:#000000; background-color:#ffffff }
+body { font-family:Helvetica, sans-serif; font-size:10pt }
+h1 { font-size:14pt }
+.FileName { margin-top: 5px; margin-bottom: 5px; display: inline; }
+.FileNav { margin-left: 5px; margin-right: 5px; display: inline; }
+.FileNav a { text-decoration:none; font-size: larger; }
+.divider { margin-top: 30px; margin-bottom: 30px; height: 15px; }
+.divider { background-color: gray; }
+.code { border-collapse:collapse; width:100%; }
+.code { font-family: "Monospace", monospace; font-size:10pt }
+.code { line-height: 1.2em }
+.comment { color: green; font-style: oblique }
+.keyword { color: blue }
+.string_literal { color: red }
+.directive { color: darkmagenta }
+
+/* Macros and variables could have pop-up notes hidden by default.
+ - Macro pop-up: expansion of the macro
+ - Variable pop-up: value (table) of the variable */
+.macro_popup, .variable_popup { display: none; }
+
+/* Pop-up appears on mouse-hover event. */
+.macro:hover .macro_popup, .variable:hover .variable_popup {
+ display: block;
+ padding: 2px;
+ -webkit-border-radius:5px;
+ -webkit-box-shadow:1px 1px 7px #000;
+ border-radius:5px;
+ box-shadow:1px 1px 7px #000;
+ position: absolute;
+ top: -1em;
+ left:10em;
+ z-index: 1
+}
+
+.macro_popup {
+ border: 2px solid red;
+ background-color:#FFF0F0;
+ font-weight: normal;
+}
+
+.variable_popup {
+ border: 2px solid blue;
+ background-color:#F0F0FF;
+ font-weight: bold;
+ font-family: Helvetica, sans-serif;
+ font-size: 9pt;
+}
+
+/* Pop-up notes needs a relative position as a base where they pops up. */
+.macro, .variable {
+ background-color: PaleGoldenRod;
+ position: relative;
+}
+.macro { color: DarkMagenta; }
+
+#tooltiphint {
+ position: fixed;
+ width: 50em;
+ margin-left: -25em;
+ left: 50%;
+ padding: 10px;
+ border: 1px solid #b0b0b0;
+ border-radius: 2px;
+ box-shadow: 1px 1px 7px black;
+ background-color: #c0c0c0;
+ z-index: 2;
+}
+
+.num { width:2.5em; padding-right:2ex; background-color:#eeeeee }
+.num { text-align:right; font-size:8pt }
+.num { color:#444444 }
+.line { padding-left: 1ex; border-left: 3px solid #ccc }
+.line { white-space: pre }
+.msg { -webkit-box-shadow:1px 1px 7px #000 }
+.msg { box-shadow:1px 1px 7px #000 }
+.msg { -webkit-border-radius:5px }
+.msg { border-radius:5px }
+.msg { font-family:Helvetica, sans-serif; font-size:8pt }
+.msg { float:left }
+.msg { position:relative }
+.msg { padding:0.25em 1ex 0.25em 1ex }
+.msg { margin-top:10px; margin-bottom:10px }
+.msg { font-weight:bold }
+.msg { max-width:60em; word-wrap: break-word; white-space: pre-wrap }
+.msgT { padding:0x; spacing:0x }
+.msgEvent { background-color:#fff8b4; color:#000000 }
+.msgControl { background-color:#bbbbbb; color:#000000 }
+.msgNote { background-color:#ddeeff; color:#000000 }
+.mrange { background-color:#dfddf3 }
+.mrange { border-bottom:1px solid #6F9DBE }
+.PathIndex { font-weight: bold; padding:0px 5px; margin-right:5px; }
+.PathIndex { -webkit-border-radius:8px }
+.PathIndex { border-radius:8px }
+.PathIndexEvent { background-color:#bfba87 }
+.PathIndexControl { background-color:#8c8c8c }
+.PathIndexPopUp { background-color: #879abc; }
+.PathNav a { text-decoration:none; font-size: larger }
+.CodeInsertionHint { font-weight: bold; background-color: #10dd10 }
+.CodeRemovalHint { background-color:#de1010 }
+.CodeRemovalHint { border-bottom:1px solid #6F9DBE }
+.msg.selected{ background-color:orange !important; }
+
+table.simpletable {
+ padding: 5px;
+ font-size:12pt;
+ margin:20px;
+ border-collapse: collapse; border-spacing: 0px;
+}
+td.rowname {
+ text-align: right;
+ vertical-align: top;
+ font-weight: bold;
+ color:#444444;
+ padding-right:2ex;
+}
+
+/* Hidden text. */
+input.spoilerhider + label {
+ cursor: pointer;
+ text-decoration: underline;
+ display: block;
+}
+input.spoilerhider {
+ display: none;
+}
+input.spoilerhider ~ .spoiler {
+ overflow: hidden;
+ margin: 10px auto 0;
+ height: 0;
+ opacity: 0;
+}
+input.spoilerhider:checked + label + .spoiler{
+ height: auto;
+ opacity: 1;
+}
+</style>
+</head>
+<body>
+<!-- BUGDESC Casting a non-structure type to a structure type and accessing a field can lead to memory access errors or data corruption -->
+
+<!-- BUGTYPE Cast from non-struct type to struct type -->
+
+<!-- BUGCATEGORY Logic error -->
+
+<!-- BUGFILE /rootdir/src/terminal-profile.c -->
+
+<!-- FILENAME terminal-profile.c -->
+
+<!-- FUNCTIONNAME terminal_profile_gsettings_notify_cb -->
+
+<!-- ISSUEHASHCONTENTOFLINEINCONTEXT 49a7b3902e4c269bdc40acdc16303a6b -->
+
+<!-- BUGLINE 600 -->
+
+<!-- BUGCOLUMN 46 -->
+
+<!-- BUGPATHLENGTH 1 -->
+
+<!-- BUGMETAEND -->
+<!-- REPORTHEADER -->
+<h3>Bug Summary</h3>
+<table class="simpletable">
+<tr><td class="rowname">File:</td><td>terminal-profile.c</td></tr>
+<tr><td class="rowname">Warning:</td><td><a href="#EndPath">line 600, column 46</a><br />Casting a non-structure type to a structure type and accessing a field can lead to memory access errors or data corruption</td></tr>
+
+</table>
+<!-- REPORTSUMMARYEXTRA -->
+<h3>Annotated Source Code</h3>
+<p>Press <a href="#" onclick="toggleHelp(); return false;">'?'</a>
+ to see keyboard shortcuts</p>
+<input type="checkbox" class="spoilerhider" id="showinvocation" />
+<label for="showinvocation" >Show analyzer invocation</label>
+<div class="spoiler">clang -cc1 -cc1 -triple x86_64-redhat-linux-gnu -analyze -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name terminal-profile.c -analyzer-checker=core -analyzer-checker=apiModeling -analyzer-checker=unix -analyzer-checker=deadcode -analyzer-checker=security.insecureAPI.UncheckedReturn -analyzer-checker=security.insecureAPI.getpw -analyzer-checker=security.insecureAPI.gets -analyzer-checker=security.insecureAPI.mktemp -analyzer-checker=security.insecureAPI.mkstemp -analyzer-checker=security.insecureAPI.vfork -analyzer-checker=nullability.NullPassedToNonnull -analyzer-checker=nullability.NullReturnedFromNonnull -analyzer-output plist -w -setup-static-analyzer -mrelocation-model static -mframe-pointer=all -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -tune-cpu generic -debugger-tuning=gdb -fcoverage-compilation-dir=/rootdir/src -resource-dir /usr/bin/../lib/clang/17 -D HAVE_CONFIG_H -I . -I .. -I ../src/mate-submodules/libegg -D TERMINAL_COMPILATION -D TERMINAL_RESOURCES_PATH_PREFIX="/org/mate/terminal" -D TERM_DATADIR="/usr/local/share" -D TERM_LOCALEDIR="/usr/local/share/locale" -D TERM_PKGDATADIR="/usr/local/share/mate-terminal" -D TERM_HELPDIR="/usr/local/share/help" -D SN_API_NOT_YET_FROZEN -D GDK_MULTIHEAD_SAFE -D G_DISABLE_SINGLE_INCLUDES -D PANGO_DISABLE_SINGLE_INCLUDES -D ATK_DISABLE_SINGLE_INCLUDES -D GDK_DISABLE_SINGLE_INCLUDES -D GDK_PIXBUF_DISABLE_SINGLE_INCLUDES -D GTK_DISABLE_SINGLE_INCLUDES -I /usr/include/dconf -I /usr/include/vte-2.91 -I /usr/include/pango-1.0 -I /usr/include/gtk-3.0 -I /usr/include/gdk-pixbuf-2.0 -I /usr/include/cairo -I /usr/include/dbus-1.0 -I /usr/lib64/dbus-1.0/include -I /usr/include/atk-1.0 -I /usr/include/harfbuzz -I /usr/include/freetype2 -I /usr/include/glib-2.0 -I /usr/lib64/glib-2.0/include -I /usr/include/cloudproviders -I /usr/include/at-spi2-atk/2.0 -I /usr/include/at-spi-2.0 -I /usr/include/blkid -I /usr/include/gio-unix-2.0 -I /usr/include/pixman-1 -I /usr/include/libmount -I /usr/include/libxml2 -I /usr/include/fribidi -I /usr/include/libpng16 -I /usr/include/sysprof-6 -internal-isystem /usr/bin/../lib/clang/17/include -internal-isystem /usr/local/include -internal-isystem /usr/bin/../lib/gcc/x86_64-redhat-linux/13/../../../../x86_64-redhat-linux/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -Wno-unused-parameter -fdebug-compilation-dir=/rootdir/src -ferror-limit 19 -fgnuc-version=4.2.1 -analyzer-checker deadcode.DeadStores -analyzer-checker alpha.deadcode.UnreachableCode -analyzer-checker alpha.core.CastSize -analyzer-checker alpha.core.CastToStruct -analyzer-checker alpha.core.IdenticalExpr -analyzer-checker alpha.core.SizeofPtr -analyzer-checker alpha.security.ArrayBoundV2 -analyzer-checker alpha.security.MallocOverflow -analyzer-checker alpha.security.ReturnPtrRange -analyzer-checker alpha.unix.SimpleStream -analyzer-checker alpha.unix.cstring.BufferOverlap -analyzer-checker alpha.unix.cstring.NotNullTerminated -analyzer-checker alpha.unix.cstring.OutOfBounds -analyzer-checker alpha.core.FixedAddr -analyzer-checker security.insecureAPI.strcpy -analyzer-output=html -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /rootdir/html-report/2024-02-18-131424-5067-1 -x c terminal-profile.c
+</div>
+<div id='tooltiphint' hidden="true">
+ <p>Keyboard shortcuts: </p>
+ <ul>
+ <li>Use 'j/k' keys for keyboard navigation</li>
+ <li>Use 'Shift+S' to show/hide relevant lines</li>
+ <li>Use '?' to toggle this window</li>
+ </ul>
+ <a href="#" onclick="toggleHelp(); return false;">Close</a>
+</div>
+<script type='text/javascript'>
+var relevant_lines = {"1": {"600": 1}};
+
+var filterCounterexample = function (hide) {
+ var tables = document.getElementsByClassName("code");
+ for (var t=0; t<tables.length; t++) {
+ var table = tables[t];
+ var file_id = table.getAttribute("data-fileid");
+ var lines_in_fid = relevant_lines[file_id];
+ if (!lines_in_fid) {
+ lines_in_fid = {};
+ }
+ var lines = table.getElementsByClassName("codeline");
+ for (var i=0; i<lines.length; i++) {
+ var el = lines[i];
+ var lineNo = el.getAttribute("data-linenumber");
+ if (!lines_in_fid[lineNo]) {
+ if (hide) {
+ el.setAttribute("hidden", "");
+ } else {
+ el.removeAttribute("hidden");
+ }
+ }
+ }
+ }
+}
+
+window.addEventListener("keydown", function (event) {
+ if (event.defaultPrevented) {
+ return;
+ }
+ // SHIFT + S
+ if (event.shiftKey && event.keyCode == 83) {
+ var checked = document.getElementsByName("showCounterexample")[0].checked;
+ filterCounterexample(!checked);
+ document.getElementsByName("showCounterexample")[0].click();
+ } else {
+ return;
+ }
+ event.preventDefault();
+}, true);
+
+document.addEventListener("DOMContentLoaded", function() {
+ document.querySelector('input[name="showCounterexample"]').onchange=
+ function (event) {
+ filterCounterexample(this.checked);
+ };
+});
+</script>
+
+<form>
+ <input type="checkbox" name="showCounterexample" id="showCounterexample" />
+ <label for="showCounterexample">
+ Show only relevant lines
+ </label>
+ <input type="checkbox" name="showArrows"
+ id="showArrows" style="margin-left: 10px" />
+ <label for="showArrows">
+ Show control flow arrows
+ </label>
+</form>
+
+<script type='text/javascript'>
+// Return range of numbers from a range [lower, upper).
+function range(lower, upper) {
+ var array = [];
+ for (var i = lower; i <= upper; ++i) {
+ array.push(i);
+ }
+ return array;
+}
+
+var getRelatedArrowIndices = function(pathId) {
+ // HTML numeration of events is a bit different than it is in the path.
+ // Everything is rotated one step to the right, so the last element
+ // (error diagnostic) has index 0.
+ if (pathId == 0) {
+ // arrowIndices has at least 2 elements
+ pathId = arrowIndices.length - 1;
+ }
+
+ return range(arrowIndices[pathId], arrowIndices[pathId - 1]);
+}
+
+var highlightArrowsForSelectedEvent = function() {
+ const selectedNum = findNum();
+ const arrowIndicesToHighlight = getRelatedArrowIndices(selectedNum);
+ arrowIndicesToHighlight.forEach((index) => {
+ var arrow = document.querySelector("#arrow" + index);
+ if(arrow) {
+ classListAdd(arrow, "selected")
+ }
+ });
+}
+
+var getAbsoluteBoundingRect = function(element) {
+ const relative = element.getBoundingClientRect();
+ return {
+ left: relative.left + window.pageXOffset,
+ right: relative.right + window.pageXOffset,
+ top: relative.top + window.pageYOffset,
+ bottom: relative.bottom + window.pageYOffset,
+ height: relative.height,
+ width: relative.width
+ };
+}
+
+var drawArrow = function(index) {
+ // This function is based on the great answer from SO:
+ // https://stackoverflow.com/a/39575674/11582326
+ var start = document.querySelector("#start" + index);
+ var end = document.querySelector("#end" + index);
+ var arrow = document.querySelector("#arrow" + index);
+
+ var startRect = getAbsoluteBoundingRect(start);
+ var endRect = getAbsoluteBoundingRect(end);
+
+ // It is an arrow from a token to itself, no need to visualize it.
+ if (startRect.top == endRect.top &&
+ startRect.left == endRect.left)
+ return;
+
+ // Each arrow is a very simple Bézier curve, with two nodes and
+ // two handles. So, we need to calculate four points in the window:
+ // * start node
+ var posStart = { x: 0, y: 0 };
+ // * end node
+ var posEnd = { x: 0, y: 0 };
+ // * handle for the start node
+ var startHandle = { x: 0, y: 0 };
+ // * handle for the end node
+ var endHandle = { x: 0, y: 0 };
+ // One can visualize it as follows:
+ //
+ // start handle
+ // /
+ // X"""_.-""""X
+ // .' \
+ // / start node
+ // |
+ // |
+ // | end node
+ // \ /
+ // `->X
+ // X-'
+ // \
+ // end handle
+ //
+ // NOTE: (0, 0) is the top left corner of the window.
+
+ // We have 3 similar, but still different scenarios to cover:
+ //
+ // 1. Two tokens on different lines.
+ // -xxx
+ // /
+ // \
+ // -> xxx
+ // In this situation, we draw arrow on the left curving to the left.
+ // 2. Two tokens on the same line, and the destination is on the right.
+ // ____
+ // / \
+ // / V
+ // xxx xxx
+ // In this situation, we draw arrow above curving upwards.
+ // 3. Two tokens on the same line, and the destination is on the left.
+ // xxx xxx
+ // ^ /
+ // \____/
+ // In this situation, we draw arrow below curving downwards.
+ const onDifferentLines = startRect.top <= endRect.top - 5 ||
+ startRect.top >= endRect.top + 5;
+ const leftToRight = startRect.left < endRect.left;
+
+ // NOTE: various magic constants are chosen empirically for
+ // better positioning and look
+ if (onDifferentLines) {
+ // Case #1
+ const topToBottom = startRect.top < endRect.top;
+ posStart.x = startRect.left - 1;
+ // We don't want to start it at the top left corner of the token,
+ // it doesn't feel like this is where the arrow comes from.
+ // For this reason, we start it in the middle of the left side
+ // of the token.
+ posStart.y = startRect.top + startRect.height / 2;
+
+ // End node has arrow head and we give it a bit more space.
+ posEnd.x = endRect.left - 4;
+ posEnd.y = endRect.top;
+
+ // Utility object with x and y offsets for handles.
+ var curvature = {
+ // We want bottom-to-top arrow to curve a bit more, so it doesn't
+ // overlap much with top-to-bottom curves (much more frequent).
+ x: topToBottom ? 15 : 25,
+ y: Math.min((posEnd.y - posStart.y) / 3, 10)
+ }
+
+ // When destination is on the different line, we can make a
+ // curvier arrow because we have space for it.
+ // So, instead of using
+ //
+ // startHandle.x = posStart.x - curvature.x
+ // endHandle.x = posEnd.x - curvature.x
+ //
+ // We use the leftmost of these two values for both handles.
+ startHandle.x = Math.min(posStart.x, posEnd.x) - curvature.x;
+ endHandle.x = startHandle.x;
+
+ // Curving downwards from the start node...
+ startHandle.y = posStart.y + curvature.y;
+ // ... and upwards from the end node.
+ endHandle.y = posEnd.y - curvature.y;
+
+ } else if (leftToRight) {
+ // Case #2
+ // Starting from the top right corner...
+ posStart.x = startRect.right - 1;
+ posStart.y = startRect.top;
+
+ // ...and ending at the top left corner of the end token.
+ posEnd.x = endRect.left + 1;
+ posEnd.y = endRect.top - 1;
+
+ // Utility object with x and y offsets for handles.
+ var curvature = {
+ x: Math.min((posEnd.x - posStart.x) / 3, 15),
+ y: 5
+ }
+
+ // Curving to the right...
+ startHandle.x = posStart.x + curvature.x;
+ // ... and upwards from the start node.
+ startHandle.y = posStart.y - curvature.y;
+
+ // And to the left...
+ endHandle.x = posEnd.x - curvature.x;
+ // ... and upwards from the end node.
+ endHandle.y = posEnd.y - curvature.y;
+
+ } else {
+ // Case #3
+ // Starting from the bottom right corner...
+ posStart.x = startRect.right;
+ posStart.y = startRect.bottom;
+
+ // ...and ending also at the bottom right corner, but of the end token.
+ posEnd.x = endRect.right - 1;
+ posEnd.y = endRect.bottom + 1;
+
+ // Utility object with x and y offsets for handles.
+ var curvature = {
+ x: Math.min((posStart.x - posEnd.x) / 3, 15),
+ y: 5
+ }
+
+ // Curving to the left...
+ startHandle.x = posStart.x - curvature.x;
+ // ... and downwards from the start node.
+ startHandle.y = posStart.y + curvature.y;
+
+ // And to the right...
+ endHandle.x = posEnd.x + curvature.x;
+ // ... and downwards from the end node.
+ endHandle.y = posEnd.y + curvature.y;
+ }
+
+ // Put it all together into a path.
+ // More information on the format:
+ // https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths
+ var pathStr = "M" + posStart.x + "," + posStart.y + " " +
+ "C" + startHandle.x + "," + startHandle.y + " " +
+ endHandle.x + "," + endHandle.y + " " +
+ posEnd.x + "," + posEnd.y;
+
+ arrow.setAttribute("d", pathStr);
+};
+
+var drawArrows = function() {
+ const numOfArrows = document.querySelectorAll("path[id^=arrow]").length;
+ for (var i = 0; i < numOfArrows; ++i) {
+ drawArrow(i);
+ }
+}
+
+var toggleArrows = function(event) {
+ const arrows = document.querySelector("#arrows");
+ if (event.target.checked) {
+ arrows.setAttribute("visibility", "visible");
+ } else {
+ arrows.setAttribute("visibility", "hidden");
+ }
+}
+
+window.addEventListener("resize", drawArrows);
+document.addEventListener("DOMContentLoaded", function() {
+ // Whenever we show invocation, locations change, i.e. we
+ // need to redraw arrows.
+ document
+ .querySelector('input[id="showinvocation"]')
+ .addEventListener("click", drawArrows);
+ // Hiding irrelevant lines also should cause arrow rerender.
+ document
+ .querySelector('input[name="showCounterexample"]')
+ .addEventListener("change", drawArrows);
+ document
+ .querySelector('input[name="showArrows"]')
+ .addEventListener("change", toggleArrows);
+ drawArrows();
+ // Default highlighting for the last event.
+ highlightArrowsForSelectedEvent();
+});
+</script>
+
+<script type='text/javascript'>
+var digitMatcher = new RegExp("[0-9]+");
+
+var querySelectorAllArray = function(selector) {
+ return Array.prototype.slice.call(
+ document.querySelectorAll(selector));
+}
+
+document.addEventListener("DOMContentLoaded", function() {
+ querySelectorAllArray(".PathNav > a").forEach(
+ function(currentValue, currentIndex) {
+ var hrefValue = currentValue.getAttribute("href");
+ currentValue.onclick = function() {
+ scrollTo(document.querySelector(hrefValue));
+ return false;
+ };
+ });
+});
+
+var findNum = function() {
+ var s = document.querySelector(".msg.selected");
+ if (!s || s.id == "EndPath") {
+ return 0;
+ }
+ var out = parseInt(digitMatcher.exec(s.id)[0]);
+ return out;
+};
+
+var classListAdd = function(el, theClass) {
+ if(!el.className.baseVal)
+ el.className += " " + theClass;
+ else
+ el.className.baseVal += " " + theClass;
+};
+
+var classListRemove = function(el, theClass) {
+ var className = (!el.className.baseVal) ?
+ el.className : el.className.baseVal;
+ className = className.replace(" " + theClass, "");
+ if(!el.className.baseVal)
+ el.className = className;
+ else
+ el.className.baseVal = className;
+};
+
+var scrollTo = function(el) {
+ querySelectorAllArray(".selected").forEach(function(s) {
+ classListRemove(s, "selected");
+ });
+ classListAdd(el, "selected");
+ window.scrollBy(0, el.getBoundingClientRect().top -
+ (window.innerHeight / 2));
+ highlightArrowsForSelectedEvent();
+};
+
+var move = function(num, up, numItems) {
+ if (num == 1 && up || num == numItems - 1 && !up) {
+ return 0;
+ } else if (num == 0 && up) {
+ return numItems - 1;
+ } else if (num == 0 && !up) {
+ return 1 % numItems;
+ }
+ return up ? num - 1 : num + 1;
+}
+
+var numToId = function(num) {
+ if (num == 0) {
+ return document.getElementById("EndPath")
+ }
+ return document.getElementById("Path" + num);
+};
+
+var navigateTo = function(up) {
+ var numItems = document.querySelectorAll(
+ ".line > .msgEvent, .line > .msgControl").length;
+ var currentSelected = findNum();
+ var newSelected = move(currentSelected, up, numItems);
+ var newEl = numToId(newSelected, numItems);
+
+ // Scroll element into center.
+ scrollTo(newEl);
+};
+
+window.addEventListener("keydown", function (event) {
+ if (event.defaultPrevented) {
+ return;
+ }
+ // key 'j'
+ if (event.keyCode == 74) {
+ navigateTo(/*up=*/false);
+ // key 'k'
+ } else if (event.keyCode == 75) {
+ navigateTo(/*up=*/true);
+ } else {
+ return;
+ }
+ event.preventDefault();
+}, true);
+</script>
+
+<script type='text/javascript'>
+
+var toggleHelp = function() {
+ var hint = document.querySelector("#tooltiphint");
+ var attributeName = "hidden";
+ if (hint.hasAttribute(attributeName)) {
+ hint.removeAttribute(attributeName);
+ } else {
+ hint.setAttribute("hidden", "true");
+ }
+};
+window.addEventListener("keydown", function (event) {
+ if (event.defaultPrevented) {
+ return;
+ }
+ if (event.key == "?") {
+ toggleHelp();
+ } else {
+ return;
+ }
+ event.preventDefault();
+});
+</script>
+
+<style type="text/css">
+ svg {
+ position:absolute;
+ top:0;
+ left:0;
+ height:100%;
+ width:100%;
+ pointer-events: none;
+ overflow: visible
+ }
+ .arrow {
+ stroke-opacity: 0.2;
+ stroke-width: 1;
+ marker-end: url(#arrowhead);
+ }
+
+ .arrow.selected {
+ stroke-opacity: 0.6;
+ stroke-width: 2;
+ marker-end: url(#arrowheadSelected);
+ }
+
+ .arrowhead {
+ orient: auto;
+ stroke: none;
+ opacity: 0.6;
+ fill: blue;
+ }
+</style>
+<svg xmlns="http://www.w3.org/2000/svg">
+ <defs>
+ <marker id="arrowheadSelected" class="arrowhead" opacity="0.6"
+ viewBox="0 0 10 10" refX="3" refY="5"
+ markerWidth="4" markerHeight="4">
+ <path d="M 0 0 L 10 5 L 0 10 z" />
+ </marker>
+ <marker id="arrowhead" class="arrowhead" opacity="0.2"
+ viewBox="0 0 10 10" refX="3" refY="5"
+ markerWidth="4" markerHeight="4">
+ <path d="M 0 0 L 10 5 L 0 10 z" />
+ </marker>
+ </defs>
+ <g id="arrows" fill="none" stroke="blue" visibility="hidden">
+
+ </g>
+</svg>
+<script type='text/javascript'>
+const arrowIndices = [ 0,0 ]
+</script>
+<table class="code" data-fileid="1">
+<tr class="codeline" data-linenumber="1"><td class="num" id="LN1">1</td><td class="line"><span class='comment'>/*</span></td></tr>
+<tr class="codeline" data-linenumber="2"><td class="num" id="LN2">2</td><td class="line"> <span class='comment'>* Copyright © 2001 Havoc Pennington</span></td></tr>
+<tr class="codeline" data-linenumber="3"><td class="num" id="LN3">3</td><td class="line"> <span class='comment'>* Copyright © 2002 Mathias Hasselmann</span></td></tr>
+<tr class="codeline" data-linenumber="4"><td class="num" id="LN4">4</td><td class="line"> <span class='comment'>* Copyright © 2008 Christian Persch</span></td></tr>
+<tr class="codeline" data-linenumber="5"><td class="num" id="LN5">5</td><td class="line"> <span class='comment'>* Copyright (C) 2012-2021 MATE Developers</span></td></tr>
+<tr class="codeline" data-linenumber="6"><td class="num" id="LN6">6</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="7"><td class="num" id="LN7">7</td><td class="line"> <span class='comment'>* Mate-terminal is free software; you can redistribute it and/or modify</span></td></tr>
+<tr class="codeline" data-linenumber="8"><td class="num" id="LN8">8</td><td class="line"> <span class='comment'>* it under the terms of the GNU General Public License as published by</span></td></tr>
+<tr class="codeline" data-linenumber="9"><td class="num" id="LN9">9</td><td class="line"> <span class='comment'>* the Free Software Foundation; either version 3 of the License, or</span></td></tr>
+<tr class="codeline" data-linenumber="10"><td class="num" id="LN10">10</td><td class="line"> <span class='comment'>* (at your option) any later version.</span></td></tr>
+<tr class="codeline" data-linenumber="11"><td class="num" id="LN11">11</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="12"><td class="num" id="LN12">12</td><td class="line"> <span class='comment'>* Mate-terminal is distributed in the hope that it will be useful,</span></td></tr>
+<tr class="codeline" data-linenumber="13"><td class="num" id="LN13">13</td><td class="line"> <span class='comment'>* but WITHOUT ANY WARRANTY; without even the implied warranty of</span></td></tr>
+<tr class="codeline" data-linenumber="14"><td class="num" id="LN14">14</td><td class="line"> <span class='comment'>* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></td></tr>
+<tr class="codeline" data-linenumber="15"><td class="num" id="LN15">15</td><td class="line"> <span class='comment'>* GNU General Public License for more details.</span></td></tr>
+<tr class="codeline" data-linenumber="16"><td class="num" id="LN16">16</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="17"><td class="num" id="LN17">17</td><td class="line"> <span class='comment'>* You should have received a copy of the GNU General Public License</span></td></tr>
+<tr class="codeline" data-linenumber="18"><td class="num" id="LN18">18</td><td class="line"> <span class='comment'>* along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.</span></td></tr>
+<tr class="codeline" data-linenumber="19"><td class="num" id="LN19">19</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="20"><td class="num" id="LN20">20</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="21"><td class="num" id="LN21">21</td><td class="line"><span class='directive'>#include &lt;config.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="22"><td class="num" id="LN22">22</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="23"><td class="num" id="LN23">23</td><td class="line"><span class='directive'>#include &lt;string.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="24"><td class="num" id="LN24">24</td><td class="line"><span class='directive'>#include &lt;stdlib.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="25"><td class="num" id="LN25">25</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="26"><td class="num" id="LN26">26</td><td class="line"><span class='directive'>#include &lt;gtk/gtk.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="27"><td class="num" id="LN27">27</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="28"><td class="num" id="LN28">28</td><td class="line"><span class='directive'>#include "terminal-app.h"</span></td></tr>
+<tr class="codeline" data-linenumber="29"><td class="num" id="LN29">29</td><td class="line"><span class='directive'>#include "terminal-debug.h"</span></td></tr>
+<tr class="codeline" data-linenumber="30"><td class="num" id="LN30">30</td><td class="line"><span class='directive'>#include "terminal-intl.h"</span></td></tr>
+<tr class="codeline" data-linenumber="31"><td class="num" id="LN31">31</td><td class="line"><span class='directive'>#include "terminal-profile.h"</span></td></tr>
+<tr class="codeline" data-linenumber="32"><td class="num" id="LN32">32</td><td class="line"><span class='directive'>#include "terminal-screen.h"</span></td></tr>
+<tr class="codeline" data-linenumber="33"><td class="num" id="LN33">33</td><td class="line"><span class='directive'>#include "terminal-type-builtins.h"</span></td></tr>
+<tr class="codeline" data-linenumber="34"><td class="num" id="LN34">34</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="35"><td class="num" id="LN35">35</td><td class="line"><span class='comment'>/* To add a new key, you need to:</span></td></tr>
+<tr class="codeline" data-linenumber="36"><td class="num" id="LN36">36</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="37"><td class="num" id="LN37">37</td><td class="line"> <span class='comment'>* - add an entry to the enum below</span></td></tr>
+<tr class="codeline" data-linenumber="38"><td class="num" id="LN38">38</td><td class="line"> <span class='comment'>* - add a #define with its name in terminal-profile.h</span></td></tr>
+<tr class="codeline" data-linenumber="39"><td class="num" id="LN39">39</td><td class="line"> <span class='comment'>* - add a gobject property for it in terminal_profile_class_init</span></td></tr>
+<tr class="codeline" data-linenumber="40"><td class="num" id="LN40">40</td><td class="line"> <span class='comment'>* - if the property's type needs special casing, add that to</span></td></tr>
+<tr class="codeline" data-linenumber="41"><td class="num" id="LN41">41</td><td class="line"> <span class='comment'>* terminal_profile_gsettings_notify_cb and</span></td></tr>
+<tr class="codeline" data-linenumber="42"><td class="num" id="LN42">42</td><td class="line"> <span class='comment'>* terminal_profile_gsettings_changeset_add</span></td></tr>
+<tr class="codeline" data-linenumber="43"><td class="num" id="LN43">43</td><td class="line"> <span class='comment'>* - if necessary the default value cannot be handled via the paramspec,</span></td></tr>
+<tr class="codeline" data-linenumber="44"><td class="num" id="LN44">44</td><td class="line"> <span class='comment'>* handle that in terminal_profile_reset_property_internal</span></td></tr>
+<tr class="codeline" data-linenumber="45"><td class="num" id="LN45">45</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="46"><td class="num" id="LN46">46</td><td class="line"><span class='keyword'>enum</span></td></tr>
+<tr class="codeline" data-linenumber="47"><td class="num" id="LN47">47</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="48"><td class="num" id="LN48">48</td><td class="line"> PROP_0,</td></tr>
+<tr class="codeline" data-linenumber="49"><td class="num" id="LN49">49</td><td class="line"> PROP_ALLOW_BOLD,</td></tr>
+<tr class="codeline" data-linenumber="50"><td class="num" id="LN50">50</td><td class="line"> PROP_BACKGROUND_COLOR,</td></tr>
+<tr class="codeline" data-linenumber="51"><td class="num" id="LN51">51</td><td class="line"> PROP_BACKGROUND_DARKNESS,</td></tr>
+<tr class="codeline" data-linenumber="52"><td class="num" id="LN52">52</td><td class="line"> PROP_BACKGROUND_IMAGE,</td></tr>
+<tr class="codeline" data-linenumber="53"><td class="num" id="LN53">53</td><td class="line"> PROP_BACKGROUND_IMAGE_FILE,</td></tr>
+<tr class="codeline" data-linenumber="54"><td class="num" id="LN54">54</td><td class="line"> PROP_BACKGROUND_TYPE,</td></tr>
+<tr class="codeline" data-linenumber="55"><td class="num" id="LN55">55</td><td class="line"> PROP_BACKSPACE_BINDING,</td></tr>
+<tr class="codeline" data-linenumber="56"><td class="num" id="LN56">56</td><td class="line"> PROP_BOLD_COLOR,</td></tr>
+<tr class="codeline" data-linenumber="57"><td class="num" id="LN57">57</td><td class="line"> PROP_BOLD_COLOR_SAME_AS_FG,</td></tr>
+<tr class="codeline" data-linenumber="58"><td class="num" id="LN58">58</td><td class="line"> PROP_CURSOR_BLINK_MODE,</td></tr>
+<tr class="codeline" data-linenumber="59"><td class="num" id="LN59">59</td><td class="line"> PROP_CURSOR_SHAPE,</td></tr>
+<tr class="codeline" data-linenumber="60"><td class="num" id="LN60">60</td><td class="line"> PROP_CUSTOM_COMMAND,</td></tr>
+<tr class="codeline" data-linenumber="61"><td class="num" id="LN61">61</td><td class="line"> PROP_DEFAULT_SIZE_COLUMNS,</td></tr>
+<tr class="codeline" data-linenumber="62"><td class="num" id="LN62">62</td><td class="line"> PROP_DEFAULT_SIZE_ROWS,</td></tr>
+<tr class="codeline" data-linenumber="63"><td class="num" id="LN63">63</td><td class="line"> PROP_DEFAULT_SHOW_MENUBAR,</td></tr>
+<tr class="codeline" data-linenumber="64"><td class="num" id="LN64">64</td><td class="line"> PROP_DELETE_BINDING,</td></tr>
+<tr class="codeline" data-linenumber="65"><td class="num" id="LN65">65</td><td class="line"> PROP_EXIT_ACTION,</td></tr>
+<tr class="codeline" data-linenumber="66"><td class="num" id="LN66">66</td><td class="line"> PROP_FONT,</td></tr>
+<tr class="codeline" data-linenumber="67"><td class="num" id="LN67">67</td><td class="line"> PROP_FOREGROUND_COLOR,</td></tr>
+<tr class="codeline" data-linenumber="68"><td class="num" id="LN68">68</td><td class="line"> PROP_LOGIN_SHELL,</td></tr>
+<tr class="codeline" data-linenumber="69"><td class="num" id="LN69">69</td><td class="line"> PROP_NAME,</td></tr>
+<tr class="codeline" data-linenumber="70"><td class="num" id="LN70">70</td><td class="line"> PROP_PALETTE,</td></tr>
+<tr class="codeline" data-linenumber="71"><td class="num" id="LN71">71</td><td class="line"> PROP_SCROLL_BACKGROUND,</td></tr>
+<tr class="codeline" data-linenumber="72"><td class="num" id="LN72">72</td><td class="line"> PROP_SCROLLBACK_LINES,</td></tr>
+<tr class="codeline" data-linenumber="73"><td class="num" id="LN73">73</td><td class="line"> PROP_SCROLLBACK_UNLIMITED,</td></tr>
+<tr class="codeline" data-linenumber="74"><td class="num" id="LN74">74</td><td class="line"> PROP_SCROLLBAR_POSITION,</td></tr>
+<tr class="codeline" data-linenumber="75"><td class="num" id="LN75">75</td><td class="line"> PROP_SCROLL_ON_KEYSTROKE,</td></tr>
+<tr class="codeline" data-linenumber="76"><td class="num" id="LN76">76</td><td class="line"> PROP_SCROLL_ON_OUTPUT,</td></tr>
+<tr class="codeline" data-linenumber="77"><td class="num" id="LN77">77</td><td class="line"> PROP_SILENT_BELL,</td></tr>
+<tr class="codeline" data-linenumber="78"><td class="num" id="LN78">78</td><td class="line"> PROP_TITLE,</td></tr>
+<tr class="codeline" data-linenumber="79"><td class="num" id="LN79">79</td><td class="line"> PROP_TITLE_MODE,</td></tr>
+<tr class="codeline" data-linenumber="80"><td class="num" id="LN80">80</td><td class="line"> PROP_USE_CUSTOM_COMMAND,</td></tr>
+<tr class="codeline" data-linenumber="81"><td class="num" id="LN81">81</td><td class="line"> PROP_USE_CUSTOM_DEFAULT_SIZE,</td></tr>
+<tr class="codeline" data-linenumber="82"><td class="num" id="LN82">82</td><td class="line"> PROP_USE_SKEY,</td></tr>
+<tr class="codeline" data-linenumber="83"><td class="num" id="LN83">83</td><td class="line"> PROP_USE_URLS,</td></tr>
+<tr class="codeline" data-linenumber="84"><td class="num" id="LN84">84</td><td class="line"> PROP_USE_SYSTEM_FONT,</td></tr>
+<tr class="codeline" data-linenumber="85"><td class="num" id="LN85">85</td><td class="line"> PROP_USE_THEME_COLORS,</td></tr>
+<tr class="codeline" data-linenumber="86"><td class="num" id="LN86">86</td><td class="line"> PROP_VISIBLE_NAME,</td></tr>
+<tr class="codeline" data-linenumber="87"><td class="num" id="LN87">87</td><td class="line"> PROP_WORD_CHARS,</td></tr>
+<tr class="codeline" data-linenumber="88"><td class="num" id="LN88">88</td><td class="line"> PROP_COPY_SELECTION,</td></tr>
+<tr class="codeline" data-linenumber="89"><td class="num" id="LN89">89</td><td class="line"> LAST_PROP</td></tr>
+<tr class="codeline" data-linenumber="90"><td class="num" id="LN90">90</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="91"><td class="num" id="LN91">91</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="92"><td class="num" id="LN92">92</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_ALLOW_BOLD<span class='macro_popup'>"allow-bold"</span></span> "allow-bold"</span></td></tr>
+<tr class="codeline" data-linenumber="93"><td class="num" id="LN93">93</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_BACKGROUND_COLOR<span class='macro_popup'>"background-color"</span></span> "background-color"</span></td></tr>
+<tr class="codeline" data-linenumber="94"><td class="num" id="LN94">94</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_BACKGROUND_DARKNESS<span class='macro_popup'>"background-darkness"</span></span> "background-darkness"</span></td></tr>
+<tr class="codeline" data-linenumber="95"><td class="num" id="LN95">95</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_BACKGROUND_IMAGE_FILE<span class='macro_popup'>"background-image"</span></span> "background-image"</span></td></tr>
+<tr class="codeline" data-linenumber="96"><td class="num" id="LN96">96</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_BACKGROUND_TYPE<span class='macro_popup'>"background-type"</span></span> "background-type"</span></td></tr>
+<tr class="codeline" data-linenumber="97"><td class="num" id="LN97">97</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_BACKSPACE_BINDING<span class='macro_popup'>"backspace-binding"</span></span> "backspace-binding"</span></td></tr>
+<tr class="codeline" data-linenumber="98"><td class="num" id="LN98">98</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_BOLD_COLOR<span class='macro_popup'>"bold-color"</span></span> "bold-color"</span></td></tr>
+<tr class="codeline" data-linenumber="99"><td class="num" id="LN99">99</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_BOLD_COLOR_SAME_AS_FG<span class='macro_popup'>"bold-color-same-as-fg"</span></span> "bold-color-same-as-fg"</span></td></tr>
+<tr class="codeline" data-linenumber="100"><td class="num" id="LN100">100</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_CURSOR_BLINK_MODE<span class='macro_popup'>"cursor-blink-mode"</span></span> "cursor-blink-mode"</span></td></tr>
+<tr class="codeline" data-linenumber="101"><td class="num" id="LN101">101</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_CURSOR_SHAPE<span class='macro_popup'>"cursor-shape"</span></span> "cursor-shape"</span></td></tr>
+<tr class="codeline" data-linenumber="102"><td class="num" id="LN102">102</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_CUSTOM_COMMAND<span class='macro_popup'>"custom-command"</span></span> "custom-command"</span></td></tr>
+<tr class="codeline" data-linenumber="103"><td class="num" id="LN103">103</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_DEFAULT_SHOW_MENUBAR<span class='macro_popup'>"default-show-menubar"</span></span> "default-show-menubar"</span></td></tr>
+<tr class="codeline" data-linenumber="104"><td class="num" id="LN104">104</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_DEFAULT_SIZE_COLUMNS<span class='macro_popup'>"default-size-columns"</span></span> "default-size-columns"</span></td></tr>
+<tr class="codeline" data-linenumber="105"><td class="num" id="LN105">105</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_DEFAULT_SIZE_ROWS<span class='macro_popup'>"default-size-rows"</span></span> "default-size-rows"</span></td></tr>
+<tr class="codeline" data-linenumber="106"><td class="num" id="LN106">106</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_DELETE_BINDING<span class='macro_popup'>"delete-binding"</span></span> "delete-binding"</span></td></tr>
+<tr class="codeline" data-linenumber="107"><td class="num" id="LN107">107</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_EXIT_ACTION<span class='macro_popup'>"exit-action"</span></span> "exit-action"</span></td></tr>
+<tr class="codeline" data-linenumber="108"><td class="num" id="LN108">108</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_FONT<span class='macro_popup'>"font"</span></span> "font"</span></td></tr>
+<tr class="codeline" data-linenumber="109"><td class="num" id="LN109">109</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_FOREGROUND_COLOR<span class='macro_popup'>"foreground-color"</span></span> "foreground-color"</span></td></tr>
+<tr class="codeline" data-linenumber="110"><td class="num" id="LN110">110</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_LOGIN_SHELL<span class='macro_popup'>"login-shell"</span></span> "login-shell"</span></td></tr>
+<tr class="codeline" data-linenumber="111"><td class="num" id="LN111">111</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_PALETTE<span class='macro_popup'>"palette"</span></span> "palette"</span></td></tr>
+<tr class="codeline" data-linenumber="112"><td class="num" id="LN112">112</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_SCROLL_BACKGROUND<span class='macro_popup'>"scroll-background"</span></span> "scroll-background"</span></td></tr>
+<tr class="codeline" data-linenumber="113"><td class="num" id="LN113">113</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_SCROLLBACK_LINES<span class='macro_popup'>"scrollback-lines"</span></span> "scrollback-lines"</span></td></tr>
+<tr class="codeline" data-linenumber="114"><td class="num" id="LN114">114</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_SCROLLBACK_UNLIMITED<span class='macro_popup'>"scrollback-unlimited"</span></span> "scrollback-unlimited"</span></td></tr>
+<tr class="codeline" data-linenumber="115"><td class="num" id="LN115">115</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_SCROLLBAR_POSITION<span class='macro_popup'>"scrollbar-position"</span></span> "scrollbar-position"</span></td></tr>
+<tr class="codeline" data-linenumber="116"><td class="num" id="LN116">116</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_SCROLL_ON_KEYSTROKE<span class='macro_popup'>"scroll-on-keystroke"</span></span> "scroll-on-keystroke"</span></td></tr>
+<tr class="codeline" data-linenumber="117"><td class="num" id="LN117">117</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_SCROLL_ON_OUTPUT<span class='macro_popup'>"scroll-on-output"</span></span> "scroll-on-output"</span></td></tr>
+<tr class="codeline" data-linenumber="118"><td class="num" id="LN118">118</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_SILENT_BELL<span class='macro_popup'>"silent-bell"</span></span> "silent-bell"</span></td></tr>
+<tr class="codeline" data-linenumber="119"><td class="num" id="LN119">119</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_COPY_SELECTION<span class='macro_popup'>"copy-selection"</span></span> "copy-selection"</span></td></tr>
+<tr class="codeline" data-linenumber="120"><td class="num" id="LN120">120</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_TITLE_MODE<span class='macro_popup'>"title-mode"</span></span> "title-mode"</span></td></tr>
+<tr class="codeline" data-linenumber="121"><td class="num" id="LN121">121</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_TITLE<span class='macro_popup'>"title"</span></span> "title"</span></td></tr>
+<tr class="codeline" data-linenumber="122"><td class="num" id="LN122">122</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_USE_CUSTOM_COMMAND<span class='macro_popup'>"use-custom-command"</span></span> "use-custom-command"</span></td></tr>
+<tr class="codeline" data-linenumber="123"><td class="num" id="LN123">123</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_USE_CUSTOM_DEFAULT_SIZE<span class='macro_popup'>"use-custom-default-size"</span></span> "use-custom-default-size"</span></td></tr>
+<tr class="codeline" data-linenumber="124"><td class="num" id="LN124">124</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_USE_SKEY<span class='macro_popup'>"use-skey"</span></span> "use-skey"</span></td></tr>
+<tr class="codeline" data-linenumber="125"><td class="num" id="LN125">125</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_USE_URLS<span class='macro_popup'>"use-urls"</span></span> "use-urls"</span></td></tr>
+<tr class="codeline" data-linenumber="126"><td class="num" id="LN126">126</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_USE_SYSTEM_FONT<span class='macro_popup'>"use-system-font"</span></span> "use-system-font"</span></td></tr>
+<tr class="codeline" data-linenumber="127"><td class="num" id="LN127">127</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_USE_THEME_COLORS<span class='macro_popup'>"use-theme-colors"</span></span> "use-theme-colors"</span></td></tr>
+<tr class="codeline" data-linenumber="128"><td class="num" id="LN128">128</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_VISIBLE_NAME<span class='macro_popup'>"visible-name"</span></span> "visible-name"</span></td></tr>
+<tr class="codeline" data-linenumber="129"><td class="num" id="LN129">129</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_WORD_CHARS<span class='macro_popup'>"word-chars"</span></span> "word-chars"</span></td></tr>
+<tr class="codeline" data-linenumber="130"><td class="num" id="LN130">130</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="131"><td class="num" id="LN131">131</td><td class="line"><span class='comment'>/* Keep these in sync with the GSettings schema! */</span></td></tr>
+<tr class="codeline" data-linenumber="132"><td class="num" id="LN132">132</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_ALLOW_BOLD<span class='macro_popup'>((!(0)))</span></span> (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="133"><td class="num" id="LN133">133</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_BACKGROUND_COLOR<span class='macro_popup'>("#FFFFDD")</span></span> ("#FFFFDD")</span></td></tr>
+<tr class="codeline" data-linenumber="134"><td class="num" id="LN134">134</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_BOLD_COLOR_SAME_AS_FG<span class='macro_popup'>((!(0)))</span></span> (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="135"><td class="num" id="LN135">135</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_BACKGROUND_DARKNESS<span class='macro_popup'>(0.5)</span></span> (0.5)</span></td></tr>
+<tr class="codeline" data-linenumber="136"><td class="num" id="LN136">136</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_BACKGROUND_IMAGE_FILE<span class='macro_popup'>("")</span></span> ("")</span></td></tr>
+<tr class="codeline" data-linenumber="137"><td class="num" id="LN137">137</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_BACKGROUND_TYPE<span class='macro_popup'>(TERMINAL_BACKGROUND_SOLID)</span></span> (TERMINAL_BACKGROUND_SOLID)</span></td></tr>
+<tr class="codeline" data-linenumber="138"><td class="num" id="LN138">138</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_BACKSPACE_BINDING<span class='macro_popup'>(VTE_ERASE_ASCII_DELETE)</span></span> (VTE_ERASE_ASCII_DELETE)</span></td></tr>
+<tr class="codeline" data-linenumber="139"><td class="num" id="LN139">139</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_CURSOR_BLINK_MODE<span class='macro_popup'>(VTE_CURSOR_BLINK_SYSTEM)</span></span> (VTE_CURSOR_BLINK_SYSTEM)</span></td></tr>
+<tr class="codeline" data-linenumber="140"><td class="num" id="LN140">140</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_CURSOR_SHAPE<span class='macro_popup'>(VTE_CURSOR_SHAPE_BLOCK)</span></span> (VTE_CURSOR_SHAPE_BLOCK)</span></td></tr>
+<tr class="codeline" data-linenumber="141"><td class="num" id="LN141">141</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_CUSTOM_COMMAND<span class='macro_popup'>("")</span></span> ("")</span></td></tr>
+<tr class="codeline" data-linenumber="142"><td class="num" id="LN142">142</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_DEFAULT_SHOW_MENUBAR<span class='macro_popup'>((!(0)))</span></span> (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="143"><td class="num" id="LN143">143</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_DEFAULT_SIZE_COLUMNS<span class='macro_popup'>(80)</span></span> (80)</span></td></tr>
+<tr class="codeline" data-linenumber="144"><td class="num" id="LN144">144</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_DEFAULT_SIZE_ROWS<span class='macro_popup'>(24)</span></span> (24)</span></td></tr>
+<tr class="codeline" data-linenumber="145"><td class="num" id="LN145">145</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_DELETE_BINDING<span class='macro_popup'>(VTE_ERASE_DELETE_SEQUENCE)</span></span> (VTE_ERASE_DELETE_SEQUENCE)</span></td></tr>
+<tr class="codeline" data-linenumber="146"><td class="num" id="LN146">146</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_EXIT_ACTION<span class='macro_popup'>(TERMINAL_EXIT_CLOSE)</span></span> (TERMINAL_EXIT_CLOSE)</span></td></tr>
+<tr class="codeline" data-linenumber="147"><td class="num" id="LN147">147</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_FONT<span class='macro_popup'>("Monospace 12")</span></span> ("Monospace 12")</span></td></tr>
+<tr class="codeline" data-linenumber="148"><td class="num" id="LN148">148</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_FOREGROUND_COLOR<span class='macro_popup'>("#000000")</span></span> ("#000000")</span></td></tr>
+<tr class="codeline" data-linenumber="149"><td class="num" id="LN149">149</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_LOGIN_SHELL<span class='macro_popup'>((0))</span></span> (<span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="150"><td class="num" id="LN150">150</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_NAME<span class='macro_popup'>(((void*)0))</span></span> (<span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="151"><td class="num" id="LN151">151</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_PALETTE<span class='macro_popup'>(terminal_palettes[0])</span></span> (terminal_palettes[<span class='macro'>TERMINAL_PALETTE_TANGO<span class='macro_popup'>0</span></span>])</span></td></tr>
+<tr class="codeline" data-linenumber="152"><td class="num" id="LN152">152</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_SCROLL_BACKGROUND<span class='macro_popup'>((!(0)))</span></span> (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="153"><td class="num" id="LN153">153</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_SCROLLBACK_LINES<span class='macro_popup'>(512)</span></span> (512)</span></td></tr>
+<tr class="codeline" data-linenumber="154"><td class="num" id="LN154">154</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_SCROLLBACK_UNLIMITED<span class='macro_popup'>((0))</span></span> (<span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="155"><td class="num" id="LN155">155</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_SCROLLBAR_POSITION<span class='macro_popup'>(TERMINAL_SCROLLBAR_RIGHT)</span></span> (TERMINAL_SCROLLBAR_RIGHT)</span></td></tr>
+<tr class="codeline" data-linenumber="156"><td class="num" id="LN156">156</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_SCROLL_ON_KEYSTROKE<span class='macro_popup'>((!(0)))</span></span> (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="157"><td class="num" id="LN157">157</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_SCROLL_ON_OUTPUT<span class='macro_popup'>((0))</span></span> (<span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="158"><td class="num" id="LN158">158</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_SILENT_BELL<span class='macro_popup'>((0))</span></span> (<span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="159"><td class="num" id="LN159">159</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_COPY_SELECTION<span class='macro_popup'>((0))</span></span> (<span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="160"><td class="num" id="LN160">160</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_TITLE_MODE<span class='macro_popup'>(TERMINAL_TITLE_REPLACE)</span></span> (TERMINAL_TITLE_REPLACE)</span></td></tr>
+<tr class="codeline" data-linenumber="161"><td class="num" id="LN161">161</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_TITLE<span class='macro_popup'>(("Terminal"))</span></span> (<span class='macro'>N_("Terminal")<span class='macro_popup'>("Terminal")</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="162"><td class="num" id="LN162">162</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_USE_CUSTOM_COMMAND<span class='macro_popup'>((0))</span></span> (<span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="163"><td class="num" id="LN163">163</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_USE_CUSTOM_DEFAULT_SIZE<span class='macro_popup'>((0))</span></span> (<span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="164"><td class="num" id="LN164">164</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_USE_SKEY<span class='macro_popup'>((!(0)))</span></span> (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="165"><td class="num" id="LN165">165</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_USE_URLS<span class='macro_popup'>((!(0)))</span></span> (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="166"><td class="num" id="LN166">166</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_USE_SYSTEM_FONT<span class='macro_popup'>((!(0)))</span></span> (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="167"><td class="num" id="LN167">167</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_USE_THEME_COLORS<span class='macro_popup'>((!(0)))</span></span> (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="168"><td class="num" id="LN168">168</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_VISIBLE_NAME<span class='macro_popup'>(("Unnamed"))</span></span> (<span class='macro'>N_("Unnamed")<span class='macro_popup'>("Unnamed")</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="169"><td class="num" id="LN169">169</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_WORD_CHARS<span class='macro_popup'>("-A-Za-z0-9,./?%&amp;#:_=+@~")</span></span> ("-A-Za-z0-9,./?%&amp;#:_=+@~")</span></td></tr>
+<tr class="codeline" data-linenumber="170"><td class="num" id="LN170">170</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="171"><td class="num" id="LN171">171</td><td class="line"><span class='keyword'>struct</span> _TerminalProfilePrivate</td></tr>
+<tr class="codeline" data-linenumber="172"><td class="num" id="LN172">172</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="173"><td class="num" id="LN173">173</td><td class="line"> GValueArray *properties;</td></tr>
+<tr class="codeline" data-linenumber="174"><td class="num" id="LN174">174</td><td class="line"> gboolean *locked;</td></tr>
+<tr class="codeline" data-linenumber="175"><td class="num" id="LN175">175</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="176"><td class="num" id="LN176">176</td><td class="line"> GSettings *settings;</td></tr>
+<tr class="codeline" data-linenumber="177"><td class="num" id="LN177">177</td><td class="line"> <span class='keyword'>char</span> *profile_dir;</td></tr>
+<tr class="codeline" data-linenumber="178"><td class="num" id="LN178">178</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="179"><td class="num" id="LN179">179</td><td class="line"> GSList *dirty_pspecs;</td></tr>
+<tr class="codeline" data-linenumber="180"><td class="num" id="LN180">180</td><td class="line"> guint save_idle_id;</td></tr>
+<tr class="codeline" data-linenumber="181"><td class="num" id="LN181">181</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="182"><td class="num" id="LN182">182</td><td class="line"> GParamSpec *gsettings_notification_pspec;</td></tr>
+<tr class="codeline" data-linenumber="183"><td class="num" id="LN183">183</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="184"><td class="num" id="LN184">184</td><td class="line"> gboolean background_load_failed;</td></tr>
+<tr class="codeline" data-linenumber="185"><td class="num" id="LN185">185</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="186"><td class="num" id="LN186">186</td><td class="line"> guint forgotten : 1;</td></tr>
+<tr class="codeline" data-linenumber="187"><td class="num" id="LN187">187</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="188"><td class="num" id="LN188">188</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="189"><td class="num" id="LN189">189</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>const</span> GdkRGBA terminal_palettes[<span class='macro'>TERMINAL_PALETTE_N_BUILTINS<span class='macro_popup'>5</span></span>][<span class='macro'>TERMINAL_PALETTE_SIZE<span class='macro_popup'>16</span></span>] =</td></tr>
+<tr class="codeline" data-linenumber="190"><td class="num" id="LN190">190</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="191"><td class="num" id="LN191">191</td><td class="line"> <span class='comment'>/* Tango palette */</span></td></tr>
+<tr class="codeline" data-linenumber="192"><td class="num" id="LN192">192</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="193"><td class="num" id="LN193">193</td><td class="line"> { 0, 0, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="194"><td class="num" id="LN194">194</td><td class="line"> { 0.8, 0, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="195"><td class="num" id="LN195">195</td><td class="line"> { 0.305882, 0.603922, 0.0235294, 1 },</td></tr>
+<tr class="codeline" data-linenumber="196"><td class="num" id="LN196">196</td><td class="line"> { 0.768627, 0.627451, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="197"><td class="num" id="LN197">197</td><td class="line"> { 0.203922, 0.396078, 0.643137, 1 },</td></tr>
+<tr class="codeline" data-linenumber="198"><td class="num" id="LN198">198</td><td class="line"> { 0.458824, 0.313725, 0.482353, 1 },</td></tr>
+<tr class="codeline" data-linenumber="199"><td class="num" id="LN199">199</td><td class="line"> { 0.0235294, 0.596078, 0.603922, 1 },</td></tr>
+<tr class="codeline" data-linenumber="200"><td class="num" id="LN200">200</td><td class="line"> { 0.827451, 0.843137, 0.811765, 1 },</td></tr>
+<tr class="codeline" data-linenumber="201"><td class="num" id="LN201">201</td><td class="line"> { 0.333333, 0.341176, 0.32549, 1 },</td></tr>
+<tr class="codeline" data-linenumber="202"><td class="num" id="LN202">202</td><td class="line"> { 0.937255, 0.160784, 0.160784, 1 },</td></tr>
+<tr class="codeline" data-linenumber="203"><td class="num" id="LN203">203</td><td class="line"> { 0.541176, 0.886275, 0.203922, 1 },</td></tr>
+<tr class="codeline" data-linenumber="204"><td class="num" id="LN204">204</td><td class="line"> { 0.988235, 0.913725, 0.309804, 1 },</td></tr>
+<tr class="codeline" data-linenumber="205"><td class="num" id="LN205">205</td><td class="line"> { 0.447059, 0.623529, 0.811765, 1 },</td></tr>
+<tr class="codeline" data-linenumber="206"><td class="num" id="LN206">206</td><td class="line"> { 0.678431, 0.498039, 0.658824, 1 },</td></tr>
+<tr class="codeline" data-linenumber="207"><td class="num" id="LN207">207</td><td class="line"> { 0.203922, 0.886275, 0.886275, 1 },</td></tr>
+<tr class="codeline" data-linenumber="208"><td class="num" id="LN208">208</td><td class="line"> { 0.933333, 0.933333, 0.92549, 1 },</td></tr>
+<tr class="codeline" data-linenumber="209"><td class="num" id="LN209">209</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="210"><td class="num" id="LN210">210</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="211"><td class="num" id="LN211">211</td><td class="line"> <span class='comment'>/* Linux palette */</span></td></tr>
+<tr class="codeline" data-linenumber="212"><td class="num" id="LN212">212</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="213"><td class="num" id="LN213">213</td><td class="line"> { 0, 0, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="214"><td class="num" id="LN214">214</td><td class="line"> { 0.666667, 0, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="215"><td class="num" id="LN215">215</td><td class="line"> { 0, 0.666667, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="216"><td class="num" id="LN216">216</td><td class="line"> { 0.666667, 0.333333, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="217"><td class="num" id="LN217">217</td><td class="line"> { 0, 0, 0.666667, 1 },</td></tr>
+<tr class="codeline" data-linenumber="218"><td class="num" id="LN218">218</td><td class="line"> { 0.666667, 0, 0.666667, 1 },</td></tr>
+<tr class="codeline" data-linenumber="219"><td class="num" id="LN219">219</td><td class="line"> { 0, 0.666667, 0.666667, 1 },</td></tr>
+<tr class="codeline" data-linenumber="220"><td class="num" id="LN220">220</td><td class="line"> { 0.666667, 0.666667, 0.666667, 1 },</td></tr>
+<tr class="codeline" data-linenumber="221"><td class="num" id="LN221">221</td><td class="line"> { 0.333333, 0.333333, 0.333333, 1 },</td></tr>
+<tr class="codeline" data-linenumber="222"><td class="num" id="LN222">222</td><td class="line"> { 1, 0.333333, 0.333333, 1 },</td></tr>
+<tr class="codeline" data-linenumber="223"><td class="num" id="LN223">223</td><td class="line"> { 0.333333, 1, 0.333333, 1 },</td></tr>
+<tr class="codeline" data-linenumber="224"><td class="num" id="LN224">224</td><td class="line"> { 1, 1, 0.333333, 1 },</td></tr>
+<tr class="codeline" data-linenumber="225"><td class="num" id="LN225">225</td><td class="line"> { 0.333333, 0.333333, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="226"><td class="num" id="LN226">226</td><td class="line"> { 1, 0.333333, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="227"><td class="num" id="LN227">227</td><td class="line"> { 0.333333, 1, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="228"><td class="num" id="LN228">228</td><td class="line"> { 1, 1, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="229"><td class="num" id="LN229">229</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="230"><td class="num" id="LN230">230</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="231"><td class="num" id="LN231">231</td><td class="line"> <span class='comment'>/* XTerm palette */</span></td></tr>
+<tr class="codeline" data-linenumber="232"><td class="num" id="LN232">232</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="233"><td class="num" id="LN233">233</td><td class="line"> { 0, 0, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="234"><td class="num" id="LN234">234</td><td class="line"> { 0.803922, 0, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="235"><td class="num" id="LN235">235</td><td class="line"> { 0, 0.803922, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="236"><td class="num" id="LN236">236</td><td class="line"> { 0.803922, 0.803922, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="237"><td class="num" id="LN237">237</td><td class="line"> { 0.117647, 0.564706, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="238"><td class="num" id="LN238">238</td><td class="line"> { 0.803922, 0, 0.803922, 1 },</td></tr>
+<tr class="codeline" data-linenumber="239"><td class="num" id="LN239">239</td><td class="line"> { 0, 0.803922, 0.803922, 1 },</td></tr>
+<tr class="codeline" data-linenumber="240"><td class="num" id="LN240">240</td><td class="line"> { 0.898039, 0.898039, 0.898039, 1 },</td></tr>
+<tr class="codeline" data-linenumber="241"><td class="num" id="LN241">241</td><td class="line"> { 0.298039, 0.298039, 0.298039, 1 },</td></tr>
+<tr class="codeline" data-linenumber="242"><td class="num" id="LN242">242</td><td class="line"> { 1, 0, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="243"><td class="num" id="LN243">243</td><td class="line"> { 0, 1, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="244"><td class="num" id="LN244">244</td><td class="line"> { 1, 1, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="245"><td class="num" id="LN245">245</td><td class="line"> { 0.27451, 0.509804, 0.705882, 1 },</td></tr>
+<tr class="codeline" data-linenumber="246"><td class="num" id="LN246">246</td><td class="line"> { 1, 0, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="247"><td class="num" id="LN247">247</td><td class="line"> { 0, 1, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="248"><td class="num" id="LN248">248</td><td class="line"> { 1, 1, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="249"><td class="num" id="LN249">249</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="250"><td class="num" id="LN250">250</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="251"><td class="num" id="LN251">251</td><td class="line"> <span class='comment'>/* RXVT palette */</span></td></tr>
+<tr class="codeline" data-linenumber="252"><td class="num" id="LN252">252</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="253"><td class="num" id="LN253">253</td><td class="line"> { 0, 0, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="254"><td class="num" id="LN254">254</td><td class="line"> { 0.803922, 0, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="255"><td class="num" id="LN255">255</td><td class="line"> { 0, 0.803922, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="256"><td class="num" id="LN256">256</td><td class="line"> { 0.803922, 0.803922, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="257"><td class="num" id="LN257">257</td><td class="line"> { 0, 0, 0.803922, 1 },</td></tr>
+<tr class="codeline" data-linenumber="258"><td class="num" id="LN258">258</td><td class="line"> { 0.803922, 0, 0.803922, 1 },</td></tr>
+<tr class="codeline" data-linenumber="259"><td class="num" id="LN259">259</td><td class="line"> { 0, 0.803922, 0.803922, 1 },</td></tr>
+<tr class="codeline" data-linenumber="260"><td class="num" id="LN260">260</td><td class="line"> { 0.980392, 0.921569, 0.843137, 1 },</td></tr>
+<tr class="codeline" data-linenumber="261"><td class="num" id="LN261">261</td><td class="line"> { 0.25098, 0.25098, 0.25098, 1 },</td></tr>
+<tr class="codeline" data-linenumber="262"><td class="num" id="LN262">262</td><td class="line"> { 1, 0, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="263"><td class="num" id="LN263">263</td><td class="line"> { 0, 1, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="264"><td class="num" id="LN264">264</td><td class="line"> { 1, 1, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="265"><td class="num" id="LN265">265</td><td class="line"> { 0, 0, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="266"><td class="num" id="LN266">266</td><td class="line"> { 1, 0, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="267"><td class="num" id="LN267">267</td><td class="line"> { 0, 1, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="268"><td class="num" id="LN268">268</td><td class="line"> { 1, 1, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="269"><td class="num" id="LN269">269</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="270"><td class="num" id="LN270">270</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="271"><td class="num" id="LN271">271</td><td class="line"> <span class='comment'>/* Solarized palette (1.0.0beta2): http://ethanschoonover.com/solarized */</span></td></tr>
+<tr class="codeline" data-linenumber="272"><td class="num" id="LN272">272</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="273"><td class="num" id="LN273">273</td><td class="line"> { 0.02745, 0.211764, 0.258823, 1 },</td></tr>
+<tr class="codeline" data-linenumber="274"><td class="num" id="LN274">274</td><td class="line"> { 0.862745, 0.196078, 0.184313, 1 },</td></tr>
+<tr class="codeline" data-linenumber="275"><td class="num" id="LN275">275</td><td class="line"> { 0.521568, 0.6, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="276"><td class="num" id="LN276">276</td><td class="line"> { 0.709803, 0.537254, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="277"><td class="num" id="LN277">277</td><td class="line"> { 0.149019, 0.545098, 0.823529, 1 },</td></tr>
+<tr class="codeline" data-linenumber="278"><td class="num" id="LN278">278</td><td class="line"> { 0.82745, 0.211764, 0.509803, 1 },</td></tr>
+<tr class="codeline" data-linenumber="279"><td class="num" id="LN279">279</td><td class="line"> { 0.164705, 0.631372, 0.596078, 1 },</td></tr>
+<tr class="codeline" data-linenumber="280"><td class="num" id="LN280">280</td><td class="line"> { 0.933333, 0.909803, 0.835294, 1 },</td></tr>
+<tr class="codeline" data-linenumber="281"><td class="num" id="LN281">281</td><td class="line"> { 0, 0.168627, 0.211764, 1 },</td></tr>
+<tr class="codeline" data-linenumber="282"><td class="num" id="LN282">282</td><td class="line"> { 0.796078, 0.294117, 0.086274, 1 },</td></tr>
+<tr class="codeline" data-linenumber="283"><td class="num" id="LN283">283</td><td class="line"> { 0.345098, 0.431372, 0.458823, 1 },</td></tr>
+<tr class="codeline" data-linenumber="284"><td class="num" id="LN284">284</td><td class="line"> { 0.396078, 0.482352, 0.513725, 1 },</td></tr>
+<tr class="codeline" data-linenumber="285"><td class="num" id="LN285">285</td><td class="line"> { 0.513725, 0.580392, 0.588235, 1 },</td></tr>
+<tr class="codeline" data-linenumber="286"><td class="num" id="LN286">286</td><td class="line"> { 0.423529, 0.443137, 0.768627, 1 },</td></tr>
+<tr class="codeline" data-linenumber="287"><td class="num" id="LN287">287</td><td class="line"> { 0.57647, 0.631372, 0.631372, 1 },</td></tr>
+<tr class="codeline" data-linenumber="288"><td class="num" id="LN288">288</td><td class="line"> { 0.992156, 0.964705, 0.890196, 1 },</td></tr>
+<tr class="codeline" data-linenumber="289"><td class="num" id="LN289">289</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="290"><td class="num" id="LN290">290</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="291"><td class="num" id="LN291">291</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="292"><td class="num" id="LN292">292</td><td class="line"><span class='keyword'>enum</span></td></tr>
+<tr class="codeline" data-linenumber="293"><td class="num" id="LN293">293</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="294"><td class="num" id="LN294">294</td><td class="line"> FORGOTTEN,</td></tr>
+<tr class="codeline" data-linenumber="295"><td class="num" id="LN295">295</td><td class="line"> LAST_SIGNAL</td></tr>
+<tr class="codeline" data-linenumber="296"><td class="num" id="LN296">296</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="297"><td class="num" id="LN297">297</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="298"><td class="num" id="LN298">298</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> terminal_profile_finalize (GObject *object);</td></tr>
+<tr class="codeline" data-linenumber="299"><td class="num" id="LN299">299</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> terminal_profile_set_property (GObject *object,</td></tr>
+<tr class="codeline" data-linenumber="300"><td class="num" id="LN300">300</td><td class="line"> guint prop_id,</td></tr>
+<tr class="codeline" data-linenumber="301"><td class="num" id="LN301">301</td><td class="line"> <span class='keyword'>const</span> GValue *value,</td></tr>
+<tr class="codeline" data-linenumber="302"><td class="num" id="LN302">302</td><td class="line"> GParamSpec *pspec);</td></tr>
+<tr class="codeline" data-linenumber="303"><td class="num" id="LN303">303</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> ensure_pixbuf_property (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="304"><td class="num" id="LN304">304</td><td class="line"> guint path_prop_id,</td></tr>
+<tr class="codeline" data-linenumber="305"><td class="num" id="LN305">305</td><td class="line"> guint pixbuf_prop_id,</td></tr>
+<tr class="codeline" data-linenumber="306"><td class="num" id="LN306">306</td><td class="line"> gboolean *load_failed);</td></tr>
+<tr class="codeline" data-linenumber="307"><td class="num" id="LN307">307</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="308"><td class="num" id="LN308">308</td><td class="line"><span class='keyword'>static</span> guint signals[LAST_SIGNAL] = { 0 };</td></tr>
+<tr class="codeline" data-linenumber="309"><td class="num" id="LN309">309</td><td class="line"><span class='keyword'>static</span> GQuark gsettings_key_quark;</td></tr>
+<tr class="codeline" data-linenumber="310"><td class="num" id="LN310">310</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="311"><td class="num" id="LN311">311</td><td class="line"><span class='macro'>G_DEFINE_TYPE_WITH_PRIVATE (TerminalProfile, terminal_profile, G_TYPE_OBJECT)<span class='macro_popup'>static void terminal_profile_init (TerminalProfile *self); static<br> void terminal_profile_class_init (TerminalProfileClass *klass<br>); static GType terminal_profile_get_type_once (void); static<br> gpointer terminal_profile_parent_class = ((void*)0); static gint<br> TerminalProfile_private_offset; static void terminal_profile_class_intern_init<br> (gpointer klass) { terminal_profile_parent_class = g_type_class_peek_parent<br> (klass); if (TerminalProfile_private_offset != 0) g_type_class_adjust_private_offset<br> (klass, &amp;TerminalProfile_private_offset); terminal_profile_class_init<br> ((TerminalProfileClass*) klass); } __attribute__ ((__unused__<br>)) static inline gpointer terminal_profile_get_instance_private<br> (TerminalProfile *self) { return (((gpointer) ((guint8*) (self<br>) + (glong) (TerminalProfile_private_offset)))); } GType terminal_profile_get_type<br> (void) { static gsize static_g_define_type_id = 0; if ((__extension__<br> ({ _Static_assert (sizeof *(&amp;static_g_define_type_id) ==<br> sizeof (gpointer), "Expression evaluates to false"); (void) (<br>0 ? (gpointer) *(&amp;static_g_define_type_id) : ((void*)0));<br> (!(__extension__ ({ _Static_assert (sizeof *(&amp;static_g_define_type_id<br>) == sizeof (gpointer), "Expression evaluates to false"); __typeof__<br> (*(&amp;static_g_define_type_id)) gapg_temp_newval; __typeof__<br> ((&amp;static_g_define_type_id)) gapg_temp_atomic = (&amp;static_g_define_type_id<br>); __atomic_load (gapg_temp_atomic, &amp;gapg_temp_newval, 5)<br>; gapg_temp_newval; })) &amp;&amp; g_once_init_enter (&amp;static_g_define_type_id<br>)); }))) { GType g_define_type_id = terminal_profile_get_type_once<br> (); (__extension__ ({ _Static_assert (sizeof *(&amp;static_g_define_type_id<br>) == sizeof (gpointer), "Expression evaluates to false"); 0 ?<br> (void) (*(&amp;static_g_define_type_id) = (g_define_type_id)<br>) : (void) 0; g_once_init_leave ((&amp;static_g_define_type_id<br>), (gsize) (g_define_type_id)); })); } return static_g_define_type_id<br>; } __attribute__ ((__noinline__)) static GType terminal_profile_get_type_once<br> (void) { GType g_define_type_id = g_type_register_static_simple<br> (((GType) ((20) &lt;&lt; (2))), g_intern_static_string ("TerminalProfile"<br>), sizeof (TerminalProfileClass), (GClassInitFunc)(void (*)(void<br>)) terminal_profile_class_intern_init, sizeof (TerminalProfile<br>), (GInstanceInitFunc)(void (*)(void)) terminal_profile_init,<br> (GTypeFlags) 0); { {{ TerminalProfile_private_offset = g_type_add_instance_private<br> (g_define_type_id, sizeof (TerminalProfilePrivate)); };} } return<br> g_define_type_id; }</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="312"><td class="num" id="LN312">312</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="313"><td class="num" id="LN313">313</td><td class="line"><span class='comment'>/* gdk_rgba_equal is too strict! */</span></td></tr>
+<tr class="codeline" data-linenumber="314"><td class="num" id="LN314">314</td><td class="line"><span class='keyword'>static</span> gboolean</td></tr>
+<tr class="codeline" data-linenumber="315"><td class="num" id="LN315">315</td><td class="line">rgba_equal (<span class='keyword'>const</span> GdkRGBA *a,</td></tr>
+<tr class="codeline" data-linenumber="316"><td class="num" id="LN316">316</td><td class="line"> <span class='keyword'>const</span> GdkRGBA *b)</td></tr>
+<tr class="codeline" data-linenumber="317"><td class="num" id="LN317">317</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="318"><td class="num" id="LN318">318</td><td class="line"> gdouble dr, dg, db, da;</td></tr>
+<tr class="codeline" data-linenumber="319"><td class="num" id="LN319">319</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="320"><td class="num" id="LN320">320</td><td class="line"> dr = a-&gt;red - b-&gt;red;</td></tr>
+<tr class="codeline" data-linenumber="321"><td class="num" id="LN321">321</td><td class="line"> dg = a-&gt;green - b-&gt;green;</td></tr>
+<tr class="codeline" data-linenumber="322"><td class="num" id="LN322">322</td><td class="line"> db = a-&gt;blue - b-&gt;blue;</td></tr>
+<tr class="codeline" data-linenumber="323"><td class="num" id="LN323">323</td><td class="line"> da = a-&gt;alpha - b-&gt;alpha;</td></tr>
+<tr class="codeline" data-linenumber="324"><td class="num" id="LN324">324</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="325"><td class="num" id="LN325">325</td><td class="line"> <span class='keyword'>return</span> (dr * dr + dg * dg + db * db + da * da) &lt; 1e-4;</td></tr>
+<tr class="codeline" data-linenumber="326"><td class="num" id="LN326">326</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="327"><td class="num" id="LN327">327</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="328"><td class="num" id="LN328">328</td><td class="line"><span class='keyword'>static</span> gboolean</td></tr>
+<tr class="codeline" data-linenumber="329"><td class="num" id="LN329">329</td><td class="line">palette_cmp (<span class='keyword'>const</span> GdkRGBA *ca,</td></tr>
+<tr class="codeline" data-linenumber="330"><td class="num" id="LN330">330</td><td class="line"> <span class='keyword'>const</span> GdkRGBA *cb)</td></tr>
+<tr class="codeline" data-linenumber="331"><td class="num" id="LN331">331</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="332"><td class="num" id="LN332">332</td><td class="line"> guint i;</td></tr>
+<tr class="codeline" data-linenumber="333"><td class="num" id="LN333">333</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="334"><td class="num" id="LN334">334</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; <span class='macro'>TERMINAL_PALETTE_SIZE<span class='macro_popup'>16</span></span>; ++i)</td></tr>
+<tr class="codeline" data-linenumber="335"><td class="num" id="LN335">335</td><td class="line"> <span class='keyword'>if</span> (!rgba_equal (&amp;ca[i], &amp;cb[i]))</td></tr>
+<tr class="codeline" data-linenumber="336"><td class="num" id="LN336">336</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="337"><td class="num" id="LN337">337</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="338"><td class="num" id="LN338">338</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="339"><td class="num" id="LN339">339</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="340"><td class="num" id="LN340">340</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="341"><td class="num" id="LN341">341</td><td class="line"><span class='keyword'>static</span> GParamSpec *</td></tr>
+<tr class="codeline" data-linenumber="342"><td class="num" id="LN342">342</td><td class="line">get_pspec_from_name (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="343"><td class="num" id="LN343">343</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="344"><td class="num" id="LN344">344</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="345"><td class="num" id="LN345">345</td><td class="line"> TerminalProfileClass *klass = <span class='macro'>TERMINAL_PROFILE_GET_CLASS (profile)<span class='macro_popup'>((((TerminalProfileClass*) (((GTypeInstance*) ((profile)))-&gt;<br>g_class))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="346"><td class="num" id="LN346">346</td><td class="line"> GParamSpec *pspec;</td></tr>
+<tr class="codeline" data-linenumber="347"><td class="num" id="LN347">347</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="348"><td class="num" id="LN348">348</td><td class="line"> pspec = g_object_class_find_property (<span class='macro'>G_OBJECT_CLASS (klass)<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((klass)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="349"><td class="num" id="LN349">349</td><td class="line"> <span class='keyword'>if</span> (pspec &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="350"><td class="num" id="LN350">350</td><td class="line"> pspec-&gt;owner_type != <span class='macro'>TERMINAL_TYPE_PROFILE<span class='macro_popup'>(terminal_profile_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="351"><td class="num" id="LN351">351</td><td class="line"> pspec = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="352"><td class="num" id="LN352">352</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="353"><td class="num" id="LN353">353</td><td class="line"> <span class='keyword'>return</span> pspec;</td></tr>
+<tr class="codeline" data-linenumber="354"><td class="num" id="LN354">354</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="355"><td class="num" id="LN355">355</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="356"><td class="num" id="LN356">356</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>const</span> GValue *</td></tr>
+<tr class="codeline" data-linenumber="357"><td class="num" id="LN357">357</td><td class="line">get_prop_value_from_prop_name (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="358"><td class="num" id="LN358">358</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="359"><td class="num" id="LN359">359</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="360"><td class="num" id="LN360">360</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="361"><td class="num" id="LN361">361</td><td class="line"> GParamSpec *pspec;</td></tr>
+<tr class="codeline" data-linenumber="362"><td class="num" id="LN362">362</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="363"><td class="num" id="LN363">363</td><td class="line"> pspec = get_pspec_from_name (profile, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="364"><td class="num" id="LN364">364</td><td class="line"> <span class='keyword'>if</span> (!pspec)</td></tr>
+<tr class="codeline" data-linenumber="365"><td class="num" id="LN365">365</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="366"><td class="num" id="LN366">366</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="367"><td class="num" id="LN367">367</td><td class="line"> <span class='keyword'>if</span> (<span class='macro'>G_UNLIKELY (pspec-&gt;param_id == PROP_BACKGROUND_IMAGE)<span class='macro_popup'>(pspec-&gt;param_id == PROP_BACKGROUND_IMAGE)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="368"><td class="num" id="LN368">368</td><td class="line"> ensure_pixbuf_property (profile, PROP_BACKGROUND_IMAGE_FILE, PROP_BACKGROUND_IMAGE, &amp;priv-&gt;background_load_failed);</td></tr>
+<tr class="codeline" data-linenumber="369"><td class="num" id="LN369">369</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="370"><td class="num" id="LN370">370</td><td class="line"> <span class='keyword'>return</span> g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id);</td></tr>
+<tr class="codeline" data-linenumber="371"><td class="num" id="LN371">371</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="372"><td class="num" id="LN372">372</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="373"><td class="num" id="LN373">373</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="374"><td class="num" id="LN374">374</td><td class="line">set_value_from_palette (GValue *ret_value,</td></tr>
+<tr class="codeline" data-linenumber="375"><td class="num" id="LN375">375</td><td class="line"> <span class='keyword'>const</span> GdkRGBA *colors,</td></tr>
+<tr class="codeline" data-linenumber="376"><td class="num" id="LN376">376</td><td class="line"> guint n_colors)</td></tr>
+<tr class="codeline" data-linenumber="377"><td class="num" id="LN377">377</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="378"><td class="num" id="LN378">378</td><td class="line"> GValueArray *array;</td></tr>
+<tr class="codeline" data-linenumber="379"><td class="num" id="LN379">379</td><td class="line"> guint i, max_n_colors;</td></tr>
+<tr class="codeline" data-linenumber="380"><td class="num" id="LN380">380</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="381"><td class="num" id="LN381">381</td><td class="line"> max_n_colors = <span class='macro'>MAX (n_colors, TERMINAL_PALETTE_SIZE)<span class='macro_popup'>(((n_colors) &gt; (16)) ? (n_colors) : (16))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="382"><td class="num" id="LN382">382</td><td class="line"> array = g_value_array_new (max_n_colors);</td></tr>
+<tr class="codeline" data-linenumber="383"><td class="num" id="LN383">383</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; max_n_colors; ++i)</td></tr>
+<tr class="codeline" data-linenumber="384"><td class="num" id="LN384">384</td><td class="line"> g_value_array_append (array, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="385"><td class="num" id="LN385">385</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="386"><td class="num" id="LN386">386</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; n_colors; ++i)</td></tr>
+<tr class="codeline" data-linenumber="387"><td class="num" id="LN387">387</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="388"><td class="num" id="LN388">388</td><td class="line"> GValue *value = g_value_array_get_nth (array, i);</td></tr>
+<tr class="codeline" data-linenumber="389"><td class="num" id="LN389">389</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="390"><td class="num" id="LN390">390</td><td class="line"> g_value_init (value, <span class='macro'>GDK_TYPE_RGBA<span class='macro_popup'>(gdk_rgba_get_type ())</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="391"><td class="num" id="LN391">391</td><td class="line"> g_value_set_boxed (value, &amp;colors[i]);</td></tr>
+<tr class="codeline" data-linenumber="392"><td class="num" id="LN392">392</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="393"><td class="num" id="LN393">393</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="394"><td class="num" id="LN394">394</td><td class="line"> <span class='comment'>/* If we haven't enough colours yet, fill up with the default palette */</span></td></tr>
+<tr class="codeline" data-linenumber="395"><td class="num" id="LN395">395</td><td class="line"> <span class='keyword'>for</span> (i = n_colors; i &lt; <span class='macro'>TERMINAL_PALETTE_SIZE<span class='macro_popup'>16</span></span>; ++i)</td></tr>
+<tr class="codeline" data-linenumber="396"><td class="num" id="LN396">396</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="397"><td class="num" id="LN397">397</td><td class="line"> GValue *value = g_value_array_get_nth (array, i);</td></tr>
+<tr class="codeline" data-linenumber="398"><td class="num" id="LN398">398</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="399"><td class="num" id="LN399">399</td><td class="line"> g_value_init (value, <span class='macro'>GDK_TYPE_RGBA<span class='macro_popup'>(gdk_rgba_get_type ())</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="400"><td class="num" id="LN400">400</td><td class="line"> g_value_set_boxed (value, &amp;<span class='macro'>DEFAULT_PALETTE<span class='macro_popup'>(terminal_palettes[0])</span></span>[i]);</td></tr>
+<tr class="codeline" data-linenumber="401"><td class="num" id="LN401">401</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="402"><td class="num" id="LN402">402</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="403"><td class="num" id="LN403">403</td><td class="line"> g_value_take_boxed (ret_value, array);</td></tr>
+<tr class="codeline" data-linenumber="404"><td class="num" id="LN404">404</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="405"><td class="num" id="LN405">405</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="406"><td class="num" id="LN406">406</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>int</span></td></tr>
+<tr class="codeline" data-linenumber="407"><td class="num" id="LN407">407</td><td class="line">values_equal (GParamSpec *pspec,</td></tr>
+<tr class="codeline" data-linenumber="408"><td class="num" id="LN408">408</td><td class="line"> <span class='keyword'>const</span> GValue *va,</td></tr>
+<tr class="codeline" data-linenumber="409"><td class="num" id="LN409">409</td><td class="line"> <span class='keyword'>const</span> GValue *vb)</td></tr>
+<tr class="codeline" data-linenumber="410"><td class="num" id="LN410">410</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="411"><td class="num" id="LN411">411</td><td class="line"> <span class='comment'>/* g_param_values_cmp isn't good enough for some types, since e.g.</span></td></tr>
+<tr class="codeline" data-linenumber="412"><td class="num" id="LN412">412</td><td class="line"> <span class='comment'>* it compares colours and font descriptions by pointer value, not</span></td></tr>
+<tr class="codeline" data-linenumber="413"><td class="num" id="LN413">413</td><td class="line"> <span class='comment'>* with the correct compare functions. Providing extra</span></td></tr>
+<tr class="codeline" data-linenumber="414"><td class="num" id="LN414">414</td><td class="line"> <span class='comment'>* PangoParamSpecFontDescription and GdkParamSpecColor wouldn't</span></td></tr>
+<tr class="codeline" data-linenumber="415"><td class="num" id="LN415">415</td><td class="line"> <span class='comment'>* have fixed this either, since it's unclear how to _order_ them.</span></td></tr>
+<tr class="codeline" data-linenumber="416"><td class="num" id="LN416">416</td><td class="line"> <span class='comment'>* Luckily we only need to check them for equality here.</span></td></tr>
+<tr class="codeline" data-linenumber="417"><td class="num" id="LN417">417</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="418"><td class="num" id="LN418">418</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="419"><td class="num" id="LN419">419</td><td class="line"> <span class='keyword'>if</span> (g_param_values_cmp (pspec, va, vb) == 0)</td></tr>
+<tr class="codeline" data-linenumber="420"><td class="num" id="LN420">420</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="421"><td class="num" id="LN421">421</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="422"><td class="num" id="LN422">422</td><td class="line"> <span class='keyword'>if</span> (<span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span> == <span class='macro'>GDK_TYPE_RGBA<span class='macro_popup'>(gdk_rgba_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="423"><td class="num" id="LN423">423</td><td class="line"> <span class='keyword'>return</span> rgba_equal (g_value_get_boxed (va), g_value_get_boxed (vb));</td></tr>
+<tr class="codeline" data-linenumber="424"><td class="num" id="LN424">424</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="425"><td class="num" id="LN425">425</td><td class="line"> <span class='keyword'>if</span> (<span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span> == <span class='macro'>PANGO_TYPE_FONT_DESCRIPTION<span class='macro_popup'>(pango_font_description_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="426"><td class="num" id="LN426">426</td><td class="line"> <span class='keyword'>return</span> pango_font_description_equal (g_value_get_boxed (va), g_value_get_boxed (vb));</td></tr>
+<tr class="codeline" data-linenumber="427"><td class="num" id="LN427">427</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="428"><td class="num" id="LN428">428</td><td class="line"> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_VALUE_ARRAY (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[18]) GCC warning "Deprecated pre-processor symbol"<br>
+); gboolean __r; if (!__inst) __r = (0); else if (__inst-&gt;<br>g_class &amp;&amp; __inst-&gt;g_class-&gt;g_type == __t) __r =<br> (!(0)); else __r = g_type_check_instance_is_a (__inst, __t);<br> __r; })))) GCC warning "Deprecated pre-processor symbol"
+</span></span> &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="429"><td class="num" id="LN429">429</td><td class="line"> <span class='macro'>G_PARAM_SPEC_VALUE_TYPE (G_PARAM_SPEC_VALUE_ARRAY (pspec)-&gt;element_spec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((((((GParamSpecValueArray*) (void *) g_type_check_instance_cast<br> ((GTypeInstance*) ((pspec)), ((g_param_spec_types[18]) GCC warning<br> "Deprecated pre-processor symbol"
+))))) GCC warning "Deprecated pre-processor symbol"<br>
+-&gt;element_spec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;<br>value_type)</span></span> == <span class='macro'>GDK_TYPE_RGBA<span class='macro_popup'>(gdk_rgba_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="430"><td class="num" id="LN430">430</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="431"><td class="num" id="LN431">431</td><td class="line"> GValueArray *ara, *arb;</td></tr>
+<tr class="codeline" data-linenumber="432"><td class="num" id="LN432">432</td><td class="line"> guint i;</td></tr>
+<tr class="codeline" data-linenumber="433"><td class="num" id="LN433">433</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="434"><td class="num" id="LN434">434</td><td class="line"> ara = g_value_get_boxed (va);</td></tr>
+<tr class="codeline" data-linenumber="435"><td class="num" id="LN435">435</td><td class="line"> arb = g_value_get_boxed (vb);</td></tr>
+<tr class="codeline" data-linenumber="436"><td class="num" id="LN436">436</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="437"><td class="num" id="LN437">437</td><td class="line"> <span class='keyword'>if</span> (!ara || !arb || ara-&gt;n_values != arb-&gt;n_values)</td></tr>
+<tr class="codeline" data-linenumber="438"><td class="num" id="LN438">438</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="439"><td class="num" id="LN439">439</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="440"><td class="num" id="LN440">440</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; ara-&gt;n_values; ++i)</td></tr>
+<tr class="codeline" data-linenumber="441"><td class="num" id="LN441">441</td><td class="line"> <span class='keyword'>if</span> (!rgba_equal (g_value_get_boxed (g_value_array_get_nth (ara, i)),</td></tr>
+<tr class="codeline" data-linenumber="442"><td class="num" id="LN442">442</td><td class="line"> g_value_get_boxed (g_value_array_get_nth (arb, i))))</td></tr>
+<tr class="codeline" data-linenumber="443"><td class="num" id="LN443">443</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="444"><td class="num" id="LN444">444</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="445"><td class="num" id="LN445">445</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="446"><td class="num" id="LN446">446</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="447"><td class="num" id="LN447">447</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="448"><td class="num" id="LN448">448</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="449"><td class="num" id="LN449">449</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="450"><td class="num" id="LN450">450</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="451"><td class="num" id="LN451">451</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="452"><td class="num" id="LN452">452</td><td class="line">ensure_pixbuf_property (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="453"><td class="num" id="LN453">453</td><td class="line"> guint path_prop_id,</td></tr>
+<tr class="codeline" data-linenumber="454"><td class="num" id="LN454">454</td><td class="line"> guint pixbuf_prop_id,</td></tr>
+<tr class="codeline" data-linenumber="455"><td class="num" id="LN455">455</td><td class="line"> gboolean *load_failed)</td></tr>
+<tr class="codeline" data-linenumber="456"><td class="num" id="LN456">456</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="457"><td class="num" id="LN457">457</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="458"><td class="num" id="LN458">458</td><td class="line"> GValue *path_value, *pixbuf_value;</td></tr>
+<tr class="codeline" data-linenumber="459"><td class="num" id="LN459">459</td><td class="line"> GdkPixbuf *pixbuf;</td></tr>
+<tr class="codeline" data-linenumber="460"><td class="num" id="LN460">460</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *path_utf8;</td></tr>
+<tr class="codeline" data-linenumber="461"><td class="num" id="LN461">461</td><td class="line"> <span class='keyword'>char</span> *path;</td></tr>
+<tr class="codeline" data-linenumber="462"><td class="num" id="LN462">462</td><td class="line"> GError *error = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="463"><td class="num" id="LN463">463</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="464"><td class="num" id="LN464">464</td><td class="line"> pixbuf_value = g_value_array_get_nth (priv-&gt;properties, pixbuf_prop_id);</td></tr>
+<tr class="codeline" data-linenumber="465"><td class="num" id="LN465">465</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="466"><td class="num" id="LN466">466</td><td class="line"> pixbuf = g_value_get_object (pixbuf_value);</td></tr>
+<tr class="codeline" data-linenumber="467"><td class="num" id="LN467">467</td><td class="line"> <span class='keyword'>if</span> (pixbuf)</td></tr>
+<tr class="codeline" data-linenumber="468"><td class="num" id="LN468">468</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="469"><td class="num" id="LN469">469</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="470"><td class="num" id="LN470">470</td><td class="line"> <span class='keyword'>if</span> (*load_failed)</td></tr>
+<tr class="codeline" data-linenumber="471"><td class="num" id="LN471">471</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="472"><td class="num" id="LN472">472</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="473"><td class="num" id="LN473">473</td><td class="line"> path_value = g_value_array_get_nth (priv-&gt;properties, path_prop_id);</td></tr>
+<tr class="codeline" data-linenumber="474"><td class="num" id="LN474">474</td><td class="line"> path_utf8 = g_value_get_string (path_value);</td></tr>
+<tr class="codeline" data-linenumber="475"><td class="num" id="LN475">475</td><td class="line"> <span class='keyword'>if</span> (!path_utf8 || !path_utf8[0])</td></tr>
+<tr class="codeline" data-linenumber="476"><td class="num" id="LN476">476</td><td class="line"> <span class='keyword'>goto</span> failed;</td></tr>
+<tr class="codeline" data-linenumber="477"><td class="num" id="LN477">477</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="478"><td class="num" id="LN478">478</td><td class="line"> path = g_filename_from_utf8 (path_utf8, -1, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="479"><td class="num" id="LN479">479</td><td class="line"> <span class='keyword'>if</span> (!path)</td></tr>
+<tr class="codeline" data-linenumber="480"><td class="num" id="LN480">480</td><td class="line"> <span class='keyword'>goto</span> failed;</td></tr>
+<tr class="codeline" data-linenumber="481"><td class="num" id="LN481">481</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="482"><td class="num" id="LN482">482</td><td class="line"> pixbuf = gdk_pixbuf_new_from_file (path, &amp;error);</td></tr>
+<tr class="codeline" data-linenumber="483"><td class="num" id="LN483">483</td><td class="line"> <span class='keyword'>if</span> (!pixbuf)</td></tr>
+<tr class="codeline" data-linenumber="484"><td class="num" id="LN484">484</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="485"><td class="num" id="LN485">485</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_PROFILE,<span class='macro_popup'>do { if (0) g_printerr("Failed to load image \"%s\": %s\n", path<br>, error-&gt;message); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="486"><td class="num" id="LN486">486</td><td class="line"> <span class='string_literal'><span class='macro'>"Failed to load image \"%s\": %s\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("Failed to load image \"%s\": %s\n", path<br>, error-&gt;message); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="487"><td class="num" id="LN487">487</td><td class="line"> <span class='macro'>path, error-&gt;message)<span class='macro_popup'>do { if (0) g_printerr("Failed to load image \"%s\": %s\n", path<br>, error-&gt;message); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="488"><td class="num" id="LN488">488</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="489"><td class="num" id="LN489">489</td><td class="line"> g_error_free (error);</td></tr>
+<tr class="codeline" data-linenumber="490"><td class="num" id="LN490">490</td><td class="line"> g_free (path);</td></tr>
+<tr class="codeline" data-linenumber="491"><td class="num" id="LN491">491</td><td class="line"> <span class='keyword'>goto</span> failed;</td></tr>
+<tr class="codeline" data-linenumber="492"><td class="num" id="LN492">492</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="493"><td class="num" id="LN493">493</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="494"><td class="num" id="LN494">494</td><td class="line"> g_value_take_object (pixbuf_value, pixbuf);</td></tr>
+<tr class="codeline" data-linenumber="495"><td class="num" id="LN495">495</td><td class="line"> g_free (path);</td></tr>
+<tr class="codeline" data-linenumber="496"><td class="num" id="LN496">496</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="497"><td class="num" id="LN497">497</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="498"><td class="num" id="LN498">498</td><td class="line">failed:</td></tr>
+<tr class="codeline" data-linenumber="499"><td class="num" id="LN499">499</td><td class="line"> *load_failed = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="500"><td class="num" id="LN500">500</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="501"><td class="num" id="LN501">501</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="502"><td class="num" id="LN502">502</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="503"><td class="num" id="LN503">503</td><td class="line">terminal_profile_reset_property_internal (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="504"><td class="num" id="LN504">504</td><td class="line"> GParamSpec *pspec,</td></tr>
+<tr class="codeline" data-linenumber="505"><td class="num" id="LN505">505</td><td class="line"> gboolean notify)</td></tr>
+<tr class="codeline" data-linenumber="506"><td class="num" id="LN506">506</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="507"><td class="num" id="LN507">507</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="508"><td class="num" id="LN508">508</td><td class="line"> GValue value_ = { 0, };</td></tr>
+<tr class="codeline" data-linenumber="509"><td class="num" id="LN509">509</td><td class="line"> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="510"><td class="num" id="LN510">510</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="511"><td class="num" id="LN511">511</td><td class="line"> <span class='keyword'>if</span> (notify)</td></tr>
+<tr class="codeline" data-linenumber="512"><td class="num" id="LN512">512</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="513"><td class="num" id="LN513">513</td><td class="line"> value = &amp;value_;</td></tr>
+<tr class="codeline" data-linenumber="514"><td class="num" id="LN514">514</td><td class="line"> g_value_init (value, <span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="515"><td class="num" id="LN515">515</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="516"><td class="num" id="LN516">516</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="517"><td class="num" id="LN517">517</td><td class="line"> value = g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id);</td></tr>
+<tr class="codeline" data-linenumber="518"><td class="num" id="LN518">518</td><td class="line"> <span class='macro'>g_assert (value != NULL)<span class='macro_popup'>do { if (value != ((void*)0)) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-profile.c", 518, ((const char*) (__func__<br>)), "value != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="519"><td class="num" id="LN519">519</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="520"><td class="num" id="LN520">520</td><td class="line"> <span class='comment'>/* A few properties don't have defaults via the param spec; set them explicitly */</span></td></tr>
+<tr class="codeline" data-linenumber="521"><td class="num" id="LN521">521</td><td class="line"> <span class='keyword'>switch</span> (pspec-&gt;param_id)</td></tr>
+<tr class="codeline" data-linenumber="522"><td class="num" id="LN522">522</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="523"><td class="num" id="LN523">523</td><td class="line"> <span class='keyword'>case</span> PROP_FOREGROUND_COLOR:</td></tr>
+<tr class="codeline" data-linenumber="524"><td class="num" id="LN524">524</td><td class="line"> <span class='keyword'>case</span> PROP_BOLD_COLOR:</td></tr>
+<tr class="codeline" data-linenumber="525"><td class="num" id="LN525">525</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="526"><td class="num" id="LN526">526</td><td class="line"> GdkRGBA color;</td></tr>
+<tr class="codeline" data-linenumber="527"><td class="num" id="LN527">527</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="528"><td class="num" id="LN528">528</td><td class="line"> <span class='keyword'>if</span> (!gdk_rgba_parse (&amp;color, <span class='macro'>DEFAULT_FOREGROUND_COLOR<span class='macro_popup'>("#000000")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="529"><td class="num" id="LN529">529</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="530"><td class="num" id="LN530">530</td><td class="line"> color.alpha = 1.0;</td></tr>
+<tr class="codeline" data-linenumber="531"><td class="num" id="LN531">531</td><td class="line"> g_value_set_boxed (value, &amp;color);</td></tr>
+<tr class="codeline" data-linenumber="532"><td class="num" id="LN532">532</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="533"><td class="num" id="LN533">533</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="534"><td class="num" id="LN534">534</td><td class="line"> <span class='keyword'>case</span> PROP_BACKGROUND_COLOR:</td></tr>
+<tr class="codeline" data-linenumber="535"><td class="num" id="LN535">535</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="536"><td class="num" id="LN536">536</td><td class="line"> GdkRGBA color;</td></tr>
+<tr class="codeline" data-linenumber="537"><td class="num" id="LN537">537</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="538"><td class="num" id="LN538">538</td><td class="line"> <span class='keyword'>if</span> (!gdk_rgba_parse (&amp;color, <span class='macro'>DEFAULT_BACKGROUND_COLOR<span class='macro_popup'>("#FFFFDD")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="539"><td class="num" id="LN539">539</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="540"><td class="num" id="LN540">540</td><td class="line"> color.alpha = 1.0;</td></tr>
+<tr class="codeline" data-linenumber="541"><td class="num" id="LN541">541</td><td class="line"> g_value_set_boxed (value, &amp;color);</td></tr>
+<tr class="codeline" data-linenumber="542"><td class="num" id="LN542">542</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="543"><td class="num" id="LN543">543</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="544"><td class="num" id="LN544">544</td><td class="line"> <span class='keyword'>case</span> PROP_FONT:</td></tr>
+<tr class="codeline" data-linenumber="545"><td class="num" id="LN545">545</td><td class="line"> g_value_take_boxed (value, pango_font_description_from_string (<span class='macro'>DEFAULT_FONT<span class='macro_popup'>("Monospace 12")</span></span>));</td></tr>
+<tr class="codeline" data-linenumber="546"><td class="num" id="LN546">546</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="547"><td class="num" id="LN547">547</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="548"><td class="num" id="LN548">548</td><td class="line"> <span class='keyword'>case</span> PROP_PALETTE:</td></tr>
+<tr class="codeline" data-linenumber="549"><td class="num" id="LN549">549</td><td class="line"> set_value_from_palette (value, <span class='macro'>DEFAULT_PALETTE<span class='macro_popup'>(terminal_palettes[0])</span></span>, <span class='macro'>TERMINAL_PALETTE_SIZE<span class='macro_popup'>16</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="550"><td class="num" id="LN550">550</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="551"><td class="num" id="LN551">551</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="552"><td class="num" id="LN552">552</td><td class="line"> <span class='keyword'>default</span>:</td></tr>
+<tr class="codeline" data-linenumber="553"><td class="num" id="LN553">553</td><td class="line"> g_param_value_set_default (pspec, value);</td></tr>
+<tr class="codeline" data-linenumber="554"><td class="num" id="LN554">554</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="555"><td class="num" id="LN555">555</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="556"><td class="num" id="LN556">556</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="557"><td class="num" id="LN557">557</td><td class="line"> <span class='keyword'>if</span> (notify)</td></tr>
+<tr class="codeline" data-linenumber="558"><td class="num" id="LN558">558</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="559"><td class="num" id="LN559">559</td><td class="line"> g_object_set_property (<span class='macro'>G_OBJECT (profile)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((profile)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, pspec-&gt;name, value);</td></tr>
+<tr class="codeline" data-linenumber="560"><td class="num" id="LN560">560</td><td class="line"> g_value_unset (value);</td></tr>
+<tr class="codeline" data-linenumber="561"><td class="num" id="LN561">561</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="562"><td class="num" id="LN562">562</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="563"><td class="num" id="LN563">563</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="564"><td class="num" id="LN564">564</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="565"><td class="num" id="LN565">565</td><td class="line">terminal_profile_gsettings_notify_cb (GSettings *settings,</td></tr>
+<tr class="codeline" data-linenumber="566"><td class="num" id="LN566">566</td><td class="line"> gchar *key,</td></tr>
+<tr class="codeline" data-linenumber="567"><td class="num" id="LN567">567</td><td class="line"> gpointer user_data)</td></tr>
+<tr class="codeline" data-linenumber="568"><td class="num" id="LN568">568</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="569"><td class="num" id="LN569">569</td><td class="line"> TerminalProfile *profile = <span class='macro'>TERMINAL_PROFILE (user_data)<span class='macro_popup'>((((TerminalProfile*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((user_data)), ((terminal_profile_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="570"><td class="num" id="LN570">570</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="571"><td class="num" id="LN571">571</td><td class="line"> TerminalProfileClass *klass;</td></tr>
+<tr class="codeline" data-linenumber="572"><td class="num" id="LN572">572</td><td class="line"> GVariant *settings_value;</td></tr>
+<tr class="codeline" data-linenumber="573"><td class="num" id="LN573">573</td><td class="line"> GParamSpec *pspec;</td></tr>
+<tr class="codeline" data-linenumber="574"><td class="num" id="LN574">574</td><td class="line"> GValue value = { 0, };</td></tr>
+<tr class="codeline" data-linenumber="575"><td class="num" id="LN575">575</td><td class="line"> gboolean equal;</td></tr>
+<tr class="codeline" data-linenumber="576"><td class="num" id="LN576">576</td><td class="line"> gboolean force_set = <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="577"><td class="num" id="LN577">577</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="578"><td class="num" id="LN578">578</td><td class="line"> <span class='keyword'>if</span> (!key) <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="579"><td class="num" id="LN579">579</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="580"><td class="num" id="LN580">580</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_PROFILE,<span class='macro_popup'>do { if (0) g_printerr("GSettings notification for key %s [%s]\n"<br>, key, g_settings_is_writable (settings, key) ? "writable" : "LOCKED"<br>); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="581"><td class="num" id="LN581">581</td><td class="line"> <span class='string_literal'><span class='macro'>"GSettings notification for key %s [%s]\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("GSettings notification for key %s [%s]\n"<br>, key, g_settings_is_writable (settings, key) ? "writable" : "LOCKED"<br>); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="582"><td class="num" id="LN582">582</td><td class="line"> <span class='macro'>key,<span class='macro_popup'>do { if (0) g_printerr("GSettings notification for key %s [%s]\n"<br>, key, g_settings_is_writable (settings, key) ? "writable" : "LOCKED"<br>); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="583"><td class="num" id="LN583">583</td><td class="line"> <span class='macro'>g_settings_is_writable (settings, key) ? <span class='string_literal'>"writable"</span> : <span class='string_literal'>"LOCKED"</span>)<span class='macro_popup'>do { if (0) g_printerr("GSettings notification for key %s [%s]\n"<br>, key, g_settings_is_writable (settings, key) ? "writable" : "LOCKED"<br>); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="584"><td class="num" id="LN584">584</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="585"><td class="num" id="LN585">585</td><td class="line"> klass = <span class='macro'>TERMINAL_PROFILE_GET_CLASS (profile)<span class='macro_popup'>((((TerminalProfileClass*) (((GTypeInstance*) ((profile)))-&gt;<br>g_class))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="586"><td class="num" id="LN586">586</td><td class="line"> pspec = g_hash_table_lookup (klass-&gt;gsettings_keys, key);</td></tr>
+<tr class="codeline" data-linenumber="587"><td class="num" id="LN587">587</td><td class="line"> <span class='keyword'>if</span> (!pspec)</td></tr>
+<tr class="codeline" data-linenumber="588"><td class="num" id="LN588">588</td><td class="line"> <span class='keyword'>return</span>; <span class='comment'>/* ignore unknown keys, for future extensibility */</span></td></tr>
+<tr class="codeline" data-linenumber="589"><td class="num" id="LN589">589</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="590"><td class="num" id="LN590">590</td><td class="line"> priv-&gt;locked[pspec-&gt;param_id] = !g_settings_is_writable (settings, key);</td></tr>
+<tr class="codeline" data-linenumber="591"><td class="num" id="LN591">591</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="592"><td class="num" id="LN592">592</td><td class="line"> settings_value = g_settings_get_value (settings, key);</td></tr>
+<tr class="codeline" data-linenumber="593"><td class="num" id="LN593">593</td><td class="line"> <span class='keyword'>if</span> (!settings_value)</td></tr>
+<tr class="codeline" data-linenumber="594"><td class="num" id="LN594">594</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="595"><td class="num" id="LN595">595</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="596"><td class="num" id="LN596">596</td><td class="line"> g_value_init (&amp;value, <span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="597"><td class="num" id="LN597">597</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="598"><td class="num" id="LN598">598</td><td class="line"> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_BOOLEAN (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[2])); gboolean __r<br>; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="599"><td class="num" id="LN599">599</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="600"><td class="num" id="LN600">600</td><td class="line"> <span class='keyword'>if</span> (!g_variant_is_of_type (settings_value, <span class="mrange"><span class="mrange"><span class='macro'>G_VARIANT_TYPE_BOOLEAN<span class='macro_popup'>((const GVariantType *) "b")</span></span></span></span>))</td></tr>
+<tr><td class="num"></td><td class="line"><div id="EndPath" class="msg msgEvent" style="margin-left:60ex; max-width:31em">Casting a non-structure type to a structure type and accessing a field can lead to memory access errors or data corruption</div></td></tr>
+<tr class="codeline" data-linenumber="601"><td class="num" id="LN601">601</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="602"><td class="num" id="LN602">602</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="603"><td class="num" id="LN603">603</td><td class="line"> g_value_set_boolean (&amp;value, g_variant_get_boolean (settings_value));</td></tr>
+<tr class="codeline" data-linenumber="604"><td class="num" id="LN604">604</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="605"><td class="num" id="LN605">605</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_STRING (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[14])); gboolean __r<br>; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="606"><td class="num" id="LN606">606</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="607"><td class="num" id="LN607">607</td><td class="line"> <span class='keyword'>if</span> (!g_variant_is_of_type (settings_value, <span class='macro'>G_VARIANT_TYPE_STRING<span class='macro_popup'>((const GVariantType *) "s")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="608"><td class="num" id="LN608">608</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="609"><td class="num" id="LN609">609</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="610"><td class="num" id="LN610">610</td><td class="line"> g_value_set_string (&amp;value, g_variant_get_string (settings_value, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>));</td></tr>
+<tr class="codeline" data-linenumber="611"><td class="num" id="LN611">611</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="612"><td class="num" id="LN612">612</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_ENUM (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[10])); gboolean __r<br>; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="613"><td class="num" id="LN613">613</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="614"><td class="num" id="LN614">614</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="615"><td class="num" id="LN615">615</td><td class="line"> <span class='keyword'>if</span> (!g_variant_is_of_type (settings_value, <span class='macro'>G_VARIANT_TYPE_STRING<span class='macro_popup'>((const GVariantType *) "s")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="616"><td class="num" id="LN616">616</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="617"><td class="num" id="LN617">617</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="618"><td class="num" id="LN618">618</td><td class="line"> g_value_set_enum (&amp;value, g_settings_get_enum (settings, key));</td></tr>
+<tr class="codeline" data-linenumber="619"><td class="num" id="LN619">619</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="620"><td class="num" id="LN620">620</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span> == <span class='macro'>GDK_TYPE_RGBA<span class='macro_popup'>(gdk_rgba_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="621"><td class="num" id="LN621">621</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="622"><td class="num" id="LN622">622</td><td class="line"> GdkRGBA color;</td></tr>
+<tr class="codeline" data-linenumber="623"><td class="num" id="LN623">623</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="624"><td class="num" id="LN624">624</td><td class="line"> <span class='keyword'>if</span> (!g_variant_is_of_type (settings_value, <span class='macro'>G_VARIANT_TYPE_STRING<span class='macro_popup'>((const GVariantType *) "s")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="625"><td class="num" id="LN625">625</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="626"><td class="num" id="LN626">626</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="627"><td class="num" id="LN627">627</td><td class="line"> <span class='keyword'>if</span> (!gdk_rgba_parse (&amp;color, g_variant_get_string (settings_value, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)))</td></tr>
+<tr class="codeline" data-linenumber="628"><td class="num" id="LN628">628</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="629"><td class="num" id="LN629">629</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="630"><td class="num" id="LN630">630</td><td class="line"> g_value_set_boxed (&amp;value, &amp;color);</td></tr>
+<tr class="codeline" data-linenumber="631"><td class="num" id="LN631">631</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="632"><td class="num" id="LN632">632</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span> == <span class='macro'>PANGO_TYPE_FONT_DESCRIPTION<span class='macro_popup'>(pango_font_description_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="633"><td class="num" id="LN633">633</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="634"><td class="num" id="LN634">634</td><td class="line"> <span class='keyword'>if</span> (!g_variant_is_of_type (settings_value, <span class='macro'>G_VARIANT_TYPE_STRING<span class='macro_popup'>((const GVariantType *) "s")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="635"><td class="num" id="LN635">635</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="636"><td class="num" id="LN636">636</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="637"><td class="num" id="LN637">637</td><td class="line"> g_value_take_boxed (&amp;value, pango_font_description_from_string (g_variant_get_string (settings_value, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)));</td></tr>
+<tr class="codeline" data-linenumber="638"><td class="num" id="LN638">638</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="639"><td class="num" id="LN639">639</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_DOUBLE (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[13])); gboolean __r<br>; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="640"><td class="num" id="LN640">640</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="641"><td class="num" id="LN641">641</td><td class="line"> <span class='keyword'>if</span> (!g_variant_is_of_type (settings_value, <span class='macro'>G_VARIANT_TYPE_DOUBLE<span class='macro_popup'>((const GVariantType *) "d")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="642"><td class="num" id="LN642">642</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="643"><td class="num" id="LN643">643</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="644"><td class="num" id="LN644">644</td><td class="line"> g_value_set_double (&amp;value, g_variant_get_double (settings_value));</td></tr>
+<tr class="codeline" data-linenumber="645"><td class="num" id="LN645">645</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="646"><td class="num" id="LN646">646</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_INT (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[3])); gboolean __r<br>; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="647"><td class="num" id="LN647">647</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="648"><td class="num" id="LN648">648</td><td class="line"> <span class='keyword'>if</span> (!g_variant_is_of_type (settings_value, <span class='macro'>G_VARIANT_TYPE_INT16<span class='macro_popup'>((const GVariantType *) "n")</span></span>) &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="649"><td class="num" id="LN649">649</td><td class="line"> !g_variant_is_of_type (settings_value, <span class='macro'>G_VARIANT_TYPE_INT32<span class='macro_popup'>((const GVariantType *) "i")</span></span>) &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="650"><td class="num" id="LN650">650</td><td class="line"> !g_variant_is_of_type (settings_value, <span class='macro'>G_VARIANT_TYPE_INT64<span class='macro_popup'>((const GVariantType *) "x")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="651"><td class="num" id="LN651">651</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="652"><td class="num" id="LN652">652</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="653"><td class="num" id="LN653">653</td><td class="line"> g_value_set_int (&amp;value, g_settings_get_int(settings, key));</td></tr>
+<tr class="codeline" data-linenumber="654"><td class="num" id="LN654">654</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="655"><td class="num" id="LN655">655</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_VALUE_ARRAY (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[18]) GCC warning "Deprecated pre-processor symbol"<br>
+); gboolean __r; if (!__inst) __r = (0); else if (__inst-&gt;<br>g_class &amp;&amp; __inst-&gt;g_class-&gt;g_type == __t) __r =<br> (!(0)); else __r = g_type_check_instance_is_a (__inst, __t);<br> __r; })))) GCC warning "Deprecated pre-processor symbol"
+</span></span> &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="656"><td class="num" id="LN656">656</td><td class="line"> <span class='macro'>G_PARAM_SPEC_VALUE_TYPE (G_PARAM_SPEC_VALUE_ARRAY (pspec)-&gt;element_spec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((((((GParamSpecValueArray*) (void *) g_type_check_instance_cast<br> ((GTypeInstance*) ((pspec)), ((g_param_spec_types[18]) GCC warning<br> "Deprecated pre-processor symbol"
+))))) GCC warning "Deprecated pre-processor symbol"<br>
+-&gt;element_spec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;<br>value_type)</span></span> == <span class='macro'>GDK_TYPE_RGBA<span class='macro_popup'>(gdk_rgba_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="657"><td class="num" id="LN657">657</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="658"><td class="num" id="LN658">658</td><td class="line"> <span class='keyword'>char</span> **color_strings;</td></tr>
+<tr class="codeline" data-linenumber="659"><td class="num" id="LN659">659</td><td class="line"> GdkRGBA *colors;</td></tr>
+<tr class="codeline" data-linenumber="660"><td class="num" id="LN660">660</td><td class="line"> <span class='keyword'>int</span> n_colors, i;</td></tr>
+<tr class="codeline" data-linenumber="661"><td class="num" id="LN661">661</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="662"><td class="num" id="LN662">662</td><td class="line"> <span class='keyword'>if</span> (!g_variant_is_of_type (settings_value, <span class='macro'>G_VARIANT_TYPE_STRING<span class='macro_popup'>((const GVariantType *) "s")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="663"><td class="num" id="LN663">663</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="664"><td class="num" id="LN664">664</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="665"><td class="num" id="LN665">665</td><td class="line"> color_strings = g_strsplit (g_variant_get_string (settings_value, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>), <span class='string_literal'>":"</span>, -1);</td></tr>
+<tr class="codeline" data-linenumber="666"><td class="num" id="LN666">666</td><td class="line"> <span class='keyword'>if</span> (!color_strings)</td></tr>
+<tr class="codeline" data-linenumber="667"><td class="num" id="LN667">667</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="668"><td class="num" id="LN668">668</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="669"><td class="num" id="LN669">669</td><td class="line"> n_colors = g_strv_length (color_strings);</td></tr>
+<tr class="codeline" data-linenumber="670"><td class="num" id="LN670">670</td><td class="line"> colors = <span class='macro'>g_new0 (GdkRGBA, n_colors)<span class='macro_popup'>((GdkRGBA *) g_malloc0_n ((n_colors), sizeof (GdkRGBA)))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="671"><td class="num" id="LN671">671</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; n_colors; ++i)</td></tr>
+<tr class="codeline" data-linenumber="672"><td class="num" id="LN672">672</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="673"><td class="num" id="LN673">673</td><td class="line"> <span class='keyword'>if</span> (!gdk_rgba_parse (&amp;colors[i], color_strings[i]))</td></tr>
+<tr class="codeline" data-linenumber="674"><td class="num" id="LN674">674</td><td class="line"> <span class='keyword'>continue</span>; <span class='comment'>/* ignore errors */</span></td></tr>
+<tr class="codeline" data-linenumber="675"><td class="num" id="LN675">675</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="676"><td class="num" id="LN676">676</td><td class="line"> g_strfreev (color_strings);</td></tr>
+<tr class="codeline" data-linenumber="677"><td class="num" id="LN677">677</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="678"><td class="num" id="LN678">678</td><td class="line"> <span class='comment'>/* We continue even with a palette size != TERMINAL_PALETTE_SIZE,</span></td></tr>
+<tr class="codeline" data-linenumber="679"><td class="num" id="LN679">679</td><td class="line"> <span class='comment'>* so we can change the palette size in future versions without</span></td></tr>
+<tr class="codeline" data-linenumber="680"><td class="num" id="LN680">680</td><td class="line"> <span class='comment'>* causing too many issues.</span></td></tr>
+<tr class="codeline" data-linenumber="681"><td class="num" id="LN681">681</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="682"><td class="num" id="LN682">682</td><td class="line"> set_value_from_palette (&amp;value, colors, n_colors);</td></tr>
+<tr class="codeline" data-linenumber="683"><td class="num" id="LN683">683</td><td class="line"> g_free (colors);</td></tr>
+<tr class="codeline" data-linenumber="684"><td class="num" id="LN684">684</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="685"><td class="num" id="LN685">685</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="686"><td class="num" id="LN686">686</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="687"><td class="num" id="LN687">687</td><td class="line"> g_printerr (<span class='string_literal'>"Unhandled value type %s of pspec %s\n"</span>, g_type_name (<span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span>), pspec-&gt;name);</td></tr>
+<tr class="codeline" data-linenumber="688"><td class="num" id="LN688">688</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="689"><td class="num" id="LN689">689</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="690"><td class="num" id="LN690">690</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="691"><td class="num" id="LN691">691</td><td class="line"> <span class='keyword'>if</span> (g_param_value_validate (pspec, &amp;value))</td></tr>
+<tr class="codeline" data-linenumber="692"><td class="num" id="LN692">692</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="693"><td class="num" id="LN693">693</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_PROFILE,<span class='macro_popup'>do { if (0) g_printerr("Invalid value in GSettings for key %s was changed to comply with pspec %s\n"<br>, key, pspec-&gt;name); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="694"><td class="num" id="LN694">694</td><td class="line"> <span class='string_literal'><span class='macro'>"Invalid value in GSettings for key %s was changed to comply with pspec %s\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("Invalid value in GSettings for key %s was changed to comply with pspec %s\n"<br>, key, pspec-&gt;name); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="695"><td class="num" id="LN695">695</td><td class="line"> <span class='macro'>key, pspec-&gt;name)<span class='macro_popup'>do { if (0) g_printerr("Invalid value in GSettings for key %s was changed to comply with pspec %s\n"<br>, key, pspec-&gt;name); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="696"><td class="num" id="LN696">696</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="697"><td class="num" id="LN697">697</td><td class="line"> force_set = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="698"><td class="num" id="LN698">698</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="699"><td class="num" id="LN699">699</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="700"><td class="num" id="LN700">700</td><td class="line"> <span class='comment'>/* Only set the property if the value is different than our current value,</span></td></tr>
+<tr class="codeline" data-linenumber="701"><td class="num" id="LN701">701</td><td class="line"> <span class='comment'>* so we don't go into an infinite loop.</span></td></tr>
+<tr class="codeline" data-linenumber="702"><td class="num" id="LN702">702</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="703"><td class="num" id="LN703">703</td><td class="line"> equal = values_equal (pspec, &amp;value, g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id));</td></tr>
+<tr class="codeline" data-linenumber="704"><td class="num" id="LN704">704</td><td class="line"><span class='directive'>#ifdef MATE_ENABLE_DEBUG</span></td></tr>
+<tr class="codeline" data-linenumber="705"><td class="num" id="LN705">705</td><td class="line"> <span class='macro'>_TERMINAL_DEBUG_IF (TERMINAL_DEBUG_PROFILE)<span class='macro_popup'>if (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="706"><td class="num" id="LN706">706</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="707"><td class="num" id="LN707">707</td><td class="line"> <span class='keyword'>if</span> (!equal)</td></tr>
+<tr class="codeline" data-linenumber="708"><td class="num" id="LN708">708</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_PROFILE,<span class='macro_popup'>do { if (0) g_printerr("Setting property %s to a different value\n"<br> " now: %s\n" " new: %s\n", pspec-&gt;name, g_strdup_value_contents<br> (g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id<br>)), g_strdup_value_contents (&amp;value)); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="709"><td class="num" id="LN709">709</td><td class="line"> <span class='string_literal'><span class='macro'>"Setting property %s to a different value\n"<span class='macro_popup'>do { if (0) g_printerr("Setting property %s to a different value\n"<br> " now: %s\n" " new: %s\n", pspec-&gt;name, g_strdup_value_contents<br> (g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id<br>)), g_strdup_value_contents (&amp;value)); } while (0)</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="710"><td class="num" id="LN710">710</td><td class="line"> <span class='string_literal'><span class='macro'>" now: %s\n"<span class='macro_popup'>do { if (0) g_printerr("Setting property %s to a different value\n"<br> " now: %s\n" " new: %s\n", pspec-&gt;name, g_strdup_value_contents<br> (g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id<br>)), g_strdup_value_contents (&amp;value)); } while (0)</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="711"><td class="num" id="LN711">711</td><td class="line"> <span class='string_literal'><span class='macro'>" new: %s\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("Setting property %s to a different value\n"<br> " now: %s\n" " new: %s\n", pspec-&gt;name, g_strdup_value_contents<br> (g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id<br>)), g_strdup_value_contents (&amp;value)); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="712"><td class="num" id="LN712">712</td><td class="line"> <span class='macro'>pspec-&gt;name,<span class='macro_popup'>do { if (0) g_printerr("Setting property %s to a different value\n"<br> " now: %s\n" " new: %s\n", pspec-&gt;name, g_strdup_value_contents<br> (g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id<br>)), g_strdup_value_contents (&amp;value)); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="713"><td class="num" id="LN713">713</td><td class="line"> <span class='macro'>g_strdup_value_contents (g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id)),<span class='macro_popup'>do { if (0) g_printerr("Setting property %s to a different value\n"<br> " now: %s\n" " new: %s\n", pspec-&gt;name, g_strdup_value_contents<br> (g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id<br>)), g_strdup_value_contents (&amp;value)); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="714"><td class="num" id="LN714">714</td><td class="line"> <span class='macro'>g_strdup_value_contents (&amp;value))<span class='macro_popup'>do { if (0) g_printerr("Setting property %s to a different value\n"<br> " now: %s\n" " new: %s\n", pspec-&gt;name, g_strdup_value_contents<br> (g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id<br>)), g_strdup_value_contents (&amp;value)); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="715"><td class="num" id="LN715">715</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="716"><td class="num" id="LN716">716</td><td class="line"><span class='directive'>#endif</span></td></tr>
+<tr class="codeline" data-linenumber="717"><td class="num" id="LN717">717</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="718"><td class="num" id="LN718">718</td><td class="line"> <span class='keyword'>if</span> (!equal || force_set)</td></tr>
+<tr class="codeline" data-linenumber="719"><td class="num" id="LN719">719</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="720"><td class="num" id="LN720">720</td><td class="line"> priv-&gt;gsettings_notification_pspec = pspec;</td></tr>
+<tr class="codeline" data-linenumber="721"><td class="num" id="LN721">721</td><td class="line"> g_object_set_property (<span class='macro'>G_OBJECT (profile)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((profile)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, pspec-&gt;name, &amp;value);</td></tr>
+<tr class="codeline" data-linenumber="722"><td class="num" id="LN722">722</td><td class="line"> priv-&gt;gsettings_notification_pspec = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="723"><td class="num" id="LN723">723</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="724"><td class="num" id="LN724">724</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="725"><td class="num" id="LN725">725</td><td class="line">out:</td></tr>
+<tr class="codeline" data-linenumber="726"><td class="num" id="LN726">726</td><td class="line"> <span class='comment'>/* FIXME: if we arrive here through goto in the error cases,</span></td></tr>
+<tr class="codeline" data-linenumber="727"><td class="num" id="LN727">727</td><td class="line"> <span class='comment'>* should we maybe reset the property to its default value?</span></td></tr>
+<tr class="codeline" data-linenumber="728"><td class="num" id="LN728">728</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="729"><td class="num" id="LN729">729</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="730"><td class="num" id="LN730">730</td><td class="line"> g_value_unset (&amp;value);</td></tr>
+<tr class="codeline" data-linenumber="731"><td class="num" id="LN731">731</td><td class="line"> g_variant_unref (settings_value);</td></tr>
+<tr class="codeline" data-linenumber="732"><td class="num" id="LN732">732</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="733"><td class="num" id="LN733">733</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="734"><td class="num" id="LN734">734</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="735"><td class="num" id="LN735">735</td><td class="line">terminal_profile_gsettings_changeset_add (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="736"><td class="num" id="LN736">736</td><td class="line"> GSettings *changeset,</td></tr>
+<tr class="codeline" data-linenumber="737"><td class="num" id="LN737">737</td><td class="line"> GParamSpec *pspec)</td></tr>
+<tr class="codeline" data-linenumber="738"><td class="num" id="LN738">738</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="739"><td class="num" id="LN739">739</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="740"><td class="num" id="LN740">740</td><td class="line"> <span class='keyword'>char</span> *key;</td></tr>
+<tr class="codeline" data-linenumber="741"><td class="num" id="LN741">741</td><td class="line"> <span class='keyword'>const</span> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="742"><td class="num" id="LN742">742</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="743"><td class="num" id="LN743">743</td><td class="line"> <span class='comment'>/* FIXME: do this? */</span></td></tr>
+<tr class="codeline" data-linenumber="744"><td class="num" id="LN744">744</td><td class="line"><span class='directive'>#if 0</span></td></tr>
+<tr class="codeline" data-linenumber="745"><td class="num" id="LN745">745</td><td class="line"> <span class='keyword'>if</span> (priv-&gt;locked[pspec-&gt;param_id])</td></tr>
+<tr class="codeline" data-linenumber="746"><td class="num" id="LN746">746</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="747"><td class="num" id="LN747">747</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="748"><td class="num" id="LN748">748</td><td class="line"> <span class='keyword'>if</span> (!g_settings_is_writable (priv-&gt;settings, gsettings_key, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="749"><td class="num" id="LN749">749</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="750"><td class="num" id="LN750">750</td><td class="line"><span class='directive'>#endif</span></td></tr>
+<tr class="codeline" data-linenumber="751"><td class="num" id="LN751">751</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="752"><td class="num" id="LN752">752</td><td class="line"> key = g_param_spec_get_qdata (pspec, gsettings_key_quark);</td></tr>
+<tr class="codeline" data-linenumber="753"><td class="num" id="LN753">753</td><td class="line"> <span class='keyword'>if</span> (!key)</td></tr>
+<tr class="codeline" data-linenumber="754"><td class="num" id="LN754">754</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="755"><td class="num" id="LN755">755</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="756"><td class="num" id="LN756">756</td><td class="line"> value = g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id);</td></tr>
+<tr class="codeline" data-linenumber="757"><td class="num" id="LN757">757</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="758"><td class="num" id="LN758">758</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_PROFILE,<span class='macro_popup'>do { if (0) g_printerr("Adding pspec %s with value %s to the GSettings changeset\n"<br>, pspec-&gt;name, g_strdup_value_contents (value)); } while (<br>0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="759"><td class="num" id="LN759">759</td><td class="line"> <span class='string_literal'><span class='macro'>"Adding pspec %s with value %s to the GSettings changeset\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("Adding pspec %s with value %s to the GSettings changeset\n"<br>, pspec-&gt;name, g_strdup_value_contents (value)); } while (<br>0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="760"><td class="num" id="LN760">760</td><td class="line"> <span class='macro'>pspec-&gt;name, g_strdup_value_contents (value))<span class='macro_popup'>do { if (0) g_printerr("Adding pspec %s with value %s to the GSettings changeset\n"<br>, pspec-&gt;name, g_strdup_value_contents (value)); } while (<br>0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="761"><td class="num" id="LN761">761</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="762"><td class="num" id="LN762">762</td><td class="line"> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_BOOLEAN (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[2])); gboolean __r<br>; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="763"><td class="num" id="LN763">763</td><td class="line"> g_settings_set_boolean (changeset, key, g_value_get_boolean (value));</td></tr>
+<tr class="codeline" data-linenumber="764"><td class="num" id="LN764">764</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_STRING (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[14])); gboolean __r<br>; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="765"><td class="num" id="LN765">765</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="766"><td class="num" id="LN766">766</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *str;</td></tr>
+<tr class="codeline" data-linenumber="767"><td class="num" id="LN767">767</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="768"><td class="num" id="LN768">768</td><td class="line"> str = g_value_get_string (value);</td></tr>
+<tr class="codeline" data-linenumber="769"><td class="num" id="LN769">769</td><td class="line"> g_settings_set_string (changeset, key, str ? str : <span class='string_literal'>""</span>);</td></tr>
+<tr class="codeline" data-linenumber="770"><td class="num" id="LN770">770</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="771"><td class="num" id="LN771">771</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_ENUM (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[10])); gboolean __r<br>; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="772"><td class="num" id="LN772">772</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="773"><td class="num" id="LN773">773</td><td class="line"> <span class='keyword'>const</span> GEnumValue *eval;</td></tr>
+<tr class="codeline" data-linenumber="774"><td class="num" id="LN774">774</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="775"><td class="num" id="LN775">775</td><td class="line"> eval = g_enum_get_value (<span class='macro'>G_PARAM_SPEC_ENUM (pspec)<span class='macro_popup'>((((GParamSpecEnum*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), ((g_param_spec_types[10]))))))</span></span>-&gt;enum_class, g_value_get_enum (value));</td></tr>
+<tr class="codeline" data-linenumber="776"><td class="num" id="LN776">776</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="777"><td class="num" id="LN777">777</td><td class="line"> g_settings_set_enum (changeset, key, eval-&gt;value);</td></tr>
+<tr class="codeline" data-linenumber="778"><td class="num" id="LN778">778</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="779"><td class="num" id="LN779">779</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span> == <span class='macro'>GDK_TYPE_RGBA<span class='macro_popup'>(gdk_rgba_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="780"><td class="num" id="LN780">780</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="781"><td class="num" id="LN781">781</td><td class="line"> GdkRGBA *color;</td></tr>
+<tr class="codeline" data-linenumber="782"><td class="num" id="LN782">782</td><td class="line"> <span class='keyword'>char</span> str[16];</td></tr>
+<tr class="codeline" data-linenumber="783"><td class="num" id="LN783">783</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="784"><td class="num" id="LN784">784</td><td class="line"> color = g_value_get_boxed (value);</td></tr>
+<tr class="codeline" data-linenumber="785"><td class="num" id="LN785">785</td><td class="line"> <span class='keyword'>if</span> (!color)</td></tr>
+<tr class="codeline" data-linenumber="786"><td class="num" id="LN786">786</td><td class="line"> <span class='keyword'>goto</span> cleanup;</td></tr>
+<tr class="codeline" data-linenumber="787"><td class="num" id="LN787">787</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="788"><td class="num" id="LN788">788</td><td class="line"> g_snprintf (str, <span class='keyword'>sizeof</span> (str),</td></tr>
+<tr class="codeline" data-linenumber="789"><td class="num" id="LN789">789</td><td class="line"> <span class='string_literal'>"#%04X%04X%04X"</span>,</td></tr>
+<tr class="codeline" data-linenumber="790"><td class="num" id="LN790">790</td><td class="line"> (guint) (color-&gt;red * 65535),</td></tr>
+<tr class="codeline" data-linenumber="791"><td class="num" id="LN791">791</td><td class="line"> (guint) (color-&gt;green * 65535),</td></tr>
+<tr class="codeline" data-linenumber="792"><td class="num" id="LN792">792</td><td class="line"> (guint) (color-&gt;blue * 65535));</td></tr>
+<tr class="codeline" data-linenumber="793"><td class="num" id="LN793">793</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="794"><td class="num" id="LN794">794</td><td class="line"> g_settings_set_string (changeset, key, str);</td></tr>
+<tr class="codeline" data-linenumber="795"><td class="num" id="LN795">795</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="796"><td class="num" id="LN796">796</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span> == <span class='macro'>PANGO_TYPE_FONT_DESCRIPTION<span class='macro_popup'>(pango_font_description_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="797"><td class="num" id="LN797">797</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="798"><td class="num" id="LN798">798</td><td class="line"> PangoFontDescription *font_desc;</td></tr>
+<tr class="codeline" data-linenumber="799"><td class="num" id="LN799">799</td><td class="line"> <span class='keyword'>char</span> *font;</td></tr>
+<tr class="codeline" data-linenumber="800"><td class="num" id="LN800">800</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="801"><td class="num" id="LN801">801</td><td class="line"> font_desc = g_value_get_boxed (value);</td></tr>
+<tr class="codeline" data-linenumber="802"><td class="num" id="LN802">802</td><td class="line"> <span class='keyword'>if</span> (!font_desc)</td></tr>
+<tr class="codeline" data-linenumber="803"><td class="num" id="LN803">803</td><td class="line"> <span class='keyword'>goto</span> cleanup;</td></tr>
+<tr class="codeline" data-linenumber="804"><td class="num" id="LN804">804</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="805"><td class="num" id="LN805">805</td><td class="line"> font = pango_font_description_to_string (font_desc);</td></tr>
+<tr class="codeline" data-linenumber="806"><td class="num" id="LN806">806</td><td class="line"> g_settings_set_string (changeset, key, font);</td></tr>
+<tr class="codeline" data-linenumber="807"><td class="num" id="LN807">807</td><td class="line"> g_free (font);</td></tr>
+<tr class="codeline" data-linenumber="808"><td class="num" id="LN808">808</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="809"><td class="num" id="LN809">809</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_DOUBLE (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[13])); gboolean __r<br>; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="810"><td class="num" id="LN810">810</td><td class="line"> g_settings_set_double (changeset, key, g_value_get_double (value));</td></tr>
+<tr class="codeline" data-linenumber="811"><td class="num" id="LN811">811</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_INT (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[3])); gboolean __r<br>; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="812"><td class="num" id="LN812">812</td><td class="line"> g_settings_set_int (changeset, key, g_value_get_int (value));</td></tr>
+<tr class="codeline" data-linenumber="813"><td class="num" id="LN813">813</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_VALUE_ARRAY (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[18]) GCC warning "Deprecated pre-processor symbol"<br>
+); gboolean __r; if (!__inst) __r = (0); else if (__inst-&gt;<br>g_class &amp;&amp; __inst-&gt;g_class-&gt;g_type == __t) __r =<br> (!(0)); else __r = g_type_check_instance_is_a (__inst, __t);<br> __r; })))) GCC warning "Deprecated pre-processor symbol"
+</span></span> &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="814"><td class="num" id="LN814">814</td><td class="line"> <span class='macro'>G_PARAM_SPEC_VALUE_TYPE (G_PARAM_SPEC_VALUE_ARRAY (pspec)-&gt;element_spec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((((((GParamSpecValueArray*) (void *) g_type_check_instance_cast<br> ((GTypeInstance*) ((pspec)), ((g_param_spec_types[18]) GCC warning<br> "Deprecated pre-processor symbol"
+))))) GCC warning "Deprecated pre-processor symbol"<br>
+-&gt;element_spec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;<br>value_type)</span></span> == <span class='macro'>GDK_TYPE_RGBA<span class='macro_popup'>(gdk_rgba_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="815"><td class="num" id="LN815">815</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="816"><td class="num" id="LN816">816</td><td class="line"> GValueArray *array;</td></tr>
+<tr class="codeline" data-linenumber="817"><td class="num" id="LN817">817</td><td class="line"> GString *string;</td></tr>
+<tr class="codeline" data-linenumber="818"><td class="num" id="LN818">818</td><td class="line"> guint n_colors, i;</td></tr>
+<tr class="codeline" data-linenumber="819"><td class="num" id="LN819">819</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="820"><td class="num" id="LN820">820</td><td class="line"> <span class='comment'>/* We need to do this ourselves, because the gtk_color_selection_palette_to_string</span></td></tr>
+<tr class="codeline" data-linenumber="821"><td class="num" id="LN821">821</td><td class="line"> <span class='comment'>* does not carry all the bytes, and xterm's palette is messed up...</span></td></tr>
+<tr class="codeline" data-linenumber="822"><td class="num" id="LN822">822</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="823"><td class="num" id="LN823">823</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="824"><td class="num" id="LN824">824</td><td class="line"> array = g_value_get_boxed (value);</td></tr>
+<tr class="codeline" data-linenumber="825"><td class="num" id="LN825">825</td><td class="line"> <span class='keyword'>if</span> (!array)</td></tr>
+<tr class="codeline" data-linenumber="826"><td class="num" id="LN826">826</td><td class="line"> <span class='keyword'>goto</span> cleanup;</td></tr>
+<tr class="codeline" data-linenumber="827"><td class="num" id="LN827">827</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="828"><td class="num" id="LN828">828</td><td class="line"> n_colors = array-&gt;n_values;</td></tr>
+<tr class="codeline" data-linenumber="829"><td class="num" id="LN829">829</td><td class="line"> string = g_string_sized_new (n_colors * (1 <span class='comment'>/* # */</span> + 3 * 4) + n_colors <span class='comment'>/* : separators and terminating \0 */</span>);</td></tr>
+<tr class="codeline" data-linenumber="830"><td class="num" id="LN830">830</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; n_colors; ++i)</td></tr>
+<tr class="codeline" data-linenumber="831"><td class="num" id="LN831">831</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="832"><td class="num" id="LN832">832</td><td class="line"> GdkRGBA *color;</td></tr>
+<tr class="codeline" data-linenumber="833"><td class="num" id="LN833">833</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="834"><td class="num" id="LN834">834</td><td class="line"> <span class='keyword'>if</span> (i &gt; 0)</td></tr>
+<tr class="codeline" data-linenumber="835"><td class="num" id="LN835">835</td><td class="line"> <span class='macro'>g_string_append_c (string, ':')<span class='macro_popup'>g_string_append_c_inline (string, ':')</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="836"><td class="num" id="LN836">836</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="837"><td class="num" id="LN837">837</td><td class="line"> color = g_value_get_boxed (g_value_array_get_nth (array, i));</td></tr>
+<tr class="codeline" data-linenumber="838"><td class="num" id="LN838">838</td><td class="line"> <span class='keyword'>if</span> (!color)</td></tr>
+<tr class="codeline" data-linenumber="839"><td class="num" id="LN839">839</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="840"><td class="num" id="LN840">840</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="841"><td class="num" id="LN841">841</td><td class="line"> g_string_append_printf (string,</td></tr>
+<tr class="codeline" data-linenumber="842"><td class="num" id="LN842">842</td><td class="line"> <span class='string_literal'>"#%04X%04X%04X"</span>,</td></tr>
+<tr class="codeline" data-linenumber="843"><td class="num" id="LN843">843</td><td class="line"> (guint) (color-&gt;red * 65535),</td></tr>
+<tr class="codeline" data-linenumber="844"><td class="num" id="LN844">844</td><td class="line"> (guint) (color-&gt;green * 65535),</td></tr>
+<tr class="codeline" data-linenumber="845"><td class="num" id="LN845">845</td><td class="line"> (guint) (color-&gt;blue * 65535));</td></tr>
+<tr class="codeline" data-linenumber="846"><td class="num" id="LN846">846</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="847"><td class="num" id="LN847">847</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="848"><td class="num" id="LN848">848</td><td class="line"> g_settings_set_string (changeset, key, string-&gt;str);</td></tr>
+<tr class="codeline" data-linenumber="849"><td class="num" id="LN849">849</td><td class="line"> <span class='macro'>g_string_free (string, TRUE)<span class='macro_popup'>(__builtin_constant_p ((!(0))) ? (((!(0))) ? (g_string_free) (<br>(string), ((!(0)))) : g_string_free_and_steal (string)) : (g_string_free<br>) ((string), ((!(0)))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="850"><td class="num" id="LN850">850</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="851"><td class="num" id="LN851">851</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="852"><td class="num" id="LN852">852</td><td class="line"> g_printerr (<span class='string_literal'>"Unhandled value type %s of pspec %s\n"</span>, g_type_name (<span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span>), pspec-&gt;name);</td></tr>
+<tr class="codeline" data-linenumber="853"><td class="num" id="LN853">853</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="854"><td class="num" id="LN854">854</td><td class="line">cleanup:</td></tr>
+<tr class="codeline" data-linenumber="855"><td class="num" id="LN855">855</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="856"><td class="num" id="LN856">856</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="857"><td class="num" id="LN857">857</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="858"><td class="num" id="LN858">858</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="859"><td class="num" id="LN859">859</td><td class="line">terminal_profile_save (TerminalProfile *profile)</td></tr>
+<tr class="codeline" data-linenumber="860"><td class="num" id="LN860">860</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="861"><td class="num" id="LN861">861</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="862"><td class="num" id="LN862">862</td><td class="line"> GSettings *changeset;</td></tr>
+<tr class="codeline" data-linenumber="863"><td class="num" id="LN863">863</td><td class="line"> GSList *l;</td></tr>
+<tr class="codeline" data-linenumber="864"><td class="num" id="LN864">864</td><td class="line"> gchar *concat;</td></tr>
+<tr class="codeline" data-linenumber="865"><td class="num" id="LN865">865</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="866"><td class="num" id="LN866">866</td><td class="line"> priv-&gt;save_idle_id = 0;</td></tr>
+<tr class="codeline" data-linenumber="867"><td class="num" id="LN867">867</td><td class="line"> concat = g_strconcat (<span class='macro'>CONF_PROFILE_PREFIX<span class='macro_popup'>"/org/mate/terminal/profiles/"</span></span>, priv-&gt;profile_dir,<span class='string_literal'>"/"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="868"><td class="num" id="LN868">868</td><td class="line"> changeset = g_settings_new_with_path (<span class='macro'>CONF_PROFILE_SCHEMA<span class='macro_popup'>"org.mate.terminal" ".profile"</span></span>, concat);</td></tr>
+<tr class="codeline" data-linenumber="869"><td class="num" id="LN869">869</td><td class="line"> g_free (concat);</td></tr>
+<tr class="codeline" data-linenumber="870"><td class="num" id="LN870">870</td><td class="line"> g_settings_delay (changeset);</td></tr>
+<tr class="codeline" data-linenumber="871"><td class="num" id="LN871">871</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="872"><td class="num" id="LN872">872</td><td class="line"> <span class='keyword'>for</span> (l = priv-&gt;dirty_pspecs; l != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; l = l-&gt;next)</td></tr>
+<tr class="codeline" data-linenumber="873"><td class="num" id="LN873">873</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="874"><td class="num" id="LN874">874</td><td class="line"> GParamSpec *pspec = (GParamSpec *) l-&gt;data;</td></tr>
+<tr class="codeline" data-linenumber="875"><td class="num" id="LN875">875</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="876"><td class="num" id="LN876">876</td><td class="line"> <span class='keyword'>if</span> (pspec-&gt;owner_type != <span class='macro'>TERMINAL_TYPE_PROFILE<span class='macro_popup'>(terminal_profile_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="877"><td class="num" id="LN877">877</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="878"><td class="num" id="LN878">878</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="879"><td class="num" id="LN879">879</td><td class="line"> <span class='keyword'>if</span> ((pspec-&gt;flags &amp; G_PARAM_WRITABLE) == 0)</td></tr>
+<tr class="codeline" data-linenumber="880"><td class="num" id="LN880">880</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="881"><td class="num" id="LN881">881</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="882"><td class="num" id="LN882">882</td><td class="line"> terminal_profile_gsettings_changeset_add (profile, changeset, pspec);</td></tr>
+<tr class="codeline" data-linenumber="883"><td class="num" id="LN883">883</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="884"><td class="num" id="LN884">884</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="885"><td class="num" id="LN885">885</td><td class="line"> g_slist_free (priv-&gt;dirty_pspecs);</td></tr>
+<tr class="codeline" data-linenumber="886"><td class="num" id="LN886">886</td><td class="line"> priv-&gt;dirty_pspecs = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="887"><td class="num" id="LN887">887</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="888"><td class="num" id="LN888">888</td><td class="line"> g_settings_apply (changeset);</td></tr>
+<tr class="codeline" data-linenumber="889"><td class="num" id="LN889">889</td><td class="line"> g_object_unref (changeset);</td></tr>
+<tr class="codeline" data-linenumber="890"><td class="num" id="LN890">890</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="891"><td class="num" id="LN891">891</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="892"><td class="num" id="LN892">892</td><td class="line"><span class='keyword'>static</span> gboolean</td></tr>
+<tr class="codeline" data-linenumber="893"><td class="num" id="LN893">893</td><td class="line">terminal_profile_save_idle_cb (TerminalProfile *profile)</td></tr>
+<tr class="codeline" data-linenumber="894"><td class="num" id="LN894">894</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="895"><td class="num" id="LN895">895</td><td class="line"> terminal_profile_save (profile);</td></tr>
+<tr class="codeline" data-linenumber="896"><td class="num" id="LN896">896</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="897"><td class="num" id="LN897">897</td><td class="line"> <span class='comment'>/* don't run again */</span></td></tr>
+<tr class="codeline" data-linenumber="898"><td class="num" id="LN898">898</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="899"><td class="num" id="LN899">899</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="900"><td class="num" id="LN900">900</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="901"><td class="num" id="LN901">901</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="902"><td class="num" id="LN902">902</td><td class="line">terminal_profile_schedule_save (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="903"><td class="num" id="LN903">903</td><td class="line"> GParamSpec *pspec)</td></tr>
+<tr class="codeline" data-linenumber="904"><td class="num" id="LN904">904</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="905"><td class="num" id="LN905">905</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="906"><td class="num" id="LN906">906</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="907"><td class="num" id="LN907">907</td><td class="line"> <span class='macro'>g_assert (pspec != NULL)<span class='macro_popup'>do { if (pspec != ((void*)0)) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-profile.c", 907, ((const char*) (__func__<br>)), "pspec != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="908"><td class="num" id="LN908">908</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="909"><td class="num" id="LN909">909</td><td class="line"> <span class='keyword'>if</span> (!g_slist_find (priv-&gt;dirty_pspecs, pspec))</td></tr>
+<tr class="codeline" data-linenumber="910"><td class="num" id="LN910">910</td><td class="line"> priv-&gt;dirty_pspecs = g_slist_prepend (priv-&gt;dirty_pspecs, pspec);</td></tr>
+<tr class="codeline" data-linenumber="911"><td class="num" id="LN911">911</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="912"><td class="num" id="LN912">912</td><td class="line"> <span class='keyword'>if</span> (priv-&gt;save_idle_id != 0)</td></tr>
+<tr class="codeline" data-linenumber="913"><td class="num" id="LN913">913</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="914"><td class="num" id="LN914">914</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="915"><td class="num" id="LN915">915</td><td class="line"> priv-&gt;save_idle_id = g_idle_add ((GSourceFunc) terminal_profile_save_idle_cb, profile);</td></tr>
+<tr class="codeline" data-linenumber="916"><td class="num" id="LN916">916</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="917"><td class="num" id="LN917">917</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="918"><td class="num" id="LN918">918</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="919"><td class="num" id="LN919">919</td><td class="line">terminal_profile_init (TerminalProfile *profile)</td></tr>
+<tr class="codeline" data-linenumber="920"><td class="num" id="LN920">920</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="921"><td class="num" id="LN921">921</td><td class="line"> TerminalProfilePrivate *priv;</td></tr>
+<tr class="codeline" data-linenumber="922"><td class="num" id="LN922">922</td><td class="line"> GObjectClass *object_class;</td></tr>
+<tr class="codeline" data-linenumber="923"><td class="num" id="LN923">923</td><td class="line"> GParamSpec **pspecs;</td></tr>
+<tr class="codeline" data-linenumber="924"><td class="num" id="LN924">924</td><td class="line"> guint n_pspecs, i;</td></tr>
+<tr class="codeline" data-linenumber="925"><td class="num" id="LN925">925</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="926"><td class="num" id="LN926">926</td><td class="line"> priv = profile-&gt;priv = terminal_profile_get_instance_private (profile);</td></tr>
+<tr class="codeline" data-linenumber="927"><td class="num" id="LN927">927</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="928"><td class="num" id="LN928">928</td><td class="line"> priv-&gt;gsettings_notification_pspec = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="929"><td class="num" id="LN929">929</td><td class="line"> priv-&gt;locked = <span class='macro'>g_new0 (gboolean, LAST_PROP)<span class='macro_popup'>((gboolean *) g_malloc0_n ((LAST_PROP), sizeof (gboolean)))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="930"><td class="num" id="LN930">930</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="931"><td class="num" id="LN931">931</td><td class="line"> priv-&gt;properties = g_value_array_new (LAST_PROP);</td></tr>
+<tr class="codeline" data-linenumber="932"><td class="num" id="LN932">932</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; LAST_PROP; ++i)</td></tr>
+<tr class="codeline" data-linenumber="933"><td class="num" id="LN933">933</td><td class="line"> g_value_array_append (priv-&gt;properties, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="934"><td class="num" id="LN934">934</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="935"><td class="num" id="LN935">935</td><td class="line"> pspecs = g_object_class_list_properties (<span class='macro'>G_OBJECT_CLASS (TERMINAL_PROFILE_GET_CLASS (profile))<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((((((TerminalProfileClass*) (((GTypeInstance*) ((profile)<br>))-&gt;g_class)))))), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, &amp;n_pspecs);</td></tr>
+<tr class="codeline" data-linenumber="936"><td class="num" id="LN936">936</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; n_pspecs; ++i)</td></tr>
+<tr class="codeline" data-linenumber="937"><td class="num" id="LN937">937</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="938"><td class="num" id="LN938">938</td><td class="line"> GParamSpec *pspec = pspecs[i];</td></tr>
+<tr class="codeline" data-linenumber="939"><td class="num" id="LN939">939</td><td class="line"> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="940"><td class="num" id="LN940">940</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="941"><td class="num" id="LN941">941</td><td class="line"> <span class='keyword'>if</span> (pspec-&gt;owner_type != <span class='macro'>TERMINAL_TYPE_PROFILE<span class='macro_popup'>(terminal_profile_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="942"><td class="num" id="LN942">942</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="943"><td class="num" id="LN943">943</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="944"><td class="num" id="LN944">944</td><td class="line"> <span class='macro'>g_assert (pspec-&gt;param_id &lt; LAST_PROP)<span class='macro_popup'>do { if (pspec-&gt;param_id &lt; LAST_PROP) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-profile.c", 944, ((const char*) (__func__<br>)), "pspec-&gt;param_id &lt; LAST_PROP"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="945"><td class="num" id="LN945">945</td><td class="line"> value = g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id);</td></tr>
+<tr class="codeline" data-linenumber="946"><td class="num" id="LN946">946</td><td class="line"> g_value_init (value, pspec-&gt;value_type);</td></tr>
+<tr class="codeline" data-linenumber="947"><td class="num" id="LN947">947</td><td class="line"> g_param_value_set_default (pspec, value);</td></tr>
+<tr class="codeline" data-linenumber="948"><td class="num" id="LN948">948</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="949"><td class="num" id="LN949">949</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="950"><td class="num" id="LN950">950</td><td class="line"> g_free (pspecs);</td></tr>
+<tr class="codeline" data-linenumber="951"><td class="num" id="LN951">951</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="952"><td class="num" id="LN952">952</td><td class="line"> <span class='comment'>/* A few properties don't have defaults via the param spec; set them explicitly */</span></td></tr>
+<tr class="codeline" data-linenumber="953"><td class="num" id="LN953">953</td><td class="line"> object_class = <span class='macro'>G_OBJECT_CLASS (TERMINAL_PROFILE_GET_CLASS (profile))<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((((((TerminalProfileClass*) (((GTypeInstance*) ((profile)<br>))-&gt;g_class)))))), (((GType) ((20) &lt;&lt; (2))))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="954"><td class="num" id="LN954">954</td><td class="line"> terminal_profile_reset_property_internal (profile, g_object_class_find_property (object_class, <span class='macro'>TERMINAL_PROFILE_FOREGROUND_COLOR<span class='macro_popup'>"foreground-color"</span></span>), <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="955"><td class="num" id="LN955">955</td><td class="line"> terminal_profile_reset_property_internal (profile, g_object_class_find_property (object_class, <span class='macro'>TERMINAL_PROFILE_BOLD_COLOR<span class='macro_popup'>"bold-color"</span></span>), <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="956"><td class="num" id="LN956">956</td><td class="line"> terminal_profile_reset_property_internal (profile, g_object_class_find_property (object_class, <span class='macro'>TERMINAL_PROFILE_BACKGROUND_COLOR<span class='macro_popup'>"background-color"</span></span>), <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="957"><td class="num" id="LN957">957</td><td class="line"> terminal_profile_reset_property_internal (profile, g_object_class_find_property (object_class, <span class='macro'>TERMINAL_PROFILE_FONT<span class='macro_popup'>"font"</span></span>), <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="958"><td class="num" id="LN958">958</td><td class="line"> terminal_profile_reset_property_internal (profile, g_object_class_find_property (object_class, <span class='macro'>TERMINAL_PROFILE_PALETTE<span class='macro_popup'>"palette"</span></span>), <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="959"><td class="num" id="LN959">959</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="960"><td class="num" id="LN960">960</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="961"><td class="num" id="LN961">961</td><td class="line"><span class='keyword'>static</span> GObject *</td></tr>
+<tr class="codeline" data-linenumber="962"><td class="num" id="LN962">962</td><td class="line">terminal_profile_constructor (GType type,</td></tr>
+<tr class="codeline" data-linenumber="963"><td class="num" id="LN963">963</td><td class="line"> guint n_construct_properties,</td></tr>
+<tr class="codeline" data-linenumber="964"><td class="num" id="LN964">964</td><td class="line"> GObjectConstructParam *construct_params)</td></tr>
+<tr class="codeline" data-linenumber="965"><td class="num" id="LN965">965</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="966"><td class="num" id="LN966">966</td><td class="line"> GObject *object;</td></tr>
+<tr class="codeline" data-linenumber="967"><td class="num" id="LN967">967</td><td class="line"> TerminalProfile *profile;</td></tr>
+<tr class="codeline" data-linenumber="968"><td class="num" id="LN968">968</td><td class="line"> TerminalProfilePrivate *priv;</td></tr>
+<tr class="codeline" data-linenumber="969"><td class="num" id="LN969">969</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *name;</td></tr>
+<tr class="codeline" data-linenumber="970"><td class="num" id="LN970">970</td><td class="line"> GParamSpec **pspecs;</td></tr>
+<tr class="codeline" data-linenumber="971"><td class="num" id="LN971">971</td><td class="line"> guint n_pspecs, i;</td></tr>
+<tr class="codeline" data-linenumber="972"><td class="num" id="LN972">972</td><td class="line"> gchar *concat;</td></tr>
+<tr class="codeline" data-linenumber="973"><td class="num" id="LN973">973</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="974"><td class="num" id="LN974">974</td><td class="line"> object = <span class='macro'>G_OBJECT_CLASS (terminal_profile_parent_class)<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((terminal_profile_parent_class)), (((GType) ((20) &lt;&lt;<br> (2))))))))</span></span>-&gt;constructor</td></tr>
+<tr class="codeline" data-linenumber="975"><td class="num" id="LN975">975</td><td class="line"> (type, n_construct_properties, construct_params);</td></tr>
+<tr class="codeline" data-linenumber="976"><td class="num" id="LN976">976</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="977"><td class="num" id="LN977">977</td><td class="line"> profile = <span class='macro'>TERMINAL_PROFILE (object)<span class='macro_popup'>((((TerminalProfile*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((object)), ((terminal_profile_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="978"><td class="num" id="LN978">978</td><td class="line"> priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="979"><td class="num" id="LN979">979</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="980"><td class="num" id="LN980">980</td><td class="line"> name = g_value_get_string (g_value_array_get_nth (priv-&gt;properties, PROP_NAME));</td></tr>
+<tr class="codeline" data-linenumber="981"><td class="num" id="LN981">981</td><td class="line"> <span class='macro'>g_assert (name != NULL)<span class='macro_popup'>do { if (name != ((void*)0)) ; else g_assertion_message_expr (<br>((gchar*) 0), "terminal-profile.c", 981, ((const char*) (__func__<br>)), "name != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="982"><td class="num" id="LN982">982</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="983"><td class="num" id="LN983">983</td><td class="line"> concat = g_strconcat (<span class='macro'>CONF_PROFILE_PREFIX<span class='macro_popup'>"/org/mate/terminal/profiles/"</span></span>, name, <span class='string_literal'>"/"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="984"><td class="num" id="LN984">984</td><td class="line"> priv-&gt;settings = g_settings_new_with_path (<span class='macro'>CONF_PROFILE_SCHEMA<span class='macro_popup'>"org.mate.terminal" ".profile"</span></span>, concat);</td></tr>
+<tr class="codeline" data-linenumber="985"><td class="num" id="LN985">985</td><td class="line"> <span class='macro'>g_assert (priv-&gt;settings != NULL)<span class='macro_popup'>do { if (priv-&gt;settings != ((void*)0)) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-profile.c", 985, ((const char*) (__func__<br>)), "priv-&gt;settings != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="986"><td class="num" id="LN986">986</td><td class="line"> g_free (concat);</td></tr>
+<tr class="codeline" data-linenumber="987"><td class="num" id="LN987">987</td><td class="line"> concat = g_strconcat(<span class='string_literal'>"changed::"</span>, priv-&gt;profile_dir, <span class='string_literal'>"/"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="988"><td class="num" id="LN988">988</td><td class="line"> <span class='macro'>g_signal_connect (priv-&gt;settings,<span class='macro_popup'>g_signal_connect_data ((priv-&gt;settings), (concat), (((GCallback<br>) (terminal_profile_gsettings_notify_cb))), (profile), ((void<br>*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="989"><td class="num" id="LN989">989</td><td class="line"> <span class='macro'>concat,<span class='macro_popup'>g_signal_connect_data ((priv-&gt;settings), (concat), (((GCallback<br>) (terminal_profile_gsettings_notify_cb))), (profile), ((void<br>*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="990"><td class="num" id="LN990">990</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_profile_gsettings_notify_cb),<span class='macro_popup'>g_signal_connect_data ((priv-&gt;settings), (concat), (((GCallback<br>) (terminal_profile_gsettings_notify_cb))), (profile), ((void<br>*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="991"><td class="num" id="LN991">991</td><td class="line"> <span class='macro'>profile)<span class='macro_popup'>g_signal_connect_data ((priv-&gt;settings), (concat), (((GCallback<br>) (terminal_profile_gsettings_notify_cb))), (profile), ((void<br>*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="992"><td class="num" id="LN992">992</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="993"><td class="num" id="LN993">993</td><td class="line"> g_free (concat);</td></tr>
+<tr class="codeline" data-linenumber="994"><td class="num" id="LN994">994</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="995"><td class="num" id="LN995">995</td><td class="line"> <span class='comment'>/* Now load those properties from GSettings that were not set as construction params */</span></td></tr>
+<tr class="codeline" data-linenumber="996"><td class="num" id="LN996">996</td><td class="line"> pspecs = g_object_class_list_properties (<span class='macro'>G_OBJECT_CLASS (TERMINAL_PROFILE_GET_CLASS (profile))<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((((((TerminalProfileClass*) (((GTypeInstance*) ((profile)<br>))-&gt;g_class)))))), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, &amp;n_pspecs);</td></tr>
+<tr class="codeline" data-linenumber="997"><td class="num" id="LN997">997</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; n_pspecs; ++i)</td></tr>
+<tr class="codeline" data-linenumber="998"><td class="num" id="LN998">998</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="999"><td class="num" id="LN999">999</td><td class="line"> GParamSpec *pspec = pspecs[i];</td></tr>
+<tr class="codeline" data-linenumber="1000"><td class="num" id="LN1000">1000</td><td class="line"> guint j;</td></tr>
+<tr class="codeline" data-linenumber="1001"><td class="num" id="LN1001">1001</td><td class="line"> gboolean is_construct = <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1002"><td class="num" id="LN1002">1002</td><td class="line"> <span class='keyword'>char</span> *key;</td></tr>
+<tr class="codeline" data-linenumber="1003"><td class="num" id="LN1003">1003</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1004"><td class="num" id="LN1004">1004</td><td class="line"> <span class='keyword'>if</span> (pspec-&gt;owner_type != <span class='macro'>TERMINAL_TYPE_PROFILE<span class='macro_popup'>(terminal_profile_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1005"><td class="num" id="LN1005">1005</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="1006"><td class="num" id="LN1006">1006</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1007"><td class="num" id="LN1007">1007</td><td class="line"> <span class='keyword'>if</span> ((pspec-&gt;flags &amp; G_PARAM_WRITABLE) == 0 ||</td></tr>
+<tr class="codeline" data-linenumber="1008"><td class="num" id="LN1008">1008</td><td class="line"> (pspec-&gt;flags &amp; G_PARAM_CONSTRUCT_ONLY) != 0)</td></tr>
+<tr class="codeline" data-linenumber="1009"><td class="num" id="LN1009">1009</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="1010"><td class="num" id="LN1010">1010</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1011"><td class="num" id="LN1011">1011</td><td class="line"> <span class='keyword'>for</span> (j = 0; j &lt; n_construct_properties; ++j)</td></tr>
+<tr class="codeline" data-linenumber="1012"><td class="num" id="LN1012">1012</td><td class="line"> <span class='keyword'>if</span> (pspec == construct_params[j].pspec)</td></tr>
+<tr class="codeline" data-linenumber="1013"><td class="num" id="LN1013">1013</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1014"><td class="num" id="LN1014">1014</td><td class="line"> is_construct = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1015"><td class="num" id="LN1015">1015</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1016"><td class="num" id="LN1016">1016</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1017"><td class="num" id="LN1017">1017</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1018"><td class="num" id="LN1018">1018</td><td class="line"> <span class='keyword'>if</span> (is_construct)</td></tr>
+<tr class="codeline" data-linenumber="1019"><td class="num" id="LN1019">1019</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="1020"><td class="num" id="LN1020">1020</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1021"><td class="num" id="LN1021">1021</td><td class="line"> key = g_param_spec_get_qdata (pspec, gsettings_key_quark);</td></tr>
+<tr class="codeline" data-linenumber="1022"><td class="num" id="LN1022">1022</td><td class="line"> <span class='keyword'>if</span> (!key)</td></tr>
+<tr class="codeline" data-linenumber="1023"><td class="num" id="LN1023">1023</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="1024"><td class="num" id="LN1024">1024</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1025"><td class="num" id="LN1025">1025</td><td class="line"> terminal_profile_gsettings_notify_cb (priv-&gt;settings, key, profile);</td></tr>
+<tr class="codeline" data-linenumber="1026"><td class="num" id="LN1026">1026</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1027"><td class="num" id="LN1027">1027</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1028"><td class="num" id="LN1028">1028</td><td class="line"> g_free (pspecs);</td></tr>
+<tr class="codeline" data-linenumber="1029"><td class="num" id="LN1029">1029</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1030"><td class="num" id="LN1030">1030</td><td class="line"> <span class='keyword'>return</span> object;</td></tr>
+<tr class="codeline" data-linenumber="1031"><td class="num" id="LN1031">1031</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1032"><td class="num" id="LN1032">1032</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1033"><td class="num" id="LN1033">1033</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1034"><td class="num" id="LN1034">1034</td><td class="line">terminal_profile_finalize (GObject *object)</td></tr>
+<tr class="codeline" data-linenumber="1035"><td class="num" id="LN1035">1035</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1036"><td class="num" id="LN1036">1036</td><td class="line"> TerminalProfile *profile = <span class='macro'>TERMINAL_PROFILE (object)<span class='macro_popup'>((((TerminalProfile*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((object)), ((terminal_profile_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1037"><td class="num" id="LN1037">1037</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1038"><td class="num" id="LN1038">1038</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1039"><td class="num" id="LN1039">1039</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (priv-&gt;settings,<span class='macro_popup'>g_signal_handlers_disconnect_matched ((priv-&gt;settings), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_profile_gsettings_notify_cb))), (<br>profile))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1040"><td class="num" id="LN1040">1040</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_profile_gsettings_notify_cb),<span class='macro_popup'>g_signal_handlers_disconnect_matched ((priv-&gt;settings), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_profile_gsettings_notify_cb))), (<br>profile))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1041"><td class="num" id="LN1041">1041</td><td class="line"> <span class='macro'>profile)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((priv-&gt;settings), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_profile_gsettings_notify_cb))), (<br>profile))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1042"><td class="num" id="LN1042">1042</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1043"><td class="num" id="LN1043">1043</td><td class="line"> <span class='keyword'>if</span> (priv-&gt;save_idle_id)</td></tr>
+<tr class="codeline" data-linenumber="1044"><td class="num" id="LN1044">1044</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1045"><td class="num" id="LN1045">1045</td><td class="line"> g_source_remove (priv-&gt;save_idle_id);</td></tr>
+<tr class="codeline" data-linenumber="1046"><td class="num" id="LN1046">1046</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1047"><td class="num" id="LN1047">1047</td><td class="line"> <span class='comment'>/* Save now */</span></td></tr>
+<tr class="codeline" data-linenumber="1048"><td class="num" id="LN1048">1048</td><td class="line"> terminal_profile_save (profile);</td></tr>
+<tr class="codeline" data-linenumber="1049"><td class="num" id="LN1049">1049</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1050"><td class="num" id="LN1050">1050</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1051"><td class="num" id="LN1051">1051</td><td class="line"> _terminal_profile_forget (profile);</td></tr>
+<tr class="codeline" data-linenumber="1052"><td class="num" id="LN1052">1052</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1053"><td class="num" id="LN1053">1053</td><td class="line"> g_object_unref (priv-&gt;settings);</td></tr>
+<tr class="codeline" data-linenumber="1054"><td class="num" id="LN1054">1054</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1055"><td class="num" id="LN1055">1055</td><td class="line"> g_free (priv-&gt;profile_dir);</td></tr>
+<tr class="codeline" data-linenumber="1056"><td class="num" id="LN1056">1056</td><td class="line"> g_free (priv-&gt;locked);</td></tr>
+<tr class="codeline" data-linenumber="1057"><td class="num" id="LN1057">1057</td><td class="line"> g_value_array_free (priv-&gt;properties);</td></tr>
+<tr class="codeline" data-linenumber="1058"><td class="num" id="LN1058">1058</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1059"><td class="num" id="LN1059">1059</td><td class="line"> <span class='macro'>G_OBJECT_CLASS (terminal_profile_parent_class)<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((terminal_profile_parent_class)), (((GType) ((20) &lt;&lt;<br> (2))))))))</span></span>-&gt;finalize (object);</td></tr>
+<tr class="codeline" data-linenumber="1060"><td class="num" id="LN1060">1060</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1061"><td class="num" id="LN1061">1061</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1062"><td class="num" id="LN1062">1062</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1063"><td class="num" id="LN1063">1063</td><td class="line">terminal_profile_get_property (GObject *object,</td></tr>
+<tr class="codeline" data-linenumber="1064"><td class="num" id="LN1064">1064</td><td class="line"> guint prop_id,</td></tr>
+<tr class="codeline" data-linenumber="1065"><td class="num" id="LN1065">1065</td><td class="line"> GValue *value,</td></tr>
+<tr class="codeline" data-linenumber="1066"><td class="num" id="LN1066">1066</td><td class="line"> GParamSpec *pspec)</td></tr>
+<tr class="codeline" data-linenumber="1067"><td class="num" id="LN1067">1067</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1068"><td class="num" id="LN1068">1068</td><td class="line"> TerminalProfile *profile = <span class='macro'>TERMINAL_PROFILE (object)<span class='macro_popup'>((((TerminalProfile*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((object)), ((terminal_profile_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1069"><td class="num" id="LN1069">1069</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1070"><td class="num" id="LN1070">1070</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1071"><td class="num" id="LN1071">1071</td><td class="line"> <span class='keyword'>if</span> (prop_id == 0 || prop_id &gt;= LAST_PROP)</td></tr>
+<tr class="codeline" data-linenumber="1072"><td class="num" id="LN1072">1072</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1073"><td class="num" id="LN1073">1073</td><td class="line"> <span class='macro'>G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec)<span class='macro_popup'>do { GObject *_glib__object = (GObject*) ((object)); GParamSpec<br> *_glib__pspec = (GParamSpec*) ((pspec)); guint _glib__property_id<br> = ((prop_id)); g_warning ("%s:%d: invalid %s id %u for \"%s\" of type '%s' in '%s'"<br>, "terminal-profile.c", 1073, ("property"), _glib__property_id<br>, _glib__pspec-&gt;name, g_type_name ((((((GTypeClass*) (((GTypeInstance<br>*) (_glib__pspec))-&gt;g_class))-&gt;g_type)))), (g_type_name<br> ((((((GTypeClass*) (((GTypeInstance*) (_glib__object))-&gt;g_class<br>))-&gt;g_type)))))); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1074"><td class="num" id="LN1074">1074</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1075"><td class="num" id="LN1075">1075</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1076"><td class="num" id="LN1076">1076</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1077"><td class="num" id="LN1077">1077</td><td class="line"> <span class='comment'>/* Note: When adding things here, do the same in get_prop_value_from_prop_name! */</span></td></tr>
+<tr class="codeline" data-linenumber="1078"><td class="num" id="LN1078">1078</td><td class="line"> <span class='keyword'>switch</span> (prop_id)</td></tr>
+<tr class="codeline" data-linenumber="1079"><td class="num" id="LN1079">1079</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1080"><td class="num" id="LN1080">1080</td><td class="line"> <span class='keyword'>case</span> PROP_BACKGROUND_IMAGE:</td></tr>
+<tr class="codeline" data-linenumber="1081"><td class="num" id="LN1081">1081</td><td class="line"> ensure_pixbuf_property (profile, PROP_BACKGROUND_IMAGE_FILE, PROP_BACKGROUND_IMAGE, &amp;priv-&gt;background_load_failed);</td></tr>
+<tr class="codeline" data-linenumber="1082"><td class="num" id="LN1082">1082</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1083"><td class="num" id="LN1083">1083</td><td class="line"> <span class='keyword'>default</span>:</td></tr>
+<tr class="codeline" data-linenumber="1084"><td class="num" id="LN1084">1084</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1085"><td class="num" id="LN1085">1085</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1086"><td class="num" id="LN1086">1086</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1087"><td class="num" id="LN1087">1087</td><td class="line"> g_value_copy (g_value_array_get_nth (priv-&gt;properties, prop_id), value);</td></tr>
+<tr class="codeline" data-linenumber="1088"><td class="num" id="LN1088">1088</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1089"><td class="num" id="LN1089">1089</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1090"><td class="num" id="LN1090">1090</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1091"><td class="num" id="LN1091">1091</td><td class="line">terminal_profile_set_property (GObject *object,</td></tr>
+<tr class="codeline" data-linenumber="1092"><td class="num" id="LN1092">1092</td><td class="line"> guint prop_id,</td></tr>
+<tr class="codeline" data-linenumber="1093"><td class="num" id="LN1093">1093</td><td class="line"> <span class='keyword'>const</span> GValue *value,</td></tr>
+<tr class="codeline" data-linenumber="1094"><td class="num" id="LN1094">1094</td><td class="line"> GParamSpec *pspec)</td></tr>
+<tr class="codeline" data-linenumber="1095"><td class="num" id="LN1095">1095</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1096"><td class="num" id="LN1096">1096</td><td class="line"> TerminalProfile *profile = <span class='macro'>TERMINAL_PROFILE (object)<span class='macro_popup'>((((TerminalProfile*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((object)), ((terminal_profile_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1097"><td class="num" id="LN1097">1097</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1098"><td class="num" id="LN1098">1098</td><td class="line"> GValue *prop_value;</td></tr>
+<tr class="codeline" data-linenumber="1099"><td class="num" id="LN1099">1099</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1100"><td class="num" id="LN1100">1100</td><td class="line"> <span class='keyword'>if</span> (prop_id == 0 || prop_id &gt;= LAST_PROP)</td></tr>
+<tr class="codeline" data-linenumber="1101"><td class="num" id="LN1101">1101</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1102"><td class="num" id="LN1102">1102</td><td class="line"> <span class='macro'>G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec)<span class='macro_popup'>do { GObject *_glib__object = (GObject*) ((object)); GParamSpec<br> *_glib__pspec = (GParamSpec*) ((pspec)); guint _glib__property_id<br> = ((prop_id)); g_warning ("%s:%d: invalid %s id %u for \"%s\" of type '%s' in '%s'"<br>, "terminal-profile.c", 1102, ("property"), _glib__property_id<br>, _glib__pspec-&gt;name, g_type_name ((((((GTypeClass*) (((GTypeInstance<br>*) (_glib__pspec))-&gt;g_class))-&gt;g_type)))), (g_type_name<br> ((((((GTypeClass*) (((GTypeInstance*) (_glib__object))-&gt;g_class<br>))-&gt;g_type)))))); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1103"><td class="num" id="LN1103">1103</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1104"><td class="num" id="LN1104">1104</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1105"><td class="num" id="LN1105">1105</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1106"><td class="num" id="LN1106">1106</td><td class="line"> prop_value = g_value_array_get_nth (priv-&gt;properties, prop_id);</td></tr>
+<tr class="codeline" data-linenumber="1107"><td class="num" id="LN1107">1107</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1108"><td class="num" id="LN1108">1108</td><td class="line"> <span class='comment'>/* Preprocessing */</span></td></tr>
+<tr class="codeline" data-linenumber="1109"><td class="num" id="LN1109">1109</td><td class="line"> <span class='keyword'>switch</span> (prop_id)</td></tr>
+<tr class="codeline" data-linenumber="1110"><td class="num" id="LN1110">1110</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1111"><td class="num" id="LN1111">1111</td><td class="line"><span class='directive'>#if 0</span></td></tr>
+<tr class="codeline" data-linenumber="1112"><td class="num" id="LN1112">1112</td><td class="line"> <span class='keyword'>case</span> PROP_FONT:</td></tr>
+<tr class="codeline" data-linenumber="1113"><td class="num" id="LN1113">1113</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1114"><td class="num" id="LN1114">1114</td><td class="line"> PangoFontDescription *font_desc, *new_font_desc;</td></tr>
+<tr class="codeline" data-linenumber="1115"><td class="num" id="LN1115">1115</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1116"><td class="num" id="LN1116">1116</td><td class="line"> font_desc = g_value_get_boxed (prop_value);</td></tr>
+<tr class="codeline" data-linenumber="1117"><td class="num" id="LN1117">1117</td><td class="line"> new_font_desc = g_value_get_boxed (value);</td></tr>
+<tr class="codeline" data-linenumber="1118"><td class="num" id="LN1118">1118</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1119"><td class="num" id="LN1119">1119</td><td class="line"> <span class='keyword'>if</span> (font_desc &amp;&amp; new_font_desc)</td></tr>
+<tr class="codeline" data-linenumber="1120"><td class="num" id="LN1120">1120</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1121"><td class="num" id="LN1121">1121</td><td class="line"> <span class='comment'>/* Merge in case the new string isn't complete enough to load a font */</span></td></tr>
+<tr class="codeline" data-linenumber="1122"><td class="num" id="LN1122">1122</td><td class="line"> pango_font_description_merge (font_desc, new_font_desc, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1123"><td class="num" id="LN1123">1123</td><td class="line"> pango_font_description_free (new_font_desc);</td></tr>
+<tr class="codeline" data-linenumber="1124"><td class="num" id="LN1124">1124</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1125"><td class="num" id="LN1125">1125</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1126"><td class="num" id="LN1126">1126</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1127"><td class="num" id="LN1127">1127</td><td class="line"> <span class='comment'>/* fall-through */</span></td></tr>
+<tr class="codeline" data-linenumber="1128"><td class="num" id="LN1128">1128</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1129"><td class="num" id="LN1129">1129</td><td class="line"><span class='directive'>#endif</span></td></tr>
+<tr class="codeline" data-linenumber="1130"><td class="num" id="LN1130">1130</td><td class="line"> <span class='keyword'>default</span>:</td></tr>
+<tr class="codeline" data-linenumber="1131"><td class="num" id="LN1131">1131</td><td class="line"> g_value_copy (value, prop_value);</td></tr>
+<tr class="codeline" data-linenumber="1132"><td class="num" id="LN1132">1132</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1133"><td class="num" id="LN1133">1133</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1134"><td class="num" id="LN1134">1134</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1135"><td class="num" id="LN1135">1135</td><td class="line"> <span class='comment'>/* Postprocessing */</span></td></tr>
+<tr class="codeline" data-linenumber="1136"><td class="num" id="LN1136">1136</td><td class="line"> <span class='keyword'>switch</span> (prop_id)</td></tr>
+<tr class="codeline" data-linenumber="1137"><td class="num" id="LN1137">1137</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1138"><td class="num" id="LN1138">1138</td><td class="line"> <span class='keyword'>case</span> PROP_NAME:</td></tr>
+<tr class="codeline" data-linenumber="1139"><td class="num" id="LN1139">1139</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1140"><td class="num" id="LN1140">1140</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *name = g_value_get_string (value);</td></tr>
+<tr class="codeline" data-linenumber="1141"><td class="num" id="LN1141">1141</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1142"><td class="num" id="LN1142">1142</td><td class="line"> <span class='macro'>g_assert (name != NULL)<span class='macro_popup'>do { if (name != ((void*)0)) ; else g_assertion_message_expr (<br>((gchar*) 0), "terminal-profile.c", 1142, ((const char*) (__func__<br>)), "name != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1143"><td class="num" id="LN1143">1143</td><td class="line"> priv-&gt;profile_dir = <span class='macro'>g_strdup (name)<span class='macro_popup'>g_strdup_inline (name)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1144"><td class="num" id="LN1144">1144</td><td class="line"> <span class='keyword'>if</span> (priv-&gt;settings != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>) {</td></tr>
+<tr class="codeline" data-linenumber="1145"><td class="num" id="LN1145">1145</td><td class="line"> gchar *concat;</td></tr>
+<tr class="codeline" data-linenumber="1146"><td class="num" id="LN1146">1146</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (priv-&gt;settings,<span class='macro_popup'>g_signal_handlers_disconnect_matched ((priv-&gt;settings), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_profile_gsettings_notify_cb))), (<br>profile))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1147"><td class="num" id="LN1147">1147</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_profile_gsettings_notify_cb),<span class='macro_popup'>g_signal_handlers_disconnect_matched ((priv-&gt;settings), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_profile_gsettings_notify_cb))), (<br>profile))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1148"><td class="num" id="LN1148">1148</td><td class="line"> <span class='macro'>profile)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((priv-&gt;settings), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_profile_gsettings_notify_cb))), (<br>profile))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1149"><td class="num" id="LN1149">1149</td><td class="line"> g_object_unref (priv-&gt;settings);</td></tr>
+<tr class="codeline" data-linenumber="1150"><td class="num" id="LN1150">1150</td><td class="line"> concat= g_strconcat (<span class='macro'>CONF_PROFILE_PREFIX<span class='macro_popup'>"/org/mate/terminal/profiles/"</span></span>, priv-&gt;profile_dir, <span class='string_literal'>"/"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1151"><td class="num" id="LN1151">1151</td><td class="line"> priv-&gt;settings = g_settings_new_with_path (<span class='macro'>CONF_PROFILE_SCHEMA<span class='macro_popup'>"org.mate.terminal" ".profile"</span></span>, concat);</td></tr>
+<tr class="codeline" data-linenumber="1152"><td class="num" id="LN1152">1152</td><td class="line"> g_free (concat);</td></tr>
+<tr class="codeline" data-linenumber="1153"><td class="num" id="LN1153">1153</td><td class="line"> concat = g_strconcat(<span class='string_literal'>"changed::"</span>, priv-&gt;profile_dir, <span class='string_literal'>"/"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1154"><td class="num" id="LN1154">1154</td><td class="line"> <span class='macro'>g_signal_connect (priv-&gt;settings,<span class='macro_popup'>g_signal_connect_data ((priv-&gt;settings), (concat), (((GCallback<br>) (terminal_profile_gsettings_notify_cb))), (profile), ((void<br>*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1155"><td class="num" id="LN1155">1155</td><td class="line"> <span class='macro'>concat,<span class='macro_popup'>g_signal_connect_data ((priv-&gt;settings), (concat), (((GCallback<br>) (terminal_profile_gsettings_notify_cb))), (profile), ((void<br>*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1156"><td class="num" id="LN1156">1156</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_profile_gsettings_notify_cb),<span class='macro_popup'>g_signal_connect_data ((priv-&gt;settings), (concat), (((GCallback<br>) (terminal_profile_gsettings_notify_cb))), (profile), ((void<br>*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1157"><td class="num" id="LN1157">1157</td><td class="line"> <span class='macro'>profile)<span class='macro_popup'>g_signal_connect_data ((priv-&gt;settings), (concat), (((GCallback<br>) (terminal_profile_gsettings_notify_cb))), (profile), ((void<br>*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1158"><td class="num" id="LN1158">1158</td><td class="line"> g_free (concat);</td></tr>
+<tr class="codeline" data-linenumber="1159"><td class="num" id="LN1159">1159</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1160"><td class="num" id="LN1160">1160</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1161"><td class="num" id="LN1161">1161</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1162"><td class="num" id="LN1162">1162</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1163"><td class="num" id="LN1163">1163</td><td class="line"> <span class='keyword'>case</span> PROP_BACKGROUND_IMAGE_FILE:</td></tr>
+<tr class="codeline" data-linenumber="1164"><td class="num" id="LN1164">1164</td><td class="line"> <span class='comment'>/* Clear the cached image */</span></td></tr>
+<tr class="codeline" data-linenumber="1165"><td class="num" id="LN1165">1165</td><td class="line"> g_value_set_object (g_value_array_get_nth (priv-&gt;properties, PROP_BACKGROUND_IMAGE), <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1166"><td class="num" id="LN1166">1166</td><td class="line"> priv-&gt;background_load_failed = <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1167"><td class="num" id="LN1167">1167</td><td class="line"> g_object_notify (object, <span class='macro'>TERMINAL_PROFILE_BACKGROUND_IMAGE<span class='macro_popup'>"background-image"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1168"><td class="num" id="LN1168">1168</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1169"><td class="num" id="LN1169">1169</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1170"><td class="num" id="LN1170">1170</td><td class="line"> <span class='keyword'>default</span>:</td></tr>
+<tr class="codeline" data-linenumber="1171"><td class="num" id="LN1171">1171</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1172"><td class="num" id="LN1172">1172</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1173"><td class="num" id="LN1173">1173</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1174"><td class="num" id="LN1174">1174</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1175"><td class="num" id="LN1175">1175</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1176"><td class="num" id="LN1176">1176</td><td class="line">terminal_profile_notify (GObject *object,</td></tr>
+<tr class="codeline" data-linenumber="1177"><td class="num" id="LN1177">1177</td><td class="line"> GParamSpec *pspec)</td></tr>
+<tr class="codeline" data-linenumber="1178"><td class="num" id="LN1178">1178</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1179"><td class="num" id="LN1179">1179</td><td class="line"> TerminalProfilePrivate *priv = <span class='macro'>TERMINAL_PROFILE (object)<span class='macro_popup'>((((TerminalProfile*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((object)), ((terminal_profile_get_type ()))))))</span></span>-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1180"><td class="num" id="LN1180">1180</td><td class="line"> <span class='keyword'>void</span> (* notify) (GObject *, GParamSpec *) = <span class='macro'>G_OBJECT_CLASS (terminal_profile_parent_class)<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((terminal_profile_parent_class)), (((GType) ((20) &lt;&lt;<br> (2))))))))</span></span>-&gt;notify;</td></tr>
+<tr class="codeline" data-linenumber="1181"><td class="num" id="LN1181">1181</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1182"><td class="num" id="LN1182">1182</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_PROFILE,<span class='macro_popup'>do { if (0) g_printerr("Property notification for prop %s\n",<br> pspec-&gt;name); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1183"><td class="num" id="LN1183">1183</td><td class="line"> <span class='string_literal'><span class='macro'>"Property notification for prop %s\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("Property notification for prop %s\n",<br> pspec-&gt;name); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1184"><td class="num" id="LN1184">1184</td><td class="line"> <span class='macro'>pspec-&gt;name)<span class='macro_popup'>do { if (0) g_printerr("Property notification for prop %s\n",<br> pspec-&gt;name); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1185"><td class="num" id="LN1185">1185</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1186"><td class="num" id="LN1186">1186</td><td class="line"> <span class='keyword'>if</span> (notify)</td></tr>
+<tr class="codeline" data-linenumber="1187"><td class="num" id="LN1187">1187</td><td class="line"> notify (object, pspec);</td></tr>
+<tr class="codeline" data-linenumber="1188"><td class="num" id="LN1188">1188</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1189"><td class="num" id="LN1189">1189</td><td class="line"> <span class='keyword'>if</span> (pspec-&gt;owner_type == <span class='macro'>TERMINAL_TYPE_PROFILE<span class='macro_popup'>(terminal_profile_get_type ())</span></span> &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="1190"><td class="num" id="LN1190">1190</td><td class="line"> (pspec-&gt;flags &amp; G_PARAM_WRITABLE) &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="1191"><td class="num" id="LN1191">1191</td><td class="line"> g_param_spec_get_qdata (pspec, gsettings_key_quark) != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span> &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="1192"><td class="num" id="LN1192">1192</td><td class="line"> pspec != priv-&gt;gsettings_notification_pspec)</td></tr>
+<tr class="codeline" data-linenumber="1193"><td class="num" id="LN1193">1193</td><td class="line"> terminal_profile_schedule_save (<span class='macro'>TERMINAL_PROFILE (object)<span class='macro_popup'>((((TerminalProfile*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((object)), ((terminal_profile_get_type ()))))))</span></span>, pspec);</td></tr>
+<tr class="codeline" data-linenumber="1194"><td class="num" id="LN1194">1194</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1195"><td class="num" id="LN1195">1195</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1196"><td class="num" id="LN1196">1196</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1197"><td class="num" id="LN1197">1197</td><td class="line">terminal_profile_class_init (TerminalProfileClass *klass)</td></tr>
+<tr class="codeline" data-linenumber="1198"><td class="num" id="LN1198">1198</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1199"><td class="num" id="LN1199">1199</td><td class="line"> GObjectClass *object_class = <span class='macro'>G_OBJECT_CLASS (klass)<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((klass)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1200"><td class="num" id="LN1200">1200</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1201"><td class="num" id="LN1201">1201</td><td class="line"> gsettings_key_quark = g_quark_from_static_string (<span class='string_literal'>"GT::GSettingsKey"</span>);</td></tr>
+<tr class="codeline" data-linenumber="1202"><td class="num" id="LN1202">1202</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1203"><td class="num" id="LN1203">1203</td><td class="line"> object_class-&gt;constructor = terminal_profile_constructor;</td></tr>
+<tr class="codeline" data-linenumber="1204"><td class="num" id="LN1204">1204</td><td class="line"> object_class-&gt;finalize = terminal_profile_finalize;</td></tr>
+<tr class="codeline" data-linenumber="1205"><td class="num" id="LN1205">1205</td><td class="line"> object_class-&gt;get_property = terminal_profile_get_property;</td></tr>
+<tr class="codeline" data-linenumber="1206"><td class="num" id="LN1206">1206</td><td class="line"> object_class-&gt;set_property = terminal_profile_set_property;</td></tr>
+<tr class="codeline" data-linenumber="1207"><td class="num" id="LN1207">1207</td><td class="line"> object_class-&gt;notify = terminal_profile_notify;</td></tr>
+<tr class="codeline" data-linenumber="1208"><td class="num" id="LN1208">1208</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1209"><td class="num" id="LN1209">1209</td><td class="line"> signals[FORGOTTEN] =</td></tr>
+<tr class="codeline" data-linenumber="1210"><td class="num" id="LN1210">1210</td><td class="line"> g_signal_new (<span class='string_literal'>"forgotten"</span>,</td></tr>
+<tr class="codeline" data-linenumber="1211"><td class="num" id="LN1211">1211</td><td class="line"> <span class='macro'>G_OBJECT_CLASS_TYPE (object_class)<span class='macro_popup'>((((GTypeClass*) (object_class))-&gt;g_type))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1212"><td class="num" id="LN1212">1212</td><td class="line"> G_SIGNAL_RUN_LAST,</td></tr>
+<tr class="codeline" data-linenumber="1213"><td class="num" id="LN1213">1213</td><td class="line"> <span class='macro'>G_STRUCT_OFFSET (TerminalProfileClass, forgotten)<span class='macro_popup'>((glong) __builtin_offsetof(TerminalProfileClass, forgotten))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1214"><td class="num" id="LN1214">1214</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1215"><td class="num" id="LN1215">1215</td><td class="line"> g_cclosure_marshal_VOID__VOID,</td></tr>
+<tr class="codeline" data-linenumber="1216"><td class="num" id="LN1216">1216</td><td class="line"> <span class='macro'>G_TYPE_NONE<span class='macro_popup'>((GType) ((1) &lt;&lt; (2)))</span></span>, 0);</td></tr>
+<tr class="codeline" data-linenumber="1217"><td class="num" id="LN1217">1217</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1218"><td class="num" id="LN1218">1218</td><td class="line"> <span class='comment'>/* gsettings_key -&gt; pspec hash */</span></td></tr>
+<tr class="codeline" data-linenumber="1219"><td class="num" id="LN1219">1219</td><td class="line"> klass-&gt;gsettings_keys = g_hash_table_new (g_str_hash, g_str_equal);</td></tr>
+<tr class="codeline" data-linenumber="1220"><td class="num" id="LN1220">1220</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1221"><td class="num" id="LN1221">1221</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PSPEC_STATIC<span class='macro_popup'>(G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)</span></span> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)</span></td></tr>
+<tr class="codeline" data-linenumber="1222"><td class="num" id="LN1222">1222</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1223"><td class="num" id="LN1223">1223</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY(propId, propSpec, propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = propSpec; g_object_class_install_property<br> (object_class, propId, pspec); g_param_spec_set_qdata (pspec<br>, gsettings_key_quark, (gpointer) propGSettings); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) propGSettings, pspec);<br>}</span></span> \</span></td></tr>
+<tr class="codeline" data-linenumber="1224"><td class="num" id="LN1224">1224</td><td class="line"><span class='directive'>{\</span></td></tr>
+<tr class="codeline" data-linenumber="1225"><td class="num" id="LN1225">1225</td><td class="line"> <span class='directive'>GParamSpec *pspec = propSpec;\</span></td></tr>
+<tr class="codeline" data-linenumber="1226"><td class="num" id="LN1226">1226</td><td class="line"> <span class='directive'>g_object_class_install_property (object_class, propId, pspec);\</span></td></tr>
+<tr class="codeline" data-linenumber="1227"><td class="num" id="LN1227">1227</td><td class="line"> <span class='directive'>g_param_spec_set_qdata (pspec, gsettings_key_quark, (gpointer) propGSettings);\</span></td></tr>
+<tr class="codeline" data-linenumber="1228"><td class="num" id="LN1228">1228</td><td class="line"> <span class='directive'>g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) propGSettings, pspec);\</span></td></tr>
+<tr class="codeline" data-linenumber="1229"><td class="num" id="LN1229">1229</td><td class="line"><span class='directive'>}</span></td></tr>
+<tr class="codeline" data-linenumber="1230"><td class="num" id="LN1230">1230</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1231"><td class="num" id="LN1231">1231</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY_OUTER(propId, propSpec)<span class='macro_popup'>{ GParamSpec *pspec = propSpec; g_object_class_install_property<br> (object_class, propId, pspec);}</span></span> \</span></td></tr>
+<tr class="codeline" data-linenumber="1232"><td class="num" id="LN1232">1232</td><td class="line"><span class='directive'>{\</span></td></tr>
+<tr class="codeline" data-linenumber="1233"><td class="num" id="LN1233">1233</td><td class="line"> <span class='directive'>GParamSpec *pspec = propSpec;\</span></td></tr>
+<tr class="codeline" data-linenumber="1234"><td class="num" id="LN1234">1234</td><td class="line"> <span class='directive'>g_object_class_install_property (object_class, propId, pspec);\</span></td></tr>
+<tr class="codeline" data-linenumber="1235"><td class="num" id="LN1235">1235</td><td class="line"><span class='directive'>}</span></td></tr>
+<tr class="codeline" data-linenumber="1236"><td class="num" id="LN1236">1236</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1237"><td class="num" id="LN1237">1237</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN(prop, propDefault, propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean (TERMINAL_PROFILE_prop<br>, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_prop, pspec); g_param_spec_set_qdata (pspec<br>, gsettings_key_quark, (gpointer) propGSettings); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) propGSettings, pspec);<br>}</span></span> \</span></td></tr>
+<tr class="codeline" data-linenumber="1238"><td class="num" id="LN1238">1238</td><td class="line"> <span class='directive'><span class='macro'>TERMINAL_PROFILE_PROPERTY (PROP_##prop,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1239"><td class="num" id="LN1239">1239</td><td class="line"> <span class='directive'><span class='macro'>g_param_spec_boolean (TERMINAL_PROFILE_##prop, NULL, NULL,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1240"><td class="num" id="LN1240">1240</td><td class="line"> <span class='directive'><span class='macro'>propDefault,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1241"><td class="num" id="LN1241">1241</td><td class="line"> <span class='directive'><span class='macro'>G_PARAM_READWRITE | TERMINAL_PROFILE_PSPEC_STATIC),\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1242"><td class="num" id="LN1242">1242</td><td class="line"> <span class='directive'><span class='macro'>propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1243"><td class="num" id="LN1243">1243</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1244"><td class="num" id="LN1244">1244</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOXED(prop, propType, propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boxed (TERMINAL_PROFILE_prop<br>, ((void*)0), ((void*)0), propType, G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_prop, pspec); g_param_spec_set_qdata (pspec<br>, gsettings_key_quark, (gpointer) propGSettings); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) propGSettings, pspec);<br>}</span></span>\</span></td></tr>
+<tr class="codeline" data-linenumber="1245"><td class="num" id="LN1245">1245</td><td class="line"> <span class='directive'><span class='macro'>TERMINAL_PROFILE_PROPERTY (PROP_##prop,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boxed (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propType, G_PARAM_READWRITE | (<br>G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1246"><td class="num" id="LN1246">1246</td><td class="line"> <span class='directive'><span class='macro'>g_param_spec_boxed (TERMINAL_PROFILE_##prop, NULL, NULL,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boxed (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propType, G_PARAM_READWRITE | (<br>G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1247"><td class="num" id="LN1247">1247</td><td class="line"> <span class='directive'><span class='macro'>propType,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boxed (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propType, G_PARAM_READWRITE | (<br>G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1248"><td class="num" id="LN1248">1248</td><td class="line"> <span class='directive'><span class='macro'>G_PARAM_READWRITE | TERMINAL_PROFILE_PSPEC_STATIC),\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boxed (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propType, G_PARAM_READWRITE | (<br>G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1249"><td class="num" id="LN1249">1249</td><td class="line"> <span class='directive'><span class='macro'>propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boxed (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propType, G_PARAM_READWRITE | (<br>G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1250"><td class="num" id="LN1250">1250</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1251"><td class="num" id="LN1251">1251</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY_DOUBLE(prop, propMin, propMax, propDefault, propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_double (TERMINAL_PROFILE_prop<br>, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_prop,<br> pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark, (<br>gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span>\</span></td></tr>
+<tr class="codeline" data-linenumber="1252"><td class="num" id="LN1252">1252</td><td class="line"> <span class='directive'><span class='macro'>TERMINAL_PROFILE_PROPERTY (PROP_##prop,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_double (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1253"><td class="num" id="LN1253">1253</td><td class="line"> <span class='directive'><span class='macro'>g_param_spec_double (TERMINAL_PROFILE_##prop, NULL, NULL,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_double (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1254"><td class="num" id="LN1254">1254</td><td class="line"> <span class='directive'><span class='macro'>propMin, propMax, propDefault,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_double (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1255"><td class="num" id="LN1255">1255</td><td class="line"> <span class='directive'><span class='macro'>G_PARAM_READWRITE | TERMINAL_PROFILE_PSPEC_STATIC),\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_double (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1256"><td class="num" id="LN1256">1256</td><td class="line"> <span class='directive'><span class='macro'>propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_double (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1257"><td class="num" id="LN1257">1257</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1258"><td class="num" id="LN1258">1258</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY_ENUM(prop, propType, propDefault, propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum (TERMINAL_PROFILE_prop<br>, ((void*)0), ((void*)0), propType, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_prop,<br> pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark, (<br>gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span>\</span></td></tr>
+<tr class="codeline" data-linenumber="1259"><td class="num" id="LN1259">1259</td><td class="line"> <span class='directive'><span class='macro'>TERMINAL_PROFILE_PROPERTY (PROP_##prop,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum (TERMINAL_PROFILE_##prop<br>, ((void*)0), ((void*)0), propType, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1260"><td class="num" id="LN1260">1260</td><td class="line"> <span class='directive'><span class='macro'>g_param_spec_enum (TERMINAL_PROFILE_##prop, NULL, NULL,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum (TERMINAL_PROFILE_##prop<br>, ((void*)0), ((void*)0), propType, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1261"><td class="num" id="LN1261">1261</td><td class="line"> <span class='directive'><span class='macro'>propType, propDefault,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum (TERMINAL_PROFILE_##prop<br>, ((void*)0), ((void*)0), propType, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1262"><td class="num" id="LN1262">1262</td><td class="line"> <span class='directive'><span class='macro'>G_PARAM_READWRITE | TERMINAL_PROFILE_PSPEC_STATIC),\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum (TERMINAL_PROFILE_##prop<br>, ((void*)0), ((void*)0), propType, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1263"><td class="num" id="LN1263">1263</td><td class="line"> <span class='directive'><span class='macro'>propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum (TERMINAL_PROFILE_##prop<br>, ((void*)0), ((void*)0), propType, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1264"><td class="num" id="LN1264">1264</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1265"><td class="num" id="LN1265">1265</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY_INT(prop, propMin, propMax, propDefault, propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_int (TERMINAL_PROFILE_prop<br>, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_prop,<br> pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark, (<br>gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span>\</span></td></tr>
+<tr class="codeline" data-linenumber="1266"><td class="num" id="LN1266">1266</td><td class="line"> <span class='directive'><span class='macro'>TERMINAL_PROFILE_PROPERTY (PROP_##prop,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_int (TERMINAL_PROFILE_##prop<br>, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1267"><td class="num" id="LN1267">1267</td><td class="line"> <span class='directive'><span class='macro'>g_param_spec_int (TERMINAL_PROFILE_##prop, NULL, NULL,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_int (TERMINAL_PROFILE_##prop<br>, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1268"><td class="num" id="LN1268">1268</td><td class="line"> <span class='directive'><span class='macro'>propMin, propMax, propDefault,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_int (TERMINAL_PROFILE_##prop<br>, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1269"><td class="num" id="LN1269">1269</td><td class="line"> <span class='directive'><span class='macro'>G_PARAM_READWRITE | TERMINAL_PROFILE_PSPEC_STATIC),\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_int (TERMINAL_PROFILE_##prop<br>, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1270"><td class="num" id="LN1270">1270</td><td class="line"> <span class='directive'><span class='macro'>propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_int (TERMINAL_PROFILE_##prop<br>, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1271"><td class="num" id="LN1271">1271</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1272"><td class="num" id="LN1272">1272</td><td class="line"> <span class='comment'>/* these are all read-only */</span></td></tr>
+<tr class="codeline" data-linenumber="1273"><td class="num" id="LN1273">1273</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY_OBJECT(prop, propType)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_object (TERMINAL_PROFILE_prop<br>, ((void*)0), ((void*)0), propType, G_PARAM_READABLE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_prop, pspec);}</span></span>\</span></td></tr>
+<tr class="codeline" data-linenumber="1274"><td class="num" id="LN1274">1274</td><td class="line"> <span class='directive'><span class='macro'>TERMINAL_PROFILE_PROPERTY_OUTER (PROP_##prop,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_object (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propType, G_PARAM_READABLE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_##prop, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1275"><td class="num" id="LN1275">1275</td><td class="line"> <span class='directive'><span class='macro'>g_param_spec_object (TERMINAL_PROFILE_##prop, NULL, NULL,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_object (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propType, G_PARAM_READABLE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_##prop, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1276"><td class="num" id="LN1276">1276</td><td class="line"> <span class='directive'><span class='macro'>propType,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_object (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propType, G_PARAM_READABLE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_##prop, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1277"><td class="num" id="LN1277">1277</td><td class="line"> <span class='directive'><span class='macro'>G_PARAM_READABLE | TERMINAL_PROFILE_PSPEC_STATIC))<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_object (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propType, G_PARAM_READABLE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_##prop, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1278"><td class="num" id="LN1278">1278</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1279"><td class="num" id="LN1279">1279</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY_STRING(prop, propDefault, propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_prop<br>, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_prop, pspec); g_param_spec_set_qdata (pspec<br>, gsettings_key_quark, (gpointer) propGSettings); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) propGSettings, pspec);<br>}</span></span>\</span></td></tr>
+<tr class="codeline" data-linenumber="1280"><td class="num" id="LN1280">1280</td><td class="line"> <span class='directive'><span class='macro'>TERMINAL_PROFILE_PROPERTY (PROP_##prop,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1281"><td class="num" id="LN1281">1281</td><td class="line"> <span class='directive'><span class='macro'>g_param_spec_string (TERMINAL_PROFILE_##prop, NULL, NULL,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1282"><td class="num" id="LN1282">1282</td><td class="line"> <span class='directive'><span class='macro'>propDefault,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1283"><td class="num" id="LN1283">1283</td><td class="line"> <span class='directive'><span class='macro'>G_PARAM_READWRITE | TERMINAL_PROFILE_PSPEC_STATIC),\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1284"><td class="num" id="LN1284">1284</td><td class="line"> <span class='directive'><span class='macro'>propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1285"><td class="num" id="LN1285">1285</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1286"><td class="num" id="LN1286">1286</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY_STRING_CO(prop, propDefault)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_prop<br>, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_prop,<br> pspec);}</span></span>\</span></td></tr>
+<tr class="codeline" data-linenumber="1287"><td class="num" id="LN1287">1287</td><td class="line"> <span class='directive'><span class='macro'>TERMINAL_PROFILE_PROPERTY_OUTER (PROP_##prop,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE |<br> G_PARAM_CONSTRUCT_ONLY | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1288"><td class="num" id="LN1288">1288</td><td class="line"> <span class='directive'><span class='macro'>g_param_spec_string (TERMINAL_PROFILE_##prop, NULL, NULL,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE |<br> G_PARAM_CONSTRUCT_ONLY | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1289"><td class="num" id="LN1289">1289</td><td class="line"> <span class='directive'><span class='macro'>propDefault,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE |<br> G_PARAM_CONSTRUCT_ONLY | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1290"><td class="num" id="LN1290">1290</td><td class="line"> <span class='directive'><span class='macro'>G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | TERMINAL_PROFILE_PSPEC_STATIC))<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE |<br> G_PARAM_CONSTRUCT_ONLY | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1291"><td class="num" id="LN1291">1291</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1292"><td class="num" id="LN1292">1292</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY_VALUE_ARRAY_BOXED(prop, propElementName, propElementType, propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_value_array (TERMINAL_PROFILE_prop<br>, ((void*)0), ((void*)0), g_param_spec_boxed (propElementName<br>, ((void*)0), ((void*)0), propElementType, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_prop, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span>\</span></td></tr>
+<tr class="codeline" data-linenumber="1293"><td class="num" id="LN1293">1293</td><td class="line"> <span class='directive'><span class='macro'>TERMINAL_PROFILE_PROPERTY (PROP_##prop,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_value_array (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), g_param_spec_boxed (propElementName<br>, ((void*)0), ((void*)0), propElementType, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1294"><td class="num" id="LN1294">1294</td><td class="line"> <span class='directive'><span class='macro'>g_param_spec_value_array (TERMINAL_PROFILE_##prop, NULL, NULL,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_value_array (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), g_param_spec_boxed (propElementName<br>, ((void*)0), ((void*)0), propElementType, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1295"><td class="num" id="LN1295">1295</td><td class="line"> <span class='directive'><span class='macro'>g_param_spec_boxed (propElementName, NULL, NULL,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_value_array (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), g_param_spec_boxed (propElementName<br>, ((void*)0), ((void*)0), propElementType, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1296"><td class="num" id="LN1296">1296</td><td class="line"> <span class='directive'><span class='macro'>propElementType, \<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_value_array (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), g_param_spec_boxed (propElementName<br>, ((void*)0), ((void*)0), propElementType, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1297"><td class="num" id="LN1297">1297</td><td class="line"> <span class='directive'><span class='macro'>G_PARAM_READWRITE | TERMINAL_PROFILE_PSPEC_STATIC),\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_value_array (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), g_param_spec_boxed (propElementName<br>, ((void*)0), ((void*)0), propElementType, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1298"><td class="num" id="LN1298">1298</td><td class="line"> <span class='directive'><span class='macro'>G_PARAM_READWRITE | TERMINAL_PROFILE_PSPEC_STATIC),\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_value_array (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), g_param_spec_boxed (propElementName<br>, ((void*)0), ((void*)0), propElementType, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1299"><td class="num" id="LN1299">1299</td><td class="line"> <span class='directive'><span class='macro'>propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_value_array (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), g_param_spec_boxed (propElementName<br>, ((void*)0), ((void*)0), propElementType, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1300"><td class="num" id="LN1300">1300</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1301"><td class="num" id="LN1301">1301</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (ALLOW_BOLD, DEFAULT_ALLOW_BOLD, KEY_ALLOW_BOLD)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("allow-bold", ((void<br>*)0), ((void*)0), ((!(0))), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_ALLOW_BOLD, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "allow-bold"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "allow-bold", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1302"><td class="num" id="LN1302">1302</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (BOLD_COLOR_SAME_AS_FG, DEFAULT_BOLD_COLOR_SAME_AS_FG, KEY_BOLD_COLOR_SAME_AS_FG)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("bold-color-same-as-fg"<br>, ((void*)0), ((void*)0), ((!(0))), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_BOLD_COLOR_SAME_AS_FG, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "bold-color-same-as-fg"<br>); g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "bold-color-same-as-fg"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1303"><td class="num" id="LN1303">1303</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (DEFAULT_SHOW_MENUBAR, DEFAULT_DEFAULT_SHOW_MENUBAR, KEY_DEFAULT_SHOW_MENUBAR)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("default-show-menubar"<br>, ((void*)0), ((void*)0), ((!(0))), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_DEFAULT_SHOW_MENUBAR, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "default-show-menubar"<br>); g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "default-show-menubar"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1304"><td class="num" id="LN1304">1304</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (LOGIN_SHELL, DEFAULT_LOGIN_SHELL, KEY_LOGIN_SHELL)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("login-shell", ((<br>void*)0), ((void*)0), ((0)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_LOGIN_SHELL, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "login-shell"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "login-shell", pspec);<br>}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1305"><td class="num" id="LN1305">1305</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (SCROLL_BACKGROUND, DEFAULT_SCROLL_BACKGROUND, KEY_SCROLL_BACKGROUND)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("scroll-background"<br>, ((void*)0), ((void*)0), ((!(0))), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_SCROLL_BACKGROUND, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "scroll-background")<br>; g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "scroll-background"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1306"><td class="num" id="LN1306">1306</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (SCROLLBACK_UNLIMITED, DEFAULT_SCROLLBACK_UNLIMITED, KEY_SCROLLBACK_UNLIMITED)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("scrollback-unlimited"<br>, ((void*)0), ((void*)0), ((0)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_SCROLLBACK_UNLIMITED, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "scrollback-unlimited"<br>); g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "scrollback-unlimited"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1307"><td class="num" id="LN1307">1307</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (SCROLL_ON_KEYSTROKE, DEFAULT_SCROLL_ON_KEYSTROKE, KEY_SCROLL_ON_KEYSTROKE)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("scroll-on-keystroke"<br>, ((void*)0), ((void*)0), ((!(0))), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_SCROLL_ON_KEYSTROKE, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "scroll-on-keystroke"<br>); g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "scroll-on-keystroke"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1308"><td class="num" id="LN1308">1308</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (SCROLL_ON_OUTPUT, DEFAULT_SCROLL_ON_OUTPUT, KEY_SCROLL_ON_OUTPUT)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("scroll-on-output"<br>, ((void*)0), ((void*)0), ((0)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_SCROLL_ON_OUTPUT, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "scroll-on-output");<br> g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "scroll-on-output"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1309"><td class="num" id="LN1309">1309</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (SILENT_BELL, DEFAULT_SILENT_BELL, KEY_SILENT_BELL)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("silent-bell", ((<br>void*)0), ((void*)0), ((0)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_SILENT_BELL, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "silent-bell"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "silent-bell", pspec);<br>}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1310"><td class="num" id="LN1310">1310</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (COPY_SELECTION, DEFAULT_COPY_SELECTION, KEY_COPY_SELECTION)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("copy-selection",<br> ((void*)0), ((void*)0), ((0)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_COPY_SELECTION, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "copy-selection"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "copy-selection", pspec<br>);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1311"><td class="num" id="LN1311">1311</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (USE_CUSTOM_COMMAND, DEFAULT_USE_CUSTOM_COMMAND, KEY_USE_CUSTOM_COMMAND)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("use-custom-command"<br>, ((void*)0), ((void*)0), ((0)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_USE_CUSTOM_COMMAND, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "use-custom-command"<br>); g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "use-custom-command"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1312"><td class="num" id="LN1312">1312</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (USE_CUSTOM_DEFAULT_SIZE, DEFAULT_USE_CUSTOM_DEFAULT_SIZE, KEY_USE_CUSTOM_DEFAULT_SIZE)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("use-custom-default-size"<br>, ((void*)0), ((void*)0), ((0)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_USE_CUSTOM_DEFAULT_SIZE, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "use-custom-default-size"<br>); g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "use-custom-default-size"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1313"><td class="num" id="LN1313">1313</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (USE_SKEY, DEFAULT_USE_SKEY, KEY_USE_SKEY)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("use-skey", ((void<br>*)0), ((void*)0), ((!(0))), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_USE_SKEY, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "use-skey"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "use-skey", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1314"><td class="num" id="LN1314">1314</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (USE_URLS, DEFAULT_USE_URLS, KEY_USE_URLS)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("use-urls", ((void<br>*)0), ((void*)0), ((!(0))), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_USE_URLS, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "use-urls"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "use-urls", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1315"><td class="num" id="LN1315">1315</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (USE_SYSTEM_FONT, DEFAULT_USE_SYSTEM_FONT, KEY_USE_SYSTEM_FONT)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("use-system-font"<br>, ((void*)0), ((void*)0), ((!(0))), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_USE_SYSTEM_FONT, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "use-system-font"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "use-system-font", pspec<br>);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1316"><td class="num" id="LN1316">1316</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (USE_THEME_COLORS, DEFAULT_USE_THEME_COLORS, KEY_USE_THEME_COLORS)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("use-theme-colors"<br>, ((void*)0), ((void*)0), ((!(0))), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_USE_THEME_COLORS, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "use-theme-colors");<br> g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "use-theme-colors"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1317"><td class="num" id="LN1317">1317</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1318"><td class="num" id="LN1318">1318</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOXED (BACKGROUND_COLOR, GDK_TYPE_RGBA, KEY_BACKGROUND_COLOR)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boxed ("background-color",<br> ((void*)0), ((void*)0), (gdk_rgba_get_type ()), G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_BACKGROUND_COLOR<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) "background-color"); g_hash_table_insert (klass-&gt;<br>gsettings_keys, (gpointer) "background-color", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1319"><td class="num" id="LN1319">1319</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOXED (BOLD_COLOR, GDK_TYPE_RGBA, KEY_BOLD_COLOR)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boxed ("bold-color", ((void<br>*)0), ((void*)0), (gdk_rgba_get_type ()), G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_BOLD_COLOR<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) "bold-color"); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) "bold-color", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1320"><td class="num" id="LN1320">1320</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOXED (FONT, PANGO_TYPE_FONT_DESCRIPTION, KEY_FONT)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boxed ("font", ((void*)0),<br> ((void*)0), (pango_font_description_get_type ()), G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_FONT,<br> pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark, (<br>gpointer) "font"); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) "font", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1321"><td class="num" id="LN1321">1321</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOXED (FOREGROUND_COLOR, GDK_TYPE_RGBA, KEY_FOREGROUND_COLOR)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boxed ("foreground-color",<br> ((void*)0), ((void*)0), (gdk_rgba_get_type ()), G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_FOREGROUND_COLOR<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) "foreground-color"); g_hash_table_insert (klass-&gt;<br>gsettings_keys, (gpointer) "foreground-color", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1322"><td class="num" id="LN1322">1322</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1323"><td class="num" id="LN1323">1323</td><td class="line"> <span class='comment'>/* 0.0 = normal bg, 1.0 = all black bg, 0.5 = half darkened */</span></td></tr>
+<tr class="codeline" data-linenumber="1324"><td class="num" id="LN1324">1324</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_DOUBLE (BACKGROUND_DARKNESS, 0.0, 1.0, DEFAULT_BACKGROUND_DARKNESS, KEY_BACKGROUND_DARKNESS)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_double ("background-darkness"<br>, ((void*)0), ((void*)0), 0.0, 1.0, (0.5), G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_BACKGROUND_DARKNESS<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) "background-darkness"); g_hash_table_insert (klass<br>-&gt;gsettings_keys, (gpointer) "background-darkness", pspec)<br>;}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1325"><td class="num" id="LN1325">1325</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1326"><td class="num" id="LN1326">1326</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_ENUM (BACKGROUND_TYPE, TERMINAL_TYPE_BACKGROUND_TYPE, DEFAULT_BACKGROUND_TYPE, KEY_BACKGROUND_TYPE)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum ("background-type", (<br>(void*)0), ((void*)0), (terminal_background_type_get_type ())<br>, (TERMINAL_BACKGROUND_SOLID), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_BACKGROUND_TYPE, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "background-type"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "background-type", pspec<br>);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1327"><td class="num" id="LN1327">1327</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_ENUM (BACKSPACE_BINDING, VTE_TYPE_ERASE_BINDING, DEFAULT_BACKSPACE_BINDING, KEY_BACKSPACE_BINDING)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum ("backspace-binding",<br> ((void*)0), ((void*)0), (vte_erase_binding_get_type ()), (VTE_ERASE_ASCII_DELETE<br>), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_BACKSPACE_BINDING, pspec); g_param_spec_set_qdata (pspec<br>, gsettings_key_quark, (gpointer) "backspace-binding"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "backspace-binding", pspec<br>);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1328"><td class="num" id="LN1328">1328</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_ENUM (CURSOR_BLINK_MODE, VTE_TYPE_CURSOR_BLINK_MODE, DEFAULT_CURSOR_BLINK_MODE, KEY_CURSOR_BLINK_MODE)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum ("cursor-blink-mode",<br> ((void*)0), ((void*)0), (vte_cursor_blink_mode_get_type ()),<br> (VTE_CURSOR_BLINK_SYSTEM), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_CURSOR_BLINK_MODE, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "cursor-blink-mode")<br>; g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "cursor-blink-mode"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1329"><td class="num" id="LN1329">1329</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_ENUM (CURSOR_SHAPE, VTE_TYPE_CURSOR_SHAPE, DEFAULT_CURSOR_SHAPE, KEY_CURSOR_SHAPE)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum ("cursor-shape", ((void<br>*)0), ((void*)0), (vte_cursor_shape_get_type ()), (VTE_CURSOR_SHAPE_BLOCK<br>), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_CURSOR_SHAPE, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) "cursor-shape"); g_hash_table_insert (klass-&gt;<br>gsettings_keys, (gpointer) "cursor-shape", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1330"><td class="num" id="LN1330">1330</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_ENUM (DELETE_BINDING, VTE_TYPE_ERASE_BINDING, DEFAULT_DELETE_BINDING, KEY_DELETE_BINDING)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum ("delete-binding", ((<br>void*)0), ((void*)0), (vte_erase_binding_get_type ()), (VTE_ERASE_DELETE_SEQUENCE<br>), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_DELETE_BINDING, pspec); g_param_spec_set_qdata (pspec,<br> gsettings_key_quark, (gpointer) "delete-binding"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "delete-binding", pspec<br>);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1331"><td class="num" id="LN1331">1331</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_ENUM (EXIT_ACTION, TERMINAL_TYPE_EXIT_ACTION, DEFAULT_EXIT_ACTION, KEY_EXIT_ACTION)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum ("exit-action", ((void<br>*)0), ((void*)0), (terminal_exit_action_get_type ()), (TERMINAL_EXIT_CLOSE<br>), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_EXIT_ACTION, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) "exit-action"); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) "exit-action", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1332"><td class="num" id="LN1332">1332</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_ENUM (SCROLLBAR_POSITION, TERMINAL_TYPE_SCROLLBAR_POSITION, DEFAULT_SCROLLBAR_POSITION, KEY_SCROLLBAR_POSITION)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum ("scrollbar-position"<br>, ((void*)0), ((void*)0), (terminal_scrollbar_position_get_type<br> ()), (TERMINAL_SCROLLBAR_RIGHT), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_SCROLLBAR_POSITION, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "scrollbar-position"<br>); g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "scrollbar-position"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1333"><td class="num" id="LN1333">1333</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_ENUM (TITLE_MODE, TERMINAL_TYPE_TITLE_MODE, DEFAULT_TITLE_MODE, KEY_TITLE_MODE)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum ("title-mode", ((void<br>*)0), ((void*)0), (terminal_title_mode_get_type ()), (TERMINAL_TITLE_REPLACE<br>), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_TITLE_MODE, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) "title-mode"); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) "title-mode", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1334"><td class="num" id="LN1334">1334</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1335"><td class="num" id="LN1335">1335</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_INT (DEFAULT_SIZE_COLUMNS, 1, 1024, DEFAULT_DEFAULT_SIZE_COLUMNS, KEY_DEFAULT_SIZE_COLUMNS)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_int ("default-size-columns"<br>, ((void*)0), ((void*)0), 1, 1024, (80), G_PARAM_READWRITE | (<br>G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_DEFAULT_SIZE_COLUMNS<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) "default-size-columns"); g_hash_table_insert (klass<br>-&gt;gsettings_keys, (gpointer) "default-size-columns", pspec<br>);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1336"><td class="num" id="LN1336">1336</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_INT (DEFAULT_SIZE_ROWS, 1, 1024, DEFAULT_DEFAULT_SIZE_ROWS, KEY_DEFAULT_SIZE_ROWS)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_int ("default-size-rows", (<br>(void*)0), ((void*)0), 1, 1024, (24), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_DEFAULT_SIZE_ROWS, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "default-size-rows")<br>; g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "default-size-rows"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1337"><td class="num" id="LN1337">1337</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_INT (SCROLLBACK_LINES, 1, G_MAXINT, DEFAULT_SCROLLBACK_LINES, KEY_SCROLLBACK_LINES)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_int ("scrollback-lines", (<br>(void*)0), ((void*)0), 1, 2147483647, (512), G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_SCROLLBACK_LINES<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) "scrollback-lines"); g_hash_table_insert (klass-&gt;<br>gsettings_keys, (gpointer) "scrollback-lines", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1338"><td class="num" id="LN1338">1338</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1339"><td class="num" id="LN1339">1339</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_OBJECT (BACKGROUND_IMAGE, GDK_TYPE_PIXBUF)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_object ("background-image"<br>, ((void*)0), ((void*)0), (gdk_pixbuf_get_type ()), G_PARAM_READABLE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_BACKGROUND_IMAGE<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1340"><td class="num" id="LN1340">1340</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1341"><td class="num" id="LN1341">1341</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_STRING_CO (NAME, DEFAULT_NAME)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string ("name", ((void*)0)<br>, ((void*)0), (((void*)0)), G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_NAME,<br> pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1342"><td class="num" id="LN1342">1342</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1343"><td class="num" id="LN1343">1343</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_STRING (BACKGROUND_IMAGE_FILE, DEFAULT_BACKGROUND_IMAGE_FILE, KEY_BACKGROUND_IMAGE_FILE)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string ("background-image-file"<br>, ((void*)0), ((void*)0), (""), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_BACKGROUND_IMAGE_FILE, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "background-image");<br> g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "background-image"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1344"><td class="num" id="LN1344">1344</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_STRING (CUSTOM_COMMAND, DEFAULT_CUSTOM_COMMAND, KEY_CUSTOM_COMMAND)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string ("custom-command", (<br>(void*)0), ((void*)0), (""), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_CUSTOM_COMMAND, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "custom-command"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "custom-command", pspec<br>);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1345"><td class="num" id="LN1345">1345</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_STRING (TITLE, _(DEFAULT_TITLE), KEY_TITLE)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string ("title", ((void*)0<br>), ((void*)0), gettext ((("Terminal"))), G_PARAM_READWRITE | (<br>G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_TITLE<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) "title"); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) "title", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1346"><td class="num" id="LN1346">1346</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_STRING (VISIBLE_NAME, _(DEFAULT_VISIBLE_NAME), KEY_VISIBLE_NAME)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string ("visible-name", ((<br>void*)0), ((void*)0), gettext ((("Unnamed"))), G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_VISIBLE_NAME<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) "visible-name"); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) "visible-name", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1347"><td class="num" id="LN1347">1347</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_STRING (WORD_CHARS, DEFAULT_WORD_CHARS, KEY_WORD_CHARS)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string ("word-chars", ((void<br>*)0), ((void*)0), ("-A-Za-z0-9,./?%&amp;#:_=+@~"), G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_WORD_CHARS<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) "word-chars"); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) "word-chars", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1348"><td class="num" id="LN1348">1348</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1349"><td class="num" id="LN1349">1349</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_VALUE_ARRAY_BOXED (PALETTE, <span class='string_literal'>"palette-color"</span>, GDK_TYPE_RGBA, KEY_PALETTE)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_value_array ("palette", ((<br>void*)0), ((void*)0), g_param_spec_boxed ("palette-color", ((<br>void*)0), ((void*)0), (gdk_rgba_get_type ()), G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_PALETTE, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) "palette"); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) "palette", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1350"><td class="num" id="LN1350">1350</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1351"><td class="num" id="LN1351">1351</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1352"><td class="num" id="LN1352">1352</td><td class="line"><span class='comment'>/* Semi-Public API */</span></td></tr>
+<tr class="codeline" data-linenumber="1353"><td class="num" id="LN1353">1353</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1354"><td class="num" id="LN1354">1354</td><td class="line">TerminalProfile*</td></tr>
+<tr class="codeline" data-linenumber="1355"><td class="num" id="LN1355">1355</td><td class="line">_terminal_profile_new (<span class='keyword'>const</span> <span class='keyword'>char</span> *name)</td></tr>
+<tr class="codeline" data-linenumber="1356"><td class="num" id="LN1356">1356</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1357"><td class="num" id="LN1357">1357</td><td class="line"> <span class='keyword'>return</span> g_object_new (<span class='macro'>TERMINAL_TYPE_PROFILE<span class='macro_popup'>(terminal_profile_get_type ())</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1358"><td class="num" id="LN1358">1358</td><td class="line"> <span class='string_literal'>"name"</span>, name,</td></tr>
+<tr class="codeline" data-linenumber="1359"><td class="num" id="LN1359">1359</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1360"><td class="num" id="LN1360">1360</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1361"><td class="num" id="LN1361">1361</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1362"><td class="num" id="LN1362">1362</td><td class="line"><span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1363"><td class="num" id="LN1363">1363</td><td class="line">_terminal_profile_forget (TerminalProfile *profile)</td></tr>
+<tr class="codeline" data-linenumber="1364"><td class="num" id="LN1364">1364</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1365"><td class="num" id="LN1365">1365</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1366"><td class="num" id="LN1366">1366</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1367"><td class="num" id="LN1367">1367</td><td class="line"> <span class='keyword'>if</span> (!priv-&gt;forgotten)</td></tr>
+<tr class="codeline" data-linenumber="1368"><td class="num" id="LN1368">1368</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1369"><td class="num" id="LN1369">1369</td><td class="line"> priv-&gt;forgotten = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1370"><td class="num" id="LN1370">1370</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1371"><td class="num" id="LN1371">1371</td><td class="line"> g_signal_emit (<span class='macro'>G_OBJECT (profile)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((profile)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, signals[FORGOTTEN], 0);</td></tr>
+<tr class="codeline" data-linenumber="1372"><td class="num" id="LN1372">1372</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1373"><td class="num" id="LN1373">1373</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1374"><td class="num" id="LN1374">1374</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1375"><td class="num" id="LN1375">1375</td><td class="line">gboolean</td></tr>
+<tr class="codeline" data-linenumber="1376"><td class="num" id="LN1376">1376</td><td class="line">_terminal_profile_get_forgotten (TerminalProfile *profile)</td></tr>
+<tr class="codeline" data-linenumber="1377"><td class="num" id="LN1377">1377</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1378"><td class="num" id="LN1378">1378</td><td class="line"> <span class='keyword'>return</span> profile-&gt;priv-&gt;forgotten;</td></tr>
+<tr class="codeline" data-linenumber="1379"><td class="num" id="LN1379">1379</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1380"><td class="num" id="LN1380">1380</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1381"><td class="num" id="LN1381">1381</td><td class="line">TerminalProfile *</td></tr>
+<tr class="codeline" data-linenumber="1382"><td class="num" id="LN1382">1382</td><td class="line">_terminal_profile_clone (TerminalProfile *base_profile,</td></tr>
+<tr class="codeline" data-linenumber="1383"><td class="num" id="LN1383">1383</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *visible_name)</td></tr>
+<tr class="codeline" data-linenumber="1384"><td class="num" id="LN1384">1384</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1385"><td class="num" id="LN1385">1385</td><td class="line"> TerminalApp *app = terminal_app_get ();</td></tr>
+<tr class="codeline" data-linenumber="1386"><td class="num" id="LN1386">1386</td><td class="line"> GObject *base_object = <span class='macro'>G_OBJECT (base_profile)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((base_profile)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1387"><td class="num" id="LN1387">1387</td><td class="line"> TerminalProfilePrivate *new_priv;</td></tr>
+<tr class="codeline" data-linenumber="1388"><td class="num" id="LN1388">1388</td><td class="line"> <span class='keyword'>char</span> profile_name[32];</td></tr>
+<tr class="codeline" data-linenumber="1389"><td class="num" id="LN1389">1389</td><td class="line"> GParameter *params;</td></tr>
+<tr class="codeline" data-linenumber="1390"><td class="num" id="LN1390">1390</td><td class="line"> GParamSpec **pspecs;</td></tr>
+<tr class="codeline" data-linenumber="1391"><td class="num" id="LN1391">1391</td><td class="line"> guint n_pspecs, i, n_params, profile_num;</td></tr>
+<tr class="codeline" data-linenumber="1392"><td class="num" id="LN1392">1392</td><td class="line"> TerminalProfile *new_profile;</td></tr>
+<tr class="codeline" data-linenumber="1393"><td class="num" id="LN1393">1393</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1394"><td class="num" id="LN1394">1394</td><td class="line"> <span class='macro'>g_object_ref (base_profile)<span class='macro_popup'>((__typeof__ (base_profile)) (g_object_ref) (base_profile))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1395"><td class="num" id="LN1395">1395</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1396"><td class="num" id="LN1396">1396</td><td class="line"> profile_num = 0;</td></tr>
+<tr class="codeline" data-linenumber="1397"><td class="num" id="LN1397">1397</td><td class="line"> <span class='keyword'>do</span></td></tr>
+<tr class="codeline" data-linenumber="1398"><td class="num" id="LN1398">1398</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1399"><td class="num" id="LN1399">1399</td><td class="line"> g_snprintf (profile_name, <span class='keyword'>sizeof</span> (profile_name), <span class='string_literal'>"profile%u"</span>, profile_num++);</td></tr>
+<tr class="codeline" data-linenumber="1400"><td class="num" id="LN1400">1400</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1401"><td class="num" id="LN1401">1401</td><td class="line"> <span class='keyword'>while</span> (terminal_app_get_profile_by_name (app, profile_name) != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1402"><td class="num" id="LN1402">1402</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1403"><td class="num" id="LN1403">1403</td><td class="line"> <span class='comment'>/* Now we have an unused profile name */</span></td></tr>
+<tr class="codeline" data-linenumber="1404"><td class="num" id="LN1404">1404</td><td class="line"> pspecs = g_object_class_list_properties (<span class='macro'>G_OBJECT_CLASS (TERMINAL_PROFILE_GET_CLASS (base_profile))<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((((((TerminalProfileClass*) (((GTypeInstance*) ((base_profile<br>)))-&gt;g_class)))))), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, &amp;n_pspecs);</td></tr>
+<tr class="codeline" data-linenumber="1405"><td class="num" id="LN1405">1405</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1406"><td class="num" id="LN1406">1406</td><td class="line"> params = <span class='macro'>g_newa (GParameter, n_pspecs)<span class='macro_popup'>((GParameter*) __builtin_alloca (sizeof (GParameter) * (gsize<br>) (n_pspecs)))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1407"><td class="num" id="LN1407">1407</td><td class="line"> n_params = 0;</td></tr>
+<tr class="codeline" data-linenumber="1408"><td class="num" id="LN1408">1408</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1409"><td class="num" id="LN1409">1409</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; n_pspecs; ++i)</td></tr>
+<tr class="codeline" data-linenumber="1410"><td class="num" id="LN1410">1410</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1411"><td class="num" id="LN1411">1411</td><td class="line"> GParamSpec *pspec = pspecs[i];</td></tr>
+<tr class="codeline" data-linenumber="1412"><td class="num" id="LN1412">1412</td><td class="line"> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="1413"><td class="num" id="LN1413">1413</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1414"><td class="num" id="LN1414">1414</td><td class="line"> <span class='keyword'>if</span> (pspec-&gt;owner_type != <span class='macro'>TERMINAL_TYPE_PROFILE<span class='macro_popup'>(terminal_profile_get_type ())</span></span> ||</td></tr>
+<tr class="codeline" data-linenumber="1415"><td class="num" id="LN1415">1415</td><td class="line"> (pspec-&gt;flags &amp; G_PARAM_WRITABLE) == 0)</td></tr>
+<tr class="codeline" data-linenumber="1416"><td class="num" id="LN1416">1416</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="1417"><td class="num" id="LN1417">1417</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1418"><td class="num" id="LN1418">1418</td><td class="line"> params[n_params].name = pspec-&gt;name;</td></tr>
+<tr class="codeline" data-linenumber="1419"><td class="num" id="LN1419">1419</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1420"><td class="num" id="LN1420">1420</td><td class="line"> value = &amp;params[n_params].value;</td></tr>
+<tr class="codeline" data-linenumber="1421"><td class="num" id="LN1421">1421</td><td class="line"> <span class='macro'>G_VALUE_TYPE (value)<span class='macro_popup'>(((GValue*) (value))-&gt;g_type)</span></span> = 0;</td></tr>
+<tr class="codeline" data-linenumber="1422"><td class="num" id="LN1422">1422</td><td class="line"> g_value_init (value, <span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1423"><td class="num" id="LN1423">1423</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1424"><td class="num" id="LN1424">1424</td><td class="line"> <span class='keyword'>if</span> (pspec-&gt;name == <span class='macro'>I_(TERMINAL_PROFILE_NAME)<span class='macro_popup'>g_intern_static_string ("name")</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1425"><td class="num" id="LN1425">1425</td><td class="line"> g_value_set_static_string (value, profile_name);</td></tr>
+<tr class="codeline" data-linenumber="1426"><td class="num" id="LN1426">1426</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (pspec-&gt;name == <span class='macro'>I_(TERMINAL_PROFILE_VISIBLE_NAME)<span class='macro_popup'>g_intern_static_string ("visible-name")</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1427"><td class="num" id="LN1427">1427</td><td class="line"> g_value_set_static_string (value, visible_name);</td></tr>
+<tr class="codeline" data-linenumber="1428"><td class="num" id="LN1428">1428</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="1429"><td class="num" id="LN1429">1429</td><td class="line"> g_object_get_property (base_object, pspec-&gt;name, value);</td></tr>
+<tr class="codeline" data-linenumber="1430"><td class="num" id="LN1430">1430</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1431"><td class="num" id="LN1431">1431</td><td class="line"> ++n_params;</td></tr>
+<tr class="codeline" data-linenumber="1432"><td class="num" id="LN1432">1432</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1433"><td class="num" id="LN1433">1433</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1434"><td class="num" id="LN1434">1434</td><td class="line"> new_profile = g_object_newv (<span class='macro'>TERMINAL_TYPE_PROFILE<span class='macro_popup'>(terminal_profile_get_type ())</span></span>, n_params, params);</td></tr>
+<tr class="codeline" data-linenumber="1435"><td class="num" id="LN1435">1435</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1436"><td class="num" id="LN1436">1436</td><td class="line"> g_object_unref (base_profile);</td></tr>
+<tr class="codeline" data-linenumber="1437"><td class="num" id="LN1437">1437</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1438"><td class="num" id="LN1438">1438</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; n_params; ++i)</td></tr>
+<tr class="codeline" data-linenumber="1439"><td class="num" id="LN1439">1439</td><td class="line"> g_value_unset (&amp;params[i].value);</td></tr>
+<tr class="codeline" data-linenumber="1440"><td class="num" id="LN1440">1440</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1441"><td class="num" id="LN1441">1441</td><td class="line"> <span class='comment'>/* Flush the new profile to GSettings */</span></td></tr>
+<tr class="codeline" data-linenumber="1442"><td class="num" id="LN1442">1442</td><td class="line"> new_priv = new_profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1443"><td class="num" id="LN1443">1443</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1444"><td class="num" id="LN1444">1444</td><td class="line"> g_slist_free (new_priv-&gt;dirty_pspecs);</td></tr>
+<tr class="codeline" data-linenumber="1445"><td class="num" id="LN1445">1445</td><td class="line"> new_priv-&gt;dirty_pspecs = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1446"><td class="num" id="LN1446">1446</td><td class="line"> <span class='keyword'>if</span> (new_priv-&gt;save_idle_id != 0)</td></tr>
+<tr class="codeline" data-linenumber="1447"><td class="num" id="LN1447">1447</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1448"><td class="num" id="LN1448">1448</td><td class="line"> g_source_remove (new_priv-&gt;save_idle_id);</td></tr>
+<tr class="codeline" data-linenumber="1449"><td class="num" id="LN1449">1449</td><td class="line"> new_priv-&gt;save_idle_id = 0;</td></tr>
+<tr class="codeline" data-linenumber="1450"><td class="num" id="LN1450">1450</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1451"><td class="num" id="LN1451">1451</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1452"><td class="num" id="LN1452">1452</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; n_pspecs; ++i)</td></tr>
+<tr class="codeline" data-linenumber="1453"><td class="num" id="LN1453">1453</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1454"><td class="num" id="LN1454">1454</td><td class="line"> GParamSpec *pspec = pspecs[i];</td></tr>
+<tr class="codeline" data-linenumber="1455"><td class="num" id="LN1455">1455</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1456"><td class="num" id="LN1456">1456</td><td class="line"> <span class='keyword'>if</span> (pspec-&gt;owner_type != <span class='macro'>TERMINAL_TYPE_PROFILE<span class='macro_popup'>(terminal_profile_get_type ())</span></span> ||</td></tr>
+<tr class="codeline" data-linenumber="1457"><td class="num" id="LN1457">1457</td><td class="line"> (pspec-&gt;flags &amp; G_PARAM_WRITABLE) == 0)</td></tr>
+<tr class="codeline" data-linenumber="1458"><td class="num" id="LN1458">1458</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="1459"><td class="num" id="LN1459">1459</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1460"><td class="num" id="LN1460">1460</td><td class="line"> new_priv-&gt;dirty_pspecs = g_slist_prepend (new_priv-&gt;dirty_pspecs, pspec);</td></tr>
+<tr class="codeline" data-linenumber="1461"><td class="num" id="LN1461">1461</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1462"><td class="num" id="LN1462">1462</td><td class="line"> g_free (pspecs);</td></tr>
+<tr class="codeline" data-linenumber="1463"><td class="num" id="LN1463">1463</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1464"><td class="num" id="LN1464">1464</td><td class="line"> terminal_profile_save (new_profile);</td></tr>
+<tr class="codeline" data-linenumber="1465"><td class="num" id="LN1465">1465</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1466"><td class="num" id="LN1466">1466</td><td class="line"> <span class='keyword'>return</span> new_profile;</td></tr>
+<tr class="codeline" data-linenumber="1467"><td class="num" id="LN1467">1467</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1468"><td class="num" id="LN1468">1468</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1469"><td class="num" id="LN1469">1469</td><td class="line"><span class='comment'>/* Public API */</span></td></tr>
+<tr class="codeline" data-linenumber="1470"><td class="num" id="LN1470">1470</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1471"><td class="num" id="LN1471">1471</td><td class="line">gboolean</td></tr>
+<tr class="codeline" data-linenumber="1472"><td class="num" id="LN1472">1472</td><td class="line">terminal_profile_get_property_boolean (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1473"><td class="num" id="LN1473">1473</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="1474"><td class="num" id="LN1474">1474</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1475"><td class="num" id="LN1475">1475</td><td class="line"> <span class='keyword'>const</span> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="1476"><td class="num" id="LN1476">1476</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1477"><td class="num" id="LN1477">1477</td><td class="line"> value = get_prop_value_from_prop_name (profile, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="1478"><td class="num" id="LN1478">1478</td><td class="line"> <span class='macro'>g_return_val_if_fail (value != NULL &amp;&amp; G_VALUE_HOLDS_BOOLEAN (value), FALSE)<span class='macro_popup'>do { if ((value != ((void*)0) &amp;&amp; (((__extension__ ({ const<br> GValue *__val = (const GValue*) ((value)); GType __t = (((GType<br>) ((5) &lt;&lt; (2)))); gboolean __r; if (!__val) __r = (0); else<br> if (__val-&gt;g_type == __t) __r = (!(0)); else __r = g_type_check_value_holds<br> (__val, __t); __r; })))))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "value != NULL &amp;&amp; G_VALUE_HOLDS_BOOLEAN (value)"<br>); return ((0)); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1479"><td class="num" id="LN1479">1479</td><td class="line"> <span class='keyword'>if</span> (!value || !<span class='macro'>G_VALUE_HOLDS_BOOLEAN (value)<span class='macro_popup'>(((__extension__ ({ const GValue *__val = (const GValue*) ((value<br>)); GType __t = (((GType) ((5) &lt;&lt; (2)))); gboolean __r;<br> if (!__val) __r = (0); else if (__val-&gt;g_type == __t) __r<br> = (!(0)); else __r = g_type_check_value_holds (__val, __t); __r<br>; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1480"><td class="num" id="LN1480">1480</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1481"><td class="num" id="LN1481">1481</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1482"><td class="num" id="LN1482">1482</td><td class="line"> <span class='keyword'>return</span> g_value_get_boolean (value);</td></tr>
+<tr class="codeline" data-linenumber="1483"><td class="num" id="LN1483">1483</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1484"><td class="num" id="LN1484">1484</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1485"><td class="num" id="LN1485">1485</td><td class="line">gconstpointer</td></tr>
+<tr class="codeline" data-linenumber="1486"><td class="num" id="LN1486">1486</td><td class="line">terminal_profile_get_property_boxed (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1487"><td class="num" id="LN1487">1487</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="1488"><td class="num" id="LN1488">1488</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1489"><td class="num" id="LN1489">1489</td><td class="line"> <span class='keyword'>const</span> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="1490"><td class="num" id="LN1490">1490</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1491"><td class="num" id="LN1491">1491</td><td class="line"> value = get_prop_value_from_prop_name (profile, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="1492"><td class="num" id="LN1492">1492</td><td class="line"> <span class='macro'>g_return_val_if_fail (value != NULL &amp;&amp; G_VALUE_HOLDS_BOXED (value), NULL)<span class='macro_popup'>do { if ((value != ((void*)0) &amp;&amp; (((__extension__ ({ const<br> GValue *__val = (const GValue*) ((value)); GType __t = (((GType<br>) ((18) &lt;&lt; (2)))); gboolean __r; if (!__val) __r = (0);<br> else if (__val-&gt;g_type == __t) __r = (!(0)); else __r = g_type_check_value_holds<br> (__val, __t); __r; })))))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "value != NULL &amp;&amp; G_VALUE_HOLDS_BOXED (value)"<br>); return (((void*)0)); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1493"><td class="num" id="LN1493">1493</td><td class="line"> <span class='keyword'>if</span> (!value || !<span class='macro'>G_VALUE_HOLDS_BOXED (value)<span class='macro_popup'>(((__extension__ ({ const GValue *__val = (const GValue*) ((value<br>)); GType __t = (((GType) ((18) &lt;&lt; (2)))); gboolean __r<br>; if (!__val) __r = (0); else if (__val-&gt;g_type == __t) __r<br> = (!(0)); else __r = g_type_check_value_holds (__val, __t); __r<br>; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1494"><td class="num" id="LN1494">1494</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1495"><td class="num" id="LN1495">1495</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1496"><td class="num" id="LN1496">1496</td><td class="line"> <span class='keyword'>return</span> g_value_get_boxed (value);</td></tr>
+<tr class="codeline" data-linenumber="1497"><td class="num" id="LN1497">1497</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1498"><td class="num" id="LN1498">1498</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1499"><td class="num" id="LN1499">1499</td><td class="line"><span class='keyword'>double</span></td></tr>
+<tr class="codeline" data-linenumber="1500"><td class="num" id="LN1500">1500</td><td class="line">terminal_profile_get_property_double (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1501"><td class="num" id="LN1501">1501</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="1502"><td class="num" id="LN1502">1502</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1503"><td class="num" id="LN1503">1503</td><td class="line"> <span class='keyword'>const</span> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="1504"><td class="num" id="LN1504">1504</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1505"><td class="num" id="LN1505">1505</td><td class="line"> value = get_prop_value_from_prop_name (profile, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="1506"><td class="num" id="LN1506">1506</td><td class="line"> <span class='macro'>g_return_val_if_fail (value != NULL &amp;&amp; G_VALUE_HOLDS_DOUBLE (value), 0.0)<span class='macro_popup'>do { if ((value != ((void*)0) &amp;&amp; (((__extension__ ({ const<br> GValue *__val = (const GValue*) ((value)); GType __t = (((GType<br>) ((15) &lt;&lt; (2)))); gboolean __r; if (!__val) __r = (0);<br> else if (__val-&gt;g_type == __t) __r = (!(0)); else __r = g_type_check_value_holds<br> (__val, __t); __r; })))))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "value != NULL &amp;&amp; G_VALUE_HOLDS_DOUBLE (value)"<br>); return (0.0); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1507"><td class="num" id="LN1507">1507</td><td class="line"> <span class='keyword'>if</span> (!value || !<span class='macro'>G_VALUE_HOLDS_DOUBLE (value)<span class='macro_popup'>(((__extension__ ({ const GValue *__val = (const GValue*) ((value<br>)); GType __t = (((GType) ((15) &lt;&lt; (2)))); gboolean __r<br>; if (!__val) __r = (0); else if (__val-&gt;g_type == __t) __r<br> = (!(0)); else __r = g_type_check_value_holds (__val, __t); __r<br>; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1508"><td class="num" id="LN1508">1508</td><td class="line"> <span class='keyword'>return</span> 0.0;</td></tr>
+<tr class="codeline" data-linenumber="1509"><td class="num" id="LN1509">1509</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1510"><td class="num" id="LN1510">1510</td><td class="line"> <span class='keyword'>return</span> g_value_get_double (value);</td></tr>
+<tr class="codeline" data-linenumber="1511"><td class="num" id="LN1511">1511</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1512"><td class="num" id="LN1512">1512</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1513"><td class="num" id="LN1513">1513</td><td class="line"><span class='keyword'>int</span></td></tr>
+<tr class="codeline" data-linenumber="1514"><td class="num" id="LN1514">1514</td><td class="line">terminal_profile_get_property_enum (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1515"><td class="num" id="LN1515">1515</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="1516"><td class="num" id="LN1516">1516</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1517"><td class="num" id="LN1517">1517</td><td class="line"> <span class='keyword'>const</span> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="1518"><td class="num" id="LN1518">1518</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1519"><td class="num" id="LN1519">1519</td><td class="line"> value = get_prop_value_from_prop_name (profile, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="1520"><td class="num" id="LN1520">1520</td><td class="line"> <span class='macro'>g_return_val_if_fail (value != NULL &amp;&amp; G_VALUE_HOLDS_ENUM (value), 0)<span class='macro_popup'>do { if ((value != ((void*)0) &amp;&amp; (((__extension__ ({ const<br> GValue *__val = (const GValue*) ((value)); GType __t = (((GType<br>) ((12) &lt;&lt; (2)))); gboolean __r; if (!__val) __r = (0);<br> else if (__val-&gt;g_type == __t) __r = (!(0)); else __r = g_type_check_value_holds<br> (__val, __t); __r; })))))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "value != NULL &amp;&amp; G_VALUE_HOLDS_ENUM (value)"<br>); return (0); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1521"><td class="num" id="LN1521">1521</td><td class="line"> <span class='keyword'>if</span> (!value || !<span class='macro'>G_VALUE_HOLDS_ENUM (value)<span class='macro_popup'>(((__extension__ ({ const GValue *__val = (const GValue*) ((value<br>)); GType __t = (((GType) ((12) &lt;&lt; (2)))); gboolean __r<br>; if (!__val) __r = (0); else if (__val-&gt;g_type == __t) __r<br> = (!(0)); else __r = g_type_check_value_holds (__val, __t); __r<br>; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1522"><td class="num" id="LN1522">1522</td><td class="line"> <span class='keyword'>return</span> 0;</td></tr>
+<tr class="codeline" data-linenumber="1523"><td class="num" id="LN1523">1523</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1524"><td class="num" id="LN1524">1524</td><td class="line"> <span class='keyword'>return</span> g_value_get_enum (value);</td></tr>
+<tr class="codeline" data-linenumber="1525"><td class="num" id="LN1525">1525</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1526"><td class="num" id="LN1526">1526</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1527"><td class="num" id="LN1527">1527</td><td class="line"><span class='keyword'>int</span></td></tr>
+<tr class="codeline" data-linenumber="1528"><td class="num" id="LN1528">1528</td><td class="line">terminal_profile_get_property_int (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1529"><td class="num" id="LN1529">1529</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="1530"><td class="num" id="LN1530">1530</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1531"><td class="num" id="LN1531">1531</td><td class="line"> <span class='keyword'>const</span> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="1532"><td class="num" id="LN1532">1532</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1533"><td class="num" id="LN1533">1533</td><td class="line"> value = get_prop_value_from_prop_name (profile, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="1534"><td class="num" id="LN1534">1534</td><td class="line"> <span class='macro'>g_return_val_if_fail (value != NULL &amp;&amp; G_VALUE_HOLDS_INT (value), 0)<span class='macro_popup'>do { if ((value != ((void*)0) &amp;&amp; (((__extension__ ({ const<br> GValue *__val = (const GValue*) ((value)); GType __t = (((GType<br>) ((6) &lt;&lt; (2)))); gboolean __r; if (!__val) __r = (0); else<br> if (__val-&gt;g_type == __t) __r = (!(0)); else __r = g_type_check_value_holds<br> (__val, __t); __r; })))))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "value != NULL &amp;&amp; G_VALUE_HOLDS_INT (value)"<br>); return (0); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1535"><td class="num" id="LN1535">1535</td><td class="line"> <span class='keyword'>if</span> (!value || !<span class='macro'>G_VALUE_HOLDS_INT (value)<span class='macro_popup'>(((__extension__ ({ const GValue *__val = (const GValue*) ((value<br>)); GType __t = (((GType) ((6) &lt;&lt; (2)))); gboolean __r;<br> if (!__val) __r = (0); else if (__val-&gt;g_type == __t) __r<br> = (!(0)); else __r = g_type_check_value_holds (__val, __t); __r<br>; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1536"><td class="num" id="LN1536">1536</td><td class="line"> <span class='keyword'>return</span> 0;</td></tr>
+<tr class="codeline" data-linenumber="1537"><td class="num" id="LN1537">1537</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1538"><td class="num" id="LN1538">1538</td><td class="line"> <span class='keyword'>return</span> g_value_get_int (value);</td></tr>
+<tr class="codeline" data-linenumber="1539"><td class="num" id="LN1539">1539</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1540"><td class="num" id="LN1540">1540</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1541"><td class="num" id="LN1541">1541</td><td class="line">gpointer</td></tr>
+<tr class="codeline" data-linenumber="1542"><td class="num" id="LN1542">1542</td><td class="line">terminal_profile_get_property_object (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1543"><td class="num" id="LN1543">1543</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="1544"><td class="num" id="LN1544">1544</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1545"><td class="num" id="LN1545">1545</td><td class="line"> <span class='keyword'>const</span> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="1546"><td class="num" id="LN1546">1546</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1547"><td class="num" id="LN1547">1547</td><td class="line"> value = get_prop_value_from_prop_name (profile, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="1548"><td class="num" id="LN1548">1548</td><td class="line"> <span class='macro'>g_return_val_if_fail (value != NULL &amp;&amp; G_VALUE_HOLDS_OBJECT (value), NULL)<span class='macro_popup'>do { if ((value != ((void*)0) &amp;&amp; (((__extension__ ({ const<br> GValue *__val = (const GValue*) ((value)); GType __t = (((GType<br>) ((20) &lt;&lt; (2)))); gboolean __r; if (!__val) __r = (0);<br> else if (__val-&gt;g_type == __t) __r = (!(0)); else __r = g_type_check_value_holds<br> (__val, __t); __r; })))))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "value != NULL &amp;&amp; G_VALUE_HOLDS_OBJECT (value)"<br>); return (((void*)0)); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1549"><td class="num" id="LN1549">1549</td><td class="line"> <span class='keyword'>if</span> (!value || !<span class='macro'>G_VALUE_HOLDS_OBJECT (value)<span class='macro_popup'>(((__extension__ ({ const GValue *__val = (const GValue*) ((value<br>)); GType __t = (((GType) ((20) &lt;&lt; (2)))); gboolean __r<br>; if (!__val) __r = (0); else if (__val-&gt;g_type == __t) __r<br> = (!(0)); else __r = g_type_check_value_holds (__val, __t); __r<br>; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1550"><td class="num" id="LN1550">1550</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1551"><td class="num" id="LN1551">1551</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1552"><td class="num" id="LN1552">1552</td><td class="line"> <span class='keyword'>return</span> g_value_get_object (value);</td></tr>
+<tr class="codeline" data-linenumber="1553"><td class="num" id="LN1553">1553</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1554"><td class="num" id="LN1554">1554</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1555"><td class="num" id="LN1555">1555</td><td class="line"><span class='keyword'>const</span> <span class='keyword'>char</span>*</td></tr>
+<tr class="codeline" data-linenumber="1556"><td class="num" id="LN1556">1556</td><td class="line">terminal_profile_get_property_string (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1557"><td class="num" id="LN1557">1557</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="1558"><td class="num" id="LN1558">1558</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1559"><td class="num" id="LN1559">1559</td><td class="line"> <span class='keyword'>const</span> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="1560"><td class="num" id="LN1560">1560</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1561"><td class="num" id="LN1561">1561</td><td class="line"> value = get_prop_value_from_prop_name (profile, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="1562"><td class="num" id="LN1562">1562</td><td class="line"> <span class='macro'>g_return_val_if_fail (value != NULL &amp;&amp; G_VALUE_HOLDS_STRING (value), NULL)<span class='macro_popup'>do { if ((value != ((void*)0) &amp;&amp; (((__extension__ ({ const<br> GValue *__val = (const GValue*) ((value)); GType __t = (((GType<br>) ((16) &lt;&lt; (2)))); gboolean __r; if (!__val) __r = (0);<br> else if (__val-&gt;g_type == __t) __r = (!(0)); else __r = g_type_check_value_holds<br> (__val, __t); __r; })))))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "value != NULL &amp;&amp; G_VALUE_HOLDS_STRING (value)"<br>); return (((void*)0)); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1563"><td class="num" id="LN1563">1563</td><td class="line"> <span class='keyword'>if</span> (!value || !<span class='macro'>G_VALUE_HOLDS_STRING (value)<span class='macro_popup'>(((__extension__ ({ const GValue *__val = (const GValue*) ((value<br>)); GType __t = (((GType) ((16) &lt;&lt; (2)))); gboolean __r<br>; if (!__val) __r = (0); else if (__val-&gt;g_type == __t) __r<br> = (!(0)); else __r = g_type_check_value_holds (__val, __t); __r<br>; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1564"><td class="num" id="LN1564">1564</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1565"><td class="num" id="LN1565">1565</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1566"><td class="num" id="LN1566">1566</td><td class="line"> <span class='keyword'>return</span> g_value_get_string (value);</td></tr>
+<tr class="codeline" data-linenumber="1567"><td class="num" id="LN1567">1567</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1568"><td class="num" id="LN1568">1568</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1569"><td class="num" id="LN1569">1569</td><td class="line">gboolean</td></tr>
+<tr class="codeline" data-linenumber="1570"><td class="num" id="LN1570">1570</td><td class="line">terminal_profile_property_locked (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1571"><td class="num" id="LN1571">1571</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="1572"><td class="num" id="LN1572">1572</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1573"><td class="num" id="LN1573">1573</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1574"><td class="num" id="LN1574">1574</td><td class="line"> GParamSpec *pspec;</td></tr>
+<tr class="codeline" data-linenumber="1575"><td class="num" id="LN1575">1575</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1576"><td class="num" id="LN1576">1576</td><td class="line"> pspec = get_pspec_from_name (profile, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="1577"><td class="num" id="LN1577">1577</td><td class="line"> <span class='macro'>g_return_val_if_fail (pspec != NULL, FALSE)<span class='macro_popup'>do { if ((pspec != ((void*)0))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "pspec != NULL");<br> return ((0)); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1578"><td class="num" id="LN1578">1578</td><td class="line"> <span class='keyword'>if</span> (!pspec)</td></tr>
+<tr class="codeline" data-linenumber="1579"><td class="num" id="LN1579">1579</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1580"><td class="num" id="LN1580">1580</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1581"><td class="num" id="LN1581">1581</td><td class="line"> <span class='keyword'>return</span> priv-&gt;locked[pspec-&gt;param_id];</td></tr>
+<tr class="codeline" data-linenumber="1582"><td class="num" id="LN1582">1582</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1583"><td class="num" id="LN1583">1583</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1584"><td class="num" id="LN1584">1584</td><td class="line"><span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1585"><td class="num" id="LN1585">1585</td><td class="line">terminal_profile_reset_property (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1586"><td class="num" id="LN1586">1586</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="1587"><td class="num" id="LN1587">1587</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1588"><td class="num" id="LN1588">1588</td><td class="line"> GParamSpec *pspec;</td></tr>
+<tr class="codeline" data-linenumber="1589"><td class="num" id="LN1589">1589</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1590"><td class="num" id="LN1590">1590</td><td class="line"> pspec = get_pspec_from_name (profile, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="1591"><td class="num" id="LN1591">1591</td><td class="line"> <span class='macro'>g_return_if_fail (pspec != NULL)<span class='macro_popup'>do { if ((pspec != ((void*)0))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "pspec != NULL");<br> return; } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1592"><td class="num" id="LN1592">1592</td><td class="line"> <span class='keyword'>if</span> (!pspec ||</td></tr>
+<tr class="codeline" data-linenumber="1593"><td class="num" id="LN1593">1593</td><td class="line"> (pspec-&gt;flags &amp; G_PARAM_WRITABLE) == 0)</td></tr>
+<tr class="codeline" data-linenumber="1594"><td class="num" id="LN1594">1594</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1595"><td class="num" id="LN1595">1595</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1596"><td class="num" id="LN1596">1596</td><td class="line"> terminal_profile_reset_property_internal (profile, pspec, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1597"><td class="num" id="LN1597">1597</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1598"><td class="num" id="LN1598">1598</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1599"><td class="num" id="LN1599">1599</td><td class="line">gboolean</td></tr>
+<tr class="codeline" data-linenumber="1600"><td class="num" id="LN1600">1600</td><td class="line">terminal_profile_get_palette (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1601"><td class="num" id="LN1601">1601</td><td class="line"> GdkRGBA *colors,</td></tr>
+<tr class="codeline" data-linenumber="1602"><td class="num" id="LN1602">1602</td><td class="line"> guint *n_colors)</td></tr>
+<tr class="codeline" data-linenumber="1603"><td class="num" id="LN1603">1603</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1604"><td class="num" id="LN1604">1604</td><td class="line"> TerminalProfilePrivate *priv;</td></tr>
+<tr class="codeline" data-linenumber="1605"><td class="num" id="LN1605">1605</td><td class="line"> GValueArray *array;</td></tr>
+<tr class="codeline" data-linenumber="1606"><td class="num" id="LN1606">1606</td><td class="line"> guint i, n;</td></tr>
+<tr class="codeline" data-linenumber="1607"><td class="num" id="LN1607">1607</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1608"><td class="num" id="LN1608">1608</td><td class="line"> <span class='macro'>g_return_val_if_fail (TERMINAL_IS_PROFILE (profile), FALSE)<span class='macro_popup'>do { if (((((__extension__ ({ GTypeInstance *__inst = (GTypeInstance<br>*) ((profile)); GType __t = ((terminal_profile_get_type ()));<br> gboolean __r; if (!__inst) __r = (0); else if (__inst-&gt;g_class<br> &amp;&amp; __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)<br>); else __r = g_type_check_instance_is_a (__inst, __t); __r; }<br>)))))) { } else { g_return_if_fail_warning (((gchar*) 0), ((const<br> char*) (__func__)), "TERMINAL_IS_PROFILE (profile)"); return<br> ((0)); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1609"><td class="num" id="LN1609">1609</td><td class="line"> <span class='macro'>g_return_val_if_fail (colors != NULL &amp;&amp; n_colors != NULL, FALSE)<span class='macro_popup'>do { if ((colors != ((void*)0) &amp;&amp; n_colors != ((void*<br>)0))) { } else { g_return_if_fail_warning (((gchar*) 0), ((const<br> char*) (__func__)), "colors != NULL &amp;&amp; n_colors != NULL"<br>); return ((0)); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1610"><td class="num" id="LN1610">1610</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1611"><td class="num" id="LN1611">1611</td><td class="line"> priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1612"><td class="num" id="LN1612">1612</td><td class="line"> array = g_value_get_boxed (g_value_array_get_nth (priv-&gt;properties, PROP_PALETTE));</td></tr>
+<tr class="codeline" data-linenumber="1613"><td class="num" id="LN1613">1613</td><td class="line"> <span class='keyword'>if</span> (!array)</td></tr>
+<tr class="codeline" data-linenumber="1614"><td class="num" id="LN1614">1614</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1615"><td class="num" id="LN1615">1615</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1616"><td class="num" id="LN1616">1616</td><td class="line"> n = <span class='macro'>MIN (array-&gt;n_values, *n_colors)<span class='macro_popup'>(((array-&gt;n_values) &lt; (*n_colors)) ? (array-&gt;n_values<br>) : (*n_colors))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1617"><td class="num" id="LN1617">1617</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; n; ++i)</td></tr>
+<tr class="codeline" data-linenumber="1618"><td class="num" id="LN1618">1618</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1619"><td class="num" id="LN1619">1619</td><td class="line"> GdkRGBA *color = g_value_get_boxed (g_value_array_get_nth (array, i));</td></tr>
+<tr class="codeline" data-linenumber="1620"><td class="num" id="LN1620">1620</td><td class="line"> <span class='keyword'>if</span> (!color)</td></tr>
+<tr class="codeline" data-linenumber="1621"><td class="num" id="LN1621">1621</td><td class="line"> <span class='keyword'>continue</span>; <span class='comment'>/* shouldn't happen!! */</span></td></tr>
+<tr class="codeline" data-linenumber="1622"><td class="num" id="LN1622">1622</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1623"><td class="num" id="LN1623">1623</td><td class="line"> colors[i] = *color;</td></tr>
+<tr class="codeline" data-linenumber="1624"><td class="num" id="LN1624">1624</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1625"><td class="num" id="LN1625">1625</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1626"><td class="num" id="LN1626">1626</td><td class="line"> *n_colors = n;</td></tr>
+<tr class="codeline" data-linenumber="1627"><td class="num" id="LN1627">1627</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1628"><td class="num" id="LN1628">1628</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1629"><td class="num" id="LN1629">1629</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1630"><td class="num" id="LN1630">1630</td><td class="line">gboolean</td></tr>
+<tr class="codeline" data-linenumber="1631"><td class="num" id="LN1631">1631</td><td class="line">terminal_profile_get_palette_is_builtin (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1632"><td class="num" id="LN1632">1632</td><td class="line"> guint *n)</td></tr>
+<tr class="codeline" data-linenumber="1633"><td class="num" id="LN1633">1633</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1634"><td class="num" id="LN1634">1634</td><td class="line"> GdkRGBA colors[<span class='macro'>TERMINAL_PALETTE_SIZE<span class='macro_popup'>16</span></span>];</td></tr>
+<tr class="codeline" data-linenumber="1635"><td class="num" id="LN1635">1635</td><td class="line"> guint n_colors;</td></tr>
+<tr class="codeline" data-linenumber="1636"><td class="num" id="LN1636">1636</td><td class="line"> guint i;</td></tr>
+<tr class="codeline" data-linenumber="1637"><td class="num" id="LN1637">1637</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1638"><td class="num" id="LN1638">1638</td><td class="line"> n_colors = <span class='macro'>G_N_ELEMENTS (colors)<span class='macro_popup'>(sizeof (colors) / sizeof ((colors)[0]))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1639"><td class="num" id="LN1639">1639</td><td class="line"> <span class='keyword'>if</span> (!terminal_profile_get_palette (profile, colors, &amp;n_colors) ||</td></tr>
+<tr class="codeline" data-linenumber="1640"><td class="num" id="LN1640">1640</td><td class="line"> n_colors != <span class='macro'>TERMINAL_PALETTE_SIZE<span class='macro_popup'>16</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1641"><td class="num" id="LN1641">1641</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1642"><td class="num" id="LN1642">1642</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1643"><td class="num" id="LN1643">1643</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; <span class='macro'>TERMINAL_PALETTE_N_BUILTINS<span class='macro_popup'>5</span></span>; ++i)</td></tr>
+<tr class="codeline" data-linenumber="1644"><td class="num" id="LN1644">1644</td><td class="line"> <span class='keyword'>if</span> (palette_cmp (colors, terminal_palettes[i]))</td></tr>
+<tr class="codeline" data-linenumber="1645"><td class="num" id="LN1645">1645</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1646"><td class="num" id="LN1646">1646</td><td class="line"> *n = i;</td></tr>
+<tr class="codeline" data-linenumber="1647"><td class="num" id="LN1647">1647</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1648"><td class="num" id="LN1648">1648</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1649"><td class="num" id="LN1649">1649</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1650"><td class="num" id="LN1650">1650</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1651"><td class="num" id="LN1651">1651</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1652"><td class="num" id="LN1652">1652</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1653"><td class="num" id="LN1653">1653</td><td class="line"><span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1654"><td class="num" id="LN1654">1654</td><td class="line">terminal_profile_set_palette_builtin (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1655"><td class="num" id="LN1655">1655</td><td class="line"> guint n)</td></tr>
+<tr class="codeline" data-linenumber="1656"><td class="num" id="LN1656">1656</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1657"><td class="num" id="LN1657">1657</td><td class="line"> GValue value = { 0, };</td></tr>
+<tr class="codeline" data-linenumber="1658"><td class="num" id="LN1658">1658</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1659"><td class="num" id="LN1659">1659</td><td class="line"> <span class='macro'>g_return_if_fail (n &lt; TERMINAL_PALETTE_N_BUILTINS)<span class='macro_popup'>do { if ((n &lt; 5)) { } else { g_return_if_fail_warning (((gchar<br>*) 0), ((const char*) (__func__)), "n &lt; TERMINAL_PALETTE_N_BUILTINS"<br>); return; } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1660"><td class="num" id="LN1660">1660</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1661"><td class="num" id="LN1661">1661</td><td class="line"> g_value_init (&amp;value, <span class='macro'>G_TYPE_VALUE_ARRAY<span class='macro_popup'>(g_value_array_get_type ()) GCC warning "Deprecated pre-processor symbol: replace with \"(g_array_get_type ())\""<br>
+</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1662"><td class="num" id="LN1662">1662</td><td class="line"> set_value_from_palette (&amp;value, terminal_palettes[n], <span class='macro'>TERMINAL_PALETTE_SIZE<span class='macro_popup'>16</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1663"><td class="num" id="LN1663">1663</td><td class="line"> g_object_set_property (<span class='macro'>G_OBJECT (profile)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((profile)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, <span class='macro'>TERMINAL_PROFILE_PALETTE<span class='macro_popup'>"palette"</span></span>, &amp;value);</td></tr>
+<tr class="codeline" data-linenumber="1664"><td class="num" id="LN1664">1664</td><td class="line"> g_value_unset (&amp;value);</td></tr>
+<tr class="codeline" data-linenumber="1665"><td class="num" id="LN1665">1665</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1666"><td class="num" id="LN1666">1666</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1667"><td class="num" id="LN1667">1667</td><td class="line">gboolean</td></tr>
+<tr class="codeline" data-linenumber="1668"><td class="num" id="LN1668">1668</td><td class="line">terminal_profile_modify_palette_entry (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1669"><td class="num" id="LN1669">1669</td><td class="line"> guint i,</td></tr>
+<tr class="codeline" data-linenumber="1670"><td class="num" id="LN1670">1670</td><td class="line"> <span class='keyword'>const</span> GdkRGBA *color)</td></tr>
+<tr class="codeline" data-linenumber="1671"><td class="num" id="LN1671">1671</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1672"><td class="num" id="LN1672">1672</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1673"><td class="num" id="LN1673">1673</td><td class="line"> GValueArray *array;</td></tr>
+<tr class="codeline" data-linenumber="1674"><td class="num" id="LN1674">1674</td><td class="line"> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="1675"><td class="num" id="LN1675">1675</td><td class="line"> GdkRGBA *old_color;</td></tr>
+<tr class="codeline" data-linenumber="1676"><td class="num" id="LN1676">1676</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1677"><td class="num" id="LN1677">1677</td><td class="line"> array = g_value_get_boxed (g_value_array_get_nth (priv-&gt;properties, PROP_PALETTE));</td></tr>
+<tr class="codeline" data-linenumber="1678"><td class="num" id="LN1678">1678</td><td class="line"> <span class='keyword'>if</span> (!array ||</td></tr>
+<tr class="codeline" data-linenumber="1679"><td class="num" id="LN1679">1679</td><td class="line"> i &gt;= array-&gt;n_values)</td></tr>
+<tr class="codeline" data-linenumber="1680"><td class="num" id="LN1680">1680</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1681"><td class="num" id="LN1681">1681</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1682"><td class="num" id="LN1682">1682</td><td class="line"> value = g_value_array_get_nth (array, i);</td></tr>
+<tr class="codeline" data-linenumber="1683"><td class="num" id="LN1683">1683</td><td class="line"> old_color = g_value_get_boxed (value);</td></tr>
+<tr class="codeline" data-linenumber="1684"><td class="num" id="LN1684">1684</td><td class="line"> <span class='keyword'>if</span> (!old_color ||</td></tr>
+<tr class="codeline" data-linenumber="1685"><td class="num" id="LN1685">1685</td><td class="line"> !rgba_equal (old_color, color))</td></tr>
+<tr class="codeline" data-linenumber="1686"><td class="num" id="LN1686">1686</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1687"><td class="num" id="LN1687">1687</td><td class="line"> g_value_set_boxed (value, color);</td></tr>
+<tr class="codeline" data-linenumber="1688"><td class="num" id="LN1688">1688</td><td class="line"> g_object_notify (<span class='macro'>G_OBJECT (profile)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((profile)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, <span class='macro'>TERMINAL_PROFILE_PALETTE<span class='macro_popup'>"palette"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1689"><td class="num" id="LN1689">1689</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1690"><td class="num" id="LN1690">1690</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1691"><td class="num" id="LN1691">1691</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1692"><td class="num" id="LN1692">1692</td><td class="line">}</td></tr>
+</table></body></html>
diff --git a/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-792baf.html b/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-792baf.html
new file mode 100644
index 0000000..978d744
--- /dev/null
+++ b/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-792baf.html
@@ -0,0 +1,2385 @@
+<!doctype html>
+<html>
+<head>
+<title>terminal-profile.c</title>
+
+<style type="text/css">
+body { color:#000000; background-color:#ffffff }
+body { font-family:Helvetica, sans-serif; font-size:10pt }
+h1 { font-size:14pt }
+.FileName { margin-top: 5px; margin-bottom: 5px; display: inline; }
+.FileNav { margin-left: 5px; margin-right: 5px; display: inline; }
+.FileNav a { text-decoration:none; font-size: larger; }
+.divider { margin-top: 30px; margin-bottom: 30px; height: 15px; }
+.divider { background-color: gray; }
+.code { border-collapse:collapse; width:100%; }
+.code { font-family: "Monospace", monospace; font-size:10pt }
+.code { line-height: 1.2em }
+.comment { color: green; font-style: oblique }
+.keyword { color: blue }
+.string_literal { color: red }
+.directive { color: darkmagenta }
+
+/* Macros and variables could have pop-up notes hidden by default.
+ - Macro pop-up: expansion of the macro
+ - Variable pop-up: value (table) of the variable */
+.macro_popup, .variable_popup { display: none; }
+
+/* Pop-up appears on mouse-hover event. */
+.macro:hover .macro_popup, .variable:hover .variable_popup {
+ display: block;
+ padding: 2px;
+ -webkit-border-radius:5px;
+ -webkit-box-shadow:1px 1px 7px #000;
+ border-radius:5px;
+ box-shadow:1px 1px 7px #000;
+ position: absolute;
+ top: -1em;
+ left:10em;
+ z-index: 1
+}
+
+.macro_popup {
+ border: 2px solid red;
+ background-color:#FFF0F0;
+ font-weight: normal;
+}
+
+.variable_popup {
+ border: 2px solid blue;
+ background-color:#F0F0FF;
+ font-weight: bold;
+ font-family: Helvetica, sans-serif;
+ font-size: 9pt;
+}
+
+/* Pop-up notes needs a relative position as a base where they pops up. */
+.macro, .variable {
+ background-color: PaleGoldenRod;
+ position: relative;
+}
+.macro { color: DarkMagenta; }
+
+#tooltiphint {
+ position: fixed;
+ width: 50em;
+ margin-left: -25em;
+ left: 50%;
+ padding: 10px;
+ border: 1px solid #b0b0b0;
+ border-radius: 2px;
+ box-shadow: 1px 1px 7px black;
+ background-color: #c0c0c0;
+ z-index: 2;
+}
+
+.num { width:2.5em; padding-right:2ex; background-color:#eeeeee }
+.num { text-align:right; font-size:8pt }
+.num { color:#444444 }
+.line { padding-left: 1ex; border-left: 3px solid #ccc }
+.line { white-space: pre }
+.msg { -webkit-box-shadow:1px 1px 7px #000 }
+.msg { box-shadow:1px 1px 7px #000 }
+.msg { -webkit-border-radius:5px }
+.msg { border-radius:5px }
+.msg { font-family:Helvetica, sans-serif; font-size:8pt }
+.msg { float:left }
+.msg { position:relative }
+.msg { padding:0.25em 1ex 0.25em 1ex }
+.msg { margin-top:10px; margin-bottom:10px }
+.msg { font-weight:bold }
+.msg { max-width:60em; word-wrap: break-word; white-space: pre-wrap }
+.msgT { padding:0x; spacing:0x }
+.msgEvent { background-color:#fff8b4; color:#000000 }
+.msgControl { background-color:#bbbbbb; color:#000000 }
+.msgNote { background-color:#ddeeff; color:#000000 }
+.mrange { background-color:#dfddf3 }
+.mrange { border-bottom:1px solid #6F9DBE }
+.PathIndex { font-weight: bold; padding:0px 5px; margin-right:5px; }
+.PathIndex { -webkit-border-radius:8px }
+.PathIndex { border-radius:8px }
+.PathIndexEvent { background-color:#bfba87 }
+.PathIndexControl { background-color:#8c8c8c }
+.PathIndexPopUp { background-color: #879abc; }
+.PathNav a { text-decoration:none; font-size: larger }
+.CodeInsertionHint { font-weight: bold; background-color: #10dd10 }
+.CodeRemovalHint { background-color:#de1010 }
+.CodeRemovalHint { border-bottom:1px solid #6F9DBE }
+.msg.selected{ background-color:orange !important; }
+
+table.simpletable {
+ padding: 5px;
+ font-size:12pt;
+ margin:20px;
+ border-collapse: collapse; border-spacing: 0px;
+}
+td.rowname {
+ text-align: right;
+ vertical-align: top;
+ font-weight: bold;
+ color:#444444;
+ padding-right:2ex;
+}
+
+/* Hidden text. */
+input.spoilerhider + label {
+ cursor: pointer;
+ text-decoration: underline;
+ display: block;
+}
+input.spoilerhider {
+ display: none;
+}
+input.spoilerhider ~ .spoiler {
+ overflow: hidden;
+ margin: 10px auto 0;
+ height: 0;
+ opacity: 0;
+}
+input.spoilerhider:checked + label + .spoiler{
+ height: auto;
+ opacity: 1;
+}
+</style>
+</head>
+<body>
+<!-- BUGDESC Casting a non-structure type to a structure type and accessing a field can lead to memory access errors or data corruption -->
+
+<!-- BUGTYPE Cast from non-struct type to struct type -->
+
+<!-- BUGCATEGORY Logic error -->
+
+<!-- BUGFILE /rootdir/src/terminal-profile.c -->
+
+<!-- FILENAME terminal-profile.c -->
+
+<!-- FUNCTIONNAME terminal_profile_gsettings_notify_cb -->
+
+<!-- ISSUEHASHCONTENTOFLINEINCONTEXT 792bafb59890877fea5c00d7b9deaf36 -->
+
+<!-- BUGLINE 641 -->
+
+<!-- BUGCOLUMN 46 -->
+
+<!-- BUGPATHLENGTH 1 -->
+
+<!-- BUGMETAEND -->
+<!-- REPORTHEADER -->
+<h3>Bug Summary</h3>
+<table class="simpletable">
+<tr><td class="rowname">File:</td><td>terminal-profile.c</td></tr>
+<tr><td class="rowname">Warning:</td><td><a href="#EndPath">line 641, column 46</a><br />Casting a non-structure type to a structure type and accessing a field can lead to memory access errors or data corruption</td></tr>
+
+</table>
+<!-- REPORTSUMMARYEXTRA -->
+<h3>Annotated Source Code</h3>
+<p>Press <a href="#" onclick="toggleHelp(); return false;">'?'</a>
+ to see keyboard shortcuts</p>
+<input type="checkbox" class="spoilerhider" id="showinvocation" />
+<label for="showinvocation" >Show analyzer invocation</label>
+<div class="spoiler">clang -cc1 -cc1 -triple x86_64-redhat-linux-gnu -analyze -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name terminal-profile.c -analyzer-checker=core -analyzer-checker=apiModeling -analyzer-checker=unix -analyzer-checker=deadcode -analyzer-checker=security.insecureAPI.UncheckedReturn -analyzer-checker=security.insecureAPI.getpw -analyzer-checker=security.insecureAPI.gets -analyzer-checker=security.insecureAPI.mktemp -analyzer-checker=security.insecureAPI.mkstemp -analyzer-checker=security.insecureAPI.vfork -analyzer-checker=nullability.NullPassedToNonnull -analyzer-checker=nullability.NullReturnedFromNonnull -analyzer-output plist -w -setup-static-analyzer -mrelocation-model static -mframe-pointer=all -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -tune-cpu generic -debugger-tuning=gdb -fcoverage-compilation-dir=/rootdir/src -resource-dir /usr/bin/../lib/clang/17 -D HAVE_CONFIG_H -I . -I .. -I ../src/mate-submodules/libegg -D TERMINAL_COMPILATION -D TERMINAL_RESOURCES_PATH_PREFIX="/org/mate/terminal" -D TERM_DATADIR="/usr/local/share" -D TERM_LOCALEDIR="/usr/local/share/locale" -D TERM_PKGDATADIR="/usr/local/share/mate-terminal" -D TERM_HELPDIR="/usr/local/share/help" -D SN_API_NOT_YET_FROZEN -D GDK_MULTIHEAD_SAFE -D G_DISABLE_SINGLE_INCLUDES -D PANGO_DISABLE_SINGLE_INCLUDES -D ATK_DISABLE_SINGLE_INCLUDES -D GDK_DISABLE_SINGLE_INCLUDES -D GDK_PIXBUF_DISABLE_SINGLE_INCLUDES -D GTK_DISABLE_SINGLE_INCLUDES -I /usr/include/dconf -I /usr/include/vte-2.91 -I /usr/include/pango-1.0 -I /usr/include/gtk-3.0 -I /usr/include/gdk-pixbuf-2.0 -I /usr/include/cairo -I /usr/include/dbus-1.0 -I /usr/lib64/dbus-1.0/include -I /usr/include/atk-1.0 -I /usr/include/harfbuzz -I /usr/include/freetype2 -I /usr/include/glib-2.0 -I /usr/lib64/glib-2.0/include -I /usr/include/cloudproviders -I /usr/include/at-spi2-atk/2.0 -I /usr/include/at-spi-2.0 -I /usr/include/blkid -I /usr/include/gio-unix-2.0 -I /usr/include/pixman-1 -I /usr/include/libmount -I /usr/include/libxml2 -I /usr/include/fribidi -I /usr/include/libpng16 -I /usr/include/sysprof-6 -internal-isystem /usr/bin/../lib/clang/17/include -internal-isystem /usr/local/include -internal-isystem /usr/bin/../lib/gcc/x86_64-redhat-linux/13/../../../../x86_64-redhat-linux/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -Wno-unused-parameter -fdebug-compilation-dir=/rootdir/src -ferror-limit 19 -fgnuc-version=4.2.1 -analyzer-checker deadcode.DeadStores -analyzer-checker alpha.deadcode.UnreachableCode -analyzer-checker alpha.core.CastSize -analyzer-checker alpha.core.CastToStruct -analyzer-checker alpha.core.IdenticalExpr -analyzer-checker alpha.core.SizeofPtr -analyzer-checker alpha.security.ArrayBoundV2 -analyzer-checker alpha.security.MallocOverflow -analyzer-checker alpha.security.ReturnPtrRange -analyzer-checker alpha.unix.SimpleStream -analyzer-checker alpha.unix.cstring.BufferOverlap -analyzer-checker alpha.unix.cstring.NotNullTerminated -analyzer-checker alpha.unix.cstring.OutOfBounds -analyzer-checker alpha.core.FixedAddr -analyzer-checker security.insecureAPI.strcpy -analyzer-output=html -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /rootdir/html-report/2024-02-18-131424-5067-1 -x c terminal-profile.c
+</div>
+<div id='tooltiphint' hidden="true">
+ <p>Keyboard shortcuts: </p>
+ <ul>
+ <li>Use 'j/k' keys for keyboard navigation</li>
+ <li>Use 'Shift+S' to show/hide relevant lines</li>
+ <li>Use '?' to toggle this window</li>
+ </ul>
+ <a href="#" onclick="toggleHelp(); return false;">Close</a>
+</div>
+<script type='text/javascript'>
+var relevant_lines = {"1": {"641": 1}};
+
+var filterCounterexample = function (hide) {
+ var tables = document.getElementsByClassName("code");
+ for (var t=0; t<tables.length; t++) {
+ var table = tables[t];
+ var file_id = table.getAttribute("data-fileid");
+ var lines_in_fid = relevant_lines[file_id];
+ if (!lines_in_fid) {
+ lines_in_fid = {};
+ }
+ var lines = table.getElementsByClassName("codeline");
+ for (var i=0; i<lines.length; i++) {
+ var el = lines[i];
+ var lineNo = el.getAttribute("data-linenumber");
+ if (!lines_in_fid[lineNo]) {
+ if (hide) {
+ el.setAttribute("hidden", "");
+ } else {
+ el.removeAttribute("hidden");
+ }
+ }
+ }
+ }
+}
+
+window.addEventListener("keydown", function (event) {
+ if (event.defaultPrevented) {
+ return;
+ }
+ // SHIFT + S
+ if (event.shiftKey && event.keyCode == 83) {
+ var checked = document.getElementsByName("showCounterexample")[0].checked;
+ filterCounterexample(!checked);
+ document.getElementsByName("showCounterexample")[0].click();
+ } else {
+ return;
+ }
+ event.preventDefault();
+}, true);
+
+document.addEventListener("DOMContentLoaded", function() {
+ document.querySelector('input[name="showCounterexample"]').onchange=
+ function (event) {
+ filterCounterexample(this.checked);
+ };
+});
+</script>
+
+<form>
+ <input type="checkbox" name="showCounterexample" id="showCounterexample" />
+ <label for="showCounterexample">
+ Show only relevant lines
+ </label>
+ <input type="checkbox" name="showArrows"
+ id="showArrows" style="margin-left: 10px" />
+ <label for="showArrows">
+ Show control flow arrows
+ </label>
+</form>
+
+<script type='text/javascript'>
+// Return range of numbers from a range [lower, upper).
+function range(lower, upper) {
+ var array = [];
+ for (var i = lower; i <= upper; ++i) {
+ array.push(i);
+ }
+ return array;
+}
+
+var getRelatedArrowIndices = function(pathId) {
+ // HTML numeration of events is a bit different than it is in the path.
+ // Everything is rotated one step to the right, so the last element
+ // (error diagnostic) has index 0.
+ if (pathId == 0) {
+ // arrowIndices has at least 2 elements
+ pathId = arrowIndices.length - 1;
+ }
+
+ return range(arrowIndices[pathId], arrowIndices[pathId - 1]);
+}
+
+var highlightArrowsForSelectedEvent = function() {
+ const selectedNum = findNum();
+ const arrowIndicesToHighlight = getRelatedArrowIndices(selectedNum);
+ arrowIndicesToHighlight.forEach((index) => {
+ var arrow = document.querySelector("#arrow" + index);
+ if(arrow) {
+ classListAdd(arrow, "selected")
+ }
+ });
+}
+
+var getAbsoluteBoundingRect = function(element) {
+ const relative = element.getBoundingClientRect();
+ return {
+ left: relative.left + window.pageXOffset,
+ right: relative.right + window.pageXOffset,
+ top: relative.top + window.pageYOffset,
+ bottom: relative.bottom + window.pageYOffset,
+ height: relative.height,
+ width: relative.width
+ };
+}
+
+var drawArrow = function(index) {
+ // This function is based on the great answer from SO:
+ // https://stackoverflow.com/a/39575674/11582326
+ var start = document.querySelector("#start" + index);
+ var end = document.querySelector("#end" + index);
+ var arrow = document.querySelector("#arrow" + index);
+
+ var startRect = getAbsoluteBoundingRect(start);
+ var endRect = getAbsoluteBoundingRect(end);
+
+ // It is an arrow from a token to itself, no need to visualize it.
+ if (startRect.top == endRect.top &&
+ startRect.left == endRect.left)
+ return;
+
+ // Each arrow is a very simple Bézier curve, with two nodes and
+ // two handles. So, we need to calculate four points in the window:
+ // * start node
+ var posStart = { x: 0, y: 0 };
+ // * end node
+ var posEnd = { x: 0, y: 0 };
+ // * handle for the start node
+ var startHandle = { x: 0, y: 0 };
+ // * handle for the end node
+ var endHandle = { x: 0, y: 0 };
+ // One can visualize it as follows:
+ //
+ // start handle
+ // /
+ // X"""_.-""""X
+ // .' \
+ // / start node
+ // |
+ // |
+ // | end node
+ // \ /
+ // `->X
+ // X-'
+ // \
+ // end handle
+ //
+ // NOTE: (0, 0) is the top left corner of the window.
+
+ // We have 3 similar, but still different scenarios to cover:
+ //
+ // 1. Two tokens on different lines.
+ // -xxx
+ // /
+ // \
+ // -> xxx
+ // In this situation, we draw arrow on the left curving to the left.
+ // 2. Two tokens on the same line, and the destination is on the right.
+ // ____
+ // / \
+ // / V
+ // xxx xxx
+ // In this situation, we draw arrow above curving upwards.
+ // 3. Two tokens on the same line, and the destination is on the left.
+ // xxx xxx
+ // ^ /
+ // \____/
+ // In this situation, we draw arrow below curving downwards.
+ const onDifferentLines = startRect.top <= endRect.top - 5 ||
+ startRect.top >= endRect.top + 5;
+ const leftToRight = startRect.left < endRect.left;
+
+ // NOTE: various magic constants are chosen empirically for
+ // better positioning and look
+ if (onDifferentLines) {
+ // Case #1
+ const topToBottom = startRect.top < endRect.top;
+ posStart.x = startRect.left - 1;
+ // We don't want to start it at the top left corner of the token,
+ // it doesn't feel like this is where the arrow comes from.
+ // For this reason, we start it in the middle of the left side
+ // of the token.
+ posStart.y = startRect.top + startRect.height / 2;
+
+ // End node has arrow head and we give it a bit more space.
+ posEnd.x = endRect.left - 4;
+ posEnd.y = endRect.top;
+
+ // Utility object with x and y offsets for handles.
+ var curvature = {
+ // We want bottom-to-top arrow to curve a bit more, so it doesn't
+ // overlap much with top-to-bottom curves (much more frequent).
+ x: topToBottom ? 15 : 25,
+ y: Math.min((posEnd.y - posStart.y) / 3, 10)
+ }
+
+ // When destination is on the different line, we can make a
+ // curvier arrow because we have space for it.
+ // So, instead of using
+ //
+ // startHandle.x = posStart.x - curvature.x
+ // endHandle.x = posEnd.x - curvature.x
+ //
+ // We use the leftmost of these two values for both handles.
+ startHandle.x = Math.min(posStart.x, posEnd.x) - curvature.x;
+ endHandle.x = startHandle.x;
+
+ // Curving downwards from the start node...
+ startHandle.y = posStart.y + curvature.y;
+ // ... and upwards from the end node.
+ endHandle.y = posEnd.y - curvature.y;
+
+ } else if (leftToRight) {
+ // Case #2
+ // Starting from the top right corner...
+ posStart.x = startRect.right - 1;
+ posStart.y = startRect.top;
+
+ // ...and ending at the top left corner of the end token.
+ posEnd.x = endRect.left + 1;
+ posEnd.y = endRect.top - 1;
+
+ // Utility object with x and y offsets for handles.
+ var curvature = {
+ x: Math.min((posEnd.x - posStart.x) / 3, 15),
+ y: 5
+ }
+
+ // Curving to the right...
+ startHandle.x = posStart.x + curvature.x;
+ // ... and upwards from the start node.
+ startHandle.y = posStart.y - curvature.y;
+
+ // And to the left...
+ endHandle.x = posEnd.x - curvature.x;
+ // ... and upwards from the end node.
+ endHandle.y = posEnd.y - curvature.y;
+
+ } else {
+ // Case #3
+ // Starting from the bottom right corner...
+ posStart.x = startRect.right;
+ posStart.y = startRect.bottom;
+
+ // ...and ending also at the bottom right corner, but of the end token.
+ posEnd.x = endRect.right - 1;
+ posEnd.y = endRect.bottom + 1;
+
+ // Utility object with x and y offsets for handles.
+ var curvature = {
+ x: Math.min((posStart.x - posEnd.x) / 3, 15),
+ y: 5
+ }
+
+ // Curving to the left...
+ startHandle.x = posStart.x - curvature.x;
+ // ... and downwards from the start node.
+ startHandle.y = posStart.y + curvature.y;
+
+ // And to the right...
+ endHandle.x = posEnd.x + curvature.x;
+ // ... and downwards from the end node.
+ endHandle.y = posEnd.y + curvature.y;
+ }
+
+ // Put it all together into a path.
+ // More information on the format:
+ // https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths
+ var pathStr = "M" + posStart.x + "," + posStart.y + " " +
+ "C" + startHandle.x + "," + startHandle.y + " " +
+ endHandle.x + "," + endHandle.y + " " +
+ posEnd.x + "," + posEnd.y;
+
+ arrow.setAttribute("d", pathStr);
+};
+
+var drawArrows = function() {
+ const numOfArrows = document.querySelectorAll("path[id^=arrow]").length;
+ for (var i = 0; i < numOfArrows; ++i) {
+ drawArrow(i);
+ }
+}
+
+var toggleArrows = function(event) {
+ const arrows = document.querySelector("#arrows");
+ if (event.target.checked) {
+ arrows.setAttribute("visibility", "visible");
+ } else {
+ arrows.setAttribute("visibility", "hidden");
+ }
+}
+
+window.addEventListener("resize", drawArrows);
+document.addEventListener("DOMContentLoaded", function() {
+ // Whenever we show invocation, locations change, i.e. we
+ // need to redraw arrows.
+ document
+ .querySelector('input[id="showinvocation"]')
+ .addEventListener("click", drawArrows);
+ // Hiding irrelevant lines also should cause arrow rerender.
+ document
+ .querySelector('input[name="showCounterexample"]')
+ .addEventListener("change", drawArrows);
+ document
+ .querySelector('input[name="showArrows"]')
+ .addEventListener("change", toggleArrows);
+ drawArrows();
+ // Default highlighting for the last event.
+ highlightArrowsForSelectedEvent();
+});
+</script>
+
+<script type='text/javascript'>
+var digitMatcher = new RegExp("[0-9]+");
+
+var querySelectorAllArray = function(selector) {
+ return Array.prototype.slice.call(
+ document.querySelectorAll(selector));
+}
+
+document.addEventListener("DOMContentLoaded", function() {
+ querySelectorAllArray(".PathNav > a").forEach(
+ function(currentValue, currentIndex) {
+ var hrefValue = currentValue.getAttribute("href");
+ currentValue.onclick = function() {
+ scrollTo(document.querySelector(hrefValue));
+ return false;
+ };
+ });
+});
+
+var findNum = function() {
+ var s = document.querySelector(".msg.selected");
+ if (!s || s.id == "EndPath") {
+ return 0;
+ }
+ var out = parseInt(digitMatcher.exec(s.id)[0]);
+ return out;
+};
+
+var classListAdd = function(el, theClass) {
+ if(!el.className.baseVal)
+ el.className += " " + theClass;
+ else
+ el.className.baseVal += " " + theClass;
+};
+
+var classListRemove = function(el, theClass) {
+ var className = (!el.className.baseVal) ?
+ el.className : el.className.baseVal;
+ className = className.replace(" " + theClass, "");
+ if(!el.className.baseVal)
+ el.className = className;
+ else
+ el.className.baseVal = className;
+};
+
+var scrollTo = function(el) {
+ querySelectorAllArray(".selected").forEach(function(s) {
+ classListRemove(s, "selected");
+ });
+ classListAdd(el, "selected");
+ window.scrollBy(0, el.getBoundingClientRect().top -
+ (window.innerHeight / 2));
+ highlightArrowsForSelectedEvent();
+};
+
+var move = function(num, up, numItems) {
+ if (num == 1 && up || num == numItems - 1 && !up) {
+ return 0;
+ } else if (num == 0 && up) {
+ return numItems - 1;
+ } else if (num == 0 && !up) {
+ return 1 % numItems;
+ }
+ return up ? num - 1 : num + 1;
+}
+
+var numToId = function(num) {
+ if (num == 0) {
+ return document.getElementById("EndPath")
+ }
+ return document.getElementById("Path" + num);
+};
+
+var navigateTo = function(up) {
+ var numItems = document.querySelectorAll(
+ ".line > .msgEvent, .line > .msgControl").length;
+ var currentSelected = findNum();
+ var newSelected = move(currentSelected, up, numItems);
+ var newEl = numToId(newSelected, numItems);
+
+ // Scroll element into center.
+ scrollTo(newEl);
+};
+
+window.addEventListener("keydown", function (event) {
+ if (event.defaultPrevented) {
+ return;
+ }
+ // key 'j'
+ if (event.keyCode == 74) {
+ navigateTo(/*up=*/false);
+ // key 'k'
+ } else if (event.keyCode == 75) {
+ navigateTo(/*up=*/true);
+ } else {
+ return;
+ }
+ event.preventDefault();
+}, true);
+</script>
+
+<script type='text/javascript'>
+
+var toggleHelp = function() {
+ var hint = document.querySelector("#tooltiphint");
+ var attributeName = "hidden";
+ if (hint.hasAttribute(attributeName)) {
+ hint.removeAttribute(attributeName);
+ } else {
+ hint.setAttribute("hidden", "true");
+ }
+};
+window.addEventListener("keydown", function (event) {
+ if (event.defaultPrevented) {
+ return;
+ }
+ if (event.key == "?") {
+ toggleHelp();
+ } else {
+ return;
+ }
+ event.preventDefault();
+});
+</script>
+
+<style type="text/css">
+ svg {
+ position:absolute;
+ top:0;
+ left:0;
+ height:100%;
+ width:100%;
+ pointer-events: none;
+ overflow: visible
+ }
+ .arrow {
+ stroke-opacity: 0.2;
+ stroke-width: 1;
+ marker-end: url(#arrowhead);
+ }
+
+ .arrow.selected {
+ stroke-opacity: 0.6;
+ stroke-width: 2;
+ marker-end: url(#arrowheadSelected);
+ }
+
+ .arrowhead {
+ orient: auto;
+ stroke: none;
+ opacity: 0.6;
+ fill: blue;
+ }
+</style>
+<svg xmlns="http://www.w3.org/2000/svg">
+ <defs>
+ <marker id="arrowheadSelected" class="arrowhead" opacity="0.6"
+ viewBox="0 0 10 10" refX="3" refY="5"
+ markerWidth="4" markerHeight="4">
+ <path d="M 0 0 L 10 5 L 0 10 z" />
+ </marker>
+ <marker id="arrowhead" class="arrowhead" opacity="0.2"
+ viewBox="0 0 10 10" refX="3" refY="5"
+ markerWidth="4" markerHeight="4">
+ <path d="M 0 0 L 10 5 L 0 10 z" />
+ </marker>
+ </defs>
+ <g id="arrows" fill="none" stroke="blue" visibility="hidden">
+
+ </g>
+</svg>
+<script type='text/javascript'>
+const arrowIndices = [ 0,0 ]
+</script>
+<table class="code" data-fileid="1">
+<tr class="codeline" data-linenumber="1"><td class="num" id="LN1">1</td><td class="line"><span class='comment'>/*</span></td></tr>
+<tr class="codeline" data-linenumber="2"><td class="num" id="LN2">2</td><td class="line"> <span class='comment'>* Copyright © 2001 Havoc Pennington</span></td></tr>
+<tr class="codeline" data-linenumber="3"><td class="num" id="LN3">3</td><td class="line"> <span class='comment'>* Copyright © 2002 Mathias Hasselmann</span></td></tr>
+<tr class="codeline" data-linenumber="4"><td class="num" id="LN4">4</td><td class="line"> <span class='comment'>* Copyright © 2008 Christian Persch</span></td></tr>
+<tr class="codeline" data-linenumber="5"><td class="num" id="LN5">5</td><td class="line"> <span class='comment'>* Copyright (C) 2012-2021 MATE Developers</span></td></tr>
+<tr class="codeline" data-linenumber="6"><td class="num" id="LN6">6</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="7"><td class="num" id="LN7">7</td><td class="line"> <span class='comment'>* Mate-terminal is free software; you can redistribute it and/or modify</span></td></tr>
+<tr class="codeline" data-linenumber="8"><td class="num" id="LN8">8</td><td class="line"> <span class='comment'>* it under the terms of the GNU General Public License as published by</span></td></tr>
+<tr class="codeline" data-linenumber="9"><td class="num" id="LN9">9</td><td class="line"> <span class='comment'>* the Free Software Foundation; either version 3 of the License, or</span></td></tr>
+<tr class="codeline" data-linenumber="10"><td class="num" id="LN10">10</td><td class="line"> <span class='comment'>* (at your option) any later version.</span></td></tr>
+<tr class="codeline" data-linenumber="11"><td class="num" id="LN11">11</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="12"><td class="num" id="LN12">12</td><td class="line"> <span class='comment'>* Mate-terminal is distributed in the hope that it will be useful,</span></td></tr>
+<tr class="codeline" data-linenumber="13"><td class="num" id="LN13">13</td><td class="line"> <span class='comment'>* but WITHOUT ANY WARRANTY; without even the implied warranty of</span></td></tr>
+<tr class="codeline" data-linenumber="14"><td class="num" id="LN14">14</td><td class="line"> <span class='comment'>* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></td></tr>
+<tr class="codeline" data-linenumber="15"><td class="num" id="LN15">15</td><td class="line"> <span class='comment'>* GNU General Public License for more details.</span></td></tr>
+<tr class="codeline" data-linenumber="16"><td class="num" id="LN16">16</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="17"><td class="num" id="LN17">17</td><td class="line"> <span class='comment'>* You should have received a copy of the GNU General Public License</span></td></tr>
+<tr class="codeline" data-linenumber="18"><td class="num" id="LN18">18</td><td class="line"> <span class='comment'>* along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.</span></td></tr>
+<tr class="codeline" data-linenumber="19"><td class="num" id="LN19">19</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="20"><td class="num" id="LN20">20</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="21"><td class="num" id="LN21">21</td><td class="line"><span class='directive'>#include &lt;config.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="22"><td class="num" id="LN22">22</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="23"><td class="num" id="LN23">23</td><td class="line"><span class='directive'>#include &lt;string.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="24"><td class="num" id="LN24">24</td><td class="line"><span class='directive'>#include &lt;stdlib.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="25"><td class="num" id="LN25">25</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="26"><td class="num" id="LN26">26</td><td class="line"><span class='directive'>#include &lt;gtk/gtk.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="27"><td class="num" id="LN27">27</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="28"><td class="num" id="LN28">28</td><td class="line"><span class='directive'>#include "terminal-app.h"</span></td></tr>
+<tr class="codeline" data-linenumber="29"><td class="num" id="LN29">29</td><td class="line"><span class='directive'>#include "terminal-debug.h"</span></td></tr>
+<tr class="codeline" data-linenumber="30"><td class="num" id="LN30">30</td><td class="line"><span class='directive'>#include "terminal-intl.h"</span></td></tr>
+<tr class="codeline" data-linenumber="31"><td class="num" id="LN31">31</td><td class="line"><span class='directive'>#include "terminal-profile.h"</span></td></tr>
+<tr class="codeline" data-linenumber="32"><td class="num" id="LN32">32</td><td class="line"><span class='directive'>#include "terminal-screen.h"</span></td></tr>
+<tr class="codeline" data-linenumber="33"><td class="num" id="LN33">33</td><td class="line"><span class='directive'>#include "terminal-type-builtins.h"</span></td></tr>
+<tr class="codeline" data-linenumber="34"><td class="num" id="LN34">34</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="35"><td class="num" id="LN35">35</td><td class="line"><span class='comment'>/* To add a new key, you need to:</span></td></tr>
+<tr class="codeline" data-linenumber="36"><td class="num" id="LN36">36</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="37"><td class="num" id="LN37">37</td><td class="line"> <span class='comment'>* - add an entry to the enum below</span></td></tr>
+<tr class="codeline" data-linenumber="38"><td class="num" id="LN38">38</td><td class="line"> <span class='comment'>* - add a #define with its name in terminal-profile.h</span></td></tr>
+<tr class="codeline" data-linenumber="39"><td class="num" id="LN39">39</td><td class="line"> <span class='comment'>* - add a gobject property for it in terminal_profile_class_init</span></td></tr>
+<tr class="codeline" data-linenumber="40"><td class="num" id="LN40">40</td><td class="line"> <span class='comment'>* - if the property's type needs special casing, add that to</span></td></tr>
+<tr class="codeline" data-linenumber="41"><td class="num" id="LN41">41</td><td class="line"> <span class='comment'>* terminal_profile_gsettings_notify_cb and</span></td></tr>
+<tr class="codeline" data-linenumber="42"><td class="num" id="LN42">42</td><td class="line"> <span class='comment'>* terminal_profile_gsettings_changeset_add</span></td></tr>
+<tr class="codeline" data-linenumber="43"><td class="num" id="LN43">43</td><td class="line"> <span class='comment'>* - if necessary the default value cannot be handled via the paramspec,</span></td></tr>
+<tr class="codeline" data-linenumber="44"><td class="num" id="LN44">44</td><td class="line"> <span class='comment'>* handle that in terminal_profile_reset_property_internal</span></td></tr>
+<tr class="codeline" data-linenumber="45"><td class="num" id="LN45">45</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="46"><td class="num" id="LN46">46</td><td class="line"><span class='keyword'>enum</span></td></tr>
+<tr class="codeline" data-linenumber="47"><td class="num" id="LN47">47</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="48"><td class="num" id="LN48">48</td><td class="line"> PROP_0,</td></tr>
+<tr class="codeline" data-linenumber="49"><td class="num" id="LN49">49</td><td class="line"> PROP_ALLOW_BOLD,</td></tr>
+<tr class="codeline" data-linenumber="50"><td class="num" id="LN50">50</td><td class="line"> PROP_BACKGROUND_COLOR,</td></tr>
+<tr class="codeline" data-linenumber="51"><td class="num" id="LN51">51</td><td class="line"> PROP_BACKGROUND_DARKNESS,</td></tr>
+<tr class="codeline" data-linenumber="52"><td class="num" id="LN52">52</td><td class="line"> PROP_BACKGROUND_IMAGE,</td></tr>
+<tr class="codeline" data-linenumber="53"><td class="num" id="LN53">53</td><td class="line"> PROP_BACKGROUND_IMAGE_FILE,</td></tr>
+<tr class="codeline" data-linenumber="54"><td class="num" id="LN54">54</td><td class="line"> PROP_BACKGROUND_TYPE,</td></tr>
+<tr class="codeline" data-linenumber="55"><td class="num" id="LN55">55</td><td class="line"> PROP_BACKSPACE_BINDING,</td></tr>
+<tr class="codeline" data-linenumber="56"><td class="num" id="LN56">56</td><td class="line"> PROP_BOLD_COLOR,</td></tr>
+<tr class="codeline" data-linenumber="57"><td class="num" id="LN57">57</td><td class="line"> PROP_BOLD_COLOR_SAME_AS_FG,</td></tr>
+<tr class="codeline" data-linenumber="58"><td class="num" id="LN58">58</td><td class="line"> PROP_CURSOR_BLINK_MODE,</td></tr>
+<tr class="codeline" data-linenumber="59"><td class="num" id="LN59">59</td><td class="line"> PROP_CURSOR_SHAPE,</td></tr>
+<tr class="codeline" data-linenumber="60"><td class="num" id="LN60">60</td><td class="line"> PROP_CUSTOM_COMMAND,</td></tr>
+<tr class="codeline" data-linenumber="61"><td class="num" id="LN61">61</td><td class="line"> PROP_DEFAULT_SIZE_COLUMNS,</td></tr>
+<tr class="codeline" data-linenumber="62"><td class="num" id="LN62">62</td><td class="line"> PROP_DEFAULT_SIZE_ROWS,</td></tr>
+<tr class="codeline" data-linenumber="63"><td class="num" id="LN63">63</td><td class="line"> PROP_DEFAULT_SHOW_MENUBAR,</td></tr>
+<tr class="codeline" data-linenumber="64"><td class="num" id="LN64">64</td><td class="line"> PROP_DELETE_BINDING,</td></tr>
+<tr class="codeline" data-linenumber="65"><td class="num" id="LN65">65</td><td class="line"> PROP_EXIT_ACTION,</td></tr>
+<tr class="codeline" data-linenumber="66"><td class="num" id="LN66">66</td><td class="line"> PROP_FONT,</td></tr>
+<tr class="codeline" data-linenumber="67"><td class="num" id="LN67">67</td><td class="line"> PROP_FOREGROUND_COLOR,</td></tr>
+<tr class="codeline" data-linenumber="68"><td class="num" id="LN68">68</td><td class="line"> PROP_LOGIN_SHELL,</td></tr>
+<tr class="codeline" data-linenumber="69"><td class="num" id="LN69">69</td><td class="line"> PROP_NAME,</td></tr>
+<tr class="codeline" data-linenumber="70"><td class="num" id="LN70">70</td><td class="line"> PROP_PALETTE,</td></tr>
+<tr class="codeline" data-linenumber="71"><td class="num" id="LN71">71</td><td class="line"> PROP_SCROLL_BACKGROUND,</td></tr>
+<tr class="codeline" data-linenumber="72"><td class="num" id="LN72">72</td><td class="line"> PROP_SCROLLBACK_LINES,</td></tr>
+<tr class="codeline" data-linenumber="73"><td class="num" id="LN73">73</td><td class="line"> PROP_SCROLLBACK_UNLIMITED,</td></tr>
+<tr class="codeline" data-linenumber="74"><td class="num" id="LN74">74</td><td class="line"> PROP_SCROLLBAR_POSITION,</td></tr>
+<tr class="codeline" data-linenumber="75"><td class="num" id="LN75">75</td><td class="line"> PROP_SCROLL_ON_KEYSTROKE,</td></tr>
+<tr class="codeline" data-linenumber="76"><td class="num" id="LN76">76</td><td class="line"> PROP_SCROLL_ON_OUTPUT,</td></tr>
+<tr class="codeline" data-linenumber="77"><td class="num" id="LN77">77</td><td class="line"> PROP_SILENT_BELL,</td></tr>
+<tr class="codeline" data-linenumber="78"><td class="num" id="LN78">78</td><td class="line"> PROP_TITLE,</td></tr>
+<tr class="codeline" data-linenumber="79"><td class="num" id="LN79">79</td><td class="line"> PROP_TITLE_MODE,</td></tr>
+<tr class="codeline" data-linenumber="80"><td class="num" id="LN80">80</td><td class="line"> PROP_USE_CUSTOM_COMMAND,</td></tr>
+<tr class="codeline" data-linenumber="81"><td class="num" id="LN81">81</td><td class="line"> PROP_USE_CUSTOM_DEFAULT_SIZE,</td></tr>
+<tr class="codeline" data-linenumber="82"><td class="num" id="LN82">82</td><td class="line"> PROP_USE_SKEY,</td></tr>
+<tr class="codeline" data-linenumber="83"><td class="num" id="LN83">83</td><td class="line"> PROP_USE_URLS,</td></tr>
+<tr class="codeline" data-linenumber="84"><td class="num" id="LN84">84</td><td class="line"> PROP_USE_SYSTEM_FONT,</td></tr>
+<tr class="codeline" data-linenumber="85"><td class="num" id="LN85">85</td><td class="line"> PROP_USE_THEME_COLORS,</td></tr>
+<tr class="codeline" data-linenumber="86"><td class="num" id="LN86">86</td><td class="line"> PROP_VISIBLE_NAME,</td></tr>
+<tr class="codeline" data-linenumber="87"><td class="num" id="LN87">87</td><td class="line"> PROP_WORD_CHARS,</td></tr>
+<tr class="codeline" data-linenumber="88"><td class="num" id="LN88">88</td><td class="line"> PROP_COPY_SELECTION,</td></tr>
+<tr class="codeline" data-linenumber="89"><td class="num" id="LN89">89</td><td class="line"> LAST_PROP</td></tr>
+<tr class="codeline" data-linenumber="90"><td class="num" id="LN90">90</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="91"><td class="num" id="LN91">91</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="92"><td class="num" id="LN92">92</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_ALLOW_BOLD<span class='macro_popup'>"allow-bold"</span></span> "allow-bold"</span></td></tr>
+<tr class="codeline" data-linenumber="93"><td class="num" id="LN93">93</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_BACKGROUND_COLOR<span class='macro_popup'>"background-color"</span></span> "background-color"</span></td></tr>
+<tr class="codeline" data-linenumber="94"><td class="num" id="LN94">94</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_BACKGROUND_DARKNESS<span class='macro_popup'>"background-darkness"</span></span> "background-darkness"</span></td></tr>
+<tr class="codeline" data-linenumber="95"><td class="num" id="LN95">95</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_BACKGROUND_IMAGE_FILE<span class='macro_popup'>"background-image"</span></span> "background-image"</span></td></tr>
+<tr class="codeline" data-linenumber="96"><td class="num" id="LN96">96</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_BACKGROUND_TYPE<span class='macro_popup'>"background-type"</span></span> "background-type"</span></td></tr>
+<tr class="codeline" data-linenumber="97"><td class="num" id="LN97">97</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_BACKSPACE_BINDING<span class='macro_popup'>"backspace-binding"</span></span> "backspace-binding"</span></td></tr>
+<tr class="codeline" data-linenumber="98"><td class="num" id="LN98">98</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_BOLD_COLOR<span class='macro_popup'>"bold-color"</span></span> "bold-color"</span></td></tr>
+<tr class="codeline" data-linenumber="99"><td class="num" id="LN99">99</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_BOLD_COLOR_SAME_AS_FG<span class='macro_popup'>"bold-color-same-as-fg"</span></span> "bold-color-same-as-fg"</span></td></tr>
+<tr class="codeline" data-linenumber="100"><td class="num" id="LN100">100</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_CURSOR_BLINK_MODE<span class='macro_popup'>"cursor-blink-mode"</span></span> "cursor-blink-mode"</span></td></tr>
+<tr class="codeline" data-linenumber="101"><td class="num" id="LN101">101</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_CURSOR_SHAPE<span class='macro_popup'>"cursor-shape"</span></span> "cursor-shape"</span></td></tr>
+<tr class="codeline" data-linenumber="102"><td class="num" id="LN102">102</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_CUSTOM_COMMAND<span class='macro_popup'>"custom-command"</span></span> "custom-command"</span></td></tr>
+<tr class="codeline" data-linenumber="103"><td class="num" id="LN103">103</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_DEFAULT_SHOW_MENUBAR<span class='macro_popup'>"default-show-menubar"</span></span> "default-show-menubar"</span></td></tr>
+<tr class="codeline" data-linenumber="104"><td class="num" id="LN104">104</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_DEFAULT_SIZE_COLUMNS<span class='macro_popup'>"default-size-columns"</span></span> "default-size-columns"</span></td></tr>
+<tr class="codeline" data-linenumber="105"><td class="num" id="LN105">105</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_DEFAULT_SIZE_ROWS<span class='macro_popup'>"default-size-rows"</span></span> "default-size-rows"</span></td></tr>
+<tr class="codeline" data-linenumber="106"><td class="num" id="LN106">106</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_DELETE_BINDING<span class='macro_popup'>"delete-binding"</span></span> "delete-binding"</span></td></tr>
+<tr class="codeline" data-linenumber="107"><td class="num" id="LN107">107</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_EXIT_ACTION<span class='macro_popup'>"exit-action"</span></span> "exit-action"</span></td></tr>
+<tr class="codeline" data-linenumber="108"><td class="num" id="LN108">108</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_FONT<span class='macro_popup'>"font"</span></span> "font"</span></td></tr>
+<tr class="codeline" data-linenumber="109"><td class="num" id="LN109">109</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_FOREGROUND_COLOR<span class='macro_popup'>"foreground-color"</span></span> "foreground-color"</span></td></tr>
+<tr class="codeline" data-linenumber="110"><td class="num" id="LN110">110</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_LOGIN_SHELL<span class='macro_popup'>"login-shell"</span></span> "login-shell"</span></td></tr>
+<tr class="codeline" data-linenumber="111"><td class="num" id="LN111">111</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_PALETTE<span class='macro_popup'>"palette"</span></span> "palette"</span></td></tr>
+<tr class="codeline" data-linenumber="112"><td class="num" id="LN112">112</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_SCROLL_BACKGROUND<span class='macro_popup'>"scroll-background"</span></span> "scroll-background"</span></td></tr>
+<tr class="codeline" data-linenumber="113"><td class="num" id="LN113">113</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_SCROLLBACK_LINES<span class='macro_popup'>"scrollback-lines"</span></span> "scrollback-lines"</span></td></tr>
+<tr class="codeline" data-linenumber="114"><td class="num" id="LN114">114</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_SCROLLBACK_UNLIMITED<span class='macro_popup'>"scrollback-unlimited"</span></span> "scrollback-unlimited"</span></td></tr>
+<tr class="codeline" data-linenumber="115"><td class="num" id="LN115">115</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_SCROLLBAR_POSITION<span class='macro_popup'>"scrollbar-position"</span></span> "scrollbar-position"</span></td></tr>
+<tr class="codeline" data-linenumber="116"><td class="num" id="LN116">116</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_SCROLL_ON_KEYSTROKE<span class='macro_popup'>"scroll-on-keystroke"</span></span> "scroll-on-keystroke"</span></td></tr>
+<tr class="codeline" data-linenumber="117"><td class="num" id="LN117">117</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_SCROLL_ON_OUTPUT<span class='macro_popup'>"scroll-on-output"</span></span> "scroll-on-output"</span></td></tr>
+<tr class="codeline" data-linenumber="118"><td class="num" id="LN118">118</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_SILENT_BELL<span class='macro_popup'>"silent-bell"</span></span> "silent-bell"</span></td></tr>
+<tr class="codeline" data-linenumber="119"><td class="num" id="LN119">119</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_COPY_SELECTION<span class='macro_popup'>"copy-selection"</span></span> "copy-selection"</span></td></tr>
+<tr class="codeline" data-linenumber="120"><td class="num" id="LN120">120</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_TITLE_MODE<span class='macro_popup'>"title-mode"</span></span> "title-mode"</span></td></tr>
+<tr class="codeline" data-linenumber="121"><td class="num" id="LN121">121</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_TITLE<span class='macro_popup'>"title"</span></span> "title"</span></td></tr>
+<tr class="codeline" data-linenumber="122"><td class="num" id="LN122">122</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_USE_CUSTOM_COMMAND<span class='macro_popup'>"use-custom-command"</span></span> "use-custom-command"</span></td></tr>
+<tr class="codeline" data-linenumber="123"><td class="num" id="LN123">123</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_USE_CUSTOM_DEFAULT_SIZE<span class='macro_popup'>"use-custom-default-size"</span></span> "use-custom-default-size"</span></td></tr>
+<tr class="codeline" data-linenumber="124"><td class="num" id="LN124">124</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_USE_SKEY<span class='macro_popup'>"use-skey"</span></span> "use-skey"</span></td></tr>
+<tr class="codeline" data-linenumber="125"><td class="num" id="LN125">125</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_USE_URLS<span class='macro_popup'>"use-urls"</span></span> "use-urls"</span></td></tr>
+<tr class="codeline" data-linenumber="126"><td class="num" id="LN126">126</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_USE_SYSTEM_FONT<span class='macro_popup'>"use-system-font"</span></span> "use-system-font"</span></td></tr>
+<tr class="codeline" data-linenumber="127"><td class="num" id="LN127">127</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_USE_THEME_COLORS<span class='macro_popup'>"use-theme-colors"</span></span> "use-theme-colors"</span></td></tr>
+<tr class="codeline" data-linenumber="128"><td class="num" id="LN128">128</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_VISIBLE_NAME<span class='macro_popup'>"visible-name"</span></span> "visible-name"</span></td></tr>
+<tr class="codeline" data-linenumber="129"><td class="num" id="LN129">129</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_WORD_CHARS<span class='macro_popup'>"word-chars"</span></span> "word-chars"</span></td></tr>
+<tr class="codeline" data-linenumber="130"><td class="num" id="LN130">130</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="131"><td class="num" id="LN131">131</td><td class="line"><span class='comment'>/* Keep these in sync with the GSettings schema! */</span></td></tr>
+<tr class="codeline" data-linenumber="132"><td class="num" id="LN132">132</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_ALLOW_BOLD<span class='macro_popup'>((!(0)))</span></span> (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="133"><td class="num" id="LN133">133</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_BACKGROUND_COLOR<span class='macro_popup'>("#FFFFDD")</span></span> ("#FFFFDD")</span></td></tr>
+<tr class="codeline" data-linenumber="134"><td class="num" id="LN134">134</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_BOLD_COLOR_SAME_AS_FG<span class='macro_popup'>((!(0)))</span></span> (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="135"><td class="num" id="LN135">135</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_BACKGROUND_DARKNESS<span class='macro_popup'>(0.5)</span></span> (0.5)</span></td></tr>
+<tr class="codeline" data-linenumber="136"><td class="num" id="LN136">136</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_BACKGROUND_IMAGE_FILE<span class='macro_popup'>("")</span></span> ("")</span></td></tr>
+<tr class="codeline" data-linenumber="137"><td class="num" id="LN137">137</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_BACKGROUND_TYPE<span class='macro_popup'>(TERMINAL_BACKGROUND_SOLID)</span></span> (TERMINAL_BACKGROUND_SOLID)</span></td></tr>
+<tr class="codeline" data-linenumber="138"><td class="num" id="LN138">138</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_BACKSPACE_BINDING<span class='macro_popup'>(VTE_ERASE_ASCII_DELETE)</span></span> (VTE_ERASE_ASCII_DELETE)</span></td></tr>
+<tr class="codeline" data-linenumber="139"><td class="num" id="LN139">139</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_CURSOR_BLINK_MODE<span class='macro_popup'>(VTE_CURSOR_BLINK_SYSTEM)</span></span> (VTE_CURSOR_BLINK_SYSTEM)</span></td></tr>
+<tr class="codeline" data-linenumber="140"><td class="num" id="LN140">140</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_CURSOR_SHAPE<span class='macro_popup'>(VTE_CURSOR_SHAPE_BLOCK)</span></span> (VTE_CURSOR_SHAPE_BLOCK)</span></td></tr>
+<tr class="codeline" data-linenumber="141"><td class="num" id="LN141">141</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_CUSTOM_COMMAND<span class='macro_popup'>("")</span></span> ("")</span></td></tr>
+<tr class="codeline" data-linenumber="142"><td class="num" id="LN142">142</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_DEFAULT_SHOW_MENUBAR<span class='macro_popup'>((!(0)))</span></span> (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="143"><td class="num" id="LN143">143</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_DEFAULT_SIZE_COLUMNS<span class='macro_popup'>(80)</span></span> (80)</span></td></tr>
+<tr class="codeline" data-linenumber="144"><td class="num" id="LN144">144</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_DEFAULT_SIZE_ROWS<span class='macro_popup'>(24)</span></span> (24)</span></td></tr>
+<tr class="codeline" data-linenumber="145"><td class="num" id="LN145">145</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_DELETE_BINDING<span class='macro_popup'>(VTE_ERASE_DELETE_SEQUENCE)</span></span> (VTE_ERASE_DELETE_SEQUENCE)</span></td></tr>
+<tr class="codeline" data-linenumber="146"><td class="num" id="LN146">146</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_EXIT_ACTION<span class='macro_popup'>(TERMINAL_EXIT_CLOSE)</span></span> (TERMINAL_EXIT_CLOSE)</span></td></tr>
+<tr class="codeline" data-linenumber="147"><td class="num" id="LN147">147</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_FONT<span class='macro_popup'>("Monospace 12")</span></span> ("Monospace 12")</span></td></tr>
+<tr class="codeline" data-linenumber="148"><td class="num" id="LN148">148</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_FOREGROUND_COLOR<span class='macro_popup'>("#000000")</span></span> ("#000000")</span></td></tr>
+<tr class="codeline" data-linenumber="149"><td class="num" id="LN149">149</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_LOGIN_SHELL<span class='macro_popup'>((0))</span></span> (<span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="150"><td class="num" id="LN150">150</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_NAME<span class='macro_popup'>(((void*)0))</span></span> (<span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="151"><td class="num" id="LN151">151</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_PALETTE<span class='macro_popup'>(terminal_palettes[0])</span></span> (terminal_palettes[<span class='macro'>TERMINAL_PALETTE_TANGO<span class='macro_popup'>0</span></span>])</span></td></tr>
+<tr class="codeline" data-linenumber="152"><td class="num" id="LN152">152</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_SCROLL_BACKGROUND<span class='macro_popup'>((!(0)))</span></span> (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="153"><td class="num" id="LN153">153</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_SCROLLBACK_LINES<span class='macro_popup'>(512)</span></span> (512)</span></td></tr>
+<tr class="codeline" data-linenumber="154"><td class="num" id="LN154">154</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_SCROLLBACK_UNLIMITED<span class='macro_popup'>((0))</span></span> (<span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="155"><td class="num" id="LN155">155</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_SCROLLBAR_POSITION<span class='macro_popup'>(TERMINAL_SCROLLBAR_RIGHT)</span></span> (TERMINAL_SCROLLBAR_RIGHT)</span></td></tr>
+<tr class="codeline" data-linenumber="156"><td class="num" id="LN156">156</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_SCROLL_ON_KEYSTROKE<span class='macro_popup'>((!(0)))</span></span> (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="157"><td class="num" id="LN157">157</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_SCROLL_ON_OUTPUT<span class='macro_popup'>((0))</span></span> (<span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="158"><td class="num" id="LN158">158</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_SILENT_BELL<span class='macro_popup'>((0))</span></span> (<span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="159"><td class="num" id="LN159">159</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_COPY_SELECTION<span class='macro_popup'>((0))</span></span> (<span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="160"><td class="num" id="LN160">160</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_TITLE_MODE<span class='macro_popup'>(TERMINAL_TITLE_REPLACE)</span></span> (TERMINAL_TITLE_REPLACE)</span></td></tr>
+<tr class="codeline" data-linenumber="161"><td class="num" id="LN161">161</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_TITLE<span class='macro_popup'>(("Terminal"))</span></span> (<span class='macro'>N_("Terminal")<span class='macro_popup'>("Terminal")</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="162"><td class="num" id="LN162">162</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_USE_CUSTOM_COMMAND<span class='macro_popup'>((0))</span></span> (<span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="163"><td class="num" id="LN163">163</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_USE_CUSTOM_DEFAULT_SIZE<span class='macro_popup'>((0))</span></span> (<span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="164"><td class="num" id="LN164">164</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_USE_SKEY<span class='macro_popup'>((!(0)))</span></span> (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="165"><td class="num" id="LN165">165</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_USE_URLS<span class='macro_popup'>((!(0)))</span></span> (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="166"><td class="num" id="LN166">166</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_USE_SYSTEM_FONT<span class='macro_popup'>((!(0)))</span></span> (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="167"><td class="num" id="LN167">167</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_USE_THEME_COLORS<span class='macro_popup'>((!(0)))</span></span> (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="168"><td class="num" id="LN168">168</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_VISIBLE_NAME<span class='macro_popup'>(("Unnamed"))</span></span> (<span class='macro'>N_("Unnamed")<span class='macro_popup'>("Unnamed")</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="169"><td class="num" id="LN169">169</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_WORD_CHARS<span class='macro_popup'>("-A-Za-z0-9,./?%&amp;#:_=+@~")</span></span> ("-A-Za-z0-9,./?%&amp;#:_=+@~")</span></td></tr>
+<tr class="codeline" data-linenumber="170"><td class="num" id="LN170">170</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="171"><td class="num" id="LN171">171</td><td class="line"><span class='keyword'>struct</span> _TerminalProfilePrivate</td></tr>
+<tr class="codeline" data-linenumber="172"><td class="num" id="LN172">172</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="173"><td class="num" id="LN173">173</td><td class="line"> GValueArray *properties;</td></tr>
+<tr class="codeline" data-linenumber="174"><td class="num" id="LN174">174</td><td class="line"> gboolean *locked;</td></tr>
+<tr class="codeline" data-linenumber="175"><td class="num" id="LN175">175</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="176"><td class="num" id="LN176">176</td><td class="line"> GSettings *settings;</td></tr>
+<tr class="codeline" data-linenumber="177"><td class="num" id="LN177">177</td><td class="line"> <span class='keyword'>char</span> *profile_dir;</td></tr>
+<tr class="codeline" data-linenumber="178"><td class="num" id="LN178">178</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="179"><td class="num" id="LN179">179</td><td class="line"> GSList *dirty_pspecs;</td></tr>
+<tr class="codeline" data-linenumber="180"><td class="num" id="LN180">180</td><td class="line"> guint save_idle_id;</td></tr>
+<tr class="codeline" data-linenumber="181"><td class="num" id="LN181">181</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="182"><td class="num" id="LN182">182</td><td class="line"> GParamSpec *gsettings_notification_pspec;</td></tr>
+<tr class="codeline" data-linenumber="183"><td class="num" id="LN183">183</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="184"><td class="num" id="LN184">184</td><td class="line"> gboolean background_load_failed;</td></tr>
+<tr class="codeline" data-linenumber="185"><td class="num" id="LN185">185</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="186"><td class="num" id="LN186">186</td><td class="line"> guint forgotten : 1;</td></tr>
+<tr class="codeline" data-linenumber="187"><td class="num" id="LN187">187</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="188"><td class="num" id="LN188">188</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="189"><td class="num" id="LN189">189</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>const</span> GdkRGBA terminal_palettes[<span class='macro'>TERMINAL_PALETTE_N_BUILTINS<span class='macro_popup'>5</span></span>][<span class='macro'>TERMINAL_PALETTE_SIZE<span class='macro_popup'>16</span></span>] =</td></tr>
+<tr class="codeline" data-linenumber="190"><td class="num" id="LN190">190</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="191"><td class="num" id="LN191">191</td><td class="line"> <span class='comment'>/* Tango palette */</span></td></tr>
+<tr class="codeline" data-linenumber="192"><td class="num" id="LN192">192</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="193"><td class="num" id="LN193">193</td><td class="line"> { 0, 0, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="194"><td class="num" id="LN194">194</td><td class="line"> { 0.8, 0, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="195"><td class="num" id="LN195">195</td><td class="line"> { 0.305882, 0.603922, 0.0235294, 1 },</td></tr>
+<tr class="codeline" data-linenumber="196"><td class="num" id="LN196">196</td><td class="line"> { 0.768627, 0.627451, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="197"><td class="num" id="LN197">197</td><td class="line"> { 0.203922, 0.396078, 0.643137, 1 },</td></tr>
+<tr class="codeline" data-linenumber="198"><td class="num" id="LN198">198</td><td class="line"> { 0.458824, 0.313725, 0.482353, 1 },</td></tr>
+<tr class="codeline" data-linenumber="199"><td class="num" id="LN199">199</td><td class="line"> { 0.0235294, 0.596078, 0.603922, 1 },</td></tr>
+<tr class="codeline" data-linenumber="200"><td class="num" id="LN200">200</td><td class="line"> { 0.827451, 0.843137, 0.811765, 1 },</td></tr>
+<tr class="codeline" data-linenumber="201"><td class="num" id="LN201">201</td><td class="line"> { 0.333333, 0.341176, 0.32549, 1 },</td></tr>
+<tr class="codeline" data-linenumber="202"><td class="num" id="LN202">202</td><td class="line"> { 0.937255, 0.160784, 0.160784, 1 },</td></tr>
+<tr class="codeline" data-linenumber="203"><td class="num" id="LN203">203</td><td class="line"> { 0.541176, 0.886275, 0.203922, 1 },</td></tr>
+<tr class="codeline" data-linenumber="204"><td class="num" id="LN204">204</td><td class="line"> { 0.988235, 0.913725, 0.309804, 1 },</td></tr>
+<tr class="codeline" data-linenumber="205"><td class="num" id="LN205">205</td><td class="line"> { 0.447059, 0.623529, 0.811765, 1 },</td></tr>
+<tr class="codeline" data-linenumber="206"><td class="num" id="LN206">206</td><td class="line"> { 0.678431, 0.498039, 0.658824, 1 },</td></tr>
+<tr class="codeline" data-linenumber="207"><td class="num" id="LN207">207</td><td class="line"> { 0.203922, 0.886275, 0.886275, 1 },</td></tr>
+<tr class="codeline" data-linenumber="208"><td class="num" id="LN208">208</td><td class="line"> { 0.933333, 0.933333, 0.92549, 1 },</td></tr>
+<tr class="codeline" data-linenumber="209"><td class="num" id="LN209">209</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="210"><td class="num" id="LN210">210</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="211"><td class="num" id="LN211">211</td><td class="line"> <span class='comment'>/* Linux palette */</span></td></tr>
+<tr class="codeline" data-linenumber="212"><td class="num" id="LN212">212</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="213"><td class="num" id="LN213">213</td><td class="line"> { 0, 0, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="214"><td class="num" id="LN214">214</td><td class="line"> { 0.666667, 0, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="215"><td class="num" id="LN215">215</td><td class="line"> { 0, 0.666667, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="216"><td class="num" id="LN216">216</td><td class="line"> { 0.666667, 0.333333, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="217"><td class="num" id="LN217">217</td><td class="line"> { 0, 0, 0.666667, 1 },</td></tr>
+<tr class="codeline" data-linenumber="218"><td class="num" id="LN218">218</td><td class="line"> { 0.666667, 0, 0.666667, 1 },</td></tr>
+<tr class="codeline" data-linenumber="219"><td class="num" id="LN219">219</td><td class="line"> { 0, 0.666667, 0.666667, 1 },</td></tr>
+<tr class="codeline" data-linenumber="220"><td class="num" id="LN220">220</td><td class="line"> { 0.666667, 0.666667, 0.666667, 1 },</td></tr>
+<tr class="codeline" data-linenumber="221"><td class="num" id="LN221">221</td><td class="line"> { 0.333333, 0.333333, 0.333333, 1 },</td></tr>
+<tr class="codeline" data-linenumber="222"><td class="num" id="LN222">222</td><td class="line"> { 1, 0.333333, 0.333333, 1 },</td></tr>
+<tr class="codeline" data-linenumber="223"><td class="num" id="LN223">223</td><td class="line"> { 0.333333, 1, 0.333333, 1 },</td></tr>
+<tr class="codeline" data-linenumber="224"><td class="num" id="LN224">224</td><td class="line"> { 1, 1, 0.333333, 1 },</td></tr>
+<tr class="codeline" data-linenumber="225"><td class="num" id="LN225">225</td><td class="line"> { 0.333333, 0.333333, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="226"><td class="num" id="LN226">226</td><td class="line"> { 1, 0.333333, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="227"><td class="num" id="LN227">227</td><td class="line"> { 0.333333, 1, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="228"><td class="num" id="LN228">228</td><td class="line"> { 1, 1, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="229"><td class="num" id="LN229">229</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="230"><td class="num" id="LN230">230</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="231"><td class="num" id="LN231">231</td><td class="line"> <span class='comment'>/* XTerm palette */</span></td></tr>
+<tr class="codeline" data-linenumber="232"><td class="num" id="LN232">232</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="233"><td class="num" id="LN233">233</td><td class="line"> { 0, 0, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="234"><td class="num" id="LN234">234</td><td class="line"> { 0.803922, 0, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="235"><td class="num" id="LN235">235</td><td class="line"> { 0, 0.803922, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="236"><td class="num" id="LN236">236</td><td class="line"> { 0.803922, 0.803922, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="237"><td class="num" id="LN237">237</td><td class="line"> { 0.117647, 0.564706, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="238"><td class="num" id="LN238">238</td><td class="line"> { 0.803922, 0, 0.803922, 1 },</td></tr>
+<tr class="codeline" data-linenumber="239"><td class="num" id="LN239">239</td><td class="line"> { 0, 0.803922, 0.803922, 1 },</td></tr>
+<tr class="codeline" data-linenumber="240"><td class="num" id="LN240">240</td><td class="line"> { 0.898039, 0.898039, 0.898039, 1 },</td></tr>
+<tr class="codeline" data-linenumber="241"><td class="num" id="LN241">241</td><td class="line"> { 0.298039, 0.298039, 0.298039, 1 },</td></tr>
+<tr class="codeline" data-linenumber="242"><td class="num" id="LN242">242</td><td class="line"> { 1, 0, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="243"><td class="num" id="LN243">243</td><td class="line"> { 0, 1, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="244"><td class="num" id="LN244">244</td><td class="line"> { 1, 1, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="245"><td class="num" id="LN245">245</td><td class="line"> { 0.27451, 0.509804, 0.705882, 1 },</td></tr>
+<tr class="codeline" data-linenumber="246"><td class="num" id="LN246">246</td><td class="line"> { 1, 0, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="247"><td class="num" id="LN247">247</td><td class="line"> { 0, 1, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="248"><td class="num" id="LN248">248</td><td class="line"> { 1, 1, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="249"><td class="num" id="LN249">249</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="250"><td class="num" id="LN250">250</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="251"><td class="num" id="LN251">251</td><td class="line"> <span class='comment'>/* RXVT palette */</span></td></tr>
+<tr class="codeline" data-linenumber="252"><td class="num" id="LN252">252</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="253"><td class="num" id="LN253">253</td><td class="line"> { 0, 0, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="254"><td class="num" id="LN254">254</td><td class="line"> { 0.803922, 0, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="255"><td class="num" id="LN255">255</td><td class="line"> { 0, 0.803922, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="256"><td class="num" id="LN256">256</td><td class="line"> { 0.803922, 0.803922, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="257"><td class="num" id="LN257">257</td><td class="line"> { 0, 0, 0.803922, 1 },</td></tr>
+<tr class="codeline" data-linenumber="258"><td class="num" id="LN258">258</td><td class="line"> { 0.803922, 0, 0.803922, 1 },</td></tr>
+<tr class="codeline" data-linenumber="259"><td class="num" id="LN259">259</td><td class="line"> { 0, 0.803922, 0.803922, 1 },</td></tr>
+<tr class="codeline" data-linenumber="260"><td class="num" id="LN260">260</td><td class="line"> { 0.980392, 0.921569, 0.843137, 1 },</td></tr>
+<tr class="codeline" data-linenumber="261"><td class="num" id="LN261">261</td><td class="line"> { 0.25098, 0.25098, 0.25098, 1 },</td></tr>
+<tr class="codeline" data-linenumber="262"><td class="num" id="LN262">262</td><td class="line"> { 1, 0, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="263"><td class="num" id="LN263">263</td><td class="line"> { 0, 1, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="264"><td class="num" id="LN264">264</td><td class="line"> { 1, 1, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="265"><td class="num" id="LN265">265</td><td class="line"> { 0, 0, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="266"><td class="num" id="LN266">266</td><td class="line"> { 1, 0, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="267"><td class="num" id="LN267">267</td><td class="line"> { 0, 1, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="268"><td class="num" id="LN268">268</td><td class="line"> { 1, 1, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="269"><td class="num" id="LN269">269</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="270"><td class="num" id="LN270">270</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="271"><td class="num" id="LN271">271</td><td class="line"> <span class='comment'>/* Solarized palette (1.0.0beta2): http://ethanschoonover.com/solarized */</span></td></tr>
+<tr class="codeline" data-linenumber="272"><td class="num" id="LN272">272</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="273"><td class="num" id="LN273">273</td><td class="line"> { 0.02745, 0.211764, 0.258823, 1 },</td></tr>
+<tr class="codeline" data-linenumber="274"><td class="num" id="LN274">274</td><td class="line"> { 0.862745, 0.196078, 0.184313, 1 },</td></tr>
+<tr class="codeline" data-linenumber="275"><td class="num" id="LN275">275</td><td class="line"> { 0.521568, 0.6, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="276"><td class="num" id="LN276">276</td><td class="line"> { 0.709803, 0.537254, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="277"><td class="num" id="LN277">277</td><td class="line"> { 0.149019, 0.545098, 0.823529, 1 },</td></tr>
+<tr class="codeline" data-linenumber="278"><td class="num" id="LN278">278</td><td class="line"> { 0.82745, 0.211764, 0.509803, 1 },</td></tr>
+<tr class="codeline" data-linenumber="279"><td class="num" id="LN279">279</td><td class="line"> { 0.164705, 0.631372, 0.596078, 1 },</td></tr>
+<tr class="codeline" data-linenumber="280"><td class="num" id="LN280">280</td><td class="line"> { 0.933333, 0.909803, 0.835294, 1 },</td></tr>
+<tr class="codeline" data-linenumber="281"><td class="num" id="LN281">281</td><td class="line"> { 0, 0.168627, 0.211764, 1 },</td></tr>
+<tr class="codeline" data-linenumber="282"><td class="num" id="LN282">282</td><td class="line"> { 0.796078, 0.294117, 0.086274, 1 },</td></tr>
+<tr class="codeline" data-linenumber="283"><td class="num" id="LN283">283</td><td class="line"> { 0.345098, 0.431372, 0.458823, 1 },</td></tr>
+<tr class="codeline" data-linenumber="284"><td class="num" id="LN284">284</td><td class="line"> { 0.396078, 0.482352, 0.513725, 1 },</td></tr>
+<tr class="codeline" data-linenumber="285"><td class="num" id="LN285">285</td><td class="line"> { 0.513725, 0.580392, 0.588235, 1 },</td></tr>
+<tr class="codeline" data-linenumber="286"><td class="num" id="LN286">286</td><td class="line"> { 0.423529, 0.443137, 0.768627, 1 },</td></tr>
+<tr class="codeline" data-linenumber="287"><td class="num" id="LN287">287</td><td class="line"> { 0.57647, 0.631372, 0.631372, 1 },</td></tr>
+<tr class="codeline" data-linenumber="288"><td class="num" id="LN288">288</td><td class="line"> { 0.992156, 0.964705, 0.890196, 1 },</td></tr>
+<tr class="codeline" data-linenumber="289"><td class="num" id="LN289">289</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="290"><td class="num" id="LN290">290</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="291"><td class="num" id="LN291">291</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="292"><td class="num" id="LN292">292</td><td class="line"><span class='keyword'>enum</span></td></tr>
+<tr class="codeline" data-linenumber="293"><td class="num" id="LN293">293</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="294"><td class="num" id="LN294">294</td><td class="line"> FORGOTTEN,</td></tr>
+<tr class="codeline" data-linenumber="295"><td class="num" id="LN295">295</td><td class="line"> LAST_SIGNAL</td></tr>
+<tr class="codeline" data-linenumber="296"><td class="num" id="LN296">296</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="297"><td class="num" id="LN297">297</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="298"><td class="num" id="LN298">298</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> terminal_profile_finalize (GObject *object);</td></tr>
+<tr class="codeline" data-linenumber="299"><td class="num" id="LN299">299</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> terminal_profile_set_property (GObject *object,</td></tr>
+<tr class="codeline" data-linenumber="300"><td class="num" id="LN300">300</td><td class="line"> guint prop_id,</td></tr>
+<tr class="codeline" data-linenumber="301"><td class="num" id="LN301">301</td><td class="line"> <span class='keyword'>const</span> GValue *value,</td></tr>
+<tr class="codeline" data-linenumber="302"><td class="num" id="LN302">302</td><td class="line"> GParamSpec *pspec);</td></tr>
+<tr class="codeline" data-linenumber="303"><td class="num" id="LN303">303</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> ensure_pixbuf_property (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="304"><td class="num" id="LN304">304</td><td class="line"> guint path_prop_id,</td></tr>
+<tr class="codeline" data-linenumber="305"><td class="num" id="LN305">305</td><td class="line"> guint pixbuf_prop_id,</td></tr>
+<tr class="codeline" data-linenumber="306"><td class="num" id="LN306">306</td><td class="line"> gboolean *load_failed);</td></tr>
+<tr class="codeline" data-linenumber="307"><td class="num" id="LN307">307</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="308"><td class="num" id="LN308">308</td><td class="line"><span class='keyword'>static</span> guint signals[LAST_SIGNAL] = { 0 };</td></tr>
+<tr class="codeline" data-linenumber="309"><td class="num" id="LN309">309</td><td class="line"><span class='keyword'>static</span> GQuark gsettings_key_quark;</td></tr>
+<tr class="codeline" data-linenumber="310"><td class="num" id="LN310">310</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="311"><td class="num" id="LN311">311</td><td class="line"><span class='macro'>G_DEFINE_TYPE_WITH_PRIVATE (TerminalProfile, terminal_profile, G_TYPE_OBJECT)<span class='macro_popup'>static void terminal_profile_init (TerminalProfile *self); static<br> void terminal_profile_class_init (TerminalProfileClass *klass<br>); static GType terminal_profile_get_type_once (void); static<br> gpointer terminal_profile_parent_class = ((void*)0); static gint<br> TerminalProfile_private_offset; static void terminal_profile_class_intern_init<br> (gpointer klass) { terminal_profile_parent_class = g_type_class_peek_parent<br> (klass); if (TerminalProfile_private_offset != 0) g_type_class_adjust_private_offset<br> (klass, &amp;TerminalProfile_private_offset); terminal_profile_class_init<br> ((TerminalProfileClass*) klass); } __attribute__ ((__unused__<br>)) static inline gpointer terminal_profile_get_instance_private<br> (TerminalProfile *self) { return (((gpointer) ((guint8*) (self<br>) + (glong) (TerminalProfile_private_offset)))); } GType terminal_profile_get_type<br> (void) { static gsize static_g_define_type_id = 0; if ((__extension__<br> ({ _Static_assert (sizeof *(&amp;static_g_define_type_id) ==<br> sizeof (gpointer), "Expression evaluates to false"); (void) (<br>0 ? (gpointer) *(&amp;static_g_define_type_id) : ((void*)0));<br> (!(__extension__ ({ _Static_assert (sizeof *(&amp;static_g_define_type_id<br>) == sizeof (gpointer), "Expression evaluates to false"); __typeof__<br> (*(&amp;static_g_define_type_id)) gapg_temp_newval; __typeof__<br> ((&amp;static_g_define_type_id)) gapg_temp_atomic = (&amp;static_g_define_type_id<br>); __atomic_load (gapg_temp_atomic, &amp;gapg_temp_newval, 5)<br>; gapg_temp_newval; })) &amp;&amp; g_once_init_enter (&amp;static_g_define_type_id<br>)); }))) { GType g_define_type_id = terminal_profile_get_type_once<br> (); (__extension__ ({ _Static_assert (sizeof *(&amp;static_g_define_type_id<br>) == sizeof (gpointer), "Expression evaluates to false"); 0 ?<br> (void) (*(&amp;static_g_define_type_id) = (g_define_type_id)<br>) : (void) 0; g_once_init_leave ((&amp;static_g_define_type_id<br>), (gsize) (g_define_type_id)); })); } return static_g_define_type_id<br>; } __attribute__ ((__noinline__)) static GType terminal_profile_get_type_once<br> (void) { GType g_define_type_id = g_type_register_static_simple<br> (((GType) ((20) &lt;&lt; (2))), g_intern_static_string ("TerminalProfile"<br>), sizeof (TerminalProfileClass), (GClassInitFunc)(void (*)(void<br>)) terminal_profile_class_intern_init, sizeof (TerminalProfile<br>), (GInstanceInitFunc)(void (*)(void)) terminal_profile_init,<br> (GTypeFlags) 0); { {{ TerminalProfile_private_offset = g_type_add_instance_private<br> (g_define_type_id, sizeof (TerminalProfilePrivate)); };} } return<br> g_define_type_id; }</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="312"><td class="num" id="LN312">312</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="313"><td class="num" id="LN313">313</td><td class="line"><span class='comment'>/* gdk_rgba_equal is too strict! */</span></td></tr>
+<tr class="codeline" data-linenumber="314"><td class="num" id="LN314">314</td><td class="line"><span class='keyword'>static</span> gboolean</td></tr>
+<tr class="codeline" data-linenumber="315"><td class="num" id="LN315">315</td><td class="line">rgba_equal (<span class='keyword'>const</span> GdkRGBA *a,</td></tr>
+<tr class="codeline" data-linenumber="316"><td class="num" id="LN316">316</td><td class="line"> <span class='keyword'>const</span> GdkRGBA *b)</td></tr>
+<tr class="codeline" data-linenumber="317"><td class="num" id="LN317">317</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="318"><td class="num" id="LN318">318</td><td class="line"> gdouble dr, dg, db, da;</td></tr>
+<tr class="codeline" data-linenumber="319"><td class="num" id="LN319">319</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="320"><td class="num" id="LN320">320</td><td class="line"> dr = a-&gt;red - b-&gt;red;</td></tr>
+<tr class="codeline" data-linenumber="321"><td class="num" id="LN321">321</td><td class="line"> dg = a-&gt;green - b-&gt;green;</td></tr>
+<tr class="codeline" data-linenumber="322"><td class="num" id="LN322">322</td><td class="line"> db = a-&gt;blue - b-&gt;blue;</td></tr>
+<tr class="codeline" data-linenumber="323"><td class="num" id="LN323">323</td><td class="line"> da = a-&gt;alpha - b-&gt;alpha;</td></tr>
+<tr class="codeline" data-linenumber="324"><td class="num" id="LN324">324</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="325"><td class="num" id="LN325">325</td><td class="line"> <span class='keyword'>return</span> (dr * dr + dg * dg + db * db + da * da) &lt; 1e-4;</td></tr>
+<tr class="codeline" data-linenumber="326"><td class="num" id="LN326">326</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="327"><td class="num" id="LN327">327</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="328"><td class="num" id="LN328">328</td><td class="line"><span class='keyword'>static</span> gboolean</td></tr>
+<tr class="codeline" data-linenumber="329"><td class="num" id="LN329">329</td><td class="line">palette_cmp (<span class='keyword'>const</span> GdkRGBA *ca,</td></tr>
+<tr class="codeline" data-linenumber="330"><td class="num" id="LN330">330</td><td class="line"> <span class='keyword'>const</span> GdkRGBA *cb)</td></tr>
+<tr class="codeline" data-linenumber="331"><td class="num" id="LN331">331</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="332"><td class="num" id="LN332">332</td><td class="line"> guint i;</td></tr>
+<tr class="codeline" data-linenumber="333"><td class="num" id="LN333">333</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="334"><td class="num" id="LN334">334</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; <span class='macro'>TERMINAL_PALETTE_SIZE<span class='macro_popup'>16</span></span>; ++i)</td></tr>
+<tr class="codeline" data-linenumber="335"><td class="num" id="LN335">335</td><td class="line"> <span class='keyword'>if</span> (!rgba_equal (&amp;ca[i], &amp;cb[i]))</td></tr>
+<tr class="codeline" data-linenumber="336"><td class="num" id="LN336">336</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="337"><td class="num" id="LN337">337</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="338"><td class="num" id="LN338">338</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="339"><td class="num" id="LN339">339</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="340"><td class="num" id="LN340">340</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="341"><td class="num" id="LN341">341</td><td class="line"><span class='keyword'>static</span> GParamSpec *</td></tr>
+<tr class="codeline" data-linenumber="342"><td class="num" id="LN342">342</td><td class="line">get_pspec_from_name (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="343"><td class="num" id="LN343">343</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="344"><td class="num" id="LN344">344</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="345"><td class="num" id="LN345">345</td><td class="line"> TerminalProfileClass *klass = <span class='macro'>TERMINAL_PROFILE_GET_CLASS (profile)<span class='macro_popup'>((((TerminalProfileClass*) (((GTypeInstance*) ((profile)))-&gt;<br>g_class))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="346"><td class="num" id="LN346">346</td><td class="line"> GParamSpec *pspec;</td></tr>
+<tr class="codeline" data-linenumber="347"><td class="num" id="LN347">347</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="348"><td class="num" id="LN348">348</td><td class="line"> pspec = g_object_class_find_property (<span class='macro'>G_OBJECT_CLASS (klass)<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((klass)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="349"><td class="num" id="LN349">349</td><td class="line"> <span class='keyword'>if</span> (pspec &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="350"><td class="num" id="LN350">350</td><td class="line"> pspec-&gt;owner_type != <span class='macro'>TERMINAL_TYPE_PROFILE<span class='macro_popup'>(terminal_profile_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="351"><td class="num" id="LN351">351</td><td class="line"> pspec = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="352"><td class="num" id="LN352">352</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="353"><td class="num" id="LN353">353</td><td class="line"> <span class='keyword'>return</span> pspec;</td></tr>
+<tr class="codeline" data-linenumber="354"><td class="num" id="LN354">354</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="355"><td class="num" id="LN355">355</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="356"><td class="num" id="LN356">356</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>const</span> GValue *</td></tr>
+<tr class="codeline" data-linenumber="357"><td class="num" id="LN357">357</td><td class="line">get_prop_value_from_prop_name (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="358"><td class="num" id="LN358">358</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="359"><td class="num" id="LN359">359</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="360"><td class="num" id="LN360">360</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="361"><td class="num" id="LN361">361</td><td class="line"> GParamSpec *pspec;</td></tr>
+<tr class="codeline" data-linenumber="362"><td class="num" id="LN362">362</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="363"><td class="num" id="LN363">363</td><td class="line"> pspec = get_pspec_from_name (profile, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="364"><td class="num" id="LN364">364</td><td class="line"> <span class='keyword'>if</span> (!pspec)</td></tr>
+<tr class="codeline" data-linenumber="365"><td class="num" id="LN365">365</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="366"><td class="num" id="LN366">366</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="367"><td class="num" id="LN367">367</td><td class="line"> <span class='keyword'>if</span> (<span class='macro'>G_UNLIKELY (pspec-&gt;param_id == PROP_BACKGROUND_IMAGE)<span class='macro_popup'>(pspec-&gt;param_id == PROP_BACKGROUND_IMAGE)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="368"><td class="num" id="LN368">368</td><td class="line"> ensure_pixbuf_property (profile, PROP_BACKGROUND_IMAGE_FILE, PROP_BACKGROUND_IMAGE, &amp;priv-&gt;background_load_failed);</td></tr>
+<tr class="codeline" data-linenumber="369"><td class="num" id="LN369">369</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="370"><td class="num" id="LN370">370</td><td class="line"> <span class='keyword'>return</span> g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id);</td></tr>
+<tr class="codeline" data-linenumber="371"><td class="num" id="LN371">371</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="372"><td class="num" id="LN372">372</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="373"><td class="num" id="LN373">373</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="374"><td class="num" id="LN374">374</td><td class="line">set_value_from_palette (GValue *ret_value,</td></tr>
+<tr class="codeline" data-linenumber="375"><td class="num" id="LN375">375</td><td class="line"> <span class='keyword'>const</span> GdkRGBA *colors,</td></tr>
+<tr class="codeline" data-linenumber="376"><td class="num" id="LN376">376</td><td class="line"> guint n_colors)</td></tr>
+<tr class="codeline" data-linenumber="377"><td class="num" id="LN377">377</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="378"><td class="num" id="LN378">378</td><td class="line"> GValueArray *array;</td></tr>
+<tr class="codeline" data-linenumber="379"><td class="num" id="LN379">379</td><td class="line"> guint i, max_n_colors;</td></tr>
+<tr class="codeline" data-linenumber="380"><td class="num" id="LN380">380</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="381"><td class="num" id="LN381">381</td><td class="line"> max_n_colors = <span class='macro'>MAX (n_colors, TERMINAL_PALETTE_SIZE)<span class='macro_popup'>(((n_colors) &gt; (16)) ? (n_colors) : (16))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="382"><td class="num" id="LN382">382</td><td class="line"> array = g_value_array_new (max_n_colors);</td></tr>
+<tr class="codeline" data-linenumber="383"><td class="num" id="LN383">383</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; max_n_colors; ++i)</td></tr>
+<tr class="codeline" data-linenumber="384"><td class="num" id="LN384">384</td><td class="line"> g_value_array_append (array, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="385"><td class="num" id="LN385">385</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="386"><td class="num" id="LN386">386</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; n_colors; ++i)</td></tr>
+<tr class="codeline" data-linenumber="387"><td class="num" id="LN387">387</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="388"><td class="num" id="LN388">388</td><td class="line"> GValue *value = g_value_array_get_nth (array, i);</td></tr>
+<tr class="codeline" data-linenumber="389"><td class="num" id="LN389">389</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="390"><td class="num" id="LN390">390</td><td class="line"> g_value_init (value, <span class='macro'>GDK_TYPE_RGBA<span class='macro_popup'>(gdk_rgba_get_type ())</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="391"><td class="num" id="LN391">391</td><td class="line"> g_value_set_boxed (value, &amp;colors[i]);</td></tr>
+<tr class="codeline" data-linenumber="392"><td class="num" id="LN392">392</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="393"><td class="num" id="LN393">393</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="394"><td class="num" id="LN394">394</td><td class="line"> <span class='comment'>/* If we haven't enough colours yet, fill up with the default palette */</span></td></tr>
+<tr class="codeline" data-linenumber="395"><td class="num" id="LN395">395</td><td class="line"> <span class='keyword'>for</span> (i = n_colors; i &lt; <span class='macro'>TERMINAL_PALETTE_SIZE<span class='macro_popup'>16</span></span>; ++i)</td></tr>
+<tr class="codeline" data-linenumber="396"><td class="num" id="LN396">396</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="397"><td class="num" id="LN397">397</td><td class="line"> GValue *value = g_value_array_get_nth (array, i);</td></tr>
+<tr class="codeline" data-linenumber="398"><td class="num" id="LN398">398</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="399"><td class="num" id="LN399">399</td><td class="line"> g_value_init (value, <span class='macro'>GDK_TYPE_RGBA<span class='macro_popup'>(gdk_rgba_get_type ())</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="400"><td class="num" id="LN400">400</td><td class="line"> g_value_set_boxed (value, &amp;<span class='macro'>DEFAULT_PALETTE<span class='macro_popup'>(terminal_palettes[0])</span></span>[i]);</td></tr>
+<tr class="codeline" data-linenumber="401"><td class="num" id="LN401">401</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="402"><td class="num" id="LN402">402</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="403"><td class="num" id="LN403">403</td><td class="line"> g_value_take_boxed (ret_value, array);</td></tr>
+<tr class="codeline" data-linenumber="404"><td class="num" id="LN404">404</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="405"><td class="num" id="LN405">405</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="406"><td class="num" id="LN406">406</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>int</span></td></tr>
+<tr class="codeline" data-linenumber="407"><td class="num" id="LN407">407</td><td class="line">values_equal (GParamSpec *pspec,</td></tr>
+<tr class="codeline" data-linenumber="408"><td class="num" id="LN408">408</td><td class="line"> <span class='keyword'>const</span> GValue *va,</td></tr>
+<tr class="codeline" data-linenumber="409"><td class="num" id="LN409">409</td><td class="line"> <span class='keyword'>const</span> GValue *vb)</td></tr>
+<tr class="codeline" data-linenumber="410"><td class="num" id="LN410">410</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="411"><td class="num" id="LN411">411</td><td class="line"> <span class='comment'>/* g_param_values_cmp isn't good enough for some types, since e.g.</span></td></tr>
+<tr class="codeline" data-linenumber="412"><td class="num" id="LN412">412</td><td class="line"> <span class='comment'>* it compares colours and font descriptions by pointer value, not</span></td></tr>
+<tr class="codeline" data-linenumber="413"><td class="num" id="LN413">413</td><td class="line"> <span class='comment'>* with the correct compare functions. Providing extra</span></td></tr>
+<tr class="codeline" data-linenumber="414"><td class="num" id="LN414">414</td><td class="line"> <span class='comment'>* PangoParamSpecFontDescription and GdkParamSpecColor wouldn't</span></td></tr>
+<tr class="codeline" data-linenumber="415"><td class="num" id="LN415">415</td><td class="line"> <span class='comment'>* have fixed this either, since it's unclear how to _order_ them.</span></td></tr>
+<tr class="codeline" data-linenumber="416"><td class="num" id="LN416">416</td><td class="line"> <span class='comment'>* Luckily we only need to check them for equality here.</span></td></tr>
+<tr class="codeline" data-linenumber="417"><td class="num" id="LN417">417</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="418"><td class="num" id="LN418">418</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="419"><td class="num" id="LN419">419</td><td class="line"> <span class='keyword'>if</span> (g_param_values_cmp (pspec, va, vb) == 0)</td></tr>
+<tr class="codeline" data-linenumber="420"><td class="num" id="LN420">420</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="421"><td class="num" id="LN421">421</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="422"><td class="num" id="LN422">422</td><td class="line"> <span class='keyword'>if</span> (<span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span> == <span class='macro'>GDK_TYPE_RGBA<span class='macro_popup'>(gdk_rgba_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="423"><td class="num" id="LN423">423</td><td class="line"> <span class='keyword'>return</span> rgba_equal (g_value_get_boxed (va), g_value_get_boxed (vb));</td></tr>
+<tr class="codeline" data-linenumber="424"><td class="num" id="LN424">424</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="425"><td class="num" id="LN425">425</td><td class="line"> <span class='keyword'>if</span> (<span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span> == <span class='macro'>PANGO_TYPE_FONT_DESCRIPTION<span class='macro_popup'>(pango_font_description_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="426"><td class="num" id="LN426">426</td><td class="line"> <span class='keyword'>return</span> pango_font_description_equal (g_value_get_boxed (va), g_value_get_boxed (vb));</td></tr>
+<tr class="codeline" data-linenumber="427"><td class="num" id="LN427">427</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="428"><td class="num" id="LN428">428</td><td class="line"> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_VALUE_ARRAY (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[18]) GCC warning "Deprecated pre-processor symbol"<br>
+); gboolean __r; if (!__inst) __r = (0); else if (__inst-&gt;<br>g_class &amp;&amp; __inst-&gt;g_class-&gt;g_type == __t) __r =<br> (!(0)); else __r = g_type_check_instance_is_a (__inst, __t);<br> __r; })))) GCC warning "Deprecated pre-processor symbol"
+</span></span> &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="429"><td class="num" id="LN429">429</td><td class="line"> <span class='macro'>G_PARAM_SPEC_VALUE_TYPE (G_PARAM_SPEC_VALUE_ARRAY (pspec)-&gt;element_spec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((((((GParamSpecValueArray*) (void *) g_type_check_instance_cast<br> ((GTypeInstance*) ((pspec)), ((g_param_spec_types[18]) GCC warning<br> "Deprecated pre-processor symbol"
+))))) GCC warning "Deprecated pre-processor symbol"<br>
+-&gt;element_spec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;<br>value_type)</span></span> == <span class='macro'>GDK_TYPE_RGBA<span class='macro_popup'>(gdk_rgba_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="430"><td class="num" id="LN430">430</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="431"><td class="num" id="LN431">431</td><td class="line"> GValueArray *ara, *arb;</td></tr>
+<tr class="codeline" data-linenumber="432"><td class="num" id="LN432">432</td><td class="line"> guint i;</td></tr>
+<tr class="codeline" data-linenumber="433"><td class="num" id="LN433">433</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="434"><td class="num" id="LN434">434</td><td class="line"> ara = g_value_get_boxed (va);</td></tr>
+<tr class="codeline" data-linenumber="435"><td class="num" id="LN435">435</td><td class="line"> arb = g_value_get_boxed (vb);</td></tr>
+<tr class="codeline" data-linenumber="436"><td class="num" id="LN436">436</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="437"><td class="num" id="LN437">437</td><td class="line"> <span class='keyword'>if</span> (!ara || !arb || ara-&gt;n_values != arb-&gt;n_values)</td></tr>
+<tr class="codeline" data-linenumber="438"><td class="num" id="LN438">438</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="439"><td class="num" id="LN439">439</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="440"><td class="num" id="LN440">440</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; ara-&gt;n_values; ++i)</td></tr>
+<tr class="codeline" data-linenumber="441"><td class="num" id="LN441">441</td><td class="line"> <span class='keyword'>if</span> (!rgba_equal (g_value_get_boxed (g_value_array_get_nth (ara, i)),</td></tr>
+<tr class="codeline" data-linenumber="442"><td class="num" id="LN442">442</td><td class="line"> g_value_get_boxed (g_value_array_get_nth (arb, i))))</td></tr>
+<tr class="codeline" data-linenumber="443"><td class="num" id="LN443">443</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="444"><td class="num" id="LN444">444</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="445"><td class="num" id="LN445">445</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="446"><td class="num" id="LN446">446</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="447"><td class="num" id="LN447">447</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="448"><td class="num" id="LN448">448</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="449"><td class="num" id="LN449">449</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="450"><td class="num" id="LN450">450</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="451"><td class="num" id="LN451">451</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="452"><td class="num" id="LN452">452</td><td class="line">ensure_pixbuf_property (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="453"><td class="num" id="LN453">453</td><td class="line"> guint path_prop_id,</td></tr>
+<tr class="codeline" data-linenumber="454"><td class="num" id="LN454">454</td><td class="line"> guint pixbuf_prop_id,</td></tr>
+<tr class="codeline" data-linenumber="455"><td class="num" id="LN455">455</td><td class="line"> gboolean *load_failed)</td></tr>
+<tr class="codeline" data-linenumber="456"><td class="num" id="LN456">456</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="457"><td class="num" id="LN457">457</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="458"><td class="num" id="LN458">458</td><td class="line"> GValue *path_value, *pixbuf_value;</td></tr>
+<tr class="codeline" data-linenumber="459"><td class="num" id="LN459">459</td><td class="line"> GdkPixbuf *pixbuf;</td></tr>
+<tr class="codeline" data-linenumber="460"><td class="num" id="LN460">460</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *path_utf8;</td></tr>
+<tr class="codeline" data-linenumber="461"><td class="num" id="LN461">461</td><td class="line"> <span class='keyword'>char</span> *path;</td></tr>
+<tr class="codeline" data-linenumber="462"><td class="num" id="LN462">462</td><td class="line"> GError *error = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="463"><td class="num" id="LN463">463</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="464"><td class="num" id="LN464">464</td><td class="line"> pixbuf_value = g_value_array_get_nth (priv-&gt;properties, pixbuf_prop_id);</td></tr>
+<tr class="codeline" data-linenumber="465"><td class="num" id="LN465">465</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="466"><td class="num" id="LN466">466</td><td class="line"> pixbuf = g_value_get_object (pixbuf_value);</td></tr>
+<tr class="codeline" data-linenumber="467"><td class="num" id="LN467">467</td><td class="line"> <span class='keyword'>if</span> (pixbuf)</td></tr>
+<tr class="codeline" data-linenumber="468"><td class="num" id="LN468">468</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="469"><td class="num" id="LN469">469</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="470"><td class="num" id="LN470">470</td><td class="line"> <span class='keyword'>if</span> (*load_failed)</td></tr>
+<tr class="codeline" data-linenumber="471"><td class="num" id="LN471">471</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="472"><td class="num" id="LN472">472</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="473"><td class="num" id="LN473">473</td><td class="line"> path_value = g_value_array_get_nth (priv-&gt;properties, path_prop_id);</td></tr>
+<tr class="codeline" data-linenumber="474"><td class="num" id="LN474">474</td><td class="line"> path_utf8 = g_value_get_string (path_value);</td></tr>
+<tr class="codeline" data-linenumber="475"><td class="num" id="LN475">475</td><td class="line"> <span class='keyword'>if</span> (!path_utf8 || !path_utf8[0])</td></tr>
+<tr class="codeline" data-linenumber="476"><td class="num" id="LN476">476</td><td class="line"> <span class='keyword'>goto</span> failed;</td></tr>
+<tr class="codeline" data-linenumber="477"><td class="num" id="LN477">477</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="478"><td class="num" id="LN478">478</td><td class="line"> path = g_filename_from_utf8 (path_utf8, -1, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="479"><td class="num" id="LN479">479</td><td class="line"> <span class='keyword'>if</span> (!path)</td></tr>
+<tr class="codeline" data-linenumber="480"><td class="num" id="LN480">480</td><td class="line"> <span class='keyword'>goto</span> failed;</td></tr>
+<tr class="codeline" data-linenumber="481"><td class="num" id="LN481">481</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="482"><td class="num" id="LN482">482</td><td class="line"> pixbuf = gdk_pixbuf_new_from_file (path, &amp;error);</td></tr>
+<tr class="codeline" data-linenumber="483"><td class="num" id="LN483">483</td><td class="line"> <span class='keyword'>if</span> (!pixbuf)</td></tr>
+<tr class="codeline" data-linenumber="484"><td class="num" id="LN484">484</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="485"><td class="num" id="LN485">485</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_PROFILE,<span class='macro_popup'>do { if (0) g_printerr("Failed to load image \"%s\": %s\n", path<br>, error-&gt;message); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="486"><td class="num" id="LN486">486</td><td class="line"> <span class='string_literal'><span class='macro'>"Failed to load image \"%s\": %s\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("Failed to load image \"%s\": %s\n", path<br>, error-&gt;message); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="487"><td class="num" id="LN487">487</td><td class="line"> <span class='macro'>path, error-&gt;message)<span class='macro_popup'>do { if (0) g_printerr("Failed to load image \"%s\": %s\n", path<br>, error-&gt;message); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="488"><td class="num" id="LN488">488</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="489"><td class="num" id="LN489">489</td><td class="line"> g_error_free (error);</td></tr>
+<tr class="codeline" data-linenumber="490"><td class="num" id="LN490">490</td><td class="line"> g_free (path);</td></tr>
+<tr class="codeline" data-linenumber="491"><td class="num" id="LN491">491</td><td class="line"> <span class='keyword'>goto</span> failed;</td></tr>
+<tr class="codeline" data-linenumber="492"><td class="num" id="LN492">492</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="493"><td class="num" id="LN493">493</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="494"><td class="num" id="LN494">494</td><td class="line"> g_value_take_object (pixbuf_value, pixbuf);</td></tr>
+<tr class="codeline" data-linenumber="495"><td class="num" id="LN495">495</td><td class="line"> g_free (path);</td></tr>
+<tr class="codeline" data-linenumber="496"><td class="num" id="LN496">496</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="497"><td class="num" id="LN497">497</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="498"><td class="num" id="LN498">498</td><td class="line">failed:</td></tr>
+<tr class="codeline" data-linenumber="499"><td class="num" id="LN499">499</td><td class="line"> *load_failed = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="500"><td class="num" id="LN500">500</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="501"><td class="num" id="LN501">501</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="502"><td class="num" id="LN502">502</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="503"><td class="num" id="LN503">503</td><td class="line">terminal_profile_reset_property_internal (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="504"><td class="num" id="LN504">504</td><td class="line"> GParamSpec *pspec,</td></tr>
+<tr class="codeline" data-linenumber="505"><td class="num" id="LN505">505</td><td class="line"> gboolean notify)</td></tr>
+<tr class="codeline" data-linenumber="506"><td class="num" id="LN506">506</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="507"><td class="num" id="LN507">507</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="508"><td class="num" id="LN508">508</td><td class="line"> GValue value_ = { 0, };</td></tr>
+<tr class="codeline" data-linenumber="509"><td class="num" id="LN509">509</td><td class="line"> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="510"><td class="num" id="LN510">510</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="511"><td class="num" id="LN511">511</td><td class="line"> <span class='keyword'>if</span> (notify)</td></tr>
+<tr class="codeline" data-linenumber="512"><td class="num" id="LN512">512</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="513"><td class="num" id="LN513">513</td><td class="line"> value = &amp;value_;</td></tr>
+<tr class="codeline" data-linenumber="514"><td class="num" id="LN514">514</td><td class="line"> g_value_init (value, <span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="515"><td class="num" id="LN515">515</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="516"><td class="num" id="LN516">516</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="517"><td class="num" id="LN517">517</td><td class="line"> value = g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id);</td></tr>
+<tr class="codeline" data-linenumber="518"><td class="num" id="LN518">518</td><td class="line"> <span class='macro'>g_assert (value != NULL)<span class='macro_popup'>do { if (value != ((void*)0)) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-profile.c", 518, ((const char*) (__func__<br>)), "value != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="519"><td class="num" id="LN519">519</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="520"><td class="num" id="LN520">520</td><td class="line"> <span class='comment'>/* A few properties don't have defaults via the param spec; set them explicitly */</span></td></tr>
+<tr class="codeline" data-linenumber="521"><td class="num" id="LN521">521</td><td class="line"> <span class='keyword'>switch</span> (pspec-&gt;param_id)</td></tr>
+<tr class="codeline" data-linenumber="522"><td class="num" id="LN522">522</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="523"><td class="num" id="LN523">523</td><td class="line"> <span class='keyword'>case</span> PROP_FOREGROUND_COLOR:</td></tr>
+<tr class="codeline" data-linenumber="524"><td class="num" id="LN524">524</td><td class="line"> <span class='keyword'>case</span> PROP_BOLD_COLOR:</td></tr>
+<tr class="codeline" data-linenumber="525"><td class="num" id="LN525">525</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="526"><td class="num" id="LN526">526</td><td class="line"> GdkRGBA color;</td></tr>
+<tr class="codeline" data-linenumber="527"><td class="num" id="LN527">527</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="528"><td class="num" id="LN528">528</td><td class="line"> <span class='keyword'>if</span> (!gdk_rgba_parse (&amp;color, <span class='macro'>DEFAULT_FOREGROUND_COLOR<span class='macro_popup'>("#000000")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="529"><td class="num" id="LN529">529</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="530"><td class="num" id="LN530">530</td><td class="line"> color.alpha = 1.0;</td></tr>
+<tr class="codeline" data-linenumber="531"><td class="num" id="LN531">531</td><td class="line"> g_value_set_boxed (value, &amp;color);</td></tr>
+<tr class="codeline" data-linenumber="532"><td class="num" id="LN532">532</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="533"><td class="num" id="LN533">533</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="534"><td class="num" id="LN534">534</td><td class="line"> <span class='keyword'>case</span> PROP_BACKGROUND_COLOR:</td></tr>
+<tr class="codeline" data-linenumber="535"><td class="num" id="LN535">535</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="536"><td class="num" id="LN536">536</td><td class="line"> GdkRGBA color;</td></tr>
+<tr class="codeline" data-linenumber="537"><td class="num" id="LN537">537</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="538"><td class="num" id="LN538">538</td><td class="line"> <span class='keyword'>if</span> (!gdk_rgba_parse (&amp;color, <span class='macro'>DEFAULT_BACKGROUND_COLOR<span class='macro_popup'>("#FFFFDD")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="539"><td class="num" id="LN539">539</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="540"><td class="num" id="LN540">540</td><td class="line"> color.alpha = 1.0;</td></tr>
+<tr class="codeline" data-linenumber="541"><td class="num" id="LN541">541</td><td class="line"> g_value_set_boxed (value, &amp;color);</td></tr>
+<tr class="codeline" data-linenumber="542"><td class="num" id="LN542">542</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="543"><td class="num" id="LN543">543</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="544"><td class="num" id="LN544">544</td><td class="line"> <span class='keyword'>case</span> PROP_FONT:</td></tr>
+<tr class="codeline" data-linenumber="545"><td class="num" id="LN545">545</td><td class="line"> g_value_take_boxed (value, pango_font_description_from_string (<span class='macro'>DEFAULT_FONT<span class='macro_popup'>("Monospace 12")</span></span>));</td></tr>
+<tr class="codeline" data-linenumber="546"><td class="num" id="LN546">546</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="547"><td class="num" id="LN547">547</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="548"><td class="num" id="LN548">548</td><td class="line"> <span class='keyword'>case</span> PROP_PALETTE:</td></tr>
+<tr class="codeline" data-linenumber="549"><td class="num" id="LN549">549</td><td class="line"> set_value_from_palette (value, <span class='macro'>DEFAULT_PALETTE<span class='macro_popup'>(terminal_palettes[0])</span></span>, <span class='macro'>TERMINAL_PALETTE_SIZE<span class='macro_popup'>16</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="550"><td class="num" id="LN550">550</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="551"><td class="num" id="LN551">551</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="552"><td class="num" id="LN552">552</td><td class="line"> <span class='keyword'>default</span>:</td></tr>
+<tr class="codeline" data-linenumber="553"><td class="num" id="LN553">553</td><td class="line"> g_param_value_set_default (pspec, value);</td></tr>
+<tr class="codeline" data-linenumber="554"><td class="num" id="LN554">554</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="555"><td class="num" id="LN555">555</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="556"><td class="num" id="LN556">556</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="557"><td class="num" id="LN557">557</td><td class="line"> <span class='keyword'>if</span> (notify)</td></tr>
+<tr class="codeline" data-linenumber="558"><td class="num" id="LN558">558</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="559"><td class="num" id="LN559">559</td><td class="line"> g_object_set_property (<span class='macro'>G_OBJECT (profile)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((profile)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, pspec-&gt;name, value);</td></tr>
+<tr class="codeline" data-linenumber="560"><td class="num" id="LN560">560</td><td class="line"> g_value_unset (value);</td></tr>
+<tr class="codeline" data-linenumber="561"><td class="num" id="LN561">561</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="562"><td class="num" id="LN562">562</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="563"><td class="num" id="LN563">563</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="564"><td class="num" id="LN564">564</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="565"><td class="num" id="LN565">565</td><td class="line">terminal_profile_gsettings_notify_cb (GSettings *settings,</td></tr>
+<tr class="codeline" data-linenumber="566"><td class="num" id="LN566">566</td><td class="line"> gchar *key,</td></tr>
+<tr class="codeline" data-linenumber="567"><td class="num" id="LN567">567</td><td class="line"> gpointer user_data)</td></tr>
+<tr class="codeline" data-linenumber="568"><td class="num" id="LN568">568</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="569"><td class="num" id="LN569">569</td><td class="line"> TerminalProfile *profile = <span class='macro'>TERMINAL_PROFILE (user_data)<span class='macro_popup'>((((TerminalProfile*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((user_data)), ((terminal_profile_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="570"><td class="num" id="LN570">570</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="571"><td class="num" id="LN571">571</td><td class="line"> TerminalProfileClass *klass;</td></tr>
+<tr class="codeline" data-linenumber="572"><td class="num" id="LN572">572</td><td class="line"> GVariant *settings_value;</td></tr>
+<tr class="codeline" data-linenumber="573"><td class="num" id="LN573">573</td><td class="line"> GParamSpec *pspec;</td></tr>
+<tr class="codeline" data-linenumber="574"><td class="num" id="LN574">574</td><td class="line"> GValue value = { 0, };</td></tr>
+<tr class="codeline" data-linenumber="575"><td class="num" id="LN575">575</td><td class="line"> gboolean equal;</td></tr>
+<tr class="codeline" data-linenumber="576"><td class="num" id="LN576">576</td><td class="line"> gboolean force_set = <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="577"><td class="num" id="LN577">577</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="578"><td class="num" id="LN578">578</td><td class="line"> <span class='keyword'>if</span> (!key) <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="579"><td class="num" id="LN579">579</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="580"><td class="num" id="LN580">580</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_PROFILE,<span class='macro_popup'>do { if (0) g_printerr("GSettings notification for key %s [%s]\n"<br>, key, g_settings_is_writable (settings, key) ? "writable" : "LOCKED"<br>); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="581"><td class="num" id="LN581">581</td><td class="line"> <span class='string_literal'><span class='macro'>"GSettings notification for key %s [%s]\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("GSettings notification for key %s [%s]\n"<br>, key, g_settings_is_writable (settings, key) ? "writable" : "LOCKED"<br>); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="582"><td class="num" id="LN582">582</td><td class="line"> <span class='macro'>key,<span class='macro_popup'>do { if (0) g_printerr("GSettings notification for key %s [%s]\n"<br>, key, g_settings_is_writable (settings, key) ? "writable" : "LOCKED"<br>); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="583"><td class="num" id="LN583">583</td><td class="line"> <span class='macro'>g_settings_is_writable (settings, key) ? <span class='string_literal'>"writable"</span> : <span class='string_literal'>"LOCKED"</span>)<span class='macro_popup'>do { if (0) g_printerr("GSettings notification for key %s [%s]\n"<br>, key, g_settings_is_writable (settings, key) ? "writable" : "LOCKED"<br>); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="584"><td class="num" id="LN584">584</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="585"><td class="num" id="LN585">585</td><td class="line"> klass = <span class='macro'>TERMINAL_PROFILE_GET_CLASS (profile)<span class='macro_popup'>((((TerminalProfileClass*) (((GTypeInstance*) ((profile)))-&gt;<br>g_class))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="586"><td class="num" id="LN586">586</td><td class="line"> pspec = g_hash_table_lookup (klass-&gt;gsettings_keys, key);</td></tr>
+<tr class="codeline" data-linenumber="587"><td class="num" id="LN587">587</td><td class="line"> <span class='keyword'>if</span> (!pspec)</td></tr>
+<tr class="codeline" data-linenumber="588"><td class="num" id="LN588">588</td><td class="line"> <span class='keyword'>return</span>; <span class='comment'>/* ignore unknown keys, for future extensibility */</span></td></tr>
+<tr class="codeline" data-linenumber="589"><td class="num" id="LN589">589</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="590"><td class="num" id="LN590">590</td><td class="line"> priv-&gt;locked[pspec-&gt;param_id] = !g_settings_is_writable (settings, key);</td></tr>
+<tr class="codeline" data-linenumber="591"><td class="num" id="LN591">591</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="592"><td class="num" id="LN592">592</td><td class="line"> settings_value = g_settings_get_value (settings, key);</td></tr>
+<tr class="codeline" data-linenumber="593"><td class="num" id="LN593">593</td><td class="line"> <span class='keyword'>if</span> (!settings_value)</td></tr>
+<tr class="codeline" data-linenumber="594"><td class="num" id="LN594">594</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="595"><td class="num" id="LN595">595</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="596"><td class="num" id="LN596">596</td><td class="line"> g_value_init (&amp;value, <span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="597"><td class="num" id="LN597">597</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="598"><td class="num" id="LN598">598</td><td class="line"> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_BOOLEAN (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[2])); gboolean __r<br>; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="599"><td class="num" id="LN599">599</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="600"><td class="num" id="LN600">600</td><td class="line"> <span class='keyword'>if</span> (!g_variant_is_of_type (settings_value, <span class='macro'>G_VARIANT_TYPE_BOOLEAN<span class='macro_popup'>((const GVariantType *) "b")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="601"><td class="num" id="LN601">601</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="602"><td class="num" id="LN602">602</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="603"><td class="num" id="LN603">603</td><td class="line"> g_value_set_boolean (&amp;value, g_variant_get_boolean (settings_value));</td></tr>
+<tr class="codeline" data-linenumber="604"><td class="num" id="LN604">604</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="605"><td class="num" id="LN605">605</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_STRING (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[14])); gboolean __r<br>; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="606"><td class="num" id="LN606">606</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="607"><td class="num" id="LN607">607</td><td class="line"> <span class='keyword'>if</span> (!g_variant_is_of_type (settings_value, <span class='macro'>G_VARIANT_TYPE_STRING<span class='macro_popup'>((const GVariantType *) "s")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="608"><td class="num" id="LN608">608</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="609"><td class="num" id="LN609">609</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="610"><td class="num" id="LN610">610</td><td class="line"> g_value_set_string (&amp;value, g_variant_get_string (settings_value, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>));</td></tr>
+<tr class="codeline" data-linenumber="611"><td class="num" id="LN611">611</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="612"><td class="num" id="LN612">612</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_ENUM (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[10])); gboolean __r<br>; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="613"><td class="num" id="LN613">613</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="614"><td class="num" id="LN614">614</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="615"><td class="num" id="LN615">615</td><td class="line"> <span class='keyword'>if</span> (!g_variant_is_of_type (settings_value, <span class='macro'>G_VARIANT_TYPE_STRING<span class='macro_popup'>((const GVariantType *) "s")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="616"><td class="num" id="LN616">616</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="617"><td class="num" id="LN617">617</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="618"><td class="num" id="LN618">618</td><td class="line"> g_value_set_enum (&amp;value, g_settings_get_enum (settings, key));</td></tr>
+<tr class="codeline" data-linenumber="619"><td class="num" id="LN619">619</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="620"><td class="num" id="LN620">620</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span> == <span class='macro'>GDK_TYPE_RGBA<span class='macro_popup'>(gdk_rgba_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="621"><td class="num" id="LN621">621</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="622"><td class="num" id="LN622">622</td><td class="line"> GdkRGBA color;</td></tr>
+<tr class="codeline" data-linenumber="623"><td class="num" id="LN623">623</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="624"><td class="num" id="LN624">624</td><td class="line"> <span class='keyword'>if</span> (!g_variant_is_of_type (settings_value, <span class='macro'>G_VARIANT_TYPE_STRING<span class='macro_popup'>((const GVariantType *) "s")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="625"><td class="num" id="LN625">625</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="626"><td class="num" id="LN626">626</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="627"><td class="num" id="LN627">627</td><td class="line"> <span class='keyword'>if</span> (!gdk_rgba_parse (&amp;color, g_variant_get_string (settings_value, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)))</td></tr>
+<tr class="codeline" data-linenumber="628"><td class="num" id="LN628">628</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="629"><td class="num" id="LN629">629</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="630"><td class="num" id="LN630">630</td><td class="line"> g_value_set_boxed (&amp;value, &amp;color);</td></tr>
+<tr class="codeline" data-linenumber="631"><td class="num" id="LN631">631</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="632"><td class="num" id="LN632">632</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span> == <span class='macro'>PANGO_TYPE_FONT_DESCRIPTION<span class='macro_popup'>(pango_font_description_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="633"><td class="num" id="LN633">633</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="634"><td class="num" id="LN634">634</td><td class="line"> <span class='keyword'>if</span> (!g_variant_is_of_type (settings_value, <span class='macro'>G_VARIANT_TYPE_STRING<span class='macro_popup'>((const GVariantType *) "s")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="635"><td class="num" id="LN635">635</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="636"><td class="num" id="LN636">636</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="637"><td class="num" id="LN637">637</td><td class="line"> g_value_take_boxed (&amp;value, pango_font_description_from_string (g_variant_get_string (settings_value, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)));</td></tr>
+<tr class="codeline" data-linenumber="638"><td class="num" id="LN638">638</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="639"><td class="num" id="LN639">639</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_DOUBLE (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[13])); gboolean __r<br>; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="640"><td class="num" id="LN640">640</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="641"><td class="num" id="LN641">641</td><td class="line"> <span class='keyword'>if</span> (!g_variant_is_of_type (settings_value, <span class="mrange"><span class="mrange"><span class='macro'>G_VARIANT_TYPE_DOUBLE<span class='macro_popup'>((const GVariantType *) "d")</span></span></span></span>))</td></tr>
+<tr><td class="num"></td><td class="line"><div id="EndPath" class="msg msgEvent" style="margin-left:60ex; max-width:31em">Casting a non-structure type to a structure type and accessing a field can lead to memory access errors or data corruption</div></td></tr>
+<tr class="codeline" data-linenumber="642"><td class="num" id="LN642">642</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="643"><td class="num" id="LN643">643</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="644"><td class="num" id="LN644">644</td><td class="line"> g_value_set_double (&amp;value, g_variant_get_double (settings_value));</td></tr>
+<tr class="codeline" data-linenumber="645"><td class="num" id="LN645">645</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="646"><td class="num" id="LN646">646</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_INT (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[3])); gboolean __r<br>; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="647"><td class="num" id="LN647">647</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="648"><td class="num" id="LN648">648</td><td class="line"> <span class='keyword'>if</span> (!g_variant_is_of_type (settings_value, <span class='macro'>G_VARIANT_TYPE_INT16<span class='macro_popup'>((const GVariantType *) "n")</span></span>) &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="649"><td class="num" id="LN649">649</td><td class="line"> !g_variant_is_of_type (settings_value, <span class='macro'>G_VARIANT_TYPE_INT32<span class='macro_popup'>((const GVariantType *) "i")</span></span>) &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="650"><td class="num" id="LN650">650</td><td class="line"> !g_variant_is_of_type (settings_value, <span class='macro'>G_VARIANT_TYPE_INT64<span class='macro_popup'>((const GVariantType *) "x")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="651"><td class="num" id="LN651">651</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="652"><td class="num" id="LN652">652</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="653"><td class="num" id="LN653">653</td><td class="line"> g_value_set_int (&amp;value, g_settings_get_int(settings, key));</td></tr>
+<tr class="codeline" data-linenumber="654"><td class="num" id="LN654">654</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="655"><td class="num" id="LN655">655</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_VALUE_ARRAY (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[18]) GCC warning "Deprecated pre-processor symbol"<br>
+); gboolean __r; if (!__inst) __r = (0); else if (__inst-&gt;<br>g_class &amp;&amp; __inst-&gt;g_class-&gt;g_type == __t) __r =<br> (!(0)); else __r = g_type_check_instance_is_a (__inst, __t);<br> __r; })))) GCC warning "Deprecated pre-processor symbol"
+</span></span> &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="656"><td class="num" id="LN656">656</td><td class="line"> <span class='macro'>G_PARAM_SPEC_VALUE_TYPE (G_PARAM_SPEC_VALUE_ARRAY (pspec)-&gt;element_spec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((((((GParamSpecValueArray*) (void *) g_type_check_instance_cast<br> ((GTypeInstance*) ((pspec)), ((g_param_spec_types[18]) GCC warning<br> "Deprecated pre-processor symbol"
+))))) GCC warning "Deprecated pre-processor symbol"<br>
+-&gt;element_spec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;<br>value_type)</span></span> == <span class='macro'>GDK_TYPE_RGBA<span class='macro_popup'>(gdk_rgba_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="657"><td class="num" id="LN657">657</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="658"><td class="num" id="LN658">658</td><td class="line"> <span class='keyword'>char</span> **color_strings;</td></tr>
+<tr class="codeline" data-linenumber="659"><td class="num" id="LN659">659</td><td class="line"> GdkRGBA *colors;</td></tr>
+<tr class="codeline" data-linenumber="660"><td class="num" id="LN660">660</td><td class="line"> <span class='keyword'>int</span> n_colors, i;</td></tr>
+<tr class="codeline" data-linenumber="661"><td class="num" id="LN661">661</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="662"><td class="num" id="LN662">662</td><td class="line"> <span class='keyword'>if</span> (!g_variant_is_of_type (settings_value, <span class='macro'>G_VARIANT_TYPE_STRING<span class='macro_popup'>((const GVariantType *) "s")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="663"><td class="num" id="LN663">663</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="664"><td class="num" id="LN664">664</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="665"><td class="num" id="LN665">665</td><td class="line"> color_strings = g_strsplit (g_variant_get_string (settings_value, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>), <span class='string_literal'>":"</span>, -1);</td></tr>
+<tr class="codeline" data-linenumber="666"><td class="num" id="LN666">666</td><td class="line"> <span class='keyword'>if</span> (!color_strings)</td></tr>
+<tr class="codeline" data-linenumber="667"><td class="num" id="LN667">667</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="668"><td class="num" id="LN668">668</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="669"><td class="num" id="LN669">669</td><td class="line"> n_colors = g_strv_length (color_strings);</td></tr>
+<tr class="codeline" data-linenumber="670"><td class="num" id="LN670">670</td><td class="line"> colors = <span class='macro'>g_new0 (GdkRGBA, n_colors)<span class='macro_popup'>((GdkRGBA *) g_malloc0_n ((n_colors), sizeof (GdkRGBA)))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="671"><td class="num" id="LN671">671</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; n_colors; ++i)</td></tr>
+<tr class="codeline" data-linenumber="672"><td class="num" id="LN672">672</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="673"><td class="num" id="LN673">673</td><td class="line"> <span class='keyword'>if</span> (!gdk_rgba_parse (&amp;colors[i], color_strings[i]))</td></tr>
+<tr class="codeline" data-linenumber="674"><td class="num" id="LN674">674</td><td class="line"> <span class='keyword'>continue</span>; <span class='comment'>/* ignore errors */</span></td></tr>
+<tr class="codeline" data-linenumber="675"><td class="num" id="LN675">675</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="676"><td class="num" id="LN676">676</td><td class="line"> g_strfreev (color_strings);</td></tr>
+<tr class="codeline" data-linenumber="677"><td class="num" id="LN677">677</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="678"><td class="num" id="LN678">678</td><td class="line"> <span class='comment'>/* We continue even with a palette size != TERMINAL_PALETTE_SIZE,</span></td></tr>
+<tr class="codeline" data-linenumber="679"><td class="num" id="LN679">679</td><td class="line"> <span class='comment'>* so we can change the palette size in future versions without</span></td></tr>
+<tr class="codeline" data-linenumber="680"><td class="num" id="LN680">680</td><td class="line"> <span class='comment'>* causing too many issues.</span></td></tr>
+<tr class="codeline" data-linenumber="681"><td class="num" id="LN681">681</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="682"><td class="num" id="LN682">682</td><td class="line"> set_value_from_palette (&amp;value, colors, n_colors);</td></tr>
+<tr class="codeline" data-linenumber="683"><td class="num" id="LN683">683</td><td class="line"> g_free (colors);</td></tr>
+<tr class="codeline" data-linenumber="684"><td class="num" id="LN684">684</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="685"><td class="num" id="LN685">685</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="686"><td class="num" id="LN686">686</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="687"><td class="num" id="LN687">687</td><td class="line"> g_printerr (<span class='string_literal'>"Unhandled value type %s of pspec %s\n"</span>, g_type_name (<span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span>), pspec-&gt;name);</td></tr>
+<tr class="codeline" data-linenumber="688"><td class="num" id="LN688">688</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="689"><td class="num" id="LN689">689</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="690"><td class="num" id="LN690">690</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="691"><td class="num" id="LN691">691</td><td class="line"> <span class='keyword'>if</span> (g_param_value_validate (pspec, &amp;value))</td></tr>
+<tr class="codeline" data-linenumber="692"><td class="num" id="LN692">692</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="693"><td class="num" id="LN693">693</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_PROFILE,<span class='macro_popup'>do { if (0) g_printerr("Invalid value in GSettings for key %s was changed to comply with pspec %s\n"<br>, key, pspec-&gt;name); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="694"><td class="num" id="LN694">694</td><td class="line"> <span class='string_literal'><span class='macro'>"Invalid value in GSettings for key %s was changed to comply with pspec %s\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("Invalid value in GSettings for key %s was changed to comply with pspec %s\n"<br>, key, pspec-&gt;name); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="695"><td class="num" id="LN695">695</td><td class="line"> <span class='macro'>key, pspec-&gt;name)<span class='macro_popup'>do { if (0) g_printerr("Invalid value in GSettings for key %s was changed to comply with pspec %s\n"<br>, key, pspec-&gt;name); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="696"><td class="num" id="LN696">696</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="697"><td class="num" id="LN697">697</td><td class="line"> force_set = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="698"><td class="num" id="LN698">698</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="699"><td class="num" id="LN699">699</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="700"><td class="num" id="LN700">700</td><td class="line"> <span class='comment'>/* Only set the property if the value is different than our current value,</span></td></tr>
+<tr class="codeline" data-linenumber="701"><td class="num" id="LN701">701</td><td class="line"> <span class='comment'>* so we don't go into an infinite loop.</span></td></tr>
+<tr class="codeline" data-linenumber="702"><td class="num" id="LN702">702</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="703"><td class="num" id="LN703">703</td><td class="line"> equal = values_equal (pspec, &amp;value, g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id));</td></tr>
+<tr class="codeline" data-linenumber="704"><td class="num" id="LN704">704</td><td class="line"><span class='directive'>#ifdef MATE_ENABLE_DEBUG</span></td></tr>
+<tr class="codeline" data-linenumber="705"><td class="num" id="LN705">705</td><td class="line"> <span class='macro'>_TERMINAL_DEBUG_IF (TERMINAL_DEBUG_PROFILE)<span class='macro_popup'>if (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="706"><td class="num" id="LN706">706</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="707"><td class="num" id="LN707">707</td><td class="line"> <span class='keyword'>if</span> (!equal)</td></tr>
+<tr class="codeline" data-linenumber="708"><td class="num" id="LN708">708</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_PROFILE,<span class='macro_popup'>do { if (0) g_printerr("Setting property %s to a different value\n"<br> " now: %s\n" " new: %s\n", pspec-&gt;name, g_strdup_value_contents<br> (g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id<br>)), g_strdup_value_contents (&amp;value)); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="709"><td class="num" id="LN709">709</td><td class="line"> <span class='string_literal'><span class='macro'>"Setting property %s to a different value\n"<span class='macro_popup'>do { if (0) g_printerr("Setting property %s to a different value\n"<br> " now: %s\n" " new: %s\n", pspec-&gt;name, g_strdup_value_contents<br> (g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id<br>)), g_strdup_value_contents (&amp;value)); } while (0)</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="710"><td class="num" id="LN710">710</td><td class="line"> <span class='string_literal'><span class='macro'>" now: %s\n"<span class='macro_popup'>do { if (0) g_printerr("Setting property %s to a different value\n"<br> " now: %s\n" " new: %s\n", pspec-&gt;name, g_strdup_value_contents<br> (g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id<br>)), g_strdup_value_contents (&amp;value)); } while (0)</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="711"><td class="num" id="LN711">711</td><td class="line"> <span class='string_literal'><span class='macro'>" new: %s\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("Setting property %s to a different value\n"<br> " now: %s\n" " new: %s\n", pspec-&gt;name, g_strdup_value_contents<br> (g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id<br>)), g_strdup_value_contents (&amp;value)); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="712"><td class="num" id="LN712">712</td><td class="line"> <span class='macro'>pspec-&gt;name,<span class='macro_popup'>do { if (0) g_printerr("Setting property %s to a different value\n"<br> " now: %s\n" " new: %s\n", pspec-&gt;name, g_strdup_value_contents<br> (g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id<br>)), g_strdup_value_contents (&amp;value)); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="713"><td class="num" id="LN713">713</td><td class="line"> <span class='macro'>g_strdup_value_contents (g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id)),<span class='macro_popup'>do { if (0) g_printerr("Setting property %s to a different value\n"<br> " now: %s\n" " new: %s\n", pspec-&gt;name, g_strdup_value_contents<br> (g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id<br>)), g_strdup_value_contents (&amp;value)); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="714"><td class="num" id="LN714">714</td><td class="line"> <span class='macro'>g_strdup_value_contents (&amp;value))<span class='macro_popup'>do { if (0) g_printerr("Setting property %s to a different value\n"<br> " now: %s\n" " new: %s\n", pspec-&gt;name, g_strdup_value_contents<br> (g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id<br>)), g_strdup_value_contents (&amp;value)); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="715"><td class="num" id="LN715">715</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="716"><td class="num" id="LN716">716</td><td class="line"><span class='directive'>#endif</span></td></tr>
+<tr class="codeline" data-linenumber="717"><td class="num" id="LN717">717</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="718"><td class="num" id="LN718">718</td><td class="line"> <span class='keyword'>if</span> (!equal || force_set)</td></tr>
+<tr class="codeline" data-linenumber="719"><td class="num" id="LN719">719</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="720"><td class="num" id="LN720">720</td><td class="line"> priv-&gt;gsettings_notification_pspec = pspec;</td></tr>
+<tr class="codeline" data-linenumber="721"><td class="num" id="LN721">721</td><td class="line"> g_object_set_property (<span class='macro'>G_OBJECT (profile)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((profile)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, pspec-&gt;name, &amp;value);</td></tr>
+<tr class="codeline" data-linenumber="722"><td class="num" id="LN722">722</td><td class="line"> priv-&gt;gsettings_notification_pspec = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="723"><td class="num" id="LN723">723</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="724"><td class="num" id="LN724">724</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="725"><td class="num" id="LN725">725</td><td class="line">out:</td></tr>
+<tr class="codeline" data-linenumber="726"><td class="num" id="LN726">726</td><td class="line"> <span class='comment'>/* FIXME: if we arrive here through goto in the error cases,</span></td></tr>
+<tr class="codeline" data-linenumber="727"><td class="num" id="LN727">727</td><td class="line"> <span class='comment'>* should we maybe reset the property to its default value?</span></td></tr>
+<tr class="codeline" data-linenumber="728"><td class="num" id="LN728">728</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="729"><td class="num" id="LN729">729</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="730"><td class="num" id="LN730">730</td><td class="line"> g_value_unset (&amp;value);</td></tr>
+<tr class="codeline" data-linenumber="731"><td class="num" id="LN731">731</td><td class="line"> g_variant_unref (settings_value);</td></tr>
+<tr class="codeline" data-linenumber="732"><td class="num" id="LN732">732</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="733"><td class="num" id="LN733">733</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="734"><td class="num" id="LN734">734</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="735"><td class="num" id="LN735">735</td><td class="line">terminal_profile_gsettings_changeset_add (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="736"><td class="num" id="LN736">736</td><td class="line"> GSettings *changeset,</td></tr>
+<tr class="codeline" data-linenumber="737"><td class="num" id="LN737">737</td><td class="line"> GParamSpec *pspec)</td></tr>
+<tr class="codeline" data-linenumber="738"><td class="num" id="LN738">738</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="739"><td class="num" id="LN739">739</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="740"><td class="num" id="LN740">740</td><td class="line"> <span class='keyword'>char</span> *key;</td></tr>
+<tr class="codeline" data-linenumber="741"><td class="num" id="LN741">741</td><td class="line"> <span class='keyword'>const</span> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="742"><td class="num" id="LN742">742</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="743"><td class="num" id="LN743">743</td><td class="line"> <span class='comment'>/* FIXME: do this? */</span></td></tr>
+<tr class="codeline" data-linenumber="744"><td class="num" id="LN744">744</td><td class="line"><span class='directive'>#if 0</span></td></tr>
+<tr class="codeline" data-linenumber="745"><td class="num" id="LN745">745</td><td class="line"> <span class='keyword'>if</span> (priv-&gt;locked[pspec-&gt;param_id])</td></tr>
+<tr class="codeline" data-linenumber="746"><td class="num" id="LN746">746</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="747"><td class="num" id="LN747">747</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="748"><td class="num" id="LN748">748</td><td class="line"> <span class='keyword'>if</span> (!g_settings_is_writable (priv-&gt;settings, gsettings_key, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="749"><td class="num" id="LN749">749</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="750"><td class="num" id="LN750">750</td><td class="line"><span class='directive'>#endif</span></td></tr>
+<tr class="codeline" data-linenumber="751"><td class="num" id="LN751">751</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="752"><td class="num" id="LN752">752</td><td class="line"> key = g_param_spec_get_qdata (pspec, gsettings_key_quark);</td></tr>
+<tr class="codeline" data-linenumber="753"><td class="num" id="LN753">753</td><td class="line"> <span class='keyword'>if</span> (!key)</td></tr>
+<tr class="codeline" data-linenumber="754"><td class="num" id="LN754">754</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="755"><td class="num" id="LN755">755</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="756"><td class="num" id="LN756">756</td><td class="line"> value = g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id);</td></tr>
+<tr class="codeline" data-linenumber="757"><td class="num" id="LN757">757</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="758"><td class="num" id="LN758">758</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_PROFILE,<span class='macro_popup'>do { if (0) g_printerr("Adding pspec %s with value %s to the GSettings changeset\n"<br>, pspec-&gt;name, g_strdup_value_contents (value)); } while (<br>0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="759"><td class="num" id="LN759">759</td><td class="line"> <span class='string_literal'><span class='macro'>"Adding pspec %s with value %s to the GSettings changeset\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("Adding pspec %s with value %s to the GSettings changeset\n"<br>, pspec-&gt;name, g_strdup_value_contents (value)); } while (<br>0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="760"><td class="num" id="LN760">760</td><td class="line"> <span class='macro'>pspec-&gt;name, g_strdup_value_contents (value))<span class='macro_popup'>do { if (0) g_printerr("Adding pspec %s with value %s to the GSettings changeset\n"<br>, pspec-&gt;name, g_strdup_value_contents (value)); } while (<br>0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="761"><td class="num" id="LN761">761</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="762"><td class="num" id="LN762">762</td><td class="line"> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_BOOLEAN (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[2])); gboolean __r<br>; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="763"><td class="num" id="LN763">763</td><td class="line"> g_settings_set_boolean (changeset, key, g_value_get_boolean (value));</td></tr>
+<tr class="codeline" data-linenumber="764"><td class="num" id="LN764">764</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_STRING (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[14])); gboolean __r<br>; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="765"><td class="num" id="LN765">765</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="766"><td class="num" id="LN766">766</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *str;</td></tr>
+<tr class="codeline" data-linenumber="767"><td class="num" id="LN767">767</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="768"><td class="num" id="LN768">768</td><td class="line"> str = g_value_get_string (value);</td></tr>
+<tr class="codeline" data-linenumber="769"><td class="num" id="LN769">769</td><td class="line"> g_settings_set_string (changeset, key, str ? str : <span class='string_literal'>""</span>);</td></tr>
+<tr class="codeline" data-linenumber="770"><td class="num" id="LN770">770</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="771"><td class="num" id="LN771">771</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_ENUM (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[10])); gboolean __r<br>; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="772"><td class="num" id="LN772">772</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="773"><td class="num" id="LN773">773</td><td class="line"> <span class='keyword'>const</span> GEnumValue *eval;</td></tr>
+<tr class="codeline" data-linenumber="774"><td class="num" id="LN774">774</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="775"><td class="num" id="LN775">775</td><td class="line"> eval = g_enum_get_value (<span class='macro'>G_PARAM_SPEC_ENUM (pspec)<span class='macro_popup'>((((GParamSpecEnum*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), ((g_param_spec_types[10]))))))</span></span>-&gt;enum_class, g_value_get_enum (value));</td></tr>
+<tr class="codeline" data-linenumber="776"><td class="num" id="LN776">776</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="777"><td class="num" id="LN777">777</td><td class="line"> g_settings_set_enum (changeset, key, eval-&gt;value);</td></tr>
+<tr class="codeline" data-linenumber="778"><td class="num" id="LN778">778</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="779"><td class="num" id="LN779">779</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span> == <span class='macro'>GDK_TYPE_RGBA<span class='macro_popup'>(gdk_rgba_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="780"><td class="num" id="LN780">780</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="781"><td class="num" id="LN781">781</td><td class="line"> GdkRGBA *color;</td></tr>
+<tr class="codeline" data-linenumber="782"><td class="num" id="LN782">782</td><td class="line"> <span class='keyword'>char</span> str[16];</td></tr>
+<tr class="codeline" data-linenumber="783"><td class="num" id="LN783">783</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="784"><td class="num" id="LN784">784</td><td class="line"> color = g_value_get_boxed (value);</td></tr>
+<tr class="codeline" data-linenumber="785"><td class="num" id="LN785">785</td><td class="line"> <span class='keyword'>if</span> (!color)</td></tr>
+<tr class="codeline" data-linenumber="786"><td class="num" id="LN786">786</td><td class="line"> <span class='keyword'>goto</span> cleanup;</td></tr>
+<tr class="codeline" data-linenumber="787"><td class="num" id="LN787">787</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="788"><td class="num" id="LN788">788</td><td class="line"> g_snprintf (str, <span class='keyword'>sizeof</span> (str),</td></tr>
+<tr class="codeline" data-linenumber="789"><td class="num" id="LN789">789</td><td class="line"> <span class='string_literal'>"#%04X%04X%04X"</span>,</td></tr>
+<tr class="codeline" data-linenumber="790"><td class="num" id="LN790">790</td><td class="line"> (guint) (color-&gt;red * 65535),</td></tr>
+<tr class="codeline" data-linenumber="791"><td class="num" id="LN791">791</td><td class="line"> (guint) (color-&gt;green * 65535),</td></tr>
+<tr class="codeline" data-linenumber="792"><td class="num" id="LN792">792</td><td class="line"> (guint) (color-&gt;blue * 65535));</td></tr>
+<tr class="codeline" data-linenumber="793"><td class="num" id="LN793">793</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="794"><td class="num" id="LN794">794</td><td class="line"> g_settings_set_string (changeset, key, str);</td></tr>
+<tr class="codeline" data-linenumber="795"><td class="num" id="LN795">795</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="796"><td class="num" id="LN796">796</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span> == <span class='macro'>PANGO_TYPE_FONT_DESCRIPTION<span class='macro_popup'>(pango_font_description_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="797"><td class="num" id="LN797">797</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="798"><td class="num" id="LN798">798</td><td class="line"> PangoFontDescription *font_desc;</td></tr>
+<tr class="codeline" data-linenumber="799"><td class="num" id="LN799">799</td><td class="line"> <span class='keyword'>char</span> *font;</td></tr>
+<tr class="codeline" data-linenumber="800"><td class="num" id="LN800">800</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="801"><td class="num" id="LN801">801</td><td class="line"> font_desc = g_value_get_boxed (value);</td></tr>
+<tr class="codeline" data-linenumber="802"><td class="num" id="LN802">802</td><td class="line"> <span class='keyword'>if</span> (!font_desc)</td></tr>
+<tr class="codeline" data-linenumber="803"><td class="num" id="LN803">803</td><td class="line"> <span class='keyword'>goto</span> cleanup;</td></tr>
+<tr class="codeline" data-linenumber="804"><td class="num" id="LN804">804</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="805"><td class="num" id="LN805">805</td><td class="line"> font = pango_font_description_to_string (font_desc);</td></tr>
+<tr class="codeline" data-linenumber="806"><td class="num" id="LN806">806</td><td class="line"> g_settings_set_string (changeset, key, font);</td></tr>
+<tr class="codeline" data-linenumber="807"><td class="num" id="LN807">807</td><td class="line"> g_free (font);</td></tr>
+<tr class="codeline" data-linenumber="808"><td class="num" id="LN808">808</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="809"><td class="num" id="LN809">809</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_DOUBLE (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[13])); gboolean __r<br>; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="810"><td class="num" id="LN810">810</td><td class="line"> g_settings_set_double (changeset, key, g_value_get_double (value));</td></tr>
+<tr class="codeline" data-linenumber="811"><td class="num" id="LN811">811</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_INT (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[3])); gboolean __r<br>; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="812"><td class="num" id="LN812">812</td><td class="line"> g_settings_set_int (changeset, key, g_value_get_int (value));</td></tr>
+<tr class="codeline" data-linenumber="813"><td class="num" id="LN813">813</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_VALUE_ARRAY (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[18]) GCC warning "Deprecated pre-processor symbol"<br>
+); gboolean __r; if (!__inst) __r = (0); else if (__inst-&gt;<br>g_class &amp;&amp; __inst-&gt;g_class-&gt;g_type == __t) __r =<br> (!(0)); else __r = g_type_check_instance_is_a (__inst, __t);<br> __r; })))) GCC warning "Deprecated pre-processor symbol"
+</span></span> &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="814"><td class="num" id="LN814">814</td><td class="line"> <span class='macro'>G_PARAM_SPEC_VALUE_TYPE (G_PARAM_SPEC_VALUE_ARRAY (pspec)-&gt;element_spec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((((((GParamSpecValueArray*) (void *) g_type_check_instance_cast<br> ((GTypeInstance*) ((pspec)), ((g_param_spec_types[18]) GCC warning<br> "Deprecated pre-processor symbol"
+))))) GCC warning "Deprecated pre-processor symbol"<br>
+-&gt;element_spec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;<br>value_type)</span></span> == <span class='macro'>GDK_TYPE_RGBA<span class='macro_popup'>(gdk_rgba_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="815"><td class="num" id="LN815">815</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="816"><td class="num" id="LN816">816</td><td class="line"> GValueArray *array;</td></tr>
+<tr class="codeline" data-linenumber="817"><td class="num" id="LN817">817</td><td class="line"> GString *string;</td></tr>
+<tr class="codeline" data-linenumber="818"><td class="num" id="LN818">818</td><td class="line"> guint n_colors, i;</td></tr>
+<tr class="codeline" data-linenumber="819"><td class="num" id="LN819">819</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="820"><td class="num" id="LN820">820</td><td class="line"> <span class='comment'>/* We need to do this ourselves, because the gtk_color_selection_palette_to_string</span></td></tr>
+<tr class="codeline" data-linenumber="821"><td class="num" id="LN821">821</td><td class="line"> <span class='comment'>* does not carry all the bytes, and xterm's palette is messed up...</span></td></tr>
+<tr class="codeline" data-linenumber="822"><td class="num" id="LN822">822</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="823"><td class="num" id="LN823">823</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="824"><td class="num" id="LN824">824</td><td class="line"> array = g_value_get_boxed (value);</td></tr>
+<tr class="codeline" data-linenumber="825"><td class="num" id="LN825">825</td><td class="line"> <span class='keyword'>if</span> (!array)</td></tr>
+<tr class="codeline" data-linenumber="826"><td class="num" id="LN826">826</td><td class="line"> <span class='keyword'>goto</span> cleanup;</td></tr>
+<tr class="codeline" data-linenumber="827"><td class="num" id="LN827">827</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="828"><td class="num" id="LN828">828</td><td class="line"> n_colors = array-&gt;n_values;</td></tr>
+<tr class="codeline" data-linenumber="829"><td class="num" id="LN829">829</td><td class="line"> string = g_string_sized_new (n_colors * (1 <span class='comment'>/* # */</span> + 3 * 4) + n_colors <span class='comment'>/* : separators and terminating \0 */</span>);</td></tr>
+<tr class="codeline" data-linenumber="830"><td class="num" id="LN830">830</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; n_colors; ++i)</td></tr>
+<tr class="codeline" data-linenumber="831"><td class="num" id="LN831">831</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="832"><td class="num" id="LN832">832</td><td class="line"> GdkRGBA *color;</td></tr>
+<tr class="codeline" data-linenumber="833"><td class="num" id="LN833">833</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="834"><td class="num" id="LN834">834</td><td class="line"> <span class='keyword'>if</span> (i &gt; 0)</td></tr>
+<tr class="codeline" data-linenumber="835"><td class="num" id="LN835">835</td><td class="line"> <span class='macro'>g_string_append_c (string, ':')<span class='macro_popup'>g_string_append_c_inline (string, ':')</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="836"><td class="num" id="LN836">836</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="837"><td class="num" id="LN837">837</td><td class="line"> color = g_value_get_boxed (g_value_array_get_nth (array, i));</td></tr>
+<tr class="codeline" data-linenumber="838"><td class="num" id="LN838">838</td><td class="line"> <span class='keyword'>if</span> (!color)</td></tr>
+<tr class="codeline" data-linenumber="839"><td class="num" id="LN839">839</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="840"><td class="num" id="LN840">840</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="841"><td class="num" id="LN841">841</td><td class="line"> g_string_append_printf (string,</td></tr>
+<tr class="codeline" data-linenumber="842"><td class="num" id="LN842">842</td><td class="line"> <span class='string_literal'>"#%04X%04X%04X"</span>,</td></tr>
+<tr class="codeline" data-linenumber="843"><td class="num" id="LN843">843</td><td class="line"> (guint) (color-&gt;red * 65535),</td></tr>
+<tr class="codeline" data-linenumber="844"><td class="num" id="LN844">844</td><td class="line"> (guint) (color-&gt;green * 65535),</td></tr>
+<tr class="codeline" data-linenumber="845"><td class="num" id="LN845">845</td><td class="line"> (guint) (color-&gt;blue * 65535));</td></tr>
+<tr class="codeline" data-linenumber="846"><td class="num" id="LN846">846</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="847"><td class="num" id="LN847">847</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="848"><td class="num" id="LN848">848</td><td class="line"> g_settings_set_string (changeset, key, string-&gt;str);</td></tr>
+<tr class="codeline" data-linenumber="849"><td class="num" id="LN849">849</td><td class="line"> <span class='macro'>g_string_free (string, TRUE)<span class='macro_popup'>(__builtin_constant_p ((!(0))) ? (((!(0))) ? (g_string_free) (<br>(string), ((!(0)))) : g_string_free_and_steal (string)) : (g_string_free<br>) ((string), ((!(0)))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="850"><td class="num" id="LN850">850</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="851"><td class="num" id="LN851">851</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="852"><td class="num" id="LN852">852</td><td class="line"> g_printerr (<span class='string_literal'>"Unhandled value type %s of pspec %s\n"</span>, g_type_name (<span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span>), pspec-&gt;name);</td></tr>
+<tr class="codeline" data-linenumber="853"><td class="num" id="LN853">853</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="854"><td class="num" id="LN854">854</td><td class="line">cleanup:</td></tr>
+<tr class="codeline" data-linenumber="855"><td class="num" id="LN855">855</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="856"><td class="num" id="LN856">856</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="857"><td class="num" id="LN857">857</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="858"><td class="num" id="LN858">858</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="859"><td class="num" id="LN859">859</td><td class="line">terminal_profile_save (TerminalProfile *profile)</td></tr>
+<tr class="codeline" data-linenumber="860"><td class="num" id="LN860">860</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="861"><td class="num" id="LN861">861</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="862"><td class="num" id="LN862">862</td><td class="line"> GSettings *changeset;</td></tr>
+<tr class="codeline" data-linenumber="863"><td class="num" id="LN863">863</td><td class="line"> GSList *l;</td></tr>
+<tr class="codeline" data-linenumber="864"><td class="num" id="LN864">864</td><td class="line"> gchar *concat;</td></tr>
+<tr class="codeline" data-linenumber="865"><td class="num" id="LN865">865</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="866"><td class="num" id="LN866">866</td><td class="line"> priv-&gt;save_idle_id = 0;</td></tr>
+<tr class="codeline" data-linenumber="867"><td class="num" id="LN867">867</td><td class="line"> concat = g_strconcat (<span class='macro'>CONF_PROFILE_PREFIX<span class='macro_popup'>"/org/mate/terminal/profiles/"</span></span>, priv-&gt;profile_dir,<span class='string_literal'>"/"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="868"><td class="num" id="LN868">868</td><td class="line"> changeset = g_settings_new_with_path (<span class='macro'>CONF_PROFILE_SCHEMA<span class='macro_popup'>"org.mate.terminal" ".profile"</span></span>, concat);</td></tr>
+<tr class="codeline" data-linenumber="869"><td class="num" id="LN869">869</td><td class="line"> g_free (concat);</td></tr>
+<tr class="codeline" data-linenumber="870"><td class="num" id="LN870">870</td><td class="line"> g_settings_delay (changeset);</td></tr>
+<tr class="codeline" data-linenumber="871"><td class="num" id="LN871">871</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="872"><td class="num" id="LN872">872</td><td class="line"> <span class='keyword'>for</span> (l = priv-&gt;dirty_pspecs; l != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; l = l-&gt;next)</td></tr>
+<tr class="codeline" data-linenumber="873"><td class="num" id="LN873">873</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="874"><td class="num" id="LN874">874</td><td class="line"> GParamSpec *pspec = (GParamSpec *) l-&gt;data;</td></tr>
+<tr class="codeline" data-linenumber="875"><td class="num" id="LN875">875</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="876"><td class="num" id="LN876">876</td><td class="line"> <span class='keyword'>if</span> (pspec-&gt;owner_type != <span class='macro'>TERMINAL_TYPE_PROFILE<span class='macro_popup'>(terminal_profile_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="877"><td class="num" id="LN877">877</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="878"><td class="num" id="LN878">878</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="879"><td class="num" id="LN879">879</td><td class="line"> <span class='keyword'>if</span> ((pspec-&gt;flags &amp; G_PARAM_WRITABLE) == 0)</td></tr>
+<tr class="codeline" data-linenumber="880"><td class="num" id="LN880">880</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="881"><td class="num" id="LN881">881</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="882"><td class="num" id="LN882">882</td><td class="line"> terminal_profile_gsettings_changeset_add (profile, changeset, pspec);</td></tr>
+<tr class="codeline" data-linenumber="883"><td class="num" id="LN883">883</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="884"><td class="num" id="LN884">884</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="885"><td class="num" id="LN885">885</td><td class="line"> g_slist_free (priv-&gt;dirty_pspecs);</td></tr>
+<tr class="codeline" data-linenumber="886"><td class="num" id="LN886">886</td><td class="line"> priv-&gt;dirty_pspecs = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="887"><td class="num" id="LN887">887</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="888"><td class="num" id="LN888">888</td><td class="line"> g_settings_apply (changeset);</td></tr>
+<tr class="codeline" data-linenumber="889"><td class="num" id="LN889">889</td><td class="line"> g_object_unref (changeset);</td></tr>
+<tr class="codeline" data-linenumber="890"><td class="num" id="LN890">890</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="891"><td class="num" id="LN891">891</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="892"><td class="num" id="LN892">892</td><td class="line"><span class='keyword'>static</span> gboolean</td></tr>
+<tr class="codeline" data-linenumber="893"><td class="num" id="LN893">893</td><td class="line">terminal_profile_save_idle_cb (TerminalProfile *profile)</td></tr>
+<tr class="codeline" data-linenumber="894"><td class="num" id="LN894">894</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="895"><td class="num" id="LN895">895</td><td class="line"> terminal_profile_save (profile);</td></tr>
+<tr class="codeline" data-linenumber="896"><td class="num" id="LN896">896</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="897"><td class="num" id="LN897">897</td><td class="line"> <span class='comment'>/* don't run again */</span></td></tr>
+<tr class="codeline" data-linenumber="898"><td class="num" id="LN898">898</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="899"><td class="num" id="LN899">899</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="900"><td class="num" id="LN900">900</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="901"><td class="num" id="LN901">901</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="902"><td class="num" id="LN902">902</td><td class="line">terminal_profile_schedule_save (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="903"><td class="num" id="LN903">903</td><td class="line"> GParamSpec *pspec)</td></tr>
+<tr class="codeline" data-linenumber="904"><td class="num" id="LN904">904</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="905"><td class="num" id="LN905">905</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="906"><td class="num" id="LN906">906</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="907"><td class="num" id="LN907">907</td><td class="line"> <span class='macro'>g_assert (pspec != NULL)<span class='macro_popup'>do { if (pspec != ((void*)0)) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-profile.c", 907, ((const char*) (__func__<br>)), "pspec != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="908"><td class="num" id="LN908">908</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="909"><td class="num" id="LN909">909</td><td class="line"> <span class='keyword'>if</span> (!g_slist_find (priv-&gt;dirty_pspecs, pspec))</td></tr>
+<tr class="codeline" data-linenumber="910"><td class="num" id="LN910">910</td><td class="line"> priv-&gt;dirty_pspecs = g_slist_prepend (priv-&gt;dirty_pspecs, pspec);</td></tr>
+<tr class="codeline" data-linenumber="911"><td class="num" id="LN911">911</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="912"><td class="num" id="LN912">912</td><td class="line"> <span class='keyword'>if</span> (priv-&gt;save_idle_id != 0)</td></tr>
+<tr class="codeline" data-linenumber="913"><td class="num" id="LN913">913</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="914"><td class="num" id="LN914">914</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="915"><td class="num" id="LN915">915</td><td class="line"> priv-&gt;save_idle_id = g_idle_add ((GSourceFunc) terminal_profile_save_idle_cb, profile);</td></tr>
+<tr class="codeline" data-linenumber="916"><td class="num" id="LN916">916</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="917"><td class="num" id="LN917">917</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="918"><td class="num" id="LN918">918</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="919"><td class="num" id="LN919">919</td><td class="line">terminal_profile_init (TerminalProfile *profile)</td></tr>
+<tr class="codeline" data-linenumber="920"><td class="num" id="LN920">920</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="921"><td class="num" id="LN921">921</td><td class="line"> TerminalProfilePrivate *priv;</td></tr>
+<tr class="codeline" data-linenumber="922"><td class="num" id="LN922">922</td><td class="line"> GObjectClass *object_class;</td></tr>
+<tr class="codeline" data-linenumber="923"><td class="num" id="LN923">923</td><td class="line"> GParamSpec **pspecs;</td></tr>
+<tr class="codeline" data-linenumber="924"><td class="num" id="LN924">924</td><td class="line"> guint n_pspecs, i;</td></tr>
+<tr class="codeline" data-linenumber="925"><td class="num" id="LN925">925</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="926"><td class="num" id="LN926">926</td><td class="line"> priv = profile-&gt;priv = terminal_profile_get_instance_private (profile);</td></tr>
+<tr class="codeline" data-linenumber="927"><td class="num" id="LN927">927</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="928"><td class="num" id="LN928">928</td><td class="line"> priv-&gt;gsettings_notification_pspec = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="929"><td class="num" id="LN929">929</td><td class="line"> priv-&gt;locked = <span class='macro'>g_new0 (gboolean, LAST_PROP)<span class='macro_popup'>((gboolean *) g_malloc0_n ((LAST_PROP), sizeof (gboolean)))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="930"><td class="num" id="LN930">930</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="931"><td class="num" id="LN931">931</td><td class="line"> priv-&gt;properties = g_value_array_new (LAST_PROP);</td></tr>
+<tr class="codeline" data-linenumber="932"><td class="num" id="LN932">932</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; LAST_PROP; ++i)</td></tr>
+<tr class="codeline" data-linenumber="933"><td class="num" id="LN933">933</td><td class="line"> g_value_array_append (priv-&gt;properties, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="934"><td class="num" id="LN934">934</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="935"><td class="num" id="LN935">935</td><td class="line"> pspecs = g_object_class_list_properties (<span class='macro'>G_OBJECT_CLASS (TERMINAL_PROFILE_GET_CLASS (profile))<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((((((TerminalProfileClass*) (((GTypeInstance*) ((profile)<br>))-&gt;g_class)))))), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, &amp;n_pspecs);</td></tr>
+<tr class="codeline" data-linenumber="936"><td class="num" id="LN936">936</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; n_pspecs; ++i)</td></tr>
+<tr class="codeline" data-linenumber="937"><td class="num" id="LN937">937</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="938"><td class="num" id="LN938">938</td><td class="line"> GParamSpec *pspec = pspecs[i];</td></tr>
+<tr class="codeline" data-linenumber="939"><td class="num" id="LN939">939</td><td class="line"> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="940"><td class="num" id="LN940">940</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="941"><td class="num" id="LN941">941</td><td class="line"> <span class='keyword'>if</span> (pspec-&gt;owner_type != <span class='macro'>TERMINAL_TYPE_PROFILE<span class='macro_popup'>(terminal_profile_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="942"><td class="num" id="LN942">942</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="943"><td class="num" id="LN943">943</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="944"><td class="num" id="LN944">944</td><td class="line"> <span class='macro'>g_assert (pspec-&gt;param_id &lt; LAST_PROP)<span class='macro_popup'>do { if (pspec-&gt;param_id &lt; LAST_PROP) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-profile.c", 944, ((const char*) (__func__<br>)), "pspec-&gt;param_id &lt; LAST_PROP"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="945"><td class="num" id="LN945">945</td><td class="line"> value = g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id);</td></tr>
+<tr class="codeline" data-linenumber="946"><td class="num" id="LN946">946</td><td class="line"> g_value_init (value, pspec-&gt;value_type);</td></tr>
+<tr class="codeline" data-linenumber="947"><td class="num" id="LN947">947</td><td class="line"> g_param_value_set_default (pspec, value);</td></tr>
+<tr class="codeline" data-linenumber="948"><td class="num" id="LN948">948</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="949"><td class="num" id="LN949">949</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="950"><td class="num" id="LN950">950</td><td class="line"> g_free (pspecs);</td></tr>
+<tr class="codeline" data-linenumber="951"><td class="num" id="LN951">951</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="952"><td class="num" id="LN952">952</td><td class="line"> <span class='comment'>/* A few properties don't have defaults via the param spec; set them explicitly */</span></td></tr>
+<tr class="codeline" data-linenumber="953"><td class="num" id="LN953">953</td><td class="line"> object_class = <span class='macro'>G_OBJECT_CLASS (TERMINAL_PROFILE_GET_CLASS (profile))<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((((((TerminalProfileClass*) (((GTypeInstance*) ((profile)<br>))-&gt;g_class)))))), (((GType) ((20) &lt;&lt; (2))))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="954"><td class="num" id="LN954">954</td><td class="line"> terminal_profile_reset_property_internal (profile, g_object_class_find_property (object_class, <span class='macro'>TERMINAL_PROFILE_FOREGROUND_COLOR<span class='macro_popup'>"foreground-color"</span></span>), <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="955"><td class="num" id="LN955">955</td><td class="line"> terminal_profile_reset_property_internal (profile, g_object_class_find_property (object_class, <span class='macro'>TERMINAL_PROFILE_BOLD_COLOR<span class='macro_popup'>"bold-color"</span></span>), <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="956"><td class="num" id="LN956">956</td><td class="line"> terminal_profile_reset_property_internal (profile, g_object_class_find_property (object_class, <span class='macro'>TERMINAL_PROFILE_BACKGROUND_COLOR<span class='macro_popup'>"background-color"</span></span>), <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="957"><td class="num" id="LN957">957</td><td class="line"> terminal_profile_reset_property_internal (profile, g_object_class_find_property (object_class, <span class='macro'>TERMINAL_PROFILE_FONT<span class='macro_popup'>"font"</span></span>), <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="958"><td class="num" id="LN958">958</td><td class="line"> terminal_profile_reset_property_internal (profile, g_object_class_find_property (object_class, <span class='macro'>TERMINAL_PROFILE_PALETTE<span class='macro_popup'>"palette"</span></span>), <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="959"><td class="num" id="LN959">959</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="960"><td class="num" id="LN960">960</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="961"><td class="num" id="LN961">961</td><td class="line"><span class='keyword'>static</span> GObject *</td></tr>
+<tr class="codeline" data-linenumber="962"><td class="num" id="LN962">962</td><td class="line">terminal_profile_constructor (GType type,</td></tr>
+<tr class="codeline" data-linenumber="963"><td class="num" id="LN963">963</td><td class="line"> guint n_construct_properties,</td></tr>
+<tr class="codeline" data-linenumber="964"><td class="num" id="LN964">964</td><td class="line"> GObjectConstructParam *construct_params)</td></tr>
+<tr class="codeline" data-linenumber="965"><td class="num" id="LN965">965</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="966"><td class="num" id="LN966">966</td><td class="line"> GObject *object;</td></tr>
+<tr class="codeline" data-linenumber="967"><td class="num" id="LN967">967</td><td class="line"> TerminalProfile *profile;</td></tr>
+<tr class="codeline" data-linenumber="968"><td class="num" id="LN968">968</td><td class="line"> TerminalProfilePrivate *priv;</td></tr>
+<tr class="codeline" data-linenumber="969"><td class="num" id="LN969">969</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *name;</td></tr>
+<tr class="codeline" data-linenumber="970"><td class="num" id="LN970">970</td><td class="line"> GParamSpec **pspecs;</td></tr>
+<tr class="codeline" data-linenumber="971"><td class="num" id="LN971">971</td><td class="line"> guint n_pspecs, i;</td></tr>
+<tr class="codeline" data-linenumber="972"><td class="num" id="LN972">972</td><td class="line"> gchar *concat;</td></tr>
+<tr class="codeline" data-linenumber="973"><td class="num" id="LN973">973</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="974"><td class="num" id="LN974">974</td><td class="line"> object = <span class='macro'>G_OBJECT_CLASS (terminal_profile_parent_class)<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((terminal_profile_parent_class)), (((GType) ((20) &lt;&lt;<br> (2))))))))</span></span>-&gt;constructor</td></tr>
+<tr class="codeline" data-linenumber="975"><td class="num" id="LN975">975</td><td class="line"> (type, n_construct_properties, construct_params);</td></tr>
+<tr class="codeline" data-linenumber="976"><td class="num" id="LN976">976</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="977"><td class="num" id="LN977">977</td><td class="line"> profile = <span class='macro'>TERMINAL_PROFILE (object)<span class='macro_popup'>((((TerminalProfile*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((object)), ((terminal_profile_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="978"><td class="num" id="LN978">978</td><td class="line"> priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="979"><td class="num" id="LN979">979</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="980"><td class="num" id="LN980">980</td><td class="line"> name = g_value_get_string (g_value_array_get_nth (priv-&gt;properties, PROP_NAME));</td></tr>
+<tr class="codeline" data-linenumber="981"><td class="num" id="LN981">981</td><td class="line"> <span class='macro'>g_assert (name != NULL)<span class='macro_popup'>do { if (name != ((void*)0)) ; else g_assertion_message_expr (<br>((gchar*) 0), "terminal-profile.c", 981, ((const char*) (__func__<br>)), "name != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="982"><td class="num" id="LN982">982</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="983"><td class="num" id="LN983">983</td><td class="line"> concat = g_strconcat (<span class='macro'>CONF_PROFILE_PREFIX<span class='macro_popup'>"/org/mate/terminal/profiles/"</span></span>, name, <span class='string_literal'>"/"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="984"><td class="num" id="LN984">984</td><td class="line"> priv-&gt;settings = g_settings_new_with_path (<span class='macro'>CONF_PROFILE_SCHEMA<span class='macro_popup'>"org.mate.terminal" ".profile"</span></span>, concat);</td></tr>
+<tr class="codeline" data-linenumber="985"><td class="num" id="LN985">985</td><td class="line"> <span class='macro'>g_assert (priv-&gt;settings != NULL)<span class='macro_popup'>do { if (priv-&gt;settings != ((void*)0)) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-profile.c", 985, ((const char*) (__func__<br>)), "priv-&gt;settings != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="986"><td class="num" id="LN986">986</td><td class="line"> g_free (concat);</td></tr>
+<tr class="codeline" data-linenumber="987"><td class="num" id="LN987">987</td><td class="line"> concat = g_strconcat(<span class='string_literal'>"changed::"</span>, priv-&gt;profile_dir, <span class='string_literal'>"/"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="988"><td class="num" id="LN988">988</td><td class="line"> <span class='macro'>g_signal_connect (priv-&gt;settings,<span class='macro_popup'>g_signal_connect_data ((priv-&gt;settings), (concat), (((GCallback<br>) (terminal_profile_gsettings_notify_cb))), (profile), ((void<br>*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="989"><td class="num" id="LN989">989</td><td class="line"> <span class='macro'>concat,<span class='macro_popup'>g_signal_connect_data ((priv-&gt;settings), (concat), (((GCallback<br>) (terminal_profile_gsettings_notify_cb))), (profile), ((void<br>*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="990"><td class="num" id="LN990">990</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_profile_gsettings_notify_cb),<span class='macro_popup'>g_signal_connect_data ((priv-&gt;settings), (concat), (((GCallback<br>) (terminal_profile_gsettings_notify_cb))), (profile), ((void<br>*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="991"><td class="num" id="LN991">991</td><td class="line"> <span class='macro'>profile)<span class='macro_popup'>g_signal_connect_data ((priv-&gt;settings), (concat), (((GCallback<br>) (terminal_profile_gsettings_notify_cb))), (profile), ((void<br>*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="992"><td class="num" id="LN992">992</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="993"><td class="num" id="LN993">993</td><td class="line"> g_free (concat);</td></tr>
+<tr class="codeline" data-linenumber="994"><td class="num" id="LN994">994</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="995"><td class="num" id="LN995">995</td><td class="line"> <span class='comment'>/* Now load those properties from GSettings that were not set as construction params */</span></td></tr>
+<tr class="codeline" data-linenumber="996"><td class="num" id="LN996">996</td><td class="line"> pspecs = g_object_class_list_properties (<span class='macro'>G_OBJECT_CLASS (TERMINAL_PROFILE_GET_CLASS (profile))<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((((((TerminalProfileClass*) (((GTypeInstance*) ((profile)<br>))-&gt;g_class)))))), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, &amp;n_pspecs);</td></tr>
+<tr class="codeline" data-linenumber="997"><td class="num" id="LN997">997</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; n_pspecs; ++i)</td></tr>
+<tr class="codeline" data-linenumber="998"><td class="num" id="LN998">998</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="999"><td class="num" id="LN999">999</td><td class="line"> GParamSpec *pspec = pspecs[i];</td></tr>
+<tr class="codeline" data-linenumber="1000"><td class="num" id="LN1000">1000</td><td class="line"> guint j;</td></tr>
+<tr class="codeline" data-linenumber="1001"><td class="num" id="LN1001">1001</td><td class="line"> gboolean is_construct = <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1002"><td class="num" id="LN1002">1002</td><td class="line"> <span class='keyword'>char</span> *key;</td></tr>
+<tr class="codeline" data-linenumber="1003"><td class="num" id="LN1003">1003</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1004"><td class="num" id="LN1004">1004</td><td class="line"> <span class='keyword'>if</span> (pspec-&gt;owner_type != <span class='macro'>TERMINAL_TYPE_PROFILE<span class='macro_popup'>(terminal_profile_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1005"><td class="num" id="LN1005">1005</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="1006"><td class="num" id="LN1006">1006</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1007"><td class="num" id="LN1007">1007</td><td class="line"> <span class='keyword'>if</span> ((pspec-&gt;flags &amp; G_PARAM_WRITABLE) == 0 ||</td></tr>
+<tr class="codeline" data-linenumber="1008"><td class="num" id="LN1008">1008</td><td class="line"> (pspec-&gt;flags &amp; G_PARAM_CONSTRUCT_ONLY) != 0)</td></tr>
+<tr class="codeline" data-linenumber="1009"><td class="num" id="LN1009">1009</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="1010"><td class="num" id="LN1010">1010</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1011"><td class="num" id="LN1011">1011</td><td class="line"> <span class='keyword'>for</span> (j = 0; j &lt; n_construct_properties; ++j)</td></tr>
+<tr class="codeline" data-linenumber="1012"><td class="num" id="LN1012">1012</td><td class="line"> <span class='keyword'>if</span> (pspec == construct_params[j].pspec)</td></tr>
+<tr class="codeline" data-linenumber="1013"><td class="num" id="LN1013">1013</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1014"><td class="num" id="LN1014">1014</td><td class="line"> is_construct = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1015"><td class="num" id="LN1015">1015</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1016"><td class="num" id="LN1016">1016</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1017"><td class="num" id="LN1017">1017</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1018"><td class="num" id="LN1018">1018</td><td class="line"> <span class='keyword'>if</span> (is_construct)</td></tr>
+<tr class="codeline" data-linenumber="1019"><td class="num" id="LN1019">1019</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="1020"><td class="num" id="LN1020">1020</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1021"><td class="num" id="LN1021">1021</td><td class="line"> key = g_param_spec_get_qdata (pspec, gsettings_key_quark);</td></tr>
+<tr class="codeline" data-linenumber="1022"><td class="num" id="LN1022">1022</td><td class="line"> <span class='keyword'>if</span> (!key)</td></tr>
+<tr class="codeline" data-linenumber="1023"><td class="num" id="LN1023">1023</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="1024"><td class="num" id="LN1024">1024</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1025"><td class="num" id="LN1025">1025</td><td class="line"> terminal_profile_gsettings_notify_cb (priv-&gt;settings, key, profile);</td></tr>
+<tr class="codeline" data-linenumber="1026"><td class="num" id="LN1026">1026</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1027"><td class="num" id="LN1027">1027</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1028"><td class="num" id="LN1028">1028</td><td class="line"> g_free (pspecs);</td></tr>
+<tr class="codeline" data-linenumber="1029"><td class="num" id="LN1029">1029</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1030"><td class="num" id="LN1030">1030</td><td class="line"> <span class='keyword'>return</span> object;</td></tr>
+<tr class="codeline" data-linenumber="1031"><td class="num" id="LN1031">1031</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1032"><td class="num" id="LN1032">1032</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1033"><td class="num" id="LN1033">1033</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1034"><td class="num" id="LN1034">1034</td><td class="line">terminal_profile_finalize (GObject *object)</td></tr>
+<tr class="codeline" data-linenumber="1035"><td class="num" id="LN1035">1035</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1036"><td class="num" id="LN1036">1036</td><td class="line"> TerminalProfile *profile = <span class='macro'>TERMINAL_PROFILE (object)<span class='macro_popup'>((((TerminalProfile*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((object)), ((terminal_profile_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1037"><td class="num" id="LN1037">1037</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1038"><td class="num" id="LN1038">1038</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1039"><td class="num" id="LN1039">1039</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (priv-&gt;settings,<span class='macro_popup'>g_signal_handlers_disconnect_matched ((priv-&gt;settings), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_profile_gsettings_notify_cb))), (<br>profile))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1040"><td class="num" id="LN1040">1040</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_profile_gsettings_notify_cb),<span class='macro_popup'>g_signal_handlers_disconnect_matched ((priv-&gt;settings), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_profile_gsettings_notify_cb))), (<br>profile))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1041"><td class="num" id="LN1041">1041</td><td class="line"> <span class='macro'>profile)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((priv-&gt;settings), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_profile_gsettings_notify_cb))), (<br>profile))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1042"><td class="num" id="LN1042">1042</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1043"><td class="num" id="LN1043">1043</td><td class="line"> <span class='keyword'>if</span> (priv-&gt;save_idle_id)</td></tr>
+<tr class="codeline" data-linenumber="1044"><td class="num" id="LN1044">1044</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1045"><td class="num" id="LN1045">1045</td><td class="line"> g_source_remove (priv-&gt;save_idle_id);</td></tr>
+<tr class="codeline" data-linenumber="1046"><td class="num" id="LN1046">1046</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1047"><td class="num" id="LN1047">1047</td><td class="line"> <span class='comment'>/* Save now */</span></td></tr>
+<tr class="codeline" data-linenumber="1048"><td class="num" id="LN1048">1048</td><td class="line"> terminal_profile_save (profile);</td></tr>
+<tr class="codeline" data-linenumber="1049"><td class="num" id="LN1049">1049</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1050"><td class="num" id="LN1050">1050</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1051"><td class="num" id="LN1051">1051</td><td class="line"> _terminal_profile_forget (profile);</td></tr>
+<tr class="codeline" data-linenumber="1052"><td class="num" id="LN1052">1052</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1053"><td class="num" id="LN1053">1053</td><td class="line"> g_object_unref (priv-&gt;settings);</td></tr>
+<tr class="codeline" data-linenumber="1054"><td class="num" id="LN1054">1054</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1055"><td class="num" id="LN1055">1055</td><td class="line"> g_free (priv-&gt;profile_dir);</td></tr>
+<tr class="codeline" data-linenumber="1056"><td class="num" id="LN1056">1056</td><td class="line"> g_free (priv-&gt;locked);</td></tr>
+<tr class="codeline" data-linenumber="1057"><td class="num" id="LN1057">1057</td><td class="line"> g_value_array_free (priv-&gt;properties);</td></tr>
+<tr class="codeline" data-linenumber="1058"><td class="num" id="LN1058">1058</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1059"><td class="num" id="LN1059">1059</td><td class="line"> <span class='macro'>G_OBJECT_CLASS (terminal_profile_parent_class)<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((terminal_profile_parent_class)), (((GType) ((20) &lt;&lt;<br> (2))))))))</span></span>-&gt;finalize (object);</td></tr>
+<tr class="codeline" data-linenumber="1060"><td class="num" id="LN1060">1060</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1061"><td class="num" id="LN1061">1061</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1062"><td class="num" id="LN1062">1062</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1063"><td class="num" id="LN1063">1063</td><td class="line">terminal_profile_get_property (GObject *object,</td></tr>
+<tr class="codeline" data-linenumber="1064"><td class="num" id="LN1064">1064</td><td class="line"> guint prop_id,</td></tr>
+<tr class="codeline" data-linenumber="1065"><td class="num" id="LN1065">1065</td><td class="line"> GValue *value,</td></tr>
+<tr class="codeline" data-linenumber="1066"><td class="num" id="LN1066">1066</td><td class="line"> GParamSpec *pspec)</td></tr>
+<tr class="codeline" data-linenumber="1067"><td class="num" id="LN1067">1067</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1068"><td class="num" id="LN1068">1068</td><td class="line"> TerminalProfile *profile = <span class='macro'>TERMINAL_PROFILE (object)<span class='macro_popup'>((((TerminalProfile*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((object)), ((terminal_profile_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1069"><td class="num" id="LN1069">1069</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1070"><td class="num" id="LN1070">1070</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1071"><td class="num" id="LN1071">1071</td><td class="line"> <span class='keyword'>if</span> (prop_id == 0 || prop_id &gt;= LAST_PROP)</td></tr>
+<tr class="codeline" data-linenumber="1072"><td class="num" id="LN1072">1072</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1073"><td class="num" id="LN1073">1073</td><td class="line"> <span class='macro'>G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec)<span class='macro_popup'>do { GObject *_glib__object = (GObject*) ((object)); GParamSpec<br> *_glib__pspec = (GParamSpec*) ((pspec)); guint _glib__property_id<br> = ((prop_id)); g_warning ("%s:%d: invalid %s id %u for \"%s\" of type '%s' in '%s'"<br>, "terminal-profile.c", 1073, ("property"), _glib__property_id<br>, _glib__pspec-&gt;name, g_type_name ((((((GTypeClass*) (((GTypeInstance<br>*) (_glib__pspec))-&gt;g_class))-&gt;g_type)))), (g_type_name<br> ((((((GTypeClass*) (((GTypeInstance*) (_glib__object))-&gt;g_class<br>))-&gt;g_type)))))); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1074"><td class="num" id="LN1074">1074</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1075"><td class="num" id="LN1075">1075</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1076"><td class="num" id="LN1076">1076</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1077"><td class="num" id="LN1077">1077</td><td class="line"> <span class='comment'>/* Note: When adding things here, do the same in get_prop_value_from_prop_name! */</span></td></tr>
+<tr class="codeline" data-linenumber="1078"><td class="num" id="LN1078">1078</td><td class="line"> <span class='keyword'>switch</span> (prop_id)</td></tr>
+<tr class="codeline" data-linenumber="1079"><td class="num" id="LN1079">1079</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1080"><td class="num" id="LN1080">1080</td><td class="line"> <span class='keyword'>case</span> PROP_BACKGROUND_IMAGE:</td></tr>
+<tr class="codeline" data-linenumber="1081"><td class="num" id="LN1081">1081</td><td class="line"> ensure_pixbuf_property (profile, PROP_BACKGROUND_IMAGE_FILE, PROP_BACKGROUND_IMAGE, &amp;priv-&gt;background_load_failed);</td></tr>
+<tr class="codeline" data-linenumber="1082"><td class="num" id="LN1082">1082</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1083"><td class="num" id="LN1083">1083</td><td class="line"> <span class='keyword'>default</span>:</td></tr>
+<tr class="codeline" data-linenumber="1084"><td class="num" id="LN1084">1084</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1085"><td class="num" id="LN1085">1085</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1086"><td class="num" id="LN1086">1086</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1087"><td class="num" id="LN1087">1087</td><td class="line"> g_value_copy (g_value_array_get_nth (priv-&gt;properties, prop_id), value);</td></tr>
+<tr class="codeline" data-linenumber="1088"><td class="num" id="LN1088">1088</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1089"><td class="num" id="LN1089">1089</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1090"><td class="num" id="LN1090">1090</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1091"><td class="num" id="LN1091">1091</td><td class="line">terminal_profile_set_property (GObject *object,</td></tr>
+<tr class="codeline" data-linenumber="1092"><td class="num" id="LN1092">1092</td><td class="line"> guint prop_id,</td></tr>
+<tr class="codeline" data-linenumber="1093"><td class="num" id="LN1093">1093</td><td class="line"> <span class='keyword'>const</span> GValue *value,</td></tr>
+<tr class="codeline" data-linenumber="1094"><td class="num" id="LN1094">1094</td><td class="line"> GParamSpec *pspec)</td></tr>
+<tr class="codeline" data-linenumber="1095"><td class="num" id="LN1095">1095</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1096"><td class="num" id="LN1096">1096</td><td class="line"> TerminalProfile *profile = <span class='macro'>TERMINAL_PROFILE (object)<span class='macro_popup'>((((TerminalProfile*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((object)), ((terminal_profile_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1097"><td class="num" id="LN1097">1097</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1098"><td class="num" id="LN1098">1098</td><td class="line"> GValue *prop_value;</td></tr>
+<tr class="codeline" data-linenumber="1099"><td class="num" id="LN1099">1099</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1100"><td class="num" id="LN1100">1100</td><td class="line"> <span class='keyword'>if</span> (prop_id == 0 || prop_id &gt;= LAST_PROP)</td></tr>
+<tr class="codeline" data-linenumber="1101"><td class="num" id="LN1101">1101</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1102"><td class="num" id="LN1102">1102</td><td class="line"> <span class='macro'>G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec)<span class='macro_popup'>do { GObject *_glib__object = (GObject*) ((object)); GParamSpec<br> *_glib__pspec = (GParamSpec*) ((pspec)); guint _glib__property_id<br> = ((prop_id)); g_warning ("%s:%d: invalid %s id %u for \"%s\" of type '%s' in '%s'"<br>, "terminal-profile.c", 1102, ("property"), _glib__property_id<br>, _glib__pspec-&gt;name, g_type_name ((((((GTypeClass*) (((GTypeInstance<br>*) (_glib__pspec))-&gt;g_class))-&gt;g_type)))), (g_type_name<br> ((((((GTypeClass*) (((GTypeInstance*) (_glib__object))-&gt;g_class<br>))-&gt;g_type)))))); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1103"><td class="num" id="LN1103">1103</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1104"><td class="num" id="LN1104">1104</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1105"><td class="num" id="LN1105">1105</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1106"><td class="num" id="LN1106">1106</td><td class="line"> prop_value = g_value_array_get_nth (priv-&gt;properties, prop_id);</td></tr>
+<tr class="codeline" data-linenumber="1107"><td class="num" id="LN1107">1107</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1108"><td class="num" id="LN1108">1108</td><td class="line"> <span class='comment'>/* Preprocessing */</span></td></tr>
+<tr class="codeline" data-linenumber="1109"><td class="num" id="LN1109">1109</td><td class="line"> <span class='keyword'>switch</span> (prop_id)</td></tr>
+<tr class="codeline" data-linenumber="1110"><td class="num" id="LN1110">1110</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1111"><td class="num" id="LN1111">1111</td><td class="line"><span class='directive'>#if 0</span></td></tr>
+<tr class="codeline" data-linenumber="1112"><td class="num" id="LN1112">1112</td><td class="line"> <span class='keyword'>case</span> PROP_FONT:</td></tr>
+<tr class="codeline" data-linenumber="1113"><td class="num" id="LN1113">1113</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1114"><td class="num" id="LN1114">1114</td><td class="line"> PangoFontDescription *font_desc, *new_font_desc;</td></tr>
+<tr class="codeline" data-linenumber="1115"><td class="num" id="LN1115">1115</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1116"><td class="num" id="LN1116">1116</td><td class="line"> font_desc = g_value_get_boxed (prop_value);</td></tr>
+<tr class="codeline" data-linenumber="1117"><td class="num" id="LN1117">1117</td><td class="line"> new_font_desc = g_value_get_boxed (value);</td></tr>
+<tr class="codeline" data-linenumber="1118"><td class="num" id="LN1118">1118</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1119"><td class="num" id="LN1119">1119</td><td class="line"> <span class='keyword'>if</span> (font_desc &amp;&amp; new_font_desc)</td></tr>
+<tr class="codeline" data-linenumber="1120"><td class="num" id="LN1120">1120</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1121"><td class="num" id="LN1121">1121</td><td class="line"> <span class='comment'>/* Merge in case the new string isn't complete enough to load a font */</span></td></tr>
+<tr class="codeline" data-linenumber="1122"><td class="num" id="LN1122">1122</td><td class="line"> pango_font_description_merge (font_desc, new_font_desc, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1123"><td class="num" id="LN1123">1123</td><td class="line"> pango_font_description_free (new_font_desc);</td></tr>
+<tr class="codeline" data-linenumber="1124"><td class="num" id="LN1124">1124</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1125"><td class="num" id="LN1125">1125</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1126"><td class="num" id="LN1126">1126</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1127"><td class="num" id="LN1127">1127</td><td class="line"> <span class='comment'>/* fall-through */</span></td></tr>
+<tr class="codeline" data-linenumber="1128"><td class="num" id="LN1128">1128</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1129"><td class="num" id="LN1129">1129</td><td class="line"><span class='directive'>#endif</span></td></tr>
+<tr class="codeline" data-linenumber="1130"><td class="num" id="LN1130">1130</td><td class="line"> <span class='keyword'>default</span>:</td></tr>
+<tr class="codeline" data-linenumber="1131"><td class="num" id="LN1131">1131</td><td class="line"> g_value_copy (value, prop_value);</td></tr>
+<tr class="codeline" data-linenumber="1132"><td class="num" id="LN1132">1132</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1133"><td class="num" id="LN1133">1133</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1134"><td class="num" id="LN1134">1134</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1135"><td class="num" id="LN1135">1135</td><td class="line"> <span class='comment'>/* Postprocessing */</span></td></tr>
+<tr class="codeline" data-linenumber="1136"><td class="num" id="LN1136">1136</td><td class="line"> <span class='keyword'>switch</span> (prop_id)</td></tr>
+<tr class="codeline" data-linenumber="1137"><td class="num" id="LN1137">1137</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1138"><td class="num" id="LN1138">1138</td><td class="line"> <span class='keyword'>case</span> PROP_NAME:</td></tr>
+<tr class="codeline" data-linenumber="1139"><td class="num" id="LN1139">1139</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1140"><td class="num" id="LN1140">1140</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *name = g_value_get_string (value);</td></tr>
+<tr class="codeline" data-linenumber="1141"><td class="num" id="LN1141">1141</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1142"><td class="num" id="LN1142">1142</td><td class="line"> <span class='macro'>g_assert (name != NULL)<span class='macro_popup'>do { if (name != ((void*)0)) ; else g_assertion_message_expr (<br>((gchar*) 0), "terminal-profile.c", 1142, ((const char*) (__func__<br>)), "name != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1143"><td class="num" id="LN1143">1143</td><td class="line"> priv-&gt;profile_dir = <span class='macro'>g_strdup (name)<span class='macro_popup'>g_strdup_inline (name)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1144"><td class="num" id="LN1144">1144</td><td class="line"> <span class='keyword'>if</span> (priv-&gt;settings != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>) {</td></tr>
+<tr class="codeline" data-linenumber="1145"><td class="num" id="LN1145">1145</td><td class="line"> gchar *concat;</td></tr>
+<tr class="codeline" data-linenumber="1146"><td class="num" id="LN1146">1146</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (priv-&gt;settings,<span class='macro_popup'>g_signal_handlers_disconnect_matched ((priv-&gt;settings), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_profile_gsettings_notify_cb))), (<br>profile))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1147"><td class="num" id="LN1147">1147</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_profile_gsettings_notify_cb),<span class='macro_popup'>g_signal_handlers_disconnect_matched ((priv-&gt;settings), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_profile_gsettings_notify_cb))), (<br>profile))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1148"><td class="num" id="LN1148">1148</td><td class="line"> <span class='macro'>profile)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((priv-&gt;settings), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_profile_gsettings_notify_cb))), (<br>profile))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1149"><td class="num" id="LN1149">1149</td><td class="line"> g_object_unref (priv-&gt;settings);</td></tr>
+<tr class="codeline" data-linenumber="1150"><td class="num" id="LN1150">1150</td><td class="line"> concat= g_strconcat (<span class='macro'>CONF_PROFILE_PREFIX<span class='macro_popup'>"/org/mate/terminal/profiles/"</span></span>, priv-&gt;profile_dir, <span class='string_literal'>"/"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1151"><td class="num" id="LN1151">1151</td><td class="line"> priv-&gt;settings = g_settings_new_with_path (<span class='macro'>CONF_PROFILE_SCHEMA<span class='macro_popup'>"org.mate.terminal" ".profile"</span></span>, concat);</td></tr>
+<tr class="codeline" data-linenumber="1152"><td class="num" id="LN1152">1152</td><td class="line"> g_free (concat);</td></tr>
+<tr class="codeline" data-linenumber="1153"><td class="num" id="LN1153">1153</td><td class="line"> concat = g_strconcat(<span class='string_literal'>"changed::"</span>, priv-&gt;profile_dir, <span class='string_literal'>"/"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1154"><td class="num" id="LN1154">1154</td><td class="line"> <span class='macro'>g_signal_connect (priv-&gt;settings,<span class='macro_popup'>g_signal_connect_data ((priv-&gt;settings), (concat), (((GCallback<br>) (terminal_profile_gsettings_notify_cb))), (profile), ((void<br>*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1155"><td class="num" id="LN1155">1155</td><td class="line"> <span class='macro'>concat,<span class='macro_popup'>g_signal_connect_data ((priv-&gt;settings), (concat), (((GCallback<br>) (terminal_profile_gsettings_notify_cb))), (profile), ((void<br>*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1156"><td class="num" id="LN1156">1156</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_profile_gsettings_notify_cb),<span class='macro_popup'>g_signal_connect_data ((priv-&gt;settings), (concat), (((GCallback<br>) (terminal_profile_gsettings_notify_cb))), (profile), ((void<br>*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1157"><td class="num" id="LN1157">1157</td><td class="line"> <span class='macro'>profile)<span class='macro_popup'>g_signal_connect_data ((priv-&gt;settings), (concat), (((GCallback<br>) (terminal_profile_gsettings_notify_cb))), (profile), ((void<br>*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1158"><td class="num" id="LN1158">1158</td><td class="line"> g_free (concat);</td></tr>
+<tr class="codeline" data-linenumber="1159"><td class="num" id="LN1159">1159</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1160"><td class="num" id="LN1160">1160</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1161"><td class="num" id="LN1161">1161</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1162"><td class="num" id="LN1162">1162</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1163"><td class="num" id="LN1163">1163</td><td class="line"> <span class='keyword'>case</span> PROP_BACKGROUND_IMAGE_FILE:</td></tr>
+<tr class="codeline" data-linenumber="1164"><td class="num" id="LN1164">1164</td><td class="line"> <span class='comment'>/* Clear the cached image */</span></td></tr>
+<tr class="codeline" data-linenumber="1165"><td class="num" id="LN1165">1165</td><td class="line"> g_value_set_object (g_value_array_get_nth (priv-&gt;properties, PROP_BACKGROUND_IMAGE), <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1166"><td class="num" id="LN1166">1166</td><td class="line"> priv-&gt;background_load_failed = <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1167"><td class="num" id="LN1167">1167</td><td class="line"> g_object_notify (object, <span class='macro'>TERMINAL_PROFILE_BACKGROUND_IMAGE<span class='macro_popup'>"background-image"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1168"><td class="num" id="LN1168">1168</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1169"><td class="num" id="LN1169">1169</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1170"><td class="num" id="LN1170">1170</td><td class="line"> <span class='keyword'>default</span>:</td></tr>
+<tr class="codeline" data-linenumber="1171"><td class="num" id="LN1171">1171</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1172"><td class="num" id="LN1172">1172</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1173"><td class="num" id="LN1173">1173</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1174"><td class="num" id="LN1174">1174</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1175"><td class="num" id="LN1175">1175</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1176"><td class="num" id="LN1176">1176</td><td class="line">terminal_profile_notify (GObject *object,</td></tr>
+<tr class="codeline" data-linenumber="1177"><td class="num" id="LN1177">1177</td><td class="line"> GParamSpec *pspec)</td></tr>
+<tr class="codeline" data-linenumber="1178"><td class="num" id="LN1178">1178</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1179"><td class="num" id="LN1179">1179</td><td class="line"> TerminalProfilePrivate *priv = <span class='macro'>TERMINAL_PROFILE (object)<span class='macro_popup'>((((TerminalProfile*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((object)), ((terminal_profile_get_type ()))))))</span></span>-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1180"><td class="num" id="LN1180">1180</td><td class="line"> <span class='keyword'>void</span> (* notify) (GObject *, GParamSpec *) = <span class='macro'>G_OBJECT_CLASS (terminal_profile_parent_class)<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((terminal_profile_parent_class)), (((GType) ((20) &lt;&lt;<br> (2))))))))</span></span>-&gt;notify;</td></tr>
+<tr class="codeline" data-linenumber="1181"><td class="num" id="LN1181">1181</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1182"><td class="num" id="LN1182">1182</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_PROFILE,<span class='macro_popup'>do { if (0) g_printerr("Property notification for prop %s\n",<br> pspec-&gt;name); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1183"><td class="num" id="LN1183">1183</td><td class="line"> <span class='string_literal'><span class='macro'>"Property notification for prop %s\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("Property notification for prop %s\n",<br> pspec-&gt;name); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1184"><td class="num" id="LN1184">1184</td><td class="line"> <span class='macro'>pspec-&gt;name)<span class='macro_popup'>do { if (0) g_printerr("Property notification for prop %s\n",<br> pspec-&gt;name); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1185"><td class="num" id="LN1185">1185</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1186"><td class="num" id="LN1186">1186</td><td class="line"> <span class='keyword'>if</span> (notify)</td></tr>
+<tr class="codeline" data-linenumber="1187"><td class="num" id="LN1187">1187</td><td class="line"> notify (object, pspec);</td></tr>
+<tr class="codeline" data-linenumber="1188"><td class="num" id="LN1188">1188</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1189"><td class="num" id="LN1189">1189</td><td class="line"> <span class='keyword'>if</span> (pspec-&gt;owner_type == <span class='macro'>TERMINAL_TYPE_PROFILE<span class='macro_popup'>(terminal_profile_get_type ())</span></span> &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="1190"><td class="num" id="LN1190">1190</td><td class="line"> (pspec-&gt;flags &amp; G_PARAM_WRITABLE) &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="1191"><td class="num" id="LN1191">1191</td><td class="line"> g_param_spec_get_qdata (pspec, gsettings_key_quark) != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span> &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="1192"><td class="num" id="LN1192">1192</td><td class="line"> pspec != priv-&gt;gsettings_notification_pspec)</td></tr>
+<tr class="codeline" data-linenumber="1193"><td class="num" id="LN1193">1193</td><td class="line"> terminal_profile_schedule_save (<span class='macro'>TERMINAL_PROFILE (object)<span class='macro_popup'>((((TerminalProfile*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((object)), ((terminal_profile_get_type ()))))))</span></span>, pspec);</td></tr>
+<tr class="codeline" data-linenumber="1194"><td class="num" id="LN1194">1194</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1195"><td class="num" id="LN1195">1195</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1196"><td class="num" id="LN1196">1196</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1197"><td class="num" id="LN1197">1197</td><td class="line">terminal_profile_class_init (TerminalProfileClass *klass)</td></tr>
+<tr class="codeline" data-linenumber="1198"><td class="num" id="LN1198">1198</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1199"><td class="num" id="LN1199">1199</td><td class="line"> GObjectClass *object_class = <span class='macro'>G_OBJECT_CLASS (klass)<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((klass)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1200"><td class="num" id="LN1200">1200</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1201"><td class="num" id="LN1201">1201</td><td class="line"> gsettings_key_quark = g_quark_from_static_string (<span class='string_literal'>"GT::GSettingsKey"</span>);</td></tr>
+<tr class="codeline" data-linenumber="1202"><td class="num" id="LN1202">1202</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1203"><td class="num" id="LN1203">1203</td><td class="line"> object_class-&gt;constructor = terminal_profile_constructor;</td></tr>
+<tr class="codeline" data-linenumber="1204"><td class="num" id="LN1204">1204</td><td class="line"> object_class-&gt;finalize = terminal_profile_finalize;</td></tr>
+<tr class="codeline" data-linenumber="1205"><td class="num" id="LN1205">1205</td><td class="line"> object_class-&gt;get_property = terminal_profile_get_property;</td></tr>
+<tr class="codeline" data-linenumber="1206"><td class="num" id="LN1206">1206</td><td class="line"> object_class-&gt;set_property = terminal_profile_set_property;</td></tr>
+<tr class="codeline" data-linenumber="1207"><td class="num" id="LN1207">1207</td><td class="line"> object_class-&gt;notify = terminal_profile_notify;</td></tr>
+<tr class="codeline" data-linenumber="1208"><td class="num" id="LN1208">1208</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1209"><td class="num" id="LN1209">1209</td><td class="line"> signals[FORGOTTEN] =</td></tr>
+<tr class="codeline" data-linenumber="1210"><td class="num" id="LN1210">1210</td><td class="line"> g_signal_new (<span class='string_literal'>"forgotten"</span>,</td></tr>
+<tr class="codeline" data-linenumber="1211"><td class="num" id="LN1211">1211</td><td class="line"> <span class='macro'>G_OBJECT_CLASS_TYPE (object_class)<span class='macro_popup'>((((GTypeClass*) (object_class))-&gt;g_type))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1212"><td class="num" id="LN1212">1212</td><td class="line"> G_SIGNAL_RUN_LAST,</td></tr>
+<tr class="codeline" data-linenumber="1213"><td class="num" id="LN1213">1213</td><td class="line"> <span class='macro'>G_STRUCT_OFFSET (TerminalProfileClass, forgotten)<span class='macro_popup'>((glong) __builtin_offsetof(TerminalProfileClass, forgotten))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1214"><td class="num" id="LN1214">1214</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1215"><td class="num" id="LN1215">1215</td><td class="line"> g_cclosure_marshal_VOID__VOID,</td></tr>
+<tr class="codeline" data-linenumber="1216"><td class="num" id="LN1216">1216</td><td class="line"> <span class='macro'>G_TYPE_NONE<span class='macro_popup'>((GType) ((1) &lt;&lt; (2)))</span></span>, 0);</td></tr>
+<tr class="codeline" data-linenumber="1217"><td class="num" id="LN1217">1217</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1218"><td class="num" id="LN1218">1218</td><td class="line"> <span class='comment'>/* gsettings_key -&gt; pspec hash */</span></td></tr>
+<tr class="codeline" data-linenumber="1219"><td class="num" id="LN1219">1219</td><td class="line"> klass-&gt;gsettings_keys = g_hash_table_new (g_str_hash, g_str_equal);</td></tr>
+<tr class="codeline" data-linenumber="1220"><td class="num" id="LN1220">1220</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1221"><td class="num" id="LN1221">1221</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PSPEC_STATIC<span class='macro_popup'>(G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)</span></span> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)</span></td></tr>
+<tr class="codeline" data-linenumber="1222"><td class="num" id="LN1222">1222</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1223"><td class="num" id="LN1223">1223</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY(propId, propSpec, propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = propSpec; g_object_class_install_property<br> (object_class, propId, pspec); g_param_spec_set_qdata (pspec<br>, gsettings_key_quark, (gpointer) propGSettings); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) propGSettings, pspec);<br>}</span></span> \</span></td></tr>
+<tr class="codeline" data-linenumber="1224"><td class="num" id="LN1224">1224</td><td class="line"><span class='directive'>{\</span></td></tr>
+<tr class="codeline" data-linenumber="1225"><td class="num" id="LN1225">1225</td><td class="line"> <span class='directive'>GParamSpec *pspec = propSpec;\</span></td></tr>
+<tr class="codeline" data-linenumber="1226"><td class="num" id="LN1226">1226</td><td class="line"> <span class='directive'>g_object_class_install_property (object_class, propId, pspec);\</span></td></tr>
+<tr class="codeline" data-linenumber="1227"><td class="num" id="LN1227">1227</td><td class="line"> <span class='directive'>g_param_spec_set_qdata (pspec, gsettings_key_quark, (gpointer) propGSettings);\</span></td></tr>
+<tr class="codeline" data-linenumber="1228"><td class="num" id="LN1228">1228</td><td class="line"> <span class='directive'>g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) propGSettings, pspec);\</span></td></tr>
+<tr class="codeline" data-linenumber="1229"><td class="num" id="LN1229">1229</td><td class="line"><span class='directive'>}</span></td></tr>
+<tr class="codeline" data-linenumber="1230"><td class="num" id="LN1230">1230</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1231"><td class="num" id="LN1231">1231</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY_OUTER(propId, propSpec)<span class='macro_popup'>{ GParamSpec *pspec = propSpec; g_object_class_install_property<br> (object_class, propId, pspec);}</span></span> \</span></td></tr>
+<tr class="codeline" data-linenumber="1232"><td class="num" id="LN1232">1232</td><td class="line"><span class='directive'>{\</span></td></tr>
+<tr class="codeline" data-linenumber="1233"><td class="num" id="LN1233">1233</td><td class="line"> <span class='directive'>GParamSpec *pspec = propSpec;\</span></td></tr>
+<tr class="codeline" data-linenumber="1234"><td class="num" id="LN1234">1234</td><td class="line"> <span class='directive'>g_object_class_install_property (object_class, propId, pspec);\</span></td></tr>
+<tr class="codeline" data-linenumber="1235"><td class="num" id="LN1235">1235</td><td class="line"><span class='directive'>}</span></td></tr>
+<tr class="codeline" data-linenumber="1236"><td class="num" id="LN1236">1236</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1237"><td class="num" id="LN1237">1237</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN(prop, propDefault, propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean (TERMINAL_PROFILE_prop<br>, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_prop, pspec); g_param_spec_set_qdata (pspec<br>, gsettings_key_quark, (gpointer) propGSettings); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) propGSettings, pspec);<br>}</span></span> \</span></td></tr>
+<tr class="codeline" data-linenumber="1238"><td class="num" id="LN1238">1238</td><td class="line"> <span class='directive'><span class='macro'>TERMINAL_PROFILE_PROPERTY (PROP_##prop,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1239"><td class="num" id="LN1239">1239</td><td class="line"> <span class='directive'><span class='macro'>g_param_spec_boolean (TERMINAL_PROFILE_##prop, NULL, NULL,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1240"><td class="num" id="LN1240">1240</td><td class="line"> <span class='directive'><span class='macro'>propDefault,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1241"><td class="num" id="LN1241">1241</td><td class="line"> <span class='directive'><span class='macro'>G_PARAM_READWRITE | TERMINAL_PROFILE_PSPEC_STATIC),\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1242"><td class="num" id="LN1242">1242</td><td class="line"> <span class='directive'><span class='macro'>propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1243"><td class="num" id="LN1243">1243</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1244"><td class="num" id="LN1244">1244</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOXED(prop, propType, propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boxed (TERMINAL_PROFILE_prop<br>, ((void*)0), ((void*)0), propType, G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_prop, pspec); g_param_spec_set_qdata (pspec<br>, gsettings_key_quark, (gpointer) propGSettings); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) propGSettings, pspec);<br>}</span></span>\</span></td></tr>
+<tr class="codeline" data-linenumber="1245"><td class="num" id="LN1245">1245</td><td class="line"> <span class='directive'><span class='macro'>TERMINAL_PROFILE_PROPERTY (PROP_##prop,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boxed (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propType, G_PARAM_READWRITE | (<br>G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1246"><td class="num" id="LN1246">1246</td><td class="line"> <span class='directive'><span class='macro'>g_param_spec_boxed (TERMINAL_PROFILE_##prop, NULL, NULL,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boxed (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propType, G_PARAM_READWRITE | (<br>G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1247"><td class="num" id="LN1247">1247</td><td class="line"> <span class='directive'><span class='macro'>propType,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boxed (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propType, G_PARAM_READWRITE | (<br>G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1248"><td class="num" id="LN1248">1248</td><td class="line"> <span class='directive'><span class='macro'>G_PARAM_READWRITE | TERMINAL_PROFILE_PSPEC_STATIC),\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boxed (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propType, G_PARAM_READWRITE | (<br>G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1249"><td class="num" id="LN1249">1249</td><td class="line"> <span class='directive'><span class='macro'>propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boxed (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propType, G_PARAM_READWRITE | (<br>G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1250"><td class="num" id="LN1250">1250</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1251"><td class="num" id="LN1251">1251</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY_DOUBLE(prop, propMin, propMax, propDefault, propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_double (TERMINAL_PROFILE_prop<br>, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_prop,<br> pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark, (<br>gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span>\</span></td></tr>
+<tr class="codeline" data-linenumber="1252"><td class="num" id="LN1252">1252</td><td class="line"> <span class='directive'><span class='macro'>TERMINAL_PROFILE_PROPERTY (PROP_##prop,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_double (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1253"><td class="num" id="LN1253">1253</td><td class="line"> <span class='directive'><span class='macro'>g_param_spec_double (TERMINAL_PROFILE_##prop, NULL, NULL,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_double (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1254"><td class="num" id="LN1254">1254</td><td class="line"> <span class='directive'><span class='macro'>propMin, propMax, propDefault,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_double (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1255"><td class="num" id="LN1255">1255</td><td class="line"> <span class='directive'><span class='macro'>G_PARAM_READWRITE | TERMINAL_PROFILE_PSPEC_STATIC),\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_double (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1256"><td class="num" id="LN1256">1256</td><td class="line"> <span class='directive'><span class='macro'>propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_double (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1257"><td class="num" id="LN1257">1257</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1258"><td class="num" id="LN1258">1258</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY_ENUM(prop, propType, propDefault, propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum (TERMINAL_PROFILE_prop<br>, ((void*)0), ((void*)0), propType, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_prop,<br> pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark, (<br>gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span>\</span></td></tr>
+<tr class="codeline" data-linenumber="1259"><td class="num" id="LN1259">1259</td><td class="line"> <span class='directive'><span class='macro'>TERMINAL_PROFILE_PROPERTY (PROP_##prop,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum (TERMINAL_PROFILE_##prop<br>, ((void*)0), ((void*)0), propType, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1260"><td class="num" id="LN1260">1260</td><td class="line"> <span class='directive'><span class='macro'>g_param_spec_enum (TERMINAL_PROFILE_##prop, NULL, NULL,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum (TERMINAL_PROFILE_##prop<br>, ((void*)0), ((void*)0), propType, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1261"><td class="num" id="LN1261">1261</td><td class="line"> <span class='directive'><span class='macro'>propType, propDefault,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum (TERMINAL_PROFILE_##prop<br>, ((void*)0), ((void*)0), propType, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1262"><td class="num" id="LN1262">1262</td><td class="line"> <span class='directive'><span class='macro'>G_PARAM_READWRITE | TERMINAL_PROFILE_PSPEC_STATIC),\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum (TERMINAL_PROFILE_##prop<br>, ((void*)0), ((void*)0), propType, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1263"><td class="num" id="LN1263">1263</td><td class="line"> <span class='directive'><span class='macro'>propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum (TERMINAL_PROFILE_##prop<br>, ((void*)0), ((void*)0), propType, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1264"><td class="num" id="LN1264">1264</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1265"><td class="num" id="LN1265">1265</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY_INT(prop, propMin, propMax, propDefault, propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_int (TERMINAL_PROFILE_prop<br>, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_prop,<br> pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark, (<br>gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span>\</span></td></tr>
+<tr class="codeline" data-linenumber="1266"><td class="num" id="LN1266">1266</td><td class="line"> <span class='directive'><span class='macro'>TERMINAL_PROFILE_PROPERTY (PROP_##prop,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_int (TERMINAL_PROFILE_##prop<br>, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1267"><td class="num" id="LN1267">1267</td><td class="line"> <span class='directive'><span class='macro'>g_param_spec_int (TERMINAL_PROFILE_##prop, NULL, NULL,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_int (TERMINAL_PROFILE_##prop<br>, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1268"><td class="num" id="LN1268">1268</td><td class="line"> <span class='directive'><span class='macro'>propMin, propMax, propDefault,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_int (TERMINAL_PROFILE_##prop<br>, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1269"><td class="num" id="LN1269">1269</td><td class="line"> <span class='directive'><span class='macro'>G_PARAM_READWRITE | TERMINAL_PROFILE_PSPEC_STATIC),\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_int (TERMINAL_PROFILE_##prop<br>, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1270"><td class="num" id="LN1270">1270</td><td class="line"> <span class='directive'><span class='macro'>propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_int (TERMINAL_PROFILE_##prop<br>, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1271"><td class="num" id="LN1271">1271</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1272"><td class="num" id="LN1272">1272</td><td class="line"> <span class='comment'>/* these are all read-only */</span></td></tr>
+<tr class="codeline" data-linenumber="1273"><td class="num" id="LN1273">1273</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY_OBJECT(prop, propType)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_object (TERMINAL_PROFILE_prop<br>, ((void*)0), ((void*)0), propType, G_PARAM_READABLE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_prop, pspec);}</span></span>\</span></td></tr>
+<tr class="codeline" data-linenumber="1274"><td class="num" id="LN1274">1274</td><td class="line"> <span class='directive'><span class='macro'>TERMINAL_PROFILE_PROPERTY_OUTER (PROP_##prop,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_object (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propType, G_PARAM_READABLE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_##prop, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1275"><td class="num" id="LN1275">1275</td><td class="line"> <span class='directive'><span class='macro'>g_param_spec_object (TERMINAL_PROFILE_##prop, NULL, NULL,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_object (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propType, G_PARAM_READABLE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_##prop, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1276"><td class="num" id="LN1276">1276</td><td class="line"> <span class='directive'><span class='macro'>propType,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_object (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propType, G_PARAM_READABLE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_##prop, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1277"><td class="num" id="LN1277">1277</td><td class="line"> <span class='directive'><span class='macro'>G_PARAM_READABLE | TERMINAL_PROFILE_PSPEC_STATIC))<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_object (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propType, G_PARAM_READABLE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_##prop, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1278"><td class="num" id="LN1278">1278</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1279"><td class="num" id="LN1279">1279</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY_STRING(prop, propDefault, propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_prop<br>, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_prop, pspec); g_param_spec_set_qdata (pspec<br>, gsettings_key_quark, (gpointer) propGSettings); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) propGSettings, pspec);<br>}</span></span>\</span></td></tr>
+<tr class="codeline" data-linenumber="1280"><td class="num" id="LN1280">1280</td><td class="line"> <span class='directive'><span class='macro'>TERMINAL_PROFILE_PROPERTY (PROP_##prop,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1281"><td class="num" id="LN1281">1281</td><td class="line"> <span class='directive'><span class='macro'>g_param_spec_string (TERMINAL_PROFILE_##prop, NULL, NULL,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1282"><td class="num" id="LN1282">1282</td><td class="line"> <span class='directive'><span class='macro'>propDefault,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1283"><td class="num" id="LN1283">1283</td><td class="line"> <span class='directive'><span class='macro'>G_PARAM_READWRITE | TERMINAL_PROFILE_PSPEC_STATIC),\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1284"><td class="num" id="LN1284">1284</td><td class="line"> <span class='directive'><span class='macro'>propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1285"><td class="num" id="LN1285">1285</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1286"><td class="num" id="LN1286">1286</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY_STRING_CO(prop, propDefault)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_prop<br>, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_prop,<br> pspec);}</span></span>\</span></td></tr>
+<tr class="codeline" data-linenumber="1287"><td class="num" id="LN1287">1287</td><td class="line"> <span class='directive'><span class='macro'>TERMINAL_PROFILE_PROPERTY_OUTER (PROP_##prop,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE |<br> G_PARAM_CONSTRUCT_ONLY | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1288"><td class="num" id="LN1288">1288</td><td class="line"> <span class='directive'><span class='macro'>g_param_spec_string (TERMINAL_PROFILE_##prop, NULL, NULL,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE |<br> G_PARAM_CONSTRUCT_ONLY | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1289"><td class="num" id="LN1289">1289</td><td class="line"> <span class='directive'><span class='macro'>propDefault,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE |<br> G_PARAM_CONSTRUCT_ONLY | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1290"><td class="num" id="LN1290">1290</td><td class="line"> <span class='directive'><span class='macro'>G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | TERMINAL_PROFILE_PSPEC_STATIC))<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE |<br> G_PARAM_CONSTRUCT_ONLY | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1291"><td class="num" id="LN1291">1291</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1292"><td class="num" id="LN1292">1292</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY_VALUE_ARRAY_BOXED(prop, propElementName, propElementType, propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_value_array (TERMINAL_PROFILE_prop<br>, ((void*)0), ((void*)0), g_param_spec_boxed (propElementName<br>, ((void*)0), ((void*)0), propElementType, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_prop, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span>\</span></td></tr>
+<tr class="codeline" data-linenumber="1293"><td class="num" id="LN1293">1293</td><td class="line"> <span class='directive'><span class='macro'>TERMINAL_PROFILE_PROPERTY (PROP_##prop,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_value_array (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), g_param_spec_boxed (propElementName<br>, ((void*)0), ((void*)0), propElementType, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1294"><td class="num" id="LN1294">1294</td><td class="line"> <span class='directive'><span class='macro'>g_param_spec_value_array (TERMINAL_PROFILE_##prop, NULL, NULL,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_value_array (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), g_param_spec_boxed (propElementName<br>, ((void*)0), ((void*)0), propElementType, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1295"><td class="num" id="LN1295">1295</td><td class="line"> <span class='directive'><span class='macro'>g_param_spec_boxed (propElementName, NULL, NULL,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_value_array (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), g_param_spec_boxed (propElementName<br>, ((void*)0), ((void*)0), propElementType, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1296"><td class="num" id="LN1296">1296</td><td class="line"> <span class='directive'><span class='macro'>propElementType, \<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_value_array (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), g_param_spec_boxed (propElementName<br>, ((void*)0), ((void*)0), propElementType, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1297"><td class="num" id="LN1297">1297</td><td class="line"> <span class='directive'><span class='macro'>G_PARAM_READWRITE | TERMINAL_PROFILE_PSPEC_STATIC),\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_value_array (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), g_param_spec_boxed (propElementName<br>, ((void*)0), ((void*)0), propElementType, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1298"><td class="num" id="LN1298">1298</td><td class="line"> <span class='directive'><span class='macro'>G_PARAM_READWRITE | TERMINAL_PROFILE_PSPEC_STATIC),\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_value_array (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), g_param_spec_boxed (propElementName<br>, ((void*)0), ((void*)0), propElementType, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1299"><td class="num" id="LN1299">1299</td><td class="line"> <span class='directive'><span class='macro'>propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_value_array (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), g_param_spec_boxed (propElementName<br>, ((void*)0), ((void*)0), propElementType, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1300"><td class="num" id="LN1300">1300</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1301"><td class="num" id="LN1301">1301</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (ALLOW_BOLD, DEFAULT_ALLOW_BOLD, KEY_ALLOW_BOLD)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("allow-bold", ((void<br>*)0), ((void*)0), ((!(0))), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_ALLOW_BOLD, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "allow-bold"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "allow-bold", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1302"><td class="num" id="LN1302">1302</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (BOLD_COLOR_SAME_AS_FG, DEFAULT_BOLD_COLOR_SAME_AS_FG, KEY_BOLD_COLOR_SAME_AS_FG)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("bold-color-same-as-fg"<br>, ((void*)0), ((void*)0), ((!(0))), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_BOLD_COLOR_SAME_AS_FG, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "bold-color-same-as-fg"<br>); g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "bold-color-same-as-fg"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1303"><td class="num" id="LN1303">1303</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (DEFAULT_SHOW_MENUBAR, DEFAULT_DEFAULT_SHOW_MENUBAR, KEY_DEFAULT_SHOW_MENUBAR)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("default-show-menubar"<br>, ((void*)0), ((void*)0), ((!(0))), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_DEFAULT_SHOW_MENUBAR, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "default-show-menubar"<br>); g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "default-show-menubar"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1304"><td class="num" id="LN1304">1304</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (LOGIN_SHELL, DEFAULT_LOGIN_SHELL, KEY_LOGIN_SHELL)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("login-shell", ((<br>void*)0), ((void*)0), ((0)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_LOGIN_SHELL, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "login-shell"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "login-shell", pspec);<br>}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1305"><td class="num" id="LN1305">1305</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (SCROLL_BACKGROUND, DEFAULT_SCROLL_BACKGROUND, KEY_SCROLL_BACKGROUND)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("scroll-background"<br>, ((void*)0), ((void*)0), ((!(0))), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_SCROLL_BACKGROUND, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "scroll-background")<br>; g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "scroll-background"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1306"><td class="num" id="LN1306">1306</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (SCROLLBACK_UNLIMITED, DEFAULT_SCROLLBACK_UNLIMITED, KEY_SCROLLBACK_UNLIMITED)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("scrollback-unlimited"<br>, ((void*)0), ((void*)0), ((0)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_SCROLLBACK_UNLIMITED, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "scrollback-unlimited"<br>); g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "scrollback-unlimited"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1307"><td class="num" id="LN1307">1307</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (SCROLL_ON_KEYSTROKE, DEFAULT_SCROLL_ON_KEYSTROKE, KEY_SCROLL_ON_KEYSTROKE)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("scroll-on-keystroke"<br>, ((void*)0), ((void*)0), ((!(0))), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_SCROLL_ON_KEYSTROKE, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "scroll-on-keystroke"<br>); g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "scroll-on-keystroke"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1308"><td class="num" id="LN1308">1308</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (SCROLL_ON_OUTPUT, DEFAULT_SCROLL_ON_OUTPUT, KEY_SCROLL_ON_OUTPUT)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("scroll-on-output"<br>, ((void*)0), ((void*)0), ((0)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_SCROLL_ON_OUTPUT, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "scroll-on-output");<br> g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "scroll-on-output"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1309"><td class="num" id="LN1309">1309</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (SILENT_BELL, DEFAULT_SILENT_BELL, KEY_SILENT_BELL)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("silent-bell", ((<br>void*)0), ((void*)0), ((0)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_SILENT_BELL, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "silent-bell"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "silent-bell", pspec);<br>}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1310"><td class="num" id="LN1310">1310</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (COPY_SELECTION, DEFAULT_COPY_SELECTION, KEY_COPY_SELECTION)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("copy-selection",<br> ((void*)0), ((void*)0), ((0)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_COPY_SELECTION, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "copy-selection"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "copy-selection", pspec<br>);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1311"><td class="num" id="LN1311">1311</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (USE_CUSTOM_COMMAND, DEFAULT_USE_CUSTOM_COMMAND, KEY_USE_CUSTOM_COMMAND)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("use-custom-command"<br>, ((void*)0), ((void*)0), ((0)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_USE_CUSTOM_COMMAND, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "use-custom-command"<br>); g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "use-custom-command"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1312"><td class="num" id="LN1312">1312</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (USE_CUSTOM_DEFAULT_SIZE, DEFAULT_USE_CUSTOM_DEFAULT_SIZE, KEY_USE_CUSTOM_DEFAULT_SIZE)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("use-custom-default-size"<br>, ((void*)0), ((void*)0), ((0)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_USE_CUSTOM_DEFAULT_SIZE, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "use-custom-default-size"<br>); g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "use-custom-default-size"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1313"><td class="num" id="LN1313">1313</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (USE_SKEY, DEFAULT_USE_SKEY, KEY_USE_SKEY)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("use-skey", ((void<br>*)0), ((void*)0), ((!(0))), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_USE_SKEY, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "use-skey"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "use-skey", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1314"><td class="num" id="LN1314">1314</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (USE_URLS, DEFAULT_USE_URLS, KEY_USE_URLS)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("use-urls", ((void<br>*)0), ((void*)0), ((!(0))), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_USE_URLS, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "use-urls"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "use-urls", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1315"><td class="num" id="LN1315">1315</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (USE_SYSTEM_FONT, DEFAULT_USE_SYSTEM_FONT, KEY_USE_SYSTEM_FONT)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("use-system-font"<br>, ((void*)0), ((void*)0), ((!(0))), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_USE_SYSTEM_FONT, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "use-system-font"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "use-system-font", pspec<br>);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1316"><td class="num" id="LN1316">1316</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (USE_THEME_COLORS, DEFAULT_USE_THEME_COLORS, KEY_USE_THEME_COLORS)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("use-theme-colors"<br>, ((void*)0), ((void*)0), ((!(0))), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_USE_THEME_COLORS, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "use-theme-colors");<br> g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "use-theme-colors"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1317"><td class="num" id="LN1317">1317</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1318"><td class="num" id="LN1318">1318</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOXED (BACKGROUND_COLOR, GDK_TYPE_RGBA, KEY_BACKGROUND_COLOR)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boxed ("background-color",<br> ((void*)0), ((void*)0), (gdk_rgba_get_type ()), G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_BACKGROUND_COLOR<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) "background-color"); g_hash_table_insert (klass-&gt;<br>gsettings_keys, (gpointer) "background-color", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1319"><td class="num" id="LN1319">1319</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOXED (BOLD_COLOR, GDK_TYPE_RGBA, KEY_BOLD_COLOR)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boxed ("bold-color", ((void<br>*)0), ((void*)0), (gdk_rgba_get_type ()), G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_BOLD_COLOR<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) "bold-color"); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) "bold-color", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1320"><td class="num" id="LN1320">1320</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOXED (FONT, PANGO_TYPE_FONT_DESCRIPTION, KEY_FONT)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boxed ("font", ((void*)0),<br> ((void*)0), (pango_font_description_get_type ()), G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_FONT,<br> pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark, (<br>gpointer) "font"); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) "font", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1321"><td class="num" id="LN1321">1321</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOXED (FOREGROUND_COLOR, GDK_TYPE_RGBA, KEY_FOREGROUND_COLOR)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boxed ("foreground-color",<br> ((void*)0), ((void*)0), (gdk_rgba_get_type ()), G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_FOREGROUND_COLOR<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) "foreground-color"); g_hash_table_insert (klass-&gt;<br>gsettings_keys, (gpointer) "foreground-color", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1322"><td class="num" id="LN1322">1322</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1323"><td class="num" id="LN1323">1323</td><td class="line"> <span class='comment'>/* 0.0 = normal bg, 1.0 = all black bg, 0.5 = half darkened */</span></td></tr>
+<tr class="codeline" data-linenumber="1324"><td class="num" id="LN1324">1324</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_DOUBLE (BACKGROUND_DARKNESS, 0.0, 1.0, DEFAULT_BACKGROUND_DARKNESS, KEY_BACKGROUND_DARKNESS)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_double ("background-darkness"<br>, ((void*)0), ((void*)0), 0.0, 1.0, (0.5), G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_BACKGROUND_DARKNESS<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) "background-darkness"); g_hash_table_insert (klass<br>-&gt;gsettings_keys, (gpointer) "background-darkness", pspec)<br>;}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1325"><td class="num" id="LN1325">1325</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1326"><td class="num" id="LN1326">1326</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_ENUM (BACKGROUND_TYPE, TERMINAL_TYPE_BACKGROUND_TYPE, DEFAULT_BACKGROUND_TYPE, KEY_BACKGROUND_TYPE)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum ("background-type", (<br>(void*)0), ((void*)0), (terminal_background_type_get_type ())<br>, (TERMINAL_BACKGROUND_SOLID), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_BACKGROUND_TYPE, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "background-type"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "background-type", pspec<br>);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1327"><td class="num" id="LN1327">1327</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_ENUM (BACKSPACE_BINDING, VTE_TYPE_ERASE_BINDING, DEFAULT_BACKSPACE_BINDING, KEY_BACKSPACE_BINDING)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum ("backspace-binding",<br> ((void*)0), ((void*)0), (vte_erase_binding_get_type ()), (VTE_ERASE_ASCII_DELETE<br>), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_BACKSPACE_BINDING, pspec); g_param_spec_set_qdata (pspec<br>, gsettings_key_quark, (gpointer) "backspace-binding"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "backspace-binding", pspec<br>);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1328"><td class="num" id="LN1328">1328</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_ENUM (CURSOR_BLINK_MODE, VTE_TYPE_CURSOR_BLINK_MODE, DEFAULT_CURSOR_BLINK_MODE, KEY_CURSOR_BLINK_MODE)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum ("cursor-blink-mode",<br> ((void*)0), ((void*)0), (vte_cursor_blink_mode_get_type ()),<br> (VTE_CURSOR_BLINK_SYSTEM), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_CURSOR_BLINK_MODE, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "cursor-blink-mode")<br>; g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "cursor-blink-mode"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1329"><td class="num" id="LN1329">1329</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_ENUM (CURSOR_SHAPE, VTE_TYPE_CURSOR_SHAPE, DEFAULT_CURSOR_SHAPE, KEY_CURSOR_SHAPE)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum ("cursor-shape", ((void<br>*)0), ((void*)0), (vte_cursor_shape_get_type ()), (VTE_CURSOR_SHAPE_BLOCK<br>), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_CURSOR_SHAPE, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) "cursor-shape"); g_hash_table_insert (klass-&gt;<br>gsettings_keys, (gpointer) "cursor-shape", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1330"><td class="num" id="LN1330">1330</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_ENUM (DELETE_BINDING, VTE_TYPE_ERASE_BINDING, DEFAULT_DELETE_BINDING, KEY_DELETE_BINDING)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum ("delete-binding", ((<br>void*)0), ((void*)0), (vte_erase_binding_get_type ()), (VTE_ERASE_DELETE_SEQUENCE<br>), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_DELETE_BINDING, pspec); g_param_spec_set_qdata (pspec,<br> gsettings_key_quark, (gpointer) "delete-binding"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "delete-binding", pspec<br>);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1331"><td class="num" id="LN1331">1331</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_ENUM (EXIT_ACTION, TERMINAL_TYPE_EXIT_ACTION, DEFAULT_EXIT_ACTION, KEY_EXIT_ACTION)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum ("exit-action", ((void<br>*)0), ((void*)0), (terminal_exit_action_get_type ()), (TERMINAL_EXIT_CLOSE<br>), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_EXIT_ACTION, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) "exit-action"); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) "exit-action", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1332"><td class="num" id="LN1332">1332</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_ENUM (SCROLLBAR_POSITION, TERMINAL_TYPE_SCROLLBAR_POSITION, DEFAULT_SCROLLBAR_POSITION, KEY_SCROLLBAR_POSITION)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum ("scrollbar-position"<br>, ((void*)0), ((void*)0), (terminal_scrollbar_position_get_type<br> ()), (TERMINAL_SCROLLBAR_RIGHT), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_SCROLLBAR_POSITION, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "scrollbar-position"<br>); g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "scrollbar-position"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1333"><td class="num" id="LN1333">1333</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_ENUM (TITLE_MODE, TERMINAL_TYPE_TITLE_MODE, DEFAULT_TITLE_MODE, KEY_TITLE_MODE)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum ("title-mode", ((void<br>*)0), ((void*)0), (terminal_title_mode_get_type ()), (TERMINAL_TITLE_REPLACE<br>), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_TITLE_MODE, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) "title-mode"); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) "title-mode", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1334"><td class="num" id="LN1334">1334</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1335"><td class="num" id="LN1335">1335</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_INT (DEFAULT_SIZE_COLUMNS, 1, 1024, DEFAULT_DEFAULT_SIZE_COLUMNS, KEY_DEFAULT_SIZE_COLUMNS)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_int ("default-size-columns"<br>, ((void*)0), ((void*)0), 1, 1024, (80), G_PARAM_READWRITE | (<br>G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_DEFAULT_SIZE_COLUMNS<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) "default-size-columns"); g_hash_table_insert (klass<br>-&gt;gsettings_keys, (gpointer) "default-size-columns", pspec<br>);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1336"><td class="num" id="LN1336">1336</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_INT (DEFAULT_SIZE_ROWS, 1, 1024, DEFAULT_DEFAULT_SIZE_ROWS, KEY_DEFAULT_SIZE_ROWS)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_int ("default-size-rows", (<br>(void*)0), ((void*)0), 1, 1024, (24), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_DEFAULT_SIZE_ROWS, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "default-size-rows")<br>; g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "default-size-rows"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1337"><td class="num" id="LN1337">1337</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_INT (SCROLLBACK_LINES, 1, G_MAXINT, DEFAULT_SCROLLBACK_LINES, KEY_SCROLLBACK_LINES)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_int ("scrollback-lines", (<br>(void*)0), ((void*)0), 1, 2147483647, (512), G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_SCROLLBACK_LINES<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) "scrollback-lines"); g_hash_table_insert (klass-&gt;<br>gsettings_keys, (gpointer) "scrollback-lines", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1338"><td class="num" id="LN1338">1338</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1339"><td class="num" id="LN1339">1339</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_OBJECT (BACKGROUND_IMAGE, GDK_TYPE_PIXBUF)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_object ("background-image"<br>, ((void*)0), ((void*)0), (gdk_pixbuf_get_type ()), G_PARAM_READABLE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_BACKGROUND_IMAGE<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1340"><td class="num" id="LN1340">1340</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1341"><td class="num" id="LN1341">1341</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_STRING_CO (NAME, DEFAULT_NAME)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string ("name", ((void*)0)<br>, ((void*)0), (((void*)0)), G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_NAME,<br> pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1342"><td class="num" id="LN1342">1342</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1343"><td class="num" id="LN1343">1343</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_STRING (BACKGROUND_IMAGE_FILE, DEFAULT_BACKGROUND_IMAGE_FILE, KEY_BACKGROUND_IMAGE_FILE)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string ("background-image-file"<br>, ((void*)0), ((void*)0), (""), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_BACKGROUND_IMAGE_FILE, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "background-image");<br> g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "background-image"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1344"><td class="num" id="LN1344">1344</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_STRING (CUSTOM_COMMAND, DEFAULT_CUSTOM_COMMAND, KEY_CUSTOM_COMMAND)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string ("custom-command", (<br>(void*)0), ((void*)0), (""), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_CUSTOM_COMMAND, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "custom-command"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "custom-command", pspec<br>);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1345"><td class="num" id="LN1345">1345</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_STRING (TITLE, _(DEFAULT_TITLE), KEY_TITLE)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string ("title", ((void*)0<br>), ((void*)0), gettext ((("Terminal"))), G_PARAM_READWRITE | (<br>G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_TITLE<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) "title"); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) "title", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1346"><td class="num" id="LN1346">1346</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_STRING (VISIBLE_NAME, _(DEFAULT_VISIBLE_NAME), KEY_VISIBLE_NAME)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string ("visible-name", ((<br>void*)0), ((void*)0), gettext ((("Unnamed"))), G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_VISIBLE_NAME<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) "visible-name"); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) "visible-name", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1347"><td class="num" id="LN1347">1347</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_STRING (WORD_CHARS, DEFAULT_WORD_CHARS, KEY_WORD_CHARS)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string ("word-chars", ((void<br>*)0), ((void*)0), ("-A-Za-z0-9,./?%&amp;#:_=+@~"), G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_WORD_CHARS<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) "word-chars"); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) "word-chars", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1348"><td class="num" id="LN1348">1348</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1349"><td class="num" id="LN1349">1349</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_VALUE_ARRAY_BOXED (PALETTE, <span class='string_literal'>"palette-color"</span>, GDK_TYPE_RGBA, KEY_PALETTE)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_value_array ("palette", ((<br>void*)0), ((void*)0), g_param_spec_boxed ("palette-color", ((<br>void*)0), ((void*)0), (gdk_rgba_get_type ()), G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_PALETTE, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) "palette"); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) "palette", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1350"><td class="num" id="LN1350">1350</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1351"><td class="num" id="LN1351">1351</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1352"><td class="num" id="LN1352">1352</td><td class="line"><span class='comment'>/* Semi-Public API */</span></td></tr>
+<tr class="codeline" data-linenumber="1353"><td class="num" id="LN1353">1353</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1354"><td class="num" id="LN1354">1354</td><td class="line">TerminalProfile*</td></tr>
+<tr class="codeline" data-linenumber="1355"><td class="num" id="LN1355">1355</td><td class="line">_terminal_profile_new (<span class='keyword'>const</span> <span class='keyword'>char</span> *name)</td></tr>
+<tr class="codeline" data-linenumber="1356"><td class="num" id="LN1356">1356</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1357"><td class="num" id="LN1357">1357</td><td class="line"> <span class='keyword'>return</span> g_object_new (<span class='macro'>TERMINAL_TYPE_PROFILE<span class='macro_popup'>(terminal_profile_get_type ())</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1358"><td class="num" id="LN1358">1358</td><td class="line"> <span class='string_literal'>"name"</span>, name,</td></tr>
+<tr class="codeline" data-linenumber="1359"><td class="num" id="LN1359">1359</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1360"><td class="num" id="LN1360">1360</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1361"><td class="num" id="LN1361">1361</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1362"><td class="num" id="LN1362">1362</td><td class="line"><span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1363"><td class="num" id="LN1363">1363</td><td class="line">_terminal_profile_forget (TerminalProfile *profile)</td></tr>
+<tr class="codeline" data-linenumber="1364"><td class="num" id="LN1364">1364</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1365"><td class="num" id="LN1365">1365</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1366"><td class="num" id="LN1366">1366</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1367"><td class="num" id="LN1367">1367</td><td class="line"> <span class='keyword'>if</span> (!priv-&gt;forgotten)</td></tr>
+<tr class="codeline" data-linenumber="1368"><td class="num" id="LN1368">1368</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1369"><td class="num" id="LN1369">1369</td><td class="line"> priv-&gt;forgotten = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1370"><td class="num" id="LN1370">1370</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1371"><td class="num" id="LN1371">1371</td><td class="line"> g_signal_emit (<span class='macro'>G_OBJECT (profile)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((profile)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, signals[FORGOTTEN], 0);</td></tr>
+<tr class="codeline" data-linenumber="1372"><td class="num" id="LN1372">1372</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1373"><td class="num" id="LN1373">1373</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1374"><td class="num" id="LN1374">1374</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1375"><td class="num" id="LN1375">1375</td><td class="line">gboolean</td></tr>
+<tr class="codeline" data-linenumber="1376"><td class="num" id="LN1376">1376</td><td class="line">_terminal_profile_get_forgotten (TerminalProfile *profile)</td></tr>
+<tr class="codeline" data-linenumber="1377"><td class="num" id="LN1377">1377</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1378"><td class="num" id="LN1378">1378</td><td class="line"> <span class='keyword'>return</span> profile-&gt;priv-&gt;forgotten;</td></tr>
+<tr class="codeline" data-linenumber="1379"><td class="num" id="LN1379">1379</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1380"><td class="num" id="LN1380">1380</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1381"><td class="num" id="LN1381">1381</td><td class="line">TerminalProfile *</td></tr>
+<tr class="codeline" data-linenumber="1382"><td class="num" id="LN1382">1382</td><td class="line">_terminal_profile_clone (TerminalProfile *base_profile,</td></tr>
+<tr class="codeline" data-linenumber="1383"><td class="num" id="LN1383">1383</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *visible_name)</td></tr>
+<tr class="codeline" data-linenumber="1384"><td class="num" id="LN1384">1384</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1385"><td class="num" id="LN1385">1385</td><td class="line"> TerminalApp *app = terminal_app_get ();</td></tr>
+<tr class="codeline" data-linenumber="1386"><td class="num" id="LN1386">1386</td><td class="line"> GObject *base_object = <span class='macro'>G_OBJECT (base_profile)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((base_profile)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1387"><td class="num" id="LN1387">1387</td><td class="line"> TerminalProfilePrivate *new_priv;</td></tr>
+<tr class="codeline" data-linenumber="1388"><td class="num" id="LN1388">1388</td><td class="line"> <span class='keyword'>char</span> profile_name[32];</td></tr>
+<tr class="codeline" data-linenumber="1389"><td class="num" id="LN1389">1389</td><td class="line"> GParameter *params;</td></tr>
+<tr class="codeline" data-linenumber="1390"><td class="num" id="LN1390">1390</td><td class="line"> GParamSpec **pspecs;</td></tr>
+<tr class="codeline" data-linenumber="1391"><td class="num" id="LN1391">1391</td><td class="line"> guint n_pspecs, i, n_params, profile_num;</td></tr>
+<tr class="codeline" data-linenumber="1392"><td class="num" id="LN1392">1392</td><td class="line"> TerminalProfile *new_profile;</td></tr>
+<tr class="codeline" data-linenumber="1393"><td class="num" id="LN1393">1393</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1394"><td class="num" id="LN1394">1394</td><td class="line"> <span class='macro'>g_object_ref (base_profile)<span class='macro_popup'>((__typeof__ (base_profile)) (g_object_ref) (base_profile))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1395"><td class="num" id="LN1395">1395</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1396"><td class="num" id="LN1396">1396</td><td class="line"> profile_num = 0;</td></tr>
+<tr class="codeline" data-linenumber="1397"><td class="num" id="LN1397">1397</td><td class="line"> <span class='keyword'>do</span></td></tr>
+<tr class="codeline" data-linenumber="1398"><td class="num" id="LN1398">1398</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1399"><td class="num" id="LN1399">1399</td><td class="line"> g_snprintf (profile_name, <span class='keyword'>sizeof</span> (profile_name), <span class='string_literal'>"profile%u"</span>, profile_num++);</td></tr>
+<tr class="codeline" data-linenumber="1400"><td class="num" id="LN1400">1400</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1401"><td class="num" id="LN1401">1401</td><td class="line"> <span class='keyword'>while</span> (terminal_app_get_profile_by_name (app, profile_name) != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1402"><td class="num" id="LN1402">1402</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1403"><td class="num" id="LN1403">1403</td><td class="line"> <span class='comment'>/* Now we have an unused profile name */</span></td></tr>
+<tr class="codeline" data-linenumber="1404"><td class="num" id="LN1404">1404</td><td class="line"> pspecs = g_object_class_list_properties (<span class='macro'>G_OBJECT_CLASS (TERMINAL_PROFILE_GET_CLASS (base_profile))<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((((((TerminalProfileClass*) (((GTypeInstance*) ((base_profile<br>)))-&gt;g_class)))))), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, &amp;n_pspecs);</td></tr>
+<tr class="codeline" data-linenumber="1405"><td class="num" id="LN1405">1405</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1406"><td class="num" id="LN1406">1406</td><td class="line"> params = <span class='macro'>g_newa (GParameter, n_pspecs)<span class='macro_popup'>((GParameter*) __builtin_alloca (sizeof (GParameter) * (gsize<br>) (n_pspecs)))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1407"><td class="num" id="LN1407">1407</td><td class="line"> n_params = 0;</td></tr>
+<tr class="codeline" data-linenumber="1408"><td class="num" id="LN1408">1408</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1409"><td class="num" id="LN1409">1409</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; n_pspecs; ++i)</td></tr>
+<tr class="codeline" data-linenumber="1410"><td class="num" id="LN1410">1410</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1411"><td class="num" id="LN1411">1411</td><td class="line"> GParamSpec *pspec = pspecs[i];</td></tr>
+<tr class="codeline" data-linenumber="1412"><td class="num" id="LN1412">1412</td><td class="line"> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="1413"><td class="num" id="LN1413">1413</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1414"><td class="num" id="LN1414">1414</td><td class="line"> <span class='keyword'>if</span> (pspec-&gt;owner_type != <span class='macro'>TERMINAL_TYPE_PROFILE<span class='macro_popup'>(terminal_profile_get_type ())</span></span> ||</td></tr>
+<tr class="codeline" data-linenumber="1415"><td class="num" id="LN1415">1415</td><td class="line"> (pspec-&gt;flags &amp; G_PARAM_WRITABLE) == 0)</td></tr>
+<tr class="codeline" data-linenumber="1416"><td class="num" id="LN1416">1416</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="1417"><td class="num" id="LN1417">1417</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1418"><td class="num" id="LN1418">1418</td><td class="line"> params[n_params].name = pspec-&gt;name;</td></tr>
+<tr class="codeline" data-linenumber="1419"><td class="num" id="LN1419">1419</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1420"><td class="num" id="LN1420">1420</td><td class="line"> value = &amp;params[n_params].value;</td></tr>
+<tr class="codeline" data-linenumber="1421"><td class="num" id="LN1421">1421</td><td class="line"> <span class='macro'>G_VALUE_TYPE (value)<span class='macro_popup'>(((GValue*) (value))-&gt;g_type)</span></span> = 0;</td></tr>
+<tr class="codeline" data-linenumber="1422"><td class="num" id="LN1422">1422</td><td class="line"> g_value_init (value, <span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1423"><td class="num" id="LN1423">1423</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1424"><td class="num" id="LN1424">1424</td><td class="line"> <span class='keyword'>if</span> (pspec-&gt;name == <span class='macro'>I_(TERMINAL_PROFILE_NAME)<span class='macro_popup'>g_intern_static_string ("name")</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1425"><td class="num" id="LN1425">1425</td><td class="line"> g_value_set_static_string (value, profile_name);</td></tr>
+<tr class="codeline" data-linenumber="1426"><td class="num" id="LN1426">1426</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (pspec-&gt;name == <span class='macro'>I_(TERMINAL_PROFILE_VISIBLE_NAME)<span class='macro_popup'>g_intern_static_string ("visible-name")</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1427"><td class="num" id="LN1427">1427</td><td class="line"> g_value_set_static_string (value, visible_name);</td></tr>
+<tr class="codeline" data-linenumber="1428"><td class="num" id="LN1428">1428</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="1429"><td class="num" id="LN1429">1429</td><td class="line"> g_object_get_property (base_object, pspec-&gt;name, value);</td></tr>
+<tr class="codeline" data-linenumber="1430"><td class="num" id="LN1430">1430</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1431"><td class="num" id="LN1431">1431</td><td class="line"> ++n_params;</td></tr>
+<tr class="codeline" data-linenumber="1432"><td class="num" id="LN1432">1432</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1433"><td class="num" id="LN1433">1433</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1434"><td class="num" id="LN1434">1434</td><td class="line"> new_profile = g_object_newv (<span class='macro'>TERMINAL_TYPE_PROFILE<span class='macro_popup'>(terminal_profile_get_type ())</span></span>, n_params, params);</td></tr>
+<tr class="codeline" data-linenumber="1435"><td class="num" id="LN1435">1435</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1436"><td class="num" id="LN1436">1436</td><td class="line"> g_object_unref (base_profile);</td></tr>
+<tr class="codeline" data-linenumber="1437"><td class="num" id="LN1437">1437</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1438"><td class="num" id="LN1438">1438</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; n_params; ++i)</td></tr>
+<tr class="codeline" data-linenumber="1439"><td class="num" id="LN1439">1439</td><td class="line"> g_value_unset (&amp;params[i].value);</td></tr>
+<tr class="codeline" data-linenumber="1440"><td class="num" id="LN1440">1440</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1441"><td class="num" id="LN1441">1441</td><td class="line"> <span class='comment'>/* Flush the new profile to GSettings */</span></td></tr>
+<tr class="codeline" data-linenumber="1442"><td class="num" id="LN1442">1442</td><td class="line"> new_priv = new_profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1443"><td class="num" id="LN1443">1443</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1444"><td class="num" id="LN1444">1444</td><td class="line"> g_slist_free (new_priv-&gt;dirty_pspecs);</td></tr>
+<tr class="codeline" data-linenumber="1445"><td class="num" id="LN1445">1445</td><td class="line"> new_priv-&gt;dirty_pspecs = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1446"><td class="num" id="LN1446">1446</td><td class="line"> <span class='keyword'>if</span> (new_priv-&gt;save_idle_id != 0)</td></tr>
+<tr class="codeline" data-linenumber="1447"><td class="num" id="LN1447">1447</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1448"><td class="num" id="LN1448">1448</td><td class="line"> g_source_remove (new_priv-&gt;save_idle_id);</td></tr>
+<tr class="codeline" data-linenumber="1449"><td class="num" id="LN1449">1449</td><td class="line"> new_priv-&gt;save_idle_id = 0;</td></tr>
+<tr class="codeline" data-linenumber="1450"><td class="num" id="LN1450">1450</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1451"><td class="num" id="LN1451">1451</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1452"><td class="num" id="LN1452">1452</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; n_pspecs; ++i)</td></tr>
+<tr class="codeline" data-linenumber="1453"><td class="num" id="LN1453">1453</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1454"><td class="num" id="LN1454">1454</td><td class="line"> GParamSpec *pspec = pspecs[i];</td></tr>
+<tr class="codeline" data-linenumber="1455"><td class="num" id="LN1455">1455</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1456"><td class="num" id="LN1456">1456</td><td class="line"> <span class='keyword'>if</span> (pspec-&gt;owner_type != <span class='macro'>TERMINAL_TYPE_PROFILE<span class='macro_popup'>(terminal_profile_get_type ())</span></span> ||</td></tr>
+<tr class="codeline" data-linenumber="1457"><td class="num" id="LN1457">1457</td><td class="line"> (pspec-&gt;flags &amp; G_PARAM_WRITABLE) == 0)</td></tr>
+<tr class="codeline" data-linenumber="1458"><td class="num" id="LN1458">1458</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="1459"><td class="num" id="LN1459">1459</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1460"><td class="num" id="LN1460">1460</td><td class="line"> new_priv-&gt;dirty_pspecs = g_slist_prepend (new_priv-&gt;dirty_pspecs, pspec);</td></tr>
+<tr class="codeline" data-linenumber="1461"><td class="num" id="LN1461">1461</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1462"><td class="num" id="LN1462">1462</td><td class="line"> g_free (pspecs);</td></tr>
+<tr class="codeline" data-linenumber="1463"><td class="num" id="LN1463">1463</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1464"><td class="num" id="LN1464">1464</td><td class="line"> terminal_profile_save (new_profile);</td></tr>
+<tr class="codeline" data-linenumber="1465"><td class="num" id="LN1465">1465</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1466"><td class="num" id="LN1466">1466</td><td class="line"> <span class='keyword'>return</span> new_profile;</td></tr>
+<tr class="codeline" data-linenumber="1467"><td class="num" id="LN1467">1467</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1468"><td class="num" id="LN1468">1468</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1469"><td class="num" id="LN1469">1469</td><td class="line"><span class='comment'>/* Public API */</span></td></tr>
+<tr class="codeline" data-linenumber="1470"><td class="num" id="LN1470">1470</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1471"><td class="num" id="LN1471">1471</td><td class="line">gboolean</td></tr>
+<tr class="codeline" data-linenumber="1472"><td class="num" id="LN1472">1472</td><td class="line">terminal_profile_get_property_boolean (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1473"><td class="num" id="LN1473">1473</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="1474"><td class="num" id="LN1474">1474</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1475"><td class="num" id="LN1475">1475</td><td class="line"> <span class='keyword'>const</span> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="1476"><td class="num" id="LN1476">1476</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1477"><td class="num" id="LN1477">1477</td><td class="line"> value = get_prop_value_from_prop_name (profile, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="1478"><td class="num" id="LN1478">1478</td><td class="line"> <span class='macro'>g_return_val_if_fail (value != NULL &amp;&amp; G_VALUE_HOLDS_BOOLEAN (value), FALSE)<span class='macro_popup'>do { if ((value != ((void*)0) &amp;&amp; (((__extension__ ({ const<br> GValue *__val = (const GValue*) ((value)); GType __t = (((GType<br>) ((5) &lt;&lt; (2)))); gboolean __r; if (!__val) __r = (0); else<br> if (__val-&gt;g_type == __t) __r = (!(0)); else __r = g_type_check_value_holds<br> (__val, __t); __r; })))))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "value != NULL &amp;&amp; G_VALUE_HOLDS_BOOLEAN (value)"<br>); return ((0)); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1479"><td class="num" id="LN1479">1479</td><td class="line"> <span class='keyword'>if</span> (!value || !<span class='macro'>G_VALUE_HOLDS_BOOLEAN (value)<span class='macro_popup'>(((__extension__ ({ const GValue *__val = (const GValue*) ((value<br>)); GType __t = (((GType) ((5) &lt;&lt; (2)))); gboolean __r;<br> if (!__val) __r = (0); else if (__val-&gt;g_type == __t) __r<br> = (!(0)); else __r = g_type_check_value_holds (__val, __t); __r<br>; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1480"><td class="num" id="LN1480">1480</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1481"><td class="num" id="LN1481">1481</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1482"><td class="num" id="LN1482">1482</td><td class="line"> <span class='keyword'>return</span> g_value_get_boolean (value);</td></tr>
+<tr class="codeline" data-linenumber="1483"><td class="num" id="LN1483">1483</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1484"><td class="num" id="LN1484">1484</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1485"><td class="num" id="LN1485">1485</td><td class="line">gconstpointer</td></tr>
+<tr class="codeline" data-linenumber="1486"><td class="num" id="LN1486">1486</td><td class="line">terminal_profile_get_property_boxed (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1487"><td class="num" id="LN1487">1487</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="1488"><td class="num" id="LN1488">1488</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1489"><td class="num" id="LN1489">1489</td><td class="line"> <span class='keyword'>const</span> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="1490"><td class="num" id="LN1490">1490</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1491"><td class="num" id="LN1491">1491</td><td class="line"> value = get_prop_value_from_prop_name (profile, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="1492"><td class="num" id="LN1492">1492</td><td class="line"> <span class='macro'>g_return_val_if_fail (value != NULL &amp;&amp; G_VALUE_HOLDS_BOXED (value), NULL)<span class='macro_popup'>do { if ((value != ((void*)0) &amp;&amp; (((__extension__ ({ const<br> GValue *__val = (const GValue*) ((value)); GType __t = (((GType<br>) ((18) &lt;&lt; (2)))); gboolean __r; if (!__val) __r = (0);<br> else if (__val-&gt;g_type == __t) __r = (!(0)); else __r = g_type_check_value_holds<br> (__val, __t); __r; })))))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "value != NULL &amp;&amp; G_VALUE_HOLDS_BOXED (value)"<br>); return (((void*)0)); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1493"><td class="num" id="LN1493">1493</td><td class="line"> <span class='keyword'>if</span> (!value || !<span class='macro'>G_VALUE_HOLDS_BOXED (value)<span class='macro_popup'>(((__extension__ ({ const GValue *__val = (const GValue*) ((value<br>)); GType __t = (((GType) ((18) &lt;&lt; (2)))); gboolean __r<br>; if (!__val) __r = (0); else if (__val-&gt;g_type == __t) __r<br> = (!(0)); else __r = g_type_check_value_holds (__val, __t); __r<br>; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1494"><td class="num" id="LN1494">1494</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1495"><td class="num" id="LN1495">1495</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1496"><td class="num" id="LN1496">1496</td><td class="line"> <span class='keyword'>return</span> g_value_get_boxed (value);</td></tr>
+<tr class="codeline" data-linenumber="1497"><td class="num" id="LN1497">1497</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1498"><td class="num" id="LN1498">1498</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1499"><td class="num" id="LN1499">1499</td><td class="line"><span class='keyword'>double</span></td></tr>
+<tr class="codeline" data-linenumber="1500"><td class="num" id="LN1500">1500</td><td class="line">terminal_profile_get_property_double (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1501"><td class="num" id="LN1501">1501</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="1502"><td class="num" id="LN1502">1502</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1503"><td class="num" id="LN1503">1503</td><td class="line"> <span class='keyword'>const</span> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="1504"><td class="num" id="LN1504">1504</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1505"><td class="num" id="LN1505">1505</td><td class="line"> value = get_prop_value_from_prop_name (profile, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="1506"><td class="num" id="LN1506">1506</td><td class="line"> <span class='macro'>g_return_val_if_fail (value != NULL &amp;&amp; G_VALUE_HOLDS_DOUBLE (value), 0.0)<span class='macro_popup'>do { if ((value != ((void*)0) &amp;&amp; (((__extension__ ({ const<br> GValue *__val = (const GValue*) ((value)); GType __t = (((GType<br>) ((15) &lt;&lt; (2)))); gboolean __r; if (!__val) __r = (0);<br> else if (__val-&gt;g_type == __t) __r = (!(0)); else __r = g_type_check_value_holds<br> (__val, __t); __r; })))))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "value != NULL &amp;&amp; G_VALUE_HOLDS_DOUBLE (value)"<br>); return (0.0); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1507"><td class="num" id="LN1507">1507</td><td class="line"> <span class='keyword'>if</span> (!value || !<span class='macro'>G_VALUE_HOLDS_DOUBLE (value)<span class='macro_popup'>(((__extension__ ({ const GValue *__val = (const GValue*) ((value<br>)); GType __t = (((GType) ((15) &lt;&lt; (2)))); gboolean __r<br>; if (!__val) __r = (0); else if (__val-&gt;g_type == __t) __r<br> = (!(0)); else __r = g_type_check_value_holds (__val, __t); __r<br>; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1508"><td class="num" id="LN1508">1508</td><td class="line"> <span class='keyword'>return</span> 0.0;</td></tr>
+<tr class="codeline" data-linenumber="1509"><td class="num" id="LN1509">1509</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1510"><td class="num" id="LN1510">1510</td><td class="line"> <span class='keyword'>return</span> g_value_get_double (value);</td></tr>
+<tr class="codeline" data-linenumber="1511"><td class="num" id="LN1511">1511</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1512"><td class="num" id="LN1512">1512</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1513"><td class="num" id="LN1513">1513</td><td class="line"><span class='keyword'>int</span></td></tr>
+<tr class="codeline" data-linenumber="1514"><td class="num" id="LN1514">1514</td><td class="line">terminal_profile_get_property_enum (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1515"><td class="num" id="LN1515">1515</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="1516"><td class="num" id="LN1516">1516</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1517"><td class="num" id="LN1517">1517</td><td class="line"> <span class='keyword'>const</span> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="1518"><td class="num" id="LN1518">1518</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1519"><td class="num" id="LN1519">1519</td><td class="line"> value = get_prop_value_from_prop_name (profile, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="1520"><td class="num" id="LN1520">1520</td><td class="line"> <span class='macro'>g_return_val_if_fail (value != NULL &amp;&amp; G_VALUE_HOLDS_ENUM (value), 0)<span class='macro_popup'>do { if ((value != ((void*)0) &amp;&amp; (((__extension__ ({ const<br> GValue *__val = (const GValue*) ((value)); GType __t = (((GType<br>) ((12) &lt;&lt; (2)))); gboolean __r; if (!__val) __r = (0);<br> else if (__val-&gt;g_type == __t) __r = (!(0)); else __r = g_type_check_value_holds<br> (__val, __t); __r; })))))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "value != NULL &amp;&amp; G_VALUE_HOLDS_ENUM (value)"<br>); return (0); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1521"><td class="num" id="LN1521">1521</td><td class="line"> <span class='keyword'>if</span> (!value || !<span class='macro'>G_VALUE_HOLDS_ENUM (value)<span class='macro_popup'>(((__extension__ ({ const GValue *__val = (const GValue*) ((value<br>)); GType __t = (((GType) ((12) &lt;&lt; (2)))); gboolean __r<br>; if (!__val) __r = (0); else if (__val-&gt;g_type == __t) __r<br> = (!(0)); else __r = g_type_check_value_holds (__val, __t); __r<br>; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1522"><td class="num" id="LN1522">1522</td><td class="line"> <span class='keyword'>return</span> 0;</td></tr>
+<tr class="codeline" data-linenumber="1523"><td class="num" id="LN1523">1523</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1524"><td class="num" id="LN1524">1524</td><td class="line"> <span class='keyword'>return</span> g_value_get_enum (value);</td></tr>
+<tr class="codeline" data-linenumber="1525"><td class="num" id="LN1525">1525</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1526"><td class="num" id="LN1526">1526</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1527"><td class="num" id="LN1527">1527</td><td class="line"><span class='keyword'>int</span></td></tr>
+<tr class="codeline" data-linenumber="1528"><td class="num" id="LN1528">1528</td><td class="line">terminal_profile_get_property_int (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1529"><td class="num" id="LN1529">1529</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="1530"><td class="num" id="LN1530">1530</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1531"><td class="num" id="LN1531">1531</td><td class="line"> <span class='keyword'>const</span> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="1532"><td class="num" id="LN1532">1532</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1533"><td class="num" id="LN1533">1533</td><td class="line"> value = get_prop_value_from_prop_name (profile, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="1534"><td class="num" id="LN1534">1534</td><td class="line"> <span class='macro'>g_return_val_if_fail (value != NULL &amp;&amp; G_VALUE_HOLDS_INT (value), 0)<span class='macro_popup'>do { if ((value != ((void*)0) &amp;&amp; (((__extension__ ({ const<br> GValue *__val = (const GValue*) ((value)); GType __t = (((GType<br>) ((6) &lt;&lt; (2)))); gboolean __r; if (!__val) __r = (0); else<br> if (__val-&gt;g_type == __t) __r = (!(0)); else __r = g_type_check_value_holds<br> (__val, __t); __r; })))))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "value != NULL &amp;&amp; G_VALUE_HOLDS_INT (value)"<br>); return (0); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1535"><td class="num" id="LN1535">1535</td><td class="line"> <span class='keyword'>if</span> (!value || !<span class='macro'>G_VALUE_HOLDS_INT (value)<span class='macro_popup'>(((__extension__ ({ const GValue *__val = (const GValue*) ((value<br>)); GType __t = (((GType) ((6) &lt;&lt; (2)))); gboolean __r;<br> if (!__val) __r = (0); else if (__val-&gt;g_type == __t) __r<br> = (!(0)); else __r = g_type_check_value_holds (__val, __t); __r<br>; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1536"><td class="num" id="LN1536">1536</td><td class="line"> <span class='keyword'>return</span> 0;</td></tr>
+<tr class="codeline" data-linenumber="1537"><td class="num" id="LN1537">1537</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1538"><td class="num" id="LN1538">1538</td><td class="line"> <span class='keyword'>return</span> g_value_get_int (value);</td></tr>
+<tr class="codeline" data-linenumber="1539"><td class="num" id="LN1539">1539</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1540"><td class="num" id="LN1540">1540</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1541"><td class="num" id="LN1541">1541</td><td class="line">gpointer</td></tr>
+<tr class="codeline" data-linenumber="1542"><td class="num" id="LN1542">1542</td><td class="line">terminal_profile_get_property_object (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1543"><td class="num" id="LN1543">1543</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="1544"><td class="num" id="LN1544">1544</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1545"><td class="num" id="LN1545">1545</td><td class="line"> <span class='keyword'>const</span> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="1546"><td class="num" id="LN1546">1546</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1547"><td class="num" id="LN1547">1547</td><td class="line"> value = get_prop_value_from_prop_name (profile, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="1548"><td class="num" id="LN1548">1548</td><td class="line"> <span class='macro'>g_return_val_if_fail (value != NULL &amp;&amp; G_VALUE_HOLDS_OBJECT (value), NULL)<span class='macro_popup'>do { if ((value != ((void*)0) &amp;&amp; (((__extension__ ({ const<br> GValue *__val = (const GValue*) ((value)); GType __t = (((GType<br>) ((20) &lt;&lt; (2)))); gboolean __r; if (!__val) __r = (0);<br> else if (__val-&gt;g_type == __t) __r = (!(0)); else __r = g_type_check_value_holds<br> (__val, __t); __r; })))))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "value != NULL &amp;&amp; G_VALUE_HOLDS_OBJECT (value)"<br>); return (((void*)0)); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1549"><td class="num" id="LN1549">1549</td><td class="line"> <span class='keyword'>if</span> (!value || !<span class='macro'>G_VALUE_HOLDS_OBJECT (value)<span class='macro_popup'>(((__extension__ ({ const GValue *__val = (const GValue*) ((value<br>)); GType __t = (((GType) ((20) &lt;&lt; (2)))); gboolean __r<br>; if (!__val) __r = (0); else if (__val-&gt;g_type == __t) __r<br> = (!(0)); else __r = g_type_check_value_holds (__val, __t); __r<br>; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1550"><td class="num" id="LN1550">1550</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1551"><td class="num" id="LN1551">1551</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1552"><td class="num" id="LN1552">1552</td><td class="line"> <span class='keyword'>return</span> g_value_get_object (value);</td></tr>
+<tr class="codeline" data-linenumber="1553"><td class="num" id="LN1553">1553</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1554"><td class="num" id="LN1554">1554</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1555"><td class="num" id="LN1555">1555</td><td class="line"><span class='keyword'>const</span> <span class='keyword'>char</span>*</td></tr>
+<tr class="codeline" data-linenumber="1556"><td class="num" id="LN1556">1556</td><td class="line">terminal_profile_get_property_string (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1557"><td class="num" id="LN1557">1557</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="1558"><td class="num" id="LN1558">1558</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1559"><td class="num" id="LN1559">1559</td><td class="line"> <span class='keyword'>const</span> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="1560"><td class="num" id="LN1560">1560</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1561"><td class="num" id="LN1561">1561</td><td class="line"> value = get_prop_value_from_prop_name (profile, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="1562"><td class="num" id="LN1562">1562</td><td class="line"> <span class='macro'>g_return_val_if_fail (value != NULL &amp;&amp; G_VALUE_HOLDS_STRING (value), NULL)<span class='macro_popup'>do { if ((value != ((void*)0) &amp;&amp; (((__extension__ ({ const<br> GValue *__val = (const GValue*) ((value)); GType __t = (((GType<br>) ((16) &lt;&lt; (2)))); gboolean __r; if (!__val) __r = (0);<br> else if (__val-&gt;g_type == __t) __r = (!(0)); else __r = g_type_check_value_holds<br> (__val, __t); __r; })))))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "value != NULL &amp;&amp; G_VALUE_HOLDS_STRING (value)"<br>); return (((void*)0)); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1563"><td class="num" id="LN1563">1563</td><td class="line"> <span class='keyword'>if</span> (!value || !<span class='macro'>G_VALUE_HOLDS_STRING (value)<span class='macro_popup'>(((__extension__ ({ const GValue *__val = (const GValue*) ((value<br>)); GType __t = (((GType) ((16) &lt;&lt; (2)))); gboolean __r<br>; if (!__val) __r = (0); else if (__val-&gt;g_type == __t) __r<br> = (!(0)); else __r = g_type_check_value_holds (__val, __t); __r<br>; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1564"><td class="num" id="LN1564">1564</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1565"><td class="num" id="LN1565">1565</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1566"><td class="num" id="LN1566">1566</td><td class="line"> <span class='keyword'>return</span> g_value_get_string (value);</td></tr>
+<tr class="codeline" data-linenumber="1567"><td class="num" id="LN1567">1567</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1568"><td class="num" id="LN1568">1568</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1569"><td class="num" id="LN1569">1569</td><td class="line">gboolean</td></tr>
+<tr class="codeline" data-linenumber="1570"><td class="num" id="LN1570">1570</td><td class="line">terminal_profile_property_locked (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1571"><td class="num" id="LN1571">1571</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="1572"><td class="num" id="LN1572">1572</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1573"><td class="num" id="LN1573">1573</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1574"><td class="num" id="LN1574">1574</td><td class="line"> GParamSpec *pspec;</td></tr>
+<tr class="codeline" data-linenumber="1575"><td class="num" id="LN1575">1575</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1576"><td class="num" id="LN1576">1576</td><td class="line"> pspec = get_pspec_from_name (profile, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="1577"><td class="num" id="LN1577">1577</td><td class="line"> <span class='macro'>g_return_val_if_fail (pspec != NULL, FALSE)<span class='macro_popup'>do { if ((pspec != ((void*)0))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "pspec != NULL");<br> return ((0)); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1578"><td class="num" id="LN1578">1578</td><td class="line"> <span class='keyword'>if</span> (!pspec)</td></tr>
+<tr class="codeline" data-linenumber="1579"><td class="num" id="LN1579">1579</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1580"><td class="num" id="LN1580">1580</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1581"><td class="num" id="LN1581">1581</td><td class="line"> <span class='keyword'>return</span> priv-&gt;locked[pspec-&gt;param_id];</td></tr>
+<tr class="codeline" data-linenumber="1582"><td class="num" id="LN1582">1582</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1583"><td class="num" id="LN1583">1583</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1584"><td class="num" id="LN1584">1584</td><td class="line"><span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1585"><td class="num" id="LN1585">1585</td><td class="line">terminal_profile_reset_property (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1586"><td class="num" id="LN1586">1586</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="1587"><td class="num" id="LN1587">1587</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1588"><td class="num" id="LN1588">1588</td><td class="line"> GParamSpec *pspec;</td></tr>
+<tr class="codeline" data-linenumber="1589"><td class="num" id="LN1589">1589</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1590"><td class="num" id="LN1590">1590</td><td class="line"> pspec = get_pspec_from_name (profile, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="1591"><td class="num" id="LN1591">1591</td><td class="line"> <span class='macro'>g_return_if_fail (pspec != NULL)<span class='macro_popup'>do { if ((pspec != ((void*)0))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "pspec != NULL");<br> return; } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1592"><td class="num" id="LN1592">1592</td><td class="line"> <span class='keyword'>if</span> (!pspec ||</td></tr>
+<tr class="codeline" data-linenumber="1593"><td class="num" id="LN1593">1593</td><td class="line"> (pspec-&gt;flags &amp; G_PARAM_WRITABLE) == 0)</td></tr>
+<tr class="codeline" data-linenumber="1594"><td class="num" id="LN1594">1594</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1595"><td class="num" id="LN1595">1595</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1596"><td class="num" id="LN1596">1596</td><td class="line"> terminal_profile_reset_property_internal (profile, pspec, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1597"><td class="num" id="LN1597">1597</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1598"><td class="num" id="LN1598">1598</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1599"><td class="num" id="LN1599">1599</td><td class="line">gboolean</td></tr>
+<tr class="codeline" data-linenumber="1600"><td class="num" id="LN1600">1600</td><td class="line">terminal_profile_get_palette (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1601"><td class="num" id="LN1601">1601</td><td class="line"> GdkRGBA *colors,</td></tr>
+<tr class="codeline" data-linenumber="1602"><td class="num" id="LN1602">1602</td><td class="line"> guint *n_colors)</td></tr>
+<tr class="codeline" data-linenumber="1603"><td class="num" id="LN1603">1603</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1604"><td class="num" id="LN1604">1604</td><td class="line"> TerminalProfilePrivate *priv;</td></tr>
+<tr class="codeline" data-linenumber="1605"><td class="num" id="LN1605">1605</td><td class="line"> GValueArray *array;</td></tr>
+<tr class="codeline" data-linenumber="1606"><td class="num" id="LN1606">1606</td><td class="line"> guint i, n;</td></tr>
+<tr class="codeline" data-linenumber="1607"><td class="num" id="LN1607">1607</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1608"><td class="num" id="LN1608">1608</td><td class="line"> <span class='macro'>g_return_val_if_fail (TERMINAL_IS_PROFILE (profile), FALSE)<span class='macro_popup'>do { if (((((__extension__ ({ GTypeInstance *__inst = (GTypeInstance<br>*) ((profile)); GType __t = ((terminal_profile_get_type ()));<br> gboolean __r; if (!__inst) __r = (0); else if (__inst-&gt;g_class<br> &amp;&amp; __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)<br>); else __r = g_type_check_instance_is_a (__inst, __t); __r; }<br>)))))) { } else { g_return_if_fail_warning (((gchar*) 0), ((const<br> char*) (__func__)), "TERMINAL_IS_PROFILE (profile)"); return<br> ((0)); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1609"><td class="num" id="LN1609">1609</td><td class="line"> <span class='macro'>g_return_val_if_fail (colors != NULL &amp;&amp; n_colors != NULL, FALSE)<span class='macro_popup'>do { if ((colors != ((void*)0) &amp;&amp; n_colors != ((void*<br>)0))) { } else { g_return_if_fail_warning (((gchar*) 0), ((const<br> char*) (__func__)), "colors != NULL &amp;&amp; n_colors != NULL"<br>); return ((0)); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1610"><td class="num" id="LN1610">1610</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1611"><td class="num" id="LN1611">1611</td><td class="line"> priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1612"><td class="num" id="LN1612">1612</td><td class="line"> array = g_value_get_boxed (g_value_array_get_nth (priv-&gt;properties, PROP_PALETTE));</td></tr>
+<tr class="codeline" data-linenumber="1613"><td class="num" id="LN1613">1613</td><td class="line"> <span class='keyword'>if</span> (!array)</td></tr>
+<tr class="codeline" data-linenumber="1614"><td class="num" id="LN1614">1614</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1615"><td class="num" id="LN1615">1615</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1616"><td class="num" id="LN1616">1616</td><td class="line"> n = <span class='macro'>MIN (array-&gt;n_values, *n_colors)<span class='macro_popup'>(((array-&gt;n_values) &lt; (*n_colors)) ? (array-&gt;n_values<br>) : (*n_colors))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1617"><td class="num" id="LN1617">1617</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; n; ++i)</td></tr>
+<tr class="codeline" data-linenumber="1618"><td class="num" id="LN1618">1618</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1619"><td class="num" id="LN1619">1619</td><td class="line"> GdkRGBA *color = g_value_get_boxed (g_value_array_get_nth (array, i));</td></tr>
+<tr class="codeline" data-linenumber="1620"><td class="num" id="LN1620">1620</td><td class="line"> <span class='keyword'>if</span> (!color)</td></tr>
+<tr class="codeline" data-linenumber="1621"><td class="num" id="LN1621">1621</td><td class="line"> <span class='keyword'>continue</span>; <span class='comment'>/* shouldn't happen!! */</span></td></tr>
+<tr class="codeline" data-linenumber="1622"><td class="num" id="LN1622">1622</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1623"><td class="num" id="LN1623">1623</td><td class="line"> colors[i] = *color;</td></tr>
+<tr class="codeline" data-linenumber="1624"><td class="num" id="LN1624">1624</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1625"><td class="num" id="LN1625">1625</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1626"><td class="num" id="LN1626">1626</td><td class="line"> *n_colors = n;</td></tr>
+<tr class="codeline" data-linenumber="1627"><td class="num" id="LN1627">1627</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1628"><td class="num" id="LN1628">1628</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1629"><td class="num" id="LN1629">1629</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1630"><td class="num" id="LN1630">1630</td><td class="line">gboolean</td></tr>
+<tr class="codeline" data-linenumber="1631"><td class="num" id="LN1631">1631</td><td class="line">terminal_profile_get_palette_is_builtin (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1632"><td class="num" id="LN1632">1632</td><td class="line"> guint *n)</td></tr>
+<tr class="codeline" data-linenumber="1633"><td class="num" id="LN1633">1633</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1634"><td class="num" id="LN1634">1634</td><td class="line"> GdkRGBA colors[<span class='macro'>TERMINAL_PALETTE_SIZE<span class='macro_popup'>16</span></span>];</td></tr>
+<tr class="codeline" data-linenumber="1635"><td class="num" id="LN1635">1635</td><td class="line"> guint n_colors;</td></tr>
+<tr class="codeline" data-linenumber="1636"><td class="num" id="LN1636">1636</td><td class="line"> guint i;</td></tr>
+<tr class="codeline" data-linenumber="1637"><td class="num" id="LN1637">1637</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1638"><td class="num" id="LN1638">1638</td><td class="line"> n_colors = <span class='macro'>G_N_ELEMENTS (colors)<span class='macro_popup'>(sizeof (colors) / sizeof ((colors)[0]))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1639"><td class="num" id="LN1639">1639</td><td class="line"> <span class='keyword'>if</span> (!terminal_profile_get_palette (profile, colors, &amp;n_colors) ||</td></tr>
+<tr class="codeline" data-linenumber="1640"><td class="num" id="LN1640">1640</td><td class="line"> n_colors != <span class='macro'>TERMINAL_PALETTE_SIZE<span class='macro_popup'>16</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1641"><td class="num" id="LN1641">1641</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1642"><td class="num" id="LN1642">1642</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1643"><td class="num" id="LN1643">1643</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; <span class='macro'>TERMINAL_PALETTE_N_BUILTINS<span class='macro_popup'>5</span></span>; ++i)</td></tr>
+<tr class="codeline" data-linenumber="1644"><td class="num" id="LN1644">1644</td><td class="line"> <span class='keyword'>if</span> (palette_cmp (colors, terminal_palettes[i]))</td></tr>
+<tr class="codeline" data-linenumber="1645"><td class="num" id="LN1645">1645</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1646"><td class="num" id="LN1646">1646</td><td class="line"> *n = i;</td></tr>
+<tr class="codeline" data-linenumber="1647"><td class="num" id="LN1647">1647</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1648"><td class="num" id="LN1648">1648</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1649"><td class="num" id="LN1649">1649</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1650"><td class="num" id="LN1650">1650</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1651"><td class="num" id="LN1651">1651</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1652"><td class="num" id="LN1652">1652</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1653"><td class="num" id="LN1653">1653</td><td class="line"><span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1654"><td class="num" id="LN1654">1654</td><td class="line">terminal_profile_set_palette_builtin (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1655"><td class="num" id="LN1655">1655</td><td class="line"> guint n)</td></tr>
+<tr class="codeline" data-linenumber="1656"><td class="num" id="LN1656">1656</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1657"><td class="num" id="LN1657">1657</td><td class="line"> GValue value = { 0, };</td></tr>
+<tr class="codeline" data-linenumber="1658"><td class="num" id="LN1658">1658</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1659"><td class="num" id="LN1659">1659</td><td class="line"> <span class='macro'>g_return_if_fail (n &lt; TERMINAL_PALETTE_N_BUILTINS)<span class='macro_popup'>do { if ((n &lt; 5)) { } else { g_return_if_fail_warning (((gchar<br>*) 0), ((const char*) (__func__)), "n &lt; TERMINAL_PALETTE_N_BUILTINS"<br>); return; } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1660"><td class="num" id="LN1660">1660</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1661"><td class="num" id="LN1661">1661</td><td class="line"> g_value_init (&amp;value, <span class='macro'>G_TYPE_VALUE_ARRAY<span class='macro_popup'>(g_value_array_get_type ()) GCC warning "Deprecated pre-processor symbol: replace with \"(g_array_get_type ())\""<br>
+</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1662"><td class="num" id="LN1662">1662</td><td class="line"> set_value_from_palette (&amp;value, terminal_palettes[n], <span class='macro'>TERMINAL_PALETTE_SIZE<span class='macro_popup'>16</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1663"><td class="num" id="LN1663">1663</td><td class="line"> g_object_set_property (<span class='macro'>G_OBJECT (profile)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((profile)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, <span class='macro'>TERMINAL_PROFILE_PALETTE<span class='macro_popup'>"palette"</span></span>, &amp;value);</td></tr>
+<tr class="codeline" data-linenumber="1664"><td class="num" id="LN1664">1664</td><td class="line"> g_value_unset (&amp;value);</td></tr>
+<tr class="codeline" data-linenumber="1665"><td class="num" id="LN1665">1665</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1666"><td class="num" id="LN1666">1666</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1667"><td class="num" id="LN1667">1667</td><td class="line">gboolean</td></tr>
+<tr class="codeline" data-linenumber="1668"><td class="num" id="LN1668">1668</td><td class="line">terminal_profile_modify_palette_entry (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1669"><td class="num" id="LN1669">1669</td><td class="line"> guint i,</td></tr>
+<tr class="codeline" data-linenumber="1670"><td class="num" id="LN1670">1670</td><td class="line"> <span class='keyword'>const</span> GdkRGBA *color)</td></tr>
+<tr class="codeline" data-linenumber="1671"><td class="num" id="LN1671">1671</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1672"><td class="num" id="LN1672">1672</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1673"><td class="num" id="LN1673">1673</td><td class="line"> GValueArray *array;</td></tr>
+<tr class="codeline" data-linenumber="1674"><td class="num" id="LN1674">1674</td><td class="line"> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="1675"><td class="num" id="LN1675">1675</td><td class="line"> GdkRGBA *old_color;</td></tr>
+<tr class="codeline" data-linenumber="1676"><td class="num" id="LN1676">1676</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1677"><td class="num" id="LN1677">1677</td><td class="line"> array = g_value_get_boxed (g_value_array_get_nth (priv-&gt;properties, PROP_PALETTE));</td></tr>
+<tr class="codeline" data-linenumber="1678"><td class="num" id="LN1678">1678</td><td class="line"> <span class='keyword'>if</span> (!array ||</td></tr>
+<tr class="codeline" data-linenumber="1679"><td class="num" id="LN1679">1679</td><td class="line"> i &gt;= array-&gt;n_values)</td></tr>
+<tr class="codeline" data-linenumber="1680"><td class="num" id="LN1680">1680</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1681"><td class="num" id="LN1681">1681</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1682"><td class="num" id="LN1682">1682</td><td class="line"> value = g_value_array_get_nth (array, i);</td></tr>
+<tr class="codeline" data-linenumber="1683"><td class="num" id="LN1683">1683</td><td class="line"> old_color = g_value_get_boxed (value);</td></tr>
+<tr class="codeline" data-linenumber="1684"><td class="num" id="LN1684">1684</td><td class="line"> <span class='keyword'>if</span> (!old_color ||</td></tr>
+<tr class="codeline" data-linenumber="1685"><td class="num" id="LN1685">1685</td><td class="line"> !rgba_equal (old_color, color))</td></tr>
+<tr class="codeline" data-linenumber="1686"><td class="num" id="LN1686">1686</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1687"><td class="num" id="LN1687">1687</td><td class="line"> g_value_set_boxed (value, color);</td></tr>
+<tr class="codeline" data-linenumber="1688"><td class="num" id="LN1688">1688</td><td class="line"> g_object_notify (<span class='macro'>G_OBJECT (profile)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((profile)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, <span class='macro'>TERMINAL_PROFILE_PALETTE<span class='macro_popup'>"palette"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1689"><td class="num" id="LN1689">1689</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1690"><td class="num" id="LN1690">1690</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1691"><td class="num" id="LN1691">1691</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1692"><td class="num" id="LN1692">1692</td><td class="line">}</td></tr>
+</table></body></html>
diff --git a/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-80c412.html b/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-80c412.html
new file mode 100644
index 0000000..2cd1fbc
--- /dev/null
+++ b/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-80c412.html
@@ -0,0 +1,2840 @@
+<!doctype html>
+<html>
+<head>
+<title>terminal-app.c</title>
+
+<style type="text/css">
+body { color:#000000; background-color:#ffffff }
+body { font-family:Helvetica, sans-serif; font-size:10pt }
+h1 { font-size:14pt }
+.FileName { margin-top: 5px; margin-bottom: 5px; display: inline; }
+.FileNav { margin-left: 5px; margin-right: 5px; display: inline; }
+.FileNav a { text-decoration:none; font-size: larger; }
+.divider { margin-top: 30px; margin-bottom: 30px; height: 15px; }
+.divider { background-color: gray; }
+.code { border-collapse:collapse; width:100%; }
+.code { font-family: "Monospace", monospace; font-size:10pt }
+.code { line-height: 1.2em }
+.comment { color: green; font-style: oblique }
+.keyword { color: blue }
+.string_literal { color: red }
+.directive { color: darkmagenta }
+
+/* Macros and variables could have pop-up notes hidden by default.
+ - Macro pop-up: expansion of the macro
+ - Variable pop-up: value (table) of the variable */
+.macro_popup, .variable_popup { display: none; }
+
+/* Pop-up appears on mouse-hover event. */
+.macro:hover .macro_popup, .variable:hover .variable_popup {
+ display: block;
+ padding: 2px;
+ -webkit-border-radius:5px;
+ -webkit-box-shadow:1px 1px 7px #000;
+ border-radius:5px;
+ box-shadow:1px 1px 7px #000;
+ position: absolute;
+ top: -1em;
+ left:10em;
+ z-index: 1
+}
+
+.macro_popup {
+ border: 2px solid red;
+ background-color:#FFF0F0;
+ font-weight: normal;
+}
+
+.variable_popup {
+ border: 2px solid blue;
+ background-color:#F0F0FF;
+ font-weight: bold;
+ font-family: Helvetica, sans-serif;
+ font-size: 9pt;
+}
+
+/* Pop-up notes needs a relative position as a base where they pops up. */
+.macro, .variable {
+ background-color: PaleGoldenRod;
+ position: relative;
+}
+.macro { color: DarkMagenta; }
+
+#tooltiphint {
+ position: fixed;
+ width: 50em;
+ margin-left: -25em;
+ left: 50%;
+ padding: 10px;
+ border: 1px solid #b0b0b0;
+ border-radius: 2px;
+ box-shadow: 1px 1px 7px black;
+ background-color: #c0c0c0;
+ z-index: 2;
+}
+
+.num { width:2.5em; padding-right:2ex; background-color:#eeeeee }
+.num { text-align:right; font-size:8pt }
+.num { color:#444444 }
+.line { padding-left: 1ex; border-left: 3px solid #ccc }
+.line { white-space: pre }
+.msg { -webkit-box-shadow:1px 1px 7px #000 }
+.msg { box-shadow:1px 1px 7px #000 }
+.msg { -webkit-border-radius:5px }
+.msg { border-radius:5px }
+.msg { font-family:Helvetica, sans-serif; font-size:8pt }
+.msg { float:left }
+.msg { position:relative }
+.msg { padding:0.25em 1ex 0.25em 1ex }
+.msg { margin-top:10px; margin-bottom:10px }
+.msg { font-weight:bold }
+.msg { max-width:60em; word-wrap: break-word; white-space: pre-wrap }
+.msgT { padding:0x; spacing:0x }
+.msgEvent { background-color:#fff8b4; color:#000000 }
+.msgControl { background-color:#bbbbbb; color:#000000 }
+.msgNote { background-color:#ddeeff; color:#000000 }
+.mrange { background-color:#dfddf3 }
+.mrange { border-bottom:1px solid #6F9DBE }
+.PathIndex { font-weight: bold; padding:0px 5px; margin-right:5px; }
+.PathIndex { -webkit-border-radius:8px }
+.PathIndex { border-radius:8px }
+.PathIndexEvent { background-color:#bfba87 }
+.PathIndexControl { background-color:#8c8c8c }
+.PathIndexPopUp { background-color: #879abc; }
+.PathNav a { text-decoration:none; font-size: larger }
+.CodeInsertionHint { font-weight: bold; background-color: #10dd10 }
+.CodeRemovalHint { background-color:#de1010 }
+.CodeRemovalHint { border-bottom:1px solid #6F9DBE }
+.msg.selected{ background-color:orange !important; }
+
+table.simpletable {
+ padding: 5px;
+ font-size:12pt;
+ margin:20px;
+ border-collapse: collapse; border-spacing: 0px;
+}
+td.rowname {
+ text-align: right;
+ vertical-align: top;
+ font-weight: bold;
+ color:#444444;
+ padding-right:2ex;
+}
+
+/* Hidden text. */
+input.spoilerhider + label {
+ cursor: pointer;
+ text-decoration: underline;
+ display: block;
+}
+input.spoilerhider {
+ display: none;
+}
+input.spoilerhider ~ .spoiler {
+ overflow: hidden;
+ margin: 10px auto 0;
+ height: 0;
+ opacity: 0;
+}
+input.spoilerhider:checked + label + .spoiler{
+ height: auto;
+ opacity: 1;
+}
+</style>
+</head>
+<body>
+<!-- BUGDESC Casting a non-structure type to a structure type and accessing a field can lead to memory access errors or data corruption -->
+
+<!-- BUGTYPE Cast from non-struct type to struct type -->
+
+<!-- BUGCATEGORY Logic error -->
+
+<!-- BUGFILE /rootdir/src/terminal-app.c -->
+
+<!-- FILENAME terminal-app.c -->
+
+<!-- FUNCTIONNAME terminal_app_profile_list_notify_cb -->
+
+<!-- ISSUEHASHCONTENTOFLINEINCONTEXT 80c4127bb15a7d31265c16e8b2081c14 -->
+
+<!-- BUGLINE 816 -->
+
+<!-- BUGCOLUMN 39 -->
+
+<!-- BUGPATHLENGTH 1 -->
+
+<!-- BUGMETAEND -->
+<!-- REPORTHEADER -->
+<h3>Bug Summary</h3>
+<table class="simpletable">
+<tr><td class="rowname">File:</td><td>terminal-app.c</td></tr>
+<tr><td class="rowname">Warning:</td><td><a href="#EndPath">line 816, column 39</a><br />Casting a non-structure type to a structure type and accessing a field can lead to memory access errors or data corruption</td></tr>
+
+</table>
+<!-- REPORTSUMMARYEXTRA -->
+<h3>Annotated Source Code</h3>
+<p>Press <a href="#" onclick="toggleHelp(); return false;">'?'</a>
+ to see keyboard shortcuts</p>
+<input type="checkbox" class="spoilerhider" id="showinvocation" />
+<label for="showinvocation" >Show analyzer invocation</label>
+<div class="spoiler">clang -cc1 -cc1 -triple x86_64-redhat-linux-gnu -analyze -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name terminal-app.c -analyzer-checker=core -analyzer-checker=apiModeling -analyzer-checker=unix -analyzer-checker=deadcode -analyzer-checker=security.insecureAPI.UncheckedReturn -analyzer-checker=security.insecureAPI.getpw -analyzer-checker=security.insecureAPI.gets -analyzer-checker=security.insecureAPI.mktemp -analyzer-checker=security.insecureAPI.mkstemp -analyzer-checker=security.insecureAPI.vfork -analyzer-checker=nullability.NullPassedToNonnull -analyzer-checker=nullability.NullReturnedFromNonnull -analyzer-output plist -w -setup-static-analyzer -mrelocation-model static -mframe-pointer=all -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -tune-cpu generic -debugger-tuning=gdb -fcoverage-compilation-dir=/rootdir/src -resource-dir /usr/bin/../lib/clang/17 -D HAVE_CONFIG_H -I . -I .. -I ../src/mate-submodules/libegg -D TERMINAL_COMPILATION -D TERMINAL_RESOURCES_PATH_PREFIX="/org/mate/terminal" -D TERM_DATADIR="/usr/local/share" -D TERM_LOCALEDIR="/usr/local/share/locale" -D TERM_PKGDATADIR="/usr/local/share/mate-terminal" -D TERM_HELPDIR="/usr/local/share/help" -D SN_API_NOT_YET_FROZEN -D GDK_MULTIHEAD_SAFE -D G_DISABLE_SINGLE_INCLUDES -D PANGO_DISABLE_SINGLE_INCLUDES -D ATK_DISABLE_SINGLE_INCLUDES -D GDK_DISABLE_SINGLE_INCLUDES -D GDK_PIXBUF_DISABLE_SINGLE_INCLUDES -D GTK_DISABLE_SINGLE_INCLUDES -I /usr/include/dconf -I /usr/include/vte-2.91 -I /usr/include/pango-1.0 -I /usr/include/gtk-3.0 -I /usr/include/gdk-pixbuf-2.0 -I /usr/include/cairo -I /usr/include/dbus-1.0 -I /usr/lib64/dbus-1.0/include -I /usr/include/atk-1.0 -I /usr/include/harfbuzz -I /usr/include/freetype2 -I /usr/include/glib-2.0 -I /usr/lib64/glib-2.0/include -I /usr/include/cloudproviders -I /usr/include/at-spi2-atk/2.0 -I /usr/include/at-spi-2.0 -I /usr/include/blkid -I /usr/include/gio-unix-2.0 -I /usr/include/pixman-1 -I /usr/include/libmount -I /usr/include/libxml2 -I /usr/include/fribidi -I /usr/include/libpng16 -I /usr/include/sysprof-6 -internal-isystem /usr/bin/../lib/clang/17/include -internal-isystem /usr/local/include -internal-isystem /usr/bin/../lib/gcc/x86_64-redhat-linux/13/../../../../x86_64-redhat-linux/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -Wno-unused-parameter -fdebug-compilation-dir=/rootdir/src -ferror-limit 19 -fgnuc-version=4.2.1 -analyzer-checker deadcode.DeadStores -analyzer-checker alpha.deadcode.UnreachableCode -analyzer-checker alpha.core.CastSize -analyzer-checker alpha.core.CastToStruct -analyzer-checker alpha.core.IdenticalExpr -analyzer-checker alpha.core.SizeofPtr -analyzer-checker alpha.security.ArrayBoundV2 -analyzer-checker alpha.security.MallocOverflow -analyzer-checker alpha.security.ReturnPtrRange -analyzer-checker alpha.unix.SimpleStream -analyzer-checker alpha.unix.cstring.BufferOverlap -analyzer-checker alpha.unix.cstring.NotNullTerminated -analyzer-checker alpha.unix.cstring.OutOfBounds -analyzer-checker alpha.core.FixedAddr -analyzer-checker security.insecureAPI.strcpy -analyzer-output=html -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /rootdir/html-report/2024-02-18-131424-5067-1 -x c terminal-app.c
+</div>
+<div id='tooltiphint' hidden="true">
+ <p>Keyboard shortcuts: </p>
+ <ul>
+ <li>Use 'j/k' keys for keyboard navigation</li>
+ <li>Use 'Shift+S' to show/hide relevant lines</li>
+ <li>Use '?' to toggle this window</li>
+ </ul>
+ <a href="#" onclick="toggleHelp(); return false;">Close</a>
+</div>
+<script type='text/javascript'>
+var relevant_lines = {"1": {"816": 1}};
+
+var filterCounterexample = function (hide) {
+ var tables = document.getElementsByClassName("code");
+ for (var t=0; t<tables.length; t++) {
+ var table = tables[t];
+ var file_id = table.getAttribute("data-fileid");
+ var lines_in_fid = relevant_lines[file_id];
+ if (!lines_in_fid) {
+ lines_in_fid = {};
+ }
+ var lines = table.getElementsByClassName("codeline");
+ for (var i=0; i<lines.length; i++) {
+ var el = lines[i];
+ var lineNo = el.getAttribute("data-linenumber");
+ if (!lines_in_fid[lineNo]) {
+ if (hide) {
+ el.setAttribute("hidden", "");
+ } else {
+ el.removeAttribute("hidden");
+ }
+ }
+ }
+ }
+}
+
+window.addEventListener("keydown", function (event) {
+ if (event.defaultPrevented) {
+ return;
+ }
+ // SHIFT + S
+ if (event.shiftKey && event.keyCode == 83) {
+ var checked = document.getElementsByName("showCounterexample")[0].checked;
+ filterCounterexample(!checked);
+ document.getElementsByName("showCounterexample")[0].click();
+ } else {
+ return;
+ }
+ event.preventDefault();
+}, true);
+
+document.addEventListener("DOMContentLoaded", function() {
+ document.querySelector('input[name="showCounterexample"]').onchange=
+ function (event) {
+ filterCounterexample(this.checked);
+ };
+});
+</script>
+
+<form>
+ <input type="checkbox" name="showCounterexample" id="showCounterexample" />
+ <label for="showCounterexample">
+ Show only relevant lines
+ </label>
+ <input type="checkbox" name="showArrows"
+ id="showArrows" style="margin-left: 10px" />
+ <label for="showArrows">
+ Show control flow arrows
+ </label>
+</form>
+
+<script type='text/javascript'>
+// Return range of numbers from a range [lower, upper).
+function range(lower, upper) {
+ var array = [];
+ for (var i = lower; i <= upper; ++i) {
+ array.push(i);
+ }
+ return array;
+}
+
+var getRelatedArrowIndices = function(pathId) {
+ // HTML numeration of events is a bit different than it is in the path.
+ // Everything is rotated one step to the right, so the last element
+ // (error diagnostic) has index 0.
+ if (pathId == 0) {
+ // arrowIndices has at least 2 elements
+ pathId = arrowIndices.length - 1;
+ }
+
+ return range(arrowIndices[pathId], arrowIndices[pathId - 1]);
+}
+
+var highlightArrowsForSelectedEvent = function() {
+ const selectedNum = findNum();
+ const arrowIndicesToHighlight = getRelatedArrowIndices(selectedNum);
+ arrowIndicesToHighlight.forEach((index) => {
+ var arrow = document.querySelector("#arrow" + index);
+ if(arrow) {
+ classListAdd(arrow, "selected")
+ }
+ });
+}
+
+var getAbsoluteBoundingRect = function(element) {
+ const relative = element.getBoundingClientRect();
+ return {
+ left: relative.left + window.pageXOffset,
+ right: relative.right + window.pageXOffset,
+ top: relative.top + window.pageYOffset,
+ bottom: relative.bottom + window.pageYOffset,
+ height: relative.height,
+ width: relative.width
+ };
+}
+
+var drawArrow = function(index) {
+ // This function is based on the great answer from SO:
+ // https://stackoverflow.com/a/39575674/11582326
+ var start = document.querySelector("#start" + index);
+ var end = document.querySelector("#end" + index);
+ var arrow = document.querySelector("#arrow" + index);
+
+ var startRect = getAbsoluteBoundingRect(start);
+ var endRect = getAbsoluteBoundingRect(end);
+
+ // It is an arrow from a token to itself, no need to visualize it.
+ if (startRect.top == endRect.top &&
+ startRect.left == endRect.left)
+ return;
+
+ // Each arrow is a very simple Bézier curve, with two nodes and
+ // two handles. So, we need to calculate four points in the window:
+ // * start node
+ var posStart = { x: 0, y: 0 };
+ // * end node
+ var posEnd = { x: 0, y: 0 };
+ // * handle for the start node
+ var startHandle = { x: 0, y: 0 };
+ // * handle for the end node
+ var endHandle = { x: 0, y: 0 };
+ // One can visualize it as follows:
+ //
+ // start handle
+ // /
+ // X"""_.-""""X
+ // .' \
+ // / start node
+ // |
+ // |
+ // | end node
+ // \ /
+ // `->X
+ // X-'
+ // \
+ // end handle
+ //
+ // NOTE: (0, 0) is the top left corner of the window.
+
+ // We have 3 similar, but still different scenarios to cover:
+ //
+ // 1. Two tokens on different lines.
+ // -xxx
+ // /
+ // \
+ // -> xxx
+ // In this situation, we draw arrow on the left curving to the left.
+ // 2. Two tokens on the same line, and the destination is on the right.
+ // ____
+ // / \
+ // / V
+ // xxx xxx
+ // In this situation, we draw arrow above curving upwards.
+ // 3. Two tokens on the same line, and the destination is on the left.
+ // xxx xxx
+ // ^ /
+ // \____/
+ // In this situation, we draw arrow below curving downwards.
+ const onDifferentLines = startRect.top <= endRect.top - 5 ||
+ startRect.top >= endRect.top + 5;
+ const leftToRight = startRect.left < endRect.left;
+
+ // NOTE: various magic constants are chosen empirically for
+ // better positioning and look
+ if (onDifferentLines) {
+ // Case #1
+ const topToBottom = startRect.top < endRect.top;
+ posStart.x = startRect.left - 1;
+ // We don't want to start it at the top left corner of the token,
+ // it doesn't feel like this is where the arrow comes from.
+ // For this reason, we start it in the middle of the left side
+ // of the token.
+ posStart.y = startRect.top + startRect.height / 2;
+
+ // End node has arrow head and we give it a bit more space.
+ posEnd.x = endRect.left - 4;
+ posEnd.y = endRect.top;
+
+ // Utility object with x and y offsets for handles.
+ var curvature = {
+ // We want bottom-to-top arrow to curve a bit more, so it doesn't
+ // overlap much with top-to-bottom curves (much more frequent).
+ x: topToBottom ? 15 : 25,
+ y: Math.min((posEnd.y - posStart.y) / 3, 10)
+ }
+
+ // When destination is on the different line, we can make a
+ // curvier arrow because we have space for it.
+ // So, instead of using
+ //
+ // startHandle.x = posStart.x - curvature.x
+ // endHandle.x = posEnd.x - curvature.x
+ //
+ // We use the leftmost of these two values for both handles.
+ startHandle.x = Math.min(posStart.x, posEnd.x) - curvature.x;
+ endHandle.x = startHandle.x;
+
+ // Curving downwards from the start node...
+ startHandle.y = posStart.y + curvature.y;
+ // ... and upwards from the end node.
+ endHandle.y = posEnd.y - curvature.y;
+
+ } else if (leftToRight) {
+ // Case #2
+ // Starting from the top right corner...
+ posStart.x = startRect.right - 1;
+ posStart.y = startRect.top;
+
+ // ...and ending at the top left corner of the end token.
+ posEnd.x = endRect.left + 1;
+ posEnd.y = endRect.top - 1;
+
+ // Utility object with x and y offsets for handles.
+ var curvature = {
+ x: Math.min((posEnd.x - posStart.x) / 3, 15),
+ y: 5
+ }
+
+ // Curving to the right...
+ startHandle.x = posStart.x + curvature.x;
+ // ... and upwards from the start node.
+ startHandle.y = posStart.y - curvature.y;
+
+ // And to the left...
+ endHandle.x = posEnd.x - curvature.x;
+ // ... and upwards from the end node.
+ endHandle.y = posEnd.y - curvature.y;
+
+ } else {
+ // Case #3
+ // Starting from the bottom right corner...
+ posStart.x = startRect.right;
+ posStart.y = startRect.bottom;
+
+ // ...and ending also at the bottom right corner, but of the end token.
+ posEnd.x = endRect.right - 1;
+ posEnd.y = endRect.bottom + 1;
+
+ // Utility object with x and y offsets for handles.
+ var curvature = {
+ x: Math.min((posStart.x - posEnd.x) / 3, 15),
+ y: 5
+ }
+
+ // Curving to the left...
+ startHandle.x = posStart.x - curvature.x;
+ // ... and downwards from the start node.
+ startHandle.y = posStart.y + curvature.y;
+
+ // And to the right...
+ endHandle.x = posEnd.x + curvature.x;
+ // ... and downwards from the end node.
+ endHandle.y = posEnd.y + curvature.y;
+ }
+
+ // Put it all together into a path.
+ // More information on the format:
+ // https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths
+ var pathStr = "M" + posStart.x + "," + posStart.y + " " +
+ "C" + startHandle.x + "," + startHandle.y + " " +
+ endHandle.x + "," + endHandle.y + " " +
+ posEnd.x + "," + posEnd.y;
+
+ arrow.setAttribute("d", pathStr);
+};
+
+var drawArrows = function() {
+ const numOfArrows = document.querySelectorAll("path[id^=arrow]").length;
+ for (var i = 0; i < numOfArrows; ++i) {
+ drawArrow(i);
+ }
+}
+
+var toggleArrows = function(event) {
+ const arrows = document.querySelector("#arrows");
+ if (event.target.checked) {
+ arrows.setAttribute("visibility", "visible");
+ } else {
+ arrows.setAttribute("visibility", "hidden");
+ }
+}
+
+window.addEventListener("resize", drawArrows);
+document.addEventListener("DOMContentLoaded", function() {
+ // Whenever we show invocation, locations change, i.e. we
+ // need to redraw arrows.
+ document
+ .querySelector('input[id="showinvocation"]')
+ .addEventListener("click", drawArrows);
+ // Hiding irrelevant lines also should cause arrow rerender.
+ document
+ .querySelector('input[name="showCounterexample"]')
+ .addEventListener("change", drawArrows);
+ document
+ .querySelector('input[name="showArrows"]')
+ .addEventListener("change", toggleArrows);
+ drawArrows();
+ // Default highlighting for the last event.
+ highlightArrowsForSelectedEvent();
+});
+</script>
+
+<script type='text/javascript'>
+var digitMatcher = new RegExp("[0-9]+");
+
+var querySelectorAllArray = function(selector) {
+ return Array.prototype.slice.call(
+ document.querySelectorAll(selector));
+}
+
+document.addEventListener("DOMContentLoaded", function() {
+ querySelectorAllArray(".PathNav > a").forEach(
+ function(currentValue, currentIndex) {
+ var hrefValue = currentValue.getAttribute("href");
+ currentValue.onclick = function() {
+ scrollTo(document.querySelector(hrefValue));
+ return false;
+ };
+ });
+});
+
+var findNum = function() {
+ var s = document.querySelector(".msg.selected");
+ if (!s || s.id == "EndPath") {
+ return 0;
+ }
+ var out = parseInt(digitMatcher.exec(s.id)[0]);
+ return out;
+};
+
+var classListAdd = function(el, theClass) {
+ if(!el.className.baseVal)
+ el.className += " " + theClass;
+ else
+ el.className.baseVal += " " + theClass;
+};
+
+var classListRemove = function(el, theClass) {
+ var className = (!el.className.baseVal) ?
+ el.className : el.className.baseVal;
+ className = className.replace(" " + theClass, "");
+ if(!el.className.baseVal)
+ el.className = className;
+ else
+ el.className.baseVal = className;
+};
+
+var scrollTo = function(el) {
+ querySelectorAllArray(".selected").forEach(function(s) {
+ classListRemove(s, "selected");
+ });
+ classListAdd(el, "selected");
+ window.scrollBy(0, el.getBoundingClientRect().top -
+ (window.innerHeight / 2));
+ highlightArrowsForSelectedEvent();
+};
+
+var move = function(num, up, numItems) {
+ if (num == 1 && up || num == numItems - 1 && !up) {
+ return 0;
+ } else if (num == 0 && up) {
+ return numItems - 1;
+ } else if (num == 0 && !up) {
+ return 1 % numItems;
+ }
+ return up ? num - 1 : num + 1;
+}
+
+var numToId = function(num) {
+ if (num == 0) {
+ return document.getElementById("EndPath")
+ }
+ return document.getElementById("Path" + num);
+};
+
+var navigateTo = function(up) {
+ var numItems = document.querySelectorAll(
+ ".line > .msgEvent, .line > .msgControl").length;
+ var currentSelected = findNum();
+ var newSelected = move(currentSelected, up, numItems);
+ var newEl = numToId(newSelected, numItems);
+
+ // Scroll element into center.
+ scrollTo(newEl);
+};
+
+window.addEventListener("keydown", function (event) {
+ if (event.defaultPrevented) {
+ return;
+ }
+ // key 'j'
+ if (event.keyCode == 74) {
+ navigateTo(/*up=*/false);
+ // key 'k'
+ } else if (event.keyCode == 75) {
+ navigateTo(/*up=*/true);
+ } else {
+ return;
+ }
+ event.preventDefault();
+}, true);
+</script>
+
+<script type='text/javascript'>
+
+var toggleHelp = function() {
+ var hint = document.querySelector("#tooltiphint");
+ var attributeName = "hidden";
+ if (hint.hasAttribute(attributeName)) {
+ hint.removeAttribute(attributeName);
+ } else {
+ hint.setAttribute("hidden", "true");
+ }
+};
+window.addEventListener("keydown", function (event) {
+ if (event.defaultPrevented) {
+ return;
+ }
+ if (event.key == "?") {
+ toggleHelp();
+ } else {
+ return;
+ }
+ event.preventDefault();
+});
+</script>
+
+<style type="text/css">
+ svg {
+ position:absolute;
+ top:0;
+ left:0;
+ height:100%;
+ width:100%;
+ pointer-events: none;
+ overflow: visible
+ }
+ .arrow {
+ stroke-opacity: 0.2;
+ stroke-width: 1;
+ marker-end: url(#arrowhead);
+ }
+
+ .arrow.selected {
+ stroke-opacity: 0.6;
+ stroke-width: 2;
+ marker-end: url(#arrowheadSelected);
+ }
+
+ .arrowhead {
+ orient: auto;
+ stroke: none;
+ opacity: 0.6;
+ fill: blue;
+ }
+</style>
+<svg xmlns="http://www.w3.org/2000/svg">
+ <defs>
+ <marker id="arrowheadSelected" class="arrowhead" opacity="0.6"
+ viewBox="0 0 10 10" refX="3" refY="5"
+ markerWidth="4" markerHeight="4">
+ <path d="M 0 0 L 10 5 L 0 10 z" />
+ </marker>
+ <marker id="arrowhead" class="arrowhead" opacity="0.2"
+ viewBox="0 0 10 10" refX="3" refY="5"
+ markerWidth="4" markerHeight="4">
+ <path d="M 0 0 L 10 5 L 0 10 z" />
+ </marker>
+ </defs>
+ <g id="arrows" fill="none" stroke="blue" visibility="hidden">
+
+ </g>
+</svg>
+<script type='text/javascript'>
+const arrowIndices = [ 0,0 ]
+</script>
+<table class="code" data-fileid="1">
+<tr class="codeline" data-linenumber="1"><td class="num" id="LN1">1</td><td class="line"><span class='comment'>/*</span></td></tr>
+<tr class="codeline" data-linenumber="2"><td class="num" id="LN2">2</td><td class="line"> <span class='comment'>* Copyright © 2001, 2002 Havoc Pennington</span></td></tr>
+<tr class="codeline" data-linenumber="3"><td class="num" id="LN3">3</td><td class="line"> <span class='comment'>* Copyright © 2002 Red Hat, Inc.</span></td></tr>
+<tr class="codeline" data-linenumber="4"><td class="num" id="LN4">4</td><td class="line"> <span class='comment'>* Copyright © 2002 Sun Microsystems</span></td></tr>
+<tr class="codeline" data-linenumber="5"><td class="num" id="LN5">5</td><td class="line"> <span class='comment'>* Copyright © 2003 Mariano Suarez-Alvarez</span></td></tr>
+<tr class="codeline" data-linenumber="6"><td class="num" id="LN6">6</td><td class="line"> <span class='comment'>* Copyright © 2008 Christian Persch</span></td></tr>
+<tr class="codeline" data-linenumber="7"><td class="num" id="LN7">7</td><td class="line"> <span class='comment'>* Copyright (C) 2012-2021 MATE Developers</span></td></tr>
+<tr class="codeline" data-linenumber="8"><td class="num" id="LN8">8</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="9"><td class="num" id="LN9">9</td><td class="line"> <span class='comment'>* Mate-terminal is free software; you can redistribute it and/or modify</span></td></tr>
+<tr class="codeline" data-linenumber="10"><td class="num" id="LN10">10</td><td class="line"> <span class='comment'>* it under the terms of the GNU General Public License as published by</span></td></tr>
+<tr class="codeline" data-linenumber="11"><td class="num" id="LN11">11</td><td class="line"> <span class='comment'>* the Free Software Foundation; either version 3 of the License, or</span></td></tr>
+<tr class="codeline" data-linenumber="12"><td class="num" id="LN12">12</td><td class="line"> <span class='comment'>* (at your option) any later version.</span></td></tr>
+<tr class="codeline" data-linenumber="13"><td class="num" id="LN13">13</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="14"><td class="num" id="LN14">14</td><td class="line"> <span class='comment'>* Mate-terminal is distributed in the hope that it will be useful,</span></td></tr>
+<tr class="codeline" data-linenumber="15"><td class="num" id="LN15">15</td><td class="line"> <span class='comment'>* but WITHOUT ANY WARRANTY; without even the implied warranty of</span></td></tr>
+<tr class="codeline" data-linenumber="16"><td class="num" id="LN16">16</td><td class="line"> <span class='comment'>* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></td></tr>
+<tr class="codeline" data-linenumber="17"><td class="num" id="LN17">17</td><td class="line"> <span class='comment'>* GNU General Public License for more details.</span></td></tr>
+<tr class="codeline" data-linenumber="18"><td class="num" id="LN18">18</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="19"><td class="num" id="LN19">19</td><td class="line"> <span class='comment'>* You should have received a copy of the GNU General Public License</span></td></tr>
+<tr class="codeline" data-linenumber="20"><td class="num" id="LN20">20</td><td class="line"> <span class='comment'>* along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.</span></td></tr>
+<tr class="codeline" data-linenumber="21"><td class="num" id="LN21">21</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="22"><td class="num" id="LN22">22</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="23"><td class="num" id="LN23">23</td><td class="line"><span class='directive'>#include &lt;config.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="24"><td class="num" id="LN24">24</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="25"><td class="num" id="LN25">25</td><td class="line"><span class='directive'>#include &lt;<span class='macro'>errno<span class='macro_popup'>(*__errno_location ())</span></span>.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="26"><td class="num" id="LN26">26</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="27"><td class="num" id="LN27">27</td><td class="line"><span class='directive'>#include &lt;glib.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="28"><td class="num" id="LN28">28</td><td class="line"><span class='directive'>#include &lt;dconf.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="29"><td class="num" id="LN29">29</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="30"><td class="num" id="LN30">30</td><td class="line"><span class='directive'>#include "terminal-intl.h"</span></td></tr>
+<tr class="codeline" data-linenumber="31"><td class="num" id="LN31">31</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="32"><td class="num" id="LN32">32</td><td class="line"><span class='directive'>#include "terminal-debug.h"</span></td></tr>
+<tr class="codeline" data-linenumber="33"><td class="num" id="LN33">33</td><td class="line"><span class='directive'>#include "terminal-app.h"</span></td></tr>
+<tr class="codeline" data-linenumber="34"><td class="num" id="LN34">34</td><td class="line"><span class='directive'>#include "terminal-accels.h"</span></td></tr>
+<tr class="codeline" data-linenumber="35"><td class="num" id="LN35">35</td><td class="line"><span class='directive'>#include "terminal-screen.h"</span></td></tr>
+<tr class="codeline" data-linenumber="36"><td class="num" id="LN36">36</td><td class="line"><span class='directive'>#include "terminal-screen-container.h"</span></td></tr>
+<tr class="codeline" data-linenumber="37"><td class="num" id="LN37">37</td><td class="line"><span class='directive'>#include "terminal-window.h"</span></td></tr>
+<tr class="codeline" data-linenumber="38"><td class="num" id="LN38">38</td><td class="line"><span class='directive'>#include "terminal-util.h"</span></td></tr>
+<tr class="codeline" data-linenumber="39"><td class="num" id="LN39">39</td><td class="line"><span class='directive'>#include "profile-editor.h"</span></td></tr>
+<tr class="codeline" data-linenumber="40"><td class="num" id="LN40">40</td><td class="line"><span class='directive'>#include "terminal-encoding.h"</span></td></tr>
+<tr class="codeline" data-linenumber="41"><td class="num" id="LN41">41</td><td class="line"><span class='directive'>#include &lt;string.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="42"><td class="num" id="LN42">42</td><td class="line"><span class='directive'>#include &lt;stdlib.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="43"><td class="num" id="LN43">43</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="44"><td class="num" id="LN44">44</td><td class="line"><span class='directive'>#ifdef <span class='macro'>HAVE_SMCLIENT<span class='macro_popup'>1</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="45"><td class="num" id="LN45">45</td><td class="line"><span class='directive'>#include "eggsmclient.h"</span></td></tr>
+<tr class="codeline" data-linenumber="46"><td class="num" id="LN46">46</td><td class="line"><span class='directive'>#include "eggdesktopfile.h"</span></td></tr>
+<tr class="codeline" data-linenumber="47"><td class="num" id="LN47">47</td><td class="line"><span class='directive'>#endif /* HAVE_SMCLIENT */</span></td></tr>
+<tr class="codeline" data-linenumber="48"><td class="num" id="LN48">48</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="49"><td class="num" id="LN49">49</td><td class="line"><span class='directive'>#define <span class='macro'>FALLBACK_PROFILE_ID<span class='macro_popup'>"default"</span></span> "default"</span></td></tr>
+<tr class="codeline" data-linenumber="50"><td class="num" id="LN50">50</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="51"><td class="num" id="LN51">51</td><td class="line"><span class='comment'>/* Settings storage works as follows:</span></td></tr>
+<tr class="codeline" data-linenumber="52"><td class="num" id="LN52">52</td><td class="line"> <span class='comment'>* /apps/mate-terminal/global/</span></td></tr>
+<tr class="codeline" data-linenumber="53"><td class="num" id="LN53">53</td><td class="line"> <span class='comment'>* /apps/mate-terminal/profiles/Foo/</span></td></tr>
+<tr class="codeline" data-linenumber="54"><td class="num" id="LN54">54</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="55"><td class="num" id="LN55">55</td><td class="line"> <span class='comment'>* It's somewhat tricky to manage the profiles/ dir since we need to track</span></td></tr>
+<tr class="codeline" data-linenumber="56"><td class="num" id="LN56">56</td><td class="line"> <span class='comment'>* the list of profiles, but GSettings doesn't have a concept of notifying that</span></td></tr>
+<tr class="codeline" data-linenumber="57"><td class="num" id="LN57">57</td><td class="line"> <span class='comment'>* a directory has appeared or disappeared.</span></td></tr>
+<tr class="codeline" data-linenumber="58"><td class="num" id="LN58">58</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="59"><td class="num" id="LN59">59</td><td class="line"> <span class='comment'>* Session state is stored entirely in the RestartCommand command line.</span></td></tr>
+<tr class="codeline" data-linenumber="60"><td class="num" id="LN60">60</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="61"><td class="num" id="LN61">61</td><td class="line"> <span class='comment'>* The number one rule: all stored information is EITHER per-session,</span></td></tr>
+<tr class="codeline" data-linenumber="62"><td class="num" id="LN62">62</td><td class="line"> <span class='comment'>* per-profile, or set from a command line option. THERE CAN BE NO</span></td></tr>
+<tr class="codeline" data-linenumber="63"><td class="num" id="LN63">63</td><td class="line"> <span class='comment'>* OVERLAP. The UI and implementation totally break if you overlap</span></td></tr>
+<tr class="codeline" data-linenumber="64"><td class="num" id="LN64">64</td><td class="line"> <span class='comment'>* these categories. See mate-terminal 1.x for why.</span></td></tr>
+<tr class="codeline" data-linenumber="65"><td class="num" id="LN65">65</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="66"><td class="num" id="LN66">66</td><td class="line"> <span class='comment'>* Don't use this code as an example of how to use GSettings - it's hugely</span></td></tr>
+<tr class="codeline" data-linenumber="67"><td class="num" id="LN67">67</td><td class="line"> <span class='comment'>* overcomplicated due to the profiles stuff. Most apps should not</span></td></tr>
+<tr class="codeline" data-linenumber="68"><td class="num" id="LN68">68</td><td class="line"> <span class='comment'>* have to do scary things of this nature, and should not have</span></td></tr>
+<tr class="codeline" data-linenumber="69"><td class="num" id="LN69">69</td><td class="line"> <span class='comment'>* a profiles feature.</span></td></tr>
+<tr class="codeline" data-linenumber="70"><td class="num" id="LN70">70</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="71"><td class="num" id="LN71">71</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="72"><td class="num" id="LN72">72</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="73"><td class="num" id="LN73">73</td><td class="line">GSettings *settings_global;</td></tr>
+<tr class="codeline" data-linenumber="74"><td class="num" id="LN74">74</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="75"><td class="num" id="LN75">75</td><td class="line"><span class='keyword'>struct</span> _TerminalAppClass</td></tr>
+<tr class="codeline" data-linenumber="76"><td class="num" id="LN76">76</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="77"><td class="num" id="LN77">77</td><td class="line"> GObjectClass parent_class;</td></tr>
+<tr class="codeline" data-linenumber="78"><td class="num" id="LN78">78</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="79"><td class="num" id="LN79">79</td><td class="line"> <span class='keyword'>void</span> (* quit) (TerminalApp *app);</td></tr>
+<tr class="codeline" data-linenumber="80"><td class="num" id="LN80">80</td><td class="line"> <span class='keyword'>void</span> (* profile_list_changed) (TerminalApp *app);</td></tr>
+<tr class="codeline" data-linenumber="81"><td class="num" id="LN81">81</td><td class="line"> <span class='keyword'>void</span> (* encoding_list_changed) (TerminalApp *app);</td></tr>
+<tr class="codeline" data-linenumber="82"><td class="num" id="LN82">82</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="83"><td class="num" id="LN83">83</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="84"><td class="num" id="LN84">84</td><td class="line"><span class='keyword'>struct</span> _TerminalApp</td></tr>
+<tr class="codeline" data-linenumber="85"><td class="num" id="LN85">85</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="86"><td class="num" id="LN86">86</td><td class="line"> GObject parent_instance;</td></tr>
+<tr class="codeline" data-linenumber="87"><td class="num" id="LN87">87</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="88"><td class="num" id="LN88">88</td><td class="line"> GList *windows;</td></tr>
+<tr class="codeline" data-linenumber="89"><td class="num" id="LN89">89</td><td class="line"> GtkWidget *new_profile_dialog;</td></tr>
+<tr class="codeline" data-linenumber="90"><td class="num" id="LN90">90</td><td class="line"> GtkWidget *manage_profiles_dialog;</td></tr>
+<tr class="codeline" data-linenumber="91"><td class="num" id="LN91">91</td><td class="line"> GtkWidget *manage_profiles_list;</td></tr>
+<tr class="codeline" data-linenumber="92"><td class="num" id="LN92">92</td><td class="line"> GtkWidget *manage_profiles_new_button;</td></tr>
+<tr class="codeline" data-linenumber="93"><td class="num" id="LN93">93</td><td class="line"> GtkWidget *manage_profiles_edit_button;</td></tr>
+<tr class="codeline" data-linenumber="94"><td class="num" id="LN94">94</td><td class="line"> GtkWidget *manage_profiles_delete_button;</td></tr>
+<tr class="codeline" data-linenumber="95"><td class="num" id="LN95">95</td><td class="line"> GtkWidget *manage_profiles_default_menu;</td></tr>
+<tr class="codeline" data-linenumber="96"><td class="num" id="LN96">96</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="97"><td class="num" id="LN97">97</td><td class="line"> GSettings *settings_font;</td></tr>
+<tr class="codeline" data-linenumber="98"><td class="num" id="LN98">98</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="99"><td class="num" id="LN99">99</td><td class="line"> GHashTable *profiles;</td></tr>
+<tr class="codeline" data-linenumber="100"><td class="num" id="LN100">100</td><td class="line"> <span class='keyword'>char</span>* default_profile_id;</td></tr>
+<tr class="codeline" data-linenumber="101"><td class="num" id="LN101">101</td><td class="line"> TerminalProfile *default_profile;</td></tr>
+<tr class="codeline" data-linenumber="102"><td class="num" id="LN102">102</td><td class="line"> gboolean default_profile_locked;</td></tr>
+<tr class="codeline" data-linenumber="103"><td class="num" id="LN103">103</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="104"><td class="num" id="LN104">104</td><td class="line"> GHashTable *encodings;</td></tr>
+<tr class="codeline" data-linenumber="105"><td class="num" id="LN105">105</td><td class="line"> gboolean encodings_locked;</td></tr>
+<tr class="codeline" data-linenumber="106"><td class="num" id="LN106">106</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="107"><td class="num" id="LN107">107</td><td class="line"> PangoFontDescription *system_font_desc;</td></tr>
+<tr class="codeline" data-linenumber="108"><td class="num" id="LN108">108</td><td class="line"> gboolean enable_mnemonics;</td></tr>
+<tr class="codeline" data-linenumber="109"><td class="num" id="LN109">109</td><td class="line"> gboolean enable_menu_accels;</td></tr>
+<tr class="codeline" data-linenumber="110"><td class="num" id="LN110">110</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="111"><td class="num" id="LN111">111</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="112"><td class="num" id="LN112">112</td><td class="line"><span class='keyword'>enum</span></td></tr>
+<tr class="codeline" data-linenumber="113"><td class="num" id="LN113">113</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="114"><td class="num" id="LN114">114</td><td class="line"> PROP_0,</td></tr>
+<tr class="codeline" data-linenumber="115"><td class="num" id="LN115">115</td><td class="line"> PROP_DEFAULT_PROFILE,</td></tr>
+<tr class="codeline" data-linenumber="116"><td class="num" id="LN116">116</td><td class="line"> PROP_ENABLE_MENU_BAR_ACCEL,</td></tr>
+<tr class="codeline" data-linenumber="117"><td class="num" id="LN117">117</td><td class="line"> PROP_ENABLE_MNEMONICS,</td></tr>
+<tr class="codeline" data-linenumber="118"><td class="num" id="LN118">118</td><td class="line"> PROP_SYSTEM_FONT,</td></tr>
+<tr class="codeline" data-linenumber="119"><td class="num" id="LN119">119</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="120"><td class="num" id="LN120">120</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="121"><td class="num" id="LN121">121</td><td class="line"><span class='keyword'>enum</span></td></tr>
+<tr class="codeline" data-linenumber="122"><td class="num" id="LN122">122</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="123"><td class="num" id="LN123">123</td><td class="line"> QUIT,</td></tr>
+<tr class="codeline" data-linenumber="124"><td class="num" id="LN124">124</td><td class="line"> PROFILE_LIST_CHANGED,</td></tr>
+<tr class="codeline" data-linenumber="125"><td class="num" id="LN125">125</td><td class="line"> ENCODING_LIST_CHANGED,</td></tr>
+<tr class="codeline" data-linenumber="126"><td class="num" id="LN126">126</td><td class="line"> LAST_SIGNAL</td></tr>
+<tr class="codeline" data-linenumber="127"><td class="num" id="LN127">127</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="128"><td class="num" id="LN128">128</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="129"><td class="num" id="LN129">129</td><td class="line"><span class='keyword'>static</span> guint signals[LAST_SIGNAL] = { 0 };</td></tr>
+<tr class="codeline" data-linenumber="130"><td class="num" id="LN130">130</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="131"><td class="num" id="LN131">131</td><td class="line"><span class='keyword'>enum</span></td></tr>
+<tr class="codeline" data-linenumber="132"><td class="num" id="LN132">132</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="133"><td class="num" id="LN133">133</td><td class="line"> COL_PROFILE,</td></tr>
+<tr class="codeline" data-linenumber="134"><td class="num" id="LN134">134</td><td class="line"> NUM_COLUMNS</td></tr>
+<tr class="codeline" data-linenumber="135"><td class="num" id="LN135">135</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="136"><td class="num" id="LN136">136</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="137"><td class="num" id="LN137">137</td><td class="line"><span class='keyword'>enum</span></td></tr>
+<tr class="codeline" data-linenumber="138"><td class="num" id="LN138">138</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="139"><td class="num" id="LN139">139</td><td class="line"> SOURCE_DEFAULT = 0,</td></tr>
+<tr class="codeline" data-linenumber="140"><td class="num" id="LN140">140</td><td class="line"> SOURCE_SESSION = 1</td></tr>
+<tr class="codeline" data-linenumber="141"><td class="num" id="LN141">141</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="142"><td class="num" id="LN142">142</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="143"><td class="num" id="LN143">143</td><td class="line"><span class='keyword'>static</span> TerminalApp *global_app = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="144"><td class="num" id="LN144">144</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="145"><td class="num" id="LN145">145</td><td class="line"><span class='directive'>#define <span class='macro'>MONOSPACE_FONT_SCHEMA<span class='macro_popup'>"org.mate.interface"</span></span> "org.mate.interface"</span></td></tr>
+<tr class="codeline" data-linenumber="146"><td class="num" id="LN146">146</td><td class="line"><span class='directive'>#define <span class='macro'>MONOSPACE_FONT_KEY<span class='macro_popup'>"monospace-font-name"</span></span> "monospace-font-name"</span></td></tr>
+<tr class="codeline" data-linenumber="147"><td class="num" id="LN147">147</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_MONOSPACE_FONT<span class='macro_popup'>("Monospace 10")</span></span> ("Monospace 10")</span></td></tr>
+<tr class="codeline" data-linenumber="148"><td class="num" id="LN148">148</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="149"><td class="num" id="LN149">149</td><td class="line"><span class='directive'>#define <span class='macro'>ENABLE_MNEMONICS_KEY<span class='macro_popup'>"use-mnemonics"</span></span> "use-mnemonics"</span></td></tr>
+<tr class="codeline" data-linenumber="150"><td class="num" id="LN150">150</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_ENABLE_MNEMONICS<span class='macro_popup'>((!(0)))</span></span> (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="151"><td class="num" id="LN151">151</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="152"><td class="num" id="LN152">152</td><td class="line"><span class='directive'>#define <span class='macro'>ENABLE_MENU_BAR_ACCEL_KEY<span class='macro_popup'>"use-menu-accelerators"</span></span> "use-menu-accelerators"</span></td></tr>
+<tr class="codeline" data-linenumber="153"><td class="num" id="LN153">153</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_ENABLE_MENU_BAR_ACCEL<span class='macro_popup'>((!(0)))</span></span> (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="154"><td class="num" id="LN154">154</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="155"><td class="num" id="LN155">155</td><td class="line"><span class='directive'>#define <span class='macro'>PROFILE_LIST_KEY<span class='macro_popup'>"profile-list"</span></span> "profile-list"</span></td></tr>
+<tr class="codeline" data-linenumber="156"><td class="num" id="LN156">156</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_PROFILE_KEY<span class='macro_popup'>"default-profile"</span></span> "default-profile"</span></td></tr>
+<tr class="codeline" data-linenumber="157"><td class="num" id="LN157">157</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="158"><td class="num" id="LN158">158</td><td class="line"><span class='directive'>#define <span class='macro'>ENCODING_LIST_KEY<span class='macro_popup'>"active-encodings"</span></span> "active-encodings"</span></td></tr>
+<tr class="codeline" data-linenumber="159"><td class="num" id="LN159">159</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="160"><td class="num" id="LN160">160</td><td class="line"><span class='comment'>/* two following functions were copied from libmate-desktop to get rid</span></td></tr>
+<tr class="codeline" data-linenumber="161"><td class="num" id="LN161">161</td><td class="line"> <span class='comment'>* of dependency on it</span></td></tr>
+<tr class="codeline" data-linenumber="162"><td class="num" id="LN162">162</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="163"><td class="num" id="LN163">163</td><td class="line"> <span class='comment'>* FIXME: I suspect there's no need for excessive copies, we might use</span></td></tr>
+<tr class="codeline" data-linenumber="164"><td class="num" id="LN164">164</td><td class="line"> <span class='comment'>* existing profile list to form GVariant's and write them to GSettings</span></td></tr>
+<tr class="codeline" data-linenumber="165"><td class="num" id="LN165">165</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="166"><td class="num" id="LN166">166</td><td class="line"><span class='keyword'>static</span> gboolean</td></tr>
+<tr class="codeline" data-linenumber="167"><td class="num" id="LN167">167</td><td class="line">gsettings_append_strv (GSettings *settings,</td></tr>
+<tr class="codeline" data-linenumber="168"><td class="num" id="LN168">168</td><td class="line"> <span class='keyword'>const</span> gchar *key,</td></tr>
+<tr class="codeline" data-linenumber="169"><td class="num" id="LN169">169</td><td class="line"> <span class='keyword'>const</span> gchar *value)</td></tr>
+<tr class="codeline" data-linenumber="170"><td class="num" id="LN170">170</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="171"><td class="num" id="LN171">171</td><td class="line"> gchar **old;</td></tr>
+<tr class="codeline" data-linenumber="172"><td class="num" id="LN172">172</td><td class="line"> gchar **new;</td></tr>
+<tr class="codeline" data-linenumber="173"><td class="num" id="LN173">173</td><td class="line"> gint size;</td></tr>
+<tr class="codeline" data-linenumber="174"><td class="num" id="LN174">174</td><td class="line"> gboolean retval;</td></tr>
+<tr class="codeline" data-linenumber="175"><td class="num" id="LN175">175</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="176"><td class="num" id="LN176">176</td><td class="line"> old = g_settings_get_strv (settings, key);</td></tr>
+<tr class="codeline" data-linenumber="177"><td class="num" id="LN177">177</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="178"><td class="num" id="LN178">178</td><td class="line"> <span class='keyword'>for</span> (size = 0; old[size] != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; size++);</td></tr>
+<tr class="codeline" data-linenumber="179"><td class="num" id="LN179">179</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="180"><td class="num" id="LN180">180</td><td class="line"> size += 1; <span class='comment'>/* appended value */</span></td></tr>
+<tr class="codeline" data-linenumber="181"><td class="num" id="LN181">181</td><td class="line"> size += 1; <span class='comment'>/* NULL */</span></td></tr>
+<tr class="codeline" data-linenumber="182"><td class="num" id="LN182">182</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="183"><td class="num" id="LN183">183</td><td class="line"> new = g_realloc_n (old, size, <span class='keyword'>sizeof</span> (gchar *));</td></tr>
+<tr class="codeline" data-linenumber="184"><td class="num" id="LN184">184</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="185"><td class="num" id="LN185">185</td><td class="line"> new[size - 2] = <span class='macro'>g_strdup (value)<span class='macro_popup'>g_strdup_inline (value)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="186"><td class="num" id="LN186">186</td><td class="line"> new[size - 1] = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="187"><td class="num" id="LN187">187</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="188"><td class="num" id="LN188">188</td><td class="line"> retval = g_settings_set_strv (settings, key,</td></tr>
+<tr class="codeline" data-linenumber="189"><td class="num" id="LN189">189</td><td class="line"> (<span class='keyword'>const</span> gchar **) new);</td></tr>
+<tr class="codeline" data-linenumber="190"><td class="num" id="LN190">190</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="191"><td class="num" id="LN191">191</td><td class="line"> g_strfreev (new);</td></tr>
+<tr class="codeline" data-linenumber="192"><td class="num" id="LN192">192</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="193"><td class="num" id="LN193">193</td><td class="line"> <span class='keyword'>return</span> retval;</td></tr>
+<tr class="codeline" data-linenumber="194"><td class="num" id="LN194">194</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="195"><td class="num" id="LN195">195</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="196"><td class="num" id="LN196">196</td><td class="line"><span class='keyword'>static</span> gboolean</td></tr>
+<tr class="codeline" data-linenumber="197"><td class="num" id="LN197">197</td><td class="line">gsettings_remove_all_from_strv (GSettings *settings,</td></tr>
+<tr class="codeline" data-linenumber="198"><td class="num" id="LN198">198</td><td class="line"> <span class='keyword'>const</span> gchar *key,</td></tr>
+<tr class="codeline" data-linenumber="199"><td class="num" id="LN199">199</td><td class="line"> <span class='keyword'>const</span> gchar *value)</td></tr>
+<tr class="codeline" data-linenumber="200"><td class="num" id="LN200">200</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="201"><td class="num" id="LN201">201</td><td class="line"> GArray *array;</td></tr>
+<tr class="codeline" data-linenumber="202"><td class="num" id="LN202">202</td><td class="line"> gchar **old;</td></tr>
+<tr class="codeline" data-linenumber="203"><td class="num" id="LN203">203</td><td class="line"> gint i;</td></tr>
+<tr class="codeline" data-linenumber="204"><td class="num" id="LN204">204</td><td class="line"> gboolean retval;</td></tr>
+<tr class="codeline" data-linenumber="205"><td class="num" id="LN205">205</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="206"><td class="num" id="LN206">206</td><td class="line"> old = g_settings_get_strv (settings, key);</td></tr>
+<tr class="codeline" data-linenumber="207"><td class="num" id="LN207">207</td><td class="line"> array = g_array_new (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>, <span class='keyword'>sizeof</span> (gchar *));</td></tr>
+<tr class="codeline" data-linenumber="208"><td class="num" id="LN208">208</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="209"><td class="num" id="LN209">209</td><td class="line"> <span class='keyword'>for</span> (i = 0; old[i] != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; i++) {</td></tr>
+<tr class="codeline" data-linenumber="210"><td class="num" id="LN210">210</td><td class="line"> <span class='keyword'>if</span> (g_strcmp0 (old[i], value) != 0)</td></tr>
+<tr class="codeline" data-linenumber="211"><td class="num" id="LN211">211</td><td class="line"> array = <span class='macro'>g_array_append_val (array, old[i])<span class='macro_popup'>g_array_append_vals (array, &amp;(old[i]), 1)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="212"><td class="num" id="LN212">212</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="213"><td class="num" id="LN213">213</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="214"><td class="num" id="LN214">214</td><td class="line"> retval = g_settings_set_strv (settings, key,</td></tr>
+<tr class="codeline" data-linenumber="215"><td class="num" id="LN215">215</td><td class="line"> (<span class='keyword'>const</span> gchar **) array-&gt;data);</td></tr>
+<tr class="codeline" data-linenumber="216"><td class="num" id="LN216">216</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="217"><td class="num" id="LN217">217</td><td class="line"> g_strfreev (old);</td></tr>
+<tr class="codeline" data-linenumber="218"><td class="num" id="LN218">218</td><td class="line"> g_array_free (array, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="219"><td class="num" id="LN219">219</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="220"><td class="num" id="LN220">220</td><td class="line"> <span class='keyword'>return</span> retval;</td></tr>
+<tr class="codeline" data-linenumber="221"><td class="num" id="LN221">221</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="222"><td class="num" id="LN222">222</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="223"><td class="num" id="LN223">223</td><td class="line"><span class='comment'>/* Helper functions */</span></td></tr>
+<tr class="codeline" data-linenumber="224"><td class="num" id="LN224">224</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="225"><td class="num" id="LN225">225</td><td class="line"><span class='keyword'>static</span> GdkScreen*</td></tr>
+<tr class="codeline" data-linenumber="226"><td class="num" id="LN226">226</td><td class="line">terminal_app_get_screen_by_display_name (<span class='keyword'>const</span> <span class='keyword'>char</span> *display_name)</td></tr>
+<tr class="codeline" data-linenumber="227"><td class="num" id="LN227">227</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="228"><td class="num" id="LN228">228</td><td class="line"> GdkDisplay *display = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="229"><td class="num" id="LN229">229</td><td class="line"> GdkScreen *screen = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="230"><td class="num" id="LN230">230</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="231"><td class="num" id="LN231">231</td><td class="line"> <span class='keyword'>if</span> (display_name == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="232"><td class="num" id="LN232">232</td><td class="line"> display = gdk_display_get_default ();</td></tr>
+<tr class="codeline" data-linenumber="233"><td class="num" id="LN233">233</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="234"><td class="num" id="LN234">234</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="235"><td class="num" id="LN235">235</td><td class="line"> GSList *displays, *l;</td></tr>
+<tr class="codeline" data-linenumber="236"><td class="num" id="LN236">236</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *period;</td></tr>
+<tr class="codeline" data-linenumber="237"><td class="num" id="LN237">237</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="238"><td class="num" id="LN238">238</td><td class="line"> period = strrchr (display_name, '.');</td></tr>
+<tr class="codeline" data-linenumber="239"><td class="num" id="LN239">239</td><td class="line"> displays = gdk_display_manager_list_displays (gdk_display_manager_get ());</td></tr>
+<tr class="codeline" data-linenumber="240"><td class="num" id="LN240">240</td><td class="line"> <span class='keyword'>for</span> (l = displays; l != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; l = l-&gt;next)</td></tr>
+<tr class="codeline" data-linenumber="241"><td class="num" id="LN241">241</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="242"><td class="num" id="LN242">242</td><td class="line"> GdkDisplay *disp = l-&gt;data;</td></tr>
+<tr class="codeline" data-linenumber="243"><td class="num" id="LN243">243</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="244"><td class="num" id="LN244">244</td><td class="line"> <span class='comment'>/* compare without the screen number part, if present */</span></td></tr>
+<tr class="codeline" data-linenumber="245"><td class="num" id="LN245">245</td><td class="line"> <span class='keyword'>if</span> ((period &amp;&amp; strncmp (gdk_display_get_name (disp), display_name, period - display_name) == 0) ||</td></tr>
+<tr class="codeline" data-linenumber="246"><td class="num" id="LN246">246</td><td class="line"> (period == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span> &amp;&amp; strcmp (gdk_display_get_name (disp), display_name) == 0))</td></tr>
+<tr class="codeline" data-linenumber="247"><td class="num" id="LN247">247</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="248"><td class="num" id="LN248">248</td><td class="line"> display = disp;</td></tr>
+<tr class="codeline" data-linenumber="249"><td class="num" id="LN249">249</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="250"><td class="num" id="LN250">250</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="251"><td class="num" id="LN251">251</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="252"><td class="num" id="LN252">252</td><td class="line"> g_slist_free (displays);</td></tr>
+<tr class="codeline" data-linenumber="253"><td class="num" id="LN253">253</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="254"><td class="num" id="LN254">254</td><td class="line"> <span class='keyword'>if</span> (display == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="255"><td class="num" id="LN255">255</td><td class="line"> display = gdk_display_open (display_name); <span class='comment'>/* FIXME we never close displays */</span></td></tr>
+<tr class="codeline" data-linenumber="256"><td class="num" id="LN256">256</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="257"><td class="num" id="LN257">257</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="258"><td class="num" id="LN258">258</td><td class="line"> <span class='keyword'>if</span> (display == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="259"><td class="num" id="LN259">259</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="260"><td class="num" id="LN260">260</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="261"><td class="num" id="LN261">261</td><td class="line"> screen = gdk_display_get_default_screen (display);</td></tr>
+<tr class="codeline" data-linenumber="262"><td class="num" id="LN262">262</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="263"><td class="num" id="LN263">263</td><td class="line"> <span class='keyword'>return</span> screen;</td></tr>
+<tr class="codeline" data-linenumber="264"><td class="num" id="LN264">264</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="265"><td class="num" id="LN265">265</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="266"><td class="num" id="LN266">266</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>int</span></td></tr>
+<tr class="codeline" data-linenumber="267"><td class="num" id="LN267">267</td><td class="line">terminal_app_get_workspace_for_window (TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="268"><td class="num" id="LN268">268</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="269"><td class="num" id="LN269">269</td><td class="line"> <span class='keyword'>int</span> ret = -1;</td></tr>
+<tr class="codeline" data-linenumber="270"><td class="num" id="LN270">270</td><td class="line"> guchar *data = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="271"><td class="num" id="LN271">271</td><td class="line"> GdkAtom atom;</td></tr>
+<tr class="codeline" data-linenumber="272"><td class="num" id="LN272">272</td><td class="line"> GdkAtom cardinal_atom;</td></tr>
+<tr class="codeline" data-linenumber="273"><td class="num" id="LN273">273</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="274"><td class="num" id="LN274">274</td><td class="line"> atom = gdk_atom_intern_static_string (<span class='string_literal'>"_NET_WM_DESKTOP"</span>);</td></tr>
+<tr class="codeline" data-linenumber="275"><td class="num" id="LN275">275</td><td class="line"> cardinal_atom = gdk_atom_intern_static_string (<span class='string_literal'>"CARDINAL"</span>);</td></tr>
+<tr class="codeline" data-linenumber="276"><td class="num" id="LN276">276</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="277"><td class="num" id="LN277">277</td><td class="line"> gdk_property_get (gtk_widget_get_window(<span class='macro'>GTK_WIDGET(window)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_widget_get_type ()))))))</span></span>),</td></tr>
+<tr class="codeline" data-linenumber="278"><td class="num" id="LN278">278</td><td class="line"> atom, cardinal_atom, 0, 8, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="279"><td class="num" id="LN279">279</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, &amp;data);</td></tr>
+<tr class="codeline" data-linenumber="280"><td class="num" id="LN280">280</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="281"><td class="num" id="LN281">281</td><td class="line"> <span class='keyword'>if</span> (data)</td></tr>
+<tr class="codeline" data-linenumber="282"><td class="num" id="LN282">282</td><td class="line"> ret = *(<span class='keyword'>int</span> *)data;</td></tr>
+<tr class="codeline" data-linenumber="283"><td class="num" id="LN283">283</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="284"><td class="num" id="LN284">284</td><td class="line"> g_free (data);</td></tr>
+<tr class="codeline" data-linenumber="285"><td class="num" id="LN285">285</td><td class="line"> <span class='keyword'>return</span> ret;</td></tr>
+<tr class="codeline" data-linenumber="286"><td class="num" id="LN286">286</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="287"><td class="num" id="LN287">287</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="288"><td class="num" id="LN288">288</td><td class="line"><span class='comment'>/* Menubar mnemonics settings handling */</span></td></tr>
+<tr class="codeline" data-linenumber="289"><td class="num" id="LN289">289</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="290"><td class="num" id="LN290">290</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>int</span></td></tr>
+<tr class="codeline" data-linenumber="291"><td class="num" id="LN291">291</td><td class="line">profiles_alphabetic_cmp (gconstpointer pa,</td></tr>
+<tr class="codeline" data-linenumber="292"><td class="num" id="LN292">292</td><td class="line"> gconstpointer pb)</td></tr>
+<tr class="codeline" data-linenumber="293"><td class="num" id="LN293">293</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="294"><td class="num" id="LN294">294</td><td class="line"> TerminalProfile *a = (TerminalProfile *) pa;</td></tr>
+<tr class="codeline" data-linenumber="295"><td class="num" id="LN295">295</td><td class="line"> TerminalProfile *b = (TerminalProfile *) pb;</td></tr>
+<tr class="codeline" data-linenumber="296"><td class="num" id="LN296">296</td><td class="line"> <span class='keyword'>int</span> result;</td></tr>
+<tr class="codeline" data-linenumber="297"><td class="num" id="LN297">297</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="298"><td class="num" id="LN298">298</td><td class="line"> result = g_utf8_collate (terminal_profile_get_property_string (a, <span class='macro'>TERMINAL_PROFILE_VISIBLE_NAME<span class='macro_popup'>"visible-name"</span></span>),</td></tr>
+<tr class="codeline" data-linenumber="299"><td class="num" id="LN299">299</td><td class="line"> terminal_profile_get_property_string (b, <span class='macro'>TERMINAL_PROFILE_VISIBLE_NAME<span class='macro_popup'>"visible-name"</span></span>));</td></tr>
+<tr class="codeline" data-linenumber="300"><td class="num" id="LN300">300</td><td class="line"> <span class='keyword'>if</span> (result == 0)</td></tr>
+<tr class="codeline" data-linenumber="301"><td class="num" id="LN301">301</td><td class="line"> result = strcmp (terminal_profile_get_property_string (a, <span class='macro'>TERMINAL_PROFILE_NAME<span class='macro_popup'>"name"</span></span>),</td></tr>
+<tr class="codeline" data-linenumber="302"><td class="num" id="LN302">302</td><td class="line"> terminal_profile_get_property_string (b, <span class='macro'>TERMINAL_PROFILE_NAME<span class='macro_popup'>"name"</span></span>));</td></tr>
+<tr class="codeline" data-linenumber="303"><td class="num" id="LN303">303</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="304"><td class="num" id="LN304">304</td><td class="line"> <span class='keyword'>return</span> result;</td></tr>
+<tr class="codeline" data-linenumber="305"><td class="num" id="LN305">305</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="306"><td class="num" id="LN306">306</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="307"><td class="num" id="LN307">307</td><td class="line"><span class='keyword'>typedef</span> <span class='keyword'>struct</span></td></tr>
+<tr class="codeline" data-linenumber="308"><td class="num" id="LN308">308</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="309"><td class="num" id="LN309">309</td><td class="line"> TerminalProfile *result;</td></tr>
+<tr class="codeline" data-linenumber="310"><td class="num" id="LN310">310</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *target;</td></tr>
+<tr class="codeline" data-linenumber="311"><td class="num" id="LN311">311</td><td class="line">} LookupInfo;</td></tr>
+<tr class="codeline" data-linenumber="312"><td class="num" id="LN312">312</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="313"><td class="num" id="LN313">313</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="314"><td class="num" id="LN314">314</td><td class="line">profiles_lookup_by_visible_name_foreach (gpointer key,</td></tr>
+<tr class="codeline" data-linenumber="315"><td class="num" id="LN315">315</td><td class="line"> gpointer value,</td></tr>
+<tr class="codeline" data-linenumber="316"><td class="num" id="LN316">316</td><td class="line"> gpointer data)</td></tr>
+<tr class="codeline" data-linenumber="317"><td class="num" id="LN317">317</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="318"><td class="num" id="LN318">318</td><td class="line"> LookupInfo *info = data;</td></tr>
+<tr class="codeline" data-linenumber="319"><td class="num" id="LN319">319</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *name;</td></tr>
+<tr class="codeline" data-linenumber="320"><td class="num" id="LN320">320</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="321"><td class="num" id="LN321">321</td><td class="line"> name = terminal_profile_get_property_string (value, <span class='macro'>TERMINAL_PROFILE_VISIBLE_NAME<span class='macro_popup'>"visible-name"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="322"><td class="num" id="LN322">322</td><td class="line"> <span class='keyword'>if</span> (name &amp;&amp; strcmp (info-&gt;target, name) == 0)</td></tr>
+<tr class="codeline" data-linenumber="323"><td class="num" id="LN323">323</td><td class="line"> info-&gt;result = value;</td></tr>
+<tr class="codeline" data-linenumber="324"><td class="num" id="LN324">324</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="325"><td class="num" id="LN325">325</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="326"><td class="num" id="LN326">326</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="327"><td class="num" id="LN327">327</td><td class="line">terminal_window_destroyed (TerminalWindow *window,</td></tr>
+<tr class="codeline" data-linenumber="328"><td class="num" id="LN328">328</td><td class="line"> TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="329"><td class="num" id="LN329">329</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="330"><td class="num" id="LN330">330</td><td class="line"> app-&gt;windows = g_list_remove (app-&gt;windows, window);</td></tr>
+<tr class="codeline" data-linenumber="331"><td class="num" id="LN331">331</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="332"><td class="num" id="LN332">332</td><td class="line"> <span class='keyword'>if</span> (app-&gt;windows == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="333"><td class="num" id="LN333">333</td><td class="line"> g_signal_emit (app, signals[QUIT], 0);</td></tr>
+<tr class="codeline" data-linenumber="334"><td class="num" id="LN334">334</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="335"><td class="num" id="LN335">335</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="336"><td class="num" id="LN336">336</td><td class="line"><span class='keyword'>static</span> TerminalProfile *</td></tr>
+<tr class="codeline" data-linenumber="337"><td class="num" id="LN337">337</td><td class="line">terminal_app_create_profile (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="338"><td class="num" id="LN338">338</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *name)</td></tr>
+<tr class="codeline" data-linenumber="339"><td class="num" id="LN339">339</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="340"><td class="num" id="LN340">340</td><td class="line"> TerminalProfile *profile;</td></tr>
+<tr class="codeline" data-linenumber="341"><td class="num" id="LN341">341</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="342"><td class="num" id="LN342">342</td><td class="line"> <span class='macro'>g_assert (terminal_app_get_profile_by_name (app, name) == NULL)<span class='macro_popup'>do { if (terminal_app_get_profile_by_name (app, name) == ((void<br>*)0)) ; else g_assertion_message_expr (((gchar*) 0), "terminal-app.c"<br>, 342, ((const char*) (__func__)), "terminal_app_get_profile_by_name (app, name) == NULL"<br>); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="343"><td class="num" id="LN343">343</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="344"><td class="num" id="LN344">344</td><td class="line"> profile = _terminal_profile_new (name);</td></tr>
+<tr class="codeline" data-linenumber="345"><td class="num" id="LN345">345</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="346"><td class="num" id="LN346">346</td><td class="line"> g_hash_table_insert (app-&gt;profiles,</td></tr>
+<tr class="codeline" data-linenumber="347"><td class="num" id="LN347">347</td><td class="line"> <span class='macro'>g_strdup (terminal_profile_get_property_string (profile, TERMINAL_PROFILE_NAME))<span class='macro_popup'>g_strdup_inline (terminal_profile_get_property_string (profile<br>, "name"))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="348"><td class="num" id="LN348">348</td><td class="line"> profile <span class='comment'>/* adopts the refcount */</span>);</td></tr>
+<tr class="codeline" data-linenumber="349"><td class="num" id="LN349">349</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="350"><td class="num" id="LN350">350</td><td class="line"> <span class='keyword'>if</span> (app-&gt;default_profile == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span> &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="351"><td class="num" id="LN351">351</td><td class="line"> app-&gt;default_profile_id != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span> &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="352"><td class="num" id="LN352">352</td><td class="line"> strcmp (app-&gt;default_profile_id,</td></tr>
+<tr class="codeline" data-linenumber="353"><td class="num" id="LN353">353</td><td class="line"> terminal_profile_get_property_string (profile, <span class='macro'>TERMINAL_PROFILE_NAME<span class='macro_popup'>"name"</span></span>)) == 0)</td></tr>
+<tr class="codeline" data-linenumber="354"><td class="num" id="LN354">354</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="355"><td class="num" id="LN355">355</td><td class="line"> <span class='comment'>/* We are the default profile */</span></td></tr>
+<tr class="codeline" data-linenumber="356"><td class="num" id="LN356">356</td><td class="line"> app-&gt;default_profile = profile;</td></tr>
+<tr class="codeline" data-linenumber="357"><td class="num" id="LN357">357</td><td class="line"> g_object_notify (<span class='macro'>G_OBJECT (app)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, <span class='macro'>TERMINAL_APP_DEFAULT_PROFILE<span class='macro_popup'>"default-profile"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="358"><td class="num" id="LN358">358</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="359"><td class="num" id="LN359">359</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="360"><td class="num" id="LN360">360</td><td class="line"> <span class='keyword'>return</span> profile;</td></tr>
+<tr class="codeline" data-linenumber="361"><td class="num" id="LN361">361</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="362"><td class="num" id="LN362">362</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="363"><td class="num" id="LN363">363</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="364"><td class="num" id="LN364">364</td><td class="line">terminal_app_delete_profile (TerminalProfile *profile)</td></tr>
+<tr class="codeline" data-linenumber="365"><td class="num" id="LN365">365</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="366"><td class="num" id="LN366">366</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *profile_name;</td></tr>
+<tr class="codeline" data-linenumber="367"><td class="num" id="LN367">367</td><td class="line"> <span class='keyword'>char</span> *profile_dir;</td></tr>
+<tr class="codeline" data-linenumber="368"><td class="num" id="LN368">368</td><td class="line"> GError *error = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="369"><td class="num" id="LN369">369</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="370"><td class="num" id="LN370">370</td><td class="line"> profile_name = terminal_profile_get_property_string (profile, <span class='macro'>TERMINAL_PROFILE_NAME<span class='macro_popup'>"name"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="371"><td class="num" id="LN371">371</td><td class="line"> profile_dir = g_strconcat (<span class='macro'>CONF_PROFILE_PREFIX<span class='macro_popup'>"/org/mate/terminal/profiles/"</span></span>, profile_name, <span class='string_literal'>"/"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="372"><td class="num" id="LN372">372</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="373"><td class="num" id="LN373">373</td><td class="line"> gsettings_remove_all_from_strv (settings_global, <span class='macro'>PROFILE_LIST_KEY<span class='macro_popup'>"profile-list"</span></span>, profile_name);</td></tr>
+<tr class="codeline" data-linenumber="374"><td class="num" id="LN374">374</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="375"><td class="num" id="LN375">375</td><td class="line"> <span class='comment'>/* And remove the profile directory */</span></td></tr>
+<tr class="codeline" data-linenumber="376"><td class="num" id="LN376">376</td><td class="line"> DConfClient *client = dconf_client_new ();</td></tr>
+<tr class="codeline" data-linenumber="377"><td class="num" id="LN377">377</td><td class="line"> <span class='keyword'>if</span> (!dconf_client_write_sync (client, profile_dir, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, &amp;error))</td></tr>
+<tr class="codeline" data-linenumber="378"><td class="num" id="LN378">378</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="379"><td class="num" id="LN379">379</td><td class="line"> g_warning (<span class='string_literal'>"Failed to recursively unset %s: %s\n"</span>, profile_dir, error-&gt;message);</td></tr>
+<tr class="codeline" data-linenumber="380"><td class="num" id="LN380">380</td><td class="line"> g_error_free (error);</td></tr>
+<tr class="codeline" data-linenumber="381"><td class="num" id="LN381">381</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="382"><td class="num" id="LN382">382</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="383"><td class="num" id="LN383">383</td><td class="line"> g_object_unref (client);</td></tr>
+<tr class="codeline" data-linenumber="384"><td class="num" id="LN384">384</td><td class="line"> g_free (profile_dir);</td></tr>
+<tr class="codeline" data-linenumber="385"><td class="num" id="LN385">385</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="386"><td class="num" id="LN386">386</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="387"><td class="num" id="LN387">387</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="388"><td class="num" id="LN388">388</td><td class="line">terminal_app_profile_cell_data_func (GtkTreeViewColumn *tree_column,</td></tr>
+<tr class="codeline" data-linenumber="389"><td class="num" id="LN389">389</td><td class="line"> GtkCellRenderer *cell,</td></tr>
+<tr class="codeline" data-linenumber="390"><td class="num" id="LN390">390</td><td class="line"> GtkTreeModel *tree_model,</td></tr>
+<tr class="codeline" data-linenumber="391"><td class="num" id="LN391">391</td><td class="line"> GtkTreeIter *iter,</td></tr>
+<tr class="codeline" data-linenumber="392"><td class="num" id="LN392">392</td><td class="line"> gpointer data)</td></tr>
+<tr class="codeline" data-linenumber="393"><td class="num" id="LN393">393</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="394"><td class="num" id="LN394">394</td><td class="line"> TerminalProfile *profile;</td></tr>
+<tr class="codeline" data-linenumber="395"><td class="num" id="LN395">395</td><td class="line"> GValue value = { 0, };</td></tr>
+<tr class="codeline" data-linenumber="396"><td class="num" id="LN396">396</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="397"><td class="num" id="LN397">397</td><td class="line"> gtk_tree_model_get (tree_model, iter, (<span class='keyword'>int</span>) COL_PROFILE, &amp;profile, (<span class='keyword'>int</span>) -1);</td></tr>
+<tr class="codeline" data-linenumber="398"><td class="num" id="LN398">398</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="399"><td class="num" id="LN399">399</td><td class="line"> g_value_init (&amp;value, <span class='macro'>G_TYPE_STRING<span class='macro_popup'>((GType) ((16) &lt;&lt; (2)))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="400"><td class="num" id="LN400">400</td><td class="line"> g_object_get_property (<span class='macro'>G_OBJECT (profile)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((profile)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, <span class='string_literal'>"visible-name"</span>, &amp;value);</td></tr>
+<tr class="codeline" data-linenumber="401"><td class="num" id="LN401">401</td><td class="line"> g_object_set_property (<span class='macro'>G_OBJECT (cell)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((cell)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, <span class='string_literal'>"text"</span>, &amp;value);</td></tr>
+<tr class="codeline" data-linenumber="402"><td class="num" id="LN402">402</td><td class="line"> g_value_unset (&amp;value);</td></tr>
+<tr class="codeline" data-linenumber="403"><td class="num" id="LN403">403</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="404"><td class="num" id="LN404">404</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="405"><td class="num" id="LN405">405</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>int</span></td></tr>
+<tr class="codeline" data-linenumber="406"><td class="num" id="LN406">406</td><td class="line">terminal_app_profile_sort_func (GtkTreeModel *model,</td></tr>
+<tr class="codeline" data-linenumber="407"><td class="num" id="LN407">407</td><td class="line"> GtkTreeIter *a,</td></tr>
+<tr class="codeline" data-linenumber="408"><td class="num" id="LN408">408</td><td class="line"> GtkTreeIter *b,</td></tr>
+<tr class="codeline" data-linenumber="409"><td class="num" id="LN409">409</td><td class="line"> gpointer user_data)</td></tr>
+<tr class="codeline" data-linenumber="410"><td class="num" id="LN410">410</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="411"><td class="num" id="LN411">411</td><td class="line"> TerminalProfile *profile_a, *profile_b;</td></tr>
+<tr class="codeline" data-linenumber="412"><td class="num" id="LN412">412</td><td class="line"> <span class='keyword'>int</span> retval;</td></tr>
+<tr class="codeline" data-linenumber="413"><td class="num" id="LN413">413</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="414"><td class="num" id="LN414">414</td><td class="line"> gtk_tree_model_get (model, a, (<span class='keyword'>int</span>) COL_PROFILE, &amp;profile_a, (<span class='keyword'>int</span>) -1);</td></tr>
+<tr class="codeline" data-linenumber="415"><td class="num" id="LN415">415</td><td class="line"> gtk_tree_model_get (model, b, (<span class='keyword'>int</span>) COL_PROFILE, &amp;profile_b, (<span class='keyword'>int</span>) -1);</td></tr>
+<tr class="codeline" data-linenumber="416"><td class="num" id="LN416">416</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="417"><td class="num" id="LN417">417</td><td class="line"> retval = profiles_alphabetic_cmp (profile_a, profile_b);</td></tr>
+<tr class="codeline" data-linenumber="418"><td class="num" id="LN418">418</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="419"><td class="num" id="LN419">419</td><td class="line"> g_object_unref (profile_a);</td></tr>
+<tr class="codeline" data-linenumber="420"><td class="num" id="LN420">420</td><td class="line"> g_object_unref (profile_b);</td></tr>
+<tr class="codeline" data-linenumber="421"><td class="num" id="LN421">421</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="422"><td class="num" id="LN422">422</td><td class="line"> <span class='keyword'>return</span> retval;</td></tr>
+<tr class="codeline" data-linenumber="423"><td class="num" id="LN423">423</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="424"><td class="num" id="LN424">424</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="425"><td class="num" id="LN425">425</td><td class="line"><span class='keyword'>static</span> <span class='comment'>/* ref */</span> GtkTreeModel *</td></tr>
+<tr class="codeline" data-linenumber="426"><td class="num" id="LN426">426</td><td class="line">terminal_app_get_profile_liststore (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="427"><td class="num" id="LN427">427</td><td class="line"> TerminalProfile *selected_profile,</td></tr>
+<tr class="codeline" data-linenumber="428"><td class="num" id="LN428">428</td><td class="line"> GtkTreeIter *selected_profile_iter,</td></tr>
+<tr class="codeline" data-linenumber="429"><td class="num" id="LN429">429</td><td class="line"> gboolean *selected_profile_iter_set)</td></tr>
+<tr class="codeline" data-linenumber="430"><td class="num" id="LN430">430</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="431"><td class="num" id="LN431">431</td><td class="line"> GtkListStore *store;</td></tr>
+<tr class="codeline" data-linenumber="432"><td class="num" id="LN432">432</td><td class="line"> GtkTreeIter iter;</td></tr>
+<tr class="codeline" data-linenumber="433"><td class="num" id="LN433">433</td><td class="line"> GList *profiles, *l;</td></tr>
+<tr class="codeline" data-linenumber="434"><td class="num" id="LN434">434</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="435"><td class="num" id="LN435">435</td><td class="line"> store = gtk_list_store_new (NUM_COLUMNS, <span class='macro'>TERMINAL_TYPE_PROFILE<span class='macro_popup'>(terminal_profile_get_type ())</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="436"><td class="num" id="LN436">436</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="437"><td class="num" id="LN437">437</td><td class="line"> *selected_profile_iter_set = <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="438"><td class="num" id="LN438">438</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="439"><td class="num" id="LN439">439</td><td class="line"> <span class='keyword'>if</span> (selected_profile &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="440"><td class="num" id="LN440">440</td><td class="line"> _terminal_profile_get_forgotten (selected_profile))</td></tr>
+<tr class="codeline" data-linenumber="441"><td class="num" id="LN441">441</td><td class="line"> selected_profile = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="442"><td class="num" id="LN442">442</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="443"><td class="num" id="LN443">443</td><td class="line"> profiles = terminal_app_get_profile_list (app);</td></tr>
+<tr class="codeline" data-linenumber="444"><td class="num" id="LN444">444</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="445"><td class="num" id="LN445">445</td><td class="line"> <span class='keyword'>for</span> (l = profiles; l != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; l = l-&gt;next)</td></tr>
+<tr class="codeline" data-linenumber="446"><td class="num" id="LN446">446</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="447"><td class="num" id="LN447">447</td><td class="line"> TerminalProfile *profile = <span class='macro'>TERMINAL_PROFILE (l-&gt;data)<span class='macro_popup'>((((TerminalProfile*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((l-&gt;data)), ((terminal_profile_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="448"><td class="num" id="LN448">448</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="449"><td class="num" id="LN449">449</td><td class="line"> gtk_list_store_insert_with_values (store, &amp;iter, 0,</td></tr>
+<tr class="codeline" data-linenumber="450"><td class="num" id="LN450">450</td><td class="line"> (<span class='keyword'>int</span>) COL_PROFILE, profile,</td></tr>
+<tr class="codeline" data-linenumber="451"><td class="num" id="LN451">451</td><td class="line"> (<span class='keyword'>int</span>) -1);</td></tr>
+<tr class="codeline" data-linenumber="452"><td class="num" id="LN452">452</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="453"><td class="num" id="LN453">453</td><td class="line"> <span class='keyword'>if</span> (selected_profile_iter &amp;&amp; profile == selected_profile)</td></tr>
+<tr class="codeline" data-linenumber="454"><td class="num" id="LN454">454</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="455"><td class="num" id="LN455">455</td><td class="line"> *selected_profile_iter = iter;</td></tr>
+<tr class="codeline" data-linenumber="456"><td class="num" id="LN456">456</td><td class="line"> *selected_profile_iter_set = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="457"><td class="num" id="LN457">457</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="458"><td class="num" id="LN458">458</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="459"><td class="num" id="LN459">459</td><td class="line"> g_list_free (profiles);</td></tr>
+<tr class="codeline" data-linenumber="460"><td class="num" id="LN460">460</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="461"><td class="num" id="LN461">461</td><td class="line"> <span class='comment'>/* Now turn on sorting */</span></td></tr>
+<tr class="codeline" data-linenumber="462"><td class="num" id="LN462">462</td><td class="line"> gtk_tree_sortable_set_sort_func (<span class='macro'>GTK_TREE_SORTABLE (store)<span class='macro_popup'>((((GtkTreeSortable*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((store)), ((gtk_tree_sortable_get_type ()))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="463"><td class="num" id="LN463">463</td><td class="line"> COL_PROFILE,</td></tr>
+<tr class="codeline" data-linenumber="464"><td class="num" id="LN464">464</td><td class="line"> terminal_app_profile_sort_func,</td></tr>
+<tr class="codeline" data-linenumber="465"><td class="num" id="LN465">465</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="466"><td class="num" id="LN466">466</td><td class="line"> gtk_tree_sortable_set_sort_column_id (<span class='macro'>GTK_TREE_SORTABLE (store)<span class='macro_popup'>((((GtkTreeSortable*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((store)), ((gtk_tree_sortable_get_type ()))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="467"><td class="num" id="LN467">467</td><td class="line"> COL_PROFILE, GTK_SORT_ASCENDING);</td></tr>
+<tr class="codeline" data-linenumber="468"><td class="num" id="LN468">468</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="469"><td class="num" id="LN469">469</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>GTK_TREE_MODEL (store)<span class='macro_popup'>((((GtkTreeModel*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((store)), ((gtk_tree_model_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="470"><td class="num" id="LN470">470</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="471"><td class="num" id="LN471">471</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="472"><td class="num" id="LN472">472</td><td class="line"><span class='keyword'>static</span> <span class='comment'>/* ref */</span> TerminalProfile*</td></tr>
+<tr class="codeline" data-linenumber="473"><td class="num" id="LN473">473</td><td class="line">profile_combo_box_get_selected (GtkWidget *widget)</td></tr>
+<tr class="codeline" data-linenumber="474"><td class="num" id="LN474">474</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="475"><td class="num" id="LN475">475</td><td class="line"> GtkComboBox *combo = <span class='macro'>GTK_COMBO_BOX (widget)<span class='macro_popup'>((((GtkComboBox*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((widget)), ((gtk_combo_box_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="476"><td class="num" id="LN476">476</td><td class="line"> TerminalProfile *profile = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="477"><td class="num" id="LN477">477</td><td class="line"> GtkTreeIter iter;</td></tr>
+<tr class="codeline" data-linenumber="478"><td class="num" id="LN478">478</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="479"><td class="num" id="LN479">479</td><td class="line"> <span class='keyword'>if</span> (gtk_combo_box_get_active_iter (combo, &amp;iter))</td></tr>
+<tr class="codeline" data-linenumber="480"><td class="num" id="LN480">480</td><td class="line"> gtk_tree_model_get (gtk_combo_box_get_model (combo), &amp;iter,</td></tr>
+<tr class="codeline" data-linenumber="481"><td class="num" id="LN481">481</td><td class="line"> (<span class='keyword'>int</span>) COL_PROFILE, &amp;profile, (<span class='keyword'>int</span>) -1);</td></tr>
+<tr class="codeline" data-linenumber="482"><td class="num" id="LN482">482</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="483"><td class="num" id="LN483">483</td><td class="line"> <span class='keyword'>return</span> profile;</td></tr>
+<tr class="codeline" data-linenumber="484"><td class="num" id="LN484">484</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="485"><td class="num" id="LN485">485</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="486"><td class="num" id="LN486">486</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="487"><td class="num" id="LN487">487</td><td class="line">profile_combo_box_refill (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="488"><td class="num" id="LN488">488</td><td class="line"> GtkWidget *widget)</td></tr>
+<tr class="codeline" data-linenumber="489"><td class="num" id="LN489">489</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="490"><td class="num" id="LN490">490</td><td class="line"> GtkComboBox *combo = <span class='macro'>GTK_COMBO_BOX (widget)<span class='macro_popup'>((((GtkComboBox*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((widget)), ((gtk_combo_box_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="491"><td class="num" id="LN491">491</td><td class="line"> GtkTreeIter iter;</td></tr>
+<tr class="codeline" data-linenumber="492"><td class="num" id="LN492">492</td><td class="line"> gboolean iter_set;</td></tr>
+<tr class="codeline" data-linenumber="493"><td class="num" id="LN493">493</td><td class="line"> TerminalProfile *selected_profile;</td></tr>
+<tr class="codeline" data-linenumber="494"><td class="num" id="LN494">494</td><td class="line"> GtkTreeModel *model;</td></tr>
+<tr class="codeline" data-linenumber="495"><td class="num" id="LN495">495</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="496"><td class="num" id="LN496">496</td><td class="line"> selected_profile = profile_combo_box_get_selected (widget);</td></tr>
+<tr class="codeline" data-linenumber="497"><td class="num" id="LN497">497</td><td class="line"> <span class='keyword'>if</span> (!selected_profile)</td></tr>
+<tr class="codeline" data-linenumber="498"><td class="num" id="LN498">498</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="499"><td class="num" id="LN499">499</td><td class="line"> selected_profile = terminal_app_get_default_profile (app);</td></tr>
+<tr class="codeline" data-linenumber="500"><td class="num" id="LN500">500</td><td class="line"> <span class='keyword'>if</span> (selected_profile)</td></tr>
+<tr class="codeline" data-linenumber="501"><td class="num" id="LN501">501</td><td class="line"> <span class='macro'>g_object_ref (selected_profile)<span class='macro_popup'>((__typeof__ (selected_profile)) (g_object_ref) (selected_profile<br>))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="502"><td class="num" id="LN502">502</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="503"><td class="num" id="LN503">503</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="504"><td class="num" id="LN504">504</td><td class="line"> model = terminal_app_get_profile_liststore (app,</td></tr>
+<tr class="codeline" data-linenumber="505"><td class="num" id="LN505">505</td><td class="line"> selected_profile,</td></tr>
+<tr class="codeline" data-linenumber="506"><td class="num" id="LN506">506</td><td class="line"> &amp;iter,</td></tr>
+<tr class="codeline" data-linenumber="507"><td class="num" id="LN507">507</td><td class="line"> &amp;iter_set);</td></tr>
+<tr class="codeline" data-linenumber="508"><td class="num" id="LN508">508</td><td class="line"> gtk_combo_box_set_model (combo, model);</td></tr>
+<tr class="codeline" data-linenumber="509"><td class="num" id="LN509">509</td><td class="line"> g_object_unref (model);</td></tr>
+<tr class="codeline" data-linenumber="510"><td class="num" id="LN510">510</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="511"><td class="num" id="LN511">511</td><td class="line"> <span class='keyword'>if</span> (iter_set)</td></tr>
+<tr class="codeline" data-linenumber="512"><td class="num" id="LN512">512</td><td class="line"> gtk_combo_box_set_active_iter (combo, &amp;iter);</td></tr>
+<tr class="codeline" data-linenumber="513"><td class="num" id="LN513">513</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="514"><td class="num" id="LN514">514</td><td class="line"> <span class='keyword'>if</span> (selected_profile)</td></tr>
+<tr class="codeline" data-linenumber="515"><td class="num" id="LN515">515</td><td class="line"> g_object_unref (selected_profile);</td></tr>
+<tr class="codeline" data-linenumber="516"><td class="num" id="LN516">516</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="517"><td class="num" id="LN517">517</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="518"><td class="num" id="LN518">518</td><td class="line"><span class='keyword'>static</span> GtkWidget*</td></tr>
+<tr class="codeline" data-linenumber="519"><td class="num" id="LN519">519</td><td class="line">profile_combo_box_new (TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="520"><td class="num" id="LN520">520</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="521"><td class="num" id="LN521">521</td><td class="line"> GtkWidget *combo;</td></tr>
+<tr class="codeline" data-linenumber="522"><td class="num" id="LN522">522</td><td class="line"> GtkCellRenderer *renderer;</td></tr>
+<tr class="codeline" data-linenumber="523"><td class="num" id="LN523">523</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="524"><td class="num" id="LN524">524</td><td class="line"> combo = gtk_combo_box_new ();</td></tr>
+<tr class="codeline" data-linenumber="525"><td class="num" id="LN525">525</td><td class="line"> terminal_util_set_atk_name_description (combo, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>_(<span class='string_literal'>"Click button to choose profile"</span>)<span class='macro_popup'>gettext ("Click button to choose profile")</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="526"><td class="num" id="LN526">526</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="527"><td class="num" id="LN527">527</td><td class="line"> renderer = gtk_cell_renderer_text_new ();</td></tr>
+<tr class="codeline" data-linenumber="528"><td class="num" id="LN528">528</td><td class="line"> gtk_cell_layout_pack_start (<span class='macro'>GTK_CELL_LAYOUT (combo)<span class='macro_popup'>((((GtkCellLayout*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((combo)), ((gtk_cell_layout_get_type ()))))))</span></span>, renderer, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="529"><td class="num" id="LN529">529</td><td class="line"> gtk_cell_layout_set_cell_data_func (<span class='macro'>GTK_CELL_LAYOUT (combo)<span class='macro_popup'>((((GtkCellLayout*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((combo)), ((gtk_cell_layout_get_type ()))))))</span></span>, renderer,</td></tr>
+<tr class="codeline" data-linenumber="530"><td class="num" id="LN530">530</td><td class="line"> (GtkCellLayoutDataFunc) terminal_app_profile_cell_data_func,</td></tr>
+<tr class="codeline" data-linenumber="531"><td class="num" id="LN531">531</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="532"><td class="num" id="LN532">532</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="533"><td class="num" id="LN533">533</td><td class="line"> profile_combo_box_refill (app, combo);</td></tr>
+<tr class="codeline" data-linenumber="534"><td class="num" id="LN534">534</td><td class="line"> <span class='macro'>g_signal_connect (app, <span class='string_literal'>"profile-list-changed"</span>,<span class='macro_popup'>g_signal_connect_data ((app), ("profile-list-changed"), (((GCallback<br>) (profile_combo_box_refill))), (combo), ((void*)0), (GConnectFlags<br>) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="535"><td class="num" id="LN535">535</td><td class="line"> <span class='macro'>G_CALLBACK (profile_combo_box_refill), combo)<span class='macro_popup'>g_signal_connect_data ((app), ("profile-list-changed"), (((GCallback<br>) (profile_combo_box_refill))), (combo), ((void*)0), (GConnectFlags<br>) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="536"><td class="num" id="LN536">536</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="537"><td class="num" id="LN537">537</td><td class="line"> gtk_widget_show (combo);</td></tr>
+<tr class="codeline" data-linenumber="538"><td class="num" id="LN538">538</td><td class="line"> <span class='keyword'>return</span> combo;</td></tr>
+<tr class="codeline" data-linenumber="539"><td class="num" id="LN539">539</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="540"><td class="num" id="LN540">540</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="541"><td class="num" id="LN541">541</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="542"><td class="num" id="LN542">542</td><td class="line">profile_combo_box_changed_cb (GtkWidget *widget,</td></tr>
+<tr class="codeline" data-linenumber="543"><td class="num" id="LN543">543</td><td class="line"> TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="544"><td class="num" id="LN544">544</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="545"><td class="num" id="LN545">545</td><td class="line"> TerminalProfile *profile;</td></tr>
+<tr class="codeline" data-linenumber="546"><td class="num" id="LN546">546</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="547"><td class="num" id="LN547">547</td><td class="line"> profile = profile_combo_box_get_selected (widget);</td></tr>
+<tr class="codeline" data-linenumber="548"><td class="num" id="LN548">548</td><td class="line"> <span class='keyword'>if</span> (!profile)</td></tr>
+<tr class="codeline" data-linenumber="549"><td class="num" id="LN549">549</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="550"><td class="num" id="LN550">550</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="551"><td class="num" id="LN551">551</td><td class="line"> g_settings_set_string (settings_global, <span class='macro'>DEFAULT_PROFILE_KEY<span class='macro_popup'>"default-profile"</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="552"><td class="num" id="LN552">552</td><td class="line"> terminal_profile_get_property_string (profile, <span class='macro'>TERMINAL_PROFILE_NAME<span class='macro_popup'>"name"</span></span>));</td></tr>
+<tr class="codeline" data-linenumber="553"><td class="num" id="LN553">553</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="554"><td class="num" id="LN554">554</td><td class="line"> <span class='comment'>/* Even though the GSettings change notification does this, it happens too late.</span></td></tr>
+<tr class="codeline" data-linenumber="555"><td class="num" id="LN555">555</td><td class="line"> <span class='comment'>* In some cases, the default profile changes twice in quick succession,</span></td></tr>
+<tr class="codeline" data-linenumber="556"><td class="num" id="LN556">556</td><td class="line"> <span class='comment'>* and update_default_profile must be called in sync with those changes.</span></td></tr>
+<tr class="codeline" data-linenumber="557"><td class="num" id="LN557">557</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="558"><td class="num" id="LN558">558</td><td class="line"> app-&gt;default_profile = profile;</td></tr>
+<tr class="codeline" data-linenumber="559"><td class="num" id="LN559">559</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="560"><td class="num" id="LN560">560</td><td class="line"> g_object_notify (<span class='macro'>G_OBJECT (app)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, <span class='macro'>TERMINAL_APP_DEFAULT_PROFILE<span class='macro_popup'>"default-profile"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="561"><td class="num" id="LN561">561</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="562"><td class="num" id="LN562">562</td><td class="line"> g_object_unref (profile);</td></tr>
+<tr class="codeline" data-linenumber="563"><td class="num" id="LN563">563</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="564"><td class="num" id="LN564">564</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="565"><td class="num" id="LN565">565</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="566"><td class="num" id="LN566">566</td><td class="line">profile_list_treeview_refill (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="567"><td class="num" id="LN567">567</td><td class="line"> GtkWidget *widget)</td></tr>
+<tr class="codeline" data-linenumber="568"><td class="num" id="LN568">568</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="569"><td class="num" id="LN569">569</td><td class="line"> GtkTreeView *tree_view = <span class='macro'>GTK_TREE_VIEW (widget)<span class='macro_popup'>((((GtkTreeView*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((widget)), ((gtk_tree_view_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="570"><td class="num" id="LN570">570</td><td class="line"> GtkTreeIter iter;</td></tr>
+<tr class="codeline" data-linenumber="571"><td class="num" id="LN571">571</td><td class="line"> gboolean iter_set;</td></tr>
+<tr class="codeline" data-linenumber="572"><td class="num" id="LN572">572</td><td class="line"> GtkTreeSelection *selection;</td></tr>
+<tr class="codeline" data-linenumber="573"><td class="num" id="LN573">573</td><td class="line"> GtkTreeModel *model;</td></tr>
+<tr class="codeline" data-linenumber="574"><td class="num" id="LN574">574</td><td class="line"> TerminalProfile *selected_profile = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="575"><td class="num" id="LN575">575</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="576"><td class="num" id="LN576">576</td><td class="line"> model = gtk_tree_view_get_model (tree_view);</td></tr>
+<tr class="codeline" data-linenumber="577"><td class="num" id="LN577">577</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="578"><td class="num" id="LN578">578</td><td class="line"> selection = gtk_tree_view_get_selection (tree_view);</td></tr>
+<tr class="codeline" data-linenumber="579"><td class="num" id="LN579">579</td><td class="line"> <span class='keyword'>if</span> (gtk_tree_selection_get_selected (selection, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, &amp;iter))</td></tr>
+<tr class="codeline" data-linenumber="580"><td class="num" id="LN580">580</td><td class="line"> gtk_tree_model_get (model, &amp;iter, (<span class='keyword'>int</span>) COL_PROFILE, &amp;selected_profile, (<span class='keyword'>int</span>) -1);</td></tr>
+<tr class="codeline" data-linenumber="581"><td class="num" id="LN581">581</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="582"><td class="num" id="LN582">582</td><td class="line"> model = terminal_app_get_profile_liststore (terminal_app_get (),</td></tr>
+<tr class="codeline" data-linenumber="583"><td class="num" id="LN583">583</td><td class="line"> selected_profile,</td></tr>
+<tr class="codeline" data-linenumber="584"><td class="num" id="LN584">584</td><td class="line"> &amp;iter,</td></tr>
+<tr class="codeline" data-linenumber="585"><td class="num" id="LN585">585</td><td class="line"> &amp;iter_set);</td></tr>
+<tr class="codeline" data-linenumber="586"><td class="num" id="LN586">586</td><td class="line"> gtk_tree_view_set_model (tree_view, model);</td></tr>
+<tr class="codeline" data-linenumber="587"><td class="num" id="LN587">587</td><td class="line"> g_object_unref (model);</td></tr>
+<tr class="codeline" data-linenumber="588"><td class="num" id="LN588">588</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="589"><td class="num" id="LN589">589</td><td class="line"> <span class='keyword'>if</span> (!iter_set)</td></tr>
+<tr class="codeline" data-linenumber="590"><td class="num" id="LN590">590</td><td class="line"> iter_set = gtk_tree_model_get_iter_first (model, &amp;iter);</td></tr>
+<tr class="codeline" data-linenumber="591"><td class="num" id="LN591">591</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="592"><td class="num" id="LN592">592</td><td class="line"> <span class='keyword'>if</span> (iter_set)</td></tr>
+<tr class="codeline" data-linenumber="593"><td class="num" id="LN593">593</td><td class="line"> gtk_tree_selection_select_iter (selection, &amp;iter);</td></tr>
+<tr class="codeline" data-linenumber="594"><td class="num" id="LN594">594</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="595"><td class="num" id="LN595">595</td><td class="line"> <span class='keyword'>if</span> (selected_profile)</td></tr>
+<tr class="codeline" data-linenumber="596"><td class="num" id="LN596">596</td><td class="line"> g_object_unref (selected_profile);</td></tr>
+<tr class="codeline" data-linenumber="597"><td class="num" id="LN597">597</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="598"><td class="num" id="LN598">598</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="599"><td class="num" id="LN599">599</td><td class="line"><span class='keyword'>static</span> GtkWidget*</td></tr>
+<tr class="codeline" data-linenumber="600"><td class="num" id="LN600">600</td><td class="line">profile_list_treeview_create (TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="601"><td class="num" id="LN601">601</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="602"><td class="num" id="LN602">602</td><td class="line"> GtkWidget *tree_view;</td></tr>
+<tr class="codeline" data-linenumber="603"><td class="num" id="LN603">603</td><td class="line"> GtkTreeSelection *selection;</td></tr>
+<tr class="codeline" data-linenumber="604"><td class="num" id="LN604">604</td><td class="line"> GtkCellRenderer *renderer;</td></tr>
+<tr class="codeline" data-linenumber="605"><td class="num" id="LN605">605</td><td class="line"> GtkTreeViewColumn *column;</td></tr>
+<tr class="codeline" data-linenumber="606"><td class="num" id="LN606">606</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="607"><td class="num" id="LN607">607</td><td class="line"> tree_view = gtk_tree_view_new ();</td></tr>
+<tr class="codeline" data-linenumber="608"><td class="num" id="LN608">608</td><td class="line"> terminal_util_set_atk_name_description (tree_view, <span class='macro'>_(<span class='string_literal'>"Profile list"</span>)<span class='macro_popup'>gettext ("Profile list")</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="609"><td class="num" id="LN609">609</td><td class="line"> gtk_tree_view_set_headers_visible (<span class='macro'>GTK_TREE_VIEW (tree_view)<span class='macro_popup'>((((GtkTreeView*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((tree_view)), ((gtk_tree_view_get_type ()))))))</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="610"><td class="num" id="LN610">610</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="611"><td class="num" id="LN611">611</td><td class="line"> selection = gtk_tree_view_get_selection (<span class='macro'>GTK_TREE_VIEW (tree_view)<span class='macro_popup'>((((GtkTreeView*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((tree_view)), ((gtk_tree_view_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="612"><td class="num" id="LN612">612</td><td class="line"> gtk_tree_selection_set_mode (<span class='macro'>GTK_TREE_SELECTION (selection)<span class='macro_popup'>((((GtkTreeSelection*) (void *) g_type_check_instance_cast ((<br>GTypeInstance*) ((selection)), ((gtk_tree_selection_get_type (<br>)))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="613"><td class="num" id="LN613">613</td><td class="line"> GTK_SELECTION_BROWSE);</td></tr>
+<tr class="codeline" data-linenumber="614"><td class="num" id="LN614">614</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="615"><td class="num" id="LN615">615</td><td class="line"> column = gtk_tree_view_column_new ();</td></tr>
+<tr class="codeline" data-linenumber="616"><td class="num" id="LN616">616</td><td class="line"> renderer = gtk_cell_renderer_text_new ();</td></tr>
+<tr class="codeline" data-linenumber="617"><td class="num" id="LN617">617</td><td class="line"> gtk_cell_layout_pack_start (<span class='macro'>GTK_CELL_LAYOUT (column)<span class='macro_popup'>((((GtkCellLayout*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((column)), ((gtk_cell_layout_get_type ()))))))</span></span>, renderer, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="618"><td class="num" id="LN618">618</td><td class="line"> gtk_cell_layout_set_cell_data_func (<span class='macro'>GTK_CELL_LAYOUT (column)<span class='macro_popup'>((((GtkCellLayout*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((column)), ((gtk_cell_layout_get_type ()))))))</span></span>, renderer,</td></tr>
+<tr class="codeline" data-linenumber="619"><td class="num" id="LN619">619</td><td class="line"> (GtkCellLayoutDataFunc) terminal_app_profile_cell_data_func,</td></tr>
+<tr class="codeline" data-linenumber="620"><td class="num" id="LN620">620</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="621"><td class="num" id="LN621">621</td><td class="line"> gtk_tree_view_append_column (<span class='macro'>GTK_TREE_VIEW (tree_view)<span class='macro_popup'>((((GtkTreeView*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((tree_view)), ((gtk_tree_view_get_type ()))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="622"><td class="num" id="LN622">622</td><td class="line"> <span class='macro'>GTK_TREE_VIEW_COLUMN (column)<span class='macro_popup'>((((GtkTreeViewColumn*) (void *) g_type_check_instance_cast (<br>(GTypeInstance*) ((column)), ((gtk_tree_view_column_get_type (<br>)))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="623"><td class="num" id="LN623">623</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="624"><td class="num" id="LN624">624</td><td class="line"> <span class='keyword'>return</span> tree_view;</td></tr>
+<tr class="codeline" data-linenumber="625"><td class="num" id="LN625">625</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="626"><td class="num" id="LN626">626</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="627"><td class="num" id="LN627">627</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="628"><td class="num" id="LN628">628</td><td class="line">profile_list_delete_confirm_response_cb (GtkWidget *dialog,</td></tr>
+<tr class="codeline" data-linenumber="629"><td class="num" id="LN629">629</td><td class="line"> <span class='keyword'>int</span> response)</td></tr>
+<tr class="codeline" data-linenumber="630"><td class="num" id="LN630">630</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="631"><td class="num" id="LN631">631</td><td class="line"> TerminalProfile *profile;</td></tr>
+<tr class="codeline" data-linenumber="632"><td class="num" id="LN632">632</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="633"><td class="num" id="LN633">633</td><td class="line"> profile = <span class='macro'>TERMINAL_PROFILE (g_object_get_data (G_OBJECT (dialog), <span class='string_literal'>"profile"</span>))<span class='macro_popup'>((((TerminalProfile*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((g_object_get_data (((((GObject*) (void *) g_type_check_instance_cast<br> ((GTypeInstance*) ((dialog)), (((GType) ((20) &lt;&lt; (2)))<br>))))), "profile"))), ((terminal_profile_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="634"><td class="num" id="LN634">634</td><td class="line"> <span class='macro'>g_assert (profile != NULL)<span class='macro_popup'>do { if (profile != ((void*)0)) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-app.c", 634, ((const char*) (__func__<br>)), "profile != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="635"><td class="num" id="LN635">635</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="636"><td class="num" id="LN636">636</td><td class="line"> <span class='keyword'>if</span> (response == GTK_RESPONSE_ACCEPT)</td></tr>
+<tr class="codeline" data-linenumber="637"><td class="num" id="LN637">637</td><td class="line"> terminal_app_delete_profile (profile);</td></tr>
+<tr class="codeline" data-linenumber="638"><td class="num" id="LN638">638</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="639"><td class="num" id="LN639">639</td><td class="line"> gtk_widget_destroy (dialog);</td></tr>
+<tr class="codeline" data-linenumber="640"><td class="num" id="LN640">640</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="641"><td class="num" id="LN641">641</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="642"><td class="num" id="LN642">642</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="643"><td class="num" id="LN643">643</td><td class="line">mate_dialog_add_button (GtkDialog *dialog,</td></tr>
+<tr class="codeline" data-linenumber="644"><td class="num" id="LN644">644</td><td class="line"> <span class='keyword'>const</span> gchar *button_text,</td></tr>
+<tr class="codeline" data-linenumber="645"><td class="num" id="LN645">645</td><td class="line"> <span class='keyword'>const</span> gchar *icon_name,</td></tr>
+<tr class="codeline" data-linenumber="646"><td class="num" id="LN646">646</td><td class="line"> gint response_id)</td></tr>
+<tr class="codeline" data-linenumber="647"><td class="num" id="LN647">647</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="648"><td class="num" id="LN648">648</td><td class="line"> GtkWidget *button;</td></tr>
+<tr class="codeline" data-linenumber="649"><td class="num" id="LN649">649</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="650"><td class="num" id="LN650">650</td><td class="line"> button = gtk_button_new_with_mnemonic (button_text);</td></tr>
+<tr class="codeline" data-linenumber="651"><td class="num" id="LN651">651</td><td class="line"> gtk_button_set_image (<span class='macro'>GTK_BUTTON (button)<span class='macro_popup'>((((GtkButton*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((button)), ((gtk_button_get_type ()))))))</span></span>, gtk_image_new_from_icon_name (icon_name, GTK_ICON_SIZE_BUTTON));</td></tr>
+<tr class="codeline" data-linenumber="652"><td class="num" id="LN652">652</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="653"><td class="num" id="LN653">653</td><td class="line"> gtk_button_set_use_underline (<span class='macro'>GTK_BUTTON (button)<span class='macro_popup'>((((GtkButton*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((button)), ((gtk_button_get_type ()))))))</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="654"><td class="num" id="LN654">654</td><td class="line"> gtk_style_context_add_class (gtk_widget_get_style_context (button), <span class='string_literal'>"text-button"</span>);</td></tr>
+<tr class="codeline" data-linenumber="655"><td class="num" id="LN655">655</td><td class="line"> gtk_widget_set_can_default (button, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="656"><td class="num" id="LN656">656</td><td class="line"> gtk_widget_show (button);</td></tr>
+<tr class="codeline" data-linenumber="657"><td class="num" id="LN657">657</td><td class="line"> gtk_dialog_add_action_widget (<span class='macro'>GTK_DIALOG (dialog)<span class='macro_popup'>((((GtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((dialog)), ((gtk_dialog_get_type ()))))))</span></span>, button, response_id);</td></tr>
+<tr class="codeline" data-linenumber="658"><td class="num" id="LN658">658</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="659"><td class="num" id="LN659">659</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="660"><td class="num" id="LN660">660</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="661"><td class="num" id="LN661">661</td><td class="line">profile_list_delete_button_clicked_cb (GtkWidget *button,</td></tr>
+<tr class="codeline" data-linenumber="662"><td class="num" id="LN662">662</td><td class="line"> GtkWidget *widget)</td></tr>
+<tr class="codeline" data-linenumber="663"><td class="num" id="LN663">663</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="664"><td class="num" id="LN664">664</td><td class="line"> GtkTreeView *tree_view = <span class='macro'>GTK_TREE_VIEW (widget)<span class='macro_popup'>((((GtkTreeView*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((widget)), ((gtk_tree_view_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="665"><td class="num" id="LN665">665</td><td class="line"> GtkTreeSelection *selection;</td></tr>
+<tr class="codeline" data-linenumber="666"><td class="num" id="LN666">666</td><td class="line"> GtkWidget *dialog;</td></tr>
+<tr class="codeline" data-linenumber="667"><td class="num" id="LN667">667</td><td class="line"> GtkTreeIter iter;</td></tr>
+<tr class="codeline" data-linenumber="668"><td class="num" id="LN668">668</td><td class="line"> GtkTreeModel *model;</td></tr>
+<tr class="codeline" data-linenumber="669"><td class="num" id="LN669">669</td><td class="line"> TerminalProfile *selected_profile;</td></tr>
+<tr class="codeline" data-linenumber="670"><td class="num" id="LN670">670</td><td class="line"> GtkWidget *transient_parent;</td></tr>
+<tr class="codeline" data-linenumber="671"><td class="num" id="LN671">671</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="672"><td class="num" id="LN672">672</td><td class="line"> model = gtk_tree_view_get_model (tree_view);</td></tr>
+<tr class="codeline" data-linenumber="673"><td class="num" id="LN673">673</td><td class="line"> selection = gtk_tree_view_get_selection (tree_view);</td></tr>
+<tr class="codeline" data-linenumber="674"><td class="num" id="LN674">674</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="675"><td class="num" id="LN675">675</td><td class="line"> <span class='keyword'>if</span> (!gtk_tree_selection_get_selected (selection, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, &amp;iter))</td></tr>
+<tr class="codeline" data-linenumber="676"><td class="num" id="LN676">676</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="677"><td class="num" id="LN677">677</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="678"><td class="num" id="LN678">678</td><td class="line"> gtk_tree_model_get (model, &amp;iter, (<span class='keyword'>int</span>) COL_PROFILE, &amp;selected_profile, (<span class='keyword'>int</span>) -1);</td></tr>
+<tr class="codeline" data-linenumber="679"><td class="num" id="LN679">679</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="680"><td class="num" id="LN680">680</td><td class="line"> transient_parent = gtk_widget_get_toplevel (widget);</td></tr>
+<tr class="codeline" data-linenumber="681"><td class="num" id="LN681">681</td><td class="line"> dialog = gtk_message_dialog_new (<span class='macro'>GTK_WINDOW (transient_parent)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((transient_parent)), ((gtk_window_get_type ()))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="682"><td class="num" id="LN682">682</td><td class="line"> GTK_DIALOG_DESTROY_WITH_PARENT,</td></tr>
+<tr class="codeline" data-linenumber="683"><td class="num" id="LN683">683</td><td class="line"> GTK_MESSAGE_QUESTION,</td></tr>
+<tr class="codeline" data-linenumber="684"><td class="num" id="LN684">684</td><td class="line"> GTK_BUTTONS_NONE,</td></tr>
+<tr class="codeline" data-linenumber="685"><td class="num" id="LN685">685</td><td class="line"> <span class='macro'>_(<span class='string_literal'>"Delete profile “%s”?"</span>)<span class='macro_popup'>gettext ("Delete profile “%s”?")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="686"><td class="num" id="LN686">686</td><td class="line"> terminal_profile_get_property_string (selected_profile, <span class='macro'>TERMINAL_PROFILE_VISIBLE_NAME<span class='macro_popup'>"visible-name"</span></span>));</td></tr>
+<tr class="codeline" data-linenumber="687"><td class="num" id="LN687">687</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="688"><td class="num" id="LN688">688</td><td class="line"> mate_dialog_add_button (<span class='macro'>GTK_DIALOG (dialog)<span class='macro_popup'>((((GtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((dialog)), ((gtk_dialog_get_type ()))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="689"><td class="num" id="LN689">689</td><td class="line"> <span class='macro'>_(<span class='string_literal'>"_Cancel"</span>)<span class='macro_popup'>gettext ("_Cancel")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="690"><td class="num" id="LN690">690</td><td class="line"> <span class='string_literal'>"process-stop"</span>,</td></tr>
+<tr class="codeline" data-linenumber="691"><td class="num" id="LN691">691</td><td class="line"> GTK_RESPONSE_REJECT);</td></tr>
+<tr class="codeline" data-linenumber="692"><td class="num" id="LN692">692</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="693"><td class="num" id="LN693">693</td><td class="line"> mate_dialog_add_button (<span class='macro'>GTK_DIALOG (dialog)<span class='macro_popup'>((((GtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((dialog)), ((gtk_dialog_get_type ()))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="694"><td class="num" id="LN694">694</td><td class="line"> <span class='macro'>_(<span class='string_literal'>"_Delete"</span>)<span class='macro_popup'>gettext ("_Delete")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="695"><td class="num" id="LN695">695</td><td class="line"> <span class='string_literal'>"edit-delete"</span>,</td></tr>
+<tr class="codeline" data-linenumber="696"><td class="num" id="LN696">696</td><td class="line"> GTK_RESPONSE_ACCEPT);</td></tr>
+<tr class="codeline" data-linenumber="697"><td class="num" id="LN697">697</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="698"><td class="num" id="LN698">698</td><td class="line"> gtk_dialog_set_default_response (<span class='macro'>GTK_DIALOG (dialog)<span class='macro_popup'>((((GtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((dialog)), ((gtk_dialog_get_type ()))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="699"><td class="num" id="LN699">699</td><td class="line"> GTK_RESPONSE_ACCEPT);</td></tr>
+<tr class="codeline" data-linenumber="700"><td class="num" id="LN700">700</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="701"><td class="num" id="LN701">701</td><td class="line"> gtk_window_set_title (<span class='macro'>GTK_WINDOW (dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((dialog)), ((gtk_window_get_type ()))))))</span></span>, <span class='macro'>_(<span class='string_literal'>"Delete Profile"</span>)<span class='macro_popup'>gettext ("Delete Profile")</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="702"><td class="num" id="LN702">702</td><td class="line"> gtk_window_set_resizable (<span class='macro'>GTK_WINDOW (dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((dialog)), ((gtk_window_get_type ()))))))</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="703"><td class="num" id="LN703">703</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="704"><td class="num" id="LN704">704</td><td class="line"> <span class='comment'>/* Transfer refcount of |selected_profile|, so no unref below */</span></td></tr>
+<tr class="codeline" data-linenumber="705"><td class="num" id="LN705">705</td><td class="line"> g_object_set_data_full (<span class='macro'>G_OBJECT (dialog)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((dialog)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, <span class='string_literal'>"profile"</span>, selected_profile, g_object_unref);</td></tr>
+<tr class="codeline" data-linenumber="706"><td class="num" id="LN706">706</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="707"><td class="num" id="LN707">707</td><td class="line"> <span class='macro'>g_signal_connect (dialog, <span class='string_literal'>"response"</span>,<span class='macro_popup'>g_signal_connect_data ((dialog), ("response"), (((GCallback) (<br>profile_list_delete_confirm_response_cb))), (((void*)0)), ((void<br>*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="708"><td class="num" id="LN708">708</td><td class="line"> <span class='macro'>G_CALLBACK (profile_list_delete_confirm_response_cb),<span class='macro_popup'>g_signal_connect_data ((dialog), ("response"), (((GCallback) (<br>profile_list_delete_confirm_response_cb))), (((void*)0)), ((void<br>*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="709"><td class="num" id="LN709">709</td><td class="line"> <span class='macro'>NULL)<span class='macro_popup'>g_signal_connect_data ((dialog), ("response"), (((GCallback) (<br>profile_list_delete_confirm_response_cb))), (((void*)0)), ((void<br>*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="710"><td class="num" id="LN710">710</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="711"><td class="num" id="LN711">711</td><td class="line"> gtk_window_present (<span class='macro'>GTK_WINDOW (dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((dialog)), ((gtk_window_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="712"><td class="num" id="LN712">712</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="713"><td class="num" id="LN713">713</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="714"><td class="num" id="LN714">714</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="715"><td class="num" id="LN715">715</td><td class="line">profile_list_new_button_clicked_cb (GtkWidget *button,</td></tr>
+<tr class="codeline" data-linenumber="716"><td class="num" id="LN716">716</td><td class="line"> gpointer data)</td></tr>
+<tr class="codeline" data-linenumber="717"><td class="num" id="LN717">717</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="718"><td class="num" id="LN718">718</td><td class="line"> TerminalApp *app;</td></tr>
+<tr class="codeline" data-linenumber="719"><td class="num" id="LN719">719</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="720"><td class="num" id="LN720">720</td><td class="line"> app = terminal_app_get ();</td></tr>
+<tr class="codeline" data-linenumber="721"><td class="num" id="LN721">721</td><td class="line"> terminal_app_new_profile (app, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>GTK_WINDOW (app-&gt;manage_profiles_dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;manage_profiles_dialog)), ((gtk_window_get_type (<br>)))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="722"><td class="num" id="LN722">722</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="723"><td class="num" id="LN723">723</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="724"><td class="num" id="LN724">724</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="725"><td class="num" id="LN725">725</td><td class="line">profile_list_edit_button_clicked_cb (GtkWidget *button,</td></tr>
+<tr class="codeline" data-linenumber="726"><td class="num" id="LN726">726</td><td class="line"> GtkWidget *widget)</td></tr>
+<tr class="codeline" data-linenumber="727"><td class="num" id="LN727">727</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="728"><td class="num" id="LN728">728</td><td class="line"> GtkTreeView *tree_view = <span class='macro'>GTK_TREE_VIEW (widget)<span class='macro_popup'>((((GtkTreeView*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((widget)), ((gtk_tree_view_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="729"><td class="num" id="LN729">729</td><td class="line"> GtkTreeSelection *selection;</td></tr>
+<tr class="codeline" data-linenumber="730"><td class="num" id="LN730">730</td><td class="line"> GtkTreeIter iter;</td></tr>
+<tr class="codeline" data-linenumber="731"><td class="num" id="LN731">731</td><td class="line"> GtkTreeModel *model;</td></tr>
+<tr class="codeline" data-linenumber="732"><td class="num" id="LN732">732</td><td class="line"> TerminalProfile *selected_profile;</td></tr>
+<tr class="codeline" data-linenumber="733"><td class="num" id="LN733">733</td><td class="line"> TerminalApp *app;</td></tr>
+<tr class="codeline" data-linenumber="734"><td class="num" id="LN734">734</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="735"><td class="num" id="LN735">735</td><td class="line"> app = terminal_app_get ();</td></tr>
+<tr class="codeline" data-linenumber="736"><td class="num" id="LN736">736</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="737"><td class="num" id="LN737">737</td><td class="line"> model = gtk_tree_view_get_model (tree_view);</td></tr>
+<tr class="codeline" data-linenumber="738"><td class="num" id="LN738">738</td><td class="line"> selection = gtk_tree_view_get_selection (tree_view);</td></tr>
+<tr class="codeline" data-linenumber="739"><td class="num" id="LN739">739</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="740"><td class="num" id="LN740">740</td><td class="line"> <span class='keyword'>if</span> (!gtk_tree_selection_get_selected (selection, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, &amp;iter))</td></tr>
+<tr class="codeline" data-linenumber="741"><td class="num" id="LN741">741</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="742"><td class="num" id="LN742">742</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="743"><td class="num" id="LN743">743</td><td class="line"> gtk_tree_model_get (model, &amp;iter, (<span class='keyword'>int</span>) COL_PROFILE, &amp;selected_profile, (<span class='keyword'>int</span>) -1);</td></tr>
+<tr class="codeline" data-linenumber="744"><td class="num" id="LN744">744</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="745"><td class="num" id="LN745">745</td><td class="line"> terminal_app_edit_profile (app, selected_profile,</td></tr>
+<tr class="codeline" data-linenumber="746"><td class="num" id="LN746">746</td><td class="line"> <span class='macro'>GTK_WINDOW (app-&gt;manage_profiles_dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;manage_profiles_dialog)), ((gtk_window_get_type (<br>)))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="747"><td class="num" id="LN747">747</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="748"><td class="num" id="LN748">748</td><td class="line"> g_object_unref (selected_profile);</td></tr>
+<tr class="codeline" data-linenumber="749"><td class="num" id="LN749">749</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="750"><td class="num" id="LN750">750</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="751"><td class="num" id="LN751">751</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="752"><td class="num" id="LN752">752</td><td class="line">profile_list_row_activated_cb (GtkTreeView *tree_view,</td></tr>
+<tr class="codeline" data-linenumber="753"><td class="num" id="LN753">753</td><td class="line"> GtkTreePath *path,</td></tr>
+<tr class="codeline" data-linenumber="754"><td class="num" id="LN754">754</td><td class="line"> GtkTreeViewColumn *column,</td></tr>
+<tr class="codeline" data-linenumber="755"><td class="num" id="LN755">755</td><td class="line"> gpointer data)</td></tr>
+<tr class="codeline" data-linenumber="756"><td class="num" id="LN756">756</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="757"><td class="num" id="LN757">757</td><td class="line"> GtkTreeIter iter;</td></tr>
+<tr class="codeline" data-linenumber="758"><td class="num" id="LN758">758</td><td class="line"> GtkTreeModel *model;</td></tr>
+<tr class="codeline" data-linenumber="759"><td class="num" id="LN759">759</td><td class="line"> TerminalProfile *selected_profile;</td></tr>
+<tr class="codeline" data-linenumber="760"><td class="num" id="LN760">760</td><td class="line"> TerminalApp *app;</td></tr>
+<tr class="codeline" data-linenumber="761"><td class="num" id="LN761">761</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="762"><td class="num" id="LN762">762</td><td class="line"> app = terminal_app_get ();</td></tr>
+<tr class="codeline" data-linenumber="763"><td class="num" id="LN763">763</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="764"><td class="num" id="LN764">764</td><td class="line"> model = gtk_tree_view_get_model (tree_view);</td></tr>
+<tr class="codeline" data-linenumber="765"><td class="num" id="LN765">765</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="766"><td class="num" id="LN766">766</td><td class="line"> <span class='keyword'>if</span> (!gtk_tree_model_get_iter (model, &amp;iter, path))</td></tr>
+<tr class="codeline" data-linenumber="767"><td class="num" id="LN767">767</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="768"><td class="num" id="LN768">768</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="769"><td class="num" id="LN769">769</td><td class="line"> gtk_tree_model_get (model, &amp;iter, (<span class='keyword'>int</span>) COL_PROFILE, &amp;selected_profile, (<span class='keyword'>int</span>) -1);</td></tr>
+<tr class="codeline" data-linenumber="770"><td class="num" id="LN770">770</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="771"><td class="num" id="LN771">771</td><td class="line"> terminal_app_edit_profile (app, selected_profile,</td></tr>
+<tr class="codeline" data-linenumber="772"><td class="num" id="LN772">772</td><td class="line"> <span class='macro'>GTK_WINDOW (app-&gt;manage_profiles_dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;manage_profiles_dialog)), ((gtk_window_get_type (<br>)))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="773"><td class="num" id="LN773">773</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="774"><td class="num" id="LN774">774</td><td class="line"> g_object_unref (selected_profile);</td></tr>
+<tr class="codeline" data-linenumber="775"><td class="num" id="LN775">775</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="776"><td class="num" id="LN776">776</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="777"><td class="num" id="LN777">777</td><td class="line"><span class='keyword'>static</span> GList*</td></tr>
+<tr class="codeline" data-linenumber="778"><td class="num" id="LN778">778</td><td class="line">find_profile_link (GList *profiles,</td></tr>
+<tr class="codeline" data-linenumber="779"><td class="num" id="LN779">779</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *name)</td></tr>
+<tr class="codeline" data-linenumber="780"><td class="num" id="LN780">780</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="781"><td class="num" id="LN781">781</td><td class="line"> GList *l;</td></tr>
+<tr class="codeline" data-linenumber="782"><td class="num" id="LN782">782</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="783"><td class="num" id="LN783">783</td><td class="line"> <span class='keyword'>for</span> (l = profiles; l != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; l = l-&gt;next)</td></tr>
+<tr class="codeline" data-linenumber="784"><td class="num" id="LN784">784</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="785"><td class="num" id="LN785">785</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *profile_name;</td></tr>
+<tr class="codeline" data-linenumber="786"><td class="num" id="LN786">786</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="787"><td class="num" id="LN787">787</td><td class="line"> profile_name = terminal_profile_get_property_string (<span class='macro'>TERMINAL_PROFILE (l-&gt;data)<span class='macro_popup'>((((TerminalProfile*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((l-&gt;data)), ((terminal_profile_get_type ()))))))</span></span>, <span class='macro'>TERMINAL_PROFILE_NAME<span class='macro_popup'>"name"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="788"><td class="num" id="LN788">788</td><td class="line"> <span class='keyword'>if</span> (profile_name &amp;&amp; strcmp (profile_name, name) == 0)</td></tr>
+<tr class="codeline" data-linenumber="789"><td class="num" id="LN789">789</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="790"><td class="num" id="LN790">790</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="791"><td class="num" id="LN791">791</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="792"><td class="num" id="LN792">792</td><td class="line"> <span class='keyword'>return</span> l;</td></tr>
+<tr class="codeline" data-linenumber="793"><td class="num" id="LN793">793</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="794"><td class="num" id="LN794">794</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="795"><td class="num" id="LN795">795</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="796"><td class="num" id="LN796">796</td><td class="line">terminal_app_profile_list_notify_cb (GSettings *settings,</td></tr>
+<tr class="codeline" data-linenumber="797"><td class="num" id="LN797">797</td><td class="line"> <span class='keyword'>const</span> gchar *key,</td></tr>
+<tr class="codeline" data-linenumber="798"><td class="num" id="LN798">798</td><td class="line"> gpointer user_data)</td></tr>
+<tr class="codeline" data-linenumber="799"><td class="num" id="LN799">799</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="800"><td class="num" id="LN800">800</td><td class="line"> TerminalApp *app = <span class='macro'>TERMINAL_APP (user_data)<span class='macro_popup'>((((TerminalApp*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((user_data)), ((terminal_app_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="801"><td class="num" id="LN801">801</td><td class="line"> GObject *object = <span class='macro'>G_OBJECT (app)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="802"><td class="num" id="LN802">802</td><td class="line"> GVariant *val;</td></tr>
+<tr class="codeline" data-linenumber="803"><td class="num" id="LN803">803</td><td class="line"> <span class='keyword'>const</span> gchar **value_list;</td></tr>
+<tr class="codeline" data-linenumber="804"><td class="num" id="LN804">804</td><td class="line"> <span class='keyword'>int</span> i;</td></tr>
+<tr class="codeline" data-linenumber="805"><td class="num" id="LN805">805</td><td class="line"> GList *profiles_to_delete, *l;</td></tr>
+<tr class="codeline" data-linenumber="806"><td class="num" id="LN806">806</td><td class="line"> gboolean need_new_default;</td></tr>
+<tr class="codeline" data-linenumber="807"><td class="num" id="LN807">807</td><td class="line"> TerminalProfile *fallback;</td></tr>
+<tr class="codeline" data-linenumber="808"><td class="num" id="LN808">808</td><td class="line"> guint count;</td></tr>
+<tr class="codeline" data-linenumber="809"><td class="num" id="LN809">809</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="810"><td class="num" id="LN810">810</td><td class="line"> g_object_freeze_notify (object);</td></tr>
+<tr class="codeline" data-linenumber="811"><td class="num" id="LN811">811</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="812"><td class="num" id="LN812">812</td><td class="line"> profiles_to_delete = terminal_app_get_profile_list (app);</td></tr>
+<tr class="codeline" data-linenumber="813"><td class="num" id="LN813">813</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="814"><td class="num" id="LN814">814</td><td class="line"> val = g_settings_get_value (settings, key);</td></tr>
+<tr class="codeline" data-linenumber="815"><td class="num" id="LN815">815</td><td class="line"> <span class='keyword'>if</span> (val == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span> ||</td></tr>
+<tr class="codeline" data-linenumber="816"><td class="num" id="LN816">816</td><td class="line"> (!g_variant_is_of_type (val, <span class="mrange"><span class="mrange"><span class='macro'>G_VARIANT_TYPE_STRING_ARRAY<span class='macro_popup'>((const GVariantType *) "as")</span></span></span></span>) &amp;&amp;</td></tr>
+<tr><td class="num"></td><td class="line"><div id="EndPath" class="msg msgEvent" style="margin-left:46ex; max-width:31em">Casting a non-structure type to a structure type and accessing a field can lead to memory access errors or data corruption</div></td></tr>
+<tr class="codeline" data-linenumber="817"><td class="num" id="LN817">817</td><td class="line"> !g_variant_is_of_type (val, <span class='macro'>G_VARIANT_TYPE_STRING<span class='macro_popup'>((const GVariantType *) "s")</span></span>)))</td></tr>
+<tr class="codeline" data-linenumber="818"><td class="num" id="LN818">818</td><td class="line"> <span class='keyword'>goto</span> ensure_one_profile;</td></tr>
+<tr class="codeline" data-linenumber="819"><td class="num" id="LN819">819</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="820"><td class="num" id="LN820">820</td><td class="line"> value_list = g_variant_get_strv (val, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="821"><td class="num" id="LN821">821</td><td class="line"> <span class='keyword'>if</span> (value_list == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="822"><td class="num" id="LN822">822</td><td class="line"> <span class='keyword'>goto</span> ensure_one_profile;</td></tr>
+<tr class="codeline" data-linenumber="823"><td class="num" id="LN823">823</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="824"><td class="num" id="LN824">824</td><td class="line"> <span class='comment'>/* Add any new ones */</span></td></tr>
+<tr class="codeline" data-linenumber="825"><td class="num" id="LN825">825</td><td class="line"> <span class='keyword'>for</span> (i = 0; value_list[i] != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; ++i)</td></tr>
+<tr class="codeline" data-linenumber="826"><td class="num" id="LN826">826</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="827"><td class="num" id="LN827">827</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *profile_name = value_list[i];</td></tr>
+<tr class="codeline" data-linenumber="828"><td class="num" id="LN828">828</td><td class="line"> GList *link;</td></tr>
+<tr class="codeline" data-linenumber="829"><td class="num" id="LN829">829</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="830"><td class="num" id="LN830">830</td><td class="line"> <span class='keyword'>if</span> (!profile_name)</td></tr>
+<tr class="codeline" data-linenumber="831"><td class="num" id="LN831">831</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="832"><td class="num" id="LN832">832</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="833"><td class="num" id="LN833">833</td><td class="line"> link = find_profile_link (profiles_to_delete, profile_name);</td></tr>
+<tr class="codeline" data-linenumber="834"><td class="num" id="LN834">834</td><td class="line"> <span class='keyword'>if</span> (link)</td></tr>
+<tr class="codeline" data-linenumber="835"><td class="num" id="LN835">835</td><td class="line"> <span class='comment'>/* make profiles_to_delete point to profiles we didn't find in the list */</span></td></tr>
+<tr class="codeline" data-linenumber="836"><td class="num" id="LN836">836</td><td class="line"> profiles_to_delete = g_list_delete_link (profiles_to_delete, link);</td></tr>
+<tr class="codeline" data-linenumber="837"><td class="num" id="LN837">837</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="838"><td class="num" id="LN838">838</td><td class="line"> terminal_app_create_profile (app, profile_name);</td></tr>
+<tr class="codeline" data-linenumber="839"><td class="num" id="LN839">839</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="840"><td class="num" id="LN840">840</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="841"><td class="num" id="LN841">841</td><td class="line"> g_free (value_list);</td></tr>
+<tr class="codeline" data-linenumber="842"><td class="num" id="LN842">842</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="843"><td class="num" id="LN843">843</td><td class="line">ensure_one_profile:</td></tr>
+<tr class="codeline" data-linenumber="844"><td class="num" id="LN844">844</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="845"><td class="num" id="LN845">845</td><td class="line"> <span class='keyword'>if</span> (val != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="846"><td class="num" id="LN846">846</td><td class="line"> g_variant_unref (val);</td></tr>
+<tr class="codeline" data-linenumber="847"><td class="num" id="LN847">847</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="848"><td class="num" id="LN848">848</td><td class="line"> fallback = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="849"><td class="num" id="LN849">849</td><td class="line"> count = g_hash_table_size (app-&gt;profiles);</td></tr>
+<tr class="codeline" data-linenumber="850"><td class="num" id="LN850">850</td><td class="line"> <span class='keyword'>if</span> (count == 0 || count &lt;= g_list_length (profiles_to_delete))</td></tr>
+<tr class="codeline" data-linenumber="851"><td class="num" id="LN851">851</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="852"><td class="num" id="LN852">852</td><td class="line"> <span class='comment'>/* We are going to run out, so create the fallback</span></td></tr>
+<tr class="codeline" data-linenumber="853"><td class="num" id="LN853">853</td><td class="line"> <span class='comment'>* to be sure we always have one. Must be done</span></td></tr>
+<tr class="codeline" data-linenumber="854"><td class="num" id="LN854">854</td><td class="line"> <span class='comment'>* here before we emit "forgotten" signals so that</span></td></tr>
+<tr class="codeline" data-linenumber="855"><td class="num" id="LN855">855</td><td class="line"> <span class='comment'>* screens have a profile to fall back to.</span></td></tr>
+<tr class="codeline" data-linenumber="856"><td class="num" id="LN856">856</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="857"><td class="num" id="LN857">857</td><td class="line"> <span class='comment'>* If the profile with the FALLBACK_ID already exists,</span></td></tr>
+<tr class="codeline" data-linenumber="858"><td class="num" id="LN858">858</td><td class="line"> <span class='comment'>* we aren't allowed to delete it, unless at least one</span></td></tr>
+<tr class="codeline" data-linenumber="859"><td class="num" id="LN859">859</td><td class="line"> <span class='comment'>* other profile will still exist. And if you delete</span></td></tr>
+<tr class="codeline" data-linenumber="860"><td class="num" id="LN860">860</td><td class="line"> <span class='comment'>* all profiles, the FALLBACK_ID profile returns as</span></td></tr>
+<tr class="codeline" data-linenumber="861"><td class="num" id="LN861">861</td><td class="line"> <span class='comment'>* the living dead.</span></td></tr>
+<tr class="codeline" data-linenumber="862"><td class="num" id="LN862">862</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="863"><td class="num" id="LN863">863</td><td class="line"> fallback = terminal_app_get_profile_by_name (app, <span class='macro'>FALLBACK_PROFILE_ID<span class='macro_popup'>"default"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="864"><td class="num" id="LN864">864</td><td class="line"> <span class='keyword'>if</span> (fallback == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="865"><td class="num" id="LN865">865</td><td class="line"> fallback = terminal_app_create_profile (app, <span class='macro'>FALLBACK_PROFILE_ID<span class='macro_popup'>"default"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="866"><td class="num" id="LN866">866</td><td class="line"> <span class='macro'>g_assert (fallback != NULL)<span class='macro_popup'>do { if (fallback != ((void*)0)) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-app.c", 866, ((const char*) (__func__<br>)), "fallback != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="867"><td class="num" id="LN867">867</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="868"><td class="num" id="LN868">868</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="869"><td class="num" id="LN869">869</td><td class="line"> <span class='comment'>/* Forget no-longer-existing profiles */</span></td></tr>
+<tr class="codeline" data-linenumber="870"><td class="num" id="LN870">870</td><td class="line"> need_new_default = <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="871"><td class="num" id="LN871">871</td><td class="line"> <span class='keyword'>for</span> (l = profiles_to_delete; l != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; l = l-&gt;next)</td></tr>
+<tr class="codeline" data-linenumber="872"><td class="num" id="LN872">872</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="873"><td class="num" id="LN873">873</td><td class="line"> TerminalProfile *profile = <span class='macro'>TERMINAL_PROFILE (l-&gt;data)<span class='macro_popup'>((((TerminalProfile*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((l-&gt;data)), ((terminal_profile_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="874"><td class="num" id="LN874">874</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *name;</td></tr>
+<tr class="codeline" data-linenumber="875"><td class="num" id="LN875">875</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="876"><td class="num" id="LN876">876</td><td class="line"> name = terminal_profile_get_property_string (profile, <span class='macro'>TERMINAL_PROFILE_NAME<span class='macro_popup'>"name"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="877"><td class="num" id="LN877">877</td><td class="line"> <span class='keyword'>if</span> (strcmp (name, <span class='macro'>FALLBACK_PROFILE_ID<span class='macro_popup'>"default"</span></span>) == 0)</td></tr>
+<tr class="codeline" data-linenumber="878"><td class="num" id="LN878">878</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="879"><td class="num" id="LN879">879</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="880"><td class="num" id="LN880">880</td><td class="line"> <span class='keyword'>if</span> (profile == app-&gt;default_profile)</td></tr>
+<tr class="codeline" data-linenumber="881"><td class="num" id="LN881">881</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="882"><td class="num" id="LN882">882</td><td class="line"> app-&gt;default_profile = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="883"><td class="num" id="LN883">883</td><td class="line"> need_new_default = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="884"><td class="num" id="LN884">884</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="885"><td class="num" id="LN885">885</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="886"><td class="num" id="LN886">886</td><td class="line"> _terminal_profile_forget (profile);</td></tr>
+<tr class="codeline" data-linenumber="887"><td class="num" id="LN887">887</td><td class="line"> g_hash_table_remove (app-&gt;profiles, name);</td></tr>
+<tr class="codeline" data-linenumber="888"><td class="num" id="LN888">888</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="889"><td class="num" id="LN889">889</td><td class="line"> <span class='comment'>/* |profile| possibly isn't dead yet since the profiles dialogue's tree model holds a ref too... */</span></td></tr>
+<tr class="codeline" data-linenumber="890"><td class="num" id="LN890">890</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="891"><td class="num" id="LN891">891</td><td class="line"> g_list_free (profiles_to_delete);</td></tr>
+<tr class="codeline" data-linenumber="892"><td class="num" id="LN892">892</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="893"><td class="num" id="LN893">893</td><td class="line"> <span class='keyword'>if</span> (need_new_default)</td></tr>
+<tr class="codeline" data-linenumber="894"><td class="num" id="LN894">894</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="895"><td class="num" id="LN895">895</td><td class="line"> TerminalProfile *new_default;</td></tr>
+<tr class="codeline" data-linenumber="896"><td class="num" id="LN896">896</td><td class="line"> TerminalProfile **new_default_ptr = &amp;new_default;</td></tr>
+<tr class="codeline" data-linenumber="897"><td class="num" id="LN897">897</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="898"><td class="num" id="LN898">898</td><td class="line"> new_default = terminal_app_get_profile_by_name (app, <span class='macro'>FALLBACK_PROFILE_ID<span class='macro_popup'>"default"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="899"><td class="num" id="LN899">899</td><td class="line"> <span class='keyword'>if</span> (new_default == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="900"><td class="num" id="LN900">900</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="901"><td class="num" id="LN901">901</td><td class="line"> GHashTableIter iter;</td></tr>
+<tr class="codeline" data-linenumber="902"><td class="num" id="LN902">902</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="903"><td class="num" id="LN903">903</td><td class="line"> g_hash_table_iter_init (&amp;iter, app-&gt;profiles);</td></tr>
+<tr class="codeline" data-linenumber="904"><td class="num" id="LN904">904</td><td class="line"> <span class='keyword'>if</span> (!g_hash_table_iter_next (&amp;iter, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, (gpointer *) new_default_ptr))</td></tr>
+<tr class="codeline" data-linenumber="905"><td class="num" id="LN905">905</td><td class="line"> <span class='comment'>/* shouldn't really happen ever, but just to be safe */</span></td></tr>
+<tr class="codeline" data-linenumber="906"><td class="num" id="LN906">906</td><td class="line"> new_default = terminal_app_create_profile (app, <span class='macro'>FALLBACK_PROFILE_ID<span class='macro_popup'>"default"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="907"><td class="num" id="LN907">907</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="908"><td class="num" id="LN908">908</td><td class="line"> <span class='macro'>g_assert (new_default != NULL)<span class='macro_popup'>do { if (new_default != ((void*)0)) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-app.c", 908, ((const char*) (__func__<br>)), "new_default != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="909"><td class="num" id="LN909">909</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="910"><td class="num" id="LN910">910</td><td class="line"> app-&gt;default_profile = new_default;</td></tr>
+<tr class="codeline" data-linenumber="911"><td class="num" id="LN911">911</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="912"><td class="num" id="LN912">912</td><td class="line"> g_object_notify (object, <span class='macro'>TERMINAL_APP_DEFAULT_PROFILE<span class='macro_popup'>"default-profile"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="913"><td class="num" id="LN913">913</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="914"><td class="num" id="LN914">914</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="915"><td class="num" id="LN915">915</td><td class="line"> <span class='macro'>g_assert (g_hash_table_size (app-&gt;profiles) &gt; 0)<span class='macro_popup'>do { if (g_hash_table_size (app-&gt;profiles) &gt; 0) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-app.c", 915, ((const char*) (__func__<br>)), "g_hash_table_size (app-&gt;profiles) &gt; 0"); } while (<br>0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="916"><td class="num" id="LN916">916</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="917"><td class="num" id="LN917">917</td><td class="line"> g_signal_emit (app, signals[PROFILE_LIST_CHANGED], 0);</td></tr>
+<tr class="codeline" data-linenumber="918"><td class="num" id="LN918">918</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="919"><td class="num" id="LN919">919</td><td class="line"> g_object_thaw_notify (object);</td></tr>
+<tr class="codeline" data-linenumber="920"><td class="num" id="LN920">920</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="921"><td class="num" id="LN921">921</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="922"><td class="num" id="LN922">922</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="923"><td class="num" id="LN923">923</td><td class="line">terminal_app_default_profile_notify_cb (GSettings *settings,</td></tr>
+<tr class="codeline" data-linenumber="924"><td class="num" id="LN924">924</td><td class="line"> <span class='keyword'>const</span> gchar *key,</td></tr>
+<tr class="codeline" data-linenumber="925"><td class="num" id="LN925">925</td><td class="line"> gpointer user_data)</td></tr>
+<tr class="codeline" data-linenumber="926"><td class="num" id="LN926">926</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="927"><td class="num" id="LN927">927</td><td class="line"> TerminalApp *app = <span class='macro'>TERMINAL_APP (user_data)<span class='macro_popup'>((((TerminalApp*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((user_data)), ((terminal_app_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="928"><td class="num" id="LN928">928</td><td class="line"> GVariant *val;</td></tr>
+<tr class="codeline" data-linenumber="929"><td class="num" id="LN929">929</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *name = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="930"><td class="num" id="LN930">930</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="931"><td class="num" id="LN931">931</td><td class="line"> app-&gt;default_profile_locked = !g_settings_is_writable (settings, key);</td></tr>
+<tr class="codeline" data-linenumber="932"><td class="num" id="LN932">932</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="933"><td class="num" id="LN933">933</td><td class="line"> val = g_settings_get_value (settings, key);</td></tr>
+<tr class="codeline" data-linenumber="934"><td class="num" id="LN934">934</td><td class="line"> <span class='keyword'>if</span> (val != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span> &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="935"><td class="num" id="LN935">935</td><td class="line"> g_variant_is_of_type (val, <span class='macro'>G_VARIANT_TYPE_STRING<span class='macro_popup'>((const GVariantType *) "s")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="936"><td class="num" id="LN936">936</td><td class="line"> name = g_variant_get_string (val, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="937"><td class="num" id="LN937">937</td><td class="line"> <span class='keyword'>if</span> (!name || !name[0])</td></tr>
+<tr class="codeline" data-linenumber="938"><td class="num" id="LN938">938</td><td class="line"> name = <span class='macro'>FALLBACK_PROFILE_ID<span class='macro_popup'>"default"</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="939"><td class="num" id="LN939">939</td><td class="line"> <span class='macro'>g_assert (name != NULL)<span class='macro_popup'>do { if (name != ((void*)0)) ; else g_assertion_message_expr (<br>((gchar*) 0), "terminal-app.c", 939, ((const char*) (__func__<br>)), "name != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="940"><td class="num" id="LN940">940</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="941"><td class="num" id="LN941">941</td><td class="line"> g_free (app-&gt;default_profile_id);</td></tr>
+<tr class="codeline" data-linenumber="942"><td class="num" id="LN942">942</td><td class="line"> app-&gt;default_profile_id = <span class='macro'>g_strdup (name)<span class='macro_popup'>g_strdup_inline (name)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="943"><td class="num" id="LN943">943</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="944"><td class="num" id="LN944">944</td><td class="line"> app-&gt;default_profile = terminal_app_get_profile_by_name (app, name);</td></tr>
+<tr class="codeline" data-linenumber="945"><td class="num" id="LN945">945</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="946"><td class="num" id="LN946">946</td><td class="line"> g_object_notify (<span class='macro'>G_OBJECT (app)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, <span class='macro'>TERMINAL_APP_DEFAULT_PROFILE<span class='macro_popup'>"default-profile"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="947"><td class="num" id="LN947">947</td><td class="line"> g_variant_unref (val);</td></tr>
+<tr class="codeline" data-linenumber="948"><td class="num" id="LN948">948</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="949"><td class="num" id="LN949">949</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="950"><td class="num" id="LN950">950</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>int</span></td></tr>
+<tr class="codeline" data-linenumber="951"><td class="num" id="LN951">951</td><td class="line">compare_encodings (TerminalEncoding *a,</td></tr>
+<tr class="codeline" data-linenumber="952"><td class="num" id="LN952">952</td><td class="line"> TerminalEncoding *b)</td></tr>
+<tr class="codeline" data-linenumber="953"><td class="num" id="LN953">953</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="954"><td class="num" id="LN954">954</td><td class="line"> <span class='keyword'>return</span> g_utf8_collate (a-&gt;name, b-&gt;name);</td></tr>
+<tr class="codeline" data-linenumber="955"><td class="num" id="LN955">955</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="956"><td class="num" id="LN956">956</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="957"><td class="num" id="LN957">957</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="958"><td class="num" id="LN958">958</td><td class="line">encoding_mark_active (gpointer key,</td></tr>
+<tr class="codeline" data-linenumber="959"><td class="num" id="LN959">959</td><td class="line"> gpointer value,</td></tr>
+<tr class="codeline" data-linenumber="960"><td class="num" id="LN960">960</td><td class="line"> gpointer data)</td></tr>
+<tr class="codeline" data-linenumber="961"><td class="num" id="LN961">961</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="962"><td class="num" id="LN962">962</td><td class="line"> TerminalEncoding *encoding = (TerminalEncoding *) value;</td></tr>
+<tr class="codeline" data-linenumber="963"><td class="num" id="LN963">963</td><td class="line"> guint active = <span class='macro'>GPOINTER_TO_UINT (data)<span class='macro_popup'>((guint) (gulong) (data))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="964"><td class="num" id="LN964">964</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="965"><td class="num" id="LN965">965</td><td class="line"> encoding-&gt;is_active = active;</td></tr>
+<tr class="codeline" data-linenumber="966"><td class="num" id="LN966">966</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="967"><td class="num" id="LN967">967</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="968"><td class="num" id="LN968">968</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="969"><td class="num" id="LN969">969</td><td class="line">terminal_app_encoding_list_notify_cb (GSettings *settings,</td></tr>
+<tr class="codeline" data-linenumber="970"><td class="num" id="LN970">970</td><td class="line"> <span class='keyword'>const</span> gchar *key,</td></tr>
+<tr class="codeline" data-linenumber="971"><td class="num" id="LN971">971</td><td class="line"> gpointer user_data)</td></tr>
+<tr class="codeline" data-linenumber="972"><td class="num" id="LN972">972</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="973"><td class="num" id="LN973">973</td><td class="line"> TerminalApp *app = <span class='macro'>TERMINAL_APP (user_data)<span class='macro_popup'>((((TerminalApp*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((user_data)), ((terminal_app_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="974"><td class="num" id="LN974">974</td><td class="line"> GVariant *val;</td></tr>
+<tr class="codeline" data-linenumber="975"><td class="num" id="LN975">975</td><td class="line"> <span class='keyword'>const</span> gchar **strings;</td></tr>
+<tr class="codeline" data-linenumber="976"><td class="num" id="LN976">976</td><td class="line"> <span class='keyword'>int</span> i;</td></tr>
+<tr class="codeline" data-linenumber="977"><td class="num" id="LN977">977</td><td class="line"> TerminalEncoding *encoding;</td></tr>
+<tr class="codeline" data-linenumber="978"><td class="num" id="LN978">978</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *charset;</td></tr>
+<tr class="codeline" data-linenumber="979"><td class="num" id="LN979">979</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="980"><td class="num" id="LN980">980</td><td class="line"> app-&gt;encodings_locked = !g_settings_is_writable (settings, key);</td></tr>
+<tr class="codeline" data-linenumber="981"><td class="num" id="LN981">981</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="982"><td class="num" id="LN982">982</td><td class="line"> <span class='comment'>/* Mark all as non-active, then re-enable the active ones */</span></td></tr>
+<tr class="codeline" data-linenumber="983"><td class="num" id="LN983">983</td><td class="line"> g_hash_table_foreach (app-&gt;encodings, (GHFunc) encoding_mark_active, <span class='macro'>GUINT_TO_POINTER (FALSE)<span class='macro_popup'>((gpointer) (gulong) ((0)))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="984"><td class="num" id="LN984">984</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="985"><td class="num" id="LN985">985</td><td class="line"> <span class='comment'>/* First add the locale's charset */</span></td></tr>
+<tr class="codeline" data-linenumber="986"><td class="num" id="LN986">986</td><td class="line"> encoding = g_hash_table_lookup (app-&gt;encodings, <span class='string_literal'>"current"</span>);</td></tr>
+<tr class="codeline" data-linenumber="987"><td class="num" id="LN987">987</td><td class="line"> <span class='macro'>g_assert (encoding)<span class='macro_popup'>do { if (encoding) ; else g_assertion_message_expr (((gchar*)<br> 0), "terminal-app.c", 987, ((const char*) (__func__)), "encoding"<br>); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="988"><td class="num" id="LN988">988</td><td class="line"> <span class='keyword'>if</span> (terminal_encoding_is_valid (encoding))</td></tr>
+<tr class="codeline" data-linenumber="989"><td class="num" id="LN989">989</td><td class="line"> encoding-&gt;is_active = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="990"><td class="num" id="LN990">990</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="991"><td class="num" id="LN991">991</td><td class="line"> <span class='comment'>/* Also always make UTF-8 available */</span></td></tr>
+<tr class="codeline" data-linenumber="992"><td class="num" id="LN992">992</td><td class="line"> encoding = g_hash_table_lookup (app-&gt;encodings, <span class='string_literal'>"UTF-8"</span>);</td></tr>
+<tr class="codeline" data-linenumber="993"><td class="num" id="LN993">993</td><td class="line"> <span class='macro'>g_assert (encoding)<span class='macro_popup'>do { if (encoding) ; else g_assertion_message_expr (((gchar*)<br> 0), "terminal-app.c", 993, ((const char*) (__func__)), "encoding"<br>); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="994"><td class="num" id="LN994">994</td><td class="line"> <span class='keyword'>if</span> (terminal_encoding_is_valid (encoding))</td></tr>
+<tr class="codeline" data-linenumber="995"><td class="num" id="LN995">995</td><td class="line"> encoding-&gt;is_active = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="996"><td class="num" id="LN996">996</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="997"><td class="num" id="LN997">997</td><td class="line"> val = g_settings_get_value (settings, key);</td></tr>
+<tr class="codeline" data-linenumber="998"><td class="num" id="LN998">998</td><td class="line"> <span class='keyword'>if</span> (val != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span> &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="999"><td class="num" id="LN999">999</td><td class="line"> g_variant_is_of_type (val, <span class='macro'>G_VARIANT_TYPE_STRING_ARRAY<span class='macro_popup'>((const GVariantType *) "as")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="1000"><td class="num" id="LN1000">1000</td><td class="line"> strings = g_variant_get_strv (val, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1001"><td class="num" id="LN1001">1001</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="1002"><td class="num" id="LN1002">1002</td><td class="line"> strings = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1003"><td class="num" id="LN1003">1003</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1004"><td class="num" id="LN1004">1004</td><td class="line"> <span class='keyword'>if</span> (strings != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1005"><td class="num" id="LN1005">1005</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1006"><td class="num" id="LN1006">1006</td><td class="line"> <span class='keyword'>for</span> (i = 0; strings[i] != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; ++i)</td></tr>
+<tr class="codeline" data-linenumber="1007"><td class="num" id="LN1007">1007</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1008"><td class="num" id="LN1008">1008</td><td class="line"> charset = strings[i];</td></tr>
+<tr class="codeline" data-linenumber="1009"><td class="num" id="LN1009">1009</td><td class="line"> <span class='keyword'>if</span> (!charset)</td></tr>
+<tr class="codeline" data-linenumber="1010"><td class="num" id="LN1010">1010</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="1011"><td class="num" id="LN1011">1011</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1012"><td class="num" id="LN1012">1012</td><td class="line"> encoding = terminal_app_ensure_encoding (app, charset);</td></tr>
+<tr class="codeline" data-linenumber="1013"><td class="num" id="LN1013">1013</td><td class="line"> <span class='keyword'>if</span> (!terminal_encoding_is_valid (encoding))</td></tr>
+<tr class="codeline" data-linenumber="1014"><td class="num" id="LN1014">1014</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="1015"><td class="num" id="LN1015">1015</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1016"><td class="num" id="LN1016">1016</td><td class="line"> encoding-&gt;is_active = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1017"><td class="num" id="LN1017">1017</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1018"><td class="num" id="LN1018">1018</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1019"><td class="num" id="LN1019">1019</td><td class="line"> g_free (strings);</td></tr>
+<tr class="codeline" data-linenumber="1020"><td class="num" id="LN1020">1020</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1021"><td class="num" id="LN1021">1021</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1022"><td class="num" id="LN1022">1022</td><td class="line"> g_signal_emit (app, signals[ENCODING_LIST_CHANGED], 0);</td></tr>
+<tr class="codeline" data-linenumber="1023"><td class="num" id="LN1023">1023</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1024"><td class="num" id="LN1024">1024</td><td class="line"> <span class='keyword'>if</span> (val != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1025"><td class="num" id="LN1025">1025</td><td class="line"> g_variant_unref (val);</td></tr>
+<tr class="codeline" data-linenumber="1026"><td class="num" id="LN1026">1026</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1027"><td class="num" id="LN1027">1027</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1028"><td class="num" id="LN1028">1028</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1029"><td class="num" id="LN1029">1029</td><td class="line">terminal_app_system_font_notify_cb (GSettings *settings,</td></tr>
+<tr class="codeline" data-linenumber="1030"><td class="num" id="LN1030">1030</td><td class="line"> <span class='keyword'>const</span> gchar *key,</td></tr>
+<tr class="codeline" data-linenumber="1031"><td class="num" id="LN1031">1031</td><td class="line"> gpointer user_data)</td></tr>
+<tr class="codeline" data-linenumber="1032"><td class="num" id="LN1032">1032</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1033"><td class="num" id="LN1033">1033</td><td class="line"> TerminalApp *app = <span class='macro'>TERMINAL_APP (user_data)<span class='macro_popup'>((((TerminalApp*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((user_data)), ((terminal_app_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1034"><td class="num" id="LN1034">1034</td><td class="line"> GVariant *val;</td></tr>
+<tr class="codeline" data-linenumber="1035"><td class="num" id="LN1035">1035</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *font = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1036"><td class="num" id="LN1036">1036</td><td class="line"> PangoFontDescription *font_desc;</td></tr>
+<tr class="codeline" data-linenumber="1037"><td class="num" id="LN1037">1037</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1038"><td class="num" id="LN1038">1038</td><td class="line"> <span class='keyword'>if</span> (strcmp (key, <span class='macro'>MONOSPACE_FONT_KEY<span class='macro_popup'>"monospace-font-name"</span></span>) != 0)</td></tr>
+<tr class="codeline" data-linenumber="1039"><td class="num" id="LN1039">1039</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1040"><td class="num" id="LN1040">1040</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1041"><td class="num" id="LN1041">1041</td><td class="line"> val = g_settings_get_value (settings, key);</td></tr>
+<tr class="codeline" data-linenumber="1042"><td class="num" id="LN1042">1042</td><td class="line"> <span class='keyword'>if</span> (val &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="1043"><td class="num" id="LN1043">1043</td><td class="line"> g_variant_is_of_type (val, <span class='macro'>G_VARIANT_TYPE_STRING<span class='macro_popup'>((const GVariantType *) "s")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="1044"><td class="num" id="LN1044">1044</td><td class="line"> font = g_variant_get_string (val, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1045"><td class="num" id="LN1045">1045</td><td class="line"> <span class='keyword'>if</span> (!font)</td></tr>
+<tr class="codeline" data-linenumber="1046"><td class="num" id="LN1046">1046</td><td class="line"> font = <span class='macro'>DEFAULT_MONOSPACE_FONT<span class='macro_popup'>("Monospace 10")</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1047"><td class="num" id="LN1047">1047</td><td class="line"> <span class='macro'>g_assert (font != NULL)<span class='macro_popup'>do { if (font != ((void*)0)) ; else g_assertion_message_expr (<br>((gchar*) 0), "terminal-app.c", 1047, ((const char*) (__func__<br>)), "font != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1048"><td class="num" id="LN1048">1048</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1049"><td class="num" id="LN1049">1049</td><td class="line"> <span class='keyword'>if</span> (font &amp;&amp; (strlen (font) == 0)) <span class='comment'>/* empty string */</span></td></tr>
+<tr class="codeline" data-linenumber="1050"><td class="num" id="LN1050">1050</td><td class="line"> font = <span class='macro'>DEFAULT_MONOSPACE_FONT<span class='macro_popup'>("Monospace 10")</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1051"><td class="num" id="LN1051">1051</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1052"><td class="num" id="LN1052">1052</td><td class="line"> font_desc = pango_font_description_from_string (font);</td></tr>
+<tr class="codeline" data-linenumber="1053"><td class="num" id="LN1053">1053</td><td class="line"> <span class='keyword'>if</span> (app-&gt;system_font_desc &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="1054"><td class="num" id="LN1054">1054</td><td class="line"> pango_font_description_equal (app-&gt;system_font_desc, font_desc))</td></tr>
+<tr class="codeline" data-linenumber="1055"><td class="num" id="LN1055">1055</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1056"><td class="num" id="LN1056">1056</td><td class="line"> pango_font_description_free (font_desc);</td></tr>
+<tr class="codeline" data-linenumber="1057"><td class="num" id="LN1057">1057</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1058"><td class="num" id="LN1058">1058</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1059"><td class="num" id="LN1059">1059</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1060"><td class="num" id="LN1060">1060</td><td class="line"> <span class='keyword'>if</span> (app-&gt;system_font_desc)</td></tr>
+<tr class="codeline" data-linenumber="1061"><td class="num" id="LN1061">1061</td><td class="line"> pango_font_description_free (app-&gt;system_font_desc);</td></tr>
+<tr class="codeline" data-linenumber="1062"><td class="num" id="LN1062">1062</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1063"><td class="num" id="LN1063">1063</td><td class="line"> app-&gt;system_font_desc = font_desc;</td></tr>
+<tr class="codeline" data-linenumber="1064"><td class="num" id="LN1064">1064</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1065"><td class="num" id="LN1065">1065</td><td class="line"> g_object_notify (<span class='macro'>G_OBJECT (app)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, <span class='macro'>TERMINAL_APP_SYSTEM_FONT<span class='macro_popup'>"system-font"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1066"><td class="num" id="LN1066">1066</td><td class="line"> g_variant_unref (val);</td></tr>
+<tr class="codeline" data-linenumber="1067"><td class="num" id="LN1067">1067</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1068"><td class="num" id="LN1068">1068</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1069"><td class="num" id="LN1069">1069</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1070"><td class="num" id="LN1070">1070</td><td class="line">terminal_app_enable_mnemonics_notify_cb (GSettings *settings,</td></tr>
+<tr class="codeline" data-linenumber="1071"><td class="num" id="LN1071">1071</td><td class="line"> <span class='keyword'>const</span> gchar *key,</td></tr>
+<tr class="codeline" data-linenumber="1072"><td class="num" id="LN1072">1072</td><td class="line"> gpointer user_data)</td></tr>
+<tr class="codeline" data-linenumber="1073"><td class="num" id="LN1073">1073</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1074"><td class="num" id="LN1074">1074</td><td class="line"> TerminalApp *app = <span class='macro'>TERMINAL_APP (user_data)<span class='macro_popup'>((((TerminalApp*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((user_data)), ((terminal_app_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1075"><td class="num" id="LN1075">1075</td><td class="line"> gboolean enable;</td></tr>
+<tr class="codeline" data-linenumber="1076"><td class="num" id="LN1076">1076</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1077"><td class="num" id="LN1077">1077</td><td class="line"> enable = g_settings_get_boolean (settings, key);</td></tr>
+<tr class="codeline" data-linenumber="1078"><td class="num" id="LN1078">1078</td><td class="line"> <span class='keyword'>if</span> (enable == app-&gt;enable_mnemonics)</td></tr>
+<tr class="codeline" data-linenumber="1079"><td class="num" id="LN1079">1079</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1080"><td class="num" id="LN1080">1080</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1081"><td class="num" id="LN1081">1081</td><td class="line"> app-&gt;enable_mnemonics = enable;</td></tr>
+<tr class="codeline" data-linenumber="1082"><td class="num" id="LN1082">1082</td><td class="line"> g_object_notify (<span class='macro'>G_OBJECT (app)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, <span class='macro'>TERMINAL_APP_ENABLE_MNEMONICS<span class='macro_popup'>"enable-mnemonics"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1083"><td class="num" id="LN1083">1083</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1084"><td class="num" id="LN1084">1084</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1085"><td class="num" id="LN1085">1085</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1086"><td class="num" id="LN1086">1086</td><td class="line">terminal_app_enable_menu_accels_notify_cb (GSettings *settings,</td></tr>
+<tr class="codeline" data-linenumber="1087"><td class="num" id="LN1087">1087</td><td class="line"> <span class='keyword'>const</span> gchar *key,</td></tr>
+<tr class="codeline" data-linenumber="1088"><td class="num" id="LN1088">1088</td><td class="line"> gpointer user_data)</td></tr>
+<tr class="codeline" data-linenumber="1089"><td class="num" id="LN1089">1089</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1090"><td class="num" id="LN1090">1090</td><td class="line"> TerminalApp *app = <span class='macro'>TERMINAL_APP (user_data)<span class='macro_popup'>((((TerminalApp*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((user_data)), ((terminal_app_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1091"><td class="num" id="LN1091">1091</td><td class="line"> gboolean enable;</td></tr>
+<tr class="codeline" data-linenumber="1092"><td class="num" id="LN1092">1092</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1093"><td class="num" id="LN1093">1093</td><td class="line"> enable = g_settings_get_boolean (settings, key);</td></tr>
+<tr class="codeline" data-linenumber="1094"><td class="num" id="LN1094">1094</td><td class="line"> <span class='keyword'>if</span> (enable == app-&gt;enable_menu_accels)</td></tr>
+<tr class="codeline" data-linenumber="1095"><td class="num" id="LN1095">1095</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1096"><td class="num" id="LN1096">1096</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1097"><td class="num" id="LN1097">1097</td><td class="line"> app-&gt;enable_menu_accels = enable;</td></tr>
+<tr class="codeline" data-linenumber="1098"><td class="num" id="LN1098">1098</td><td class="line"> g_object_notify (<span class='macro'>G_OBJECT (app)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, <span class='macro'>TERMINAL_APP_ENABLE_MENU_BAR_ACCEL<span class='macro_popup'>"enable-menu-accels"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1099"><td class="num" id="LN1099">1099</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1100"><td class="num" id="LN1100">1100</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1101"><td class="num" id="LN1101">1101</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1102"><td class="num" id="LN1102">1102</td><td class="line">new_profile_response_cb (GtkWidget *new_profile_dialog,</td></tr>
+<tr class="codeline" data-linenumber="1103"><td class="num" id="LN1103">1103</td><td class="line"> <span class='keyword'>int</span> response_id,</td></tr>
+<tr class="codeline" data-linenumber="1104"><td class="num" id="LN1104">1104</td><td class="line"> TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="1105"><td class="num" id="LN1105">1105</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1106"><td class="num" id="LN1106">1106</td><td class="line"> <span class='keyword'>if</span> (response_id == GTK_RESPONSE_ACCEPT)</td></tr>
+<tr class="codeline" data-linenumber="1107"><td class="num" id="LN1107">1107</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1108"><td class="num" id="LN1108">1108</td><td class="line"> GtkWidget *name_entry;</td></tr>
+<tr class="codeline" data-linenumber="1109"><td class="num" id="LN1109">1109</td><td class="line"> <span class='keyword'>char</span> *name;</td></tr>
+<tr class="codeline" data-linenumber="1110"><td class="num" id="LN1110">1110</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *new_profile_name;</td></tr>
+<tr class="codeline" data-linenumber="1111"><td class="num" id="LN1111">1111</td><td class="line"> GtkWidget *base_option_menu;</td></tr>
+<tr class="codeline" data-linenumber="1112"><td class="num" id="LN1112">1112</td><td class="line"> TerminalProfile *base_profile = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1113"><td class="num" id="LN1113">1113</td><td class="line"> TerminalProfile *new_profile;</td></tr>
+<tr class="codeline" data-linenumber="1114"><td class="num" id="LN1114">1114</td><td class="line"> GList *profiles;</td></tr>
+<tr class="codeline" data-linenumber="1115"><td class="num" id="LN1115">1115</td><td class="line"> GList *tmp;</td></tr>
+<tr class="codeline" data-linenumber="1116"><td class="num" id="LN1116">1116</td><td class="line"> GtkWindow *transient_parent;</td></tr>
+<tr class="codeline" data-linenumber="1117"><td class="num" id="LN1117">1117</td><td class="line"> GtkWidget *confirm_dialog;</td></tr>
+<tr class="codeline" data-linenumber="1118"><td class="num" id="LN1118">1118</td><td class="line"> gint retval;</td></tr>
+<tr class="codeline" data-linenumber="1119"><td class="num" id="LN1119">1119</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1120"><td class="num" id="LN1120">1120</td><td class="line"> base_option_menu = g_object_get_data (<span class='macro'>G_OBJECT (new_profile_dialog)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((new_profile_dialog)), (((GType) ((20) &lt;&lt; (2)))))))<br>)</span></span>, <span class='string_literal'>"base_option_menu"</span>);</td></tr>
+<tr class="codeline" data-linenumber="1121"><td class="num" id="LN1121">1121</td><td class="line"> base_profile = profile_combo_box_get_selected (base_option_menu);</td></tr>
+<tr class="codeline" data-linenumber="1122"><td class="num" id="LN1122">1122</td><td class="line"> <span class='keyword'>if</span> (!base_profile)</td></tr>
+<tr class="codeline" data-linenumber="1123"><td class="num" id="LN1123">1123</td><td class="line"> base_profile = terminal_app_get_default_profile (app);</td></tr>
+<tr class="codeline" data-linenumber="1124"><td class="num" id="LN1124">1124</td><td class="line"> <span class='keyword'>if</span> (!base_profile)</td></tr>
+<tr class="codeline" data-linenumber="1125"><td class="num" id="LN1125">1125</td><td class="line"> <span class='keyword'>return</span>; <span class='comment'>/* shouldn't happen ever though */</span></td></tr>
+<tr class="codeline" data-linenumber="1126"><td class="num" id="LN1126">1126</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1127"><td class="num" id="LN1127">1127</td><td class="line"> name_entry = g_object_get_data (<span class='macro'>G_OBJECT (new_profile_dialog)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((new_profile_dialog)), (((GType) ((20) &lt;&lt; (2)))))))<br>)</span></span>, <span class='string_literal'>"name_entry"</span>);</td></tr>
+<tr class="codeline" data-linenumber="1128"><td class="num" id="LN1128">1128</td><td class="line"> name = gtk_editable_get_chars (<span class='macro'>GTK_EDITABLE (name_entry)<span class='macro_popup'>((((GtkEditable*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((name_entry)), ((gtk_editable_get_type ()))))))</span></span>, 0, -1);</td></tr>
+<tr class="codeline" data-linenumber="1129"><td class="num" id="LN1129">1129</td><td class="line"> <span class='macro'>g_strstrip (name)<span class='macro_popup'>g_strchomp (g_strchug (name))</span></span>; <span class='comment'>/* name will be non empty after stripping */</span></td></tr>
+<tr class="codeline" data-linenumber="1130"><td class="num" id="LN1130">1130</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1131"><td class="num" id="LN1131">1131</td><td class="line"> profiles = terminal_app_get_profile_list (app);</td></tr>
+<tr class="codeline" data-linenumber="1132"><td class="num" id="LN1132">1132</td><td class="line"> <span class='keyword'>for</span> (tmp = profiles; tmp != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; tmp = tmp-&gt;next)</td></tr>
+<tr class="codeline" data-linenumber="1133"><td class="num" id="LN1133">1133</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1134"><td class="num" id="LN1134">1134</td><td class="line"> TerminalProfile *profile = tmp-&gt;data;</td></tr>
+<tr class="codeline" data-linenumber="1135"><td class="num" id="LN1135">1135</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *visible_name;</td></tr>
+<tr class="codeline" data-linenumber="1136"><td class="num" id="LN1136">1136</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1137"><td class="num" id="LN1137">1137</td><td class="line"> visible_name = terminal_profile_get_property_string (profile, <span class='macro'>TERMINAL_PROFILE_VISIBLE_NAME<span class='macro_popup'>"visible-name"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1138"><td class="num" id="LN1138">1138</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1139"><td class="num" id="LN1139">1139</td><td class="line"> <span class='keyword'>if</span> (visible_name &amp;&amp; strcmp (name, visible_name) == 0)</td></tr>
+<tr class="codeline" data-linenumber="1140"><td class="num" id="LN1140">1140</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1141"><td class="num" id="LN1141">1141</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1142"><td class="num" id="LN1142">1142</td><td class="line"> <span class='keyword'>if</span> (tmp)</td></tr>
+<tr class="codeline" data-linenumber="1143"><td class="num" id="LN1143">1143</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1144"><td class="num" id="LN1144">1144</td><td class="line"> confirm_dialog = gtk_message_dialog_new (<span class='macro'>GTK_WINDOW (new_profile_dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((new_profile_dialog)), ((gtk_window_get_type ()))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1145"><td class="num" id="LN1145">1145</td><td class="line"> GTK_DIALOG_DESTROY_WITH_PARENT,</td></tr>
+<tr class="codeline" data-linenumber="1146"><td class="num" id="LN1146">1146</td><td class="line"> GTK_MESSAGE_QUESTION,</td></tr>
+<tr class="codeline" data-linenumber="1147"><td class="num" id="LN1147">1147</td><td class="line"> GTK_BUTTONS_YES_NO,</td></tr>
+<tr class="codeline" data-linenumber="1148"><td class="num" id="LN1148">1148</td><td class="line"> <span class='macro'>_(<span class='string_literal'>"You already have a profile called “%s”. Do you want to create another profile with the same name?"</span>)<span class='macro_popup'>gettext ("You already have a profile called “%s”. Do you want to create another profile with the same name?"<br>)</span></span>, name);</td></tr>
+<tr class="codeline" data-linenumber="1149"><td class="num" id="LN1149">1149</td><td class="line"> <span class='comment'>/* Alternative button order was set automatically by GtkMessageDialog */</span></td></tr>
+<tr class="codeline" data-linenumber="1150"><td class="num" id="LN1150">1150</td><td class="line"> retval = gtk_dialog_run (<span class='macro'>GTK_DIALOG (confirm_dialog)<span class='macro_popup'>((((GtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((confirm_dialog)), ((gtk_dialog_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1151"><td class="num" id="LN1151">1151</td><td class="line"> gtk_widget_destroy (confirm_dialog);</td></tr>
+<tr class="codeline" data-linenumber="1152"><td class="num" id="LN1152">1152</td><td class="line"> <span class='keyword'>if</span> (retval == GTK_RESPONSE_NO)</td></tr>
+<tr class="codeline" data-linenumber="1153"><td class="num" id="LN1153">1153</td><td class="line"> <span class='keyword'>goto</span> cleanup;</td></tr>
+<tr class="codeline" data-linenumber="1154"><td class="num" id="LN1154">1154</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1155"><td class="num" id="LN1155">1155</td><td class="line"> g_list_free (profiles);</td></tr>
+<tr class="codeline" data-linenumber="1156"><td class="num" id="LN1156">1156</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1157"><td class="num" id="LN1157">1157</td><td class="line"> transient_parent = gtk_window_get_transient_for (<span class='macro'>GTK_WINDOW (new_profile_dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((new_profile_dialog)), ((gtk_window_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1158"><td class="num" id="LN1158">1158</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1159"><td class="num" id="LN1159">1159</td><td class="line"> new_profile = _terminal_profile_clone (base_profile, name);</td></tr>
+<tr class="codeline" data-linenumber="1160"><td class="num" id="LN1160">1160</td><td class="line"> new_profile_name = terminal_profile_get_property_string (new_profile, <span class='macro'>TERMINAL_PROFILE_NAME<span class='macro_popup'>"name"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1161"><td class="num" id="LN1161">1161</td><td class="line"> g_hash_table_insert (app-&gt;profiles,</td></tr>
+<tr class="codeline" data-linenumber="1162"><td class="num" id="LN1162">1162</td><td class="line"> <span class='macro'>g_strdup (new_profile_name)<span class='macro_popup'>g_strdup_inline (new_profile_name)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1163"><td class="num" id="LN1163">1163</td><td class="line"> new_profile <span class='comment'>/* adopts the refcount */</span>);</td></tr>
+<tr class="codeline" data-linenumber="1164"><td class="num" id="LN1164">1164</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1165"><td class="num" id="LN1165">1165</td><td class="line"> <span class='comment'>/* And now save the new profile name to GSettings */</span></td></tr>
+<tr class="codeline" data-linenumber="1166"><td class="num" id="LN1166">1166</td><td class="line"> gsettings_append_strv (settings_global,</td></tr>
+<tr class="codeline" data-linenumber="1167"><td class="num" id="LN1167">1167</td><td class="line"> <span class='macro'>PROFILE_LIST_KEY<span class='macro_popup'>"profile-list"</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1168"><td class="num" id="LN1168">1168</td><td class="line"> new_profile_name);</td></tr>
+<tr class="codeline" data-linenumber="1169"><td class="num" id="LN1169">1169</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1170"><td class="num" id="LN1170">1170</td><td class="line"> terminal_profile_edit (new_profile, transient_parent, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1171"><td class="num" id="LN1171">1171</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1172"><td class="num" id="LN1172">1172</td><td class="line">cleanup:</td></tr>
+<tr class="codeline" data-linenumber="1173"><td class="num" id="LN1173">1173</td><td class="line"> g_free (name);</td></tr>
+<tr class="codeline" data-linenumber="1174"><td class="num" id="LN1174">1174</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1175"><td class="num" id="LN1175">1175</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1176"><td class="num" id="LN1176">1176</td><td class="line"> gtk_widget_destroy (new_profile_dialog);</td></tr>
+<tr class="codeline" data-linenumber="1177"><td class="num" id="LN1177">1177</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1178"><td class="num" id="LN1178">1178</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1179"><td class="num" id="LN1179">1179</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1180"><td class="num" id="LN1180">1180</td><td class="line">new_profile_dialog_destroy_cb (GtkWidget *new_profile_dialog,</td></tr>
+<tr class="codeline" data-linenumber="1181"><td class="num" id="LN1181">1181</td><td class="line"> TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="1182"><td class="num" id="LN1182">1182</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1183"><td class="num" id="LN1183">1183</td><td class="line"> GtkWidget *combo;</td></tr>
+<tr class="codeline" data-linenumber="1184"><td class="num" id="LN1184">1184</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1185"><td class="num" id="LN1185">1185</td><td class="line"> combo = g_object_get_data (<span class='macro'>G_OBJECT (new_profile_dialog)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((new_profile_dialog)), (((GType) ((20) &lt;&lt; (2)))))))<br>)</span></span>, <span class='string_literal'>"base_option_menu"</span>);</td></tr>
+<tr class="codeline" data-linenumber="1186"><td class="num" id="LN1186">1186</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (app, G_CALLBACK (profile_combo_box_refill), combo)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((app), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (profile_combo_box_refill))), (combo))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1187"><td class="num" id="LN1187">1187</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1188"><td class="num" id="LN1188">1188</td><td class="line"> app-&gt;new_profile_dialog = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1189"><td class="num" id="LN1189">1189</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1190"><td class="num" id="LN1190">1190</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1191"><td class="num" id="LN1191">1191</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1192"><td class="num" id="LN1192">1192</td><td class="line">new_profile_name_entry_changed_cb (GtkEntry *entry,</td></tr>
+<tr class="codeline" data-linenumber="1193"><td class="num" id="LN1193">1193</td><td class="line"> GtkDialog *dialog)</td></tr>
+<tr class="codeline" data-linenumber="1194"><td class="num" id="LN1194">1194</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1195"><td class="num" id="LN1195">1195</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *name;</td></tr>
+<tr class="codeline" data-linenumber="1196"><td class="num" id="LN1196">1196</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1197"><td class="num" id="LN1197">1197</td><td class="line"> name = gtk_entry_get_text (entry);</td></tr>
+<tr class="codeline" data-linenumber="1198"><td class="num" id="LN1198">1198</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1199"><td class="num" id="LN1199">1199</td><td class="line"> <span class='comment'>/* make the create button sensitive only if something other than space has been set */</span></td></tr>
+<tr class="codeline" data-linenumber="1200"><td class="num" id="LN1200">1200</td><td class="line"> <span class='keyword'>while</span> (*name != '\0' &amp;&amp; <span class='macro'>g_ascii_isspace (*name)<span class='macro_popup'>((g_ascii_table[(guchar) (*name)] &amp; G_ASCII_SPACE) != 0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1201"><td class="num" id="LN1201">1201</td><td class="line"> ++name;</td></tr>
+<tr class="codeline" data-linenumber="1202"><td class="num" id="LN1202">1202</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1203"><td class="num" id="LN1203">1203</td><td class="line"> gtk_dialog_set_response_sensitive (dialog, GTK_RESPONSE_ACCEPT, name[0] != '\0');</td></tr>
+<tr class="codeline" data-linenumber="1204"><td class="num" id="LN1204">1204</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1205"><td class="num" id="LN1205">1205</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1206"><td class="num" id="LN1206">1206</td><td class="line"><span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1207"><td class="num" id="LN1207">1207</td><td class="line">terminal_app_new_profile (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="1208"><td class="num" id="LN1208">1208</td><td class="line"> TerminalProfile *default_base_profile,</td></tr>
+<tr class="codeline" data-linenumber="1209"><td class="num" id="LN1209">1209</td><td class="line"> GtkWindow *transient_parent)</td></tr>
+<tr class="codeline" data-linenumber="1210"><td class="num" id="LN1210">1210</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1211"><td class="num" id="LN1211">1211</td><td class="line"> <span class='keyword'>if</span> (app-&gt;new_profile_dialog == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1212"><td class="num" id="LN1212">1212</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1213"><td class="num" id="LN1213">1213</td><td class="line"> GtkWidget *create_button, *grid, *name_label, *name_entry, *base_label, *combo;</td></tr>
+<tr class="codeline" data-linenumber="1214"><td class="num" id="LN1214">1214</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1215"><td class="num" id="LN1215">1215</td><td class="line"> <span class='keyword'>if</span> (!terminal_util_load_builder_resource (<span class='macro'>TERMINAL_RESOURCES_PATH_PREFIX<span class='macro_popup'>"/org/mate/terminal"</span></span> <span class='macro'>G_DIR_SEPARATOR_S<span class='macro_popup'>"/"</span></span> <span class='string_literal'>"ui/profile-new-dialog.ui"</span>,</td></tr>
+<tr class="codeline" data-linenumber="1216"><td class="num" id="LN1216">1216</td><td class="line"> <span class='string_literal'>"new-profile-dialog"</span>, &amp;app-&gt;new_profile_dialog,</td></tr>
+<tr class="codeline" data-linenumber="1217"><td class="num" id="LN1217">1217</td><td class="line"> <span class='string_literal'>"new-profile-create-button"</span>, &amp;create_button,</td></tr>
+<tr class="codeline" data-linenumber="1218"><td class="num" id="LN1218">1218</td><td class="line"> <span class='string_literal'>"new-profile-grid"</span>, &amp;grid,</td></tr>
+<tr class="codeline" data-linenumber="1219"><td class="num" id="LN1219">1219</td><td class="line"> <span class='string_literal'>"new-profile-name-label"</span>, &amp;name_label,</td></tr>
+<tr class="codeline" data-linenumber="1220"><td class="num" id="LN1220">1220</td><td class="line"> <span class='string_literal'>"new-profile-name-entry"</span>, &amp;name_entry,</td></tr>
+<tr class="codeline" data-linenumber="1221"><td class="num" id="LN1221">1221</td><td class="line"> <span class='string_literal'>"new-profile-base-label"</span>, &amp;base_label,</td></tr>
+<tr class="codeline" data-linenumber="1222"><td class="num" id="LN1222">1222</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="1223"><td class="num" id="LN1223">1223</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1224"><td class="num" id="LN1224">1224</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1225"><td class="num" id="LN1225">1225</td><td class="line"> <span class='macro'>g_signal_connect (G_OBJECT (app-&gt;new_profile_dialog), <span class='string_literal'>"response"</span>, G_CALLBACK (new_profile_response_cb), app)<span class='macro_popup'>g_signal_connect_data ((((((GObject*) (void *) g_type_check_instance_cast<br> ((GTypeInstance*) ((app-&gt;new_profile_dialog)), (((GType) (<br>(20) &lt;&lt; (2))))))))), ("response"), (((GCallback) (new_profile_response_cb<br>))), (app), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1226"><td class="num" id="LN1226">1226</td><td class="line"> <span class='macro'>g_signal_connect (app-&gt;new_profile_dialog, <span class='string_literal'>"destroy"</span>, G_CALLBACK (new_profile_dialog_destroy_cb), app)<span class='macro_popup'>g_signal_connect_data ((app-&gt;new_profile_dialog), ("destroy"<br>), (((GCallback) (new_profile_dialog_destroy_cb))), (app), ((<br>void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1227"><td class="num" id="LN1227">1227</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1228"><td class="num" id="LN1228">1228</td><td class="line"> g_object_set_data (<span class='macro'>G_OBJECT (app-&gt;new_profile_dialog)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;new_profile_dialog)), (((GType) ((20) &lt;&lt; (<br>2))))))))</span></span>, <span class='string_literal'>"create_button"</span>, create_button);</td></tr>
+<tr class="codeline" data-linenumber="1229"><td class="num" id="LN1229">1229</td><td class="line"> gtk_widget_set_sensitive (create_button, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1230"><td class="num" id="LN1230">1230</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1231"><td class="num" id="LN1231">1231</td><td class="line"> <span class='comment'>/* the name entry */</span></td></tr>
+<tr class="codeline" data-linenumber="1232"><td class="num" id="LN1232">1232</td><td class="line"> g_object_set_data (<span class='macro'>G_OBJECT (app-&gt;new_profile_dialog)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;new_profile_dialog)), (((GType) ((20) &lt;&lt; (<br>2))))))))</span></span>, <span class='string_literal'>"name_entry"</span>, name_entry);</td></tr>
+<tr class="codeline" data-linenumber="1233"><td class="num" id="LN1233">1233</td><td class="line"> <span class='macro'>g_signal_connect (name_entry, <span class='string_literal'>"changed"</span>, G_CALLBACK (new_profile_name_entry_changed_cb), app-&gt;new_profile_dialog)<span class='macro_popup'>g_signal_connect_data ((name_entry), ("changed"), (((GCallback<br>) (new_profile_name_entry_changed_cb))), (app-&gt;new_profile_dialog<br>), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1234"><td class="num" id="LN1234">1234</td><td class="line"> gtk_entry_set_activates_default (<span class='macro'>GTK_ENTRY (name_entry)<span class='macro_popup'>((((GtkEntry*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((name_entry)), ((gtk_entry_get_type ()))))))</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1235"><td class="num" id="LN1235">1235</td><td class="line"> gtk_widget_grab_focus (name_entry);</td></tr>
+<tr class="codeline" data-linenumber="1236"><td class="num" id="LN1236">1236</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1237"><td class="num" id="LN1237">1237</td><td class="line"> gtk_label_set_mnemonic_widget (<span class='macro'>GTK_LABEL (name_label)<span class='macro_popup'>((((GtkLabel*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((name_label)), ((gtk_label_get_type ()))))))</span></span>, name_entry);</td></tr>
+<tr class="codeline" data-linenumber="1238"><td class="num" id="LN1238">1238</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1239"><td class="num" id="LN1239">1239</td><td class="line"> <span class='comment'>/* the base profile option menu */</span></td></tr>
+<tr class="codeline" data-linenumber="1240"><td class="num" id="LN1240">1240</td><td class="line"> combo = profile_combo_box_new (app);</td></tr>
+<tr class="codeline" data-linenumber="1241"><td class="num" id="LN1241">1241</td><td class="line"> gtk_grid_attach (<span class='macro'>GTK_GRID (grid)<span class='macro_popup'>((((GtkGrid*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((grid)), ((gtk_grid_get_type ()))))))</span></span>, combo, 2, 1, 1, 1);</td></tr>
+<tr class="codeline" data-linenumber="1242"><td class="num" id="LN1242">1242</td><td class="line"> g_object_set_data (<span class='macro'>G_OBJECT (app-&gt;new_profile_dialog)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;new_profile_dialog)), (((GType) ((20) &lt;&lt; (<br>2))))))))</span></span>, <span class='string_literal'>"base_option_menu"</span>, combo);</td></tr>
+<tr class="codeline" data-linenumber="1243"><td class="num" id="LN1243">1243</td><td class="line"> terminal_util_set_atk_name_description (combo, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>_(<span class='string_literal'>"Choose base profile"</span>)<span class='macro_popup'>gettext ("Choose base profile")</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1244"><td class="num" id="LN1244">1244</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1245"><td class="num" id="LN1245">1245</td><td class="line"> gtk_label_set_mnemonic_widget (<span class='macro'>GTK_LABEL (base_label)<span class='macro_popup'>((((GtkLabel*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((base_label)), ((gtk_label_get_type ()))))))</span></span>, combo);</td></tr>
+<tr class="codeline" data-linenumber="1246"><td class="num" id="LN1246">1246</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1247"><td class="num" id="LN1247">1247</td><td class="line"> gtk_dialog_set_default_response (<span class='macro'>GTK_DIALOG (app-&gt;new_profile_dialog)<span class='macro_popup'>((((GtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;new_profile_dialog)), ((gtk_dialog_get_type ()))<br>))))</span></span>, GTK_RESPONSE_ACCEPT);</td></tr>
+<tr class="codeline" data-linenumber="1248"><td class="num" id="LN1248">1248</td><td class="line"> gtk_dialog_set_response_sensitive (<span class='macro'>GTK_DIALOG (app-&gt;new_profile_dialog)<span class='macro_popup'>((((GtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;new_profile_dialog)), ((gtk_dialog_get_type ()))<br>))))</span></span>, GTK_RESPONSE_ACCEPT, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1249"><td class="num" id="LN1249">1249</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1250"><td class="num" id="LN1250">1250</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1251"><td class="num" id="LN1251">1251</td><td class="line"> gtk_window_set_transient_for (<span class='macro'>GTK_WINDOW (app-&gt;new_profile_dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;new_profile_dialog)), ((gtk_window_get_type ()))<br>))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1252"><td class="num" id="LN1252">1252</td><td class="line"> transient_parent);</td></tr>
+<tr class="codeline" data-linenumber="1253"><td class="num" id="LN1253">1253</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1254"><td class="num" id="LN1254">1254</td><td class="line"> gtk_window_present (<span class='macro'>GTK_WINDOW (app-&gt;new_profile_dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;new_profile_dialog)), ((gtk_window_get_type ()))<br>))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1255"><td class="num" id="LN1255">1255</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1256"><td class="num" id="LN1256">1256</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1257"><td class="num" id="LN1257">1257</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1258"><td class="num" id="LN1258">1258</td><td class="line">profile_list_selection_changed_cb (GtkTreeSelection *selection,</td></tr>
+<tr class="codeline" data-linenumber="1259"><td class="num" id="LN1259">1259</td><td class="line"> TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="1260"><td class="num" id="LN1260">1260</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1261"><td class="num" id="LN1261">1261</td><td class="line"> gboolean selected;</td></tr>
+<tr class="codeline" data-linenumber="1262"><td class="num" id="LN1262">1262</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1263"><td class="num" id="LN1263">1263</td><td class="line"> selected = gtk_tree_selection_get_selected (selection, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1264"><td class="num" id="LN1264">1264</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1265"><td class="num" id="LN1265">1265</td><td class="line"> gtk_widget_set_sensitive (app-&gt;manage_profiles_edit_button, selected);</td></tr>
+<tr class="codeline" data-linenumber="1266"><td class="num" id="LN1266">1266</td><td class="line"> gtk_widget_set_sensitive (app-&gt;manage_profiles_delete_button,</td></tr>
+<tr class="codeline" data-linenumber="1267"><td class="num" id="LN1267">1267</td><td class="line"> selected &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="1268"><td class="num" id="LN1268">1268</td><td class="line"> g_hash_table_size (app-&gt;profiles) &gt; 1);</td></tr>
+<tr class="codeline" data-linenumber="1269"><td class="num" id="LN1269">1269</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1270"><td class="num" id="LN1270">1270</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1271"><td class="num" id="LN1271">1271</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1272"><td class="num" id="LN1272">1272</td><td class="line">profile_list_response_cb (GtkWidget *dialog,</td></tr>
+<tr class="codeline" data-linenumber="1273"><td class="num" id="LN1273">1273</td><td class="line"> <span class='keyword'>int</span> id,</td></tr>
+<tr class="codeline" data-linenumber="1274"><td class="num" id="LN1274">1274</td><td class="line"> TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="1275"><td class="num" id="LN1275">1275</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1276"><td class="num" id="LN1276">1276</td><td class="line"> <span class='macro'>g_assert (app-&gt;manage_profiles_dialog == dialog)<span class='macro_popup'>do { if (app-&gt;manage_profiles_dialog == dialog) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-app.c", 1276, ((const char*) (__func__<br>)), "app-&gt;manage_profiles_dialog == dialog"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1277"><td class="num" id="LN1277">1277</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1278"><td class="num" id="LN1278">1278</td><td class="line"> <span class='keyword'>if</span> (id == GTK_RESPONSE_HELP)</td></tr>
+<tr class="codeline" data-linenumber="1279"><td class="num" id="LN1279">1279</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1280"><td class="num" id="LN1280">1280</td><td class="line"> terminal_util_show_help (<span class='string_literal'>"mate-terminal-manage-profiles"</span>, <span class='macro'>GTK_WINDOW (dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((dialog)), ((gtk_window_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1281"><td class="num" id="LN1281">1281</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1282"><td class="num" id="LN1282">1282</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1283"><td class="num" id="LN1283">1283</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1284"><td class="num" id="LN1284">1284</td><td class="line"> gtk_widget_destroy (dialog);</td></tr>
+<tr class="codeline" data-linenumber="1285"><td class="num" id="LN1285">1285</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1286"><td class="num" id="LN1286">1286</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1287"><td class="num" id="LN1287">1287</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1288"><td class="num" id="LN1288">1288</td><td class="line">profile_list_destroyed_cb (GtkWidget *manage_profiles_dialog,</td></tr>
+<tr class="codeline" data-linenumber="1289"><td class="num" id="LN1289">1289</td><td class="line"> TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="1290"><td class="num" id="LN1290">1290</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1291"><td class="num" id="LN1291">1291</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (app, G_CALLBACK (profile_list_treeview_refill), app-&gt;manage_profiles_list)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((app), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (profile_list_treeview_refill))), (app-&gt;<br>manage_profiles_list))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1292"><td class="num" id="LN1292">1292</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (app, G_CALLBACK (profile_combo_box_refill), app-&gt;manage_profiles_default_menu)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((app), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (profile_combo_box_refill))), (app-&gt;manage_profiles_default_menu<br>))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1293"><td class="num" id="LN1293">1293</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1294"><td class="num" id="LN1294">1294</td><td class="line"> app-&gt;manage_profiles_dialog = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1295"><td class="num" id="LN1295">1295</td><td class="line"> app-&gt;manage_profiles_list = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1296"><td class="num" id="LN1296">1296</td><td class="line"> app-&gt;manage_profiles_new_button = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1297"><td class="num" id="LN1297">1297</td><td class="line"> app-&gt;manage_profiles_edit_button = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1298"><td class="num" id="LN1298">1298</td><td class="line"> app-&gt;manage_profiles_delete_button = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1299"><td class="num" id="LN1299">1299</td><td class="line"> app-&gt;manage_profiles_default_menu = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1300"><td class="num" id="LN1300">1300</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1301"><td class="num" id="LN1301">1301</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1302"><td class="num" id="LN1302">1302</td><td class="line"><span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1303"><td class="num" id="LN1303">1303</td><td class="line">terminal_app_manage_profiles (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="1304"><td class="num" id="LN1304">1304</td><td class="line"> GtkWindow *transient_parent)</td></tr>
+<tr class="codeline" data-linenumber="1305"><td class="num" id="LN1305">1305</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1306"><td class="num" id="LN1306">1306</td><td class="line"> GObject *dialog;</td></tr>
+<tr class="codeline" data-linenumber="1307"><td class="num" id="LN1307">1307</td><td class="line"> GObject *tree_view_container, *new_button, *edit_button, *remove_button;</td></tr>
+<tr class="codeline" data-linenumber="1308"><td class="num" id="LN1308">1308</td><td class="line"> GObject *default_hbox, *default_label;</td></tr>
+<tr class="codeline" data-linenumber="1309"><td class="num" id="LN1309">1309</td><td class="line"> GtkTreeSelection *selection;</td></tr>
+<tr class="codeline" data-linenumber="1310"><td class="num" id="LN1310">1310</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1311"><td class="num" id="LN1311">1311</td><td class="line"> <span class='keyword'>if</span> (app-&gt;manage_profiles_dialog)</td></tr>
+<tr class="codeline" data-linenumber="1312"><td class="num" id="LN1312">1312</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1313"><td class="num" id="LN1313">1313</td><td class="line"> gtk_window_set_transient_for (<span class='macro'>GTK_WINDOW (app-&gt;manage_profiles_dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;manage_profiles_dialog)), ((gtk_window_get_type (<br>)))))))</span></span>, transient_parent);</td></tr>
+<tr class="codeline" data-linenumber="1314"><td class="num" id="LN1314">1314</td><td class="line"> gtk_window_present (<span class='macro'>GTK_WINDOW (app-&gt;manage_profiles_dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;manage_profiles_dialog)), ((gtk_window_get_type (<br>)))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1315"><td class="num" id="LN1315">1315</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1316"><td class="num" id="LN1316">1316</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1317"><td class="num" id="LN1317">1317</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1318"><td class="num" id="LN1318">1318</td><td class="line"> <span class='keyword'>if</span> (!terminal_util_load_builder_resource (<span class='macro'>TERMINAL_RESOURCES_PATH_PREFIX<span class='macro_popup'>"/org/mate/terminal"</span></span> <span class='macro'>G_DIR_SEPARATOR_S<span class='macro_popup'>"/"</span></span> <span class='string_literal'>"ui/profile-manager.ui"</span>,</td></tr>
+<tr class="codeline" data-linenumber="1319"><td class="num" id="LN1319">1319</td><td class="line"> <span class='string_literal'>"profile-manager"</span>, &amp;dialog,</td></tr>
+<tr class="codeline" data-linenumber="1320"><td class="num" id="LN1320">1320</td><td class="line"> <span class='string_literal'>"profiles-treeview-container"</span>, &amp;tree_view_container,</td></tr>
+<tr class="codeline" data-linenumber="1321"><td class="num" id="LN1321">1321</td><td class="line"> <span class='string_literal'>"new-profile-button"</span>, &amp;new_button,</td></tr>
+<tr class="codeline" data-linenumber="1322"><td class="num" id="LN1322">1322</td><td class="line"> <span class='string_literal'>"edit-profile-button"</span>, &amp;edit_button,</td></tr>
+<tr class="codeline" data-linenumber="1323"><td class="num" id="LN1323">1323</td><td class="line"> <span class='string_literal'>"delete-profile-button"</span>, &amp;remove_button,</td></tr>
+<tr class="codeline" data-linenumber="1324"><td class="num" id="LN1324">1324</td><td class="line"> <span class='string_literal'>"default-profile-hbox"</span>, &amp;default_hbox,</td></tr>
+<tr class="codeline" data-linenumber="1325"><td class="num" id="LN1325">1325</td><td class="line"> <span class='string_literal'>"default-profile-label"</span>, &amp;default_label,</td></tr>
+<tr class="codeline" data-linenumber="1326"><td class="num" id="LN1326">1326</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="1327"><td class="num" id="LN1327">1327</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1328"><td class="num" id="LN1328">1328</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1329"><td class="num" id="LN1329">1329</td><td class="line"> app-&gt;manage_profiles_dialog = <span class='macro'>GTK_WIDGET (dialog)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((dialog)), ((gtk_widget_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1330"><td class="num" id="LN1330">1330</td><td class="line"> app-&gt;manage_profiles_new_button = <span class='macro'>GTK_WIDGET (new_button)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((new_button)), ((gtk_widget_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1331"><td class="num" id="LN1331">1331</td><td class="line"> app-&gt;manage_profiles_edit_button = <span class='macro'>GTK_WIDGET (edit_button)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((edit_button)), ((gtk_widget_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1332"><td class="num" id="LN1332">1332</td><td class="line"> app-&gt;manage_profiles_delete_button = <span class='macro'>GTK_WIDGET (remove_button)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((remove_button)), ((gtk_widget_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1333"><td class="num" id="LN1333">1333</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1334"><td class="num" id="LN1334">1334</td><td class="line"> <span class='macro'>g_signal_connect (dialog, <span class='string_literal'>"response"</span>, G_CALLBACK (profile_list_response_cb), app)<span class='macro_popup'>g_signal_connect_data ((dialog), ("response"), (((GCallback) (<br>profile_list_response_cb))), (app), ((void*)0), (GConnectFlags<br>) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1335"><td class="num" id="LN1335">1335</td><td class="line"> <span class='macro'>g_signal_connect (dialog, <span class='string_literal'>"destroy"</span>, G_CALLBACK (profile_list_destroyed_cb), app)<span class='macro_popup'>g_signal_connect_data ((dialog), ("destroy"), (((GCallback) (<br>profile_list_destroyed_cb))), (app), ((void*)0), (GConnectFlags<br>) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1336"><td class="num" id="LN1336">1336</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1337"><td class="num" id="LN1337">1337</td><td class="line"> app-&gt;manage_profiles_list = profile_list_treeview_create (app);</td></tr>
+<tr class="codeline" data-linenumber="1338"><td class="num" id="LN1338">1338</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1339"><td class="num" id="LN1339">1339</td><td class="line"> selection = gtk_tree_view_get_selection (<span class='macro'>GTK_TREE_VIEW (app-&gt;manage_profiles_list)<span class='macro_popup'>((((GtkTreeView*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;manage_profiles_list)), ((gtk_tree_view_get_type<br> ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1340"><td class="num" id="LN1340">1340</td><td class="line"> <span class='macro'>g_signal_connect (selection, <span class='string_literal'>"changed"</span>, G_CALLBACK (profile_list_selection_changed_cb), app)<span class='macro_popup'>g_signal_connect_data ((selection), ("changed"), (((GCallback<br>) (profile_list_selection_changed_cb))), (app), ((void*)0), (<br>GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1341"><td class="num" id="LN1341">1341</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1342"><td class="num" id="LN1342">1342</td><td class="line"> profile_list_treeview_refill (app, app-&gt;manage_profiles_list);</td></tr>
+<tr class="codeline" data-linenumber="1343"><td class="num" id="LN1343">1343</td><td class="line"> <span class='macro'>g_signal_connect (app, <span class='string_literal'>"profile-list-changed"</span>,<span class='macro_popup'>g_signal_connect_data ((app), ("profile-list-changed"), (((GCallback<br>) (profile_list_treeview_refill))), (app-&gt;manage_profiles_list<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1344"><td class="num" id="LN1344">1344</td><td class="line"> <span class='macro'>G_CALLBACK (profile_list_treeview_refill), app-&gt;manage_profiles_list)<span class='macro_popup'>g_signal_connect_data ((app), ("profile-list-changed"), (((GCallback<br>) (profile_list_treeview_refill))), (app-&gt;manage_profiles_list<br>), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1345"><td class="num" id="LN1345">1345</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1346"><td class="num" id="LN1346">1346</td><td class="line"> <span class='macro'>g_signal_connect (app-&gt;manage_profiles_list, <span class='string_literal'>"row-activated"</span>,<span class='macro_popup'>g_signal_connect_data ((app-&gt;manage_profiles_list), ("row-activated"<br>), (((GCallback) (profile_list_row_activated_cb))), (app), ((<br>void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1347"><td class="num" id="LN1347">1347</td><td class="line"> <span class='macro'>G_CALLBACK (profile_list_row_activated_cb), app)<span class='macro_popup'>g_signal_connect_data ((app-&gt;manage_profiles_list), ("row-activated"<br>), (((GCallback) (profile_list_row_activated_cb))), (app), ((<br>void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1348"><td class="num" id="LN1348">1348</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1349"><td class="num" id="LN1349">1349</td><td class="line"> gtk_container_add (<span class='macro'>GTK_CONTAINER (tree_view_container)<span class='macro_popup'>((((GtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((tree_view_container)), ((gtk_container_get_type ()))))))</span></span>, app-&gt;manage_profiles_list);</td></tr>
+<tr class="codeline" data-linenumber="1350"><td class="num" id="LN1350">1350</td><td class="line"> gtk_widget_show (app-&gt;manage_profiles_list);</td></tr>
+<tr class="codeline" data-linenumber="1351"><td class="num" id="LN1351">1351</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1352"><td class="num" id="LN1352">1352</td><td class="line"> <span class='macro'>g_signal_connect (new_button, <span class='string_literal'>"clicked"</span>,<span class='macro_popup'>g_signal_connect_data ((new_button), ("clicked"), (((GCallback<br>) (profile_list_new_button_clicked_cb))), (app-&gt;manage_profiles_list<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1353"><td class="num" id="LN1353">1353</td><td class="line"> <span class='macro'>G_CALLBACK (profile_list_new_button_clicked_cb),<span class='macro_popup'>g_signal_connect_data ((new_button), ("clicked"), (((GCallback<br>) (profile_list_new_button_clicked_cb))), (app-&gt;manage_profiles_list<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1354"><td class="num" id="LN1354">1354</td><td class="line"> <span class='macro'>app-&gt;manage_profiles_list)<span class='macro_popup'>g_signal_connect_data ((new_button), ("clicked"), (((GCallback<br>) (profile_list_new_button_clicked_cb))), (app-&gt;manage_profiles_list<br>), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1355"><td class="num" id="LN1355">1355</td><td class="line"> <span class='macro'>g_signal_connect (edit_button, <span class='string_literal'>"clicked"</span>,<span class='macro_popup'>g_signal_connect_data ((edit_button), ("clicked"), (((GCallback<br>) (profile_list_edit_button_clicked_cb))), (app-&gt;manage_profiles_list<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1356"><td class="num" id="LN1356">1356</td><td class="line"> <span class='macro'>G_CALLBACK (profile_list_edit_button_clicked_cb),<span class='macro_popup'>g_signal_connect_data ((edit_button), ("clicked"), (((GCallback<br>) (profile_list_edit_button_clicked_cb))), (app-&gt;manage_profiles_list<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1357"><td class="num" id="LN1357">1357</td><td class="line"> <span class='macro'>app-&gt;manage_profiles_list)<span class='macro_popup'>g_signal_connect_data ((edit_button), ("clicked"), (((GCallback<br>) (profile_list_edit_button_clicked_cb))), (app-&gt;manage_profiles_list<br>), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1358"><td class="num" id="LN1358">1358</td><td class="line"> <span class='macro'>g_signal_connect (remove_button, <span class='string_literal'>"clicked"</span>,<span class='macro_popup'>g_signal_connect_data ((remove_button), ("clicked"), (((GCallback<br>) (profile_list_delete_button_clicked_cb))), (app-&gt;manage_profiles_list<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1359"><td class="num" id="LN1359">1359</td><td class="line"> <span class='macro'>G_CALLBACK (profile_list_delete_button_clicked_cb),<span class='macro_popup'>g_signal_connect_data ((remove_button), ("clicked"), (((GCallback<br>) (profile_list_delete_button_clicked_cb))), (app-&gt;manage_profiles_list<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1360"><td class="num" id="LN1360">1360</td><td class="line"> <span class='macro'>app-&gt;manage_profiles_list)<span class='macro_popup'>g_signal_connect_data ((remove_button), ("clicked"), (((GCallback<br>) (profile_list_delete_button_clicked_cb))), (app-&gt;manage_profiles_list<br>), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1361"><td class="num" id="LN1361">1361</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1362"><td class="num" id="LN1362">1362</td><td class="line"> app-&gt;manage_profiles_default_menu = profile_combo_box_new (app);</td></tr>
+<tr class="codeline" data-linenumber="1363"><td class="num" id="LN1363">1363</td><td class="line"> <span class='macro'>g_signal_connect (app-&gt;manage_profiles_default_menu, <span class='string_literal'>"changed"</span>,<span class='macro_popup'>g_signal_connect_data ((app-&gt;manage_profiles_default_menu)<br>, ("changed"), (((GCallback) (profile_combo_box_changed_cb)))<br>, (app), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1364"><td class="num" id="LN1364">1364</td><td class="line"> <span class='macro'>G_CALLBACK (profile_combo_box_changed_cb), app)<span class='macro_popup'>g_signal_connect_data ((app-&gt;manage_profiles_default_menu)<br>, ("changed"), (((GCallback) (profile_combo_box_changed_cb)))<br>, (app), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1365"><td class="num" id="LN1365">1365</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1366"><td class="num" id="LN1366">1366</td><td class="line"> gtk_box_pack_start (<span class='macro'>GTK_BOX (default_hbox)<span class='macro_popup'>((((GtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((default_hbox)), ((gtk_box_get_type ()))))))</span></span>, app-&gt;manage_profiles_default_menu, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, 0);</td></tr>
+<tr class="codeline" data-linenumber="1367"><td class="num" id="LN1367">1367</td><td class="line"> gtk_widget_show (app-&gt;manage_profiles_default_menu);</td></tr>
+<tr class="codeline" data-linenumber="1368"><td class="num" id="LN1368">1368</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1369"><td class="num" id="LN1369">1369</td><td class="line"> gtk_label_set_mnemonic_widget (<span class='macro'>GTK_LABEL (default_label)<span class='macro_popup'>((((GtkLabel*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((default_label)), ((gtk_label_get_type ()))))))</span></span>, app-&gt;manage_profiles_default_menu);</td></tr>
+<tr class="codeline" data-linenumber="1370"><td class="num" id="LN1370">1370</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1371"><td class="num" id="LN1371">1371</td><td class="line"> gtk_widget_grab_focus (app-&gt;manage_profiles_list);</td></tr>
+<tr class="codeline" data-linenumber="1372"><td class="num" id="LN1372">1372</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1373"><td class="num" id="LN1373">1373</td><td class="line"> gtk_window_set_transient_for (<span class='macro'>GTK_WINDOW (app-&gt;manage_profiles_dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;manage_profiles_dialog)), ((gtk_window_get_type (<br>)))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1374"><td class="num" id="LN1374">1374</td><td class="line"> transient_parent);</td></tr>
+<tr class="codeline" data-linenumber="1375"><td class="num" id="LN1375">1375</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1376"><td class="num" id="LN1376">1376</td><td class="line"> gtk_window_present (<span class='macro'>GTK_WINDOW (app-&gt;manage_profiles_dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;manage_profiles_dialog)), ((gtk_window_get_type (<br>)))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1377"><td class="num" id="LN1377">1377</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1378"><td class="num" id="LN1378">1378</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1379"><td class="num" id="LN1379">1379</td><td class="line"><span class='directive'>#ifdef <span class='macro'>HAVE_SMCLIENT<span class='macro_popup'>1</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1380"><td class="num" id="LN1380">1380</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1381"><td class="num" id="LN1381">1381</td><td class="line">terminal_app_save_state_cb (EggSMClient *client,</td></tr>
+<tr class="codeline" data-linenumber="1382"><td class="num" id="LN1382">1382</td><td class="line"> GKeyFile *key_file,</td></tr>
+<tr class="codeline" data-linenumber="1383"><td class="num" id="LN1383">1383</td><td class="line"> TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="1384"><td class="num" id="LN1384">1384</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1385"><td class="num" id="LN1385">1385</td><td class="line"> terminal_app_save_config (app, key_file);</td></tr>
+<tr class="codeline" data-linenumber="1386"><td class="num" id="LN1386">1386</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1387"><td class="num" id="LN1387">1387</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1388"><td class="num" id="LN1388">1388</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1389"><td class="num" id="LN1389">1389</td><td class="line">terminal_app_client_quit_cb (EggSMClient *client,</td></tr>
+<tr class="codeline" data-linenumber="1390"><td class="num" id="LN1390">1390</td><td class="line"> TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="1391"><td class="num" id="LN1391">1391</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1392"><td class="num" id="LN1392">1392</td><td class="line"> g_signal_emit (app, signals[QUIT], 0);</td></tr>
+<tr class="codeline" data-linenumber="1393"><td class="num" id="LN1393">1393</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1394"><td class="num" id="LN1394">1394</td><td class="line"><span class='directive'>#endif /* HAVE_SMCLIENT */</span></td></tr>
+<tr class="codeline" data-linenumber="1395"><td class="num" id="LN1395">1395</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1396"><td class="num" id="LN1396">1396</td><td class="line"><span class='comment'>/* Class implementation */</span></td></tr>
+<tr class="codeline" data-linenumber="1397"><td class="num" id="LN1397">1397</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1398"><td class="num" id="LN1398">1398</td><td class="line"><span class='macro'>G_DEFINE_TYPE (TerminalApp, terminal_app, G_TYPE_OBJECT)<span class='macro_popup'>static void terminal_app_init (TerminalApp *self); static void<br> terminal_app_class_init (TerminalAppClass *klass); static GType<br> terminal_app_get_type_once (void); static gpointer terminal_app_parent_class<br> = ((void*)0); static gint TerminalApp_private_offset; static<br> void terminal_app_class_intern_init (gpointer klass) { terminal_app_parent_class<br> = g_type_class_peek_parent (klass); if (TerminalApp_private_offset<br> != 0) g_type_class_adjust_private_offset (klass, &amp;TerminalApp_private_offset<br>); terminal_app_class_init ((TerminalAppClass*) klass); } __attribute__<br> ((__unused__)) static inline gpointer terminal_app_get_instance_private<br> (TerminalApp *self) { return (((gpointer) ((guint8*) (self) +<br> (glong) (TerminalApp_private_offset)))); } GType terminal_app_get_type<br> (void) { static gsize static_g_define_type_id = 0; if ((__extension__<br> ({ _Static_assert (sizeof *(&amp;static_g_define_type_id) ==<br> sizeof (gpointer), "Expression evaluates to false"); (void) (<br>0 ? (gpointer) *(&amp;static_g_define_type_id) : ((void*)0));<br> (!(__extension__ ({ _Static_assert (sizeof *(&amp;static_g_define_type_id<br>) == sizeof (gpointer), "Expression evaluates to false"); __typeof__<br> (*(&amp;static_g_define_type_id)) gapg_temp_newval; __typeof__<br> ((&amp;static_g_define_type_id)) gapg_temp_atomic = (&amp;static_g_define_type_id<br>); __atomic_load (gapg_temp_atomic, &amp;gapg_temp_newval, 5)<br>; gapg_temp_newval; })) &amp;&amp; g_once_init_enter (&amp;static_g_define_type_id<br>)); }))) { GType g_define_type_id = terminal_app_get_type_once<br> (); (__extension__ ({ _Static_assert (sizeof *(&amp;static_g_define_type_id<br>) == sizeof (gpointer), "Expression evaluates to false"); 0 ?<br> (void) (*(&amp;static_g_define_type_id) = (g_define_type_id)<br>) : (void) 0; g_once_init_leave ((&amp;static_g_define_type_id<br>), (gsize) (g_define_type_id)); })); } return static_g_define_type_id<br>; } __attribute__ ((__noinline__)) static GType terminal_app_get_type_once<br> (void) { GType g_define_type_id = g_type_register_static_simple<br> (((GType) ((20) &lt;&lt; (2))), g_intern_static_string ("TerminalApp"<br>), sizeof (TerminalAppClass), (GClassInitFunc)(void (*)(void)<br>) terminal_app_class_intern_init, sizeof (TerminalApp), (GInstanceInitFunc<br>)(void (*)(void)) terminal_app_init, (GTypeFlags) 0); { {{};}<br> } return g_define_type_id; }</span></span></td></tr>
+<tr class="codeline" data-linenumber="1399"><td class="num" id="LN1399">1399</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1400"><td class="num" id="LN1400">1400</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1401"><td class="num" id="LN1401">1401</td><td class="line">terminal_app_init (TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="1402"><td class="num" id="LN1402">1402</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1403"><td class="num" id="LN1403">1403</td><td class="line"> global_app = app;</td></tr>
+<tr class="codeline" data-linenumber="1404"><td class="num" id="LN1404">1404</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1405"><td class="num" id="LN1405">1405</td><td class="line"> gtk_window_set_default_icon_name (<span class='macro'>MATE_TERMINAL_ICON_NAME<span class='macro_popup'>"utilities-terminal"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1406"><td class="num" id="LN1406">1406</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1407"><td class="num" id="LN1407">1407</td><td class="line"> <span class='comment'>/* Initialise defaults */</span></td></tr>
+<tr class="codeline" data-linenumber="1408"><td class="num" id="LN1408">1408</td><td class="line"> app-&gt;enable_mnemonics = <span class='macro'>DEFAULT_ENABLE_MNEMONICS<span class='macro_popup'>((!(0)))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1409"><td class="num" id="LN1409">1409</td><td class="line"> app-&gt;enable_menu_accels = <span class='macro'>DEFAULT_ENABLE_MENU_BAR_ACCEL<span class='macro_popup'>((!(0)))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1410"><td class="num" id="LN1410">1410</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1411"><td class="num" id="LN1411">1411</td><td class="line"> app-&gt;profiles = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref);</td></tr>
+<tr class="codeline" data-linenumber="1412"><td class="num" id="LN1412">1412</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1413"><td class="num" id="LN1413">1413</td><td class="line"> app-&gt;encodings = terminal_encodings_get_builtins ();</td></tr>
+<tr class="codeline" data-linenumber="1414"><td class="num" id="LN1414">1414</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1415"><td class="num" id="LN1415">1415</td><td class="line"> settings_global = g_settings_new (<span class='macro'>CONF_GLOBAL_SCHEMA<span class='macro_popup'>"org.mate.terminal" ".global"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1416"><td class="num" id="LN1416">1416</td><td class="line"> app-&gt;settings_font = g_settings_new (<span class='macro'>MONOSPACE_FONT_SCHEMA<span class='macro_popup'>"org.mate.interface"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1417"><td class="num" id="LN1417">1417</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1418"><td class="num" id="LN1418">1418</td><td class="line"> <span class='macro'>g_signal_connect (settings_global,<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "profile-list"<br>), (((GCallback) (terminal_app_profile_list_notify_cb))), (app<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1419"><td class="num" id="LN1419">1419</td><td class="line"> <span class='string_literal'><span class='macro'>"changed::"</span> PROFILE_LIST_KEY,<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "profile-list"<br>), (((GCallback) (terminal_app_profile_list_notify_cb))), (app<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1420"><td class="num" id="LN1420">1420</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_app_profile_list_notify_cb),<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "profile-list"<br>), (((GCallback) (terminal_app_profile_list_notify_cb))), (app<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1421"><td class="num" id="LN1421">1421</td><td class="line"> <span class='macro'>app)<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "profile-list"<br>), (((GCallback) (terminal_app_profile_list_notify_cb))), (app<br>), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1422"><td class="num" id="LN1422">1422</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1423"><td class="num" id="LN1423">1423</td><td class="line"> <span class='macro'>g_signal_connect (settings_global,<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "default-profile"<br>), (((GCallback) (terminal_app_default_profile_notify_cb))), (<br>app), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1424"><td class="num" id="LN1424">1424</td><td class="line"> <span class='string_literal'><span class='macro'>"changed::"</span> DEFAULT_PROFILE_KEY,<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "default-profile"<br>), (((GCallback) (terminal_app_default_profile_notify_cb))), (<br>app), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1425"><td class="num" id="LN1425">1425</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_app_default_profile_notify_cb),<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "default-profile"<br>), (((GCallback) (terminal_app_default_profile_notify_cb))), (<br>app), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1426"><td class="num" id="LN1426">1426</td><td class="line"> <span class='macro'>app)<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "default-profile"<br>), (((GCallback) (terminal_app_default_profile_notify_cb))), (<br>app), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1427"><td class="num" id="LN1427">1427</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1428"><td class="num" id="LN1428">1428</td><td class="line"> <span class='macro'>g_signal_connect (settings_global,<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "active-encodings"<br>), (((GCallback) (terminal_app_encoding_list_notify_cb))), (app<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1429"><td class="num" id="LN1429">1429</td><td class="line"> <span class='string_literal'><span class='macro'>"changed::"</span> ENCODING_LIST_KEY,<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "active-encodings"<br>), (((GCallback) (terminal_app_encoding_list_notify_cb))), (app<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1430"><td class="num" id="LN1430">1430</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_app_encoding_list_notify_cb),<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "active-encodings"<br>), (((GCallback) (terminal_app_encoding_list_notify_cb))), (app<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1431"><td class="num" id="LN1431">1431</td><td class="line"> <span class='macro'>app)<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "active-encodings"<br>), (((GCallback) (terminal_app_encoding_list_notify_cb))), (app<br>), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1432"><td class="num" id="LN1432">1432</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1433"><td class="num" id="LN1433">1433</td><td class="line"> <span class='macro'>g_signal_connect (app-&gt;settings_font,<span class='macro_popup'>g_signal_connect_data ((app-&gt;settings_font), ("changed::" "monospace-font-name"<br>), (((GCallback) (terminal_app_system_font_notify_cb))), (app<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1434"><td class="num" id="LN1434">1434</td><td class="line"> <span class='string_literal'><span class='macro'>"changed::"</span> MONOSPACE_FONT_KEY,<span class='macro_popup'>g_signal_connect_data ((app-&gt;settings_font), ("changed::" "monospace-font-name"<br>), (((GCallback) (terminal_app_system_font_notify_cb))), (app<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1435"><td class="num" id="LN1435">1435</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_app_system_font_notify_cb),<span class='macro_popup'>g_signal_connect_data ((app-&gt;settings_font), ("changed::" "monospace-font-name"<br>), (((GCallback) (terminal_app_system_font_notify_cb))), (app<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1436"><td class="num" id="LN1436">1436</td><td class="line"> <span class='macro'>app)<span class='macro_popup'>g_signal_connect_data ((app-&gt;settings_font), ("changed::" "monospace-font-name"<br>), (((GCallback) (terminal_app_system_font_notify_cb))), (app<br>), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1437"><td class="num" id="LN1437">1437</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1438"><td class="num" id="LN1438">1438</td><td class="line"> <span class='macro'>g_signal_connect (settings_global,<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "use-mnemonics"<br>), (((GCallback) (terminal_app_enable_mnemonics_notify_cb))),<br> (app), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1439"><td class="num" id="LN1439">1439</td><td class="line"> <span class='string_literal'><span class='macro'>"changed::"</span> ENABLE_MNEMONICS_KEY,<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "use-mnemonics"<br>), (((GCallback) (terminal_app_enable_mnemonics_notify_cb))),<br> (app), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1440"><td class="num" id="LN1440">1440</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_app_enable_mnemonics_notify_cb),<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "use-mnemonics"<br>), (((GCallback) (terminal_app_enable_mnemonics_notify_cb))),<br> (app), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1441"><td class="num" id="LN1441">1441</td><td class="line"> <span class='macro'>app)<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "use-mnemonics"<br>), (((GCallback) (terminal_app_enable_mnemonics_notify_cb))),<br> (app), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1442"><td class="num" id="LN1442">1442</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1443"><td class="num" id="LN1443">1443</td><td class="line"> <span class='macro'>g_signal_connect (settings_global,<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "use-menu-accelerators"<br>), (((GCallback) (terminal_app_enable_menu_accels_notify_cb))<br>), (app), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1444"><td class="num" id="LN1444">1444</td><td class="line"> <span class='string_literal'><span class='macro'>"changed::"</span> ENABLE_MENU_BAR_ACCEL_KEY,<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "use-menu-accelerators"<br>), (((GCallback) (terminal_app_enable_menu_accels_notify_cb))<br>), (app), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1445"><td class="num" id="LN1445">1445</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_app_enable_menu_accels_notify_cb),<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "use-menu-accelerators"<br>), (((GCallback) (terminal_app_enable_menu_accels_notify_cb))<br>), (app), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1446"><td class="num" id="LN1446">1446</td><td class="line"> <span class='macro'>app)<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "use-menu-accelerators"<br>), (((GCallback) (terminal_app_enable_menu_accels_notify_cb))<br>), (app), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1447"><td class="num" id="LN1447">1447</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1448"><td class="num" id="LN1448">1448</td><td class="line"> <span class='comment'>/* Load the settings */</span></td></tr>
+<tr class="codeline" data-linenumber="1449"><td class="num" id="LN1449">1449</td><td class="line"> terminal_app_profile_list_notify_cb (settings_global,</td></tr>
+<tr class="codeline" data-linenumber="1450"><td class="num" id="LN1450">1450</td><td class="line"> <span class='macro'>PROFILE_LIST_KEY<span class='macro_popup'>"profile-list"</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1451"><td class="num" id="LN1451">1451</td><td class="line"> app);</td></tr>
+<tr class="codeline" data-linenumber="1452"><td class="num" id="LN1452">1452</td><td class="line"> terminal_app_default_profile_notify_cb (settings_global,</td></tr>
+<tr class="codeline" data-linenumber="1453"><td class="num" id="LN1453">1453</td><td class="line"> <span class='macro'>DEFAULT_PROFILE_KEY<span class='macro_popup'>"default-profile"</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1454"><td class="num" id="LN1454">1454</td><td class="line"> app);</td></tr>
+<tr class="codeline" data-linenumber="1455"><td class="num" id="LN1455">1455</td><td class="line"> terminal_app_encoding_list_notify_cb (settings_global,</td></tr>
+<tr class="codeline" data-linenumber="1456"><td class="num" id="LN1456">1456</td><td class="line"> <span class='macro'>ENCODING_LIST_KEY<span class='macro_popup'>"active-encodings"</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1457"><td class="num" id="LN1457">1457</td><td class="line"> app);</td></tr>
+<tr class="codeline" data-linenumber="1458"><td class="num" id="LN1458">1458</td><td class="line"> terminal_app_system_font_notify_cb (app-&gt;settings_font,</td></tr>
+<tr class="codeline" data-linenumber="1459"><td class="num" id="LN1459">1459</td><td class="line"> <span class='macro'>MONOSPACE_FONT_KEY<span class='macro_popup'>"monospace-font-name"</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1460"><td class="num" id="LN1460">1460</td><td class="line"> app);</td></tr>
+<tr class="codeline" data-linenumber="1461"><td class="num" id="LN1461">1461</td><td class="line"> terminal_app_enable_menu_accels_notify_cb (settings_global,</td></tr>
+<tr class="codeline" data-linenumber="1462"><td class="num" id="LN1462">1462</td><td class="line"> <span class='macro'>ENABLE_MENU_BAR_ACCEL_KEY<span class='macro_popup'>"use-menu-accelerators"</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1463"><td class="num" id="LN1463">1463</td><td class="line"> app);</td></tr>
+<tr class="codeline" data-linenumber="1464"><td class="num" id="LN1464">1464</td><td class="line"> terminal_app_enable_mnemonics_notify_cb (settings_global,</td></tr>
+<tr class="codeline" data-linenumber="1465"><td class="num" id="LN1465">1465</td><td class="line"> <span class='macro'>ENABLE_MNEMONICS_KEY<span class='macro_popup'>"use-mnemonics"</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1466"><td class="num" id="LN1466">1466</td><td class="line"> app);</td></tr>
+<tr class="codeline" data-linenumber="1467"><td class="num" id="LN1467">1467</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1468"><td class="num" id="LN1468">1468</td><td class="line"> <span class='comment'>/* Ensure we have valid settings */</span></td></tr>
+<tr class="codeline" data-linenumber="1469"><td class="num" id="LN1469">1469</td><td class="line"> <span class='macro'>g_assert (app-&gt;default_profile_id != NULL)<span class='macro_popup'>do { if (app-&gt;default_profile_id != ((void*)0)) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-app.c", 1469, ((const char*) (__func__<br>)), "app-&gt;default_profile_id != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1470"><td class="num" id="LN1470">1470</td><td class="line"> <span class='macro'>g_assert (app-&gt;system_font_desc != NULL)<span class='macro_popup'>do { if (app-&gt;system_font_desc != ((void*)0)) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-app.c", 1470, ((const char*) (__func__<br>)), "app-&gt;system_font_desc != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1471"><td class="num" id="LN1471">1471</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1472"><td class="num" id="LN1472">1472</td><td class="line"> terminal_accels_init ();</td></tr>
+<tr class="codeline" data-linenumber="1473"><td class="num" id="LN1473">1473</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1474"><td class="num" id="LN1474">1474</td><td class="line"><span class='directive'>#ifdef <span class='macro'>HAVE_SMCLIENT<span class='macro_popup'>1</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1475"><td class="num" id="LN1475">1475</td><td class="line"> EggSMClient *sm_client;</td></tr>
+<tr class="codeline" data-linenumber="1476"><td class="num" id="LN1476">1476</td><td class="line"> <span class='keyword'>char</span> *desktop_file;</td></tr>
+<tr class="codeline" data-linenumber="1477"><td class="num" id="LN1477">1477</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1478"><td class="num" id="LN1478">1478</td><td class="line"> desktop_file = g_build_filename (<span class='macro'>TERM_DATADIR<span class='macro_popup'>"/usr/local/share"</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1479"><td class="num" id="LN1479">1479</td><td class="line"> <span class='string_literal'>"applications"</span>,</td></tr>
+<tr class="codeline" data-linenumber="1480"><td class="num" id="LN1480">1480</td><td class="line"> <span class='macro'>PACKAGE<span class='macro_popup'>"mate-terminal"</span></span> <span class='string_literal'>".desktop"</span>,</td></tr>
+<tr class="codeline" data-linenumber="1481"><td class="num" id="LN1481">1481</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1482"><td class="num" id="LN1482">1482</td><td class="line"> egg_set_desktop_file_without_defaults (desktop_file);</td></tr>
+<tr class="codeline" data-linenumber="1483"><td class="num" id="LN1483">1483</td><td class="line"> g_free (desktop_file);</td></tr>
+<tr class="codeline" data-linenumber="1484"><td class="num" id="LN1484">1484</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1485"><td class="num" id="LN1485">1485</td><td class="line"> sm_client = egg_sm_client_get ();</td></tr>
+<tr class="codeline" data-linenumber="1486"><td class="num" id="LN1486">1486</td><td class="line"> <span class='macro'>g_signal_connect (sm_client, <span class='string_literal'>"save-state"</span>,<span class='macro_popup'>g_signal_connect_data ((sm_client), ("save-state"), (((GCallback<br>) (terminal_app_save_state_cb))), (app), ((void*)0), (GConnectFlags<br>) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1487"><td class="num" id="LN1487">1487</td><td class="line"> <span class='macro'>G_CALLBACK (terminal_app_save_state_cb), app)<span class='macro_popup'>g_signal_connect_data ((sm_client), ("save-state"), (((GCallback<br>) (terminal_app_save_state_cb))), (app), ((void*)0), (GConnectFlags<br>) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1488"><td class="num" id="LN1488">1488</td><td class="line"> <span class='macro'>g_signal_connect (sm_client, <span class='string_literal'>"quit"</span>,<span class='macro_popup'>g_signal_connect_data ((sm_client), ("quit"), (((GCallback) (<br>terminal_app_client_quit_cb))), (app), ((void*)0), (GConnectFlags<br>) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1489"><td class="num" id="LN1489">1489</td><td class="line"> <span class='macro'>G_CALLBACK (terminal_app_client_quit_cb), app)<span class='macro_popup'>g_signal_connect_data ((sm_client), ("quit"), (((GCallback) (<br>terminal_app_client_quit_cb))), (app), ((void*)0), (GConnectFlags<br>) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1490"><td class="num" id="LN1490">1490</td><td class="line"><span class='directive'>#endif /* HAVE_SMCLIENT */</span></td></tr>
+<tr class="codeline" data-linenumber="1491"><td class="num" id="LN1491">1491</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1492"><td class="num" id="LN1492">1492</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1493"><td class="num" id="LN1493">1493</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1494"><td class="num" id="LN1494">1494</td><td class="line">terminal_app_finalize (GObject *object)</td></tr>
+<tr class="codeline" data-linenumber="1495"><td class="num" id="LN1495">1495</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1496"><td class="num" id="LN1496">1496</td><td class="line"> TerminalApp *app = <span class='macro'>TERMINAL_APP (object)<span class='macro_popup'>((((TerminalApp*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((object)), ((terminal_app_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1497"><td class="num" id="LN1497">1497</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1498"><td class="num" id="LN1498">1498</td><td class="line"><span class='directive'>#ifdef <span class='macro'>HAVE_SMCLIENT<span class='macro_popup'>1</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1499"><td class="num" id="LN1499">1499</td><td class="line"> EggSMClient *sm_client;</td></tr>
+<tr class="codeline" data-linenumber="1500"><td class="num" id="LN1500">1500</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1501"><td class="num" id="LN1501">1501</td><td class="line"> sm_client = egg_sm_client_get ();</td></tr>
+<tr class="codeline" data-linenumber="1502"><td class="num" id="LN1502">1502</td><td class="line"> g_signal_handlers_disconnect_matched (sm_client, G_SIGNAL_MATCH_DATA,</td></tr>
+<tr class="codeline" data-linenumber="1503"><td class="num" id="LN1503">1503</td><td class="line"> 0, 0, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, app);</td></tr>
+<tr class="codeline" data-linenumber="1504"><td class="num" id="LN1504">1504</td><td class="line"><span class='directive'>#endif /* HAVE_SMCLIENT */</span></td></tr>
+<tr class="codeline" data-linenumber="1505"><td class="num" id="LN1505">1505</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1506"><td class="num" id="LN1506">1506</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (settings_global,<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_profile_list_notify_cb))), (app<br>))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1507"><td class="num" id="LN1507">1507</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_app_profile_list_notify_cb),<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_profile_list_notify_cb))), (app<br>))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1508"><td class="num" id="LN1508">1508</td><td class="line"> <span class='macro'>app)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_profile_list_notify_cb))), (app<br>))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1509"><td class="num" id="LN1509">1509</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (settings_global,<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_default_profile_notify_cb))),<br> (app))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1510"><td class="num" id="LN1510">1510</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_app_default_profile_notify_cb),<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_default_profile_notify_cb))),<br> (app))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1511"><td class="num" id="LN1511">1511</td><td class="line"> <span class='macro'>app)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_default_profile_notify_cb))),<br> (app))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1512"><td class="num" id="LN1512">1512</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (settings_global,<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_encoding_list_notify_cb))), (<br>app))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1513"><td class="num" id="LN1513">1513</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_app_encoding_list_notify_cb),<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_encoding_list_notify_cb))), (<br>app))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1514"><td class="num" id="LN1514">1514</td><td class="line"> <span class='macro'>app)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_encoding_list_notify_cb))), (<br>app))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1515"><td class="num" id="LN1515">1515</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (app-&gt;settings_font,<span class='macro_popup'>g_signal_handlers_disconnect_matched ((app-&gt;settings_font)<br>, (GSignalMatchType) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA<br>), 0, 0, ((void*)0), (((GCallback) (terminal_app_system_font_notify_cb<br>))), (app))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1516"><td class="num" id="LN1516">1516</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_app_system_font_notify_cb),<span class='macro_popup'>g_signal_handlers_disconnect_matched ((app-&gt;settings_font)<br>, (GSignalMatchType) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA<br>), 0, 0, ((void*)0), (((GCallback) (terminal_app_system_font_notify_cb<br>))), (app))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1517"><td class="num" id="LN1517">1517</td><td class="line"> <span class='macro'>app)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((app-&gt;settings_font)<br>, (GSignalMatchType) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA<br>), 0, 0, ((void*)0), (((GCallback) (terminal_app_system_font_notify_cb<br>))), (app))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1518"><td class="num" id="LN1518">1518</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (settings_global,<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_enable_menu_accels_notify_cb)<br>)), (app))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1519"><td class="num" id="LN1519">1519</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_app_enable_menu_accels_notify_cb),<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_enable_menu_accels_notify_cb)<br>)), (app))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1520"><td class="num" id="LN1520">1520</td><td class="line"> <span class='macro'>app)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_enable_menu_accels_notify_cb)<br>)), (app))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1521"><td class="num" id="LN1521">1521</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (settings_global,<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_enable_mnemonics_notify_cb)))<br>, (app))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1522"><td class="num" id="LN1522">1522</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_app_enable_mnemonics_notify_cb),<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_enable_mnemonics_notify_cb)))<br>, (app))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1523"><td class="num" id="LN1523">1523</td><td class="line"> <span class='macro'>app)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_enable_mnemonics_notify_cb)))<br>, (app))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1524"><td class="num" id="LN1524">1524</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1525"><td class="num" id="LN1525">1525</td><td class="line"> g_object_unref (settings_global);</td></tr>
+<tr class="codeline" data-linenumber="1526"><td class="num" id="LN1526">1526</td><td class="line"> g_object_unref (app-&gt;settings_font);</td></tr>
+<tr class="codeline" data-linenumber="1527"><td class="num" id="LN1527">1527</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1528"><td class="num" id="LN1528">1528</td><td class="line"> g_free (app-&gt;default_profile_id);</td></tr>
+<tr class="codeline" data-linenumber="1529"><td class="num" id="LN1529">1529</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1530"><td class="num" id="LN1530">1530</td><td class="line"> g_hash_table_destroy (app-&gt;profiles);</td></tr>
+<tr class="codeline" data-linenumber="1531"><td class="num" id="LN1531">1531</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1532"><td class="num" id="LN1532">1532</td><td class="line"> g_hash_table_destroy (app-&gt;encodings);</td></tr>
+<tr class="codeline" data-linenumber="1533"><td class="num" id="LN1533">1533</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1534"><td class="num" id="LN1534">1534</td><td class="line"> pango_font_description_free (app-&gt;system_font_desc);</td></tr>
+<tr class="codeline" data-linenumber="1535"><td class="num" id="LN1535">1535</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1536"><td class="num" id="LN1536">1536</td><td class="line"> terminal_accels_shutdown ();</td></tr>
+<tr class="codeline" data-linenumber="1537"><td class="num" id="LN1537">1537</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1538"><td class="num" id="LN1538">1538</td><td class="line"> <span class='macro'>G_OBJECT_CLASS (terminal_app_parent_class)<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((terminal_app_parent_class)), (((GType) ((20) &lt;&lt; (2<br>))))))))</span></span>-&gt;finalize (object);</td></tr>
+<tr class="codeline" data-linenumber="1539"><td class="num" id="LN1539">1539</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1540"><td class="num" id="LN1540">1540</td><td class="line"> global_app = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1541"><td class="num" id="LN1541">1541</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1542"><td class="num" id="LN1542">1542</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1543"><td class="num" id="LN1543">1543</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1544"><td class="num" id="LN1544">1544</td><td class="line">terminal_app_get_property (GObject *object,</td></tr>
+<tr class="codeline" data-linenumber="1545"><td class="num" id="LN1545">1545</td><td class="line"> guint prop_id,</td></tr>
+<tr class="codeline" data-linenumber="1546"><td class="num" id="LN1546">1546</td><td class="line"> GValue *value,</td></tr>
+<tr class="codeline" data-linenumber="1547"><td class="num" id="LN1547">1547</td><td class="line"> GParamSpec *pspec)</td></tr>
+<tr class="codeline" data-linenumber="1548"><td class="num" id="LN1548">1548</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1549"><td class="num" id="LN1549">1549</td><td class="line"> TerminalApp *app = <span class='macro'>TERMINAL_APP (object)<span class='macro_popup'>((((TerminalApp*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((object)), ((terminal_app_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1550"><td class="num" id="LN1550">1550</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1551"><td class="num" id="LN1551">1551</td><td class="line"> <span class='keyword'>switch</span> (prop_id)</td></tr>
+<tr class="codeline" data-linenumber="1552"><td class="num" id="LN1552">1552</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1553"><td class="num" id="LN1553">1553</td><td class="line"> <span class='keyword'>case</span> PROP_SYSTEM_FONT:</td></tr>
+<tr class="codeline" data-linenumber="1554"><td class="num" id="LN1554">1554</td><td class="line"> <span class='keyword'>if</span> (app-&gt;system_font_desc)</td></tr>
+<tr class="codeline" data-linenumber="1555"><td class="num" id="LN1555">1555</td><td class="line"> g_value_set_boxed (value, app-&gt;system_font_desc);</td></tr>
+<tr class="codeline" data-linenumber="1556"><td class="num" id="LN1556">1556</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="1557"><td class="num" id="LN1557">1557</td><td class="line"> g_value_take_boxed (value, pango_font_description_from_string (<span class='macro'>DEFAULT_MONOSPACE_FONT<span class='macro_popup'>("Monospace 10")</span></span>));</td></tr>
+<tr class="codeline" data-linenumber="1558"><td class="num" id="LN1558">1558</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1559"><td class="num" id="LN1559">1559</td><td class="line"> <span class='keyword'>case</span> PROP_ENABLE_MENU_BAR_ACCEL:</td></tr>
+<tr class="codeline" data-linenumber="1560"><td class="num" id="LN1560">1560</td><td class="line"> g_value_set_boolean (value, app-&gt;enable_menu_accels);</td></tr>
+<tr class="codeline" data-linenumber="1561"><td class="num" id="LN1561">1561</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1562"><td class="num" id="LN1562">1562</td><td class="line"> <span class='keyword'>case</span> PROP_ENABLE_MNEMONICS:</td></tr>
+<tr class="codeline" data-linenumber="1563"><td class="num" id="LN1563">1563</td><td class="line"> g_value_set_boolean (value, app-&gt;enable_mnemonics);</td></tr>
+<tr class="codeline" data-linenumber="1564"><td class="num" id="LN1564">1564</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1565"><td class="num" id="LN1565">1565</td><td class="line"> <span class='keyword'>case</span> PROP_DEFAULT_PROFILE:</td></tr>
+<tr class="codeline" data-linenumber="1566"><td class="num" id="LN1566">1566</td><td class="line"> g_value_set_object (value, app-&gt;default_profile);</td></tr>
+<tr class="codeline" data-linenumber="1567"><td class="num" id="LN1567">1567</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1568"><td class="num" id="LN1568">1568</td><td class="line"> <span class='keyword'>default</span>:</td></tr>
+<tr class="codeline" data-linenumber="1569"><td class="num" id="LN1569">1569</td><td class="line"> <span class='macro'>G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec)<span class='macro_popup'>do { GObject *_glib__object = (GObject*) ((object)); GParamSpec<br> *_glib__pspec = (GParamSpec*) ((pspec)); guint _glib__property_id<br> = ((prop_id)); g_warning ("%s:%d: invalid %s id %u for \"%s\" of type '%s' in '%s'"<br>, "terminal-app.c", 1569, ("property"), _glib__property_id, _glib__pspec<br>-&gt;name, g_type_name ((((((GTypeClass*) (((GTypeInstance*) (<br>_glib__pspec))-&gt;g_class))-&gt;g_type)))), (g_type_name (((<br>(((GTypeClass*) (((GTypeInstance*) (_glib__object))-&gt;g_class<br>))-&gt;g_type)))))); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1570"><td class="num" id="LN1570">1570</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1571"><td class="num" id="LN1571">1571</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1572"><td class="num" id="LN1572">1572</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1573"><td class="num" id="LN1573">1573</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1574"><td class="num" id="LN1574">1574</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1575"><td class="num" id="LN1575">1575</td><td class="line">terminal_app_set_property (GObject *object,</td></tr>
+<tr class="codeline" data-linenumber="1576"><td class="num" id="LN1576">1576</td><td class="line"> guint prop_id,</td></tr>
+<tr class="codeline" data-linenumber="1577"><td class="num" id="LN1577">1577</td><td class="line"> <span class='keyword'>const</span> GValue *value,</td></tr>
+<tr class="codeline" data-linenumber="1578"><td class="num" id="LN1578">1578</td><td class="line"> GParamSpec *pspec)</td></tr>
+<tr class="codeline" data-linenumber="1579"><td class="num" id="LN1579">1579</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1580"><td class="num" id="LN1580">1580</td><td class="line"> TerminalApp *app = <span class='macro'>TERMINAL_APP (object)<span class='macro_popup'>((((TerminalApp*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((object)), ((terminal_app_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1581"><td class="num" id="LN1581">1581</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1582"><td class="num" id="LN1582">1582</td><td class="line"> <span class='keyword'>switch</span> (prop_id)</td></tr>
+<tr class="codeline" data-linenumber="1583"><td class="num" id="LN1583">1583</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1584"><td class="num" id="LN1584">1584</td><td class="line"> <span class='keyword'>case</span> PROP_ENABLE_MENU_BAR_ACCEL:</td></tr>
+<tr class="codeline" data-linenumber="1585"><td class="num" id="LN1585">1585</td><td class="line"> app-&gt;enable_menu_accels = g_value_get_boolean (value);</td></tr>
+<tr class="codeline" data-linenumber="1586"><td class="num" id="LN1586">1586</td><td class="line"> g_settings_set_boolean (settings_global, <span class='macro'>ENABLE_MENU_BAR_ACCEL_KEY<span class='macro_popup'>"use-menu-accelerators"</span></span>, app-&gt;enable_menu_accels);</td></tr>
+<tr class="codeline" data-linenumber="1587"><td class="num" id="LN1587">1587</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1588"><td class="num" id="LN1588">1588</td><td class="line"> <span class='keyword'>case</span> PROP_ENABLE_MNEMONICS:</td></tr>
+<tr class="codeline" data-linenumber="1589"><td class="num" id="LN1589">1589</td><td class="line"> app-&gt;enable_mnemonics = g_value_get_boolean (value);</td></tr>
+<tr class="codeline" data-linenumber="1590"><td class="num" id="LN1590">1590</td><td class="line"> g_settings_set_boolean (settings_global, <span class='macro'>ENABLE_MNEMONICS_KEY<span class='macro_popup'>"use-mnemonics"</span></span>, app-&gt;enable_mnemonics);</td></tr>
+<tr class="codeline" data-linenumber="1591"><td class="num" id="LN1591">1591</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1592"><td class="num" id="LN1592">1592</td><td class="line"> <span class='keyword'>case</span> PROP_DEFAULT_PROFILE:</td></tr>
+<tr class="codeline" data-linenumber="1593"><td class="num" id="LN1593">1593</td><td class="line"> <span class='keyword'>case</span> PROP_SYSTEM_FONT:</td></tr>
+<tr class="codeline" data-linenumber="1594"><td class="num" id="LN1594">1594</td><td class="line"> <span class='comment'>/* not writable */</span></td></tr>
+<tr class="codeline" data-linenumber="1595"><td class="num" id="LN1595">1595</td><td class="line"> <span class='keyword'>default</span>:</td></tr>
+<tr class="codeline" data-linenumber="1596"><td class="num" id="LN1596">1596</td><td class="line"> <span class='macro'>G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec)<span class='macro_popup'>do { GObject *_glib__object = (GObject*) ((object)); GParamSpec<br> *_glib__pspec = (GParamSpec*) ((pspec)); guint _glib__property_id<br> = ((prop_id)); g_warning ("%s:%d: invalid %s id %u for \"%s\" of type '%s' in '%s'"<br>, "terminal-app.c", 1596, ("property"), _glib__property_id, _glib__pspec<br>-&gt;name, g_type_name ((((((GTypeClass*) (((GTypeInstance*) (<br>_glib__pspec))-&gt;g_class))-&gt;g_type)))), (g_type_name (((<br>(((GTypeClass*) (((GTypeInstance*) (_glib__object))-&gt;g_class<br>))-&gt;g_type)))))); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1597"><td class="num" id="LN1597">1597</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1598"><td class="num" id="LN1598">1598</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1599"><td class="num" id="LN1599">1599</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1600"><td class="num" id="LN1600">1600</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1601"><td class="num" id="LN1601">1601</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1602"><td class="num" id="LN1602">1602</td><td class="line">terminal_app_real_quit (TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="1603"><td class="num" id="LN1603">1603</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1604"><td class="num" id="LN1604">1604</td><td class="line"> gtk_main_quit();</td></tr>
+<tr class="codeline" data-linenumber="1605"><td class="num" id="LN1605">1605</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1606"><td class="num" id="LN1606">1606</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1607"><td class="num" id="LN1607">1607</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1608"><td class="num" id="LN1608">1608</td><td class="line">terminal_app_class_init (TerminalAppClass *klass)</td></tr>
+<tr class="codeline" data-linenumber="1609"><td class="num" id="LN1609">1609</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1610"><td class="num" id="LN1610">1610</td><td class="line"> GObjectClass *object_class = <span class='macro'>G_OBJECT_CLASS (klass)<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((klass)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1611"><td class="num" id="LN1611">1611</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1612"><td class="num" id="LN1612">1612</td><td class="line"> object_class-&gt;finalize = terminal_app_finalize;</td></tr>
+<tr class="codeline" data-linenumber="1613"><td class="num" id="LN1613">1613</td><td class="line"> object_class-&gt;get_property = terminal_app_get_property;</td></tr>
+<tr class="codeline" data-linenumber="1614"><td class="num" id="LN1614">1614</td><td class="line"> object_class-&gt;set_property = terminal_app_set_property;</td></tr>
+<tr class="codeline" data-linenumber="1615"><td class="num" id="LN1615">1615</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1616"><td class="num" id="LN1616">1616</td><td class="line"> klass-&gt;quit = terminal_app_real_quit;</td></tr>
+<tr class="codeline" data-linenumber="1617"><td class="num" id="LN1617">1617</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1618"><td class="num" id="LN1618">1618</td><td class="line"> signals[QUIT] =</td></tr>
+<tr class="codeline" data-linenumber="1619"><td class="num" id="LN1619">1619</td><td class="line"> g_signal_new (<span class='macro'>I_(<span class='string_literal'>"quit"</span>)<span class='macro_popup'>g_intern_static_string ("quit")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1620"><td class="num" id="LN1620">1620</td><td class="line"> <span class='macro'>G_OBJECT_CLASS_TYPE (object_class)<span class='macro_popup'>((((GTypeClass*) (object_class))-&gt;g_type))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1621"><td class="num" id="LN1621">1621</td><td class="line"> G_SIGNAL_RUN_LAST,</td></tr>
+<tr class="codeline" data-linenumber="1622"><td class="num" id="LN1622">1622</td><td class="line"> <span class='macro'>G_STRUCT_OFFSET (TerminalAppClass, quit)<span class='macro_popup'>((glong) __builtin_offsetof(TerminalAppClass, quit))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1623"><td class="num" id="LN1623">1623</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1624"><td class="num" id="LN1624">1624</td><td class="line"> g_cclosure_marshal_VOID__VOID,</td></tr>
+<tr class="codeline" data-linenumber="1625"><td class="num" id="LN1625">1625</td><td class="line"> <span class='macro'>G_TYPE_NONE<span class='macro_popup'>((GType) ((1) &lt;&lt; (2)))</span></span>, 0);</td></tr>
+<tr class="codeline" data-linenumber="1626"><td class="num" id="LN1626">1626</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1627"><td class="num" id="LN1627">1627</td><td class="line"> signals[PROFILE_LIST_CHANGED] =</td></tr>
+<tr class="codeline" data-linenumber="1628"><td class="num" id="LN1628">1628</td><td class="line"> g_signal_new (<span class='macro'>I_(<span class='string_literal'>"profile-list-changed"</span>)<span class='macro_popup'>g_intern_static_string ("profile-list-changed")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1629"><td class="num" id="LN1629">1629</td><td class="line"> <span class='macro'>G_OBJECT_CLASS_TYPE (object_class)<span class='macro_popup'>((((GTypeClass*) (object_class))-&gt;g_type))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1630"><td class="num" id="LN1630">1630</td><td class="line"> G_SIGNAL_RUN_LAST,</td></tr>
+<tr class="codeline" data-linenumber="1631"><td class="num" id="LN1631">1631</td><td class="line"> <span class='macro'>G_STRUCT_OFFSET (TerminalAppClass, profile_list_changed)<span class='macro_popup'>((glong) __builtin_offsetof(TerminalAppClass, profile_list_changed<br>))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1632"><td class="num" id="LN1632">1632</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1633"><td class="num" id="LN1633">1633</td><td class="line"> g_cclosure_marshal_VOID__VOID,</td></tr>
+<tr class="codeline" data-linenumber="1634"><td class="num" id="LN1634">1634</td><td class="line"> <span class='macro'>G_TYPE_NONE<span class='macro_popup'>((GType) ((1) &lt;&lt; (2)))</span></span>, 0);</td></tr>
+<tr class="codeline" data-linenumber="1635"><td class="num" id="LN1635">1635</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1636"><td class="num" id="LN1636">1636</td><td class="line"> signals[ENCODING_LIST_CHANGED] =</td></tr>
+<tr class="codeline" data-linenumber="1637"><td class="num" id="LN1637">1637</td><td class="line"> g_signal_new (<span class='macro'>I_(<span class='string_literal'>"encoding-list-changed"</span>)<span class='macro_popup'>g_intern_static_string ("encoding-list-changed")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1638"><td class="num" id="LN1638">1638</td><td class="line"> <span class='macro'>G_OBJECT_CLASS_TYPE (object_class)<span class='macro_popup'>((((GTypeClass*) (object_class))-&gt;g_type))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1639"><td class="num" id="LN1639">1639</td><td class="line"> G_SIGNAL_RUN_LAST,</td></tr>
+<tr class="codeline" data-linenumber="1640"><td class="num" id="LN1640">1640</td><td class="line"> <span class='macro'>G_STRUCT_OFFSET (TerminalAppClass, profile_list_changed)<span class='macro_popup'>((glong) __builtin_offsetof(TerminalAppClass, profile_list_changed<br>))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1641"><td class="num" id="LN1641">1641</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1642"><td class="num" id="LN1642">1642</td><td class="line"> g_cclosure_marshal_VOID__VOID,</td></tr>
+<tr class="codeline" data-linenumber="1643"><td class="num" id="LN1643">1643</td><td class="line"> <span class='macro'>G_TYPE_NONE<span class='macro_popup'>((GType) ((1) &lt;&lt; (2)))</span></span>, 0);</td></tr>
+<tr class="codeline" data-linenumber="1644"><td class="num" id="LN1644">1644</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1645"><td class="num" id="LN1645">1645</td><td class="line"> g_object_class_install_property</td></tr>
+<tr class="codeline" data-linenumber="1646"><td class="num" id="LN1646">1646</td><td class="line"> (object_class,</td></tr>
+<tr class="codeline" data-linenumber="1647"><td class="num" id="LN1647">1647</td><td class="line"> PROP_ENABLE_MENU_BAR_ACCEL,</td></tr>
+<tr class="codeline" data-linenumber="1648"><td class="num" id="LN1648">1648</td><td class="line"> g_param_spec_boolean (<span class='macro'>TERMINAL_APP_ENABLE_MENU_BAR_ACCEL<span class='macro_popup'>"enable-menu-accels"</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1649"><td class="num" id="LN1649">1649</td><td class="line"> <span class='macro'>DEFAULT_ENABLE_MENU_BAR_ACCEL<span class='macro_popup'>((!(0)))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1650"><td class="num" id="LN1650">1650</td><td class="line"> G_PARAM_READWRITE | G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB));</td></tr>
+<tr class="codeline" data-linenumber="1651"><td class="num" id="LN1651">1651</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1652"><td class="num" id="LN1652">1652</td><td class="line"> g_object_class_install_property</td></tr>
+<tr class="codeline" data-linenumber="1653"><td class="num" id="LN1653">1653</td><td class="line"> (object_class,</td></tr>
+<tr class="codeline" data-linenumber="1654"><td class="num" id="LN1654">1654</td><td class="line"> PROP_ENABLE_MNEMONICS,</td></tr>
+<tr class="codeline" data-linenumber="1655"><td class="num" id="LN1655">1655</td><td class="line"> g_param_spec_boolean (<span class='macro'>TERMINAL_APP_ENABLE_MNEMONICS<span class='macro_popup'>"enable-mnemonics"</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1656"><td class="num" id="LN1656">1656</td><td class="line"> <span class='macro'>DEFAULT_ENABLE_MNEMONICS<span class='macro_popup'>((!(0)))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1657"><td class="num" id="LN1657">1657</td><td class="line"> G_PARAM_READWRITE | G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB));</td></tr>
+<tr class="codeline" data-linenumber="1658"><td class="num" id="LN1658">1658</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1659"><td class="num" id="LN1659">1659</td><td class="line"> g_object_class_install_property</td></tr>
+<tr class="codeline" data-linenumber="1660"><td class="num" id="LN1660">1660</td><td class="line"> (object_class,</td></tr>
+<tr class="codeline" data-linenumber="1661"><td class="num" id="LN1661">1661</td><td class="line"> PROP_SYSTEM_FONT,</td></tr>
+<tr class="codeline" data-linenumber="1662"><td class="num" id="LN1662">1662</td><td class="line"> g_param_spec_boxed (<span class='macro'>TERMINAL_APP_SYSTEM_FONT<span class='macro_popup'>"system-font"</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1663"><td class="num" id="LN1663">1663</td><td class="line"> <span class='macro'>PANGO_TYPE_FONT_DESCRIPTION<span class='macro_popup'>(pango_font_description_get_type ())</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1664"><td class="num" id="LN1664">1664</td><td class="line"> G_PARAM_READABLE | G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB));</td></tr>
+<tr class="codeline" data-linenumber="1665"><td class="num" id="LN1665">1665</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1666"><td class="num" id="LN1666">1666</td><td class="line"> g_object_class_install_property</td></tr>
+<tr class="codeline" data-linenumber="1667"><td class="num" id="LN1667">1667</td><td class="line"> (object_class,</td></tr>
+<tr class="codeline" data-linenumber="1668"><td class="num" id="LN1668">1668</td><td class="line"> PROP_DEFAULT_PROFILE,</td></tr>
+<tr class="codeline" data-linenumber="1669"><td class="num" id="LN1669">1669</td><td class="line"> g_param_spec_object (<span class='macro'>TERMINAL_APP_DEFAULT_PROFILE<span class='macro_popup'>"default-profile"</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1670"><td class="num" id="LN1670">1670</td><td class="line"> <span class='macro'>TERMINAL_TYPE_PROFILE<span class='macro_popup'>(terminal_profile_get_type ())</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1671"><td class="num" id="LN1671">1671</td><td class="line"> G_PARAM_READABLE | G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB));</td></tr>
+<tr class="codeline" data-linenumber="1672"><td class="num" id="LN1672">1672</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1673"><td class="num" id="LN1673">1673</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1674"><td class="num" id="LN1674">1674</td><td class="line"><span class='comment'>/* Public API */</span></td></tr>
+<tr class="codeline" data-linenumber="1675"><td class="num" id="LN1675">1675</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1676"><td class="num" id="LN1676">1676</td><td class="line">TerminalApp*</td></tr>
+<tr class="codeline" data-linenumber="1677"><td class="num" id="LN1677">1677</td><td class="line">terminal_app_get (<span class='keyword'>void</span>)</td></tr>
+<tr class="codeline" data-linenumber="1678"><td class="num" id="LN1678">1678</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1679"><td class="num" id="LN1679">1679</td><td class="line"> <span class='keyword'>if</span> (global_app == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1680"><td class="num" id="LN1680">1680</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1681"><td class="num" id="LN1681">1681</td><td class="line"> g_object_new (<span class='macro'>TERMINAL_TYPE_APP<span class='macro_popup'>(terminal_app_get_type ())</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1682"><td class="num" id="LN1682">1682</td><td class="line"> <span class='macro'>g_assert (global_app != NULL)<span class='macro_popup'>do { if (global_app != ((void*)0)) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-app.c", 1682, ((const char*) (__func__<br>)), "global_app != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1683"><td class="num" id="LN1683">1683</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1684"><td class="num" id="LN1684">1684</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1685"><td class="num" id="LN1685">1685</td><td class="line"> <span class='keyword'>return</span> global_app;</td></tr>
+<tr class="codeline" data-linenumber="1686"><td class="num" id="LN1686">1686</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1687"><td class="num" id="LN1687">1687</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1688"><td class="num" id="LN1688">1688</td><td class="line"><span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1689"><td class="num" id="LN1689">1689</td><td class="line">terminal_app_shutdown (<span class='keyword'>void</span>)</td></tr>
+<tr class="codeline" data-linenumber="1690"><td class="num" id="LN1690">1690</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1691"><td class="num" id="LN1691">1691</td><td class="line"> <span class='keyword'>if</span> (global_app == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1692"><td class="num" id="LN1692">1692</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1693"><td class="num" id="LN1693">1693</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1694"><td class="num" id="LN1694">1694</td><td class="line"> g_object_unref (global_app);</td></tr>
+<tr class="codeline" data-linenumber="1695"><td class="num" id="LN1695">1695</td><td class="line"> <span class='macro'>g_assert (global_app == NULL)<span class='macro_popup'>do { if (global_app == ((void*)0)) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-app.c", 1695, ((const char*) (__func__<br>)), "global_app == NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1696"><td class="num" id="LN1696">1696</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1697"><td class="num" id="LN1697">1697</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1698"><td class="num" id="LN1698">1698</td><td class="line"><span class='comment'>/**</span></td></tr>
+<tr class="codeline" data-linenumber="1699"><td class="num" id="LN1699">1699</td><td class="line"> <span class='comment'>* terminal_app_handle_options:</span></td></tr>
+<tr class="codeline" data-linenumber="1700"><td class="num" id="LN1700">1700</td><td class="line"> <span class='comment'>* @app:</span></td></tr>
+<tr class="codeline" data-linenumber="1701"><td class="num" id="LN1701">1701</td><td class="line"> <span class='comment'>* @options: a #TerminalOptions</span></td></tr>
+<tr class="codeline" data-linenumber="1702"><td class="num" id="LN1702">1702</td><td class="line"> <span class='comment'>* @allow_resume: whether to merge the terminal configuration from the</span></td></tr>
+<tr class="codeline" data-linenumber="1703"><td class="num" id="LN1703">1703</td><td class="line"> <span class='comment'>* saved session on resume</span></td></tr>
+<tr class="codeline" data-linenumber="1704"><td class="num" id="LN1704">1704</td><td class="line"> <span class='comment'>* @error: a #GError to fill in</span></td></tr>
+<tr class="codeline" data-linenumber="1705"><td class="num" id="LN1705">1705</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="1706"><td class="num" id="LN1706">1706</td><td class="line"> <span class='comment'>* Processes @options. It loads or saves the terminal configuration, or</span></td></tr>
+<tr class="codeline" data-linenumber="1707"><td class="num" id="LN1707">1707</td><td class="line"> <span class='comment'>* opens the specified windows and tabs.</span></td></tr>
+<tr class="codeline" data-linenumber="1708"><td class="num" id="LN1708">1708</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="1709"><td class="num" id="LN1709">1709</td><td class="line"> <span class='comment'>* Returns: %TRUE if @options could be successfully handled, or %FALSE on</span></td></tr>
+<tr class="codeline" data-linenumber="1710"><td class="num" id="LN1710">1710</td><td class="line"> <span class='comment'>* error</span></td></tr>
+<tr class="codeline" data-linenumber="1711"><td class="num" id="LN1711">1711</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="1712"><td class="num" id="LN1712">1712</td><td class="line">gboolean</td></tr>
+<tr class="codeline" data-linenumber="1713"><td class="num" id="LN1713">1713</td><td class="line">terminal_app_handle_options (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="1714"><td class="num" id="LN1714">1714</td><td class="line"> TerminalOptions *options,</td></tr>
+<tr class="codeline" data-linenumber="1715"><td class="num" id="LN1715">1715</td><td class="line"> gboolean allow_resume,</td></tr>
+<tr class="codeline" data-linenumber="1716"><td class="num" id="LN1716">1716</td><td class="line"> GError **error)</td></tr>
+<tr class="codeline" data-linenumber="1717"><td class="num" id="LN1717">1717</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1718"><td class="num" id="LN1718">1718</td><td class="line"> GList *lw;</td></tr>
+<tr class="codeline" data-linenumber="1719"><td class="num" id="LN1719">1719</td><td class="line"> GdkScreen *gdk_screen;</td></tr>
+<tr class="codeline" data-linenumber="1720"><td class="num" id="LN1720">1720</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1721"><td class="num" id="LN1721">1721</td><td class="line"> gdk_screen = terminal_app_get_screen_by_display_name (options-&gt;display_name);</td></tr>
+<tr class="codeline" data-linenumber="1722"><td class="num" id="LN1722">1722</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1723"><td class="num" id="LN1723">1723</td><td class="line"> <span class='keyword'>if</span> (options-&gt;save_config)</td></tr>
+<tr class="codeline" data-linenumber="1724"><td class="num" id="LN1724">1724</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1725"><td class="num" id="LN1725">1725</td><td class="line"> <span class='keyword'>if</span> (options-&gt;remote_arguments)</td></tr>
+<tr class="codeline" data-linenumber="1726"><td class="num" id="LN1726">1726</td><td class="line"> <span class='keyword'>return</span> terminal_app_save_config_file (app, options-&gt;config_file, error);</td></tr>
+<tr class="codeline" data-linenumber="1727"><td class="num" id="LN1727">1727</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1728"><td class="num" id="LN1728">1728</td><td class="line"> g_set_error_literal (error, <span class='macro'>TERMINAL_OPTION_ERROR<span class='macro_popup'>(g_quark_from_static_string ("terminal-option-error"))</span></span>, TERMINAL_OPTION_ERROR_NOT_IN_FACTORY,</td></tr>
+<tr class="codeline" data-linenumber="1729"><td class="num" id="LN1729">1729</td><td class="line"> <span class='string_literal'>"Cannot use \"--save-config\" when starting the factory process"</span>);</td></tr>
+<tr class="codeline" data-linenumber="1730"><td class="num" id="LN1730">1730</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1731"><td class="num" id="LN1731">1731</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1732"><td class="num" id="LN1732">1732</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1733"><td class="num" id="LN1733">1733</td><td class="line"> <span class='keyword'>if</span> (options-&gt;load_config)</td></tr>
+<tr class="codeline" data-linenumber="1734"><td class="num" id="LN1734">1734</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1735"><td class="num" id="LN1735">1735</td><td class="line"> GKeyFile *key_file;</td></tr>
+<tr class="codeline" data-linenumber="1736"><td class="num" id="LN1736">1736</td><td class="line"> gboolean result;</td></tr>
+<tr class="codeline" data-linenumber="1737"><td class="num" id="LN1737">1737</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1738"><td class="num" id="LN1738">1738</td><td class="line"> key_file = g_key_file_new ();</td></tr>
+<tr class="codeline" data-linenumber="1739"><td class="num" id="LN1739">1739</td><td class="line"> result = g_key_file_load_from_file (key_file, options-&gt;config_file, 0, error) &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="1740"><td class="num" id="LN1740">1740</td><td class="line"> terminal_options_merge_config (options, key_file, SOURCE_DEFAULT, error);</td></tr>
+<tr class="codeline" data-linenumber="1741"><td class="num" id="LN1741">1741</td><td class="line"> g_key_file_free (key_file);</td></tr>
+<tr class="codeline" data-linenumber="1742"><td class="num" id="LN1742">1742</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1743"><td class="num" id="LN1743">1743</td><td class="line"> <span class='keyword'>if</span> (!result)</td></tr>
+<tr class="codeline" data-linenumber="1744"><td class="num" id="LN1744">1744</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1745"><td class="num" id="LN1745">1745</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1746"><td class="num" id="LN1746">1746</td><td class="line"> <span class='comment'>/* fall-through on success */</span></td></tr>
+<tr class="codeline" data-linenumber="1747"><td class="num" id="LN1747">1747</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1748"><td class="num" id="LN1748">1748</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1749"><td class="num" id="LN1749">1749</td><td class="line"><span class='directive'>#ifdef <span class='macro'>HAVE_SMCLIENT<span class='macro_popup'>1</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1750"><td class="num" id="LN1750">1750</td><td class="line"> EggSMClient *sm_client;</td></tr>
+<tr class="codeline" data-linenumber="1751"><td class="num" id="LN1751">1751</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1752"><td class="num" id="LN1752">1752</td><td class="line"> sm_client = egg_sm_client_get ();</td></tr>
+<tr class="codeline" data-linenumber="1753"><td class="num" id="LN1753">1753</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1754"><td class="num" id="LN1754">1754</td><td class="line"> <span class='keyword'>if</span> (allow_resume &amp;&amp; egg_sm_client_is_resumed (sm_client))</td></tr>
+<tr class="codeline" data-linenumber="1755"><td class="num" id="LN1755">1755</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1756"><td class="num" id="LN1756">1756</td><td class="line"> GKeyFile *key_file;</td></tr>
+<tr class="codeline" data-linenumber="1757"><td class="num" id="LN1757">1757</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1758"><td class="num" id="LN1758">1758</td><td class="line"> key_file = egg_sm_client_get_state_file (sm_client);</td></tr>
+<tr class="codeline" data-linenumber="1759"><td class="num" id="LN1759">1759</td><td class="line"> <span class='keyword'>if</span> (key_file != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span> &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="1760"><td class="num" id="LN1760">1760</td><td class="line"> !terminal_options_merge_config (options, key_file, SOURCE_SESSION, error))</td></tr>
+<tr class="codeline" data-linenumber="1761"><td class="num" id="LN1761">1761</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1762"><td class="num" id="LN1762">1762</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1763"><td class="num" id="LN1763">1763</td><td class="line"><span class='directive'>#endif /* HAVE_SMCLIENT */</span></td></tr>
+<tr class="codeline" data-linenumber="1764"><td class="num" id="LN1764">1764</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1765"><td class="num" id="LN1765">1765</td><td class="line"> <span class='comment'>/* Make sure we open at least one window */</span></td></tr>
+<tr class="codeline" data-linenumber="1766"><td class="num" id="LN1766">1766</td><td class="line"> terminal_options_ensure_window (options);</td></tr>
+<tr class="codeline" data-linenumber="1767"><td class="num" id="LN1767">1767</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1768"><td class="num" id="LN1768">1768</td><td class="line"> <span class='keyword'>if</span> (options-&gt;startup_id != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1769"><td class="num" id="LN1769">1769</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_FACTORY,<span class='macro_popup'>do { if (0) g_printerr("Startup ID is '%s'\n", options-&gt;startup_id<br>); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1770"><td class="num" id="LN1770">1770</td><td class="line"> <span class='string_literal'><span class='macro'>"Startup ID is '%s'\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("Startup ID is '%s'\n", options-&gt;startup_id<br>); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1771"><td class="num" id="LN1771">1771</td><td class="line"> <span class='macro'>options-&gt;startup_id)<span class='macro_popup'>do { if (0) g_printerr("Startup ID is '%s'\n", options-&gt;startup_id<br>); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1772"><td class="num" id="LN1772">1772</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1773"><td class="num" id="LN1773">1773</td><td class="line"> <span class='keyword'>for</span> (lw = options-&gt;initial_windows; lw != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; lw = lw-&gt;next)</td></tr>
+<tr class="codeline" data-linenumber="1774"><td class="num" id="LN1774">1774</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1775"><td class="num" id="LN1775">1775</td><td class="line"> InitialWindow *iw = lw-&gt;data;</td></tr>
+<tr class="codeline" data-linenumber="1776"><td class="num" id="LN1776">1776</td><td class="line"> TerminalWindow *window = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1777"><td class="num" id="LN1777">1777</td><td class="line"> GList *lt;</td></tr>
+<tr class="codeline" data-linenumber="1778"><td class="num" id="LN1778">1778</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1779"><td class="num" id="LN1779">1779</td><td class="line"> <span class='macro'>g_assert (iw-&gt;tabs)<span class='macro_popup'>do { if (iw-&gt;tabs) ; else g_assertion_message_expr (((gchar<br>*) 0), "terminal-app.c", 1779, ((const char*) (__func__)), "iw-&gt;tabs"<br>); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1780"><td class="num" id="LN1780">1780</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1781"><td class="num" id="LN1781">1781</td><td class="line"> <span class='keyword'>if</span> ( lw == options-&gt;initial_windows &amp;&amp; ((InitialTab *)iw-&gt;tabs-&gt;data)-&gt;attach_window )</td></tr>
+<tr class="codeline" data-linenumber="1782"><td class="num" id="LN1782">1782</td><td class="line"> window = terminal_app_get_current_window(app, gdk_screen, options-&gt;initial_workspace);</td></tr>
+<tr class="codeline" data-linenumber="1783"><td class="num" id="LN1783">1783</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1784"><td class="num" id="LN1784">1784</td><td class="line"> <span class='keyword'>if</span> (!window)</td></tr>
+<tr class="codeline" data-linenumber="1785"><td class="num" id="LN1785">1785</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1786"><td class="num" id="LN1786">1786</td><td class="line"> <span class='comment'>/* Create &amp; setup new window */</span></td></tr>
+<tr class="codeline" data-linenumber="1787"><td class="num" id="LN1787">1787</td><td class="line"> window = terminal_app_new_window (app, gdk_screen);</td></tr>
+<tr class="codeline" data-linenumber="1788"><td class="num" id="LN1788">1788</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1789"><td class="num" id="LN1789">1789</td><td class="line"> <span class='comment'>/* Restored windows shouldn't demand attention; see bug #586308. */</span></td></tr>
+<tr class="codeline" data-linenumber="1790"><td class="num" id="LN1790">1790</td><td class="line"> <span class='keyword'>if</span> (iw-&gt;source_tag == SOURCE_SESSION)</td></tr>
+<tr class="codeline" data-linenumber="1791"><td class="num" id="LN1791">1791</td><td class="line"> terminal_window_set_is_restored (window);</td></tr>
+<tr class="codeline" data-linenumber="1792"><td class="num" id="LN1792">1792</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1793"><td class="num" id="LN1793">1793</td><td class="line"> <span class='keyword'>if</span> (options-&gt;startup_id != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1794"><td class="num" id="LN1794">1794</td><td class="line"> gtk_window_set_startup_id (<span class='macro'>GTK_WINDOW (window)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_window_get_type ()))))))</span></span>, options-&gt;startup_id);</td></tr>
+<tr class="codeline" data-linenumber="1795"><td class="num" id="LN1795">1795</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1796"><td class="num" id="LN1796">1796</td><td class="line"> <span class='comment'>/* Overwrite the default, unique window role set in terminal_window_init */</span></td></tr>
+<tr class="codeline" data-linenumber="1797"><td class="num" id="LN1797">1797</td><td class="line"> <span class='keyword'>if</span> (iw-&gt;role)</td></tr>
+<tr class="codeline" data-linenumber="1798"><td class="num" id="LN1798">1798</td><td class="line"> gtk_window_set_role (<span class='macro'>GTK_WINDOW (window)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_window_get_type ()))))))</span></span>, iw-&gt;role);</td></tr>
+<tr class="codeline" data-linenumber="1799"><td class="num" id="LN1799">1799</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1800"><td class="num" id="LN1800">1800</td><td class="line"> <span class='keyword'>if</span> (iw-&gt;force_menubar_state)</td></tr>
+<tr class="codeline" data-linenumber="1801"><td class="num" id="LN1801">1801</td><td class="line"> terminal_window_set_menubar_visible (window, iw-&gt;menubar_state);</td></tr>
+<tr class="codeline" data-linenumber="1802"><td class="num" id="LN1802">1802</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1803"><td class="num" id="LN1803">1803</td><td class="line"> <span class='keyword'>if</span> (iw-&gt;start_fullscreen)</td></tr>
+<tr class="codeline" data-linenumber="1804"><td class="num" id="LN1804">1804</td><td class="line"> gtk_window_fullscreen (<span class='macro'>GTK_WINDOW (window)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_window_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1805"><td class="num" id="LN1805">1805</td><td class="line"> <span class='keyword'>if</span> (iw-&gt;start_maximized)</td></tr>
+<tr class="codeline" data-linenumber="1806"><td class="num" id="LN1806">1806</td><td class="line"> gtk_window_maximize (<span class='macro'>GTK_WINDOW (window)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_window_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1807"><td class="num" id="LN1807">1807</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1808"><td class="num" id="LN1808">1808</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1809"><td class="num" id="LN1809">1809</td><td class="line"> <span class='comment'>/* Now add the tabs */</span></td></tr>
+<tr class="codeline" data-linenumber="1810"><td class="num" id="LN1810">1810</td><td class="line"> <span class='keyword'>for</span> (lt = iw-&gt;tabs; lt != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; lt = lt-&gt;next)</td></tr>
+<tr class="codeline" data-linenumber="1811"><td class="num" id="LN1811">1811</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1812"><td class="num" id="LN1812">1812</td><td class="line"> InitialTab *it = lt-&gt;data;</td></tr>
+<tr class="codeline" data-linenumber="1813"><td class="num" id="LN1813">1813</td><td class="line"> TerminalProfile *profile = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1814"><td class="num" id="LN1814">1814</td><td class="line"> TerminalScreen *screen;</td></tr>
+<tr class="codeline" data-linenumber="1815"><td class="num" id="LN1815">1815</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *profile_name;</td></tr>
+<tr class="codeline" data-linenumber="1816"><td class="num" id="LN1816">1816</td><td class="line"> gboolean profile_is_id;</td></tr>
+<tr class="codeline" data-linenumber="1817"><td class="num" id="LN1817">1817</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1818"><td class="num" id="LN1818">1818</td><td class="line"> <span class='keyword'>if</span> (it-&gt;profile)</td></tr>
+<tr class="codeline" data-linenumber="1819"><td class="num" id="LN1819">1819</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1820"><td class="num" id="LN1820">1820</td><td class="line"> profile_name = it-&gt;profile;</td></tr>
+<tr class="codeline" data-linenumber="1821"><td class="num" id="LN1821">1821</td><td class="line"> profile_is_id = it-&gt;profile_is_id;</td></tr>
+<tr class="codeline" data-linenumber="1822"><td class="num" id="LN1822">1822</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1823"><td class="num" id="LN1823">1823</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="1824"><td class="num" id="LN1824">1824</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1825"><td class="num" id="LN1825">1825</td><td class="line"> profile_name = options-&gt;default_profile;</td></tr>
+<tr class="codeline" data-linenumber="1826"><td class="num" id="LN1826">1826</td><td class="line"> profile_is_id = options-&gt;default_profile_is_id;</td></tr>
+<tr class="codeline" data-linenumber="1827"><td class="num" id="LN1827">1827</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1828"><td class="num" id="LN1828">1828</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1829"><td class="num" id="LN1829">1829</td><td class="line"> <span class='keyword'>if</span> (profile_name)</td></tr>
+<tr class="codeline" data-linenumber="1830"><td class="num" id="LN1830">1830</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1831"><td class="num" id="LN1831">1831</td><td class="line"> <span class='keyword'>if</span> (profile_is_id)</td></tr>
+<tr class="codeline" data-linenumber="1832"><td class="num" id="LN1832">1832</td><td class="line"> profile = terminal_app_get_profile_by_name (app, profile_name);</td></tr>
+<tr class="codeline" data-linenumber="1833"><td class="num" id="LN1833">1833</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="1834"><td class="num" id="LN1834">1834</td><td class="line"> profile = terminal_app_get_profile_by_visible_name (app, profile_name);</td></tr>
+<tr class="codeline" data-linenumber="1835"><td class="num" id="LN1835">1835</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1836"><td class="num" id="LN1836">1836</td><td class="line"> <span class='keyword'>if</span> (profile == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1837"><td class="num" id="LN1837">1837</td><td class="line"> g_printerr (<span class='macro'>_(<span class='string_literal'>"No such profile \"%s\", using default profile\n"</span>)<span class='macro_popup'>gettext ("No such profile \"%s\", using default profile\n")</span></span>, it-&gt;profile);</td></tr>
+<tr class="codeline" data-linenumber="1838"><td class="num" id="LN1838">1838</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1839"><td class="num" id="LN1839">1839</td><td class="line"> <span class='keyword'>if</span> (profile == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1840"><td class="num" id="LN1840">1840</td><td class="line"> profile = terminal_app_get_profile_for_new_term (app);</td></tr>
+<tr class="codeline" data-linenumber="1841"><td class="num" id="LN1841">1841</td><td class="line"> <span class='macro'>g_assert (profile)<span class='macro_popup'>do { if (profile) ; else g_assertion_message_expr (((gchar*) 0<br>), "terminal-app.c", 1841, ((const char*) (__func__)), "profile"<br>); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1842"><td class="num" id="LN1842">1842</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1843"><td class="num" id="LN1843">1843</td><td class="line"> screen = terminal_app_new_terminal (app, window, profile,</td></tr>
+<tr class="codeline" data-linenumber="1844"><td class="num" id="LN1844">1844</td><td class="line"> it-&gt;exec_argv ? it-&gt;exec_argv : options-&gt;exec_argv,</td></tr>
+<tr class="codeline" data-linenumber="1845"><td class="num" id="LN1845">1845</td><td class="line"> it-&gt;title ? it-&gt;title : options-&gt;default_title,</td></tr>
+<tr class="codeline" data-linenumber="1846"><td class="num" id="LN1846">1846</td><td class="line"> it-&gt;working_dir ? it-&gt;working_dir : options-&gt;default_working_dir,</td></tr>
+<tr class="codeline" data-linenumber="1847"><td class="num" id="LN1847">1847</td><td class="line"> options-&gt;env,</td></tr>
+<tr class="codeline" data-linenumber="1848"><td class="num" id="LN1848">1848</td><td class="line"> it-&gt;zoom_set ? it-&gt;zoom : options-&gt;zoom);</td></tr>
+<tr class="codeline" data-linenumber="1849"><td class="num" id="LN1849">1849</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1850"><td class="num" id="LN1850">1850</td><td class="line"> <span class='keyword'>if</span> (it-&gt;active)</td></tr>
+<tr class="codeline" data-linenumber="1851"><td class="num" id="LN1851">1851</td><td class="line"> terminal_window_switch_screen (window, screen);</td></tr>
+<tr class="codeline" data-linenumber="1852"><td class="num" id="LN1852">1852</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1853"><td class="num" id="LN1853">1853</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1854"><td class="num" id="LN1854">1854</td><td class="line"> <span class='keyword'>if</span> (iw-&gt;geometry)</td></tr>
+<tr class="codeline" data-linenumber="1855"><td class="num" id="LN1855">1855</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1856"><td class="num" id="LN1856">1856</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_GEOMETRY,<span class='macro_popup'>do { if (0) g_printerr("[window %p] applying geometry %s\n", window<br>, iw-&gt;geometry); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1857"><td class="num" id="LN1857">1857</td><td class="line"> <span class='string_literal'><span class='macro'>"[window %p] applying geometry %s\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("[window %p] applying geometry %s\n", window<br>, iw-&gt;geometry); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1858"><td class="num" id="LN1858">1858</td><td class="line"> <span class='macro'>window, iw-&gt;geometry)<span class='macro_popup'>do { if (0) g_printerr("[window %p] applying geometry %s\n", window<br>, iw-&gt;geometry); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1859"><td class="num" id="LN1859">1859</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1860"><td class="num" id="LN1860">1860</td><td class="line"> <span class='keyword'>if</span> (!terminal_window_update_size_set_geometry (window,</td></tr>
+<tr class="codeline" data-linenumber="1861"><td class="num" id="LN1861">1861</td><td class="line"> terminal_window_get_active (window),</td></tr>
+<tr class="codeline" data-linenumber="1862"><td class="num" id="LN1862">1862</td><td class="line"> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1863"><td class="num" id="LN1863">1863</td><td class="line"> iw-&gt;geometry))</td></tr>
+<tr class="codeline" data-linenumber="1864"><td class="num" id="LN1864">1864</td><td class="line"> g_printerr (<span class='macro'>_(<span class='string_literal'>"Invalid geometry string \"%s\"\n"</span>)<span class='macro_popup'>gettext ("Invalid geometry string \"%s\"\n")</span></span>, iw-&gt;geometry);</td></tr>
+<tr class="codeline" data-linenumber="1865"><td class="num" id="LN1865">1865</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1866"><td class="num" id="LN1866">1866</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1867"><td class="num" id="LN1867">1867</td><td class="line"> gtk_window_present (<span class='macro'>GTK_WINDOW (window)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_window_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1868"><td class="num" id="LN1868">1868</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1869"><td class="num" id="LN1869">1869</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1870"><td class="num" id="LN1870">1870</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1871"><td class="num" id="LN1871">1871</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1872"><td class="num" id="LN1872">1872</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1873"><td class="num" id="LN1873">1873</td><td class="line">TerminalWindow *</td></tr>
+<tr class="codeline" data-linenumber="1874"><td class="num" id="LN1874">1874</td><td class="line">terminal_app_new_window (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="1875"><td class="num" id="LN1875">1875</td><td class="line"> GdkScreen *screen)</td></tr>
+<tr class="codeline" data-linenumber="1876"><td class="num" id="LN1876">1876</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1877"><td class="num" id="LN1877">1877</td><td class="line"> TerminalWindow *window;</td></tr>
+<tr class="codeline" data-linenumber="1878"><td class="num" id="LN1878">1878</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1879"><td class="num" id="LN1879">1879</td><td class="line"> window = terminal_window_new ();</td></tr>
+<tr class="codeline" data-linenumber="1880"><td class="num" id="LN1880">1880</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1881"><td class="num" id="LN1881">1881</td><td class="line"> app-&gt;windows = g_list_append (app-&gt;windows, window);</td></tr>
+<tr class="codeline" data-linenumber="1882"><td class="num" id="LN1882">1882</td><td class="line"> <span class='macro'>g_signal_connect (window, <span class='string_literal'>"destroy"</span>,<span class='macro_popup'>g_signal_connect_data ((window), ("destroy"), (((GCallback) (<br>terminal_window_destroyed))), (app), ((void*)0), (GConnectFlags<br>) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1883"><td class="num" id="LN1883">1883</td><td class="line"> <span class='macro'>G_CALLBACK (terminal_window_destroyed), app)<span class='macro_popup'>g_signal_connect_data ((window), ("destroy"), (((GCallback) (<br>terminal_window_destroyed))), (app), ((void*)0), (GConnectFlags<br>) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1884"><td class="num" id="LN1884">1884</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1885"><td class="num" id="LN1885">1885</td><td class="line"> <span class='keyword'>if</span> (screen)</td></tr>
+<tr class="codeline" data-linenumber="1886"><td class="num" id="LN1886">1886</td><td class="line"> gtk_window_set_screen (<span class='macro'>GTK_WINDOW (window)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_window_get_type ()))))))</span></span>, screen);</td></tr>
+<tr class="codeline" data-linenumber="1887"><td class="num" id="LN1887">1887</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1888"><td class="num" id="LN1888">1888</td><td class="line"> <span class='keyword'>return</span> window;</td></tr>
+<tr class="codeline" data-linenumber="1889"><td class="num" id="LN1889">1889</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1890"><td class="num" id="LN1890">1890</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1891"><td class="num" id="LN1891">1891</td><td class="line">TerminalScreen *</td></tr>
+<tr class="codeline" data-linenumber="1892"><td class="num" id="LN1892">1892</td><td class="line">terminal_app_new_terminal (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="1893"><td class="num" id="LN1893">1893</td><td class="line"> TerminalWindow *window,</td></tr>
+<tr class="codeline" data-linenumber="1894"><td class="num" id="LN1894">1894</td><td class="line"> TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1895"><td class="num" id="LN1895">1895</td><td class="line"> <span class='keyword'>char</span> **override_command,</td></tr>
+<tr class="codeline" data-linenumber="1896"><td class="num" id="LN1896">1896</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *title,</td></tr>
+<tr class="codeline" data-linenumber="1897"><td class="num" id="LN1897">1897</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *working_dir,</td></tr>
+<tr class="codeline" data-linenumber="1898"><td class="num" id="LN1898">1898</td><td class="line"> <span class='keyword'>char</span> **child_env,</td></tr>
+<tr class="codeline" data-linenumber="1899"><td class="num" id="LN1899">1899</td><td class="line"> <span class='keyword'>double</span> zoom)</td></tr>
+<tr class="codeline" data-linenumber="1900"><td class="num" id="LN1900">1900</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1901"><td class="num" id="LN1901">1901</td><td class="line"> TerminalScreen *screen;</td></tr>
+<tr class="codeline" data-linenumber="1902"><td class="num" id="LN1902">1902</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1903"><td class="num" id="LN1903">1903</td><td class="line"> <span class='macro'>g_return_val_if_fail (TERMINAL_IS_APP (app), NULL)<span class='macro_popup'>do { if (((((__extension__ ({ GTypeInstance *__inst = (GTypeInstance<br>*) ((app)); GType __t = ((terminal_app_get_type ())); gboolean<br> __r; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; })))))) { }<br> else { g_return_if_fail_warning (((gchar*) 0), ((const char*<br>) (__func__)), "TERMINAL_IS_APP (app)"); return (((void*)0));<br> } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1904"><td class="num" id="LN1904">1904</td><td class="line"> <span class='macro'>g_return_val_if_fail (TERMINAL_IS_WINDOW (window), NULL)<span class='macro_popup'>do { if (((((__extension__ ({ GTypeInstance *__inst = (GTypeInstance<br>*) ((window)); GType __t = ((terminal_window_get_type ())); gboolean<br> __r; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; })))))) { }<br> else { g_return_if_fail_warning (((gchar*) 0), ((const char*<br>) (__func__)), "TERMINAL_IS_WINDOW (window)"); return (((void<br>*)0)); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1905"><td class="num" id="LN1905">1905</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1906"><td class="num" id="LN1906">1906</td><td class="line"> screen = terminal_screen_new (profile, override_command, title,</td></tr>
+<tr class="codeline" data-linenumber="1907"><td class="num" id="LN1907">1907</td><td class="line"> working_dir, child_env, zoom);</td></tr>
+<tr class="codeline" data-linenumber="1908"><td class="num" id="LN1908">1908</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1909"><td class="num" id="LN1909">1909</td><td class="line"> terminal_window_add_screen (window, screen, -1);</td></tr>
+<tr class="codeline" data-linenumber="1910"><td class="num" id="LN1910">1910</td><td class="line"> terminal_window_switch_screen (window, screen);</td></tr>
+<tr class="codeline" data-linenumber="1911"><td class="num" id="LN1911">1911</td><td class="line"> gtk_widget_grab_focus (<span class='macro'>GTK_WIDGET (screen)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((screen)), ((gtk_widget_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1912"><td class="num" id="LN1912">1912</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1913"><td class="num" id="LN1913">1913</td><td class="line"> <span class='keyword'>return</span> screen;</td></tr>
+<tr class="codeline" data-linenumber="1914"><td class="num" id="LN1914">1914</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1915"><td class="num" id="LN1915">1915</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1916"><td class="num" id="LN1916">1916</td><td class="line"><span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1917"><td class="num" id="LN1917">1917</td><td class="line">terminal_app_edit_profile (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="1918"><td class="num" id="LN1918">1918</td><td class="line"> TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1919"><td class="num" id="LN1919">1919</td><td class="line"> GtkWindow *transient_parent,</td></tr>
+<tr class="codeline" data-linenumber="1920"><td class="num" id="LN1920">1920</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *widget_name)</td></tr>
+<tr class="codeline" data-linenumber="1921"><td class="num" id="LN1921">1921</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1922"><td class="num" id="LN1922">1922</td><td class="line"> terminal_profile_edit (profile, transient_parent, widget_name);</td></tr>
+<tr class="codeline" data-linenumber="1923"><td class="num" id="LN1923">1923</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1924"><td class="num" id="LN1924">1924</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1925"><td class="num" id="LN1925">1925</td><td class="line"><span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1926"><td class="num" id="LN1926">1926</td><td class="line">terminal_app_edit_keybindings (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="1927"><td class="num" id="LN1927">1927</td><td class="line"> GtkWindow *transient_parent)</td></tr>
+<tr class="codeline" data-linenumber="1928"><td class="num" id="LN1928">1928</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1929"><td class="num" id="LN1929">1929</td><td class="line"> terminal_edit_keys_dialog_show (transient_parent);</td></tr>
+<tr class="codeline" data-linenumber="1930"><td class="num" id="LN1930">1930</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1931"><td class="num" id="LN1931">1931</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1932"><td class="num" id="LN1932">1932</td><td class="line"><span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1933"><td class="num" id="LN1933">1933</td><td class="line">terminal_app_edit_encodings (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="1934"><td class="num" id="LN1934">1934</td><td class="line"> GtkWindow *transient_parent)</td></tr>
+<tr class="codeline" data-linenumber="1935"><td class="num" id="LN1935">1935</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1936"><td class="num" id="LN1936">1936</td><td class="line"> terminal_encoding_dialog_show (transient_parent);</td></tr>
+<tr class="codeline" data-linenumber="1937"><td class="num" id="LN1937">1937</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1938"><td class="num" id="LN1938">1938</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1939"><td class="num" id="LN1939">1939</td><td class="line"><span class='comment'>/*</span></td></tr>
+<tr class="codeline" data-linenumber="1940"><td class="num" id="LN1940">1940</td><td class="line"><span class='comment'>* Get the window in the given screen and workspace. If nothing is found,</span></td></tr>
+<tr class="codeline" data-linenumber="1941"><td class="num" id="LN1941">1941</td><td class="line"><span class='comment'>* a NULL is returned.</span></td></tr>
+<tr class="codeline" data-linenumber="1942"><td class="num" id="LN1942">1942</td><td class="line"><span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="1943"><td class="num" id="LN1943">1943</td><td class="line">TerminalWindow *</td></tr>
+<tr class="codeline" data-linenumber="1944"><td class="num" id="LN1944">1944</td><td class="line">terminal_app_get_current_window (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="1945"><td class="num" id="LN1945">1945</td><td class="line"> GdkScreen *from_screen,</td></tr>
+<tr class="codeline" data-linenumber="1946"><td class="num" id="LN1946">1946</td><td class="line"> <span class='keyword'>int</span> workspace)</td></tr>
+<tr class="codeline" data-linenumber="1947"><td class="num" id="LN1947">1947</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1948"><td class="num" id="LN1948">1948</td><td class="line"> GList *res = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1949"><td class="num" id="LN1949">1949</td><td class="line"> TerminalWindow *ret = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1950"><td class="num" id="LN1950">1950</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1951"><td class="num" id="LN1951">1951</td><td class="line"> <span class='keyword'>if</span> (app-&gt;windows == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1952"><td class="num" id="LN1952">1952</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1953"><td class="num" id="LN1953">1953</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1954"><td class="num" id="LN1954">1954</td><td class="line"> res = g_list_last (app-&gt;windows);</td></tr>
+<tr class="codeline" data-linenumber="1955"><td class="num" id="LN1955">1955</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1956"><td class="num" id="LN1956">1956</td><td class="line"> <span class='macro'>g_assert (from_screen != NULL)<span class='macro_popup'>do { if (from_screen != ((void*)0)) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-app.c", 1956, ((const char*) (__func__<br>)), "from_screen != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1957"><td class="num" id="LN1957">1957</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1958"><td class="num" id="LN1958">1958</td><td class="line"> <span class='keyword'>while</span> (res)</td></tr>
+<tr class="codeline" data-linenumber="1959"><td class="num" id="LN1959">1959</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1960"><td class="num" id="LN1960">1960</td><td class="line"> <span class='keyword'>int</span> win_workspace;</td></tr>
+<tr class="codeline" data-linenumber="1961"><td class="num" id="LN1961">1961</td><td class="line"> <span class='keyword'>if</span> (gtk_window_get_screen(<span class='macro'>GTK_WINDOW(res-&gt;data)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((res-&gt;data)), ((gtk_window_get_type ()))))))</span></span>) != from_screen)</td></tr>
+<tr class="codeline" data-linenumber="1962"><td class="num" id="LN1962">1962</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="1963"><td class="num" id="LN1963">1963</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1964"><td class="num" id="LN1964">1964</td><td class="line"> win_workspace = terminal_app_get_workspace_for_window(res-&gt;data);</td></tr>
+<tr class="codeline" data-linenumber="1965"><td class="num" id="LN1965">1965</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1966"><td class="num" id="LN1966">1966</td><td class="line"> <span class='comment'>/* Same workspace or if the window is set to show up on all workspaces */</span></td></tr>
+<tr class="codeline" data-linenumber="1967"><td class="num" id="LN1967">1967</td><td class="line"> <span class='keyword'>if</span> (win_workspace == workspace || win_workspace == -1)</td></tr>
+<tr class="codeline" data-linenumber="1968"><td class="num" id="LN1968">1968</td><td class="line"> ret = terminal_window_get_latest_focused (ret, <span class='macro'>TERMINAL_WINDOW(res-&gt;data)<span class='macro_popup'>((((TerminalWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((res-&gt;data)), ((terminal_window_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1969"><td class="num" id="LN1969">1969</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1970"><td class="num" id="LN1970">1970</td><td class="line"> res = <span class='macro'>g_list_previous (res)<span class='macro_popup'>((res) ? (((GList *)(res))-&gt;prev) : ((void*)0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1971"><td class="num" id="LN1971">1971</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1972"><td class="num" id="LN1972">1972</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1973"><td class="num" id="LN1973">1973</td><td class="line"> <span class='keyword'>return</span> ret;</td></tr>
+<tr class="codeline" data-linenumber="1974"><td class="num" id="LN1974">1974</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1975"><td class="num" id="LN1975">1975</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1976"><td class="num" id="LN1976">1976</td><td class="line"><span class='comment'>/**</span></td></tr>
+<tr class="codeline" data-linenumber="1977"><td class="num" id="LN1977">1977</td><td class="line"> <span class='comment'>* terminal_profile_get_list:</span></td></tr>
+<tr class="codeline" data-linenumber="1978"><td class="num" id="LN1978">1978</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="1979"><td class="num" id="LN1979">1979</td><td class="line"> <span class='comment'>* Returns: a #GList containing all #TerminalProfile objects.</span></td></tr>
+<tr class="codeline" data-linenumber="1980"><td class="num" id="LN1980">1980</td><td class="line"> <span class='comment'>* The content of the list is owned by the backend and</span></td></tr>
+<tr class="codeline" data-linenumber="1981"><td class="num" id="LN1981">1981</td><td class="line"> <span class='comment'>* should not be modified or freed. Use g_list_free() when done</span></td></tr>
+<tr class="codeline" data-linenumber="1982"><td class="num" id="LN1982">1982</td><td class="line"> <span class='comment'>* using the list.</span></td></tr>
+<tr class="codeline" data-linenumber="1983"><td class="num" id="LN1983">1983</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="1984"><td class="num" id="LN1984">1984</td><td class="line">GList*</td></tr>
+<tr class="codeline" data-linenumber="1985"><td class="num" id="LN1985">1985</td><td class="line">terminal_app_get_profile_list (TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="1986"><td class="num" id="LN1986">1986</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1987"><td class="num" id="LN1987">1987</td><td class="line"> <span class='macro'>g_return_val_if_fail (TERMINAL_IS_APP (app), NULL)<span class='macro_popup'>do { if (((((__extension__ ({ GTypeInstance *__inst = (GTypeInstance<br>*) ((app)); GType __t = ((terminal_app_get_type ())); gboolean<br> __r; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; })))))) { }<br> else { g_return_if_fail_warning (((gchar*) 0), ((const char*<br>) (__func__)), "TERMINAL_IS_APP (app)"); return (((void*)0));<br> } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1988"><td class="num" id="LN1988">1988</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1989"><td class="num" id="LN1989">1989</td><td class="line"> <span class='keyword'>return</span> g_list_sort (g_hash_table_get_values (app-&gt;profiles), profiles_alphabetic_cmp);</td></tr>
+<tr class="codeline" data-linenumber="1990"><td class="num" id="LN1990">1990</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1991"><td class="num" id="LN1991">1991</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1992"><td class="num" id="LN1992">1992</td><td class="line">TerminalProfile*</td></tr>
+<tr class="codeline" data-linenumber="1993"><td class="num" id="LN1993">1993</td><td class="line">terminal_app_get_profile_by_name (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="1994"><td class="num" id="LN1994">1994</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *name)</td></tr>
+<tr class="codeline" data-linenumber="1995"><td class="num" id="LN1995">1995</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1996"><td class="num" id="LN1996">1996</td><td class="line"> <span class='macro'>g_return_val_if_fail (TERMINAL_IS_APP (app), NULL)<span class='macro_popup'>do { if (((((__extension__ ({ GTypeInstance *__inst = (GTypeInstance<br>*) ((app)); GType __t = ((terminal_app_get_type ())); gboolean<br> __r; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; })))))) { }<br> else { g_return_if_fail_warning (((gchar*) 0), ((const char*<br>) (__func__)), "TERMINAL_IS_APP (app)"); return (((void*)0));<br> } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1997"><td class="num" id="LN1997">1997</td><td class="line"> <span class='macro'>g_return_val_if_fail (name != NULL, NULL)<span class='macro_popup'>do { if ((name != ((void*)0))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "name != NULL"); return<br> (((void*)0)); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1998"><td class="num" id="LN1998">1998</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1999"><td class="num" id="LN1999">1999</td><td class="line"> <span class='keyword'>return</span> g_hash_table_lookup (app-&gt;profiles, name);</td></tr>
+<tr class="codeline" data-linenumber="2000"><td class="num" id="LN2000">2000</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="2001"><td class="num" id="LN2001">2001</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2002"><td class="num" id="LN2002">2002</td><td class="line">TerminalProfile*</td></tr>
+<tr class="codeline" data-linenumber="2003"><td class="num" id="LN2003">2003</td><td class="line">terminal_app_get_profile_by_visible_name (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="2004"><td class="num" id="LN2004">2004</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *name)</td></tr>
+<tr class="codeline" data-linenumber="2005"><td class="num" id="LN2005">2005</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="2006"><td class="num" id="LN2006">2006</td><td class="line"> LookupInfo info;</td></tr>
+<tr class="codeline" data-linenumber="2007"><td class="num" id="LN2007">2007</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2008"><td class="num" id="LN2008">2008</td><td class="line"> <span class='macro'>g_return_val_if_fail (TERMINAL_IS_APP (app), NULL)<span class='macro_popup'>do { if (((((__extension__ ({ GTypeInstance *__inst = (GTypeInstance<br>*) ((app)); GType __t = ((terminal_app_get_type ())); gboolean<br> __r; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; })))))) { }<br> else { g_return_if_fail_warning (((gchar*) 0), ((const char*<br>) (__func__)), "TERMINAL_IS_APP (app)"); return (((void*)0));<br> } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2009"><td class="num" id="LN2009">2009</td><td class="line"> <span class='macro'>g_return_val_if_fail (name != NULL, NULL)<span class='macro_popup'>do { if ((name != ((void*)0))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "name != NULL"); return<br> (((void*)0)); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2010"><td class="num" id="LN2010">2010</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2011"><td class="num" id="LN2011">2011</td><td class="line"> info.result = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2012"><td class="num" id="LN2012">2012</td><td class="line"> info.target = name;</td></tr>
+<tr class="codeline" data-linenumber="2013"><td class="num" id="LN2013">2013</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2014"><td class="num" id="LN2014">2014</td><td class="line"> g_hash_table_foreach (app-&gt;profiles,</td></tr>
+<tr class="codeline" data-linenumber="2015"><td class="num" id="LN2015">2015</td><td class="line"> profiles_lookup_by_visible_name_foreach,</td></tr>
+<tr class="codeline" data-linenumber="2016"><td class="num" id="LN2016">2016</td><td class="line"> &amp;info);</td></tr>
+<tr class="codeline" data-linenumber="2017"><td class="num" id="LN2017">2017</td><td class="line"> <span class='keyword'>return</span> info.result;</td></tr>
+<tr class="codeline" data-linenumber="2018"><td class="num" id="LN2018">2018</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="2019"><td class="num" id="LN2019">2019</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2020"><td class="num" id="LN2020">2020</td><td class="line">TerminalProfile*</td></tr>
+<tr class="codeline" data-linenumber="2021"><td class="num" id="LN2021">2021</td><td class="line">terminal_app_get_default_profile (TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="2022"><td class="num" id="LN2022">2022</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="2023"><td class="num" id="LN2023">2023</td><td class="line"> <span class='macro'>g_return_val_if_fail (TERMINAL_IS_APP (app), NULL)<span class='macro_popup'>do { if (((((__extension__ ({ GTypeInstance *__inst = (GTypeInstance<br>*) ((app)); GType __t = ((terminal_app_get_type ())); gboolean<br> __r; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; })))))) { }<br> else { g_return_if_fail_warning (((gchar*) 0), ((const char*<br>) (__func__)), "TERMINAL_IS_APP (app)"); return (((void*)0));<br> } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2024"><td class="num" id="LN2024">2024</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2025"><td class="num" id="LN2025">2025</td><td class="line"> <span class='keyword'>return</span> app-&gt;default_profile;</td></tr>
+<tr class="codeline" data-linenumber="2026"><td class="num" id="LN2026">2026</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="2027"><td class="num" id="LN2027">2027</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2028"><td class="num" id="LN2028">2028</td><td class="line">TerminalProfile*</td></tr>
+<tr class="codeline" data-linenumber="2029"><td class="num" id="LN2029">2029</td><td class="line">terminal_app_get_profile_for_new_term (TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="2030"><td class="num" id="LN2030">2030</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="2031"><td class="num" id="LN2031">2031</td><td class="line"> GHashTableIter iter;</td></tr>
+<tr class="codeline" data-linenumber="2032"><td class="num" id="LN2032">2032</td><td class="line"> TerminalProfile *profile = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2033"><td class="num" id="LN2033">2033</td><td class="line"> TerminalProfile **profileptr = &amp;profile;</td></tr>
+<tr class="codeline" data-linenumber="2034"><td class="num" id="LN2034">2034</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2035"><td class="num" id="LN2035">2035</td><td class="line"> <span class='macro'>g_return_val_if_fail (TERMINAL_IS_APP (app), NULL)<span class='macro_popup'>do { if (((((__extension__ ({ GTypeInstance *__inst = (GTypeInstance<br>*) ((app)); GType __t = ((terminal_app_get_type ())); gboolean<br> __r; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; })))))) { }<br> else { g_return_if_fail_warning (((gchar*) 0), ((const char*<br>) (__func__)), "TERMINAL_IS_APP (app)"); return (((void*)0));<br> } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2036"><td class="num" id="LN2036">2036</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2037"><td class="num" id="LN2037">2037</td><td class="line"> <span class='keyword'>if</span> (app-&gt;default_profile)</td></tr>
+<tr class="codeline" data-linenumber="2038"><td class="num" id="LN2038">2038</td><td class="line"> <span class='keyword'>return</span> app-&gt;default_profile;</td></tr>
+<tr class="codeline" data-linenumber="2039"><td class="num" id="LN2039">2039</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2040"><td class="num" id="LN2040">2040</td><td class="line"> g_hash_table_iter_init (&amp;iter, app-&gt;profiles);</td></tr>
+<tr class="codeline" data-linenumber="2041"><td class="num" id="LN2041">2041</td><td class="line"> <span class='keyword'>if</span> (g_hash_table_iter_next (&amp;iter, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, (gpointer *) profileptr))</td></tr>
+<tr class="codeline" data-linenumber="2042"><td class="num" id="LN2042">2042</td><td class="line"> <span class='keyword'>return</span> profile;</td></tr>
+<tr class="codeline" data-linenumber="2043"><td class="num" id="LN2043">2043</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2044"><td class="num" id="LN2044">2044</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2045"><td class="num" id="LN2045">2045</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="2046"><td class="num" id="LN2046">2046</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2047"><td class="num" id="LN2047">2047</td><td class="line">GHashTable *</td></tr>
+<tr class="codeline" data-linenumber="2048"><td class="num" id="LN2048">2048</td><td class="line">terminal_app_get_encodings (TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="2049"><td class="num" id="LN2049">2049</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="2050"><td class="num" id="LN2050">2050</td><td class="line"> <span class='keyword'>return</span> app-&gt;encodings;</td></tr>
+<tr class="codeline" data-linenumber="2051"><td class="num" id="LN2051">2051</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="2052"><td class="num" id="LN2052">2052</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2053"><td class="num" id="LN2053">2053</td><td class="line"><span class='comment'>/**</span></td></tr>
+<tr class="codeline" data-linenumber="2054"><td class="num" id="LN2054">2054</td><td class="line"> <span class='comment'>* terminal_app_ensure_encoding:</span></td></tr>
+<tr class="codeline" data-linenumber="2055"><td class="num" id="LN2055">2055</td><td class="line"> <span class='comment'>* @app:</span></td></tr>
+<tr class="codeline" data-linenumber="2056"><td class="num" id="LN2056">2056</td><td class="line"> <span class='comment'>* @charset:</span></td></tr>
+<tr class="codeline" data-linenumber="2057"><td class="num" id="LN2057">2057</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="2058"><td class="num" id="LN2058">2058</td><td class="line"> <span class='comment'>* Ensures there's a #TerminalEncoding for @charset available.</span></td></tr>
+<tr class="codeline" data-linenumber="2059"><td class="num" id="LN2059">2059</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="2060"><td class="num" id="LN2060">2060</td><td class="line">TerminalEncoding *</td></tr>
+<tr class="codeline" data-linenumber="2061"><td class="num" id="LN2061">2061</td><td class="line">terminal_app_ensure_encoding (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="2062"><td class="num" id="LN2062">2062</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *charset)</td></tr>
+<tr class="codeline" data-linenumber="2063"><td class="num" id="LN2063">2063</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="2064"><td class="num" id="LN2064">2064</td><td class="line"> TerminalEncoding *encoding;</td></tr>
+<tr class="codeline" data-linenumber="2065"><td class="num" id="LN2065">2065</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2066"><td class="num" id="LN2066">2066</td><td class="line"> encoding = g_hash_table_lookup (app-&gt;encodings, charset);</td></tr>
+<tr class="codeline" data-linenumber="2067"><td class="num" id="LN2067">2067</td><td class="line"> <span class='keyword'>if</span> (encoding == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="2068"><td class="num" id="LN2068">2068</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="2069"><td class="num" id="LN2069">2069</td><td class="line"> encoding = terminal_encoding_new (charset,</td></tr>
+<tr class="codeline" data-linenumber="2070"><td class="num" id="LN2070">2070</td><td class="line"> <span class='macro'>_(<span class='string_literal'>"User Defined"</span>)<span class='macro_popup'>gettext ("User Defined")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2071"><td class="num" id="LN2071">2071</td><td class="line"> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2072"><td class="num" id="LN2072">2072</td><td class="line"> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span> <span class='comment'>/* scary! */</span>);</td></tr>
+<tr class="codeline" data-linenumber="2073"><td class="num" id="LN2073">2073</td><td class="line"> g_hash_table_insert (app-&gt;encodings,</td></tr>
+<tr class="codeline" data-linenumber="2074"><td class="num" id="LN2074">2074</td><td class="line"> (gpointer) terminal_encoding_get_id (encoding),</td></tr>
+<tr class="codeline" data-linenumber="2075"><td class="num" id="LN2075">2075</td><td class="line"> encoding);</td></tr>
+<tr class="codeline" data-linenumber="2076"><td class="num" id="LN2076">2076</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="2077"><td class="num" id="LN2077">2077</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2078"><td class="num" id="LN2078">2078</td><td class="line"> <span class='keyword'>return</span> encoding;</td></tr>
+<tr class="codeline" data-linenumber="2079"><td class="num" id="LN2079">2079</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="2080"><td class="num" id="LN2080">2080</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2081"><td class="num" id="LN2081">2081</td><td class="line"><span class='comment'>/**</span></td></tr>
+<tr class="codeline" data-linenumber="2082"><td class="num" id="LN2082">2082</td><td class="line"> <span class='comment'>* terminal_app_get_active_encodings:</span></td></tr>
+<tr class="codeline" data-linenumber="2083"><td class="num" id="LN2083">2083</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="2084"><td class="num" id="LN2084">2084</td><td class="line"> <span class='comment'>* Returns: a newly allocated list of newly referenced #TerminalEncoding objects.</span></td></tr>
+<tr class="codeline" data-linenumber="2085"><td class="num" id="LN2085">2085</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="2086"><td class="num" id="LN2086">2086</td><td class="line">GSList*</td></tr>
+<tr class="codeline" data-linenumber="2087"><td class="num" id="LN2087">2087</td><td class="line">terminal_app_get_active_encodings (TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="2088"><td class="num" id="LN2088">2088</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="2089"><td class="num" id="LN2089">2089</td><td class="line"> GSList *list = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2090"><td class="num" id="LN2090">2090</td><td class="line"> GHashTableIter iter;</td></tr>
+<tr class="codeline" data-linenumber="2091"><td class="num" id="LN2091">2091</td><td class="line"> gpointer key, value;</td></tr>
+<tr class="codeline" data-linenumber="2092"><td class="num" id="LN2092">2092</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2093"><td class="num" id="LN2093">2093</td><td class="line"> g_hash_table_iter_init (&amp;iter, app-&gt;encodings);</td></tr>
+<tr class="codeline" data-linenumber="2094"><td class="num" id="LN2094">2094</td><td class="line"> <span class='keyword'>while</span> (g_hash_table_iter_next (&amp;iter, &amp;key, &amp;value))</td></tr>
+<tr class="codeline" data-linenumber="2095"><td class="num" id="LN2095">2095</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="2096"><td class="num" id="LN2096">2096</td><td class="line"> TerminalEncoding *encoding = (TerminalEncoding *) value;</td></tr>
+<tr class="codeline" data-linenumber="2097"><td class="num" id="LN2097">2097</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2098"><td class="num" id="LN2098">2098</td><td class="line"> <span class='keyword'>if</span> (!encoding-&gt;is_active)</td></tr>
+<tr class="codeline" data-linenumber="2099"><td class="num" id="LN2099">2099</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="2100"><td class="num" id="LN2100">2100</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2101"><td class="num" id="LN2101">2101</td><td class="line"> list = g_slist_prepend (list, terminal_encoding_ref (encoding));</td></tr>
+<tr class="codeline" data-linenumber="2102"><td class="num" id="LN2102">2102</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="2103"><td class="num" id="LN2103">2103</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2104"><td class="num" id="LN2104">2104</td><td class="line"> <span class='keyword'>return</span> g_slist_sort (list, (GCompareFunc) compare_encodings);</td></tr>
+<tr class="codeline" data-linenumber="2105"><td class="num" id="LN2105">2105</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="2106"><td class="num" id="LN2106">2106</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2107"><td class="num" id="LN2107">2107</td><td class="line"><span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="2108"><td class="num" id="LN2108">2108</td><td class="line">terminal_app_save_config (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="2109"><td class="num" id="LN2109">2109</td><td class="line"> GKeyFile *key_file)</td></tr>
+<tr class="codeline" data-linenumber="2110"><td class="num" id="LN2110">2110</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="2111"><td class="num" id="LN2111">2111</td><td class="line"> GList *lw;</td></tr>
+<tr class="codeline" data-linenumber="2112"><td class="num" id="LN2112">2112</td><td class="line"> guint n = 0;</td></tr>
+<tr class="codeline" data-linenumber="2113"><td class="num" id="LN2113">2113</td><td class="line"> GPtrArray *window_names_array;</td></tr>
+<tr class="codeline" data-linenumber="2114"><td class="num" id="LN2114">2114</td><td class="line"> <span class='keyword'>char</span> **window_names;</td></tr>
+<tr class="codeline" data-linenumber="2115"><td class="num" id="LN2115">2115</td><td class="line"> gsize len;</td></tr>
+<tr class="codeline" data-linenumber="2116"><td class="num" id="LN2116">2116</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2117"><td class="num" id="LN2117">2117</td><td class="line"> g_key_file_set_comment (key_file, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='string_literal'>"Written by "</span> <span class='macro'>PACKAGE_STRING<span class='macro_popup'>"mate-terminal 1.27.1"</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="2118"><td class="num" id="LN2118">2118</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2119"><td class="num" id="LN2119">2119</td><td class="line"> g_key_file_set_integer (key_file, <span class='macro'>TERMINAL_CONFIG_GROUP<span class='macro_popup'>"MATE Terminal Configuration"</span></span>, <span class='macro'>TERMINAL_CONFIG_PROP_VERSION<span class='macro_popup'>"Version"</span></span>, <span class='macro'>TERMINAL_CONFIG_VERSION<span class='macro_popup'>(1)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="2120"><td class="num" id="LN2120">2120</td><td class="line"> g_key_file_set_integer (key_file, <span class='macro'>TERMINAL_CONFIG_GROUP<span class='macro_popup'>"MATE Terminal Configuration"</span></span>, <span class='macro'>TERMINAL_CONFIG_PROP_COMPAT_VERSION<span class='macro_popup'>"CompatVersion"</span></span>, <span class='macro'>TERMINAL_CONFIG_COMPAT_VERSION<span class='macro_popup'>(1)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="2121"><td class="num" id="LN2121">2121</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2122"><td class="num" id="LN2122">2122</td><td class="line"> window_names_array = g_ptr_array_sized_new (g_list_length (app-&gt;windows) + 1);</td></tr>
+<tr class="codeline" data-linenumber="2123"><td class="num" id="LN2123">2123</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2124"><td class="num" id="LN2124">2124</td><td class="line"> <span class='keyword'>for</span> (lw = app-&gt;windows; lw != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; lw = lw-&gt;next)</td></tr>
+<tr class="codeline" data-linenumber="2125"><td class="num" id="LN2125">2125</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="2126"><td class="num" id="LN2126">2126</td><td class="line"> TerminalWindow *window = <span class='macro'>TERMINAL_WINDOW (lw-&gt;data)<span class='macro_popup'>((((TerminalWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((lw-&gt;data)), ((terminal_window_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2127"><td class="num" id="LN2127">2127</td><td class="line"> <span class='keyword'>char</span> *group;</td></tr>
+<tr class="codeline" data-linenumber="2128"><td class="num" id="LN2128">2128</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2129"><td class="num" id="LN2129">2129</td><td class="line"> group = g_strdup_printf (<span class='string_literal'>"Window%u"</span>, n++);</td></tr>
+<tr class="codeline" data-linenumber="2130"><td class="num" id="LN2130">2130</td><td class="line"> g_ptr_array_add (window_names_array, group);</td></tr>
+<tr class="codeline" data-linenumber="2131"><td class="num" id="LN2131">2131</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2132"><td class="num" id="LN2132">2132</td><td class="line"> terminal_window_save_state (window, key_file, group);</td></tr>
+<tr class="codeline" data-linenumber="2133"><td class="num" id="LN2133">2133</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="2134"><td class="num" id="LN2134">2134</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2135"><td class="num" id="LN2135">2135</td><td class="line"> len = window_names_array-&gt;len;</td></tr>
+<tr class="codeline" data-linenumber="2136"><td class="num" id="LN2136">2136</td><td class="line"> g_ptr_array_add (window_names_array, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="2137"><td class="num" id="LN2137">2137</td><td class="line"> window_names = (<span class='keyword'>char</span> **) g_ptr_array_free (window_names_array, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="2138"><td class="num" id="LN2138">2138</td><td class="line"> g_key_file_set_string_list (key_file, <span class='macro'>TERMINAL_CONFIG_GROUP<span class='macro_popup'>"MATE Terminal Configuration"</span></span>, <span class='macro'>TERMINAL_CONFIG_PROP_WINDOWS<span class='macro_popup'>"Windows"</span></span>, (<span class='keyword'>const</span> <span class='keyword'>char</span> * <span class='keyword'>const</span> *) window_names, len);</td></tr>
+<tr class="codeline" data-linenumber="2139"><td class="num" id="LN2139">2139</td><td class="line"> g_strfreev (window_names);</td></tr>
+<tr class="codeline" data-linenumber="2140"><td class="num" id="LN2140">2140</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="2141"><td class="num" id="LN2141">2141</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2142"><td class="num" id="LN2142">2142</td><td class="line">gboolean</td></tr>
+<tr class="codeline" data-linenumber="2143"><td class="num" id="LN2143">2143</td><td class="line">terminal_app_save_config_file (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="2144"><td class="num" id="LN2144">2144</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *file_name,</td></tr>
+<tr class="codeline" data-linenumber="2145"><td class="num" id="LN2145">2145</td><td class="line"> GError **error)</td></tr>
+<tr class="codeline" data-linenumber="2146"><td class="num" id="LN2146">2146</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="2147"><td class="num" id="LN2147">2147</td><td class="line"> GKeyFile *key_file;</td></tr>
+<tr class="codeline" data-linenumber="2148"><td class="num" id="LN2148">2148</td><td class="line"> <span class='keyword'>char</span> *data;</td></tr>
+<tr class="codeline" data-linenumber="2149"><td class="num" id="LN2149">2149</td><td class="line"> gsize len;</td></tr>
+<tr class="codeline" data-linenumber="2150"><td class="num" id="LN2150">2150</td><td class="line"> gboolean result;</td></tr>
+<tr class="codeline" data-linenumber="2151"><td class="num" id="LN2151">2151</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2152"><td class="num" id="LN2152">2152</td><td class="line"> key_file = g_key_file_new ();</td></tr>
+<tr class="codeline" data-linenumber="2153"><td class="num" id="LN2153">2153</td><td class="line"> terminal_app_save_config (app, key_file);</td></tr>
+<tr class="codeline" data-linenumber="2154"><td class="num" id="LN2154">2154</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2155"><td class="num" id="LN2155">2155</td><td class="line"> data = g_key_file_to_data (key_file, &amp;len, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="2156"><td class="num" id="LN2156">2156</td><td class="line"> result = g_file_set_contents (file_name, data, len, error);</td></tr>
+<tr class="codeline" data-linenumber="2157"><td class="num" id="LN2157">2157</td><td class="line"> g_free (data);</td></tr>
+<tr class="codeline" data-linenumber="2158"><td class="num" id="LN2158">2158</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2159"><td class="num" id="LN2159">2159</td><td class="line"> <span class='keyword'>return</span> result;</td></tr>
+<tr class="codeline" data-linenumber="2160"><td class="num" id="LN2160">2160</td><td class="line">}</td></tr>
+</table></body></html>
diff --git a/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-86ff44.html b/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-86ff44.html
new file mode 100644
index 0000000..1adaac8
--- /dev/null
+++ b/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-86ff44.html
@@ -0,0 +1,1773 @@
+<!doctype html>
+<html>
+<head>
+<title>terminal-accels.c</title>
+
+<style type="text/css">
+body { color:#000000; background-color:#ffffff }
+body { font-family:Helvetica, sans-serif; font-size:10pt }
+h1 { font-size:14pt }
+.FileName { margin-top: 5px; margin-bottom: 5px; display: inline; }
+.FileNav { margin-left: 5px; margin-right: 5px; display: inline; }
+.FileNav a { text-decoration:none; font-size: larger; }
+.divider { margin-top: 30px; margin-bottom: 30px; height: 15px; }
+.divider { background-color: gray; }
+.code { border-collapse:collapse; width:100%; }
+.code { font-family: "Monospace", monospace; font-size:10pt }
+.code { line-height: 1.2em }
+.comment { color: green; font-style: oblique }
+.keyword { color: blue }
+.string_literal { color: red }
+.directive { color: darkmagenta }
+
+/* Macros and variables could have pop-up notes hidden by default.
+ - Macro pop-up: expansion of the macro
+ - Variable pop-up: value (table) of the variable */
+.macro_popup, .variable_popup { display: none; }
+
+/* Pop-up appears on mouse-hover event. */
+.macro:hover .macro_popup, .variable:hover .variable_popup {
+ display: block;
+ padding: 2px;
+ -webkit-border-radius:5px;
+ -webkit-box-shadow:1px 1px 7px #000;
+ border-radius:5px;
+ box-shadow:1px 1px 7px #000;
+ position: absolute;
+ top: -1em;
+ left:10em;
+ z-index: 1
+}
+
+.macro_popup {
+ border: 2px solid red;
+ background-color:#FFF0F0;
+ font-weight: normal;
+}
+
+.variable_popup {
+ border: 2px solid blue;
+ background-color:#F0F0FF;
+ font-weight: bold;
+ font-family: Helvetica, sans-serif;
+ font-size: 9pt;
+}
+
+/* Pop-up notes needs a relative position as a base where they pops up. */
+.macro, .variable {
+ background-color: PaleGoldenRod;
+ position: relative;
+}
+.macro { color: DarkMagenta; }
+
+#tooltiphint {
+ position: fixed;
+ width: 50em;
+ margin-left: -25em;
+ left: 50%;
+ padding: 10px;
+ border: 1px solid #b0b0b0;
+ border-radius: 2px;
+ box-shadow: 1px 1px 7px black;
+ background-color: #c0c0c0;
+ z-index: 2;
+}
+
+.num { width:2.5em; padding-right:2ex; background-color:#eeeeee }
+.num { text-align:right; font-size:8pt }
+.num { color:#444444 }
+.line { padding-left: 1ex; border-left: 3px solid #ccc }
+.line { white-space: pre }
+.msg { -webkit-box-shadow:1px 1px 7px #000 }
+.msg { box-shadow:1px 1px 7px #000 }
+.msg { -webkit-border-radius:5px }
+.msg { border-radius:5px }
+.msg { font-family:Helvetica, sans-serif; font-size:8pt }
+.msg { float:left }
+.msg { position:relative }
+.msg { padding:0.25em 1ex 0.25em 1ex }
+.msg { margin-top:10px; margin-bottom:10px }
+.msg { font-weight:bold }
+.msg { max-width:60em; word-wrap: break-word; white-space: pre-wrap }
+.msgT { padding:0x; spacing:0x }
+.msgEvent { background-color:#fff8b4; color:#000000 }
+.msgControl { background-color:#bbbbbb; color:#000000 }
+.msgNote { background-color:#ddeeff; color:#000000 }
+.mrange { background-color:#dfddf3 }
+.mrange { border-bottom:1px solid #6F9DBE }
+.PathIndex { font-weight: bold; padding:0px 5px; margin-right:5px; }
+.PathIndex { -webkit-border-radius:8px }
+.PathIndex { border-radius:8px }
+.PathIndexEvent { background-color:#bfba87 }
+.PathIndexControl { background-color:#8c8c8c }
+.PathIndexPopUp { background-color: #879abc; }
+.PathNav a { text-decoration:none; font-size: larger }
+.CodeInsertionHint { font-weight: bold; background-color: #10dd10 }
+.CodeRemovalHint { background-color:#de1010 }
+.CodeRemovalHint { border-bottom:1px solid #6F9DBE }
+.msg.selected{ background-color:orange !important; }
+
+table.simpletable {
+ padding: 5px;
+ font-size:12pt;
+ margin:20px;
+ border-collapse: collapse; border-spacing: 0px;
+}
+td.rowname {
+ text-align: right;
+ vertical-align: top;
+ font-weight: bold;
+ color:#444444;
+ padding-right:2ex;
+}
+
+/* Hidden text. */
+input.spoilerhider + label {
+ cursor: pointer;
+ text-decoration: underline;
+ display: block;
+}
+input.spoilerhider {
+ display: none;
+}
+input.spoilerhider ~ .spoiler {
+ overflow: hidden;
+ margin: 10px auto 0;
+ height: 0;
+ opacity: 0;
+}
+input.spoilerhider:checked + label + .spoiler{
+ height: auto;
+ opacity: 1;
+}
+</style>
+</head>
+<body>
+<!-- BUGDESC Casting a non-structure type to a structure type and accessing a field can lead to memory access errors or data corruption -->
+
+<!-- BUGTYPE Cast from non-struct type to struct type -->
+
+<!-- BUGCATEGORY Logic error -->
+
+<!-- BUGFILE /rootdir/src/terminal-accels.c -->
+
+<!-- FILENAME terminal-accels.c -->
+
+<!-- FUNCTIONNAME keys_change_notify -->
+
+<!-- ISSUEHASHCONTENTOFLINEINCONTEXT 86ff444d4eff69f25ed5bcab6522c504 -->
+
+<!-- BUGLINE 541 -->
+
+<!-- BUGCOLUMN 48 -->
+
+<!-- BUGPATHLENGTH 1 -->
+
+<!-- BUGMETAEND -->
+<!-- REPORTHEADER -->
+<h3>Bug Summary</h3>
+<table class="simpletable">
+<tr><td class="rowname">File:</td><td>terminal-accels.c</td></tr>
+<tr><td class="rowname">Warning:</td><td><a href="#EndPath">line 541, column 48</a><br />Casting a non-structure type to a structure type and accessing a field can lead to memory access errors or data corruption</td></tr>
+
+</table>
+<!-- REPORTSUMMARYEXTRA -->
+<h3>Annotated Source Code</h3>
+<p>Press <a href="#" onclick="toggleHelp(); return false;">'?'</a>
+ to see keyboard shortcuts</p>
+<input type="checkbox" class="spoilerhider" id="showinvocation" />
+<label for="showinvocation" >Show analyzer invocation</label>
+<div class="spoiler">clang -cc1 -cc1 -triple x86_64-redhat-linux-gnu -analyze -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name terminal-accels.c -analyzer-checker=core -analyzer-checker=apiModeling -analyzer-checker=unix -analyzer-checker=deadcode -analyzer-checker=security.insecureAPI.UncheckedReturn -analyzer-checker=security.insecureAPI.getpw -analyzer-checker=security.insecureAPI.gets -analyzer-checker=security.insecureAPI.mktemp -analyzer-checker=security.insecureAPI.mkstemp -analyzer-checker=security.insecureAPI.vfork -analyzer-checker=nullability.NullPassedToNonnull -analyzer-checker=nullability.NullReturnedFromNonnull -analyzer-output plist -w -setup-static-analyzer -mrelocation-model static -mframe-pointer=all -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -tune-cpu generic -debugger-tuning=gdb -fcoverage-compilation-dir=/rootdir/src -resource-dir /usr/bin/../lib/clang/17 -D HAVE_CONFIG_H -I . -I .. -I ../src/mate-submodules/libegg -D TERMINAL_COMPILATION -D TERMINAL_RESOURCES_PATH_PREFIX="/org/mate/terminal" -D TERM_DATADIR="/usr/local/share" -D TERM_LOCALEDIR="/usr/local/share/locale" -D TERM_PKGDATADIR="/usr/local/share/mate-terminal" -D TERM_HELPDIR="/usr/local/share/help" -D SN_API_NOT_YET_FROZEN -D GDK_MULTIHEAD_SAFE -D G_DISABLE_SINGLE_INCLUDES -D PANGO_DISABLE_SINGLE_INCLUDES -D ATK_DISABLE_SINGLE_INCLUDES -D GDK_DISABLE_SINGLE_INCLUDES -D GDK_PIXBUF_DISABLE_SINGLE_INCLUDES -D GTK_DISABLE_SINGLE_INCLUDES -I /usr/include/dconf -I /usr/include/vte-2.91 -I /usr/include/pango-1.0 -I /usr/include/gtk-3.0 -I /usr/include/gdk-pixbuf-2.0 -I /usr/include/cairo -I /usr/include/dbus-1.0 -I /usr/lib64/dbus-1.0/include -I /usr/include/atk-1.0 -I /usr/include/harfbuzz -I /usr/include/freetype2 -I /usr/include/glib-2.0 -I /usr/lib64/glib-2.0/include -I /usr/include/cloudproviders -I /usr/include/at-spi2-atk/2.0 -I /usr/include/at-spi-2.0 -I /usr/include/blkid -I /usr/include/gio-unix-2.0 -I /usr/include/pixman-1 -I /usr/include/libmount -I /usr/include/libxml2 -I /usr/include/fribidi -I /usr/include/libpng16 -I /usr/include/sysprof-6 -internal-isystem /usr/bin/../lib/clang/17/include -internal-isystem /usr/local/include -internal-isystem /usr/bin/../lib/gcc/x86_64-redhat-linux/13/../../../../x86_64-redhat-linux/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -Wno-unused-parameter -fdebug-compilation-dir=/rootdir/src -ferror-limit 19 -fgnuc-version=4.2.1 -analyzer-checker deadcode.DeadStores -analyzer-checker alpha.deadcode.UnreachableCode -analyzer-checker alpha.core.CastSize -analyzer-checker alpha.core.CastToStruct -analyzer-checker alpha.core.IdenticalExpr -analyzer-checker alpha.core.SizeofPtr -analyzer-checker alpha.security.ArrayBoundV2 -analyzer-checker alpha.security.MallocOverflow -analyzer-checker alpha.security.ReturnPtrRange -analyzer-checker alpha.unix.SimpleStream -analyzer-checker alpha.unix.cstring.BufferOverlap -analyzer-checker alpha.unix.cstring.NotNullTerminated -analyzer-checker alpha.unix.cstring.OutOfBounds -analyzer-checker alpha.core.FixedAddr -analyzer-checker security.insecureAPI.strcpy -analyzer-output=html -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /rootdir/html-report/2024-02-18-131424-5067-1 -x c terminal-accels.c
+</div>
+<div id='tooltiphint' hidden="true">
+ <p>Keyboard shortcuts: </p>
+ <ul>
+ <li>Use 'j/k' keys for keyboard navigation</li>
+ <li>Use 'Shift+S' to show/hide relevant lines</li>
+ <li>Use '?' to toggle this window</li>
+ </ul>
+ <a href="#" onclick="toggleHelp(); return false;">Close</a>
+</div>
+<script type='text/javascript'>
+var relevant_lines = {"1": {"541": 1}};
+
+var filterCounterexample = function (hide) {
+ var tables = document.getElementsByClassName("code");
+ for (var t=0; t<tables.length; t++) {
+ var table = tables[t];
+ var file_id = table.getAttribute("data-fileid");
+ var lines_in_fid = relevant_lines[file_id];
+ if (!lines_in_fid) {
+ lines_in_fid = {};
+ }
+ var lines = table.getElementsByClassName("codeline");
+ for (var i=0; i<lines.length; i++) {
+ var el = lines[i];
+ var lineNo = el.getAttribute("data-linenumber");
+ if (!lines_in_fid[lineNo]) {
+ if (hide) {
+ el.setAttribute("hidden", "");
+ } else {
+ el.removeAttribute("hidden");
+ }
+ }
+ }
+ }
+}
+
+window.addEventListener("keydown", function (event) {
+ if (event.defaultPrevented) {
+ return;
+ }
+ // SHIFT + S
+ if (event.shiftKey && event.keyCode == 83) {
+ var checked = document.getElementsByName("showCounterexample")[0].checked;
+ filterCounterexample(!checked);
+ document.getElementsByName("showCounterexample")[0].click();
+ } else {
+ return;
+ }
+ event.preventDefault();
+}, true);
+
+document.addEventListener("DOMContentLoaded", function() {
+ document.querySelector('input[name="showCounterexample"]').onchange=
+ function (event) {
+ filterCounterexample(this.checked);
+ };
+});
+</script>
+
+<form>
+ <input type="checkbox" name="showCounterexample" id="showCounterexample" />
+ <label for="showCounterexample">
+ Show only relevant lines
+ </label>
+ <input type="checkbox" name="showArrows"
+ id="showArrows" style="margin-left: 10px" />
+ <label for="showArrows">
+ Show control flow arrows
+ </label>
+</form>
+
+<script type='text/javascript'>
+// Return range of numbers from a range [lower, upper).
+function range(lower, upper) {
+ var array = [];
+ for (var i = lower; i <= upper; ++i) {
+ array.push(i);
+ }
+ return array;
+}
+
+var getRelatedArrowIndices = function(pathId) {
+ // HTML numeration of events is a bit different than it is in the path.
+ // Everything is rotated one step to the right, so the last element
+ // (error diagnostic) has index 0.
+ if (pathId == 0) {
+ // arrowIndices has at least 2 elements
+ pathId = arrowIndices.length - 1;
+ }
+
+ return range(arrowIndices[pathId], arrowIndices[pathId - 1]);
+}
+
+var highlightArrowsForSelectedEvent = function() {
+ const selectedNum = findNum();
+ const arrowIndicesToHighlight = getRelatedArrowIndices(selectedNum);
+ arrowIndicesToHighlight.forEach((index) => {
+ var arrow = document.querySelector("#arrow" + index);
+ if(arrow) {
+ classListAdd(arrow, "selected")
+ }
+ });
+}
+
+var getAbsoluteBoundingRect = function(element) {
+ const relative = element.getBoundingClientRect();
+ return {
+ left: relative.left + window.pageXOffset,
+ right: relative.right + window.pageXOffset,
+ top: relative.top + window.pageYOffset,
+ bottom: relative.bottom + window.pageYOffset,
+ height: relative.height,
+ width: relative.width
+ };
+}
+
+var drawArrow = function(index) {
+ // This function is based on the great answer from SO:
+ // https://stackoverflow.com/a/39575674/11582326
+ var start = document.querySelector("#start" + index);
+ var end = document.querySelector("#end" + index);
+ var arrow = document.querySelector("#arrow" + index);
+
+ var startRect = getAbsoluteBoundingRect(start);
+ var endRect = getAbsoluteBoundingRect(end);
+
+ // It is an arrow from a token to itself, no need to visualize it.
+ if (startRect.top == endRect.top &&
+ startRect.left == endRect.left)
+ return;
+
+ // Each arrow is a very simple Bézier curve, with two nodes and
+ // two handles. So, we need to calculate four points in the window:
+ // * start node
+ var posStart = { x: 0, y: 0 };
+ // * end node
+ var posEnd = { x: 0, y: 0 };
+ // * handle for the start node
+ var startHandle = { x: 0, y: 0 };
+ // * handle for the end node
+ var endHandle = { x: 0, y: 0 };
+ // One can visualize it as follows:
+ //
+ // start handle
+ // /
+ // X"""_.-""""X
+ // .' \
+ // / start node
+ // |
+ // |
+ // | end node
+ // \ /
+ // `->X
+ // X-'
+ // \
+ // end handle
+ //
+ // NOTE: (0, 0) is the top left corner of the window.
+
+ // We have 3 similar, but still different scenarios to cover:
+ //
+ // 1. Two tokens on different lines.
+ // -xxx
+ // /
+ // \
+ // -> xxx
+ // In this situation, we draw arrow on the left curving to the left.
+ // 2. Two tokens on the same line, and the destination is on the right.
+ // ____
+ // / \
+ // / V
+ // xxx xxx
+ // In this situation, we draw arrow above curving upwards.
+ // 3. Two tokens on the same line, and the destination is on the left.
+ // xxx xxx
+ // ^ /
+ // \____/
+ // In this situation, we draw arrow below curving downwards.
+ const onDifferentLines = startRect.top <= endRect.top - 5 ||
+ startRect.top >= endRect.top + 5;
+ const leftToRight = startRect.left < endRect.left;
+
+ // NOTE: various magic constants are chosen empirically for
+ // better positioning and look
+ if (onDifferentLines) {
+ // Case #1
+ const topToBottom = startRect.top < endRect.top;
+ posStart.x = startRect.left - 1;
+ // We don't want to start it at the top left corner of the token,
+ // it doesn't feel like this is where the arrow comes from.
+ // For this reason, we start it in the middle of the left side
+ // of the token.
+ posStart.y = startRect.top + startRect.height / 2;
+
+ // End node has arrow head and we give it a bit more space.
+ posEnd.x = endRect.left - 4;
+ posEnd.y = endRect.top;
+
+ // Utility object with x and y offsets for handles.
+ var curvature = {
+ // We want bottom-to-top arrow to curve a bit more, so it doesn't
+ // overlap much with top-to-bottom curves (much more frequent).
+ x: topToBottom ? 15 : 25,
+ y: Math.min((posEnd.y - posStart.y) / 3, 10)
+ }
+
+ // When destination is on the different line, we can make a
+ // curvier arrow because we have space for it.
+ // So, instead of using
+ //
+ // startHandle.x = posStart.x - curvature.x
+ // endHandle.x = posEnd.x - curvature.x
+ //
+ // We use the leftmost of these two values for both handles.
+ startHandle.x = Math.min(posStart.x, posEnd.x) - curvature.x;
+ endHandle.x = startHandle.x;
+
+ // Curving downwards from the start node...
+ startHandle.y = posStart.y + curvature.y;
+ // ... and upwards from the end node.
+ endHandle.y = posEnd.y - curvature.y;
+
+ } else if (leftToRight) {
+ // Case #2
+ // Starting from the top right corner...
+ posStart.x = startRect.right - 1;
+ posStart.y = startRect.top;
+
+ // ...and ending at the top left corner of the end token.
+ posEnd.x = endRect.left + 1;
+ posEnd.y = endRect.top - 1;
+
+ // Utility object with x and y offsets for handles.
+ var curvature = {
+ x: Math.min((posEnd.x - posStart.x) / 3, 15),
+ y: 5
+ }
+
+ // Curving to the right...
+ startHandle.x = posStart.x + curvature.x;
+ // ... and upwards from the start node.
+ startHandle.y = posStart.y - curvature.y;
+
+ // And to the left...
+ endHandle.x = posEnd.x - curvature.x;
+ // ... and upwards from the end node.
+ endHandle.y = posEnd.y - curvature.y;
+
+ } else {
+ // Case #3
+ // Starting from the bottom right corner...
+ posStart.x = startRect.right;
+ posStart.y = startRect.bottom;
+
+ // ...and ending also at the bottom right corner, but of the end token.
+ posEnd.x = endRect.right - 1;
+ posEnd.y = endRect.bottom + 1;
+
+ // Utility object with x and y offsets for handles.
+ var curvature = {
+ x: Math.min((posStart.x - posEnd.x) / 3, 15),
+ y: 5
+ }
+
+ // Curving to the left...
+ startHandle.x = posStart.x - curvature.x;
+ // ... and downwards from the start node.
+ startHandle.y = posStart.y + curvature.y;
+
+ // And to the right...
+ endHandle.x = posEnd.x + curvature.x;
+ // ... and downwards from the end node.
+ endHandle.y = posEnd.y + curvature.y;
+ }
+
+ // Put it all together into a path.
+ // More information on the format:
+ // https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths
+ var pathStr = "M" + posStart.x + "," + posStart.y + " " +
+ "C" + startHandle.x + "," + startHandle.y + " " +
+ endHandle.x + "," + endHandle.y + " " +
+ posEnd.x + "," + posEnd.y;
+
+ arrow.setAttribute("d", pathStr);
+};
+
+var drawArrows = function() {
+ const numOfArrows = document.querySelectorAll("path[id^=arrow]").length;
+ for (var i = 0; i < numOfArrows; ++i) {
+ drawArrow(i);
+ }
+}
+
+var toggleArrows = function(event) {
+ const arrows = document.querySelector("#arrows");
+ if (event.target.checked) {
+ arrows.setAttribute("visibility", "visible");
+ } else {
+ arrows.setAttribute("visibility", "hidden");
+ }
+}
+
+window.addEventListener("resize", drawArrows);
+document.addEventListener("DOMContentLoaded", function() {
+ // Whenever we show invocation, locations change, i.e. we
+ // need to redraw arrows.
+ document
+ .querySelector('input[id="showinvocation"]')
+ .addEventListener("click", drawArrows);
+ // Hiding irrelevant lines also should cause arrow rerender.
+ document
+ .querySelector('input[name="showCounterexample"]')
+ .addEventListener("change", drawArrows);
+ document
+ .querySelector('input[name="showArrows"]')
+ .addEventListener("change", toggleArrows);
+ drawArrows();
+ // Default highlighting for the last event.
+ highlightArrowsForSelectedEvent();
+});
+</script>
+
+<script type='text/javascript'>
+var digitMatcher = new RegExp("[0-9]+");
+
+var querySelectorAllArray = function(selector) {
+ return Array.prototype.slice.call(
+ document.querySelectorAll(selector));
+}
+
+document.addEventListener("DOMContentLoaded", function() {
+ querySelectorAllArray(".PathNav > a").forEach(
+ function(currentValue, currentIndex) {
+ var hrefValue = currentValue.getAttribute("href");
+ currentValue.onclick = function() {
+ scrollTo(document.querySelector(hrefValue));
+ return false;
+ };
+ });
+});
+
+var findNum = function() {
+ var s = document.querySelector(".msg.selected");
+ if (!s || s.id == "EndPath") {
+ return 0;
+ }
+ var out = parseInt(digitMatcher.exec(s.id)[0]);
+ return out;
+};
+
+var classListAdd = function(el, theClass) {
+ if(!el.className.baseVal)
+ el.className += " " + theClass;
+ else
+ el.className.baseVal += " " + theClass;
+};
+
+var classListRemove = function(el, theClass) {
+ var className = (!el.className.baseVal) ?
+ el.className : el.className.baseVal;
+ className = className.replace(" " + theClass, "");
+ if(!el.className.baseVal)
+ el.className = className;
+ else
+ el.className.baseVal = className;
+};
+
+var scrollTo = function(el) {
+ querySelectorAllArray(".selected").forEach(function(s) {
+ classListRemove(s, "selected");
+ });
+ classListAdd(el, "selected");
+ window.scrollBy(0, el.getBoundingClientRect().top -
+ (window.innerHeight / 2));
+ highlightArrowsForSelectedEvent();
+};
+
+var move = function(num, up, numItems) {
+ if (num == 1 && up || num == numItems - 1 && !up) {
+ return 0;
+ } else if (num == 0 && up) {
+ return numItems - 1;
+ } else if (num == 0 && !up) {
+ return 1 % numItems;
+ }
+ return up ? num - 1 : num + 1;
+}
+
+var numToId = function(num) {
+ if (num == 0) {
+ return document.getElementById("EndPath")
+ }
+ return document.getElementById("Path" + num);
+};
+
+var navigateTo = function(up) {
+ var numItems = document.querySelectorAll(
+ ".line > .msgEvent, .line > .msgControl").length;
+ var currentSelected = findNum();
+ var newSelected = move(currentSelected, up, numItems);
+ var newEl = numToId(newSelected, numItems);
+
+ // Scroll element into center.
+ scrollTo(newEl);
+};
+
+window.addEventListener("keydown", function (event) {
+ if (event.defaultPrevented) {
+ return;
+ }
+ // key 'j'
+ if (event.keyCode == 74) {
+ navigateTo(/*up=*/false);
+ // key 'k'
+ } else if (event.keyCode == 75) {
+ navigateTo(/*up=*/true);
+ } else {
+ return;
+ }
+ event.preventDefault();
+}, true);
+</script>
+
+<script type='text/javascript'>
+
+var toggleHelp = function() {
+ var hint = document.querySelector("#tooltiphint");
+ var attributeName = "hidden";
+ if (hint.hasAttribute(attributeName)) {
+ hint.removeAttribute(attributeName);
+ } else {
+ hint.setAttribute("hidden", "true");
+ }
+};
+window.addEventListener("keydown", function (event) {
+ if (event.defaultPrevented) {
+ return;
+ }
+ if (event.key == "?") {
+ toggleHelp();
+ } else {
+ return;
+ }
+ event.preventDefault();
+});
+</script>
+
+<style type="text/css">
+ svg {
+ position:absolute;
+ top:0;
+ left:0;
+ height:100%;
+ width:100%;
+ pointer-events: none;
+ overflow: visible
+ }
+ .arrow {
+ stroke-opacity: 0.2;
+ stroke-width: 1;
+ marker-end: url(#arrowhead);
+ }
+
+ .arrow.selected {
+ stroke-opacity: 0.6;
+ stroke-width: 2;
+ marker-end: url(#arrowheadSelected);
+ }
+
+ .arrowhead {
+ orient: auto;
+ stroke: none;
+ opacity: 0.6;
+ fill: blue;
+ }
+</style>
+<svg xmlns="http://www.w3.org/2000/svg">
+ <defs>
+ <marker id="arrowheadSelected" class="arrowhead" opacity="0.6"
+ viewBox="0 0 10 10" refX="3" refY="5"
+ markerWidth="4" markerHeight="4">
+ <path d="M 0 0 L 10 5 L 0 10 z" />
+ </marker>
+ <marker id="arrowhead" class="arrowhead" opacity="0.2"
+ viewBox="0 0 10 10" refX="3" refY="5"
+ markerWidth="4" markerHeight="4">
+ <path d="M 0 0 L 10 5 L 0 10 z" />
+ </marker>
+ </defs>
+ <g id="arrows" fill="none" stroke="blue" visibility="hidden">
+
+ </g>
+</svg>
+<script type='text/javascript'>
+const arrowIndices = [ 0,0 ]
+</script>
+<table class="code" data-fileid="1">
+<tr class="codeline" data-linenumber="1"><td class="num" id="LN1">1</td><td class="line"><span class='comment'>/*</span></td></tr>
+<tr class="codeline" data-linenumber="2"><td class="num" id="LN2">2</td><td class="line"> <span class='comment'>* Copyright © 2001, 2002 Havoc Pennington, Red Hat Inc.</span></td></tr>
+<tr class="codeline" data-linenumber="3"><td class="num" id="LN3">3</td><td class="line"> <span class='comment'>* Copyright © 2008 Christian Persch</span></td></tr>
+<tr class="codeline" data-linenumber="4"><td class="num" id="LN4">4</td><td class="line"> <span class='comment'>* Copyright (C) 2012-2021 MATE Developers</span></td></tr>
+<tr class="codeline" data-linenumber="5"><td class="num" id="LN5">5</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="6"><td class="num" id="LN6">6</td><td class="line"> <span class='comment'>* Mate-terminal is free software; you can redistribute it and/or modify</span></td></tr>
+<tr class="codeline" data-linenumber="7"><td class="num" id="LN7">7</td><td class="line"> <span class='comment'>* it under the terms of the GNU General Public License as published by</span></td></tr>
+<tr class="codeline" data-linenumber="8"><td class="num" id="LN8">8</td><td class="line"> <span class='comment'>* the Free Software Foundation; either version 3 of the License, or</span></td></tr>
+<tr class="codeline" data-linenumber="9"><td class="num" id="LN9">9</td><td class="line"> <span class='comment'>* (at your option) any later version.</span></td></tr>
+<tr class="codeline" data-linenumber="10"><td class="num" id="LN10">10</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="11"><td class="num" id="LN11">11</td><td class="line"> <span class='comment'>* Mate-terminal is distributed in the hope that it will be useful,</span></td></tr>
+<tr class="codeline" data-linenumber="12"><td class="num" id="LN12">12</td><td class="line"> <span class='comment'>* but WITHOUT ANY WARRANTY; without even the implied warranty of</span></td></tr>
+<tr class="codeline" data-linenumber="13"><td class="num" id="LN13">13</td><td class="line"> <span class='comment'>* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></td></tr>
+<tr class="codeline" data-linenumber="14"><td class="num" id="LN14">14</td><td class="line"> <span class='comment'>* GNU General Public License for more details.</span></td></tr>
+<tr class="codeline" data-linenumber="15"><td class="num" id="LN15">15</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="16"><td class="num" id="LN16">16</td><td class="line"> <span class='comment'>* You should have received a copy of the GNU General Public License</span></td></tr>
+<tr class="codeline" data-linenumber="17"><td class="num" id="LN17">17</td><td class="line"> <span class='comment'>* along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.</span></td></tr>
+<tr class="codeline" data-linenumber="18"><td class="num" id="LN18">18</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="19"><td class="num" id="LN19">19</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="20"><td class="num" id="LN20">20</td><td class="line"><span class='directive'>#include &lt;config.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="21"><td class="num" id="LN21">21</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="22"><td class="num" id="LN22">22</td><td class="line"><span class='directive'>#include &lt;string.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="23"><td class="num" id="LN23">23</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="24"><td class="num" id="LN24">24</td><td class="line"><span class='directive'>#include &lt;gdk/gdkkeysyms.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="25"><td class="num" id="LN25">25</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="26"><td class="num" id="LN26">26</td><td class="line"><span class='directive'>#include "terminal-accels.h"</span></td></tr>
+<tr class="codeline" data-linenumber="27"><td class="num" id="LN27">27</td><td class="line"><span class='directive'>#include "terminal-app.h"</span></td></tr>
+<tr class="codeline" data-linenumber="28"><td class="num" id="LN28">28</td><td class="line"><span class='directive'>#include "terminal-debug.h"</span></td></tr>
+<tr class="codeline" data-linenumber="29"><td class="num" id="LN29">29</td><td class="line"><span class='directive'>#include "terminal-intl.h"</span></td></tr>
+<tr class="codeline" data-linenumber="30"><td class="num" id="LN30">30</td><td class="line"><span class='directive'>#include "terminal-profile.h"</span></td></tr>
+<tr class="codeline" data-linenumber="31"><td class="num" id="LN31">31</td><td class="line"><span class='directive'>#include "terminal-util.h"</span></td></tr>
+<tr class="codeline" data-linenumber="32"><td class="num" id="LN32">32</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="33"><td class="num" id="LN33">33</td><td class="line"><span class='comment'>/* NOTES</span></td></tr>
+<tr class="codeline" data-linenumber="34"><td class="num" id="LN34">34</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="35"><td class="num" id="LN35">35</td><td class="line"> <span class='comment'>* There are two sources of keybindings changes, from GSettings and from</span></td></tr>
+<tr class="codeline" data-linenumber="36"><td class="num" id="LN36">36</td><td class="line"> <span class='comment'>* the accel map (happens with in-place menu editing).</span></td></tr>
+<tr class="codeline" data-linenumber="37"><td class="num" id="LN37">37</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="38"><td class="num" id="LN38">38</td><td class="line"> <span class='comment'>* When a keybinding GSettins key changes, we propagate that into the</span></td></tr>
+<tr class="codeline" data-linenumber="39"><td class="num" id="LN39">39</td><td class="line"> <span class='comment'>* accel map.</span></td></tr>
+<tr class="codeline" data-linenumber="40"><td class="num" id="LN40">40</td><td class="line"> <span class='comment'>* When the accel map changes, we queue a sync to GSettings.</span></td></tr>
+<tr class="codeline" data-linenumber="41"><td class="num" id="LN41">41</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="42"><td class="num" id="LN42">42</td><td class="line"> <span class='comment'>* To avoid infinite loops, we short-circuit in both directions</span></td></tr>
+<tr class="codeline" data-linenumber="43"><td class="num" id="LN43">43</td><td class="line"> <span class='comment'>* if the value is unchanged from last known.</span></td></tr>
+<tr class="codeline" data-linenumber="44"><td class="num" id="LN44">44</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="45"><td class="num" id="LN45">45</td><td class="line"> <span class='comment'>* In the keybinding editor, when editing or clearing an accel, we write</span></td></tr>
+<tr class="codeline" data-linenumber="46"><td class="num" id="LN46">46</td><td class="line"> <span class='comment'>* the change directly to GSettings and rely on the GSettings callback to</span></td></tr>
+<tr class="codeline" data-linenumber="47"><td class="num" id="LN47">47</td><td class="line"> <span class='comment'>* actually apply the change to the accel map.</span></td></tr>
+<tr class="codeline" data-linenumber="48"><td class="num" id="LN48">48</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="49"><td class="num" id="LN49">49</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="50"><td class="num" id="LN50">50</td><td class="line"><span class='directive'>#define <span class='macro'>ACCEL_PATH_ROOT<span class='macro_popup'>"&lt;Actions&gt;/Main/"</span></span> "&lt;Actions&gt;/Main/"</span></td></tr>
+<tr class="codeline" data-linenumber="51"><td class="num" id="LN51">51</td><td class="line"><span class='directive'>#define <span class='macro'>ACCEL_PATH_NEW_TAB<span class='macro_popup'>"&lt;Actions&gt;/Main/" "FileNewTab"</span></span> <span class='macro'>ACCEL_PATH_ROOT<span class='macro_popup'>"&lt;Actions&gt;/Main/"</span></span> "FileNewTab"</span></td></tr>
+<tr class="codeline" data-linenumber="52"><td class="num" id="LN52">52</td><td class="line"><span class='directive'>#define <span class='macro'>ACCEL_PATH_NEW_WINDOW<span class='macro_popup'>"&lt;Actions&gt;/Main/" "FileNewWindow"</span></span> <span class='macro'>ACCEL_PATH_ROOT<span class='macro_popup'>"&lt;Actions&gt;/Main/"</span></span> "FileNewWindow"</span></td></tr>
+<tr class="codeline" data-linenumber="53"><td class="num" id="LN53">53</td><td class="line"><span class='directive'>#define <span class='macro'>ACCEL_PATH_NEW_PROFILE<span class='macro_popup'>"&lt;Actions&gt;/Main/" "FileNewProfile"</span></span> <span class='macro'>ACCEL_PATH_ROOT<span class='macro_popup'>"&lt;Actions&gt;/Main/"</span></span> "FileNewProfile"</span></td></tr>
+<tr class="codeline" data-linenumber="54"><td class="num" id="LN54">54</td><td class="line"><span class='directive'>#define <span class='macro'>ACCEL_PATH_SAVE_CONTENTS<span class='macro_popup'>"&lt;Actions&gt;/Main/" "FileSaveContents"</span></span> <span class='macro'>ACCEL_PATH_ROOT<span class='macro_popup'>"&lt;Actions&gt;/Main/"</span></span> "FileSaveContents"</span></td></tr>
+<tr class="codeline" data-linenumber="55"><td class="num" id="LN55">55</td><td class="line"><span class='directive'>#define <span class='macro'>ACCEL_PATH_CLOSE_TAB<span class='macro_popup'>"&lt;Actions&gt;/Main/" "FileCloseTab"</span></span> <span class='macro'>ACCEL_PATH_ROOT<span class='macro_popup'>"&lt;Actions&gt;/Main/"</span></span> "FileCloseTab"</span></td></tr>
+<tr class="codeline" data-linenumber="56"><td class="num" id="LN56">56</td><td class="line"><span class='directive'>#define <span class='macro'>ACCEL_PATH_CLOSE_WINDOW<span class='macro_popup'>"&lt;Actions&gt;/Main/" "FileCloseWindow"</span></span> <span class='macro'>ACCEL_PATH_ROOT<span class='macro_popup'>"&lt;Actions&gt;/Main/"</span></span> "FileCloseWindow"</span></td></tr>
+<tr class="codeline" data-linenumber="57"><td class="num" id="LN57">57</td><td class="line"><span class='directive'>#define <span class='macro'>ACCEL_PATH_COPY<span class='macro_popup'>"&lt;Actions&gt;/Main/" "EditCopy"</span></span> <span class='macro'>ACCEL_PATH_ROOT<span class='macro_popup'>"&lt;Actions&gt;/Main/"</span></span> "EditCopy"</span></td></tr>
+<tr class="codeline" data-linenumber="58"><td class="num" id="LN58">58</td><td class="line"><span class='directive'>#define <span class='macro'>ACCEL_PATH_PASTE<span class='macro_popup'>"&lt;Actions&gt;/Main/" "EditPaste"</span></span> <span class='macro'>ACCEL_PATH_ROOT<span class='macro_popup'>"&lt;Actions&gt;/Main/"</span></span> "EditPaste"</span></td></tr>
+<tr class="codeline" data-linenumber="59"><td class="num" id="LN59">59</td><td class="line"><span class='directive'>#define <span class='macro'>ACCEL_PATH_SELECT_ALL<span class='macro_popup'>"&lt;Actions&gt;/Main/" "EditSelectAll"</span></span> <span class='macro'>ACCEL_PATH_ROOT<span class='macro_popup'>"&lt;Actions&gt;/Main/"</span></span> "EditSelectAll"</span></td></tr>
+<tr class="codeline" data-linenumber="60"><td class="num" id="LN60">60</td><td class="line"><span class='directive'>#define <span class='macro'>ACCEL_PATH_SEARCH_FIND<span class='macro_popup'>"&lt;Actions&gt;/Main/" "SearchFind"</span></span> <span class='macro'>ACCEL_PATH_ROOT<span class='macro_popup'>"&lt;Actions&gt;/Main/"</span></span> "SearchFind"</span></td></tr>
+<tr class="codeline" data-linenumber="61"><td class="num" id="LN61">61</td><td class="line"><span class='directive'>#define <span class='macro'>ACCEL_PATH_SEARCH_FIND_NEXT<span class='macro_popup'>"&lt;Actions&gt;/Main/" "SearchFindNext"</span></span> <span class='macro'>ACCEL_PATH_ROOT<span class='macro_popup'>"&lt;Actions&gt;/Main/"</span></span> "SearchFindNext"</span></td></tr>
+<tr class="codeline" data-linenumber="62"><td class="num" id="LN62">62</td><td class="line"><span class='directive'>#define <span class='macro'>ACCEL_PATH_SEARCH_FIND_PREVIOUS<span class='macro_popup'>"&lt;Actions&gt;/Main/" "SearchFindPrevious"</span></span> <span class='macro'>ACCEL_PATH_ROOT<span class='macro_popup'>"&lt;Actions&gt;/Main/"</span></span> "SearchFindPrevious"</span></td></tr>
+<tr class="codeline" data-linenumber="63"><td class="num" id="LN63">63</td><td class="line"><span class='directive'>#define <span class='macro'>ACCEL_PATH_TOGGLE_MENUBAR<span class='macro_popup'>"&lt;Actions&gt;/Main/" "ViewMenubar"</span></span> <span class='macro'>ACCEL_PATH_ROOT<span class='macro_popup'>"&lt;Actions&gt;/Main/"</span></span> "ViewMenubar"</span></td></tr>
+<tr class="codeline" data-linenumber="64"><td class="num" id="LN64">64</td><td class="line"><span class='directive'>#define <span class='macro'>ACCEL_PATH_FULL_SCREEN<span class='macro_popup'>"&lt;Actions&gt;/Main/" "ViewFullscreen"</span></span> <span class='macro'>ACCEL_PATH_ROOT<span class='macro_popup'>"&lt;Actions&gt;/Main/"</span></span> "ViewFullscreen"</span></td></tr>
+<tr class="codeline" data-linenumber="65"><td class="num" id="LN65">65</td><td class="line"><span class='directive'>#define <span class='macro'>ACCEL_PATH_RESET<span class='macro_popup'>"&lt;Actions&gt;/Main/" "TerminalReset"</span></span> <span class='macro'>ACCEL_PATH_ROOT<span class='macro_popup'>"&lt;Actions&gt;/Main/"</span></span> "TerminalReset"</span></td></tr>
+<tr class="codeline" data-linenumber="66"><td class="num" id="LN66">66</td><td class="line"><span class='directive'>#define <span class='macro'>ACCEL_PATH_RESET_AND_CLEAR<span class='macro_popup'>"&lt;Actions&gt;/Main/" "TerminalResetClear"</span></span> <span class='macro'>ACCEL_PATH_ROOT<span class='macro_popup'>"&lt;Actions&gt;/Main/"</span></span> "TerminalResetClear"</span></td></tr>
+<tr class="codeline" data-linenumber="67"><td class="num" id="LN67">67</td><td class="line"><span class='directive'>#define <span class='macro'>ACCEL_PATH_PREV_PROFILE<span class='macro_popup'>"&lt;Actions&gt;/Main/" "ProfilePrevious"</span></span> <span class='macro'>ACCEL_PATH_ROOT<span class='macro_popup'>"&lt;Actions&gt;/Main/"</span></span> "ProfilePrevious"</span></td></tr>
+<tr class="codeline" data-linenumber="68"><td class="num" id="LN68">68</td><td class="line"><span class='directive'>#define <span class='macro'>ACCEL_PATH_NEXT_PROFILE<span class='macro_popup'>"&lt;Actions&gt;/Main/" "ProfileNext"</span></span> <span class='macro'>ACCEL_PATH_ROOT<span class='macro_popup'>"&lt;Actions&gt;/Main/"</span></span> "ProfileNext"</span></td></tr>
+<tr class="codeline" data-linenumber="69"><td class="num" id="LN69">69</td><td class="line"><span class='directive'>#define <span class='macro'>ACCEL_PATH_PREV_TAB<span class='macro_popup'>"&lt;Actions&gt;/Main/" "TabsPrevious"</span></span> <span class='macro'>ACCEL_PATH_ROOT<span class='macro_popup'>"&lt;Actions&gt;/Main/"</span></span> "TabsPrevious"</span></td></tr>
+<tr class="codeline" data-linenumber="70"><td class="num" id="LN70">70</td><td class="line"><span class='directive'>#define <span class='macro'>ACCEL_PATH_NEXT_TAB<span class='macro_popup'>"&lt;Actions&gt;/Main/" "TabsNext"</span></span> <span class='macro'>ACCEL_PATH_ROOT<span class='macro_popup'>"&lt;Actions&gt;/Main/"</span></span> "TabsNext"</span></td></tr>
+<tr class="codeline" data-linenumber="71"><td class="num" id="LN71">71</td><td class="line"><span class='directive'>#define <span class='macro'>ACCEL_PATH_SET_TERMINAL_TITLE<span class='macro_popup'>"&lt;Actions&gt;/Main/" "TerminalSetTitle"</span></span> <span class='macro'>ACCEL_PATH_ROOT<span class='macro_popup'>"&lt;Actions&gt;/Main/"</span></span> "TerminalSetTitle"</span></td></tr>
+<tr class="codeline" data-linenumber="72"><td class="num" id="LN72">72</td><td class="line"><span class='directive'>#define <span class='macro'>ACCEL_PATH_HELP<span class='macro_popup'>"&lt;Actions&gt;/Main/" "HelpContents"</span></span> <span class='macro'>ACCEL_PATH_ROOT<span class='macro_popup'>"&lt;Actions&gt;/Main/"</span></span> "HelpContents"</span></td></tr>
+<tr class="codeline" data-linenumber="73"><td class="num" id="LN73">73</td><td class="line"><span class='directive'>#define <span class='macro'>ACCEL_PATH_ZOOM_IN<span class='macro_popup'>"&lt;Actions&gt;/Main/" "ViewZoomIn"</span></span> <span class='macro'>ACCEL_PATH_ROOT<span class='macro_popup'>"&lt;Actions&gt;/Main/"</span></span> "ViewZoomIn"</span></td></tr>
+<tr class="codeline" data-linenumber="74"><td class="num" id="LN74">74</td><td class="line"><span class='directive'>#define <span class='macro'>ACCEL_PATH_ZOOM_OUT<span class='macro_popup'>"&lt;Actions&gt;/Main/" "ViewZoomOut"</span></span> <span class='macro'>ACCEL_PATH_ROOT<span class='macro_popup'>"&lt;Actions&gt;/Main/"</span></span> "ViewZoomOut"</span></td></tr>
+<tr class="codeline" data-linenumber="75"><td class="num" id="LN75">75</td><td class="line"><span class='directive'>#define <span class='macro'>ACCEL_PATH_ZOOM_NORMAL<span class='macro_popup'>"&lt;Actions&gt;/Main/" "ViewZoom100"</span></span> <span class='macro'>ACCEL_PATH_ROOT<span class='macro_popup'>"&lt;Actions&gt;/Main/"</span></span> "ViewZoom100"</span></td></tr>
+<tr class="codeline" data-linenumber="76"><td class="num" id="LN76">76</td><td class="line"><span class='directive'>#define <span class='macro'>ACCEL_PATH_MOVE_TAB_LEFT<span class='macro_popup'>"&lt;Actions&gt;/Main/" "TabsMoveLeft"</span></span> <span class='macro'>ACCEL_PATH_ROOT<span class='macro_popup'>"&lt;Actions&gt;/Main/"</span></span> "TabsMoveLeft"</span></td></tr>
+<tr class="codeline" data-linenumber="77"><td class="num" id="LN77">77</td><td class="line"><span class='directive'>#define <span class='macro'>ACCEL_PATH_MOVE_TAB_RIGHT<span class='macro_popup'>"&lt;Actions&gt;/Main/" "TabsMoveRight"</span></span> <span class='macro'>ACCEL_PATH_ROOT<span class='macro_popup'>"&lt;Actions&gt;/Main/"</span></span> "TabsMoveRight"</span></td></tr>
+<tr class="codeline" data-linenumber="78"><td class="num" id="LN78">78</td><td class="line"><span class='directive'>#define <span class='macro'>ACCEL_PATH_DETACH_TAB<span class='macro_popup'>"&lt;Actions&gt;/Main/" "TabsDetach"</span></span> <span class='macro'>ACCEL_PATH_ROOT<span class='macro_popup'>"&lt;Actions&gt;/Main/"</span></span> "TabsDetach"</span></td></tr>
+<tr class="codeline" data-linenumber="79"><td class="num" id="LN79">79</td><td class="line"><span class='directive'>#define <span class='macro'>ACCEL_PATH_SWITCH_TAB_PREFIX<span class='macro_popup'>"&lt;Actions&gt;/Main/" "TabsSwitch"</span></span> <span class='macro'>ACCEL_PATH_ROOT<span class='macro_popup'>"&lt;Actions&gt;/Main/"</span></span> "TabsSwitch"</span></td></tr>
+<tr class="codeline" data-linenumber="80"><td class="num" id="LN80">80</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="81"><td class="num" id="LN81">81</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_CLOSE_TAB<span class='macro_popup'>"close-tab"</span></span> "close-tab"</span></td></tr>
+<tr class="codeline" data-linenumber="82"><td class="num" id="LN82">82</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_CLOSE_WINDOW<span class='macro_popup'>"close-window"</span></span> "close-window"</span></td></tr>
+<tr class="codeline" data-linenumber="83"><td class="num" id="LN83">83</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_COPY<span class='macro_popup'>"copy"</span></span> "copy"</span></td></tr>
+<tr class="codeline" data-linenumber="84"><td class="num" id="LN84">84</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_DETACH_TAB<span class='macro_popup'>"detach-tab"</span></span> "detach-tab"</span></td></tr>
+<tr class="codeline" data-linenumber="85"><td class="num" id="LN85">85</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_FULL_SCREEN<span class='macro_popup'>"full-screen"</span></span> "full-screen"</span></td></tr>
+<tr class="codeline" data-linenumber="86"><td class="num" id="LN86">86</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_HELP<span class='macro_popup'>"help"</span></span> "help"</span></td></tr>
+<tr class="codeline" data-linenumber="87"><td class="num" id="LN87">87</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_MOVE_TAB_LEFT<span class='macro_popup'>"move-tab-left"</span></span> "move-tab-left"</span></td></tr>
+<tr class="codeline" data-linenumber="88"><td class="num" id="LN88">88</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_MOVE_TAB_RIGHT<span class='macro_popup'>"move-tab-right"</span></span> "move-tab-right"</span></td></tr>
+<tr class="codeline" data-linenumber="89"><td class="num" id="LN89">89</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_NEW_PROFILE<span class='macro_popup'>"new-profile"</span></span> "new-profile"</span></td></tr>
+<tr class="codeline" data-linenumber="90"><td class="num" id="LN90">90</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_NEW_TAB<span class='macro_popup'>"new-tab"</span></span> "new-tab"</span></td></tr>
+<tr class="codeline" data-linenumber="91"><td class="num" id="LN91">91</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_NEW_WINDOW<span class='macro_popup'>"new-window"</span></span> "new-window"</span></td></tr>
+<tr class="codeline" data-linenumber="92"><td class="num" id="LN92">92</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_NEXT_PROFILE<span class='macro_popup'>"next-profile"</span></span> "next-profile"</span></td></tr>
+<tr class="codeline" data-linenumber="93"><td class="num" id="LN93">93</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_NEXT_TAB<span class='macro_popup'>"next-tab"</span></span> "next-tab"</span></td></tr>
+<tr class="codeline" data-linenumber="94"><td class="num" id="LN94">94</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_PASTE<span class='macro_popup'>"paste"</span></span> "paste"</span></td></tr>
+<tr class="codeline" data-linenumber="95"><td class="num" id="LN95">95</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_PREV_PROFILE<span class='macro_popup'>"prev-profile"</span></span> "prev-profile"</span></td></tr>
+<tr class="codeline" data-linenumber="96"><td class="num" id="LN96">96</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_PREV_TAB<span class='macro_popup'>"prev-tab"</span></span> "prev-tab"</span></td></tr>
+<tr class="codeline" data-linenumber="97"><td class="num" id="LN97">97</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_RESET_AND_CLEAR<span class='macro_popup'>"reset-and-clear"</span></span> "reset-and-clear"</span></td></tr>
+<tr class="codeline" data-linenumber="98"><td class="num" id="LN98">98</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_RESET<span class='macro_popup'>"reset"</span></span> "reset"</span></td></tr>
+<tr class="codeline" data-linenumber="99"><td class="num" id="LN99">99</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_SEARCH_FIND<span class='macro_popup'>"search-find"</span></span> "search-find"</span></td></tr>
+<tr class="codeline" data-linenumber="100"><td class="num" id="LN100">100</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_SEARCH_FIND_NEXT<span class='macro_popup'>"search-find-next"</span></span> "search-find-next"</span></td></tr>
+<tr class="codeline" data-linenumber="101"><td class="num" id="LN101">101</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_SEARCH_FIND_PREVIOUS<span class='macro_popup'>"search-find-previous"</span></span> "search-find-previous"</span></td></tr>
+<tr class="codeline" data-linenumber="102"><td class="num" id="LN102">102</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_SELECT_ALL<span class='macro_popup'>"select-all"</span></span> "select-all"</span></td></tr>
+<tr class="codeline" data-linenumber="103"><td class="num" id="LN103">103</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_SAVE_CONTENTS<span class='macro_popup'>"save-contents"</span></span> "save-contents"</span></td></tr>
+<tr class="codeline" data-linenumber="104"><td class="num" id="LN104">104</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_SET_TERMINAL_TITLE<span class='macro_popup'>"set-terminal-title"</span></span> "set-terminal-title"</span></td></tr>
+<tr class="codeline" data-linenumber="105"><td class="num" id="LN105">105</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_TOGGLE_MENUBAR<span class='macro_popup'>"toggle-menubar"</span></span> "toggle-menubar"</span></td></tr>
+<tr class="codeline" data-linenumber="106"><td class="num" id="LN106">106</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_ZOOM_IN<span class='macro_popup'>"zoom-in"</span></span> "zoom-in"</span></td></tr>
+<tr class="codeline" data-linenumber="107"><td class="num" id="LN107">107</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_ZOOM_NORMAL<span class='macro_popup'>"zoom-normal"</span></span> "zoom-normal"</span></td></tr>
+<tr class="codeline" data-linenumber="108"><td class="num" id="LN108">108</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_ZOOM_OUT<span class='macro_popup'>"zoom-out"</span></span> "zoom-out"</span></td></tr>
+<tr class="codeline" data-linenumber="109"><td class="num" id="LN109">109</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_SWITCH_TAB_PREFIX<span class='macro_popup'>"switch-to-tab-"</span></span> "switch-to-tab-"</span></td></tr>
+<tr class="codeline" data-linenumber="110"><td class="num" id="LN110">110</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="111"><td class="num" id="LN111">111</td><td class="line"><span class='directive'>#if 1</span></td></tr>
+<tr class="codeline" data-linenumber="112"><td class="num" id="LN112">112</td><td class="line"><span class='comment'>/*</span></td></tr>
+<tr class="codeline" data-linenumber="113"><td class="num" id="LN113">113</td><td class="line"><span class='comment'>* We don't want to enable content saving until vte supports it async.</span></td></tr>
+<tr class="codeline" data-linenumber="114"><td class="num" id="LN114">114</td><td class="line"><span class='comment'>* So we disable this code for stable versions.</span></td></tr>
+<tr class="codeline" data-linenumber="115"><td class="num" id="LN115">115</td><td class="line"><span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="116"><td class="num" id="LN116">116</td><td class="line"><span class='directive'>#include "terminal-version.h"</span></td></tr>
+<tr class="codeline" data-linenumber="117"><td class="num" id="LN117">117</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="118"><td class="num" id="LN118">118</td><td class="line"><span class='directive'>#if (<span class='macro'>TERMINAL_MINOR_VERSION<span class='macro_popup'>(27)</span></span> &amp; 1) != 0</span></td></tr>
+<tr class="codeline" data-linenumber="119"><td class="num" id="LN119">119</td><td class="line"><span class='directive'>#define ENABLE_SAVE</span></td></tr>
+<tr class="codeline" data-linenumber="120"><td class="num" id="LN120">120</td><td class="line"><span class='directive'>#else</span></td></tr>
+<tr class="codeline" data-linenumber="121"><td class="num" id="LN121">121</td><td class="line"><span class='directive'>#undef ENABLE_SAVE</span></td></tr>
+<tr class="codeline" data-linenumber="122"><td class="num" id="LN122">122</td><td class="line"><span class='directive'>#endif</span></td></tr>
+<tr class="codeline" data-linenumber="123"><td class="num" id="LN123">123</td><td class="line"><span class='directive'>#endif</span></td></tr>
+<tr class="codeline" data-linenumber="124"><td class="num" id="LN124">124</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="125"><td class="num" id="LN125">125</td><td class="line"><span class='keyword'>typedef</span> <span class='keyword'>struct</span></td></tr>
+<tr class="codeline" data-linenumber="126"><td class="num" id="LN126">126</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="127"><td class="num" id="LN127">127</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *user_visible_name;</td></tr>
+<tr class="codeline" data-linenumber="128"><td class="num" id="LN128">128</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *gsettings_key;</td></tr>
+<tr class="codeline" data-linenumber="129"><td class="num" id="LN129">129</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *accel_path;</td></tr>
+<tr class="codeline" data-linenumber="130"><td class="num" id="LN130">130</td><td class="line"> <span class='comment'>/* last values received from GSettings */</span></td></tr>
+<tr class="codeline" data-linenumber="131"><td class="num" id="LN131">131</td><td class="line"> GdkModifierType gsettings_mask;</td></tr>
+<tr class="codeline" data-linenumber="132"><td class="num" id="LN132">132</td><td class="line"> guint gsettings_keyval;</td></tr>
+<tr class="codeline" data-linenumber="133"><td class="num" id="LN133">133</td><td class="line"> GClosure *closure;</td></tr>
+<tr class="codeline" data-linenumber="134"><td class="num" id="LN134">134</td><td class="line"> <span class='comment'>/* have gotten a notification from gtk */</span></td></tr>
+<tr class="codeline" data-linenumber="135"><td class="num" id="LN135">135</td><td class="line"> gboolean needs_gsettings_sync;</td></tr>
+<tr class="codeline" data-linenumber="136"><td class="num" id="LN136">136</td><td class="line"> gboolean accel_path_unlocked;</td></tr>
+<tr class="codeline" data-linenumber="137"><td class="num" id="LN137">137</td><td class="line">} KeyEntry;</td></tr>
+<tr class="codeline" data-linenumber="138"><td class="num" id="LN138">138</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="139"><td class="num" id="LN139">139</td><td class="line"><span class='keyword'>typedef</span> <span class='keyword'>struct</span></td></tr>
+<tr class="codeline" data-linenumber="140"><td class="num" id="LN140">140</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="141"><td class="num" id="LN141">141</td><td class="line"> KeyEntry *key_entry;</td></tr>
+<tr class="codeline" data-linenumber="142"><td class="num" id="LN142">142</td><td class="line"> guint n_elements;</td></tr>
+<tr class="codeline" data-linenumber="143"><td class="num" id="LN143">143</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *user_visible_name;</td></tr>
+<tr class="codeline" data-linenumber="144"><td class="num" id="LN144">144</td><td class="line">} KeyEntryList;</td></tr>
+<tr class="codeline" data-linenumber="145"><td class="num" id="LN145">145</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="146"><td class="num" id="LN146">146</td><td class="line"><span class='keyword'>static</span> KeyEntry file_entries[] =</td></tr>
+<tr class="codeline" data-linenumber="147"><td class="num" id="LN147">147</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="148"><td class="num" id="LN148">148</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="149"><td class="num" id="LN149">149</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"New Tab"</span>)<span class='macro_popup'>("New Tab")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="150"><td class="num" id="LN150">150</td><td class="line"> <span class='macro'>KEY_NEW_TAB<span class='macro_popup'>"new-tab"</span></span>, <span class='macro'>ACCEL_PATH_NEW_TAB<span class='macro_popup'>"&lt;Actions&gt;/Main/" "FileNewTab"</span></span>, GDK_SHIFT_MASK | GDK_CONTROL_MASK, <span class='macro'>GDK_KEY_t<span class='macro_popup'>0x074</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="151"><td class="num" id="LN151">151</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="152"><td class="num" id="LN152">152</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="153"><td class="num" id="LN153">153</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"New Window"</span>)<span class='macro_popup'>("New Window")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="154"><td class="num" id="LN154">154</td><td class="line"> <span class='macro'>KEY_NEW_WINDOW<span class='macro_popup'>"new-window"</span></span>, <span class='macro'>ACCEL_PATH_NEW_WINDOW<span class='macro_popup'>"&lt;Actions&gt;/Main/" "FileNewWindow"</span></span>, GDK_SHIFT_MASK | GDK_CONTROL_MASK, <span class='macro'>GDK_KEY_n<span class='macro_popup'>0x06e</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="155"><td class="num" id="LN155">155</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="156"><td class="num" id="LN156">156</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="157"><td class="num" id="LN157">157</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"New Profile"</span>)<span class='macro_popup'>("New Profile")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="158"><td class="num" id="LN158">158</td><td class="line"> <span class='macro'>KEY_NEW_PROFILE<span class='macro_popup'>"new-profile"</span></span>, <span class='macro'>ACCEL_PATH_NEW_PROFILE<span class='macro_popup'>"&lt;Actions&gt;/Main/" "FileNewProfile"</span></span>, 0, 0, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="159"><td class="num" id="LN159">159</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="160"><td class="num" id="LN160">160</td><td class="line"><span class='directive'>#ifdef ENABLE_SAVE</span></td></tr>
+<tr class="codeline" data-linenumber="161"><td class="num" id="LN161">161</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="162"><td class="num" id="LN162">162</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"Save Contents"</span>)<span class='macro_popup'>("Save Contents")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="163"><td class="num" id="LN163">163</td><td class="line"> <span class='macro'>KEY_SAVE_CONTENTS<span class='macro_popup'>"save-contents"</span></span>, <span class='macro'>ACCEL_PATH_SAVE_CONTENTS<span class='macro_popup'>"&lt;Actions&gt;/Main/" "FileSaveContents"</span></span>, 0, 0, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="164"><td class="num" id="LN164">164</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="165"><td class="num" id="LN165">165</td><td class="line"><span class='directive'>#endif</span></td></tr>
+<tr class="codeline" data-linenumber="166"><td class="num" id="LN166">166</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="167"><td class="num" id="LN167">167</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"Close Tab"</span>)<span class='macro_popup'>("Close Tab")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="168"><td class="num" id="LN168">168</td><td class="line"> <span class='macro'>KEY_CLOSE_TAB<span class='macro_popup'>"close-tab"</span></span>, <span class='macro'>ACCEL_PATH_CLOSE_TAB<span class='macro_popup'>"&lt;Actions&gt;/Main/" "FileCloseTab"</span></span>, GDK_SHIFT_MASK | GDK_CONTROL_MASK, <span class='macro'>GDK_KEY_w<span class='macro_popup'>0x077</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="169"><td class="num" id="LN169">169</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="170"><td class="num" id="LN170">170</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="171"><td class="num" id="LN171">171</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"Close Window"</span>)<span class='macro_popup'>("Close Window")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="172"><td class="num" id="LN172">172</td><td class="line"> <span class='macro'>KEY_CLOSE_WINDOW<span class='macro_popup'>"close-window"</span></span>, <span class='macro'>ACCEL_PATH_CLOSE_WINDOW<span class='macro_popup'>"&lt;Actions&gt;/Main/" "FileCloseWindow"</span></span>, GDK_SHIFT_MASK | GDK_CONTROL_MASK, <span class='macro'>GDK_KEY_q<span class='macro_popup'>0x071</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="173"><td class="num" id="LN173">173</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="174"><td class="num" id="LN174">174</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="175"><td class="num" id="LN175">175</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="176"><td class="num" id="LN176">176</td><td class="line"><span class='keyword'>static</span> KeyEntry edit_entries[] =</td></tr>
+<tr class="codeline" data-linenumber="177"><td class="num" id="LN177">177</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="178"><td class="num" id="LN178">178</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="179"><td class="num" id="LN179">179</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"Copy"</span>)<span class='macro_popup'>("Copy")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="180"><td class="num" id="LN180">180</td><td class="line"> <span class='macro'>KEY_COPY<span class='macro_popup'>"copy"</span></span>, <span class='macro'>ACCEL_PATH_COPY<span class='macro_popup'>"&lt;Actions&gt;/Main/" "EditCopy"</span></span>, GDK_SHIFT_MASK | GDK_CONTROL_MASK, <span class='macro'>GDK_KEY_c<span class='macro_popup'>0x063</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="181"><td class="num" id="LN181">181</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="182"><td class="num" id="LN182">182</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="183"><td class="num" id="LN183">183</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"Paste"</span>)<span class='macro_popup'>("Paste")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="184"><td class="num" id="LN184">184</td><td class="line"> <span class='macro'>KEY_PASTE<span class='macro_popup'>"paste"</span></span>, <span class='macro'>ACCEL_PATH_PASTE<span class='macro_popup'>"&lt;Actions&gt;/Main/" "EditPaste"</span></span>, GDK_SHIFT_MASK | GDK_CONTROL_MASK, <span class='macro'>GDK_KEY_v<span class='macro_popup'>0x076</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="185"><td class="num" id="LN185">185</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="186"><td class="num" id="LN186">186</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="187"><td class="num" id="LN187">187</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"Select All"</span>)<span class='macro_popup'>("Select All")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="188"><td class="num" id="LN188">188</td><td class="line"> <span class='macro'>KEY_SELECT_ALL<span class='macro_popup'>"select-all"</span></span>, <span class='macro'>ACCEL_PATH_SELECT_ALL<span class='macro_popup'>"&lt;Actions&gt;/Main/" "EditSelectAll"</span></span>, GDK_SHIFT_MASK | GDK_CONTROL_MASK, <span class='macro'>GDK_KEY_a<span class='macro_popup'>0x061</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="189"><td class="num" id="LN189">189</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="190"><td class="num" id="LN190">190</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="191"><td class="num" id="LN191">191</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="192"><td class="num" id="LN192">192</td><td class="line"><span class='keyword'>static</span> KeyEntry view_entries[] =</td></tr>
+<tr class="codeline" data-linenumber="193"><td class="num" id="LN193">193</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="194"><td class="num" id="LN194">194</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="195"><td class="num" id="LN195">195</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"Hide and Show menubar"</span>)<span class='macro_popup'>("Hide and Show menubar")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="196"><td class="num" id="LN196">196</td><td class="line"> <span class='macro'>KEY_TOGGLE_MENUBAR<span class='macro_popup'>"toggle-menubar"</span></span>, <span class='macro'>ACCEL_PATH_TOGGLE_MENUBAR<span class='macro_popup'>"&lt;Actions&gt;/Main/" "ViewMenubar"</span></span>, 0, 0, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="197"><td class="num" id="LN197">197</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="198"><td class="num" id="LN198">198</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="199"><td class="num" id="LN199">199</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"Full Screen"</span>)<span class='macro_popup'>("Full Screen")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="200"><td class="num" id="LN200">200</td><td class="line"> <span class='macro'>KEY_FULL_SCREEN<span class='macro_popup'>"full-screen"</span></span>, <span class='macro'>ACCEL_PATH_FULL_SCREEN<span class='macro_popup'>"&lt;Actions&gt;/Main/" "ViewFullscreen"</span></span>, 0, <span class='macro'>GDK_KEY_F11<span class='macro_popup'>0xffc8</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="201"><td class="num" id="LN201">201</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="202"><td class="num" id="LN202">202</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="203"><td class="num" id="LN203">203</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"Zoom In"</span>)<span class='macro_popup'>("Zoom In")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="204"><td class="num" id="LN204">204</td><td class="line"> <span class='macro'>KEY_ZOOM_IN<span class='macro_popup'>"zoom-in"</span></span>, <span class='macro'>ACCEL_PATH_ZOOM_IN<span class='macro_popup'>"&lt;Actions&gt;/Main/" "ViewZoomIn"</span></span>, GDK_CONTROL_MASK, <span class='macro'>GDK_KEY_plus<span class='macro_popup'>0x02b</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="205"><td class="num" id="LN205">205</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="206"><td class="num" id="LN206">206</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="207"><td class="num" id="LN207">207</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"Zoom Out"</span>)<span class='macro_popup'>("Zoom Out")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="208"><td class="num" id="LN208">208</td><td class="line"> <span class='macro'>KEY_ZOOM_OUT<span class='macro_popup'>"zoom-out"</span></span>, <span class='macro'>ACCEL_PATH_ZOOM_OUT<span class='macro_popup'>"&lt;Actions&gt;/Main/" "ViewZoomOut"</span></span>, GDK_CONTROL_MASK, <span class='macro'>GDK_KEY_minus<span class='macro_popup'>0x02d</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="209"><td class="num" id="LN209">209</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="210"><td class="num" id="LN210">210</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="211"><td class="num" id="LN211">211</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"Normal Size"</span>)<span class='macro_popup'>("Normal Size")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="212"><td class="num" id="LN212">212</td><td class="line"> <span class='macro'>KEY_ZOOM_NORMAL<span class='macro_popup'>"zoom-normal"</span></span>, <span class='macro'>ACCEL_PATH_ZOOM_NORMAL<span class='macro_popup'>"&lt;Actions&gt;/Main/" "ViewZoom100"</span></span>, GDK_CONTROL_MASK, <span class='macro'>GDK_KEY_0<span class='macro_popup'>0x030</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="213"><td class="num" id="LN213">213</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="214"><td class="num" id="LN214">214</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="215"><td class="num" id="LN215">215</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="216"><td class="num" id="LN216">216</td><td class="line"><span class='keyword'>static</span> KeyEntry search_entries[] =</td></tr>
+<tr class="codeline" data-linenumber="217"><td class="num" id="LN217">217</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="218"><td class="num" id="LN218">218</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="219"><td class="num" id="LN219">219</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"Find"</span>)<span class='macro_popup'>("Find")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="220"><td class="num" id="LN220">220</td><td class="line"> <span class='macro'>KEY_SEARCH_FIND<span class='macro_popup'>"search-find"</span></span>, <span class='macro'>ACCEL_PATH_SEARCH_FIND<span class='macro_popup'>"&lt;Actions&gt;/Main/" "SearchFind"</span></span>, GDK_SHIFT_MASK | GDK_CONTROL_MASK, <span class='macro'>GDK_KEY_f<span class='macro_popup'>0x066</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="221"><td class="num" id="LN221">221</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="222"><td class="num" id="LN222">222</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="223"><td class="num" id="LN223">223</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"Find Next"</span>)<span class='macro_popup'>("Find Next")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="224"><td class="num" id="LN224">224</td><td class="line"> <span class='macro'>KEY_SEARCH_FIND_NEXT<span class='macro_popup'>"search-find-next"</span></span>, <span class='macro'>ACCEL_PATH_SEARCH_FIND_NEXT<span class='macro_popup'>"&lt;Actions&gt;/Main/" "SearchFindNext"</span></span>, GDK_SHIFT_MASK | GDK_CONTROL_MASK, <span class='macro'>GDK_KEY_h<span class='macro_popup'>0x068</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="225"><td class="num" id="LN225">225</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="226"><td class="num" id="LN226">226</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="227"><td class="num" id="LN227">227</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"Find Previous"</span>)<span class='macro_popup'>("Find Previous")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="228"><td class="num" id="LN228">228</td><td class="line"> <span class='macro'>KEY_SEARCH_FIND_PREVIOUS<span class='macro_popup'>"search-find-previous"</span></span>, <span class='macro'>ACCEL_PATH_SEARCH_FIND_PREVIOUS<span class='macro_popup'>"&lt;Actions&gt;/Main/" "SearchFindPrevious"</span></span>, GDK_SHIFT_MASK | GDK_CONTROL_MASK, <span class='macro'>GDK_KEY_g<span class='macro_popup'>0x067</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="229"><td class="num" id="LN229">229</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="230"><td class="num" id="LN230">230</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="231"><td class="num" id="LN231">231</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="232"><td class="num" id="LN232">232</td><td class="line"><span class='keyword'>static</span> KeyEntry terminal_entries[] =</td></tr>
+<tr class="codeline" data-linenumber="233"><td class="num" id="LN233">233</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="234"><td class="num" id="LN234">234</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="235"><td class="num" id="LN235">235</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"Set Title"</span>)<span class='macro_popup'>("Set Title")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="236"><td class="num" id="LN236">236</td><td class="line"> <span class='macro'>KEY_SET_TERMINAL_TITLE<span class='macro_popup'>"set-terminal-title"</span></span>, <span class='macro'>ACCEL_PATH_SET_TERMINAL_TITLE<span class='macro_popup'>"&lt;Actions&gt;/Main/" "TerminalSetTitle"</span></span>, 0, 0, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="237"><td class="num" id="LN237">237</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="238"><td class="num" id="LN238">238</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="239"><td class="num" id="LN239">239</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"Reset"</span>)<span class='macro_popup'>("Reset")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="240"><td class="num" id="LN240">240</td><td class="line"> <span class='macro'>KEY_RESET<span class='macro_popup'>"reset"</span></span>, <span class='macro'>ACCEL_PATH_RESET<span class='macro_popup'>"&lt;Actions&gt;/Main/" "TerminalReset"</span></span>, 0, 0, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="241"><td class="num" id="LN241">241</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="242"><td class="num" id="LN242">242</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="243"><td class="num" id="LN243">243</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"Reset and Clear"</span>)<span class='macro_popup'>("Reset and Clear")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="244"><td class="num" id="LN244">244</td><td class="line"> <span class='macro'>KEY_RESET_AND_CLEAR<span class='macro_popup'>"reset-and-clear"</span></span>, <span class='macro'>ACCEL_PATH_RESET_AND_CLEAR<span class='macro_popup'>"&lt;Actions&gt;/Main/" "TerminalResetClear"</span></span>, 0, 0, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="245"><td class="num" id="LN245">245</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="246"><td class="num" id="LN246">246</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="247"><td class="num" id="LN247">247</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"Switch to Previous Profile"</span>)<span class='macro_popup'>("Switch to Previous Profile")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="248"><td class="num" id="LN248">248</td><td class="line"> <span class='macro'>KEY_PREV_PROFILE<span class='macro_popup'>"prev-profile"</span></span>, <span class='macro'>ACCEL_PATH_PREV_PROFILE<span class='macro_popup'>"&lt;Actions&gt;/Main/" "ProfilePrevious"</span></span>, GDK_MOD1_MASK, <span class='macro'>GDK_KEY_Page_Up<span class='macro_popup'>0xff55</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="249"><td class="num" id="LN249">249</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="250"><td class="num" id="LN250">250</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="251"><td class="num" id="LN251">251</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"Switch to Next Profile"</span>)<span class='macro_popup'>("Switch to Next Profile")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="252"><td class="num" id="LN252">252</td><td class="line"> <span class='macro'>KEY_NEXT_PROFILE<span class='macro_popup'>"next-profile"</span></span>, <span class='macro'>ACCEL_PATH_NEXT_PROFILE<span class='macro_popup'>"&lt;Actions&gt;/Main/" "ProfileNext"</span></span>, GDK_MOD1_MASK, <span class='macro'>GDK_KEY_Page_Down<span class='macro_popup'>0xff56</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="253"><td class="num" id="LN253">253</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="254"><td class="num" id="LN254">254</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="255"><td class="num" id="LN255">255</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="256"><td class="num" id="LN256">256</td><td class="line"><span class='keyword'>static</span> KeyEntry tabs_entries[] =</td></tr>
+<tr class="codeline" data-linenumber="257"><td class="num" id="LN257">257</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="258"><td class="num" id="LN258">258</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="259"><td class="num" id="LN259">259</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"Switch to Previous Tab"</span>)<span class='macro_popup'>("Switch to Previous Tab")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="260"><td class="num" id="LN260">260</td><td class="line"> <span class='macro'>KEY_PREV_TAB<span class='macro_popup'>"prev-tab"</span></span>, <span class='macro'>ACCEL_PATH_PREV_TAB<span class='macro_popup'>"&lt;Actions&gt;/Main/" "TabsPrevious"</span></span>, GDK_CONTROL_MASK, <span class='macro'>GDK_KEY_Page_Up<span class='macro_popup'>0xff55</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="261"><td class="num" id="LN261">261</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="262"><td class="num" id="LN262">262</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="263"><td class="num" id="LN263">263</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"Switch to Next Tab"</span>)<span class='macro_popup'>("Switch to Next Tab")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="264"><td class="num" id="LN264">264</td><td class="line"> <span class='macro'>KEY_NEXT_TAB<span class='macro_popup'>"next-tab"</span></span>, <span class='macro'>ACCEL_PATH_NEXT_TAB<span class='macro_popup'>"&lt;Actions&gt;/Main/" "TabsNext"</span></span>, GDK_CONTROL_MASK, <span class='macro'>GDK_KEY_Page_Down<span class='macro_popup'>0xff56</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="265"><td class="num" id="LN265">265</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="266"><td class="num" id="LN266">266</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="267"><td class="num" id="LN267">267</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"Move Tab to the Left"</span>)<span class='macro_popup'>("Move Tab to the Left")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="268"><td class="num" id="LN268">268</td><td class="line"> <span class='macro'>KEY_MOVE_TAB_LEFT<span class='macro_popup'>"move-tab-left"</span></span>, <span class='macro'>ACCEL_PATH_MOVE_TAB_LEFT<span class='macro_popup'>"&lt;Actions&gt;/Main/" "TabsMoveLeft"</span></span>, GDK_SHIFT_MASK | GDK_CONTROL_MASK, <span class='macro'>GDK_KEY_Page_Up<span class='macro_popup'>0xff55</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="269"><td class="num" id="LN269">269</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="270"><td class="num" id="LN270">270</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="271"><td class="num" id="LN271">271</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"Move Tab to the Right"</span>)<span class='macro_popup'>("Move Tab to the Right")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="272"><td class="num" id="LN272">272</td><td class="line"> <span class='macro'>KEY_MOVE_TAB_RIGHT<span class='macro_popup'>"move-tab-right"</span></span>, <span class='macro'>ACCEL_PATH_MOVE_TAB_RIGHT<span class='macro_popup'>"&lt;Actions&gt;/Main/" "TabsMoveRight"</span></span>, GDK_SHIFT_MASK | GDK_CONTROL_MASK, <span class='macro'>GDK_KEY_Page_Down<span class='macro_popup'>0xff56</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="273"><td class="num" id="LN273">273</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="274"><td class="num" id="LN274">274</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="275"><td class="num" id="LN275">275</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"Detach Tab"</span>)<span class='macro_popup'>("Detach Tab")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="276"><td class="num" id="LN276">276</td><td class="line"> <span class='macro'>KEY_DETACH_TAB<span class='macro_popup'>"detach-tab"</span></span>, <span class='macro'>ACCEL_PATH_DETACH_TAB<span class='macro_popup'>"&lt;Actions&gt;/Main/" "TabsDetach"</span></span>, 0, 0, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="277"><td class="num" id="LN277">277</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="278"><td class="num" id="LN278">278</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="279"><td class="num" id="LN279">279</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"Switch to Tab 1"</span>)<span class='macro_popup'>("Switch to Tab 1")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="280"><td class="num" id="LN280">280</td><td class="line"> <span class='macro'>KEY_SWITCH_TAB_PREFIX<span class='macro_popup'>"switch-to-tab-"</span></span> <span class='string_literal'>"1"</span>,</td></tr>
+<tr class="codeline" data-linenumber="281"><td class="num" id="LN281">281</td><td class="line"> <span class='macro'>ACCEL_PATH_SWITCH_TAB_PREFIX<span class='macro_popup'>"&lt;Actions&gt;/Main/" "TabsSwitch"</span></span> <span class='string_literal'>"1"</span>, GDK_MOD1_MASK, <span class='macro'>GDK_KEY_1<span class='macro_popup'>0x031</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="282"><td class="num" id="LN282">282</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="283"><td class="num" id="LN283">283</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="284"><td class="num" id="LN284">284</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"Switch to Tab 2"</span>)<span class='macro_popup'>("Switch to Tab 2")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="285"><td class="num" id="LN285">285</td><td class="line"> <span class='macro'>KEY_SWITCH_TAB_PREFIX<span class='macro_popup'>"switch-to-tab-"</span></span> <span class='string_literal'>"2"</span>,</td></tr>
+<tr class="codeline" data-linenumber="286"><td class="num" id="LN286">286</td><td class="line"> <span class='macro'>ACCEL_PATH_SWITCH_TAB_PREFIX<span class='macro_popup'>"&lt;Actions&gt;/Main/" "TabsSwitch"</span></span> <span class='string_literal'>"2"</span>, GDK_MOD1_MASK, <span class='macro'>GDK_KEY_2<span class='macro_popup'>0x032</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="287"><td class="num" id="LN287">287</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="288"><td class="num" id="LN288">288</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="289"><td class="num" id="LN289">289</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"Switch to Tab 3"</span>)<span class='macro_popup'>("Switch to Tab 3")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="290"><td class="num" id="LN290">290</td><td class="line"> <span class='macro'>KEY_SWITCH_TAB_PREFIX<span class='macro_popup'>"switch-to-tab-"</span></span> <span class='string_literal'>"3"</span>,</td></tr>
+<tr class="codeline" data-linenumber="291"><td class="num" id="LN291">291</td><td class="line"> <span class='macro'>ACCEL_PATH_SWITCH_TAB_PREFIX<span class='macro_popup'>"&lt;Actions&gt;/Main/" "TabsSwitch"</span></span> <span class='string_literal'>"3"</span>, GDK_MOD1_MASK, <span class='macro'>GDK_KEY_3<span class='macro_popup'>0x033</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="292"><td class="num" id="LN292">292</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="293"><td class="num" id="LN293">293</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="294"><td class="num" id="LN294">294</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"Switch to Tab 4"</span>)<span class='macro_popup'>("Switch to Tab 4")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="295"><td class="num" id="LN295">295</td><td class="line"> <span class='macro'>KEY_SWITCH_TAB_PREFIX<span class='macro_popup'>"switch-to-tab-"</span></span> <span class='string_literal'>"4"</span>,</td></tr>
+<tr class="codeline" data-linenumber="296"><td class="num" id="LN296">296</td><td class="line"> <span class='macro'>ACCEL_PATH_SWITCH_TAB_PREFIX<span class='macro_popup'>"&lt;Actions&gt;/Main/" "TabsSwitch"</span></span> <span class='string_literal'>"4"</span>, GDK_MOD1_MASK, <span class='macro'>GDK_KEY_4<span class='macro_popup'>0x034</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="297"><td class="num" id="LN297">297</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="298"><td class="num" id="LN298">298</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="299"><td class="num" id="LN299">299</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"Switch to Tab 5"</span>)<span class='macro_popup'>("Switch to Tab 5")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="300"><td class="num" id="LN300">300</td><td class="line"> <span class='macro'>KEY_SWITCH_TAB_PREFIX<span class='macro_popup'>"switch-to-tab-"</span></span> <span class='string_literal'>"5"</span>,</td></tr>
+<tr class="codeline" data-linenumber="301"><td class="num" id="LN301">301</td><td class="line"> <span class='macro'>ACCEL_PATH_SWITCH_TAB_PREFIX<span class='macro_popup'>"&lt;Actions&gt;/Main/" "TabsSwitch"</span></span> <span class='string_literal'>"5"</span>, GDK_MOD1_MASK, <span class='macro'>GDK_KEY_5<span class='macro_popup'>0x035</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="302"><td class="num" id="LN302">302</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="303"><td class="num" id="LN303">303</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="304"><td class="num" id="LN304">304</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"Switch to Tab 6"</span>)<span class='macro_popup'>("Switch to Tab 6")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="305"><td class="num" id="LN305">305</td><td class="line"> <span class='macro'>KEY_SWITCH_TAB_PREFIX<span class='macro_popup'>"switch-to-tab-"</span></span> <span class='string_literal'>"6"</span>,</td></tr>
+<tr class="codeline" data-linenumber="306"><td class="num" id="LN306">306</td><td class="line"> <span class='macro'>ACCEL_PATH_SWITCH_TAB_PREFIX<span class='macro_popup'>"&lt;Actions&gt;/Main/" "TabsSwitch"</span></span> <span class='string_literal'>"6"</span>, GDK_MOD1_MASK, <span class='macro'>GDK_KEY_6<span class='macro_popup'>0x036</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="307"><td class="num" id="LN307">307</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="308"><td class="num" id="LN308">308</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="309"><td class="num" id="LN309">309</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"Switch to Tab 7"</span>)<span class='macro_popup'>("Switch to Tab 7")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="310"><td class="num" id="LN310">310</td><td class="line"> <span class='macro'>KEY_SWITCH_TAB_PREFIX<span class='macro_popup'>"switch-to-tab-"</span></span> <span class='string_literal'>"7"</span>,</td></tr>
+<tr class="codeline" data-linenumber="311"><td class="num" id="LN311">311</td><td class="line"> <span class='macro'>ACCEL_PATH_SWITCH_TAB_PREFIX<span class='macro_popup'>"&lt;Actions&gt;/Main/" "TabsSwitch"</span></span> <span class='string_literal'>"7"</span>, GDK_MOD1_MASK, <span class='macro'>GDK_KEY_7<span class='macro_popup'>0x037</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="312"><td class="num" id="LN312">312</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="313"><td class="num" id="LN313">313</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="314"><td class="num" id="LN314">314</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"Switch to Tab 8"</span>)<span class='macro_popup'>("Switch to Tab 8")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="315"><td class="num" id="LN315">315</td><td class="line"> <span class='macro'>KEY_SWITCH_TAB_PREFIX<span class='macro_popup'>"switch-to-tab-"</span></span> <span class='string_literal'>"8"</span>,</td></tr>
+<tr class="codeline" data-linenumber="316"><td class="num" id="LN316">316</td><td class="line"> <span class='macro'>ACCEL_PATH_SWITCH_TAB_PREFIX<span class='macro_popup'>"&lt;Actions&gt;/Main/" "TabsSwitch"</span></span> <span class='string_literal'>"8"</span>, GDK_MOD1_MASK, <span class='macro'>GDK_KEY_8<span class='macro_popup'>0x038</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="317"><td class="num" id="LN317">317</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="318"><td class="num" id="LN318">318</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="319"><td class="num" id="LN319">319</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"Switch to Tab 9"</span>)<span class='macro_popup'>("Switch to Tab 9")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="320"><td class="num" id="LN320">320</td><td class="line"> <span class='macro'>KEY_SWITCH_TAB_PREFIX<span class='macro_popup'>"switch-to-tab-"</span></span> <span class='string_literal'>"9"</span>,</td></tr>
+<tr class="codeline" data-linenumber="321"><td class="num" id="LN321">321</td><td class="line"> <span class='macro'>ACCEL_PATH_SWITCH_TAB_PREFIX<span class='macro_popup'>"&lt;Actions&gt;/Main/" "TabsSwitch"</span></span> <span class='string_literal'>"9"</span>, GDK_MOD1_MASK, <span class='macro'>GDK_KEY_9<span class='macro_popup'>0x039</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="322"><td class="num" id="LN322">322</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="323"><td class="num" id="LN323">323</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="324"><td class="num" id="LN324">324</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"Switch to Tab 10"</span>)<span class='macro_popup'>("Switch to Tab 10")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="325"><td class="num" id="LN325">325</td><td class="line"> <span class='macro'>KEY_SWITCH_TAB_PREFIX<span class='macro_popup'>"switch-to-tab-"</span></span> <span class='string_literal'>"10"</span>,</td></tr>
+<tr class="codeline" data-linenumber="326"><td class="num" id="LN326">326</td><td class="line"> <span class='macro'>ACCEL_PATH_SWITCH_TAB_PREFIX<span class='macro_popup'>"&lt;Actions&gt;/Main/" "TabsSwitch"</span></span> <span class='string_literal'>"10"</span>, GDK_MOD1_MASK, <span class='macro'>GDK_KEY_0<span class='macro_popup'>0x030</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="327"><td class="num" id="LN327">327</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="328"><td class="num" id="LN328">328</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="329"><td class="num" id="LN329">329</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"Switch to Tab 11"</span>)<span class='macro_popup'>("Switch to Tab 11")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="330"><td class="num" id="LN330">330</td><td class="line"> <span class='macro'>KEY_SWITCH_TAB_PREFIX<span class='macro_popup'>"switch-to-tab-"</span></span> <span class='string_literal'>"11"</span>,</td></tr>
+<tr class="codeline" data-linenumber="331"><td class="num" id="LN331">331</td><td class="line"> <span class='macro'>ACCEL_PATH_SWITCH_TAB_PREFIX<span class='macro_popup'>"&lt;Actions&gt;/Main/" "TabsSwitch"</span></span> <span class='string_literal'>"11"</span>, 0, 0, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="332"><td class="num" id="LN332">332</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="333"><td class="num" id="LN333">333</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="334"><td class="num" id="LN334">334</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"Switch to Tab 12"</span>)<span class='macro_popup'>("Switch to Tab 12")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="335"><td class="num" id="LN335">335</td><td class="line"> <span class='macro'>KEY_SWITCH_TAB_PREFIX<span class='macro_popup'>"switch-to-tab-"</span></span> <span class='string_literal'>"12"</span>,</td></tr>
+<tr class="codeline" data-linenumber="336"><td class="num" id="LN336">336</td><td class="line"> <span class='macro'>ACCEL_PATH_SWITCH_TAB_PREFIX<span class='macro_popup'>"&lt;Actions&gt;/Main/" "TabsSwitch"</span></span> <span class='string_literal'>"12"</span>, 0, 0, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="337"><td class="num" id="LN337">337</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="338"><td class="num" id="LN338">338</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="339"><td class="num" id="LN339">339</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="340"><td class="num" id="LN340">340</td><td class="line"><span class='keyword'>static</span> KeyEntry help_entries[] =</td></tr>
+<tr class="codeline" data-linenumber="341"><td class="num" id="LN341">341</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="342"><td class="num" id="LN342">342</td><td class="line"> { <span class='macro'>N_(<span class='string_literal'>"Contents"</span>)<span class='macro_popup'>("Contents")</span></span>, <span class='macro'>KEY_HELP<span class='macro_popup'>"help"</span></span>, <span class='macro'>ACCEL_PATH_HELP<span class='macro_popup'>"&lt;Actions&gt;/Main/" "HelpContents"</span></span>, 0, <span class='macro'>GDK_KEY_F1<span class='macro_popup'>0xffbe</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span> }</td></tr>
+<tr class="codeline" data-linenumber="343"><td class="num" id="LN343">343</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="344"><td class="num" id="LN344">344</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="345"><td class="num" id="LN345">345</td><td class="line"><span class='keyword'>static</span> KeyEntryList all_entries[] =</td></tr>
+<tr class="codeline" data-linenumber="346"><td class="num" id="LN346">346</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="347"><td class="num" id="LN347">347</td><td class="line"> { file_entries, <span class='macro'>G_N_ELEMENTS (file_entries)<span class='macro_popup'>(sizeof (file_entries) / sizeof ((file_entries)[0]))</span></span>, <span class='macro'>N_(<span class='string_literal'>"File"</span>)<span class='macro_popup'>("File")</span></span> },</td></tr>
+<tr class="codeline" data-linenumber="348"><td class="num" id="LN348">348</td><td class="line"> { edit_entries, <span class='macro'>G_N_ELEMENTS (edit_entries)<span class='macro_popup'>(sizeof (edit_entries) / sizeof ((edit_entries)[0]))</span></span>, <span class='macro'>N_(<span class='string_literal'>"Edit"</span>)<span class='macro_popup'>("Edit")</span></span> },</td></tr>
+<tr class="codeline" data-linenumber="349"><td class="num" id="LN349">349</td><td class="line"> { view_entries, <span class='macro'>G_N_ELEMENTS (view_entries)<span class='macro_popup'>(sizeof (view_entries) / sizeof ((view_entries)[0]))</span></span>, <span class='macro'>N_(<span class='string_literal'>"View"</span>)<span class='macro_popup'>("View")</span></span> },</td></tr>
+<tr class="codeline" data-linenumber="350"><td class="num" id="LN350">350</td><td class="line"> { search_entries, <span class='macro'>G_N_ELEMENTS (search_entries)<span class='macro_popup'>(sizeof (search_entries) / sizeof ((search_entries)[0]))</span></span>, <span class='macro'>N_(<span class='string_literal'>"Search"</span>)<span class='macro_popup'>("Search")</span></span> },</td></tr>
+<tr class="codeline" data-linenumber="351"><td class="num" id="LN351">351</td><td class="line"> { terminal_entries, <span class='macro'>G_N_ELEMENTS (terminal_entries)<span class='macro_popup'>(sizeof (terminal_entries) / sizeof ((terminal_entries)[0]))</span></span>, <span class='macro'>N_(<span class='string_literal'>"Terminal"</span>)<span class='macro_popup'>("Terminal")</span></span> },</td></tr>
+<tr class="codeline" data-linenumber="352"><td class="num" id="LN352">352</td><td class="line"> { tabs_entries, <span class='macro'>G_N_ELEMENTS (tabs_entries)<span class='macro_popup'>(sizeof (tabs_entries) / sizeof ((tabs_entries)[0]))</span></span>, <span class='macro'>N_(<span class='string_literal'>"Tabs"</span>)<span class='macro_popup'>("Tabs")</span></span> },</td></tr>
+<tr class="codeline" data-linenumber="353"><td class="num" id="LN353">353</td><td class="line"> { help_entries, <span class='macro'>G_N_ELEMENTS (help_entries)<span class='macro_popup'>(sizeof (help_entries) / sizeof ((help_entries)[0]))</span></span>, <span class='macro'>N_(<span class='string_literal'>"Help"</span>)<span class='macro_popup'>("Help")</span></span> }</td></tr>
+<tr class="codeline" data-linenumber="354"><td class="num" id="LN354">354</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="355"><td class="num" id="LN355">355</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="356"><td class="num" id="LN356">356</td><td class="line"><span class='keyword'>enum</span></td></tr>
+<tr class="codeline" data-linenumber="357"><td class="num" id="LN357">357</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="358"><td class="num" id="LN358">358</td><td class="line"> ACTION_COLUMN,</td></tr>
+<tr class="codeline" data-linenumber="359"><td class="num" id="LN359">359</td><td class="line"> KEYVAL_COLUMN,</td></tr>
+<tr class="codeline" data-linenumber="360"><td class="num" id="LN360">360</td><td class="line"> N_COLUMNS</td></tr>
+<tr class="codeline" data-linenumber="361"><td class="num" id="LN361">361</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="362"><td class="num" id="LN362">362</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="363"><td class="num" id="LN363">363</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> keys_change_notify (GSettings *settings,</td></tr>
+<tr class="codeline" data-linenumber="364"><td class="num" id="LN364">364</td><td class="line"> <span class='keyword'>const</span> gchar *key,</td></tr>
+<tr class="codeline" data-linenumber="365"><td class="num" id="LN365">365</td><td class="line"> gpointer user_data);</td></tr>
+<tr class="codeline" data-linenumber="366"><td class="num" id="LN366">366</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="367"><td class="num" id="LN367">367</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> accel_changed_callback (GtkAccelGroup *accel_group,</td></tr>
+<tr class="codeline" data-linenumber="368"><td class="num" id="LN368">368</td><td class="line"> guint keyval,</td></tr>
+<tr class="codeline" data-linenumber="369"><td class="num" id="LN369">369</td><td class="line"> GdkModifierType modifier,</td></tr>
+<tr class="codeline" data-linenumber="370"><td class="num" id="LN370">370</td><td class="line"> GClosure *accel_closure,</td></tr>
+<tr class="codeline" data-linenumber="371"><td class="num" id="LN371">371</td><td class="line"> gpointer data);</td></tr>
+<tr class="codeline" data-linenumber="372"><td class="num" id="LN372">372</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="373"><td class="num" id="LN373">373</td><td class="line"><span class='keyword'>static</span> gboolean binding_from_string (<span class='keyword'>const</span> <span class='keyword'>char</span> *str,</td></tr>
+<tr class="codeline" data-linenumber="374"><td class="num" id="LN374">374</td><td class="line"> guint *accelerator_key,</td></tr>
+<tr class="codeline" data-linenumber="375"><td class="num" id="LN375">375</td><td class="line"> GdkModifierType *accelerator_mods);</td></tr>
+<tr class="codeline" data-linenumber="376"><td class="num" id="LN376">376</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="377"><td class="num" id="LN377">377</td><td class="line"><span class='keyword'>static</span> gboolean binding_from_value (GVariant *value,</td></tr>
+<tr class="codeline" data-linenumber="378"><td class="num" id="LN378">378</td><td class="line"> guint *accelerator_key,</td></tr>
+<tr class="codeline" data-linenumber="379"><td class="num" id="LN379">379</td><td class="line"> GdkModifierType *accelerator_mods);</td></tr>
+<tr class="codeline" data-linenumber="380"><td class="num" id="LN380">380</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="381"><td class="num" id="LN381">381</td><td class="line"><span class='keyword'>static</span> gboolean sync_idle_cb (gpointer data);</td></tr>
+<tr class="codeline" data-linenumber="382"><td class="num" id="LN382">382</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="383"><td class="num" id="LN383">383</td><td class="line"><span class='keyword'>static</span> guint sync_idle_id = 0;</td></tr>
+<tr class="codeline" data-linenumber="384"><td class="num" id="LN384">384</td><td class="line"><span class='keyword'>static</span> GtkAccelGroup *notification_group = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="385"><td class="num" id="LN385">385</td><td class="line"><span class='comment'>/* never set GSettings keys in response to receiving a GSettings notify. */</span></td></tr>
+<tr class="codeline" data-linenumber="386"><td class="num" id="LN386">386</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>int</span> inside_gsettings_notify = 0;</td></tr>
+<tr class="codeline" data-linenumber="387"><td class="num" id="LN387">387</td><td class="line"><span class='keyword'>static</span> GtkWidget *edit_keys_dialog = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="388"><td class="num" id="LN388">388</td><td class="line"><span class='keyword'>static</span> GtkTreeStore *edit_keys_store = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="389"><td class="num" id="LN389">389</td><td class="line"><span class='keyword'>static</span> GHashTable *gsettings_key_to_entry;</td></tr>
+<tr class="codeline" data-linenumber="390"><td class="num" id="LN390">390</td><td class="line"><span class='keyword'>static</span> GSettings *settings_keybindings;</td></tr>
+<tr class="codeline" data-linenumber="391"><td class="num" id="LN391">391</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="392"><td class="num" id="LN392">392</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>char</span>*</td></tr>
+<tr class="codeline" data-linenumber="393"><td class="num" id="LN393">393</td><td class="line">binding_name (guint keyval,</td></tr>
+<tr class="codeline" data-linenumber="394"><td class="num" id="LN394">394</td><td class="line"> GdkModifierType mask)</td></tr>
+<tr class="codeline" data-linenumber="395"><td class="num" id="LN395">395</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="396"><td class="num" id="LN396">396</td><td class="line"> <span class='keyword'>if</span> (keyval != 0)</td></tr>
+<tr class="codeline" data-linenumber="397"><td class="num" id="LN397">397</td><td class="line"> <span class='keyword'>return</span> gtk_accelerator_name (keyval, mask);</td></tr>
+<tr class="codeline" data-linenumber="398"><td class="num" id="LN398">398</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="399"><td class="num" id="LN399">399</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>g_strdup (<span class='string_literal'>"disabled"</span>)<span class='macro_popup'>g_strdup_inline ("disabled")</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="400"><td class="num" id="LN400">400</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="401"><td class="num" id="LN401">401</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="402"><td class="num" id="LN402">402</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>char</span>*</td></tr>
+<tr class="codeline" data-linenumber="403"><td class="num" id="LN403">403</td><td class="line">binding_display_name (guint keyval,</td></tr>
+<tr class="codeline" data-linenumber="404"><td class="num" id="LN404">404</td><td class="line"> GdkModifierType mask)</td></tr>
+<tr class="codeline" data-linenumber="405"><td class="num" id="LN405">405</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="406"><td class="num" id="LN406">406</td><td class="line"> <span class='keyword'>if</span> (keyval != 0)</td></tr>
+<tr class="codeline" data-linenumber="407"><td class="num" id="LN407">407</td><td class="line"> <span class='keyword'>return</span> gtk_accelerator_get_label (keyval, mask);</td></tr>
+<tr class="codeline" data-linenumber="408"><td class="num" id="LN408">408</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="409"><td class="num" id="LN409">409</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>g_strdup (_(<span class='string_literal'>"Disabled"</span>))<span class='macro_popup'>g_strdup_inline (gettext ("Disabled"))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="410"><td class="num" id="LN410">410</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="411"><td class="num" id="LN411">411</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="412"><td class="num" id="LN412">412</td><td class="line"><span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="413"><td class="num" id="LN413">413</td><td class="line">terminal_accels_init (<span class='keyword'>void</span>)</td></tr>
+<tr class="codeline" data-linenumber="414"><td class="num" id="LN414">414</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="415"><td class="num" id="LN415">415</td><td class="line"> guint i, j;</td></tr>
+<tr class="codeline" data-linenumber="416"><td class="num" id="LN416">416</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="417"><td class="num" id="LN417">417</td><td class="line"> settings_keybindings = g_settings_new (<span class='macro'>CONF_KEYS_SCHEMA<span class='macro_popup'>"org.mate.terminal" ".keybindings"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="418"><td class="num" id="LN418">418</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="419"><td class="num" id="LN419">419</td><td class="line"> <span class='macro'>g_signal_connect (settings_keybindings,<span class='macro_popup'>g_signal_connect_data ((settings_keybindings), ("changed"), (<br>((GCallback) (keys_change_notify))), (((void*)0)), ((void*)0)<br>, (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="420"><td class="num" id="LN420">420</td><td class="line"> <span class='string_literal'><span class='macro'>"changed"</span>,<span class='macro_popup'>g_signal_connect_data ((settings_keybindings), ("changed"), (<br>((GCallback) (keys_change_notify))), (((void*)0)), ((void*)0)<br>, (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="421"><td class="num" id="LN421">421</td><td class="line"> <span class='macro'>G_CALLBACK(keys_change_notify),<span class='macro_popup'>g_signal_connect_data ((settings_keybindings), ("changed"), (<br>((GCallback) (keys_change_notify))), (((void*)0)), ((void*)0)<br>, (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="422"><td class="num" id="LN422">422</td><td class="line"> <span class='macro'>NULL)<span class='macro_popup'>g_signal_connect_data ((settings_keybindings), ("changed"), (<br>((GCallback) (keys_change_notify))), (((void*)0)), ((void*)0)<br>, (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="423"><td class="num" id="LN423">423</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="424"><td class="num" id="LN424">424</td><td class="line"> gsettings_key_to_entry = g_hash_table_new (g_str_hash, g_str_equal);</td></tr>
+<tr class="codeline" data-linenumber="425"><td class="num" id="LN425">425</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="426"><td class="num" id="LN426">426</td><td class="line"> notification_group = gtk_accel_group_new ();</td></tr>
+<tr class="codeline" data-linenumber="427"><td class="num" id="LN427">427</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="428"><td class="num" id="LN428">428</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; <span class='macro'>G_N_ELEMENTS (all_entries)<span class='macro_popup'>(sizeof (all_entries) / sizeof ((all_entries)[0]))</span></span>; ++i)</td></tr>
+<tr class="codeline" data-linenumber="429"><td class="num" id="LN429">429</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="430"><td class="num" id="LN430">430</td><td class="line"> <span class='keyword'>for</span> (j = 0; j &lt; all_entries[i].n_elements; ++j)</td></tr>
+<tr class="codeline" data-linenumber="431"><td class="num" id="LN431">431</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="432"><td class="num" id="LN432">432</td><td class="line"> KeyEntry *key_entry;</td></tr>
+<tr class="codeline" data-linenumber="433"><td class="num" id="LN433">433</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="434"><td class="num" id="LN434">434</td><td class="line"> key_entry = &amp;(all_entries[i].key_entry[j]);</td></tr>
+<tr class="codeline" data-linenumber="435"><td class="num" id="LN435">435</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="436"><td class="num" id="LN436">436</td><td class="line"> g_hash_table_insert (gsettings_key_to_entry,</td></tr>
+<tr class="codeline" data-linenumber="437"><td class="num" id="LN437">437</td><td class="line"> (gpointer) key_entry-&gt;gsettings_key,</td></tr>
+<tr class="codeline" data-linenumber="438"><td class="num" id="LN438">438</td><td class="line"> key_entry);</td></tr>
+<tr class="codeline" data-linenumber="439"><td class="num" id="LN439">439</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="440"><td class="num" id="LN440">440</td><td class="line"> key_entry-&gt;closure = g_closure_new_simple (<span class='keyword'>sizeof</span> (GClosure), key_entry);</td></tr>
+<tr class="codeline" data-linenumber="441"><td class="num" id="LN441">441</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="442"><td class="num" id="LN442">442</td><td class="line"> g_closure_ref (key_entry-&gt;closure);</td></tr>
+<tr class="codeline" data-linenumber="443"><td class="num" id="LN443">443</td><td class="line"> g_closure_sink (key_entry-&gt;closure);</td></tr>
+<tr class="codeline" data-linenumber="444"><td class="num" id="LN444">444</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="445"><td class="num" id="LN445">445</td><td class="line"> gtk_accel_group_connect_by_path (notification_group,</td></tr>
+<tr class="codeline" data-linenumber="446"><td class="num" id="LN446">446</td><td class="line"> <span class='macro'>I_(key_entry-&gt;accel_path)<span class='macro_popup'>g_intern_static_string (key_entry-&gt;accel_path)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="447"><td class="num" id="LN447">447</td><td class="line"> key_entry-&gt;closure);</td></tr>
+<tr class="codeline" data-linenumber="448"><td class="num" id="LN448">448</td><td class="line"> keys_change_notify (settings_keybindings, key_entry-&gt;gsettings_key, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="449"><td class="num" id="LN449">449</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="450"><td class="num" id="LN450">450</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="451"><td class="num" id="LN451">451</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="452"><td class="num" id="LN452">452</td><td class="line"> <span class='macro'>g_signal_connect (notification_group, <span class='string_literal'>"accel-changed"</span>,<span class='macro_popup'>g_signal_connect_data ((notification_group), ("accel-changed"<br>), (((GCallback) (accel_changed_callback))), (((void*)0)), ((<br>void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="453"><td class="num" id="LN453">453</td><td class="line"> <span class='macro'>G_CALLBACK (accel_changed_callback), NULL)<span class='macro_popup'>g_signal_connect_data ((notification_group), ("accel-changed"<br>), (((GCallback) (accel_changed_callback))), (((void*)0)), ((<br>void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="454"><td class="num" id="LN454">454</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="455"><td class="num" id="LN455">455</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="456"><td class="num" id="LN456">456</td><td class="line"><span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="457"><td class="num" id="LN457">457</td><td class="line">terminal_accels_shutdown (<span class='keyword'>void</span>)</td></tr>
+<tr class="codeline" data-linenumber="458"><td class="num" id="LN458">458</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="459"><td class="num" id="LN459">459</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="460"><td class="num" id="LN460">460</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (settings_keybindings,<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_keybindings),<br> (GSignalMatchType) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA<br>), 0, 0, ((void*)0), (((GCallback) (keys_change_notify))), ((<br>(void*)0)))</span></span></td></tr>
+<tr class="codeline" data-linenumber="461"><td class="num" id="LN461">461</td><td class="line"> <span class='macro'>G_CALLBACK(keys_change_notify),<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_keybindings),<br> (GSignalMatchType) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA<br>), 0, 0, ((void*)0), (((GCallback) (keys_change_notify))), ((<br>(void*)0)))</span></span></td></tr>
+<tr class="codeline" data-linenumber="462"><td class="num" id="LN462">462</td><td class="line"> <span class='macro'>NULL)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_keybindings),<br> (GSignalMatchType) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA<br>), 0, 0, ((void*)0), (((GCallback) (keys_change_notify))), ((<br>(void*)0)))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="463"><td class="num" id="LN463">463</td><td class="line"> g_object_unref (settings_keybindings);</td></tr>
+<tr class="codeline" data-linenumber="464"><td class="num" id="LN464">464</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="465"><td class="num" id="LN465">465</td><td class="line"> <span class='keyword'>if</span> (sync_idle_id != 0)</td></tr>
+<tr class="codeline" data-linenumber="466"><td class="num" id="LN466">466</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="467"><td class="num" id="LN467">467</td><td class="line"> g_source_remove (sync_idle_id);</td></tr>
+<tr class="codeline" data-linenumber="468"><td class="num" id="LN468">468</td><td class="line"> sync_idle_id = 0;</td></tr>
+<tr class="codeline" data-linenumber="469"><td class="num" id="LN469">469</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="470"><td class="num" id="LN470">470</td><td class="line"> sync_idle_cb (<span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="471"><td class="num" id="LN471">471</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="472"><td class="num" id="LN472">472</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="473"><td class="num" id="LN473">473</td><td class="line"> g_hash_table_destroy (gsettings_key_to_entry);</td></tr>
+<tr class="codeline" data-linenumber="474"><td class="num" id="LN474">474</td><td class="line"> gsettings_key_to_entry = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="475"><td class="num" id="LN475">475</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="476"><td class="num" id="LN476">476</td><td class="line"> g_object_unref (notification_group);</td></tr>
+<tr class="codeline" data-linenumber="477"><td class="num" id="LN477">477</td><td class="line"> notification_group = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="478"><td class="num" id="LN478">478</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="479"><td class="num" id="LN479">479</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="480"><td class="num" id="LN480">480</td><td class="line"><span class='keyword'>static</span> gboolean</td></tr>
+<tr class="codeline" data-linenumber="481"><td class="num" id="LN481">481</td><td class="line">update_model_foreach (GtkTreeModel *model,</td></tr>
+<tr class="codeline" data-linenumber="482"><td class="num" id="LN482">482</td><td class="line"> GtkTreePath *path,</td></tr>
+<tr class="codeline" data-linenumber="483"><td class="num" id="LN483">483</td><td class="line"> GtkTreeIter *iter,</td></tr>
+<tr class="codeline" data-linenumber="484"><td class="num" id="LN484">484</td><td class="line"> gpointer data)</td></tr>
+<tr class="codeline" data-linenumber="485"><td class="num" id="LN485">485</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="486"><td class="num" id="LN486">486</td><td class="line"> KeyEntry *key_entry = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="487"><td class="num" id="LN487">487</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="488"><td class="num" id="LN488">488</td><td class="line"> gtk_tree_model_get (model, iter,</td></tr>
+<tr class="codeline" data-linenumber="489"><td class="num" id="LN489">489</td><td class="line"> KEYVAL_COLUMN, &amp;key_entry,</td></tr>
+<tr class="codeline" data-linenumber="490"><td class="num" id="LN490">490</td><td class="line"> -1);</td></tr>
+<tr class="codeline" data-linenumber="491"><td class="num" id="LN491">491</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="492"><td class="num" id="LN492">492</td><td class="line"> <span class='keyword'>if</span> (key_entry == (KeyEntry *) data)</td></tr>
+<tr class="codeline" data-linenumber="493"><td class="num" id="LN493">493</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="494"><td class="num" id="LN494">494</td><td class="line"> gtk_tree_model_row_changed (model, path, iter);</td></tr>
+<tr class="codeline" data-linenumber="495"><td class="num" id="LN495">495</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="496"><td class="num" id="LN496">496</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="497"><td class="num" id="LN497">497</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="498"><td class="num" id="LN498">498</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="499"><td class="num" id="LN499">499</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="500"><td class="num" id="LN500">500</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="501"><td class="num" id="LN501">501</td><td class="line">keys_change_notify (GSettings *settings,</td></tr>
+<tr class="codeline" data-linenumber="502"><td class="num" id="LN502">502</td><td class="line"> <span class='keyword'>const</span> gchar *key,</td></tr>
+<tr class="codeline" data-linenumber="503"><td class="num" id="LN503">503</td><td class="line"> gpointer user_data)</td></tr>
+<tr class="codeline" data-linenumber="504"><td class="num" id="LN504">504</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="505"><td class="num" id="LN505">505</td><td class="line"> GVariant *val;</td></tr>
+<tr class="codeline" data-linenumber="506"><td class="num" id="LN506">506</td><td class="line"> KeyEntry *key_entry;</td></tr>
+<tr class="codeline" data-linenumber="507"><td class="num" id="LN507">507</td><td class="line"> GdkModifierType mask;</td></tr>
+<tr class="codeline" data-linenumber="508"><td class="num" id="LN508">508</td><td class="line"> guint keyval;</td></tr>
+<tr class="codeline" data-linenumber="509"><td class="num" id="LN509">509</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="510"><td class="num" id="LN510">510</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_ACCELS,<span class='macro_popup'>do { if (0) g_printerr("key %s changed\n", key); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="511"><td class="num" id="LN511">511</td><td class="line"> <span class='string_literal'><span class='macro'>"key %s changed\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("key %s changed\n", key); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="512"><td class="num" id="LN512">512</td><td class="line"> <span class='macro'>key)<span class='macro_popup'>do { if (0) g_printerr("key %s changed\n", key); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="513"><td class="num" id="LN513">513</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="514"><td class="num" id="LN514">514</td><td class="line"> val = g_settings_get_value (settings, key);</td></tr>
+<tr class="codeline" data-linenumber="515"><td class="num" id="LN515">515</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="516"><td class="num" id="LN516">516</td><td class="line"><span class='directive'>#ifdef MATE_ENABLE_DEBUG</span></td></tr>
+<tr class="codeline" data-linenumber="517"><td class="num" id="LN517">517</td><td class="line"> <span class='macro'>_TERMINAL_DEBUG_IF (TERMINAL_DEBUG_ACCELS)<span class='macro_popup'>if (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="518"><td class="num" id="LN518">518</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="519"><td class="num" id="LN519">519</td><td class="line"> <span class='keyword'>if</span> (val == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="520"><td class="num" id="LN520">520</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_ACCELS, <span class='string_literal'>" changed to be unset\n"</span>)<span class='macro_popup'>do { if (0) g_printerr(" changed to be unset\n"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="521"><td class="num" id="LN521">521</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (!g_variant_is_of_type (val, <span class='macro'>G_VARIANT_TYPE_STRING<span class='macro_popup'>((const GVariantType *) "s")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="522"><td class="num" id="LN522">522</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_ACCELS, <span class='string_literal'>" changed to non-string value\n"</span>)<span class='macro_popup'>do { if (0) g_printerr(" changed to non-string value\n"); } while<br> (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="523"><td class="num" id="LN523">523</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="524"><td class="num" id="LN524">524</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_ACCELS,<span class='macro_popup'>do { if (0) g_printerr(" changed to \"%s\"\n", g_variant_get_string<br> (val, ((void*)0))); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="525"><td class="num" id="LN525">525</td><td class="line"> <span class='string_literal'><span class='macro'>" changed to \"%s\"\n"</span>,<span class='macro_popup'>do { if (0) g_printerr(" changed to \"%s\"\n", g_variant_get_string<br> (val, ((void*)0))); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="526"><td class="num" id="LN526">526</td><td class="line"> <span class='macro'>g_variant_get_string (val, NULL))<span class='macro_popup'>do { if (0) g_printerr(" changed to \"%s\"\n", g_variant_get_string<br> (val, ((void*)0))); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="527"><td class="num" id="LN527">527</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="528"><td class="num" id="LN528">528</td><td class="line"><span class='directive'>#endif</span></td></tr>
+<tr class="codeline" data-linenumber="529"><td class="num" id="LN529">529</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="530"><td class="num" id="LN530">530</td><td class="line"> key_entry = g_hash_table_lookup (gsettings_key_to_entry, key);</td></tr>
+<tr class="codeline" data-linenumber="531"><td class="num" id="LN531">531</td><td class="line"> <span class='keyword'>if</span> (!key_entry)</td></tr>
+<tr class="codeline" data-linenumber="532"><td class="num" id="LN532">532</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="533"><td class="num" id="LN533">533</td><td class="line"> <span class='comment'>/* shouldn't really happen, but let's be safe */</span></td></tr>
+<tr class="codeline" data-linenumber="534"><td class="num" id="LN534">534</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_ACCELS,<span class='macro_popup'>do { if (0) g_printerr(" WARNING: KeyEntry for changed key not found, bailing out\n"<br>); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="535"><td class="num" id="LN535">535</td><td class="line"> <span class='string_literal'><span class='macro'>" WARNING: KeyEntry for changed key not found, bailing out\n"</span>)<span class='macro_popup'>do { if (0) g_printerr(" WARNING: KeyEntry for changed key not found, bailing out\n"<br>); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="536"><td class="num" id="LN536">536</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="537"><td class="num" id="LN537">537</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="538"><td class="num" id="LN538">538</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="539"><td class="num" id="LN539">539</td><td class="line"> <span class='keyword'>if</span> (!binding_from_value (val, &amp;keyval, &amp;mask))</td></tr>
+<tr class="codeline" data-linenumber="540"><td class="num" id="LN540">540</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="541"><td class="num" id="LN541">541</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *str = g_variant_is_of_type (val, <span class="mrange"><span class="mrange"><span class='macro'>G_VARIANT_TYPE_STRING<span class='macro_popup'>((const GVariantType *) "s")</span></span></span></span>) ? g_variant_get_string (val, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>) : <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr><td class="num"></td><td class="line"><div id="EndPath" class="msg msgEvent" style="margin-left:62ex; max-width:31em">Casting a non-structure type to a structure type and accessing a field can lead to memory access errors or data corruption</div></td></tr>
+<tr class="codeline" data-linenumber="542"><td class="num" id="LN542">542</td><td class="line"> g_printerr (<span class='string_literal'>"The value \"%s\" of configuration key %s is not a valid accelerator\n"</span>,</td></tr>
+<tr class="codeline" data-linenumber="543"><td class="num" id="LN543">543</td><td class="line"> str ? str : <span class='string_literal'>"(null)"</span>,</td></tr>
+<tr class="codeline" data-linenumber="544"><td class="num" id="LN544">544</td><td class="line"> key_entry-&gt;gsettings_key);</td></tr>
+<tr class="codeline" data-linenumber="545"><td class="num" id="LN545">545</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="546"><td class="num" id="LN546">546</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="547"><td class="num" id="LN547">547</td><td class="line"> key_entry-&gt;gsettings_keyval = keyval;</td></tr>
+<tr class="codeline" data-linenumber="548"><td class="num" id="LN548">548</td><td class="line"> key_entry-&gt;gsettings_mask = mask;</td></tr>
+<tr class="codeline" data-linenumber="549"><td class="num" id="LN549">549</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="550"><td class="num" id="LN550">550</td><td class="line"> <span class='comment'>/* Unlock the path, so we can change its accel */</span></td></tr>
+<tr class="codeline" data-linenumber="551"><td class="num" id="LN551">551</td><td class="line"> <span class='keyword'>if</span> (!key_entry-&gt;accel_path_unlocked)</td></tr>
+<tr class="codeline" data-linenumber="552"><td class="num" id="LN552">552</td><td class="line"> gtk_accel_map_unlock_path (key_entry-&gt;accel_path);</td></tr>
+<tr class="codeline" data-linenumber="553"><td class="num" id="LN553">553</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="554"><td class="num" id="LN554">554</td><td class="line"> <span class='comment'>/* sync over to GTK */</span></td></tr>
+<tr class="codeline" data-linenumber="555"><td class="num" id="LN555">555</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_ACCELS,<span class='macro_popup'>do { if (0) g_printerr("changing path %s to %s\n", key_entry-&gt;<br>accel_path, binding_name (keyval, mask)); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="556"><td class="num" id="LN556">556</td><td class="line"> <span class='string_literal'><span class='macro'>"changing path %s to %s\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("changing path %s to %s\n", key_entry-&gt;<br>accel_path, binding_name (keyval, mask)); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="557"><td class="num" id="LN557">557</td><td class="line"> <span class='macro'>key_entry-&gt;accel_path,<span class='macro_popup'>do { if (0) g_printerr("changing path %s to %s\n", key_entry-&gt;<br>accel_path, binding_name (keyval, mask)); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="558"><td class="num" id="LN558">558</td><td class="line"> <span class='macro'>binding_name (keyval, mask))<span class='macro_popup'>do { if (0) g_printerr("changing path %s to %s\n", key_entry-&gt;<br>accel_path, binding_name (keyval, mask)); } while (0)</span></span>; <span class='comment'>/* memleak */</span></td></tr>
+<tr class="codeline" data-linenumber="559"><td class="num" id="LN559">559</td><td class="line"> inside_gsettings_notify += 1;</td></tr>
+<tr class="codeline" data-linenumber="560"><td class="num" id="LN560">560</td><td class="line"> <span class='comment'>/* Note that this may return FALSE, e.g. when the entry was already set correctly. */</span></td></tr>
+<tr class="codeline" data-linenumber="561"><td class="num" id="LN561">561</td><td class="line"> gtk_accel_map_change_entry (key_entry-&gt;accel_path,</td></tr>
+<tr class="codeline" data-linenumber="562"><td class="num" id="LN562">562</td><td class="line"> keyval, mask,</td></tr>
+<tr class="codeline" data-linenumber="563"><td class="num" id="LN563">563</td><td class="line"> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="564"><td class="num" id="LN564">564</td><td class="line"> inside_gsettings_notify -= 1;</td></tr>
+<tr class="codeline" data-linenumber="565"><td class="num" id="LN565">565</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="566"><td class="num" id="LN566">566</td><td class="line"> <span class='comment'>/* Lock the path if the GSettings key isn't writable */</span></td></tr>
+<tr class="codeline" data-linenumber="567"><td class="num" id="LN567">567</td><td class="line"> key_entry-&gt;accel_path_unlocked = g_settings_is_writable (settings, key);</td></tr>
+<tr class="codeline" data-linenumber="568"><td class="num" id="LN568">568</td><td class="line"> <span class='keyword'>if</span> (!key_entry-&gt;accel_path_unlocked)</td></tr>
+<tr class="codeline" data-linenumber="569"><td class="num" id="LN569">569</td><td class="line"> gtk_accel_map_lock_path (key_entry-&gt;accel_path);</td></tr>
+<tr class="codeline" data-linenumber="570"><td class="num" id="LN570">570</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="571"><td class="num" id="LN571">571</td><td class="line"> <span class='comment'>/* This seems necessary to update the tree model, since sometimes the</span></td></tr>
+<tr class="codeline" data-linenumber="572"><td class="num" id="LN572">572</td><td class="line"> <span class='comment'>* notification on the notification_group seems not to be emitted correctly.</span></td></tr>
+<tr class="codeline" data-linenumber="573"><td class="num" id="LN573">573</td><td class="line"> <span class='comment'>* Without this change, when trying to set an accel to e.g. Alt-T (while the main</span></td></tr>
+<tr class="codeline" data-linenumber="574"><td class="num" id="LN574">574</td><td class="line"> <span class='comment'>* menu in the terminal windows is _Terminal with Alt-T mnemonic) only displays</span></td></tr>
+<tr class="codeline" data-linenumber="575"><td class="num" id="LN575">575</td><td class="line"> <span class='comment'>* the accel change after a re-expose of the row.</span></td></tr>
+<tr class="codeline" data-linenumber="576"><td class="num" id="LN576">576</td><td class="line"> <span class='comment'>* FIXME: Find out *why* the accel-changed signal is wrong here!</span></td></tr>
+<tr class="codeline" data-linenumber="577"><td class="num" id="LN577">577</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="578"><td class="num" id="LN578">578</td><td class="line"> <span class='keyword'>if</span> (edit_keys_store)</td></tr>
+<tr class="codeline" data-linenumber="579"><td class="num" id="LN579">579</td><td class="line"> gtk_tree_model_foreach (<span class='macro'>GTK_TREE_MODEL (edit_keys_store)<span class='macro_popup'>((((GtkTreeModel*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((edit_keys_store)), ((gtk_tree_model_get_type ()))))))</span></span>, update_model_foreach, key_entry);</td></tr>
+<tr class="codeline" data-linenumber="580"><td class="num" id="LN580">580</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="581"><td class="num" id="LN581">581</td><td class="line"> g_variant_unref(val);</td></tr>
+<tr class="codeline" data-linenumber="582"><td class="num" id="LN582">582</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="583"><td class="num" id="LN583">583</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="584"><td class="num" id="LN584">584</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="585"><td class="num" id="LN585">585</td><td class="line">accel_changed_callback (GtkAccelGroup *accel_group,</td></tr>
+<tr class="codeline" data-linenumber="586"><td class="num" id="LN586">586</td><td class="line"> guint keyval,</td></tr>
+<tr class="codeline" data-linenumber="587"><td class="num" id="LN587">587</td><td class="line"> GdkModifierType modifier,</td></tr>
+<tr class="codeline" data-linenumber="588"><td class="num" id="LN588">588</td><td class="line"> GClosure *accel_closure,</td></tr>
+<tr class="codeline" data-linenumber="589"><td class="num" id="LN589">589</td><td class="line"> gpointer data)</td></tr>
+<tr class="codeline" data-linenumber="590"><td class="num" id="LN590">590</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="591"><td class="num" id="LN591">591</td><td class="line"> <span class='comment'>/* FIXME because GTK accel API is so nonsensical, we get</span></td></tr>
+<tr class="codeline" data-linenumber="592"><td class="num" id="LN592">592</td><td class="line"> <span class='comment'>* a notify for each closure, on both the added and the removed</span></td></tr>
+<tr class="codeline" data-linenumber="593"><td class="num" id="LN593">593</td><td class="line"> <span class='comment'>* accelerator. We just use the accel closure to find our</span></td></tr>
+<tr class="codeline" data-linenumber="594"><td class="num" id="LN594">594</td><td class="line"> <span class='comment'>* accel entry, then update the value of that entry.</span></td></tr>
+<tr class="codeline" data-linenumber="595"><td class="num" id="LN595">595</td><td class="line"> <span class='comment'>* We use an idle function to avoid setting the entry</span></td></tr>
+<tr class="codeline" data-linenumber="596"><td class="num" id="LN596">596</td><td class="line"> <span class='comment'>* in GSettings when the accelerator gets removed and then</span></td></tr>
+<tr class="codeline" data-linenumber="597"><td class="num" id="LN597">597</td><td class="line"> <span class='comment'>* setting it again when it gets added.</span></td></tr>
+<tr class="codeline" data-linenumber="598"><td class="num" id="LN598">598</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="599"><td class="num" id="LN599">599</td><td class="line"> KeyEntry *key_entry;</td></tr>
+<tr class="codeline" data-linenumber="600"><td class="num" id="LN600">600</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="601"><td class="num" id="LN601">601</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_ACCELS,<span class='macro_popup'>do { if (0) g_printerr("Changed accel %s closure %p\n", binding_name<br> (keyval, modifier), accel_closure); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="602"><td class="num" id="LN602">602</td><td class="line"> <span class='string_literal'><span class='macro'>"Changed accel %s closure %p\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("Changed accel %s closure %p\n", binding_name<br> (keyval, modifier), accel_closure); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="603"><td class="num" id="LN603">603</td><td class="line"> <span class='macro'>binding_name (keyval, modifier), <span class='comment'>/* memleak */<span class='macro_popup'>do { if (0) g_printerr("Changed accel %s closure %p\n", binding_name<br> (keyval, modifier), accel_closure); } while (0)</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="604"><td class="num" id="LN604">604</td><td class="line"> <span class='macro'>accel_closure)<span class='macro_popup'>do { if (0) g_printerr("Changed accel %s closure %p\n", binding_name<br> (keyval, modifier), accel_closure); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="605"><td class="num" id="LN605">605</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="606"><td class="num" id="LN606">606</td><td class="line"> <span class='keyword'>if</span> (inside_gsettings_notify)</td></tr>
+<tr class="codeline" data-linenumber="607"><td class="num" id="LN607">607</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="608"><td class="num" id="LN608">608</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_ACCELS,<span class='macro_popup'>do { if (0) g_printerr("Ignoring change from gtk because we're inside a GSettings notify\n"<br>); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="609"><td class="num" id="LN609">609</td><td class="line"> <span class='string_literal'><span class='macro'>"Ignoring change from gtk because we're inside a GSettings notify\n"</span>)<span class='macro_popup'>do { if (0) g_printerr("Ignoring change from gtk because we're inside a GSettings notify\n"<br>); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="610"><td class="num" id="LN610">610</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="611"><td class="num" id="LN611">611</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="612"><td class="num" id="LN612">612</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="613"><td class="num" id="LN613">613</td><td class="line"> key_entry = accel_closure-&gt;data;</td></tr>
+<tr class="codeline" data-linenumber="614"><td class="num" id="LN614">614</td><td class="line"> <span class='macro'>g_assert (key_entry)<span class='macro_popup'>do { if (key_entry) ; else g_assertion_message_expr (((gchar*<br>) 0), "terminal-accels.c", 614, ((const char*) (__func__)), "key_entry"<br>); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="615"><td class="num" id="LN615">615</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="616"><td class="num" id="LN616">616</td><td class="line"> key_entry-&gt;needs_gsettings_sync = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="617"><td class="num" id="LN617">617</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="618"><td class="num" id="LN618">618</td><td class="line"> <span class='keyword'>if</span> (sync_idle_id == 0)</td></tr>
+<tr class="codeline" data-linenumber="619"><td class="num" id="LN619">619</td><td class="line"> sync_idle_id = g_idle_add (sync_idle_cb, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="620"><td class="num" id="LN620">620</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="621"><td class="num" id="LN621">621</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="622"><td class="num" id="LN622">622</td><td class="line"><span class='keyword'>static</span> gboolean</td></tr>
+<tr class="codeline" data-linenumber="623"><td class="num" id="LN623">623</td><td class="line">binding_from_string (<span class='keyword'>const</span> <span class='keyword'>char</span> *str,</td></tr>
+<tr class="codeline" data-linenumber="624"><td class="num" id="LN624">624</td><td class="line"> guint *accelerator_key,</td></tr>
+<tr class="codeline" data-linenumber="625"><td class="num" id="LN625">625</td><td class="line"> GdkModifierType *accelerator_mods)</td></tr>
+<tr class="codeline" data-linenumber="626"><td class="num" id="LN626">626</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="627"><td class="num" id="LN627">627</td><td class="line"> <span class='keyword'>if</span> (str == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span> ||</td></tr>
+<tr class="codeline" data-linenumber="628"><td class="num" id="LN628">628</td><td class="line"> strcmp (str, <span class='string_literal'>"disabled"</span>) == 0)</td></tr>
+<tr class="codeline" data-linenumber="629"><td class="num" id="LN629">629</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="630"><td class="num" id="LN630">630</td><td class="line"> *accelerator_key = 0;</td></tr>
+<tr class="codeline" data-linenumber="631"><td class="num" id="LN631">631</td><td class="line"> *accelerator_mods = 0;</td></tr>
+<tr class="codeline" data-linenumber="632"><td class="num" id="LN632">632</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="633"><td class="num" id="LN633">633</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="634"><td class="num" id="LN634">634</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="635"><td class="num" id="LN635">635</td><td class="line"> gtk_accelerator_parse (str, accelerator_key, accelerator_mods);</td></tr>
+<tr class="codeline" data-linenumber="636"><td class="num" id="LN636">636</td><td class="line"> <span class='keyword'>if</span> (*accelerator_key == 0 &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="637"><td class="num" id="LN637">637</td><td class="line"> *accelerator_mods == 0)</td></tr>
+<tr class="codeline" data-linenumber="638"><td class="num" id="LN638">638</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="639"><td class="num" id="LN639">639</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="640"><td class="num" id="LN640">640</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="641"><td class="num" id="LN641">641</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="642"><td class="num" id="LN642">642</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="643"><td class="num" id="LN643">643</td><td class="line"><span class='keyword'>static</span> gboolean</td></tr>
+<tr class="codeline" data-linenumber="644"><td class="num" id="LN644">644</td><td class="line">binding_from_value (GVariant *value,</td></tr>
+<tr class="codeline" data-linenumber="645"><td class="num" id="LN645">645</td><td class="line"> guint *accelerator_key,</td></tr>
+<tr class="codeline" data-linenumber="646"><td class="num" id="LN646">646</td><td class="line"> GdkModifierType *accelerator_mods)</td></tr>
+<tr class="codeline" data-linenumber="647"><td class="num" id="LN647">647</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="648"><td class="num" id="LN648">648</td><td class="line"> <span class='keyword'>if</span> (value == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="649"><td class="num" id="LN649">649</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="650"><td class="num" id="LN650">650</td><td class="line"> <span class='comment'>/* unset */</span></td></tr>
+<tr class="codeline" data-linenumber="651"><td class="num" id="LN651">651</td><td class="line"> *accelerator_key = 0;</td></tr>
+<tr class="codeline" data-linenumber="652"><td class="num" id="LN652">652</td><td class="line"> *accelerator_mods = 0;</td></tr>
+<tr class="codeline" data-linenumber="653"><td class="num" id="LN653">653</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="654"><td class="num" id="LN654">654</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="655"><td class="num" id="LN655">655</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="656"><td class="num" id="LN656">656</td><td class="line"> <span class='keyword'>if</span> (!g_variant_is_of_type (value, <span class='macro'>G_VARIANT_TYPE_STRING<span class='macro_popup'>((const GVariantType *) "s")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="657"><td class="num" id="LN657">657</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="658"><td class="num" id="LN658">658</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="659"><td class="num" id="LN659">659</td><td class="line"> <span class='keyword'>return</span> binding_from_string (g_variant_get_string (value,<span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>),</td></tr>
+<tr class="codeline" data-linenumber="660"><td class="num" id="LN660">660</td><td class="line"> accelerator_key,</td></tr>
+<tr class="codeline" data-linenumber="661"><td class="num" id="LN661">661</td><td class="line"> accelerator_mods);</td></tr>
+<tr class="codeline" data-linenumber="662"><td class="num" id="LN662">662</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="663"><td class="num" id="LN663">663</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="664"><td class="num" id="LN664">664</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="665"><td class="num" id="LN665">665</td><td class="line">add_key_entry_to_changeset (gpointer key,</td></tr>
+<tr class="codeline" data-linenumber="666"><td class="num" id="LN666">666</td><td class="line"> KeyEntry *key_entry,</td></tr>
+<tr class="codeline" data-linenumber="667"><td class="num" id="LN667">667</td><td class="line"> GSettings *changeset)</td></tr>
+<tr class="codeline" data-linenumber="668"><td class="num" id="LN668">668</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="669"><td class="num" id="LN669">669</td><td class="line"> GtkAccelKey gtk_key;</td></tr>
+<tr class="codeline" data-linenumber="670"><td class="num" id="LN670">670</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="671"><td class="num" id="LN671">671</td><td class="line"> <span class='keyword'>if</span> (!key_entry-&gt;needs_gsettings_sync)</td></tr>
+<tr class="codeline" data-linenumber="672"><td class="num" id="LN672">672</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="673"><td class="num" id="LN673">673</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="674"><td class="num" id="LN674">674</td><td class="line"> key_entry-&gt;needs_gsettings_sync = <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="675"><td class="num" id="LN675">675</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="676"><td class="num" id="LN676">676</td><td class="line"> <span class='keyword'>if</span> (gtk_accel_map_lookup_entry (key_entry-&gt;accel_path, &amp;gtk_key) &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="677"><td class="num" id="LN677">677</td><td class="line"> (gtk_key.accel_key != key_entry-&gt;gsettings_keyval ||</td></tr>
+<tr class="codeline" data-linenumber="678"><td class="num" id="LN678">678</td><td class="line"> gtk_key.accel_mods != key_entry-&gt;gsettings_mask))</td></tr>
+<tr class="codeline" data-linenumber="679"><td class="num" id="LN679">679</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="680"><td class="num" id="LN680">680</td><td class="line"> <span class='keyword'>char</span> *accel_name;</td></tr>
+<tr class="codeline" data-linenumber="681"><td class="num" id="LN681">681</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="682"><td class="num" id="LN682">682</td><td class="line"> accel_name = binding_name (gtk_key.accel_key, gtk_key.accel_mods);</td></tr>
+<tr class="codeline" data-linenumber="683"><td class="num" id="LN683">683</td><td class="line"> g_settings_set_string (changeset, key_entry-&gt;gsettings_key, accel_name);</td></tr>
+<tr class="codeline" data-linenumber="684"><td class="num" id="LN684">684</td><td class="line"> g_free (accel_name);</td></tr>
+<tr class="codeline" data-linenumber="685"><td class="num" id="LN685">685</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="686"><td class="num" id="LN686">686</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="687"><td class="num" id="LN687">687</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="688"><td class="num" id="LN688">688</td><td class="line"><span class='keyword'>static</span> gboolean</td></tr>
+<tr class="codeline" data-linenumber="689"><td class="num" id="LN689">689</td><td class="line">sync_idle_cb (gpointer data)</td></tr>
+<tr class="codeline" data-linenumber="690"><td class="num" id="LN690">690</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="691"><td class="num" id="LN691">691</td><td class="line"> GSettings *changeset;</td></tr>
+<tr class="codeline" data-linenumber="692"><td class="num" id="LN692">692</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="693"><td class="num" id="LN693">693</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_ACCELS,<span class='macro_popup'>do { if (0) g_printerr("GSettings sync handler\n"); } while (<br>0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="694"><td class="num" id="LN694">694</td><td class="line"> <span class='string_literal'><span class='macro'>"GSettings sync handler\n"</span>)<span class='macro_popup'>do { if (0) g_printerr("GSettings sync handler\n"); } while (<br>0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="695"><td class="num" id="LN695">695</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="696"><td class="num" id="LN696">696</td><td class="line"> sync_idle_id = 0;</td></tr>
+<tr class="codeline" data-linenumber="697"><td class="num" id="LN697">697</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="698"><td class="num" id="LN698">698</td><td class="line"> changeset = g_settings_new (<span class='macro'>CONF_KEYS_SCHEMA<span class='macro_popup'>"org.mate.terminal" ".keybindings"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="699"><td class="num" id="LN699">699</td><td class="line"> g_settings_delay (changeset);</td></tr>
+<tr class="codeline" data-linenumber="700"><td class="num" id="LN700">700</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="701"><td class="num" id="LN701">701</td><td class="line"> g_hash_table_foreach (gsettings_key_to_entry, (GHFunc) add_key_entry_to_changeset, changeset);</td></tr>
+<tr class="codeline" data-linenumber="702"><td class="num" id="LN702">702</td><td class="line"> g_settings_apply(changeset);</td></tr>
+<tr class="codeline" data-linenumber="703"><td class="num" id="LN703">703</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="704"><td class="num" id="LN704">704</td><td class="line"> g_object_unref (changeset);</td></tr>
+<tr class="codeline" data-linenumber="705"><td class="num" id="LN705">705</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="706"><td class="num" id="LN706">706</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="707"><td class="num" id="LN707">707</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="708"><td class="num" id="LN708">708</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="709"><td class="num" id="LN709">709</td><td class="line"><span class='comment'>/* We have the same KeyEntry* in both columns;</span></td></tr>
+<tr class="codeline" data-linenumber="710"><td class="num" id="LN710">710</td><td class="line"> <span class='comment'>* we only have two columns because we want to be able</span></td></tr>
+<tr class="codeline" data-linenumber="711"><td class="num" id="LN711">711</td><td class="line"> <span class='comment'>* to sort by either one of them.</span></td></tr>
+<tr class="codeline" data-linenumber="712"><td class="num" id="LN712">712</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="713"><td class="num" id="LN713">713</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="714"><td class="num" id="LN714">714</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="715"><td class="num" id="LN715">715</td><td class="line">accel_set_func (GtkTreeViewColumn *tree_column,</td></tr>
+<tr class="codeline" data-linenumber="716"><td class="num" id="LN716">716</td><td class="line"> GtkCellRenderer *cell,</td></tr>
+<tr class="codeline" data-linenumber="717"><td class="num" id="LN717">717</td><td class="line"> GtkTreeModel *model,</td></tr>
+<tr class="codeline" data-linenumber="718"><td class="num" id="LN718">718</td><td class="line"> GtkTreeIter *iter,</td></tr>
+<tr class="codeline" data-linenumber="719"><td class="num" id="LN719">719</td><td class="line"> gpointer data)</td></tr>
+<tr class="codeline" data-linenumber="720"><td class="num" id="LN720">720</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="721"><td class="num" id="LN721">721</td><td class="line"> KeyEntry *ke;</td></tr>
+<tr class="codeline" data-linenumber="722"><td class="num" id="LN722">722</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="723"><td class="num" id="LN723">723</td><td class="line"> gtk_tree_model_get (model, iter,</td></tr>
+<tr class="codeline" data-linenumber="724"><td class="num" id="LN724">724</td><td class="line"> KEYVAL_COLUMN, &amp;ke,</td></tr>
+<tr class="codeline" data-linenumber="725"><td class="num" id="LN725">725</td><td class="line"> -1);</td></tr>
+<tr class="codeline" data-linenumber="726"><td class="num" id="LN726">726</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="727"><td class="num" id="LN727">727</td><td class="line"> <span class='keyword'>if</span> (ke == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="728"><td class="num" id="LN728">728</td><td class="line"> <span class='comment'>/* This is a title row */</span></td></tr>
+<tr class="codeline" data-linenumber="729"><td class="num" id="LN729">729</td><td class="line"> g_object_set (cell,</td></tr>
+<tr class="codeline" data-linenumber="730"><td class="num" id="LN730">730</td><td class="line"> <span class='string_literal'>"visible"</span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="731"><td class="num" id="LN731">731</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="732"><td class="num" id="LN732">732</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="733"><td class="num" id="LN733">733</td><td class="line"> g_object_set (cell,</td></tr>
+<tr class="codeline" data-linenumber="734"><td class="num" id="LN734">734</td><td class="line"> <span class='string_literal'>"visible"</span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="735"><td class="num" id="LN735">735</td><td class="line"> <span class='string_literal'>"sensitive"</span>, ke-&gt;accel_path_unlocked,</td></tr>
+<tr class="codeline" data-linenumber="736"><td class="num" id="LN736">736</td><td class="line"> <span class='string_literal'>"editable"</span>, ke-&gt;accel_path_unlocked,</td></tr>
+<tr class="codeline" data-linenumber="737"><td class="num" id="LN737">737</td><td class="line"> <span class='string_literal'>"accel-key"</span>, ke-&gt;gsettings_keyval,</td></tr>
+<tr class="codeline" data-linenumber="738"><td class="num" id="LN738">738</td><td class="line"> <span class='string_literal'>"accel-mods"</span>, ke-&gt;gsettings_mask,</td></tr>
+<tr class="codeline" data-linenumber="739"><td class="num" id="LN739">739</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="740"><td class="num" id="LN740">740</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="741"><td class="num" id="LN741">741</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="742"><td class="num" id="LN742">742</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>int</span></td></tr>
+<tr class="codeline" data-linenumber="743"><td class="num" id="LN743">743</td><td class="line">accel_compare_func (GtkTreeModel *model,</td></tr>
+<tr class="codeline" data-linenumber="744"><td class="num" id="LN744">744</td><td class="line"> GtkTreeIter *a,</td></tr>
+<tr class="codeline" data-linenumber="745"><td class="num" id="LN745">745</td><td class="line"> GtkTreeIter *b,</td></tr>
+<tr class="codeline" data-linenumber="746"><td class="num" id="LN746">746</td><td class="line"> gpointer user_data)</td></tr>
+<tr class="codeline" data-linenumber="747"><td class="num" id="LN747">747</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="748"><td class="num" id="LN748">748</td><td class="line"> KeyEntry *ke_a;</td></tr>
+<tr class="codeline" data-linenumber="749"><td class="num" id="LN749">749</td><td class="line"> KeyEntry *ke_b;</td></tr>
+<tr class="codeline" data-linenumber="750"><td class="num" id="LN750">750</td><td class="line"> <span class='keyword'>char</span> *name_a;</td></tr>
+<tr class="codeline" data-linenumber="751"><td class="num" id="LN751">751</td><td class="line"> <span class='keyword'>char</span> *name_b;</td></tr>
+<tr class="codeline" data-linenumber="752"><td class="num" id="LN752">752</td><td class="line"> <span class='keyword'>int</span> result;</td></tr>
+<tr class="codeline" data-linenumber="753"><td class="num" id="LN753">753</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="754"><td class="num" id="LN754">754</td><td class="line"> gtk_tree_model_get (model, a,</td></tr>
+<tr class="codeline" data-linenumber="755"><td class="num" id="LN755">755</td><td class="line"> KEYVAL_COLUMN, &amp;ke_a,</td></tr>
+<tr class="codeline" data-linenumber="756"><td class="num" id="LN756">756</td><td class="line"> -1);</td></tr>
+<tr class="codeline" data-linenumber="757"><td class="num" id="LN757">757</td><td class="line"> <span class='keyword'>if</span> (ke_a == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="758"><td class="num" id="LN758">758</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="759"><td class="num" id="LN759">759</td><td class="line"> gtk_tree_model_get (model, a,</td></tr>
+<tr class="codeline" data-linenumber="760"><td class="num" id="LN760">760</td><td class="line"> ACTION_COLUMN, &amp;name_a,</td></tr>
+<tr class="codeline" data-linenumber="761"><td class="num" id="LN761">761</td><td class="line"> -1);</td></tr>
+<tr class="codeline" data-linenumber="762"><td class="num" id="LN762">762</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="763"><td class="num" id="LN763">763</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="764"><td class="num" id="LN764">764</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="765"><td class="num" id="LN765">765</td><td class="line"> name_a = binding_display_name (ke_a-&gt;gsettings_keyval,</td></tr>
+<tr class="codeline" data-linenumber="766"><td class="num" id="LN766">766</td><td class="line"> ke_a-&gt;gsettings_mask);</td></tr>
+<tr class="codeline" data-linenumber="767"><td class="num" id="LN767">767</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="768"><td class="num" id="LN768">768</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="769"><td class="num" id="LN769">769</td><td class="line"> gtk_tree_model_get (model, b,</td></tr>
+<tr class="codeline" data-linenumber="770"><td class="num" id="LN770">770</td><td class="line"> KEYVAL_COLUMN, &amp;ke_b,</td></tr>
+<tr class="codeline" data-linenumber="771"><td class="num" id="LN771">771</td><td class="line"> -1);</td></tr>
+<tr class="codeline" data-linenumber="772"><td class="num" id="LN772">772</td><td class="line"> <span class='keyword'>if</span> (ke_b == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="773"><td class="num" id="LN773">773</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="774"><td class="num" id="LN774">774</td><td class="line"> gtk_tree_model_get (model, b,</td></tr>
+<tr class="codeline" data-linenumber="775"><td class="num" id="LN775">775</td><td class="line"> ACTION_COLUMN, &amp;name_b,</td></tr>
+<tr class="codeline" data-linenumber="776"><td class="num" id="LN776">776</td><td class="line"> -1);</td></tr>
+<tr class="codeline" data-linenumber="777"><td class="num" id="LN777">777</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="778"><td class="num" id="LN778">778</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="779"><td class="num" id="LN779">779</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="780"><td class="num" id="LN780">780</td><td class="line"> name_b = binding_display_name (ke_b-&gt;gsettings_keyval,</td></tr>
+<tr class="codeline" data-linenumber="781"><td class="num" id="LN781">781</td><td class="line"> ke_b-&gt;gsettings_mask);</td></tr>
+<tr class="codeline" data-linenumber="782"><td class="num" id="LN782">782</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="783"><td class="num" id="LN783">783</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="784"><td class="num" id="LN784">784</td><td class="line"> result = g_utf8_collate (name_a, name_b);</td></tr>
+<tr class="codeline" data-linenumber="785"><td class="num" id="LN785">785</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="786"><td class="num" id="LN786">786</td><td class="line"> g_free (name_a);</td></tr>
+<tr class="codeline" data-linenumber="787"><td class="num" id="LN787">787</td><td class="line"> g_free (name_b);</td></tr>
+<tr class="codeline" data-linenumber="788"><td class="num" id="LN788">788</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="789"><td class="num" id="LN789">789</td><td class="line"> <span class='keyword'>return</span> result;</td></tr>
+<tr class="codeline" data-linenumber="790"><td class="num" id="LN790">790</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="791"><td class="num" id="LN791">791</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="792"><td class="num" id="LN792">792</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="793"><td class="num" id="LN793">793</td><td class="line">treeview_accel_changed_cb (GtkAccelGroup *accel_group,</td></tr>
+<tr class="codeline" data-linenumber="794"><td class="num" id="LN794">794</td><td class="line"> guint keyval,</td></tr>
+<tr class="codeline" data-linenumber="795"><td class="num" id="LN795">795</td><td class="line"> GdkModifierType modifier,</td></tr>
+<tr class="codeline" data-linenumber="796"><td class="num" id="LN796">796</td><td class="line"> GClosure *accel_closure,</td></tr>
+<tr class="codeline" data-linenumber="797"><td class="num" id="LN797">797</td><td class="line"> GtkTreeModel *model)</td></tr>
+<tr class="codeline" data-linenumber="798"><td class="num" id="LN798">798</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="799"><td class="num" id="LN799">799</td><td class="line"> gtk_tree_model_foreach (model, update_model_foreach, accel_closure-&gt;data);</td></tr>
+<tr class="codeline" data-linenumber="800"><td class="num" id="LN800">800</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="801"><td class="num" id="LN801">801</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="802"><td class="num" id="LN802">802</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="803"><td class="num" id="LN803">803</td><td class="line">accel_edited_callback (GtkCellRendererAccel *cell,</td></tr>
+<tr class="codeline" data-linenumber="804"><td class="num" id="LN804">804</td><td class="line"> gchar *path_string,</td></tr>
+<tr class="codeline" data-linenumber="805"><td class="num" id="LN805">805</td><td class="line"> guint keyval,</td></tr>
+<tr class="codeline" data-linenumber="806"><td class="num" id="LN806">806</td><td class="line"> GdkModifierType mask,</td></tr>
+<tr class="codeline" data-linenumber="807"><td class="num" id="LN807">807</td><td class="line"> guint hardware_keycode,</td></tr>
+<tr class="codeline" data-linenumber="808"><td class="num" id="LN808">808</td><td class="line"> GtkTreeView *view)</td></tr>
+<tr class="codeline" data-linenumber="809"><td class="num" id="LN809">809</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="810"><td class="num" id="LN810">810</td><td class="line"> GtkTreeModel *model;</td></tr>
+<tr class="codeline" data-linenumber="811"><td class="num" id="LN811">811</td><td class="line"> GtkTreePath *path;</td></tr>
+<tr class="codeline" data-linenumber="812"><td class="num" id="LN812">812</td><td class="line"> GtkTreeIter iter;</td></tr>
+<tr class="codeline" data-linenumber="813"><td class="num" id="LN813">813</td><td class="line"> KeyEntry *ke;</td></tr>
+<tr class="codeline" data-linenumber="814"><td class="num" id="LN814">814</td><td class="line"> GtkAccelGroupEntry *entries;</td></tr>
+<tr class="codeline" data-linenumber="815"><td class="num" id="LN815">815</td><td class="line"> guint n_entries;</td></tr>
+<tr class="codeline" data-linenumber="816"><td class="num" id="LN816">816</td><td class="line"> <span class='keyword'>char</span> *str;</td></tr>
+<tr class="codeline" data-linenumber="817"><td class="num" id="LN817">817</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="818"><td class="num" id="LN818">818</td><td class="line"> model = gtk_tree_view_get_model (view);</td></tr>
+<tr class="codeline" data-linenumber="819"><td class="num" id="LN819">819</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="820"><td class="num" id="LN820">820</td><td class="line"> path = gtk_tree_path_new_from_string (path_string);</td></tr>
+<tr class="codeline" data-linenumber="821"><td class="num" id="LN821">821</td><td class="line"> <span class='keyword'>if</span> (!path)</td></tr>
+<tr class="codeline" data-linenumber="822"><td class="num" id="LN822">822</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="823"><td class="num" id="LN823">823</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="824"><td class="num" id="LN824">824</td><td class="line"> <span class='keyword'>if</span> (!gtk_tree_model_get_iter (model, &amp;iter, path))</td></tr>
+<tr class="codeline" data-linenumber="825"><td class="num" id="LN825">825</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="826"><td class="num" id="LN826">826</td><td class="line"> gtk_tree_path_free (path);</td></tr>
+<tr class="codeline" data-linenumber="827"><td class="num" id="LN827">827</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="828"><td class="num" id="LN828">828</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="829"><td class="num" id="LN829">829</td><td class="line"> gtk_tree_path_free (path);</td></tr>
+<tr class="codeline" data-linenumber="830"><td class="num" id="LN830">830</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="831"><td class="num" id="LN831">831</td><td class="line"> gtk_tree_model_get (model, &amp;iter, KEYVAL_COLUMN, &amp;ke, -1);</td></tr>
+<tr class="codeline" data-linenumber="832"><td class="num" id="LN832">832</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="833"><td class="num" id="LN833">833</td><td class="line"> <span class='comment'>/* sanity check */</span></td></tr>
+<tr class="codeline" data-linenumber="834"><td class="num" id="LN834">834</td><td class="line"> <span class='keyword'>if</span> (ke == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="835"><td class="num" id="LN835">835</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="836"><td class="num" id="LN836">836</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="837"><td class="num" id="LN837">837</td><td class="line"> <span class='comment'>/* Check if we already have an entry using this accel */</span></td></tr>
+<tr class="codeline" data-linenumber="838"><td class="num" id="LN838">838</td><td class="line"> entries = gtk_accel_group_query (notification_group, keyval, mask, &amp;n_entries);</td></tr>
+<tr class="codeline" data-linenumber="839"><td class="num" id="LN839">839</td><td class="line"> <span class='keyword'>if</span> (n_entries &gt; 0)</td></tr>
+<tr class="codeline" data-linenumber="840"><td class="num" id="LN840">840</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="841"><td class="num" id="LN841">841</td><td class="line"> <span class='keyword'>if</span> (entries[0].accel_path_quark != g_quark_from_string (ke-&gt;accel_path))</td></tr>
+<tr class="codeline" data-linenumber="842"><td class="num" id="LN842">842</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="843"><td class="num" id="LN843">843</td><td class="line"> GtkWidget *dialog;</td></tr>
+<tr class="codeline" data-linenumber="844"><td class="num" id="LN844">844</td><td class="line"> <span class='keyword'>char</span> *name;</td></tr>
+<tr class="codeline" data-linenumber="845"><td class="num" id="LN845">845</td><td class="line"> KeyEntry *other_key;</td></tr>
+<tr class="codeline" data-linenumber="846"><td class="num" id="LN846">846</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="847"><td class="num" id="LN847">847</td><td class="line"> name = gtk_accelerator_get_label (keyval, mask);</td></tr>
+<tr class="codeline" data-linenumber="848"><td class="num" id="LN848">848</td><td class="line"> other_key = entries[0].closure-&gt;data;</td></tr>
+<tr class="codeline" data-linenumber="849"><td class="num" id="LN849">849</td><td class="line"> <span class='macro'>g_assert (other_key)<span class='macro_popup'>do { if (other_key) ; else g_assertion_message_expr (((gchar*<br>) 0), "terminal-accels.c", 849, ((const char*) (__func__)), "other_key"<br>); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="850"><td class="num" id="LN850">850</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="851"><td class="num" id="LN851">851</td><td class="line"> dialog =</td></tr>
+<tr class="codeline" data-linenumber="852"><td class="num" id="LN852">852</td><td class="line"> gtk_message_dialog_new (<span class='macro'>GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (view)))<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((gtk_widget_get_toplevel (((((GtkWidget*) (void *) g_type_check_instance_cast<br> ((GTypeInstance*) ((view)), ((gtk_widget_get_type ()))))))))<br>), ((gtk_window_get_type ()))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="853"><td class="num" id="LN853">853</td><td class="line"> GTK_DIALOG_DESTROY_WITH_PARENT | GTK_DIALOG_MODAL,</td></tr>
+<tr class="codeline" data-linenumber="854"><td class="num" id="LN854">854</td><td class="line"> GTK_MESSAGE_WARNING,</td></tr>
+<tr class="codeline" data-linenumber="855"><td class="num" id="LN855">855</td><td class="line"> GTK_BUTTONS_OK,</td></tr>
+<tr class="codeline" data-linenumber="856"><td class="num" id="LN856">856</td><td class="line"> <span class='macro'>_(<span class='string_literal'>"The shortcut key “%s” is already bound to the “%s” action"</span>)<span class='macro_popup'>gettext ("The shortcut key “%s” is already bound to the “%s” action"<br>)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="857"><td class="num" id="LN857">857</td><td class="line"> name,</td></tr>
+<tr class="codeline" data-linenumber="858"><td class="num" id="LN858">858</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="859"><td class="num" id="LN859">859</td><td class="line">other_key-&gt;user_visible_name ? <span class='macro'>_(other_key-&gt;user_visible_name)<span class='macro_popup'>gettext (other_key-&gt;user_visible_name)</span></span> : other_key-&gt;gsettings_key);</td></tr>
+<tr class="codeline" data-linenumber="860"><td class="num" id="LN860">860</td><td class="line"> g_free (name);</td></tr>
+<tr class="codeline" data-linenumber="861"><td class="num" id="LN861">861</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="862"><td class="num" id="LN862">862</td><td class="line"> <span class='macro'>g_signal_connect (dialog, <span class='string_literal'>"response"</span>, G_CALLBACK (gtk_widget_destroy), NULL)<span class='macro_popup'>g_signal_connect_data ((dialog), ("response"), (((GCallback) (<br>gtk_widget_destroy))), (((void*)0)), ((void*)0), (GConnectFlags<br>) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="863"><td class="num" id="LN863">863</td><td class="line"> gtk_window_present (<span class='macro'>GTK_WINDOW (dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((dialog)), ((gtk_window_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="864"><td class="num" id="LN864">864</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="865"><td class="num" id="LN865">865</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="866"><td class="num" id="LN866">866</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="867"><td class="num" id="LN867">867</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="868"><td class="num" id="LN868">868</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="869"><td class="num" id="LN869">869</td><td class="line"> str = binding_name (keyval, mask);</td></tr>
+<tr class="codeline" data-linenumber="870"><td class="num" id="LN870">870</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="871"><td class="num" id="LN871">871</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_ACCELS,<span class='macro_popup'>do { if (0) g_printerr("Edited path %s keyval %s, setting GSettings to %s\n"<br>, ke-&gt;accel_path, gdk_keyval_name (keyval) ? gdk_keyval_name<br> (keyval) : "null", str); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="872"><td class="num" id="LN872">872</td><td class="line"> <span class='string_literal'><span class='macro'>"Edited path %s keyval %s, setting GSettings to %s\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("Edited path %s keyval %s, setting GSettings to %s\n"<br>, ke-&gt;accel_path, gdk_keyval_name (keyval) ? gdk_keyval_name<br> (keyval) : "null", str); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="873"><td class="num" id="LN873">873</td><td class="line"> <span class='macro'>ke-&gt;accel_path,<span class='macro_popup'>do { if (0) g_printerr("Edited path %s keyval %s, setting GSettings to %s\n"<br>, ke-&gt;accel_path, gdk_keyval_name (keyval) ? gdk_keyval_name<br> (keyval) : "null", str); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="874"><td class="num" id="LN874">874</td><td class="line"> <span class='macro'>gdk_keyval_name (keyval) ? gdk_keyval_name (keyval) : <span class='string_literal'>"null"</span>,<span class='macro_popup'>do { if (0) g_printerr("Edited path %s keyval %s, setting GSettings to %s\n"<br>, ke-&gt;accel_path, gdk_keyval_name (keyval) ? gdk_keyval_name<br> (keyval) : "null", str); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="875"><td class="num" id="LN875">875</td><td class="line"> <span class='macro'>str)<span class='macro_popup'>do { if (0) g_printerr("Edited path %s keyval %s, setting GSettings to %s\n"<br>, ke-&gt;accel_path, gdk_keyval_name (keyval) ? gdk_keyval_name<br> (keyval) : "null", str); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="876"><td class="num" id="LN876">876</td><td class="line"><span class='directive'>#ifdef MATE_ENABLE_DEBUG</span></td></tr>
+<tr class="codeline" data-linenumber="877"><td class="num" id="LN877">877</td><td class="line"> <span class='macro'>_TERMINAL_DEBUG_IF (TERMINAL_DEBUG_ACCELS)<span class='macro_popup'>if (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="878"><td class="num" id="LN878">878</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="879"><td class="num" id="LN879">879</td><td class="line"> GtkAccelKey old_key;</td></tr>
+<tr class="codeline" data-linenumber="880"><td class="num" id="LN880">880</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="881"><td class="num" id="LN881">881</td><td class="line"> <span class='keyword'>if</span> (gtk_accel_map_lookup_entry (ke-&gt;accel_path, &amp;old_key))</td></tr>
+<tr class="codeline" data-linenumber="882"><td class="num" id="LN882">882</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="883"><td class="num" id="LN883">883</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_ACCELS,<span class='macro_popup'>do { if (0) g_printerr(" Old entry of path %s is keyval %s mask %x\n"<br>, ke-&gt;accel_path, gdk_keyval_name (old_key.accel_key), old_key<br>.accel_mods); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="884"><td class="num" id="LN884">884</td><td class="line"> <span class='string_literal'><span class='macro'>" Old entry of path %s is keyval %s mask %x\n"</span>,<span class='macro_popup'>do { if (0) g_printerr(" Old entry of path %s is keyval %s mask %x\n"<br>, ke-&gt;accel_path, gdk_keyval_name (old_key.accel_key), old_key<br>.accel_mods); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="885"><td class="num" id="LN885">885</td><td class="line"> <span class='macro'>ke-&gt;accel_path, gdk_keyval_name (old_key.accel_key), old_key.accel_mods)<span class='macro_popup'>do { if (0) g_printerr(" Old entry of path %s is keyval %s mask %x\n"<br>, ke-&gt;accel_path, gdk_keyval_name (old_key.accel_key), old_key<br>.accel_mods); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="886"><td class="num" id="LN886">886</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="887"><td class="num" id="LN887">887</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="888"><td class="num" id="LN888">888</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="889"><td class="num" id="LN889">889</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_ACCELS,<span class='macro_popup'>do { if (0) g_printerr(" Failed to look up the old entry of path %s\n"<br>, ke-&gt;accel_path); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="890"><td class="num" id="LN890">890</td><td class="line"> <span class='string_literal'><span class='macro'>" Failed to look up the old entry of path %s\n"</span>,<span class='macro_popup'>do { if (0) g_printerr(" Failed to look up the old entry of path %s\n"<br>, ke-&gt;accel_path); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="891"><td class="num" id="LN891">891</td><td class="line"> <span class='macro'>ke-&gt;accel_path)<span class='macro_popup'>do { if (0) g_printerr(" Failed to look up the old entry of path %s\n"<br>, ke-&gt;accel_path); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="892"><td class="num" id="LN892">892</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="893"><td class="num" id="LN893">893</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="894"><td class="num" id="LN894">894</td><td class="line"><span class='directive'>#endif</span></td></tr>
+<tr class="codeline" data-linenumber="895"><td class="num" id="LN895">895</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="896"><td class="num" id="LN896">896</td><td class="line"> g_settings_set_string (settings_keybindings,</td></tr>
+<tr class="codeline" data-linenumber="897"><td class="num" id="LN897">897</td><td class="line"> ke-&gt;gsettings_key,</td></tr>
+<tr class="codeline" data-linenumber="898"><td class="num" id="LN898">898</td><td class="line"> str);</td></tr>
+<tr class="codeline" data-linenumber="899"><td class="num" id="LN899">899</td><td class="line"> g_free (str);</td></tr>
+<tr class="codeline" data-linenumber="900"><td class="num" id="LN900">900</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="901"><td class="num" id="LN901">901</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="902"><td class="num" id="LN902">902</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="903"><td class="num" id="LN903">903</td><td class="line">accel_cleared_callback (GtkCellRendererAccel *cell,</td></tr>
+<tr class="codeline" data-linenumber="904"><td class="num" id="LN904">904</td><td class="line"> gchar *path_string,</td></tr>
+<tr class="codeline" data-linenumber="905"><td class="num" id="LN905">905</td><td class="line"> GtkTreeView *view)</td></tr>
+<tr class="codeline" data-linenumber="906"><td class="num" id="LN906">906</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="907"><td class="num" id="LN907">907</td><td class="line"> GtkTreeModel *model;</td></tr>
+<tr class="codeline" data-linenumber="908"><td class="num" id="LN908">908</td><td class="line"> GtkTreePath *path;</td></tr>
+<tr class="codeline" data-linenumber="909"><td class="num" id="LN909">909</td><td class="line"> GtkTreeIter iter;</td></tr>
+<tr class="codeline" data-linenumber="910"><td class="num" id="LN910">910</td><td class="line"> KeyEntry *ke;</td></tr>
+<tr class="codeline" data-linenumber="911"><td class="num" id="LN911">911</td><td class="line"> <span class='keyword'>char</span> *str;</td></tr>
+<tr class="codeline" data-linenumber="912"><td class="num" id="LN912">912</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="913"><td class="num" id="LN913">913</td><td class="line"> model = gtk_tree_view_get_model (view);</td></tr>
+<tr class="codeline" data-linenumber="914"><td class="num" id="LN914">914</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="915"><td class="num" id="LN915">915</td><td class="line"> path = gtk_tree_path_new_from_string (path_string);</td></tr>
+<tr class="codeline" data-linenumber="916"><td class="num" id="LN916">916</td><td class="line"> <span class='keyword'>if</span> (!path)</td></tr>
+<tr class="codeline" data-linenumber="917"><td class="num" id="LN917">917</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="918"><td class="num" id="LN918">918</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="919"><td class="num" id="LN919">919</td><td class="line"> <span class='keyword'>if</span> (!gtk_tree_model_get_iter (model, &amp;iter, path))</td></tr>
+<tr class="codeline" data-linenumber="920"><td class="num" id="LN920">920</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="921"><td class="num" id="LN921">921</td><td class="line"> gtk_tree_path_free (path);</td></tr>
+<tr class="codeline" data-linenumber="922"><td class="num" id="LN922">922</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="923"><td class="num" id="LN923">923</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="924"><td class="num" id="LN924">924</td><td class="line"> gtk_tree_path_free (path);</td></tr>
+<tr class="codeline" data-linenumber="925"><td class="num" id="LN925">925</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="926"><td class="num" id="LN926">926</td><td class="line"> gtk_tree_model_get (model, &amp;iter, KEYVAL_COLUMN, &amp;ke, -1);</td></tr>
+<tr class="codeline" data-linenumber="927"><td class="num" id="LN927">927</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="928"><td class="num" id="LN928">928</td><td class="line"> <span class='comment'>/* sanity check */</span></td></tr>
+<tr class="codeline" data-linenumber="929"><td class="num" id="LN929">929</td><td class="line"> <span class='keyword'>if</span> (ke == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="930"><td class="num" id="LN930">930</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="931"><td class="num" id="LN931">931</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="932"><td class="num" id="LN932">932</td><td class="line"> ke-&gt;gsettings_keyval = 0;</td></tr>
+<tr class="codeline" data-linenumber="933"><td class="num" id="LN933">933</td><td class="line"> ke-&gt;gsettings_mask = 0;</td></tr>
+<tr class="codeline" data-linenumber="934"><td class="num" id="LN934">934</td><td class="line"> ke-&gt;needs_gsettings_sync = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="935"><td class="num" id="LN935">935</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="936"><td class="num" id="LN936">936</td><td class="line"> str = binding_name (0, 0);</td></tr>
+<tr class="codeline" data-linenumber="937"><td class="num" id="LN937">937</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="938"><td class="num" id="LN938">938</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_ACCELS,<span class='macro_popup'>do { if (0) g_printerr("Cleared keybinding for GSettings %s",<br> ke-&gt;gsettings_key); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="939"><td class="num" id="LN939">939</td><td class="line"> <span class='string_literal'><span class='macro'>"Cleared keybinding for GSettings %s"</span>,<span class='macro_popup'>do { if (0) g_printerr("Cleared keybinding for GSettings %s",<br> ke-&gt;gsettings_key); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="940"><td class="num" id="LN940">940</td><td class="line"> <span class='macro'>ke-&gt;gsettings_key)<span class='macro_popup'>do { if (0) g_printerr("Cleared keybinding for GSettings %s",<br> ke-&gt;gsettings_key); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="941"><td class="num" id="LN941">941</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="942"><td class="num" id="LN942">942</td><td class="line"> g_settings_set_string (settings_keybindings,</td></tr>
+<tr class="codeline" data-linenumber="943"><td class="num" id="LN943">943</td><td class="line"> ke-&gt;gsettings_key,</td></tr>
+<tr class="codeline" data-linenumber="944"><td class="num" id="LN944">944</td><td class="line"> str);</td></tr>
+<tr class="codeline" data-linenumber="945"><td class="num" id="LN945">945</td><td class="line"> g_free (str);</td></tr>
+<tr class="codeline" data-linenumber="946"><td class="num" id="LN946">946</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="947"><td class="num" id="LN947">947</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="948"><td class="num" id="LN948">948</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="949"><td class="num" id="LN949">949</td><td class="line">edit_keys_dialog_destroy_cb (GtkWidget *widget,</td></tr>
+<tr class="codeline" data-linenumber="950"><td class="num" id="LN950">950</td><td class="line"> gpointer user_data)</td></tr>
+<tr class="codeline" data-linenumber="951"><td class="num" id="LN951">951</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="952"><td class="num" id="LN952">952</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (notification_group, G_CALLBACK (treeview_accel_changed_cb), user_data)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((notification_group), (<br>GSignalMatchType) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA)<br>, 0, 0, ((void*)0), (((GCallback) (treeview_accel_changed_cb)<br>)), (user_data))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="953"><td class="num" id="LN953">953</td><td class="line"> edit_keys_dialog = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="954"><td class="num" id="LN954">954</td><td class="line"> edit_keys_store = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="955"><td class="num" id="LN955">955</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="956"><td class="num" id="LN956">956</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="957"><td class="num" id="LN957">957</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="958"><td class="num" id="LN958">958</td><td class="line">edit_keys_dialog_response_cb (GtkWidget *editor,</td></tr>
+<tr class="codeline" data-linenumber="959"><td class="num" id="LN959">959</td><td class="line"> <span class='keyword'>int</span> response,</td></tr>
+<tr class="codeline" data-linenumber="960"><td class="num" id="LN960">960</td><td class="line"> gpointer use_data)</td></tr>
+<tr class="codeline" data-linenumber="961"><td class="num" id="LN961">961</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="962"><td class="num" id="LN962">962</td><td class="line"> <span class='keyword'>if</span> (response == GTK_RESPONSE_HELP)</td></tr>
+<tr class="codeline" data-linenumber="963"><td class="num" id="LN963">963</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="964"><td class="num" id="LN964">964</td><td class="line"> terminal_util_show_help (<span class='string_literal'>"mate-terminal-shortcuts"</span>, <span class='macro'>GTK_WINDOW (editor)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((editor)), ((gtk_window_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="965"><td class="num" id="LN965">965</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="966"><td class="num" id="LN966">966</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="967"><td class="num" id="LN967">967</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="968"><td class="num" id="LN968">968</td><td class="line"> gtk_widget_destroy (editor);</td></tr>
+<tr class="codeline" data-linenumber="969"><td class="num" id="LN969">969</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="970"><td class="num" id="LN970">970</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="971"><td class="num" id="LN971">971</td><td class="line"><span class='directive'>#ifdef MATE_ENABLE_DEBUG</span></td></tr>
+<tr class="codeline" data-linenumber="972"><td class="num" id="LN972">972</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="973"><td class="num" id="LN973">973</td><td class="line">row_changed (GtkTreeModel *tree_model,</td></tr>
+<tr class="codeline" data-linenumber="974"><td class="num" id="LN974">974</td><td class="line"> GtkTreePath *path,</td></tr>
+<tr class="codeline" data-linenumber="975"><td class="num" id="LN975">975</td><td class="line"> GtkTreeIter *iter,</td></tr>
+<tr class="codeline" data-linenumber="976"><td class="num" id="LN976">976</td><td class="line"> gpointer user_data)</td></tr>
+<tr class="codeline" data-linenumber="977"><td class="num" id="LN977">977</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="978"><td class="num" id="LN978">978</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_ACCELS,<span class='macro_popup'>do { if (0) g_printerr("ROW-CHANGED [%s]\n", gtk_tree_path_to_string<br> (path)); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="979"><td class="num" id="LN979">979</td><td class="line"> <span class='string_literal'><span class='macro'>"ROW-CHANGED [%s]\n"</span>, gtk_tree_path_to_string (path) <span class='comment'>/* leak */</span>)<span class='macro_popup'>do { if (0) g_printerr("ROW-CHANGED [%s]\n", gtk_tree_path_to_string<br> (path)); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="980"><td class="num" id="LN980">980</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="981"><td class="num" id="LN981">981</td><td class="line"><span class='directive'>#endif</span></td></tr>
+<tr class="codeline" data-linenumber="982"><td class="num" id="LN982">982</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="983"><td class="num" id="LN983">983</td><td class="line"><span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="984"><td class="num" id="LN984">984</td><td class="line">terminal_edit_keys_dialog_show (GtkWindow *transient_parent)</td></tr>
+<tr class="codeline" data-linenumber="985"><td class="num" id="LN985">985</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="986"><td class="num" id="LN986">986</td><td class="line"> TerminalApp *app;</td></tr>
+<tr class="codeline" data-linenumber="987"><td class="num" id="LN987">987</td><td class="line"> GtkWidget *dialog, *tree_view, *disable_mnemonics_button, *disable_menu_accel_button;</td></tr>
+<tr class="codeline" data-linenumber="988"><td class="num" id="LN988">988</td><td class="line"> GtkTreeViewColumn *column;</td></tr>
+<tr class="codeline" data-linenumber="989"><td class="num" id="LN989">989</td><td class="line"> GtkCellRenderer *cell_renderer;</td></tr>
+<tr class="codeline" data-linenumber="990"><td class="num" id="LN990">990</td><td class="line"> GtkTreeStore *tree;</td></tr>
+<tr class="codeline" data-linenumber="991"><td class="num" id="LN991">991</td><td class="line"> guint i;</td></tr>
+<tr class="codeline" data-linenumber="992"><td class="num" id="LN992">992</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="993"><td class="num" id="LN993">993</td><td class="line"> <span class='keyword'>if</span> (edit_keys_dialog != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="994"><td class="num" id="LN994">994</td><td class="line"> <span class='keyword'>goto</span> done;</td></tr>
+<tr class="codeline" data-linenumber="995"><td class="num" id="LN995">995</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="996"><td class="num" id="LN996">996</td><td class="line"> <span class='keyword'>if</span> (!terminal_util_load_builder_resource (<span class='macro'>TERMINAL_RESOURCES_PATH_PREFIX<span class='macro_popup'>"/org/mate/terminal"</span></span> <span class='macro'>G_DIR_SEPARATOR_S<span class='macro_popup'>"/"</span></span> <span class='string_literal'>"ui/keybinding-editor.ui"</span>,</td></tr>
+<tr class="codeline" data-linenumber="997"><td class="num" id="LN997">997</td><td class="line"> <span class='string_literal'>"keybindings-dialog"</span>, &amp;dialog,</td></tr>
+<tr class="codeline" data-linenumber="998"><td class="num" id="LN998">998</td><td class="line"> <span class='string_literal'>"disable-mnemonics-checkbutton"</span>, &amp;disable_mnemonics_button,</td></tr>
+<tr class="codeline" data-linenumber="999"><td class="num" id="LN999">999</td><td class="line"> <span class='string_literal'>"disable-menu-accel-checkbutton"</span>, &amp;disable_menu_accel_button,</td></tr>
+<tr class="codeline" data-linenumber="1000"><td class="num" id="LN1000">1000</td><td class="line"> <span class='string_literal'>"accelerators-treeview"</span>, &amp;tree_view,</td></tr>
+<tr class="codeline" data-linenumber="1001"><td class="num" id="LN1001">1001</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="1002"><td class="num" id="LN1002">1002</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1003"><td class="num" id="LN1003">1003</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1004"><td class="num" id="LN1004">1004</td><td class="line"> app = terminal_app_get ();</td></tr>
+<tr class="codeline" data-linenumber="1005"><td class="num" id="LN1005">1005</td><td class="line"> terminal_util_bind_object_property_to_widget (<span class='macro'>G_OBJECT (app)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, <span class='macro'>TERMINAL_APP_ENABLE_MNEMONICS<span class='macro_popup'>"enable-mnemonics"</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1006"><td class="num" id="LN1006">1006</td><td class="line"> disable_mnemonics_button, 0);</td></tr>
+<tr class="codeline" data-linenumber="1007"><td class="num" id="LN1007">1007</td><td class="line"> terminal_util_bind_object_property_to_widget (<span class='macro'>G_OBJECT (app)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, <span class='macro'>TERMINAL_APP_ENABLE_MENU_BAR_ACCEL<span class='macro_popup'>"enable-menu-accels"</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1008"><td class="num" id="LN1008">1008</td><td class="line"> disable_menu_accel_button, 0);</td></tr>
+<tr class="codeline" data-linenumber="1009"><td class="num" id="LN1009">1009</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1010"><td class="num" id="LN1010">1010</td><td class="line"> <span class='comment'>/* Column 1 */</span></td></tr>
+<tr class="codeline" data-linenumber="1011"><td class="num" id="LN1011">1011</td><td class="line"> cell_renderer = gtk_cell_renderer_text_new ();</td></tr>
+<tr class="codeline" data-linenumber="1012"><td class="num" id="LN1012">1012</td><td class="line"> column = gtk_tree_view_column_new_with_attributes (<span class='macro'>_(<span class='string_literal'>"_Action"</span>)<span class='macro_popup'>gettext ("_Action")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1013"><td class="num" id="LN1013">1013</td><td class="line"> cell_renderer,</td></tr>
+<tr class="codeline" data-linenumber="1014"><td class="num" id="LN1014">1014</td><td class="line"> <span class='string_literal'>"text"</span>, ACTION_COLUMN,</td></tr>
+<tr class="codeline" data-linenumber="1015"><td class="num" id="LN1015">1015</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1016"><td class="num" id="LN1016">1016</td><td class="line"> gtk_tree_view_append_column (<span class='macro'>GTK_TREE_VIEW (tree_view)<span class='macro_popup'>((((GtkTreeView*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((tree_view)), ((gtk_tree_view_get_type ()))))))</span></span>, column);</td></tr>
+<tr class="codeline" data-linenumber="1017"><td class="num" id="LN1017">1017</td><td class="line"> gtk_tree_view_column_set_sort_column_id (column, ACTION_COLUMN);</td></tr>
+<tr class="codeline" data-linenumber="1018"><td class="num" id="LN1018">1018</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1019"><td class="num" id="LN1019">1019</td><td class="line"> <span class='comment'>/* Column 2 */</span></td></tr>
+<tr class="codeline" data-linenumber="1020"><td class="num" id="LN1020">1020</td><td class="line"> cell_renderer = gtk_cell_renderer_accel_new ();</td></tr>
+<tr class="codeline" data-linenumber="1021"><td class="num" id="LN1021">1021</td><td class="line"> g_object_set (cell_renderer,</td></tr>
+<tr class="codeline" data-linenumber="1022"><td class="num" id="LN1022">1022</td><td class="line"> <span class='string_literal'>"editable"</span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1023"><td class="num" id="LN1023">1023</td><td class="line"> <span class='string_literal'>"accel-mode"</span>, GTK_CELL_RENDERER_ACCEL_MODE_GTK,</td></tr>
+<tr class="codeline" data-linenumber="1024"><td class="num" id="LN1024">1024</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1025"><td class="num" id="LN1025">1025</td><td class="line"> <span class='macro'>g_signal_connect (cell_renderer, <span class='string_literal'>"accel-edited"</span>,<span class='macro_popup'>g_signal_connect_data ((cell_renderer), ("accel-edited"), (((<br>GCallback) (accel_edited_callback))), (tree_view), ((void*)0)<br>, (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1026"><td class="num" id="LN1026">1026</td><td class="line"> <span class='macro'>G_CALLBACK (accel_edited_callback), tree_view)<span class='macro_popup'>g_signal_connect_data ((cell_renderer), ("accel-edited"), (((<br>GCallback) (accel_edited_callback))), (tree_view), ((void*)0)<br>, (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1027"><td class="num" id="LN1027">1027</td><td class="line"> <span class='macro'>g_signal_connect (cell_renderer, <span class='string_literal'>"accel-cleared"</span>,<span class='macro_popup'>g_signal_connect_data ((cell_renderer), ("accel-cleared"), ((<br>(GCallback) (accel_cleared_callback))), (tree_view), ((void*)<br>0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1028"><td class="num" id="LN1028">1028</td><td class="line"> <span class='macro'>G_CALLBACK (accel_cleared_callback), tree_view)<span class='macro_popup'>g_signal_connect_data ((cell_renderer), ("accel-cleared"), ((<br>(GCallback) (accel_cleared_callback))), (tree_view), ((void*)<br>0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1029"><td class="num" id="LN1029">1029</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1030"><td class="num" id="LN1030">1030</td><td class="line"> column = gtk_tree_view_column_new ();</td></tr>
+<tr class="codeline" data-linenumber="1031"><td class="num" id="LN1031">1031</td><td class="line"> gtk_tree_view_column_set_title (column, <span class='macro'>_(<span class='string_literal'>"Shortcut _Key"</span>)<span class='macro_popup'>gettext ("Shortcut _Key")</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1032"><td class="num" id="LN1032">1032</td><td class="line"> gtk_tree_view_column_pack_start (column, cell_renderer, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1033"><td class="num" id="LN1033">1033</td><td class="line"> gtk_tree_view_column_set_cell_data_func (column, cell_renderer, accel_set_func, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1034"><td class="num" id="LN1034">1034</td><td class="line"> gtk_tree_view_column_set_sort_column_id (column, KEYVAL_COLUMN);</td></tr>
+<tr class="codeline" data-linenumber="1035"><td class="num" id="LN1035">1035</td><td class="line"> gtk_tree_view_append_column (<span class='macro'>GTK_TREE_VIEW (tree_view)<span class='macro_popup'>((((GtkTreeView*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((tree_view)), ((gtk_tree_view_get_type ()))))))</span></span>, column);</td></tr>
+<tr class="codeline" data-linenumber="1036"><td class="num" id="LN1036">1036</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1037"><td class="num" id="LN1037">1037</td><td class="line"> <span class='comment'>/* Add the data */</span></td></tr>
+<tr class="codeline" data-linenumber="1038"><td class="num" id="LN1038">1038</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1039"><td class="num" id="LN1039">1039</td><td class="line"> tree = edit_keys_store = gtk_tree_store_new (N_COLUMNS, <span class='macro'>G_TYPE_STRING<span class='macro_popup'>((GType) ((16) &lt;&lt; (2)))</span></span>, <span class='macro'>G_TYPE_POINTER<span class='macro_popup'>((GType) ((17) &lt;&lt; (2)))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1040"><td class="num" id="LN1040">1040</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1041"><td class="num" id="LN1041">1041</td><td class="line"><span class='directive'>#ifdef MATE_ENABLE_DEBUG</span></td></tr>
+<tr class="codeline" data-linenumber="1042"><td class="num" id="LN1042">1042</td><td class="line"> <span class='macro'>_TERMINAL_DEBUG_IF (TERMINAL_DEBUG_ACCELS)<span class='macro_popup'>if (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1043"><td class="num" id="LN1043">1043</td><td class="line"> <span class='macro'>g_signal_connect (tree, <span class='string_literal'>"row-changed"</span>, G_CALLBACK (row_changed), NULL)<span class='macro_popup'>g_signal_connect_data ((tree), ("row-changed"), (((GCallback)<br> (row_changed))), (((void*)0)), ((void*)0), (GConnectFlags) 0<br>)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1044"><td class="num" id="LN1044">1044</td><td class="line"><span class='directive'>#endif</span></td></tr>
+<tr class="codeline" data-linenumber="1045"><td class="num" id="LN1045">1045</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1046"><td class="num" id="LN1046">1046</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; <span class='macro'>G_N_ELEMENTS (all_entries)<span class='macro_popup'>(sizeof (all_entries) / sizeof ((all_entries)[0]))</span></span>; ++i)</td></tr>
+<tr class="codeline" data-linenumber="1047"><td class="num" id="LN1047">1047</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1048"><td class="num" id="LN1048">1048</td><td class="line"> GtkTreeIter parent_iter;</td></tr>
+<tr class="codeline" data-linenumber="1049"><td class="num" id="LN1049">1049</td><td class="line"> guint j;</td></tr>
+<tr class="codeline" data-linenumber="1050"><td class="num" id="LN1050">1050</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1051"><td class="num" id="LN1051">1051</td><td class="line"> gtk_tree_store_append (tree, &amp;parent_iter, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1052"><td class="num" id="LN1052">1052</td><td class="line"> gtk_tree_store_set (tree, &amp;parent_iter,</td></tr>
+<tr class="codeline" data-linenumber="1053"><td class="num" id="LN1053">1053</td><td class="line"> ACTION_COLUMN, <span class='macro'>_(all_entries[i].user_visible_name)<span class='macro_popup'>gettext (all_entries[i].user_visible_name)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1054"><td class="num" id="LN1054">1054</td><td class="line"> -1);</td></tr>
+<tr class="codeline" data-linenumber="1055"><td class="num" id="LN1055">1055</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1056"><td class="num" id="LN1056">1056</td><td class="line"> <span class='keyword'>for</span> (j = 0; j &lt; all_entries[i].n_elements; ++j)</td></tr>
+<tr class="codeline" data-linenumber="1057"><td class="num" id="LN1057">1057</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1058"><td class="num" id="LN1058">1058</td><td class="line"> KeyEntry *key_entry = &amp;(all_entries[i].key_entry[j]);</td></tr>
+<tr class="codeline" data-linenumber="1059"><td class="num" id="LN1059">1059</td><td class="line"> GtkTreeIter iter;</td></tr>
+<tr class="codeline" data-linenumber="1060"><td class="num" id="LN1060">1060</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1061"><td class="num" id="LN1061">1061</td><td class="line"> gtk_tree_store_insert_with_values (tree, &amp;iter, &amp;parent_iter, -1,</td></tr>
+<tr class="codeline" data-linenumber="1062"><td class="num" id="LN1062">1062</td><td class="line"> ACTION_COLUMN, <span class='macro'>_(key_entry-&gt;user_visible_name)<span class='macro_popup'>gettext (key_entry-&gt;user_visible_name)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1063"><td class="num" id="LN1063">1063</td><td class="line"> KEYVAL_COLUMN, key_entry,</td></tr>
+<tr class="codeline" data-linenumber="1064"><td class="num" id="LN1064">1064</td><td class="line"> -1);</td></tr>
+<tr class="codeline" data-linenumber="1065"><td class="num" id="LN1065">1065</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1066"><td class="num" id="LN1066">1066</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1067"><td class="num" id="LN1067">1067</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1068"><td class="num" id="LN1068">1068</td><td class="line"> gtk_tree_sortable_set_sort_func (<span class='macro'>GTK_TREE_SORTABLE (tree)<span class='macro_popup'>((((GtkTreeSortable*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((tree)), ((gtk_tree_sortable_get_type ()))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1069"><td class="num" id="LN1069">1069</td><td class="line"> KEYVAL_COLUMN, accel_compare_func,</td></tr>
+<tr class="codeline" data-linenumber="1070"><td class="num" id="LN1070">1070</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1071"><td class="num" id="LN1071">1071</td><td class="line"> gtk_tree_sortable_set_sort_column_id (<span class='macro'>GTK_TREE_SORTABLE (tree)<span class='macro_popup'>((((GtkTreeSortable*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((tree)), ((gtk_tree_sortable_get_type ()))))))</span></span>, ACTION_COLUMN,</td></tr>
+<tr class="codeline" data-linenumber="1072"><td class="num" id="LN1072">1072</td><td class="line"> GTK_SORT_ASCENDING);</td></tr>
+<tr class="codeline" data-linenumber="1073"><td class="num" id="LN1073">1073</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1074"><td class="num" id="LN1074">1074</td><td class="line"> gtk_tree_view_set_model (<span class='macro'>GTK_TREE_VIEW (tree_view)<span class='macro_popup'>((((GtkTreeView*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((tree_view)), ((gtk_tree_view_get_type ()))))))</span></span>, <span class='macro'>GTK_TREE_MODEL (tree)<span class='macro_popup'>((((GtkTreeModel*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((tree)), ((gtk_tree_model_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1075"><td class="num" id="LN1075">1075</td><td class="line"> g_object_unref (tree);</td></tr>
+<tr class="codeline" data-linenumber="1076"><td class="num" id="LN1076">1076</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1077"><td class="num" id="LN1077">1077</td><td class="line"> gtk_tree_view_expand_all (<span class='macro'>GTK_TREE_VIEW (tree_view)<span class='macro_popup'>((((GtkTreeView*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((tree_view)), ((gtk_tree_view_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1078"><td class="num" id="LN1078">1078</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1079"><td class="num" id="LN1079">1079</td><td class="line"> <span class='macro'>g_signal_connect (notification_group, <span class='string_literal'>"accel-changed"</span>,<span class='macro_popup'>g_signal_connect_data ((notification_group), ("accel-changed"<br>), (((GCallback) (treeview_accel_changed_cb))), (tree), ((void<br>*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1080"><td class="num" id="LN1080">1080</td><td class="line"> <span class='macro'>G_CALLBACK (treeview_accel_changed_cb), tree)<span class='macro_popup'>g_signal_connect_data ((notification_group), ("accel-changed"<br>), (((GCallback) (treeview_accel_changed_cb))), (tree), ((void<br>*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1081"><td class="num" id="LN1081">1081</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1082"><td class="num" id="LN1082">1082</td><td class="line"> edit_keys_dialog = dialog;</td></tr>
+<tr class="codeline" data-linenumber="1083"><td class="num" id="LN1083">1083</td><td class="line"> <span class='macro'>g_signal_connect (dialog, <span class='string_literal'>"destroy"</span>,<span class='macro_popup'>g_signal_connect_data ((dialog), ("destroy"), (((GCallback) (<br>edit_keys_dialog_destroy_cb))), (tree), ((void*)0), (GConnectFlags<br>) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1084"><td class="num" id="LN1084">1084</td><td class="line"> <span class='macro'>G_CALLBACK (edit_keys_dialog_destroy_cb), tree)<span class='macro_popup'>g_signal_connect_data ((dialog), ("destroy"), (((GCallback) (<br>edit_keys_dialog_destroy_cb))), (tree), ((void*)0), (GConnectFlags<br>) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1085"><td class="num" id="LN1085">1085</td><td class="line"> <span class='macro'>g_signal_connect (dialog, <span class='string_literal'>"response"</span>,<span class='macro_popup'>g_signal_connect_data ((dialog), ("response"), (((GCallback) (<br>edit_keys_dialog_response_cb))), (((void*)0)), ((void*)0), (GConnectFlags<br>) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1086"><td class="num" id="LN1086">1086</td><td class="line"> <span class='macro'>G_CALLBACK (edit_keys_dialog_response_cb),<span class='macro_popup'>g_signal_connect_data ((dialog), ("response"), (((GCallback) (<br>edit_keys_dialog_response_cb))), (((void*)0)), ((void*)0), (GConnectFlags<br>) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1087"><td class="num" id="LN1087">1087</td><td class="line"> <span class='macro'>NULL)<span class='macro_popup'>g_signal_connect_data ((dialog), ("response"), (((GCallback) (<br>edit_keys_dialog_response_cb))), (((void*)0)), ((void*)0), (GConnectFlags<br>) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1088"><td class="num" id="LN1088">1088</td><td class="line"> gtk_window_set_default_size (<span class='macro'>GTK_WINDOW (dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((dialog)), ((gtk_window_get_type ()))))))</span></span>, -1, 350);</td></tr>
+<tr class="codeline" data-linenumber="1089"><td class="num" id="LN1089">1089</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1090"><td class="num" id="LN1090">1090</td><td class="line">done:</td></tr>
+<tr class="codeline" data-linenumber="1091"><td class="num" id="LN1091">1091</td><td class="line"> gtk_window_set_transient_for (<span class='macro'>GTK_WINDOW (edit_keys_dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((edit_keys_dialog)), ((gtk_window_get_type ()))))))</span></span>, transient_parent);</td></tr>
+<tr class="codeline" data-linenumber="1092"><td class="num" id="LN1092">1092</td><td class="line"> gtk_window_present (<span class='macro'>GTK_WINDOW (edit_keys_dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((edit_keys_dialog)), ((gtk_window_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1093"><td class="num" id="LN1093">1093</td><td class="line">}</td></tr>
+</table></body></html>
diff --git a/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-8ae438.html b/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-8ae438.html
new file mode 100644
index 0000000..d59c1eb
--- /dev/null
+++ b/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-8ae438.html
@@ -0,0 +1,1773 @@
+<!doctype html>
+<html>
+<head>
+<title>terminal-accels.c</title>
+
+<style type="text/css">
+body { color:#000000; background-color:#ffffff }
+body { font-family:Helvetica, sans-serif; font-size:10pt }
+h1 { font-size:14pt }
+.FileName { margin-top: 5px; margin-bottom: 5px; display: inline; }
+.FileNav { margin-left: 5px; margin-right: 5px; display: inline; }
+.FileNav a { text-decoration:none; font-size: larger; }
+.divider { margin-top: 30px; margin-bottom: 30px; height: 15px; }
+.divider { background-color: gray; }
+.code { border-collapse:collapse; width:100%; }
+.code { font-family: "Monospace", monospace; font-size:10pt }
+.code { line-height: 1.2em }
+.comment { color: green; font-style: oblique }
+.keyword { color: blue }
+.string_literal { color: red }
+.directive { color: darkmagenta }
+
+/* Macros and variables could have pop-up notes hidden by default.
+ - Macro pop-up: expansion of the macro
+ - Variable pop-up: value (table) of the variable */
+.macro_popup, .variable_popup { display: none; }
+
+/* Pop-up appears on mouse-hover event. */
+.macro:hover .macro_popup, .variable:hover .variable_popup {
+ display: block;
+ padding: 2px;
+ -webkit-border-radius:5px;
+ -webkit-box-shadow:1px 1px 7px #000;
+ border-radius:5px;
+ box-shadow:1px 1px 7px #000;
+ position: absolute;
+ top: -1em;
+ left:10em;
+ z-index: 1
+}
+
+.macro_popup {
+ border: 2px solid red;
+ background-color:#FFF0F0;
+ font-weight: normal;
+}
+
+.variable_popup {
+ border: 2px solid blue;
+ background-color:#F0F0FF;
+ font-weight: bold;
+ font-family: Helvetica, sans-serif;
+ font-size: 9pt;
+}
+
+/* Pop-up notes needs a relative position as a base where they pops up. */
+.macro, .variable {
+ background-color: PaleGoldenRod;
+ position: relative;
+}
+.macro { color: DarkMagenta; }
+
+#tooltiphint {
+ position: fixed;
+ width: 50em;
+ margin-left: -25em;
+ left: 50%;
+ padding: 10px;
+ border: 1px solid #b0b0b0;
+ border-radius: 2px;
+ box-shadow: 1px 1px 7px black;
+ background-color: #c0c0c0;
+ z-index: 2;
+}
+
+.num { width:2.5em; padding-right:2ex; background-color:#eeeeee }
+.num { text-align:right; font-size:8pt }
+.num { color:#444444 }
+.line { padding-left: 1ex; border-left: 3px solid #ccc }
+.line { white-space: pre }
+.msg { -webkit-box-shadow:1px 1px 7px #000 }
+.msg { box-shadow:1px 1px 7px #000 }
+.msg { -webkit-border-radius:5px }
+.msg { border-radius:5px }
+.msg { font-family:Helvetica, sans-serif; font-size:8pt }
+.msg { float:left }
+.msg { position:relative }
+.msg { padding:0.25em 1ex 0.25em 1ex }
+.msg { margin-top:10px; margin-bottom:10px }
+.msg { font-weight:bold }
+.msg { max-width:60em; word-wrap: break-word; white-space: pre-wrap }
+.msgT { padding:0x; spacing:0x }
+.msgEvent { background-color:#fff8b4; color:#000000 }
+.msgControl { background-color:#bbbbbb; color:#000000 }
+.msgNote { background-color:#ddeeff; color:#000000 }
+.mrange { background-color:#dfddf3 }
+.mrange { border-bottom:1px solid #6F9DBE }
+.PathIndex { font-weight: bold; padding:0px 5px; margin-right:5px; }
+.PathIndex { -webkit-border-radius:8px }
+.PathIndex { border-radius:8px }
+.PathIndexEvent { background-color:#bfba87 }
+.PathIndexControl { background-color:#8c8c8c }
+.PathIndexPopUp { background-color: #879abc; }
+.PathNav a { text-decoration:none; font-size: larger }
+.CodeInsertionHint { font-weight: bold; background-color: #10dd10 }
+.CodeRemovalHint { background-color:#de1010 }
+.CodeRemovalHint { border-bottom:1px solid #6F9DBE }
+.msg.selected{ background-color:orange !important; }
+
+table.simpletable {
+ padding: 5px;
+ font-size:12pt;
+ margin:20px;
+ border-collapse: collapse; border-spacing: 0px;
+}
+td.rowname {
+ text-align: right;
+ vertical-align: top;
+ font-weight: bold;
+ color:#444444;
+ padding-right:2ex;
+}
+
+/* Hidden text. */
+input.spoilerhider + label {
+ cursor: pointer;
+ text-decoration: underline;
+ display: block;
+}
+input.spoilerhider {
+ display: none;
+}
+input.spoilerhider ~ .spoiler {
+ overflow: hidden;
+ margin: 10px auto 0;
+ height: 0;
+ opacity: 0;
+}
+input.spoilerhider:checked + label + .spoiler{
+ height: auto;
+ opacity: 1;
+}
+</style>
+</head>
+<body>
+<!-- BUGDESC Casting a non-structure type to a structure type and accessing a field can lead to memory access errors or data corruption -->
+
+<!-- BUGTYPE Cast from non-struct type to struct type -->
+
+<!-- BUGCATEGORY Logic error -->
+
+<!-- BUGFILE /rootdir/src/terminal-accels.c -->
+
+<!-- FILENAME terminal-accels.c -->
+
+<!-- FUNCTIONNAME binding_from_value -->
+
+<!-- ISSUEHASHCONTENTOFLINEINCONTEXT 8ae4388c67c218f33590d1a7692031ca -->
+
+<!-- BUGLINE 656 -->
+
+<!-- BUGCOLUMN 36 -->
+
+<!-- BUGPATHLENGTH 1 -->
+
+<!-- BUGMETAEND -->
+<!-- REPORTHEADER -->
+<h3>Bug Summary</h3>
+<table class="simpletable">
+<tr><td class="rowname">File:</td><td>terminal-accels.c</td></tr>
+<tr><td class="rowname">Warning:</td><td><a href="#EndPath">line 656, column 36</a><br />Casting a non-structure type to a structure type and accessing a field can lead to memory access errors or data corruption</td></tr>
+
+</table>
+<!-- REPORTSUMMARYEXTRA -->
+<h3>Annotated Source Code</h3>
+<p>Press <a href="#" onclick="toggleHelp(); return false;">'?'</a>
+ to see keyboard shortcuts</p>
+<input type="checkbox" class="spoilerhider" id="showinvocation" />
+<label for="showinvocation" >Show analyzer invocation</label>
+<div class="spoiler">clang -cc1 -cc1 -triple x86_64-redhat-linux-gnu -analyze -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name terminal-accels.c -analyzer-checker=core -analyzer-checker=apiModeling -analyzer-checker=unix -analyzer-checker=deadcode -analyzer-checker=security.insecureAPI.UncheckedReturn -analyzer-checker=security.insecureAPI.getpw -analyzer-checker=security.insecureAPI.gets -analyzer-checker=security.insecureAPI.mktemp -analyzer-checker=security.insecureAPI.mkstemp -analyzer-checker=security.insecureAPI.vfork -analyzer-checker=nullability.NullPassedToNonnull -analyzer-checker=nullability.NullReturnedFromNonnull -analyzer-output plist -w -setup-static-analyzer -mrelocation-model static -mframe-pointer=all -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -tune-cpu generic -debugger-tuning=gdb -fcoverage-compilation-dir=/rootdir/src -resource-dir /usr/bin/../lib/clang/17 -D HAVE_CONFIG_H -I . -I .. -I ../src/mate-submodules/libegg -D TERMINAL_COMPILATION -D TERMINAL_RESOURCES_PATH_PREFIX="/org/mate/terminal" -D TERM_DATADIR="/usr/local/share" -D TERM_LOCALEDIR="/usr/local/share/locale" -D TERM_PKGDATADIR="/usr/local/share/mate-terminal" -D TERM_HELPDIR="/usr/local/share/help" -D SN_API_NOT_YET_FROZEN -D GDK_MULTIHEAD_SAFE -D G_DISABLE_SINGLE_INCLUDES -D PANGO_DISABLE_SINGLE_INCLUDES -D ATK_DISABLE_SINGLE_INCLUDES -D GDK_DISABLE_SINGLE_INCLUDES -D GDK_PIXBUF_DISABLE_SINGLE_INCLUDES -D GTK_DISABLE_SINGLE_INCLUDES -I /usr/include/dconf -I /usr/include/vte-2.91 -I /usr/include/pango-1.0 -I /usr/include/gtk-3.0 -I /usr/include/gdk-pixbuf-2.0 -I /usr/include/cairo -I /usr/include/dbus-1.0 -I /usr/lib64/dbus-1.0/include -I /usr/include/atk-1.0 -I /usr/include/harfbuzz -I /usr/include/freetype2 -I /usr/include/glib-2.0 -I /usr/lib64/glib-2.0/include -I /usr/include/cloudproviders -I /usr/include/at-spi2-atk/2.0 -I /usr/include/at-spi-2.0 -I /usr/include/blkid -I /usr/include/gio-unix-2.0 -I /usr/include/pixman-1 -I /usr/include/libmount -I /usr/include/libxml2 -I /usr/include/fribidi -I /usr/include/libpng16 -I /usr/include/sysprof-6 -internal-isystem /usr/bin/../lib/clang/17/include -internal-isystem /usr/local/include -internal-isystem /usr/bin/../lib/gcc/x86_64-redhat-linux/13/../../../../x86_64-redhat-linux/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -Wno-unused-parameter -fdebug-compilation-dir=/rootdir/src -ferror-limit 19 -fgnuc-version=4.2.1 -analyzer-checker deadcode.DeadStores -analyzer-checker alpha.deadcode.UnreachableCode -analyzer-checker alpha.core.CastSize -analyzer-checker alpha.core.CastToStruct -analyzer-checker alpha.core.IdenticalExpr -analyzer-checker alpha.core.SizeofPtr -analyzer-checker alpha.security.ArrayBoundV2 -analyzer-checker alpha.security.MallocOverflow -analyzer-checker alpha.security.ReturnPtrRange -analyzer-checker alpha.unix.SimpleStream -analyzer-checker alpha.unix.cstring.BufferOverlap -analyzer-checker alpha.unix.cstring.NotNullTerminated -analyzer-checker alpha.unix.cstring.OutOfBounds -analyzer-checker alpha.core.FixedAddr -analyzer-checker security.insecureAPI.strcpy -analyzer-output=html -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /rootdir/html-report/2024-02-18-131424-5067-1 -x c terminal-accels.c
+</div>
+<div id='tooltiphint' hidden="true">
+ <p>Keyboard shortcuts: </p>
+ <ul>
+ <li>Use 'j/k' keys for keyboard navigation</li>
+ <li>Use 'Shift+S' to show/hide relevant lines</li>
+ <li>Use '?' to toggle this window</li>
+ </ul>
+ <a href="#" onclick="toggleHelp(); return false;">Close</a>
+</div>
+<script type='text/javascript'>
+var relevant_lines = {"1": {"656": 1}};
+
+var filterCounterexample = function (hide) {
+ var tables = document.getElementsByClassName("code");
+ for (var t=0; t<tables.length; t++) {
+ var table = tables[t];
+ var file_id = table.getAttribute("data-fileid");
+ var lines_in_fid = relevant_lines[file_id];
+ if (!lines_in_fid) {
+ lines_in_fid = {};
+ }
+ var lines = table.getElementsByClassName("codeline");
+ for (var i=0; i<lines.length; i++) {
+ var el = lines[i];
+ var lineNo = el.getAttribute("data-linenumber");
+ if (!lines_in_fid[lineNo]) {
+ if (hide) {
+ el.setAttribute("hidden", "");
+ } else {
+ el.removeAttribute("hidden");
+ }
+ }
+ }
+ }
+}
+
+window.addEventListener("keydown", function (event) {
+ if (event.defaultPrevented) {
+ return;
+ }
+ // SHIFT + S
+ if (event.shiftKey && event.keyCode == 83) {
+ var checked = document.getElementsByName("showCounterexample")[0].checked;
+ filterCounterexample(!checked);
+ document.getElementsByName("showCounterexample")[0].click();
+ } else {
+ return;
+ }
+ event.preventDefault();
+}, true);
+
+document.addEventListener("DOMContentLoaded", function() {
+ document.querySelector('input[name="showCounterexample"]').onchange=
+ function (event) {
+ filterCounterexample(this.checked);
+ };
+});
+</script>
+
+<form>
+ <input type="checkbox" name="showCounterexample" id="showCounterexample" />
+ <label for="showCounterexample">
+ Show only relevant lines
+ </label>
+ <input type="checkbox" name="showArrows"
+ id="showArrows" style="margin-left: 10px" />
+ <label for="showArrows">
+ Show control flow arrows
+ </label>
+</form>
+
+<script type='text/javascript'>
+// Return range of numbers from a range [lower, upper).
+function range(lower, upper) {
+ var array = [];
+ for (var i = lower; i <= upper; ++i) {
+ array.push(i);
+ }
+ return array;
+}
+
+var getRelatedArrowIndices = function(pathId) {
+ // HTML numeration of events is a bit different than it is in the path.
+ // Everything is rotated one step to the right, so the last element
+ // (error diagnostic) has index 0.
+ if (pathId == 0) {
+ // arrowIndices has at least 2 elements
+ pathId = arrowIndices.length - 1;
+ }
+
+ return range(arrowIndices[pathId], arrowIndices[pathId - 1]);
+}
+
+var highlightArrowsForSelectedEvent = function() {
+ const selectedNum = findNum();
+ const arrowIndicesToHighlight = getRelatedArrowIndices(selectedNum);
+ arrowIndicesToHighlight.forEach((index) => {
+ var arrow = document.querySelector("#arrow" + index);
+ if(arrow) {
+ classListAdd(arrow, "selected")
+ }
+ });
+}
+
+var getAbsoluteBoundingRect = function(element) {
+ const relative = element.getBoundingClientRect();
+ return {
+ left: relative.left + window.pageXOffset,
+ right: relative.right + window.pageXOffset,
+ top: relative.top + window.pageYOffset,
+ bottom: relative.bottom + window.pageYOffset,
+ height: relative.height,
+ width: relative.width
+ };
+}
+
+var drawArrow = function(index) {
+ // This function is based on the great answer from SO:
+ // https://stackoverflow.com/a/39575674/11582326
+ var start = document.querySelector("#start" + index);
+ var end = document.querySelector("#end" + index);
+ var arrow = document.querySelector("#arrow" + index);
+
+ var startRect = getAbsoluteBoundingRect(start);
+ var endRect = getAbsoluteBoundingRect(end);
+
+ // It is an arrow from a token to itself, no need to visualize it.
+ if (startRect.top == endRect.top &&
+ startRect.left == endRect.left)
+ return;
+
+ // Each arrow is a very simple Bézier curve, with two nodes and
+ // two handles. So, we need to calculate four points in the window:
+ // * start node
+ var posStart = { x: 0, y: 0 };
+ // * end node
+ var posEnd = { x: 0, y: 0 };
+ // * handle for the start node
+ var startHandle = { x: 0, y: 0 };
+ // * handle for the end node
+ var endHandle = { x: 0, y: 0 };
+ // One can visualize it as follows:
+ //
+ // start handle
+ // /
+ // X"""_.-""""X
+ // .' \
+ // / start node
+ // |
+ // |
+ // | end node
+ // \ /
+ // `->X
+ // X-'
+ // \
+ // end handle
+ //
+ // NOTE: (0, 0) is the top left corner of the window.
+
+ // We have 3 similar, but still different scenarios to cover:
+ //
+ // 1. Two tokens on different lines.
+ // -xxx
+ // /
+ // \
+ // -> xxx
+ // In this situation, we draw arrow on the left curving to the left.
+ // 2. Two tokens on the same line, and the destination is on the right.
+ // ____
+ // / \
+ // / V
+ // xxx xxx
+ // In this situation, we draw arrow above curving upwards.
+ // 3. Two tokens on the same line, and the destination is on the left.
+ // xxx xxx
+ // ^ /
+ // \____/
+ // In this situation, we draw arrow below curving downwards.
+ const onDifferentLines = startRect.top <= endRect.top - 5 ||
+ startRect.top >= endRect.top + 5;
+ const leftToRight = startRect.left < endRect.left;
+
+ // NOTE: various magic constants are chosen empirically for
+ // better positioning and look
+ if (onDifferentLines) {
+ // Case #1
+ const topToBottom = startRect.top < endRect.top;
+ posStart.x = startRect.left - 1;
+ // We don't want to start it at the top left corner of the token,
+ // it doesn't feel like this is where the arrow comes from.
+ // For this reason, we start it in the middle of the left side
+ // of the token.
+ posStart.y = startRect.top + startRect.height / 2;
+
+ // End node has arrow head and we give it a bit more space.
+ posEnd.x = endRect.left - 4;
+ posEnd.y = endRect.top;
+
+ // Utility object with x and y offsets for handles.
+ var curvature = {
+ // We want bottom-to-top arrow to curve a bit more, so it doesn't
+ // overlap much with top-to-bottom curves (much more frequent).
+ x: topToBottom ? 15 : 25,
+ y: Math.min((posEnd.y - posStart.y) / 3, 10)
+ }
+
+ // When destination is on the different line, we can make a
+ // curvier arrow because we have space for it.
+ // So, instead of using
+ //
+ // startHandle.x = posStart.x - curvature.x
+ // endHandle.x = posEnd.x - curvature.x
+ //
+ // We use the leftmost of these two values for both handles.
+ startHandle.x = Math.min(posStart.x, posEnd.x) - curvature.x;
+ endHandle.x = startHandle.x;
+
+ // Curving downwards from the start node...
+ startHandle.y = posStart.y + curvature.y;
+ // ... and upwards from the end node.
+ endHandle.y = posEnd.y - curvature.y;
+
+ } else if (leftToRight) {
+ // Case #2
+ // Starting from the top right corner...
+ posStart.x = startRect.right - 1;
+ posStart.y = startRect.top;
+
+ // ...and ending at the top left corner of the end token.
+ posEnd.x = endRect.left + 1;
+ posEnd.y = endRect.top - 1;
+
+ // Utility object with x and y offsets for handles.
+ var curvature = {
+ x: Math.min((posEnd.x - posStart.x) / 3, 15),
+ y: 5
+ }
+
+ // Curving to the right...
+ startHandle.x = posStart.x + curvature.x;
+ // ... and upwards from the start node.
+ startHandle.y = posStart.y - curvature.y;
+
+ // And to the left...
+ endHandle.x = posEnd.x - curvature.x;
+ // ... and upwards from the end node.
+ endHandle.y = posEnd.y - curvature.y;
+
+ } else {
+ // Case #3
+ // Starting from the bottom right corner...
+ posStart.x = startRect.right;
+ posStart.y = startRect.bottom;
+
+ // ...and ending also at the bottom right corner, but of the end token.
+ posEnd.x = endRect.right - 1;
+ posEnd.y = endRect.bottom + 1;
+
+ // Utility object with x and y offsets for handles.
+ var curvature = {
+ x: Math.min((posStart.x - posEnd.x) / 3, 15),
+ y: 5
+ }
+
+ // Curving to the left...
+ startHandle.x = posStart.x - curvature.x;
+ // ... and downwards from the start node.
+ startHandle.y = posStart.y + curvature.y;
+
+ // And to the right...
+ endHandle.x = posEnd.x + curvature.x;
+ // ... and downwards from the end node.
+ endHandle.y = posEnd.y + curvature.y;
+ }
+
+ // Put it all together into a path.
+ // More information on the format:
+ // https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths
+ var pathStr = "M" + posStart.x + "," + posStart.y + " " +
+ "C" + startHandle.x + "," + startHandle.y + " " +
+ endHandle.x + "," + endHandle.y + " " +
+ posEnd.x + "," + posEnd.y;
+
+ arrow.setAttribute("d", pathStr);
+};
+
+var drawArrows = function() {
+ const numOfArrows = document.querySelectorAll("path[id^=arrow]").length;
+ for (var i = 0; i < numOfArrows; ++i) {
+ drawArrow(i);
+ }
+}
+
+var toggleArrows = function(event) {
+ const arrows = document.querySelector("#arrows");
+ if (event.target.checked) {
+ arrows.setAttribute("visibility", "visible");
+ } else {
+ arrows.setAttribute("visibility", "hidden");
+ }
+}
+
+window.addEventListener("resize", drawArrows);
+document.addEventListener("DOMContentLoaded", function() {
+ // Whenever we show invocation, locations change, i.e. we
+ // need to redraw arrows.
+ document
+ .querySelector('input[id="showinvocation"]')
+ .addEventListener("click", drawArrows);
+ // Hiding irrelevant lines also should cause arrow rerender.
+ document
+ .querySelector('input[name="showCounterexample"]')
+ .addEventListener("change", drawArrows);
+ document
+ .querySelector('input[name="showArrows"]')
+ .addEventListener("change", toggleArrows);
+ drawArrows();
+ // Default highlighting for the last event.
+ highlightArrowsForSelectedEvent();
+});
+</script>
+
+<script type='text/javascript'>
+var digitMatcher = new RegExp("[0-9]+");
+
+var querySelectorAllArray = function(selector) {
+ return Array.prototype.slice.call(
+ document.querySelectorAll(selector));
+}
+
+document.addEventListener("DOMContentLoaded", function() {
+ querySelectorAllArray(".PathNav > a").forEach(
+ function(currentValue, currentIndex) {
+ var hrefValue = currentValue.getAttribute("href");
+ currentValue.onclick = function() {
+ scrollTo(document.querySelector(hrefValue));
+ return false;
+ };
+ });
+});
+
+var findNum = function() {
+ var s = document.querySelector(".msg.selected");
+ if (!s || s.id == "EndPath") {
+ return 0;
+ }
+ var out = parseInt(digitMatcher.exec(s.id)[0]);
+ return out;
+};
+
+var classListAdd = function(el, theClass) {
+ if(!el.className.baseVal)
+ el.className += " " + theClass;
+ else
+ el.className.baseVal += " " + theClass;
+};
+
+var classListRemove = function(el, theClass) {
+ var className = (!el.className.baseVal) ?
+ el.className : el.className.baseVal;
+ className = className.replace(" " + theClass, "");
+ if(!el.className.baseVal)
+ el.className = className;
+ else
+ el.className.baseVal = className;
+};
+
+var scrollTo = function(el) {
+ querySelectorAllArray(".selected").forEach(function(s) {
+ classListRemove(s, "selected");
+ });
+ classListAdd(el, "selected");
+ window.scrollBy(0, el.getBoundingClientRect().top -
+ (window.innerHeight / 2));
+ highlightArrowsForSelectedEvent();
+};
+
+var move = function(num, up, numItems) {
+ if (num == 1 && up || num == numItems - 1 && !up) {
+ return 0;
+ } else if (num == 0 && up) {
+ return numItems - 1;
+ } else if (num == 0 && !up) {
+ return 1 % numItems;
+ }
+ return up ? num - 1 : num + 1;
+}
+
+var numToId = function(num) {
+ if (num == 0) {
+ return document.getElementById("EndPath")
+ }
+ return document.getElementById("Path" + num);
+};
+
+var navigateTo = function(up) {
+ var numItems = document.querySelectorAll(
+ ".line > .msgEvent, .line > .msgControl").length;
+ var currentSelected = findNum();
+ var newSelected = move(currentSelected, up, numItems);
+ var newEl = numToId(newSelected, numItems);
+
+ // Scroll element into center.
+ scrollTo(newEl);
+};
+
+window.addEventListener("keydown", function (event) {
+ if (event.defaultPrevented) {
+ return;
+ }
+ // key 'j'
+ if (event.keyCode == 74) {
+ navigateTo(/*up=*/false);
+ // key 'k'
+ } else if (event.keyCode == 75) {
+ navigateTo(/*up=*/true);
+ } else {
+ return;
+ }
+ event.preventDefault();
+}, true);
+</script>
+
+<script type='text/javascript'>
+
+var toggleHelp = function() {
+ var hint = document.querySelector("#tooltiphint");
+ var attributeName = "hidden";
+ if (hint.hasAttribute(attributeName)) {
+ hint.removeAttribute(attributeName);
+ } else {
+ hint.setAttribute("hidden", "true");
+ }
+};
+window.addEventListener("keydown", function (event) {
+ if (event.defaultPrevented) {
+ return;
+ }
+ if (event.key == "?") {
+ toggleHelp();
+ } else {
+ return;
+ }
+ event.preventDefault();
+});
+</script>
+
+<style type="text/css">
+ svg {
+ position:absolute;
+ top:0;
+ left:0;
+ height:100%;
+ width:100%;
+ pointer-events: none;
+ overflow: visible
+ }
+ .arrow {
+ stroke-opacity: 0.2;
+ stroke-width: 1;
+ marker-end: url(#arrowhead);
+ }
+
+ .arrow.selected {
+ stroke-opacity: 0.6;
+ stroke-width: 2;
+ marker-end: url(#arrowheadSelected);
+ }
+
+ .arrowhead {
+ orient: auto;
+ stroke: none;
+ opacity: 0.6;
+ fill: blue;
+ }
+</style>
+<svg xmlns="http://www.w3.org/2000/svg">
+ <defs>
+ <marker id="arrowheadSelected" class="arrowhead" opacity="0.6"
+ viewBox="0 0 10 10" refX="3" refY="5"
+ markerWidth="4" markerHeight="4">
+ <path d="M 0 0 L 10 5 L 0 10 z" />
+ </marker>
+ <marker id="arrowhead" class="arrowhead" opacity="0.2"
+ viewBox="0 0 10 10" refX="3" refY="5"
+ markerWidth="4" markerHeight="4">
+ <path d="M 0 0 L 10 5 L 0 10 z" />
+ </marker>
+ </defs>
+ <g id="arrows" fill="none" stroke="blue" visibility="hidden">
+
+ </g>
+</svg>
+<script type='text/javascript'>
+const arrowIndices = [ 0,0 ]
+</script>
+<table class="code" data-fileid="1">
+<tr class="codeline" data-linenumber="1"><td class="num" id="LN1">1</td><td class="line"><span class='comment'>/*</span></td></tr>
+<tr class="codeline" data-linenumber="2"><td class="num" id="LN2">2</td><td class="line"> <span class='comment'>* Copyright © 2001, 2002 Havoc Pennington, Red Hat Inc.</span></td></tr>
+<tr class="codeline" data-linenumber="3"><td class="num" id="LN3">3</td><td class="line"> <span class='comment'>* Copyright © 2008 Christian Persch</span></td></tr>
+<tr class="codeline" data-linenumber="4"><td class="num" id="LN4">4</td><td class="line"> <span class='comment'>* Copyright (C) 2012-2021 MATE Developers</span></td></tr>
+<tr class="codeline" data-linenumber="5"><td class="num" id="LN5">5</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="6"><td class="num" id="LN6">6</td><td class="line"> <span class='comment'>* Mate-terminal is free software; you can redistribute it and/or modify</span></td></tr>
+<tr class="codeline" data-linenumber="7"><td class="num" id="LN7">7</td><td class="line"> <span class='comment'>* it under the terms of the GNU General Public License as published by</span></td></tr>
+<tr class="codeline" data-linenumber="8"><td class="num" id="LN8">8</td><td class="line"> <span class='comment'>* the Free Software Foundation; either version 3 of the License, or</span></td></tr>
+<tr class="codeline" data-linenumber="9"><td class="num" id="LN9">9</td><td class="line"> <span class='comment'>* (at your option) any later version.</span></td></tr>
+<tr class="codeline" data-linenumber="10"><td class="num" id="LN10">10</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="11"><td class="num" id="LN11">11</td><td class="line"> <span class='comment'>* Mate-terminal is distributed in the hope that it will be useful,</span></td></tr>
+<tr class="codeline" data-linenumber="12"><td class="num" id="LN12">12</td><td class="line"> <span class='comment'>* but WITHOUT ANY WARRANTY; without even the implied warranty of</span></td></tr>
+<tr class="codeline" data-linenumber="13"><td class="num" id="LN13">13</td><td class="line"> <span class='comment'>* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></td></tr>
+<tr class="codeline" data-linenumber="14"><td class="num" id="LN14">14</td><td class="line"> <span class='comment'>* GNU General Public License for more details.</span></td></tr>
+<tr class="codeline" data-linenumber="15"><td class="num" id="LN15">15</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="16"><td class="num" id="LN16">16</td><td class="line"> <span class='comment'>* You should have received a copy of the GNU General Public License</span></td></tr>
+<tr class="codeline" data-linenumber="17"><td class="num" id="LN17">17</td><td class="line"> <span class='comment'>* along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.</span></td></tr>
+<tr class="codeline" data-linenumber="18"><td class="num" id="LN18">18</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="19"><td class="num" id="LN19">19</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="20"><td class="num" id="LN20">20</td><td class="line"><span class='directive'>#include &lt;config.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="21"><td class="num" id="LN21">21</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="22"><td class="num" id="LN22">22</td><td class="line"><span class='directive'>#include &lt;string.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="23"><td class="num" id="LN23">23</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="24"><td class="num" id="LN24">24</td><td class="line"><span class='directive'>#include &lt;gdk/gdkkeysyms.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="25"><td class="num" id="LN25">25</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="26"><td class="num" id="LN26">26</td><td class="line"><span class='directive'>#include "terminal-accels.h"</span></td></tr>
+<tr class="codeline" data-linenumber="27"><td class="num" id="LN27">27</td><td class="line"><span class='directive'>#include "terminal-app.h"</span></td></tr>
+<tr class="codeline" data-linenumber="28"><td class="num" id="LN28">28</td><td class="line"><span class='directive'>#include "terminal-debug.h"</span></td></tr>
+<tr class="codeline" data-linenumber="29"><td class="num" id="LN29">29</td><td class="line"><span class='directive'>#include "terminal-intl.h"</span></td></tr>
+<tr class="codeline" data-linenumber="30"><td class="num" id="LN30">30</td><td class="line"><span class='directive'>#include "terminal-profile.h"</span></td></tr>
+<tr class="codeline" data-linenumber="31"><td class="num" id="LN31">31</td><td class="line"><span class='directive'>#include "terminal-util.h"</span></td></tr>
+<tr class="codeline" data-linenumber="32"><td class="num" id="LN32">32</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="33"><td class="num" id="LN33">33</td><td class="line"><span class='comment'>/* NOTES</span></td></tr>
+<tr class="codeline" data-linenumber="34"><td class="num" id="LN34">34</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="35"><td class="num" id="LN35">35</td><td class="line"> <span class='comment'>* There are two sources of keybindings changes, from GSettings and from</span></td></tr>
+<tr class="codeline" data-linenumber="36"><td class="num" id="LN36">36</td><td class="line"> <span class='comment'>* the accel map (happens with in-place menu editing).</span></td></tr>
+<tr class="codeline" data-linenumber="37"><td class="num" id="LN37">37</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="38"><td class="num" id="LN38">38</td><td class="line"> <span class='comment'>* When a keybinding GSettins key changes, we propagate that into the</span></td></tr>
+<tr class="codeline" data-linenumber="39"><td class="num" id="LN39">39</td><td class="line"> <span class='comment'>* accel map.</span></td></tr>
+<tr class="codeline" data-linenumber="40"><td class="num" id="LN40">40</td><td class="line"> <span class='comment'>* When the accel map changes, we queue a sync to GSettings.</span></td></tr>
+<tr class="codeline" data-linenumber="41"><td class="num" id="LN41">41</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="42"><td class="num" id="LN42">42</td><td class="line"> <span class='comment'>* To avoid infinite loops, we short-circuit in both directions</span></td></tr>
+<tr class="codeline" data-linenumber="43"><td class="num" id="LN43">43</td><td class="line"> <span class='comment'>* if the value is unchanged from last known.</span></td></tr>
+<tr class="codeline" data-linenumber="44"><td class="num" id="LN44">44</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="45"><td class="num" id="LN45">45</td><td class="line"> <span class='comment'>* In the keybinding editor, when editing or clearing an accel, we write</span></td></tr>
+<tr class="codeline" data-linenumber="46"><td class="num" id="LN46">46</td><td class="line"> <span class='comment'>* the change directly to GSettings and rely on the GSettings callback to</span></td></tr>
+<tr class="codeline" data-linenumber="47"><td class="num" id="LN47">47</td><td class="line"> <span class='comment'>* actually apply the change to the accel map.</span></td></tr>
+<tr class="codeline" data-linenumber="48"><td class="num" id="LN48">48</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="49"><td class="num" id="LN49">49</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="50"><td class="num" id="LN50">50</td><td class="line"><span class='directive'>#define <span class='macro'>ACCEL_PATH_ROOT<span class='macro_popup'>"&lt;Actions&gt;/Main/"</span></span> "&lt;Actions&gt;/Main/"</span></td></tr>
+<tr class="codeline" data-linenumber="51"><td class="num" id="LN51">51</td><td class="line"><span class='directive'>#define <span class='macro'>ACCEL_PATH_NEW_TAB<span class='macro_popup'>"&lt;Actions&gt;/Main/" "FileNewTab"</span></span> <span class='macro'>ACCEL_PATH_ROOT<span class='macro_popup'>"&lt;Actions&gt;/Main/"</span></span> "FileNewTab"</span></td></tr>
+<tr class="codeline" data-linenumber="52"><td class="num" id="LN52">52</td><td class="line"><span class='directive'>#define <span class='macro'>ACCEL_PATH_NEW_WINDOW<span class='macro_popup'>"&lt;Actions&gt;/Main/" "FileNewWindow"</span></span> <span class='macro'>ACCEL_PATH_ROOT<span class='macro_popup'>"&lt;Actions&gt;/Main/"</span></span> "FileNewWindow"</span></td></tr>
+<tr class="codeline" data-linenumber="53"><td class="num" id="LN53">53</td><td class="line"><span class='directive'>#define <span class='macro'>ACCEL_PATH_NEW_PROFILE<span class='macro_popup'>"&lt;Actions&gt;/Main/" "FileNewProfile"</span></span> <span class='macro'>ACCEL_PATH_ROOT<span class='macro_popup'>"&lt;Actions&gt;/Main/"</span></span> "FileNewProfile"</span></td></tr>
+<tr class="codeline" data-linenumber="54"><td class="num" id="LN54">54</td><td class="line"><span class='directive'>#define <span class='macro'>ACCEL_PATH_SAVE_CONTENTS<span class='macro_popup'>"&lt;Actions&gt;/Main/" "FileSaveContents"</span></span> <span class='macro'>ACCEL_PATH_ROOT<span class='macro_popup'>"&lt;Actions&gt;/Main/"</span></span> "FileSaveContents"</span></td></tr>
+<tr class="codeline" data-linenumber="55"><td class="num" id="LN55">55</td><td class="line"><span class='directive'>#define <span class='macro'>ACCEL_PATH_CLOSE_TAB<span class='macro_popup'>"&lt;Actions&gt;/Main/" "FileCloseTab"</span></span> <span class='macro'>ACCEL_PATH_ROOT<span class='macro_popup'>"&lt;Actions&gt;/Main/"</span></span> "FileCloseTab"</span></td></tr>
+<tr class="codeline" data-linenumber="56"><td class="num" id="LN56">56</td><td class="line"><span class='directive'>#define <span class='macro'>ACCEL_PATH_CLOSE_WINDOW<span class='macro_popup'>"&lt;Actions&gt;/Main/" "FileCloseWindow"</span></span> <span class='macro'>ACCEL_PATH_ROOT<span class='macro_popup'>"&lt;Actions&gt;/Main/"</span></span> "FileCloseWindow"</span></td></tr>
+<tr class="codeline" data-linenumber="57"><td class="num" id="LN57">57</td><td class="line"><span class='directive'>#define <span class='macro'>ACCEL_PATH_COPY<span class='macro_popup'>"&lt;Actions&gt;/Main/" "EditCopy"</span></span> <span class='macro'>ACCEL_PATH_ROOT<span class='macro_popup'>"&lt;Actions&gt;/Main/"</span></span> "EditCopy"</span></td></tr>
+<tr class="codeline" data-linenumber="58"><td class="num" id="LN58">58</td><td class="line"><span class='directive'>#define <span class='macro'>ACCEL_PATH_PASTE<span class='macro_popup'>"&lt;Actions&gt;/Main/" "EditPaste"</span></span> <span class='macro'>ACCEL_PATH_ROOT<span class='macro_popup'>"&lt;Actions&gt;/Main/"</span></span> "EditPaste"</span></td></tr>
+<tr class="codeline" data-linenumber="59"><td class="num" id="LN59">59</td><td class="line"><span class='directive'>#define <span class='macro'>ACCEL_PATH_SELECT_ALL<span class='macro_popup'>"&lt;Actions&gt;/Main/" "EditSelectAll"</span></span> <span class='macro'>ACCEL_PATH_ROOT<span class='macro_popup'>"&lt;Actions&gt;/Main/"</span></span> "EditSelectAll"</span></td></tr>
+<tr class="codeline" data-linenumber="60"><td class="num" id="LN60">60</td><td class="line"><span class='directive'>#define <span class='macro'>ACCEL_PATH_SEARCH_FIND<span class='macro_popup'>"&lt;Actions&gt;/Main/" "SearchFind"</span></span> <span class='macro'>ACCEL_PATH_ROOT<span class='macro_popup'>"&lt;Actions&gt;/Main/"</span></span> "SearchFind"</span></td></tr>
+<tr class="codeline" data-linenumber="61"><td class="num" id="LN61">61</td><td class="line"><span class='directive'>#define <span class='macro'>ACCEL_PATH_SEARCH_FIND_NEXT<span class='macro_popup'>"&lt;Actions&gt;/Main/" "SearchFindNext"</span></span> <span class='macro'>ACCEL_PATH_ROOT<span class='macro_popup'>"&lt;Actions&gt;/Main/"</span></span> "SearchFindNext"</span></td></tr>
+<tr class="codeline" data-linenumber="62"><td class="num" id="LN62">62</td><td class="line"><span class='directive'>#define <span class='macro'>ACCEL_PATH_SEARCH_FIND_PREVIOUS<span class='macro_popup'>"&lt;Actions&gt;/Main/" "SearchFindPrevious"</span></span> <span class='macro'>ACCEL_PATH_ROOT<span class='macro_popup'>"&lt;Actions&gt;/Main/"</span></span> "SearchFindPrevious"</span></td></tr>
+<tr class="codeline" data-linenumber="63"><td class="num" id="LN63">63</td><td class="line"><span class='directive'>#define <span class='macro'>ACCEL_PATH_TOGGLE_MENUBAR<span class='macro_popup'>"&lt;Actions&gt;/Main/" "ViewMenubar"</span></span> <span class='macro'>ACCEL_PATH_ROOT<span class='macro_popup'>"&lt;Actions&gt;/Main/"</span></span> "ViewMenubar"</span></td></tr>
+<tr class="codeline" data-linenumber="64"><td class="num" id="LN64">64</td><td class="line"><span class='directive'>#define <span class='macro'>ACCEL_PATH_FULL_SCREEN<span class='macro_popup'>"&lt;Actions&gt;/Main/" "ViewFullscreen"</span></span> <span class='macro'>ACCEL_PATH_ROOT<span class='macro_popup'>"&lt;Actions&gt;/Main/"</span></span> "ViewFullscreen"</span></td></tr>
+<tr class="codeline" data-linenumber="65"><td class="num" id="LN65">65</td><td class="line"><span class='directive'>#define <span class='macro'>ACCEL_PATH_RESET<span class='macro_popup'>"&lt;Actions&gt;/Main/" "TerminalReset"</span></span> <span class='macro'>ACCEL_PATH_ROOT<span class='macro_popup'>"&lt;Actions&gt;/Main/"</span></span> "TerminalReset"</span></td></tr>
+<tr class="codeline" data-linenumber="66"><td class="num" id="LN66">66</td><td class="line"><span class='directive'>#define <span class='macro'>ACCEL_PATH_RESET_AND_CLEAR<span class='macro_popup'>"&lt;Actions&gt;/Main/" "TerminalResetClear"</span></span> <span class='macro'>ACCEL_PATH_ROOT<span class='macro_popup'>"&lt;Actions&gt;/Main/"</span></span> "TerminalResetClear"</span></td></tr>
+<tr class="codeline" data-linenumber="67"><td class="num" id="LN67">67</td><td class="line"><span class='directive'>#define <span class='macro'>ACCEL_PATH_PREV_PROFILE<span class='macro_popup'>"&lt;Actions&gt;/Main/" "ProfilePrevious"</span></span> <span class='macro'>ACCEL_PATH_ROOT<span class='macro_popup'>"&lt;Actions&gt;/Main/"</span></span> "ProfilePrevious"</span></td></tr>
+<tr class="codeline" data-linenumber="68"><td class="num" id="LN68">68</td><td class="line"><span class='directive'>#define <span class='macro'>ACCEL_PATH_NEXT_PROFILE<span class='macro_popup'>"&lt;Actions&gt;/Main/" "ProfileNext"</span></span> <span class='macro'>ACCEL_PATH_ROOT<span class='macro_popup'>"&lt;Actions&gt;/Main/"</span></span> "ProfileNext"</span></td></tr>
+<tr class="codeline" data-linenumber="69"><td class="num" id="LN69">69</td><td class="line"><span class='directive'>#define <span class='macro'>ACCEL_PATH_PREV_TAB<span class='macro_popup'>"&lt;Actions&gt;/Main/" "TabsPrevious"</span></span> <span class='macro'>ACCEL_PATH_ROOT<span class='macro_popup'>"&lt;Actions&gt;/Main/"</span></span> "TabsPrevious"</span></td></tr>
+<tr class="codeline" data-linenumber="70"><td class="num" id="LN70">70</td><td class="line"><span class='directive'>#define <span class='macro'>ACCEL_PATH_NEXT_TAB<span class='macro_popup'>"&lt;Actions&gt;/Main/" "TabsNext"</span></span> <span class='macro'>ACCEL_PATH_ROOT<span class='macro_popup'>"&lt;Actions&gt;/Main/"</span></span> "TabsNext"</span></td></tr>
+<tr class="codeline" data-linenumber="71"><td class="num" id="LN71">71</td><td class="line"><span class='directive'>#define <span class='macro'>ACCEL_PATH_SET_TERMINAL_TITLE<span class='macro_popup'>"&lt;Actions&gt;/Main/" "TerminalSetTitle"</span></span> <span class='macro'>ACCEL_PATH_ROOT<span class='macro_popup'>"&lt;Actions&gt;/Main/"</span></span> "TerminalSetTitle"</span></td></tr>
+<tr class="codeline" data-linenumber="72"><td class="num" id="LN72">72</td><td class="line"><span class='directive'>#define <span class='macro'>ACCEL_PATH_HELP<span class='macro_popup'>"&lt;Actions&gt;/Main/" "HelpContents"</span></span> <span class='macro'>ACCEL_PATH_ROOT<span class='macro_popup'>"&lt;Actions&gt;/Main/"</span></span> "HelpContents"</span></td></tr>
+<tr class="codeline" data-linenumber="73"><td class="num" id="LN73">73</td><td class="line"><span class='directive'>#define <span class='macro'>ACCEL_PATH_ZOOM_IN<span class='macro_popup'>"&lt;Actions&gt;/Main/" "ViewZoomIn"</span></span> <span class='macro'>ACCEL_PATH_ROOT<span class='macro_popup'>"&lt;Actions&gt;/Main/"</span></span> "ViewZoomIn"</span></td></tr>
+<tr class="codeline" data-linenumber="74"><td class="num" id="LN74">74</td><td class="line"><span class='directive'>#define <span class='macro'>ACCEL_PATH_ZOOM_OUT<span class='macro_popup'>"&lt;Actions&gt;/Main/" "ViewZoomOut"</span></span> <span class='macro'>ACCEL_PATH_ROOT<span class='macro_popup'>"&lt;Actions&gt;/Main/"</span></span> "ViewZoomOut"</span></td></tr>
+<tr class="codeline" data-linenumber="75"><td class="num" id="LN75">75</td><td class="line"><span class='directive'>#define <span class='macro'>ACCEL_PATH_ZOOM_NORMAL<span class='macro_popup'>"&lt;Actions&gt;/Main/" "ViewZoom100"</span></span> <span class='macro'>ACCEL_PATH_ROOT<span class='macro_popup'>"&lt;Actions&gt;/Main/"</span></span> "ViewZoom100"</span></td></tr>
+<tr class="codeline" data-linenumber="76"><td class="num" id="LN76">76</td><td class="line"><span class='directive'>#define <span class='macro'>ACCEL_PATH_MOVE_TAB_LEFT<span class='macro_popup'>"&lt;Actions&gt;/Main/" "TabsMoveLeft"</span></span> <span class='macro'>ACCEL_PATH_ROOT<span class='macro_popup'>"&lt;Actions&gt;/Main/"</span></span> "TabsMoveLeft"</span></td></tr>
+<tr class="codeline" data-linenumber="77"><td class="num" id="LN77">77</td><td class="line"><span class='directive'>#define <span class='macro'>ACCEL_PATH_MOVE_TAB_RIGHT<span class='macro_popup'>"&lt;Actions&gt;/Main/" "TabsMoveRight"</span></span> <span class='macro'>ACCEL_PATH_ROOT<span class='macro_popup'>"&lt;Actions&gt;/Main/"</span></span> "TabsMoveRight"</span></td></tr>
+<tr class="codeline" data-linenumber="78"><td class="num" id="LN78">78</td><td class="line"><span class='directive'>#define <span class='macro'>ACCEL_PATH_DETACH_TAB<span class='macro_popup'>"&lt;Actions&gt;/Main/" "TabsDetach"</span></span> <span class='macro'>ACCEL_PATH_ROOT<span class='macro_popup'>"&lt;Actions&gt;/Main/"</span></span> "TabsDetach"</span></td></tr>
+<tr class="codeline" data-linenumber="79"><td class="num" id="LN79">79</td><td class="line"><span class='directive'>#define <span class='macro'>ACCEL_PATH_SWITCH_TAB_PREFIX<span class='macro_popup'>"&lt;Actions&gt;/Main/" "TabsSwitch"</span></span> <span class='macro'>ACCEL_PATH_ROOT<span class='macro_popup'>"&lt;Actions&gt;/Main/"</span></span> "TabsSwitch"</span></td></tr>
+<tr class="codeline" data-linenumber="80"><td class="num" id="LN80">80</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="81"><td class="num" id="LN81">81</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_CLOSE_TAB<span class='macro_popup'>"close-tab"</span></span> "close-tab"</span></td></tr>
+<tr class="codeline" data-linenumber="82"><td class="num" id="LN82">82</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_CLOSE_WINDOW<span class='macro_popup'>"close-window"</span></span> "close-window"</span></td></tr>
+<tr class="codeline" data-linenumber="83"><td class="num" id="LN83">83</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_COPY<span class='macro_popup'>"copy"</span></span> "copy"</span></td></tr>
+<tr class="codeline" data-linenumber="84"><td class="num" id="LN84">84</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_DETACH_TAB<span class='macro_popup'>"detach-tab"</span></span> "detach-tab"</span></td></tr>
+<tr class="codeline" data-linenumber="85"><td class="num" id="LN85">85</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_FULL_SCREEN<span class='macro_popup'>"full-screen"</span></span> "full-screen"</span></td></tr>
+<tr class="codeline" data-linenumber="86"><td class="num" id="LN86">86</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_HELP<span class='macro_popup'>"help"</span></span> "help"</span></td></tr>
+<tr class="codeline" data-linenumber="87"><td class="num" id="LN87">87</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_MOVE_TAB_LEFT<span class='macro_popup'>"move-tab-left"</span></span> "move-tab-left"</span></td></tr>
+<tr class="codeline" data-linenumber="88"><td class="num" id="LN88">88</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_MOVE_TAB_RIGHT<span class='macro_popup'>"move-tab-right"</span></span> "move-tab-right"</span></td></tr>
+<tr class="codeline" data-linenumber="89"><td class="num" id="LN89">89</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_NEW_PROFILE<span class='macro_popup'>"new-profile"</span></span> "new-profile"</span></td></tr>
+<tr class="codeline" data-linenumber="90"><td class="num" id="LN90">90</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_NEW_TAB<span class='macro_popup'>"new-tab"</span></span> "new-tab"</span></td></tr>
+<tr class="codeline" data-linenumber="91"><td class="num" id="LN91">91</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_NEW_WINDOW<span class='macro_popup'>"new-window"</span></span> "new-window"</span></td></tr>
+<tr class="codeline" data-linenumber="92"><td class="num" id="LN92">92</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_NEXT_PROFILE<span class='macro_popup'>"next-profile"</span></span> "next-profile"</span></td></tr>
+<tr class="codeline" data-linenumber="93"><td class="num" id="LN93">93</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_NEXT_TAB<span class='macro_popup'>"next-tab"</span></span> "next-tab"</span></td></tr>
+<tr class="codeline" data-linenumber="94"><td class="num" id="LN94">94</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_PASTE<span class='macro_popup'>"paste"</span></span> "paste"</span></td></tr>
+<tr class="codeline" data-linenumber="95"><td class="num" id="LN95">95</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_PREV_PROFILE<span class='macro_popup'>"prev-profile"</span></span> "prev-profile"</span></td></tr>
+<tr class="codeline" data-linenumber="96"><td class="num" id="LN96">96</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_PREV_TAB<span class='macro_popup'>"prev-tab"</span></span> "prev-tab"</span></td></tr>
+<tr class="codeline" data-linenumber="97"><td class="num" id="LN97">97</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_RESET_AND_CLEAR<span class='macro_popup'>"reset-and-clear"</span></span> "reset-and-clear"</span></td></tr>
+<tr class="codeline" data-linenumber="98"><td class="num" id="LN98">98</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_RESET<span class='macro_popup'>"reset"</span></span> "reset"</span></td></tr>
+<tr class="codeline" data-linenumber="99"><td class="num" id="LN99">99</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_SEARCH_FIND<span class='macro_popup'>"search-find"</span></span> "search-find"</span></td></tr>
+<tr class="codeline" data-linenumber="100"><td class="num" id="LN100">100</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_SEARCH_FIND_NEXT<span class='macro_popup'>"search-find-next"</span></span> "search-find-next"</span></td></tr>
+<tr class="codeline" data-linenumber="101"><td class="num" id="LN101">101</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_SEARCH_FIND_PREVIOUS<span class='macro_popup'>"search-find-previous"</span></span> "search-find-previous"</span></td></tr>
+<tr class="codeline" data-linenumber="102"><td class="num" id="LN102">102</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_SELECT_ALL<span class='macro_popup'>"select-all"</span></span> "select-all"</span></td></tr>
+<tr class="codeline" data-linenumber="103"><td class="num" id="LN103">103</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_SAVE_CONTENTS<span class='macro_popup'>"save-contents"</span></span> "save-contents"</span></td></tr>
+<tr class="codeline" data-linenumber="104"><td class="num" id="LN104">104</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_SET_TERMINAL_TITLE<span class='macro_popup'>"set-terminal-title"</span></span> "set-terminal-title"</span></td></tr>
+<tr class="codeline" data-linenumber="105"><td class="num" id="LN105">105</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_TOGGLE_MENUBAR<span class='macro_popup'>"toggle-menubar"</span></span> "toggle-menubar"</span></td></tr>
+<tr class="codeline" data-linenumber="106"><td class="num" id="LN106">106</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_ZOOM_IN<span class='macro_popup'>"zoom-in"</span></span> "zoom-in"</span></td></tr>
+<tr class="codeline" data-linenumber="107"><td class="num" id="LN107">107</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_ZOOM_NORMAL<span class='macro_popup'>"zoom-normal"</span></span> "zoom-normal"</span></td></tr>
+<tr class="codeline" data-linenumber="108"><td class="num" id="LN108">108</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_ZOOM_OUT<span class='macro_popup'>"zoom-out"</span></span> "zoom-out"</span></td></tr>
+<tr class="codeline" data-linenumber="109"><td class="num" id="LN109">109</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_SWITCH_TAB_PREFIX<span class='macro_popup'>"switch-to-tab-"</span></span> "switch-to-tab-"</span></td></tr>
+<tr class="codeline" data-linenumber="110"><td class="num" id="LN110">110</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="111"><td class="num" id="LN111">111</td><td class="line"><span class='directive'>#if 1</span></td></tr>
+<tr class="codeline" data-linenumber="112"><td class="num" id="LN112">112</td><td class="line"><span class='comment'>/*</span></td></tr>
+<tr class="codeline" data-linenumber="113"><td class="num" id="LN113">113</td><td class="line"><span class='comment'>* We don't want to enable content saving until vte supports it async.</span></td></tr>
+<tr class="codeline" data-linenumber="114"><td class="num" id="LN114">114</td><td class="line"><span class='comment'>* So we disable this code for stable versions.</span></td></tr>
+<tr class="codeline" data-linenumber="115"><td class="num" id="LN115">115</td><td class="line"><span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="116"><td class="num" id="LN116">116</td><td class="line"><span class='directive'>#include "terminal-version.h"</span></td></tr>
+<tr class="codeline" data-linenumber="117"><td class="num" id="LN117">117</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="118"><td class="num" id="LN118">118</td><td class="line"><span class='directive'>#if (<span class='macro'>TERMINAL_MINOR_VERSION<span class='macro_popup'>(27)</span></span> &amp; 1) != 0</span></td></tr>
+<tr class="codeline" data-linenumber="119"><td class="num" id="LN119">119</td><td class="line"><span class='directive'>#define ENABLE_SAVE</span></td></tr>
+<tr class="codeline" data-linenumber="120"><td class="num" id="LN120">120</td><td class="line"><span class='directive'>#else</span></td></tr>
+<tr class="codeline" data-linenumber="121"><td class="num" id="LN121">121</td><td class="line"><span class='directive'>#undef ENABLE_SAVE</span></td></tr>
+<tr class="codeline" data-linenumber="122"><td class="num" id="LN122">122</td><td class="line"><span class='directive'>#endif</span></td></tr>
+<tr class="codeline" data-linenumber="123"><td class="num" id="LN123">123</td><td class="line"><span class='directive'>#endif</span></td></tr>
+<tr class="codeline" data-linenumber="124"><td class="num" id="LN124">124</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="125"><td class="num" id="LN125">125</td><td class="line"><span class='keyword'>typedef</span> <span class='keyword'>struct</span></td></tr>
+<tr class="codeline" data-linenumber="126"><td class="num" id="LN126">126</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="127"><td class="num" id="LN127">127</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *user_visible_name;</td></tr>
+<tr class="codeline" data-linenumber="128"><td class="num" id="LN128">128</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *gsettings_key;</td></tr>
+<tr class="codeline" data-linenumber="129"><td class="num" id="LN129">129</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *accel_path;</td></tr>
+<tr class="codeline" data-linenumber="130"><td class="num" id="LN130">130</td><td class="line"> <span class='comment'>/* last values received from GSettings */</span></td></tr>
+<tr class="codeline" data-linenumber="131"><td class="num" id="LN131">131</td><td class="line"> GdkModifierType gsettings_mask;</td></tr>
+<tr class="codeline" data-linenumber="132"><td class="num" id="LN132">132</td><td class="line"> guint gsettings_keyval;</td></tr>
+<tr class="codeline" data-linenumber="133"><td class="num" id="LN133">133</td><td class="line"> GClosure *closure;</td></tr>
+<tr class="codeline" data-linenumber="134"><td class="num" id="LN134">134</td><td class="line"> <span class='comment'>/* have gotten a notification from gtk */</span></td></tr>
+<tr class="codeline" data-linenumber="135"><td class="num" id="LN135">135</td><td class="line"> gboolean needs_gsettings_sync;</td></tr>
+<tr class="codeline" data-linenumber="136"><td class="num" id="LN136">136</td><td class="line"> gboolean accel_path_unlocked;</td></tr>
+<tr class="codeline" data-linenumber="137"><td class="num" id="LN137">137</td><td class="line">} KeyEntry;</td></tr>
+<tr class="codeline" data-linenumber="138"><td class="num" id="LN138">138</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="139"><td class="num" id="LN139">139</td><td class="line"><span class='keyword'>typedef</span> <span class='keyword'>struct</span></td></tr>
+<tr class="codeline" data-linenumber="140"><td class="num" id="LN140">140</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="141"><td class="num" id="LN141">141</td><td class="line"> KeyEntry *key_entry;</td></tr>
+<tr class="codeline" data-linenumber="142"><td class="num" id="LN142">142</td><td class="line"> guint n_elements;</td></tr>
+<tr class="codeline" data-linenumber="143"><td class="num" id="LN143">143</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *user_visible_name;</td></tr>
+<tr class="codeline" data-linenumber="144"><td class="num" id="LN144">144</td><td class="line">} KeyEntryList;</td></tr>
+<tr class="codeline" data-linenumber="145"><td class="num" id="LN145">145</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="146"><td class="num" id="LN146">146</td><td class="line"><span class='keyword'>static</span> KeyEntry file_entries[] =</td></tr>
+<tr class="codeline" data-linenumber="147"><td class="num" id="LN147">147</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="148"><td class="num" id="LN148">148</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="149"><td class="num" id="LN149">149</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"New Tab"</span>)<span class='macro_popup'>("New Tab")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="150"><td class="num" id="LN150">150</td><td class="line"> <span class='macro'>KEY_NEW_TAB<span class='macro_popup'>"new-tab"</span></span>, <span class='macro'>ACCEL_PATH_NEW_TAB<span class='macro_popup'>"&lt;Actions&gt;/Main/" "FileNewTab"</span></span>, GDK_SHIFT_MASK | GDK_CONTROL_MASK, <span class='macro'>GDK_KEY_t<span class='macro_popup'>0x074</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="151"><td class="num" id="LN151">151</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="152"><td class="num" id="LN152">152</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="153"><td class="num" id="LN153">153</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"New Window"</span>)<span class='macro_popup'>("New Window")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="154"><td class="num" id="LN154">154</td><td class="line"> <span class='macro'>KEY_NEW_WINDOW<span class='macro_popup'>"new-window"</span></span>, <span class='macro'>ACCEL_PATH_NEW_WINDOW<span class='macro_popup'>"&lt;Actions&gt;/Main/" "FileNewWindow"</span></span>, GDK_SHIFT_MASK | GDK_CONTROL_MASK, <span class='macro'>GDK_KEY_n<span class='macro_popup'>0x06e</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="155"><td class="num" id="LN155">155</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="156"><td class="num" id="LN156">156</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="157"><td class="num" id="LN157">157</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"New Profile"</span>)<span class='macro_popup'>("New Profile")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="158"><td class="num" id="LN158">158</td><td class="line"> <span class='macro'>KEY_NEW_PROFILE<span class='macro_popup'>"new-profile"</span></span>, <span class='macro'>ACCEL_PATH_NEW_PROFILE<span class='macro_popup'>"&lt;Actions&gt;/Main/" "FileNewProfile"</span></span>, 0, 0, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="159"><td class="num" id="LN159">159</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="160"><td class="num" id="LN160">160</td><td class="line"><span class='directive'>#ifdef ENABLE_SAVE</span></td></tr>
+<tr class="codeline" data-linenumber="161"><td class="num" id="LN161">161</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="162"><td class="num" id="LN162">162</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"Save Contents"</span>)<span class='macro_popup'>("Save Contents")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="163"><td class="num" id="LN163">163</td><td class="line"> <span class='macro'>KEY_SAVE_CONTENTS<span class='macro_popup'>"save-contents"</span></span>, <span class='macro'>ACCEL_PATH_SAVE_CONTENTS<span class='macro_popup'>"&lt;Actions&gt;/Main/" "FileSaveContents"</span></span>, 0, 0, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="164"><td class="num" id="LN164">164</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="165"><td class="num" id="LN165">165</td><td class="line"><span class='directive'>#endif</span></td></tr>
+<tr class="codeline" data-linenumber="166"><td class="num" id="LN166">166</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="167"><td class="num" id="LN167">167</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"Close Tab"</span>)<span class='macro_popup'>("Close Tab")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="168"><td class="num" id="LN168">168</td><td class="line"> <span class='macro'>KEY_CLOSE_TAB<span class='macro_popup'>"close-tab"</span></span>, <span class='macro'>ACCEL_PATH_CLOSE_TAB<span class='macro_popup'>"&lt;Actions&gt;/Main/" "FileCloseTab"</span></span>, GDK_SHIFT_MASK | GDK_CONTROL_MASK, <span class='macro'>GDK_KEY_w<span class='macro_popup'>0x077</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="169"><td class="num" id="LN169">169</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="170"><td class="num" id="LN170">170</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="171"><td class="num" id="LN171">171</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"Close Window"</span>)<span class='macro_popup'>("Close Window")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="172"><td class="num" id="LN172">172</td><td class="line"> <span class='macro'>KEY_CLOSE_WINDOW<span class='macro_popup'>"close-window"</span></span>, <span class='macro'>ACCEL_PATH_CLOSE_WINDOW<span class='macro_popup'>"&lt;Actions&gt;/Main/" "FileCloseWindow"</span></span>, GDK_SHIFT_MASK | GDK_CONTROL_MASK, <span class='macro'>GDK_KEY_q<span class='macro_popup'>0x071</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="173"><td class="num" id="LN173">173</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="174"><td class="num" id="LN174">174</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="175"><td class="num" id="LN175">175</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="176"><td class="num" id="LN176">176</td><td class="line"><span class='keyword'>static</span> KeyEntry edit_entries[] =</td></tr>
+<tr class="codeline" data-linenumber="177"><td class="num" id="LN177">177</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="178"><td class="num" id="LN178">178</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="179"><td class="num" id="LN179">179</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"Copy"</span>)<span class='macro_popup'>("Copy")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="180"><td class="num" id="LN180">180</td><td class="line"> <span class='macro'>KEY_COPY<span class='macro_popup'>"copy"</span></span>, <span class='macro'>ACCEL_PATH_COPY<span class='macro_popup'>"&lt;Actions&gt;/Main/" "EditCopy"</span></span>, GDK_SHIFT_MASK | GDK_CONTROL_MASK, <span class='macro'>GDK_KEY_c<span class='macro_popup'>0x063</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="181"><td class="num" id="LN181">181</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="182"><td class="num" id="LN182">182</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="183"><td class="num" id="LN183">183</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"Paste"</span>)<span class='macro_popup'>("Paste")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="184"><td class="num" id="LN184">184</td><td class="line"> <span class='macro'>KEY_PASTE<span class='macro_popup'>"paste"</span></span>, <span class='macro'>ACCEL_PATH_PASTE<span class='macro_popup'>"&lt;Actions&gt;/Main/" "EditPaste"</span></span>, GDK_SHIFT_MASK | GDK_CONTROL_MASK, <span class='macro'>GDK_KEY_v<span class='macro_popup'>0x076</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="185"><td class="num" id="LN185">185</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="186"><td class="num" id="LN186">186</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="187"><td class="num" id="LN187">187</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"Select All"</span>)<span class='macro_popup'>("Select All")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="188"><td class="num" id="LN188">188</td><td class="line"> <span class='macro'>KEY_SELECT_ALL<span class='macro_popup'>"select-all"</span></span>, <span class='macro'>ACCEL_PATH_SELECT_ALL<span class='macro_popup'>"&lt;Actions&gt;/Main/" "EditSelectAll"</span></span>, GDK_SHIFT_MASK | GDK_CONTROL_MASK, <span class='macro'>GDK_KEY_a<span class='macro_popup'>0x061</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="189"><td class="num" id="LN189">189</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="190"><td class="num" id="LN190">190</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="191"><td class="num" id="LN191">191</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="192"><td class="num" id="LN192">192</td><td class="line"><span class='keyword'>static</span> KeyEntry view_entries[] =</td></tr>
+<tr class="codeline" data-linenumber="193"><td class="num" id="LN193">193</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="194"><td class="num" id="LN194">194</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="195"><td class="num" id="LN195">195</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"Hide and Show menubar"</span>)<span class='macro_popup'>("Hide and Show menubar")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="196"><td class="num" id="LN196">196</td><td class="line"> <span class='macro'>KEY_TOGGLE_MENUBAR<span class='macro_popup'>"toggle-menubar"</span></span>, <span class='macro'>ACCEL_PATH_TOGGLE_MENUBAR<span class='macro_popup'>"&lt;Actions&gt;/Main/" "ViewMenubar"</span></span>, 0, 0, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="197"><td class="num" id="LN197">197</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="198"><td class="num" id="LN198">198</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="199"><td class="num" id="LN199">199</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"Full Screen"</span>)<span class='macro_popup'>("Full Screen")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="200"><td class="num" id="LN200">200</td><td class="line"> <span class='macro'>KEY_FULL_SCREEN<span class='macro_popup'>"full-screen"</span></span>, <span class='macro'>ACCEL_PATH_FULL_SCREEN<span class='macro_popup'>"&lt;Actions&gt;/Main/" "ViewFullscreen"</span></span>, 0, <span class='macro'>GDK_KEY_F11<span class='macro_popup'>0xffc8</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="201"><td class="num" id="LN201">201</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="202"><td class="num" id="LN202">202</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="203"><td class="num" id="LN203">203</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"Zoom In"</span>)<span class='macro_popup'>("Zoom In")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="204"><td class="num" id="LN204">204</td><td class="line"> <span class='macro'>KEY_ZOOM_IN<span class='macro_popup'>"zoom-in"</span></span>, <span class='macro'>ACCEL_PATH_ZOOM_IN<span class='macro_popup'>"&lt;Actions&gt;/Main/" "ViewZoomIn"</span></span>, GDK_CONTROL_MASK, <span class='macro'>GDK_KEY_plus<span class='macro_popup'>0x02b</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="205"><td class="num" id="LN205">205</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="206"><td class="num" id="LN206">206</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="207"><td class="num" id="LN207">207</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"Zoom Out"</span>)<span class='macro_popup'>("Zoom Out")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="208"><td class="num" id="LN208">208</td><td class="line"> <span class='macro'>KEY_ZOOM_OUT<span class='macro_popup'>"zoom-out"</span></span>, <span class='macro'>ACCEL_PATH_ZOOM_OUT<span class='macro_popup'>"&lt;Actions&gt;/Main/" "ViewZoomOut"</span></span>, GDK_CONTROL_MASK, <span class='macro'>GDK_KEY_minus<span class='macro_popup'>0x02d</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="209"><td class="num" id="LN209">209</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="210"><td class="num" id="LN210">210</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="211"><td class="num" id="LN211">211</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"Normal Size"</span>)<span class='macro_popup'>("Normal Size")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="212"><td class="num" id="LN212">212</td><td class="line"> <span class='macro'>KEY_ZOOM_NORMAL<span class='macro_popup'>"zoom-normal"</span></span>, <span class='macro'>ACCEL_PATH_ZOOM_NORMAL<span class='macro_popup'>"&lt;Actions&gt;/Main/" "ViewZoom100"</span></span>, GDK_CONTROL_MASK, <span class='macro'>GDK_KEY_0<span class='macro_popup'>0x030</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="213"><td class="num" id="LN213">213</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="214"><td class="num" id="LN214">214</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="215"><td class="num" id="LN215">215</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="216"><td class="num" id="LN216">216</td><td class="line"><span class='keyword'>static</span> KeyEntry search_entries[] =</td></tr>
+<tr class="codeline" data-linenumber="217"><td class="num" id="LN217">217</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="218"><td class="num" id="LN218">218</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="219"><td class="num" id="LN219">219</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"Find"</span>)<span class='macro_popup'>("Find")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="220"><td class="num" id="LN220">220</td><td class="line"> <span class='macro'>KEY_SEARCH_FIND<span class='macro_popup'>"search-find"</span></span>, <span class='macro'>ACCEL_PATH_SEARCH_FIND<span class='macro_popup'>"&lt;Actions&gt;/Main/" "SearchFind"</span></span>, GDK_SHIFT_MASK | GDK_CONTROL_MASK, <span class='macro'>GDK_KEY_f<span class='macro_popup'>0x066</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="221"><td class="num" id="LN221">221</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="222"><td class="num" id="LN222">222</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="223"><td class="num" id="LN223">223</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"Find Next"</span>)<span class='macro_popup'>("Find Next")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="224"><td class="num" id="LN224">224</td><td class="line"> <span class='macro'>KEY_SEARCH_FIND_NEXT<span class='macro_popup'>"search-find-next"</span></span>, <span class='macro'>ACCEL_PATH_SEARCH_FIND_NEXT<span class='macro_popup'>"&lt;Actions&gt;/Main/" "SearchFindNext"</span></span>, GDK_SHIFT_MASK | GDK_CONTROL_MASK, <span class='macro'>GDK_KEY_h<span class='macro_popup'>0x068</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="225"><td class="num" id="LN225">225</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="226"><td class="num" id="LN226">226</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="227"><td class="num" id="LN227">227</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"Find Previous"</span>)<span class='macro_popup'>("Find Previous")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="228"><td class="num" id="LN228">228</td><td class="line"> <span class='macro'>KEY_SEARCH_FIND_PREVIOUS<span class='macro_popup'>"search-find-previous"</span></span>, <span class='macro'>ACCEL_PATH_SEARCH_FIND_PREVIOUS<span class='macro_popup'>"&lt;Actions&gt;/Main/" "SearchFindPrevious"</span></span>, GDK_SHIFT_MASK | GDK_CONTROL_MASK, <span class='macro'>GDK_KEY_g<span class='macro_popup'>0x067</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="229"><td class="num" id="LN229">229</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="230"><td class="num" id="LN230">230</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="231"><td class="num" id="LN231">231</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="232"><td class="num" id="LN232">232</td><td class="line"><span class='keyword'>static</span> KeyEntry terminal_entries[] =</td></tr>
+<tr class="codeline" data-linenumber="233"><td class="num" id="LN233">233</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="234"><td class="num" id="LN234">234</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="235"><td class="num" id="LN235">235</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"Set Title"</span>)<span class='macro_popup'>("Set Title")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="236"><td class="num" id="LN236">236</td><td class="line"> <span class='macro'>KEY_SET_TERMINAL_TITLE<span class='macro_popup'>"set-terminal-title"</span></span>, <span class='macro'>ACCEL_PATH_SET_TERMINAL_TITLE<span class='macro_popup'>"&lt;Actions&gt;/Main/" "TerminalSetTitle"</span></span>, 0, 0, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="237"><td class="num" id="LN237">237</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="238"><td class="num" id="LN238">238</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="239"><td class="num" id="LN239">239</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"Reset"</span>)<span class='macro_popup'>("Reset")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="240"><td class="num" id="LN240">240</td><td class="line"> <span class='macro'>KEY_RESET<span class='macro_popup'>"reset"</span></span>, <span class='macro'>ACCEL_PATH_RESET<span class='macro_popup'>"&lt;Actions&gt;/Main/" "TerminalReset"</span></span>, 0, 0, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="241"><td class="num" id="LN241">241</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="242"><td class="num" id="LN242">242</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="243"><td class="num" id="LN243">243</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"Reset and Clear"</span>)<span class='macro_popup'>("Reset and Clear")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="244"><td class="num" id="LN244">244</td><td class="line"> <span class='macro'>KEY_RESET_AND_CLEAR<span class='macro_popup'>"reset-and-clear"</span></span>, <span class='macro'>ACCEL_PATH_RESET_AND_CLEAR<span class='macro_popup'>"&lt;Actions&gt;/Main/" "TerminalResetClear"</span></span>, 0, 0, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="245"><td class="num" id="LN245">245</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="246"><td class="num" id="LN246">246</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="247"><td class="num" id="LN247">247</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"Switch to Previous Profile"</span>)<span class='macro_popup'>("Switch to Previous Profile")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="248"><td class="num" id="LN248">248</td><td class="line"> <span class='macro'>KEY_PREV_PROFILE<span class='macro_popup'>"prev-profile"</span></span>, <span class='macro'>ACCEL_PATH_PREV_PROFILE<span class='macro_popup'>"&lt;Actions&gt;/Main/" "ProfilePrevious"</span></span>, GDK_MOD1_MASK, <span class='macro'>GDK_KEY_Page_Up<span class='macro_popup'>0xff55</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="249"><td class="num" id="LN249">249</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="250"><td class="num" id="LN250">250</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="251"><td class="num" id="LN251">251</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"Switch to Next Profile"</span>)<span class='macro_popup'>("Switch to Next Profile")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="252"><td class="num" id="LN252">252</td><td class="line"> <span class='macro'>KEY_NEXT_PROFILE<span class='macro_popup'>"next-profile"</span></span>, <span class='macro'>ACCEL_PATH_NEXT_PROFILE<span class='macro_popup'>"&lt;Actions&gt;/Main/" "ProfileNext"</span></span>, GDK_MOD1_MASK, <span class='macro'>GDK_KEY_Page_Down<span class='macro_popup'>0xff56</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="253"><td class="num" id="LN253">253</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="254"><td class="num" id="LN254">254</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="255"><td class="num" id="LN255">255</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="256"><td class="num" id="LN256">256</td><td class="line"><span class='keyword'>static</span> KeyEntry tabs_entries[] =</td></tr>
+<tr class="codeline" data-linenumber="257"><td class="num" id="LN257">257</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="258"><td class="num" id="LN258">258</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="259"><td class="num" id="LN259">259</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"Switch to Previous Tab"</span>)<span class='macro_popup'>("Switch to Previous Tab")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="260"><td class="num" id="LN260">260</td><td class="line"> <span class='macro'>KEY_PREV_TAB<span class='macro_popup'>"prev-tab"</span></span>, <span class='macro'>ACCEL_PATH_PREV_TAB<span class='macro_popup'>"&lt;Actions&gt;/Main/" "TabsPrevious"</span></span>, GDK_CONTROL_MASK, <span class='macro'>GDK_KEY_Page_Up<span class='macro_popup'>0xff55</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="261"><td class="num" id="LN261">261</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="262"><td class="num" id="LN262">262</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="263"><td class="num" id="LN263">263</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"Switch to Next Tab"</span>)<span class='macro_popup'>("Switch to Next Tab")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="264"><td class="num" id="LN264">264</td><td class="line"> <span class='macro'>KEY_NEXT_TAB<span class='macro_popup'>"next-tab"</span></span>, <span class='macro'>ACCEL_PATH_NEXT_TAB<span class='macro_popup'>"&lt;Actions&gt;/Main/" "TabsNext"</span></span>, GDK_CONTROL_MASK, <span class='macro'>GDK_KEY_Page_Down<span class='macro_popup'>0xff56</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="265"><td class="num" id="LN265">265</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="266"><td class="num" id="LN266">266</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="267"><td class="num" id="LN267">267</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"Move Tab to the Left"</span>)<span class='macro_popup'>("Move Tab to the Left")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="268"><td class="num" id="LN268">268</td><td class="line"> <span class='macro'>KEY_MOVE_TAB_LEFT<span class='macro_popup'>"move-tab-left"</span></span>, <span class='macro'>ACCEL_PATH_MOVE_TAB_LEFT<span class='macro_popup'>"&lt;Actions&gt;/Main/" "TabsMoveLeft"</span></span>, GDK_SHIFT_MASK | GDK_CONTROL_MASK, <span class='macro'>GDK_KEY_Page_Up<span class='macro_popup'>0xff55</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="269"><td class="num" id="LN269">269</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="270"><td class="num" id="LN270">270</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="271"><td class="num" id="LN271">271</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"Move Tab to the Right"</span>)<span class='macro_popup'>("Move Tab to the Right")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="272"><td class="num" id="LN272">272</td><td class="line"> <span class='macro'>KEY_MOVE_TAB_RIGHT<span class='macro_popup'>"move-tab-right"</span></span>, <span class='macro'>ACCEL_PATH_MOVE_TAB_RIGHT<span class='macro_popup'>"&lt;Actions&gt;/Main/" "TabsMoveRight"</span></span>, GDK_SHIFT_MASK | GDK_CONTROL_MASK, <span class='macro'>GDK_KEY_Page_Down<span class='macro_popup'>0xff56</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="273"><td class="num" id="LN273">273</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="274"><td class="num" id="LN274">274</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="275"><td class="num" id="LN275">275</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"Detach Tab"</span>)<span class='macro_popup'>("Detach Tab")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="276"><td class="num" id="LN276">276</td><td class="line"> <span class='macro'>KEY_DETACH_TAB<span class='macro_popup'>"detach-tab"</span></span>, <span class='macro'>ACCEL_PATH_DETACH_TAB<span class='macro_popup'>"&lt;Actions&gt;/Main/" "TabsDetach"</span></span>, 0, 0, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="277"><td class="num" id="LN277">277</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="278"><td class="num" id="LN278">278</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="279"><td class="num" id="LN279">279</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"Switch to Tab 1"</span>)<span class='macro_popup'>("Switch to Tab 1")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="280"><td class="num" id="LN280">280</td><td class="line"> <span class='macro'>KEY_SWITCH_TAB_PREFIX<span class='macro_popup'>"switch-to-tab-"</span></span> <span class='string_literal'>"1"</span>,</td></tr>
+<tr class="codeline" data-linenumber="281"><td class="num" id="LN281">281</td><td class="line"> <span class='macro'>ACCEL_PATH_SWITCH_TAB_PREFIX<span class='macro_popup'>"&lt;Actions&gt;/Main/" "TabsSwitch"</span></span> <span class='string_literal'>"1"</span>, GDK_MOD1_MASK, <span class='macro'>GDK_KEY_1<span class='macro_popup'>0x031</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="282"><td class="num" id="LN282">282</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="283"><td class="num" id="LN283">283</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="284"><td class="num" id="LN284">284</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"Switch to Tab 2"</span>)<span class='macro_popup'>("Switch to Tab 2")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="285"><td class="num" id="LN285">285</td><td class="line"> <span class='macro'>KEY_SWITCH_TAB_PREFIX<span class='macro_popup'>"switch-to-tab-"</span></span> <span class='string_literal'>"2"</span>,</td></tr>
+<tr class="codeline" data-linenumber="286"><td class="num" id="LN286">286</td><td class="line"> <span class='macro'>ACCEL_PATH_SWITCH_TAB_PREFIX<span class='macro_popup'>"&lt;Actions&gt;/Main/" "TabsSwitch"</span></span> <span class='string_literal'>"2"</span>, GDK_MOD1_MASK, <span class='macro'>GDK_KEY_2<span class='macro_popup'>0x032</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="287"><td class="num" id="LN287">287</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="288"><td class="num" id="LN288">288</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="289"><td class="num" id="LN289">289</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"Switch to Tab 3"</span>)<span class='macro_popup'>("Switch to Tab 3")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="290"><td class="num" id="LN290">290</td><td class="line"> <span class='macro'>KEY_SWITCH_TAB_PREFIX<span class='macro_popup'>"switch-to-tab-"</span></span> <span class='string_literal'>"3"</span>,</td></tr>
+<tr class="codeline" data-linenumber="291"><td class="num" id="LN291">291</td><td class="line"> <span class='macro'>ACCEL_PATH_SWITCH_TAB_PREFIX<span class='macro_popup'>"&lt;Actions&gt;/Main/" "TabsSwitch"</span></span> <span class='string_literal'>"3"</span>, GDK_MOD1_MASK, <span class='macro'>GDK_KEY_3<span class='macro_popup'>0x033</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="292"><td class="num" id="LN292">292</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="293"><td class="num" id="LN293">293</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="294"><td class="num" id="LN294">294</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"Switch to Tab 4"</span>)<span class='macro_popup'>("Switch to Tab 4")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="295"><td class="num" id="LN295">295</td><td class="line"> <span class='macro'>KEY_SWITCH_TAB_PREFIX<span class='macro_popup'>"switch-to-tab-"</span></span> <span class='string_literal'>"4"</span>,</td></tr>
+<tr class="codeline" data-linenumber="296"><td class="num" id="LN296">296</td><td class="line"> <span class='macro'>ACCEL_PATH_SWITCH_TAB_PREFIX<span class='macro_popup'>"&lt;Actions&gt;/Main/" "TabsSwitch"</span></span> <span class='string_literal'>"4"</span>, GDK_MOD1_MASK, <span class='macro'>GDK_KEY_4<span class='macro_popup'>0x034</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="297"><td class="num" id="LN297">297</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="298"><td class="num" id="LN298">298</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="299"><td class="num" id="LN299">299</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"Switch to Tab 5"</span>)<span class='macro_popup'>("Switch to Tab 5")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="300"><td class="num" id="LN300">300</td><td class="line"> <span class='macro'>KEY_SWITCH_TAB_PREFIX<span class='macro_popup'>"switch-to-tab-"</span></span> <span class='string_literal'>"5"</span>,</td></tr>
+<tr class="codeline" data-linenumber="301"><td class="num" id="LN301">301</td><td class="line"> <span class='macro'>ACCEL_PATH_SWITCH_TAB_PREFIX<span class='macro_popup'>"&lt;Actions&gt;/Main/" "TabsSwitch"</span></span> <span class='string_literal'>"5"</span>, GDK_MOD1_MASK, <span class='macro'>GDK_KEY_5<span class='macro_popup'>0x035</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="302"><td class="num" id="LN302">302</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="303"><td class="num" id="LN303">303</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="304"><td class="num" id="LN304">304</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"Switch to Tab 6"</span>)<span class='macro_popup'>("Switch to Tab 6")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="305"><td class="num" id="LN305">305</td><td class="line"> <span class='macro'>KEY_SWITCH_TAB_PREFIX<span class='macro_popup'>"switch-to-tab-"</span></span> <span class='string_literal'>"6"</span>,</td></tr>
+<tr class="codeline" data-linenumber="306"><td class="num" id="LN306">306</td><td class="line"> <span class='macro'>ACCEL_PATH_SWITCH_TAB_PREFIX<span class='macro_popup'>"&lt;Actions&gt;/Main/" "TabsSwitch"</span></span> <span class='string_literal'>"6"</span>, GDK_MOD1_MASK, <span class='macro'>GDK_KEY_6<span class='macro_popup'>0x036</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="307"><td class="num" id="LN307">307</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="308"><td class="num" id="LN308">308</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="309"><td class="num" id="LN309">309</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"Switch to Tab 7"</span>)<span class='macro_popup'>("Switch to Tab 7")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="310"><td class="num" id="LN310">310</td><td class="line"> <span class='macro'>KEY_SWITCH_TAB_PREFIX<span class='macro_popup'>"switch-to-tab-"</span></span> <span class='string_literal'>"7"</span>,</td></tr>
+<tr class="codeline" data-linenumber="311"><td class="num" id="LN311">311</td><td class="line"> <span class='macro'>ACCEL_PATH_SWITCH_TAB_PREFIX<span class='macro_popup'>"&lt;Actions&gt;/Main/" "TabsSwitch"</span></span> <span class='string_literal'>"7"</span>, GDK_MOD1_MASK, <span class='macro'>GDK_KEY_7<span class='macro_popup'>0x037</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="312"><td class="num" id="LN312">312</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="313"><td class="num" id="LN313">313</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="314"><td class="num" id="LN314">314</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"Switch to Tab 8"</span>)<span class='macro_popup'>("Switch to Tab 8")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="315"><td class="num" id="LN315">315</td><td class="line"> <span class='macro'>KEY_SWITCH_TAB_PREFIX<span class='macro_popup'>"switch-to-tab-"</span></span> <span class='string_literal'>"8"</span>,</td></tr>
+<tr class="codeline" data-linenumber="316"><td class="num" id="LN316">316</td><td class="line"> <span class='macro'>ACCEL_PATH_SWITCH_TAB_PREFIX<span class='macro_popup'>"&lt;Actions&gt;/Main/" "TabsSwitch"</span></span> <span class='string_literal'>"8"</span>, GDK_MOD1_MASK, <span class='macro'>GDK_KEY_8<span class='macro_popup'>0x038</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="317"><td class="num" id="LN317">317</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="318"><td class="num" id="LN318">318</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="319"><td class="num" id="LN319">319</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"Switch to Tab 9"</span>)<span class='macro_popup'>("Switch to Tab 9")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="320"><td class="num" id="LN320">320</td><td class="line"> <span class='macro'>KEY_SWITCH_TAB_PREFIX<span class='macro_popup'>"switch-to-tab-"</span></span> <span class='string_literal'>"9"</span>,</td></tr>
+<tr class="codeline" data-linenumber="321"><td class="num" id="LN321">321</td><td class="line"> <span class='macro'>ACCEL_PATH_SWITCH_TAB_PREFIX<span class='macro_popup'>"&lt;Actions&gt;/Main/" "TabsSwitch"</span></span> <span class='string_literal'>"9"</span>, GDK_MOD1_MASK, <span class='macro'>GDK_KEY_9<span class='macro_popup'>0x039</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="322"><td class="num" id="LN322">322</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="323"><td class="num" id="LN323">323</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="324"><td class="num" id="LN324">324</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"Switch to Tab 10"</span>)<span class='macro_popup'>("Switch to Tab 10")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="325"><td class="num" id="LN325">325</td><td class="line"> <span class='macro'>KEY_SWITCH_TAB_PREFIX<span class='macro_popup'>"switch-to-tab-"</span></span> <span class='string_literal'>"10"</span>,</td></tr>
+<tr class="codeline" data-linenumber="326"><td class="num" id="LN326">326</td><td class="line"> <span class='macro'>ACCEL_PATH_SWITCH_TAB_PREFIX<span class='macro_popup'>"&lt;Actions&gt;/Main/" "TabsSwitch"</span></span> <span class='string_literal'>"10"</span>, GDK_MOD1_MASK, <span class='macro'>GDK_KEY_0<span class='macro_popup'>0x030</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="327"><td class="num" id="LN327">327</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="328"><td class="num" id="LN328">328</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="329"><td class="num" id="LN329">329</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"Switch to Tab 11"</span>)<span class='macro_popup'>("Switch to Tab 11")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="330"><td class="num" id="LN330">330</td><td class="line"> <span class='macro'>KEY_SWITCH_TAB_PREFIX<span class='macro_popup'>"switch-to-tab-"</span></span> <span class='string_literal'>"11"</span>,</td></tr>
+<tr class="codeline" data-linenumber="331"><td class="num" id="LN331">331</td><td class="line"> <span class='macro'>ACCEL_PATH_SWITCH_TAB_PREFIX<span class='macro_popup'>"&lt;Actions&gt;/Main/" "TabsSwitch"</span></span> <span class='string_literal'>"11"</span>, 0, 0, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="332"><td class="num" id="LN332">332</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="333"><td class="num" id="LN333">333</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="334"><td class="num" id="LN334">334</td><td class="line"> <span class='macro'>N_(<span class='string_literal'>"Switch to Tab 12"</span>)<span class='macro_popup'>("Switch to Tab 12")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="335"><td class="num" id="LN335">335</td><td class="line"> <span class='macro'>KEY_SWITCH_TAB_PREFIX<span class='macro_popup'>"switch-to-tab-"</span></span> <span class='string_literal'>"12"</span>,</td></tr>
+<tr class="codeline" data-linenumber="336"><td class="num" id="LN336">336</td><td class="line"> <span class='macro'>ACCEL_PATH_SWITCH_TAB_PREFIX<span class='macro_popup'>"&lt;Actions&gt;/Main/" "TabsSwitch"</span></span> <span class='string_literal'>"12"</span>, 0, 0, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span></td></tr>
+<tr class="codeline" data-linenumber="337"><td class="num" id="LN337">337</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="338"><td class="num" id="LN338">338</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="339"><td class="num" id="LN339">339</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="340"><td class="num" id="LN340">340</td><td class="line"><span class='keyword'>static</span> KeyEntry help_entries[] =</td></tr>
+<tr class="codeline" data-linenumber="341"><td class="num" id="LN341">341</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="342"><td class="num" id="LN342">342</td><td class="line"> { <span class='macro'>N_(<span class='string_literal'>"Contents"</span>)<span class='macro_popup'>("Contents")</span></span>, <span class='macro'>KEY_HELP<span class='macro_popup'>"help"</span></span>, <span class='macro'>ACCEL_PATH_HELP<span class='macro_popup'>"&lt;Actions&gt;/Main/" "HelpContents"</span></span>, 0, <span class='macro'>GDK_KEY_F1<span class='macro_popup'>0xffbe</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span> }</td></tr>
+<tr class="codeline" data-linenumber="343"><td class="num" id="LN343">343</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="344"><td class="num" id="LN344">344</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="345"><td class="num" id="LN345">345</td><td class="line"><span class='keyword'>static</span> KeyEntryList all_entries[] =</td></tr>
+<tr class="codeline" data-linenumber="346"><td class="num" id="LN346">346</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="347"><td class="num" id="LN347">347</td><td class="line"> { file_entries, <span class='macro'>G_N_ELEMENTS (file_entries)<span class='macro_popup'>(sizeof (file_entries) / sizeof ((file_entries)[0]))</span></span>, <span class='macro'>N_(<span class='string_literal'>"File"</span>)<span class='macro_popup'>("File")</span></span> },</td></tr>
+<tr class="codeline" data-linenumber="348"><td class="num" id="LN348">348</td><td class="line"> { edit_entries, <span class='macro'>G_N_ELEMENTS (edit_entries)<span class='macro_popup'>(sizeof (edit_entries) / sizeof ((edit_entries)[0]))</span></span>, <span class='macro'>N_(<span class='string_literal'>"Edit"</span>)<span class='macro_popup'>("Edit")</span></span> },</td></tr>
+<tr class="codeline" data-linenumber="349"><td class="num" id="LN349">349</td><td class="line"> { view_entries, <span class='macro'>G_N_ELEMENTS (view_entries)<span class='macro_popup'>(sizeof (view_entries) / sizeof ((view_entries)[0]))</span></span>, <span class='macro'>N_(<span class='string_literal'>"View"</span>)<span class='macro_popup'>("View")</span></span> },</td></tr>
+<tr class="codeline" data-linenumber="350"><td class="num" id="LN350">350</td><td class="line"> { search_entries, <span class='macro'>G_N_ELEMENTS (search_entries)<span class='macro_popup'>(sizeof (search_entries) / sizeof ((search_entries)[0]))</span></span>, <span class='macro'>N_(<span class='string_literal'>"Search"</span>)<span class='macro_popup'>("Search")</span></span> },</td></tr>
+<tr class="codeline" data-linenumber="351"><td class="num" id="LN351">351</td><td class="line"> { terminal_entries, <span class='macro'>G_N_ELEMENTS (terminal_entries)<span class='macro_popup'>(sizeof (terminal_entries) / sizeof ((terminal_entries)[0]))</span></span>, <span class='macro'>N_(<span class='string_literal'>"Terminal"</span>)<span class='macro_popup'>("Terminal")</span></span> },</td></tr>
+<tr class="codeline" data-linenumber="352"><td class="num" id="LN352">352</td><td class="line"> { tabs_entries, <span class='macro'>G_N_ELEMENTS (tabs_entries)<span class='macro_popup'>(sizeof (tabs_entries) / sizeof ((tabs_entries)[0]))</span></span>, <span class='macro'>N_(<span class='string_literal'>"Tabs"</span>)<span class='macro_popup'>("Tabs")</span></span> },</td></tr>
+<tr class="codeline" data-linenumber="353"><td class="num" id="LN353">353</td><td class="line"> { help_entries, <span class='macro'>G_N_ELEMENTS (help_entries)<span class='macro_popup'>(sizeof (help_entries) / sizeof ((help_entries)[0]))</span></span>, <span class='macro'>N_(<span class='string_literal'>"Help"</span>)<span class='macro_popup'>("Help")</span></span> }</td></tr>
+<tr class="codeline" data-linenumber="354"><td class="num" id="LN354">354</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="355"><td class="num" id="LN355">355</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="356"><td class="num" id="LN356">356</td><td class="line"><span class='keyword'>enum</span></td></tr>
+<tr class="codeline" data-linenumber="357"><td class="num" id="LN357">357</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="358"><td class="num" id="LN358">358</td><td class="line"> ACTION_COLUMN,</td></tr>
+<tr class="codeline" data-linenumber="359"><td class="num" id="LN359">359</td><td class="line"> KEYVAL_COLUMN,</td></tr>
+<tr class="codeline" data-linenumber="360"><td class="num" id="LN360">360</td><td class="line"> N_COLUMNS</td></tr>
+<tr class="codeline" data-linenumber="361"><td class="num" id="LN361">361</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="362"><td class="num" id="LN362">362</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="363"><td class="num" id="LN363">363</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> keys_change_notify (GSettings *settings,</td></tr>
+<tr class="codeline" data-linenumber="364"><td class="num" id="LN364">364</td><td class="line"> <span class='keyword'>const</span> gchar *key,</td></tr>
+<tr class="codeline" data-linenumber="365"><td class="num" id="LN365">365</td><td class="line"> gpointer user_data);</td></tr>
+<tr class="codeline" data-linenumber="366"><td class="num" id="LN366">366</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="367"><td class="num" id="LN367">367</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> accel_changed_callback (GtkAccelGroup *accel_group,</td></tr>
+<tr class="codeline" data-linenumber="368"><td class="num" id="LN368">368</td><td class="line"> guint keyval,</td></tr>
+<tr class="codeline" data-linenumber="369"><td class="num" id="LN369">369</td><td class="line"> GdkModifierType modifier,</td></tr>
+<tr class="codeline" data-linenumber="370"><td class="num" id="LN370">370</td><td class="line"> GClosure *accel_closure,</td></tr>
+<tr class="codeline" data-linenumber="371"><td class="num" id="LN371">371</td><td class="line"> gpointer data);</td></tr>
+<tr class="codeline" data-linenumber="372"><td class="num" id="LN372">372</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="373"><td class="num" id="LN373">373</td><td class="line"><span class='keyword'>static</span> gboolean binding_from_string (<span class='keyword'>const</span> <span class='keyword'>char</span> *str,</td></tr>
+<tr class="codeline" data-linenumber="374"><td class="num" id="LN374">374</td><td class="line"> guint *accelerator_key,</td></tr>
+<tr class="codeline" data-linenumber="375"><td class="num" id="LN375">375</td><td class="line"> GdkModifierType *accelerator_mods);</td></tr>
+<tr class="codeline" data-linenumber="376"><td class="num" id="LN376">376</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="377"><td class="num" id="LN377">377</td><td class="line"><span class='keyword'>static</span> gboolean binding_from_value (GVariant *value,</td></tr>
+<tr class="codeline" data-linenumber="378"><td class="num" id="LN378">378</td><td class="line"> guint *accelerator_key,</td></tr>
+<tr class="codeline" data-linenumber="379"><td class="num" id="LN379">379</td><td class="line"> GdkModifierType *accelerator_mods);</td></tr>
+<tr class="codeline" data-linenumber="380"><td class="num" id="LN380">380</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="381"><td class="num" id="LN381">381</td><td class="line"><span class='keyword'>static</span> gboolean sync_idle_cb (gpointer data);</td></tr>
+<tr class="codeline" data-linenumber="382"><td class="num" id="LN382">382</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="383"><td class="num" id="LN383">383</td><td class="line"><span class='keyword'>static</span> guint sync_idle_id = 0;</td></tr>
+<tr class="codeline" data-linenumber="384"><td class="num" id="LN384">384</td><td class="line"><span class='keyword'>static</span> GtkAccelGroup *notification_group = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="385"><td class="num" id="LN385">385</td><td class="line"><span class='comment'>/* never set GSettings keys in response to receiving a GSettings notify. */</span></td></tr>
+<tr class="codeline" data-linenumber="386"><td class="num" id="LN386">386</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>int</span> inside_gsettings_notify = 0;</td></tr>
+<tr class="codeline" data-linenumber="387"><td class="num" id="LN387">387</td><td class="line"><span class='keyword'>static</span> GtkWidget *edit_keys_dialog = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="388"><td class="num" id="LN388">388</td><td class="line"><span class='keyword'>static</span> GtkTreeStore *edit_keys_store = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="389"><td class="num" id="LN389">389</td><td class="line"><span class='keyword'>static</span> GHashTable *gsettings_key_to_entry;</td></tr>
+<tr class="codeline" data-linenumber="390"><td class="num" id="LN390">390</td><td class="line"><span class='keyword'>static</span> GSettings *settings_keybindings;</td></tr>
+<tr class="codeline" data-linenumber="391"><td class="num" id="LN391">391</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="392"><td class="num" id="LN392">392</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>char</span>*</td></tr>
+<tr class="codeline" data-linenumber="393"><td class="num" id="LN393">393</td><td class="line">binding_name (guint keyval,</td></tr>
+<tr class="codeline" data-linenumber="394"><td class="num" id="LN394">394</td><td class="line"> GdkModifierType mask)</td></tr>
+<tr class="codeline" data-linenumber="395"><td class="num" id="LN395">395</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="396"><td class="num" id="LN396">396</td><td class="line"> <span class='keyword'>if</span> (keyval != 0)</td></tr>
+<tr class="codeline" data-linenumber="397"><td class="num" id="LN397">397</td><td class="line"> <span class='keyword'>return</span> gtk_accelerator_name (keyval, mask);</td></tr>
+<tr class="codeline" data-linenumber="398"><td class="num" id="LN398">398</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="399"><td class="num" id="LN399">399</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>g_strdup (<span class='string_literal'>"disabled"</span>)<span class='macro_popup'>g_strdup_inline ("disabled")</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="400"><td class="num" id="LN400">400</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="401"><td class="num" id="LN401">401</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="402"><td class="num" id="LN402">402</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>char</span>*</td></tr>
+<tr class="codeline" data-linenumber="403"><td class="num" id="LN403">403</td><td class="line">binding_display_name (guint keyval,</td></tr>
+<tr class="codeline" data-linenumber="404"><td class="num" id="LN404">404</td><td class="line"> GdkModifierType mask)</td></tr>
+<tr class="codeline" data-linenumber="405"><td class="num" id="LN405">405</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="406"><td class="num" id="LN406">406</td><td class="line"> <span class='keyword'>if</span> (keyval != 0)</td></tr>
+<tr class="codeline" data-linenumber="407"><td class="num" id="LN407">407</td><td class="line"> <span class='keyword'>return</span> gtk_accelerator_get_label (keyval, mask);</td></tr>
+<tr class="codeline" data-linenumber="408"><td class="num" id="LN408">408</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="409"><td class="num" id="LN409">409</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>g_strdup (_(<span class='string_literal'>"Disabled"</span>))<span class='macro_popup'>g_strdup_inline (gettext ("Disabled"))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="410"><td class="num" id="LN410">410</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="411"><td class="num" id="LN411">411</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="412"><td class="num" id="LN412">412</td><td class="line"><span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="413"><td class="num" id="LN413">413</td><td class="line">terminal_accels_init (<span class='keyword'>void</span>)</td></tr>
+<tr class="codeline" data-linenumber="414"><td class="num" id="LN414">414</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="415"><td class="num" id="LN415">415</td><td class="line"> guint i, j;</td></tr>
+<tr class="codeline" data-linenumber="416"><td class="num" id="LN416">416</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="417"><td class="num" id="LN417">417</td><td class="line"> settings_keybindings = g_settings_new (<span class='macro'>CONF_KEYS_SCHEMA<span class='macro_popup'>"org.mate.terminal" ".keybindings"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="418"><td class="num" id="LN418">418</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="419"><td class="num" id="LN419">419</td><td class="line"> <span class='macro'>g_signal_connect (settings_keybindings,<span class='macro_popup'>g_signal_connect_data ((settings_keybindings), ("changed"), (<br>((GCallback) (keys_change_notify))), (((void*)0)), ((void*)0)<br>, (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="420"><td class="num" id="LN420">420</td><td class="line"> <span class='string_literal'><span class='macro'>"changed"</span>,<span class='macro_popup'>g_signal_connect_data ((settings_keybindings), ("changed"), (<br>((GCallback) (keys_change_notify))), (((void*)0)), ((void*)0)<br>, (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="421"><td class="num" id="LN421">421</td><td class="line"> <span class='macro'>G_CALLBACK(keys_change_notify),<span class='macro_popup'>g_signal_connect_data ((settings_keybindings), ("changed"), (<br>((GCallback) (keys_change_notify))), (((void*)0)), ((void*)0)<br>, (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="422"><td class="num" id="LN422">422</td><td class="line"> <span class='macro'>NULL)<span class='macro_popup'>g_signal_connect_data ((settings_keybindings), ("changed"), (<br>((GCallback) (keys_change_notify))), (((void*)0)), ((void*)0)<br>, (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="423"><td class="num" id="LN423">423</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="424"><td class="num" id="LN424">424</td><td class="line"> gsettings_key_to_entry = g_hash_table_new (g_str_hash, g_str_equal);</td></tr>
+<tr class="codeline" data-linenumber="425"><td class="num" id="LN425">425</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="426"><td class="num" id="LN426">426</td><td class="line"> notification_group = gtk_accel_group_new ();</td></tr>
+<tr class="codeline" data-linenumber="427"><td class="num" id="LN427">427</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="428"><td class="num" id="LN428">428</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; <span class='macro'>G_N_ELEMENTS (all_entries)<span class='macro_popup'>(sizeof (all_entries) / sizeof ((all_entries)[0]))</span></span>; ++i)</td></tr>
+<tr class="codeline" data-linenumber="429"><td class="num" id="LN429">429</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="430"><td class="num" id="LN430">430</td><td class="line"> <span class='keyword'>for</span> (j = 0; j &lt; all_entries[i].n_elements; ++j)</td></tr>
+<tr class="codeline" data-linenumber="431"><td class="num" id="LN431">431</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="432"><td class="num" id="LN432">432</td><td class="line"> KeyEntry *key_entry;</td></tr>
+<tr class="codeline" data-linenumber="433"><td class="num" id="LN433">433</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="434"><td class="num" id="LN434">434</td><td class="line"> key_entry = &amp;(all_entries[i].key_entry[j]);</td></tr>
+<tr class="codeline" data-linenumber="435"><td class="num" id="LN435">435</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="436"><td class="num" id="LN436">436</td><td class="line"> g_hash_table_insert (gsettings_key_to_entry,</td></tr>
+<tr class="codeline" data-linenumber="437"><td class="num" id="LN437">437</td><td class="line"> (gpointer) key_entry-&gt;gsettings_key,</td></tr>
+<tr class="codeline" data-linenumber="438"><td class="num" id="LN438">438</td><td class="line"> key_entry);</td></tr>
+<tr class="codeline" data-linenumber="439"><td class="num" id="LN439">439</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="440"><td class="num" id="LN440">440</td><td class="line"> key_entry-&gt;closure = g_closure_new_simple (<span class='keyword'>sizeof</span> (GClosure), key_entry);</td></tr>
+<tr class="codeline" data-linenumber="441"><td class="num" id="LN441">441</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="442"><td class="num" id="LN442">442</td><td class="line"> g_closure_ref (key_entry-&gt;closure);</td></tr>
+<tr class="codeline" data-linenumber="443"><td class="num" id="LN443">443</td><td class="line"> g_closure_sink (key_entry-&gt;closure);</td></tr>
+<tr class="codeline" data-linenumber="444"><td class="num" id="LN444">444</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="445"><td class="num" id="LN445">445</td><td class="line"> gtk_accel_group_connect_by_path (notification_group,</td></tr>
+<tr class="codeline" data-linenumber="446"><td class="num" id="LN446">446</td><td class="line"> <span class='macro'>I_(key_entry-&gt;accel_path)<span class='macro_popup'>g_intern_static_string (key_entry-&gt;accel_path)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="447"><td class="num" id="LN447">447</td><td class="line"> key_entry-&gt;closure);</td></tr>
+<tr class="codeline" data-linenumber="448"><td class="num" id="LN448">448</td><td class="line"> keys_change_notify (settings_keybindings, key_entry-&gt;gsettings_key, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="449"><td class="num" id="LN449">449</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="450"><td class="num" id="LN450">450</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="451"><td class="num" id="LN451">451</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="452"><td class="num" id="LN452">452</td><td class="line"> <span class='macro'>g_signal_connect (notification_group, <span class='string_literal'>"accel-changed"</span>,<span class='macro_popup'>g_signal_connect_data ((notification_group), ("accel-changed"<br>), (((GCallback) (accel_changed_callback))), (((void*)0)), ((<br>void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="453"><td class="num" id="LN453">453</td><td class="line"> <span class='macro'>G_CALLBACK (accel_changed_callback), NULL)<span class='macro_popup'>g_signal_connect_data ((notification_group), ("accel-changed"<br>), (((GCallback) (accel_changed_callback))), (((void*)0)), ((<br>void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="454"><td class="num" id="LN454">454</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="455"><td class="num" id="LN455">455</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="456"><td class="num" id="LN456">456</td><td class="line"><span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="457"><td class="num" id="LN457">457</td><td class="line">terminal_accels_shutdown (<span class='keyword'>void</span>)</td></tr>
+<tr class="codeline" data-linenumber="458"><td class="num" id="LN458">458</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="459"><td class="num" id="LN459">459</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="460"><td class="num" id="LN460">460</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (settings_keybindings,<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_keybindings),<br> (GSignalMatchType) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA<br>), 0, 0, ((void*)0), (((GCallback) (keys_change_notify))), ((<br>(void*)0)))</span></span></td></tr>
+<tr class="codeline" data-linenumber="461"><td class="num" id="LN461">461</td><td class="line"> <span class='macro'>G_CALLBACK(keys_change_notify),<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_keybindings),<br> (GSignalMatchType) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA<br>), 0, 0, ((void*)0), (((GCallback) (keys_change_notify))), ((<br>(void*)0)))</span></span></td></tr>
+<tr class="codeline" data-linenumber="462"><td class="num" id="LN462">462</td><td class="line"> <span class='macro'>NULL)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_keybindings),<br> (GSignalMatchType) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA<br>), 0, 0, ((void*)0), (((GCallback) (keys_change_notify))), ((<br>(void*)0)))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="463"><td class="num" id="LN463">463</td><td class="line"> g_object_unref (settings_keybindings);</td></tr>
+<tr class="codeline" data-linenumber="464"><td class="num" id="LN464">464</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="465"><td class="num" id="LN465">465</td><td class="line"> <span class='keyword'>if</span> (sync_idle_id != 0)</td></tr>
+<tr class="codeline" data-linenumber="466"><td class="num" id="LN466">466</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="467"><td class="num" id="LN467">467</td><td class="line"> g_source_remove (sync_idle_id);</td></tr>
+<tr class="codeline" data-linenumber="468"><td class="num" id="LN468">468</td><td class="line"> sync_idle_id = 0;</td></tr>
+<tr class="codeline" data-linenumber="469"><td class="num" id="LN469">469</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="470"><td class="num" id="LN470">470</td><td class="line"> sync_idle_cb (<span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="471"><td class="num" id="LN471">471</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="472"><td class="num" id="LN472">472</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="473"><td class="num" id="LN473">473</td><td class="line"> g_hash_table_destroy (gsettings_key_to_entry);</td></tr>
+<tr class="codeline" data-linenumber="474"><td class="num" id="LN474">474</td><td class="line"> gsettings_key_to_entry = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="475"><td class="num" id="LN475">475</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="476"><td class="num" id="LN476">476</td><td class="line"> g_object_unref (notification_group);</td></tr>
+<tr class="codeline" data-linenumber="477"><td class="num" id="LN477">477</td><td class="line"> notification_group = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="478"><td class="num" id="LN478">478</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="479"><td class="num" id="LN479">479</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="480"><td class="num" id="LN480">480</td><td class="line"><span class='keyword'>static</span> gboolean</td></tr>
+<tr class="codeline" data-linenumber="481"><td class="num" id="LN481">481</td><td class="line">update_model_foreach (GtkTreeModel *model,</td></tr>
+<tr class="codeline" data-linenumber="482"><td class="num" id="LN482">482</td><td class="line"> GtkTreePath *path,</td></tr>
+<tr class="codeline" data-linenumber="483"><td class="num" id="LN483">483</td><td class="line"> GtkTreeIter *iter,</td></tr>
+<tr class="codeline" data-linenumber="484"><td class="num" id="LN484">484</td><td class="line"> gpointer data)</td></tr>
+<tr class="codeline" data-linenumber="485"><td class="num" id="LN485">485</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="486"><td class="num" id="LN486">486</td><td class="line"> KeyEntry *key_entry = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="487"><td class="num" id="LN487">487</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="488"><td class="num" id="LN488">488</td><td class="line"> gtk_tree_model_get (model, iter,</td></tr>
+<tr class="codeline" data-linenumber="489"><td class="num" id="LN489">489</td><td class="line"> KEYVAL_COLUMN, &amp;key_entry,</td></tr>
+<tr class="codeline" data-linenumber="490"><td class="num" id="LN490">490</td><td class="line"> -1);</td></tr>
+<tr class="codeline" data-linenumber="491"><td class="num" id="LN491">491</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="492"><td class="num" id="LN492">492</td><td class="line"> <span class='keyword'>if</span> (key_entry == (KeyEntry *) data)</td></tr>
+<tr class="codeline" data-linenumber="493"><td class="num" id="LN493">493</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="494"><td class="num" id="LN494">494</td><td class="line"> gtk_tree_model_row_changed (model, path, iter);</td></tr>
+<tr class="codeline" data-linenumber="495"><td class="num" id="LN495">495</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="496"><td class="num" id="LN496">496</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="497"><td class="num" id="LN497">497</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="498"><td class="num" id="LN498">498</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="499"><td class="num" id="LN499">499</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="500"><td class="num" id="LN500">500</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="501"><td class="num" id="LN501">501</td><td class="line">keys_change_notify (GSettings *settings,</td></tr>
+<tr class="codeline" data-linenumber="502"><td class="num" id="LN502">502</td><td class="line"> <span class='keyword'>const</span> gchar *key,</td></tr>
+<tr class="codeline" data-linenumber="503"><td class="num" id="LN503">503</td><td class="line"> gpointer user_data)</td></tr>
+<tr class="codeline" data-linenumber="504"><td class="num" id="LN504">504</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="505"><td class="num" id="LN505">505</td><td class="line"> GVariant *val;</td></tr>
+<tr class="codeline" data-linenumber="506"><td class="num" id="LN506">506</td><td class="line"> KeyEntry *key_entry;</td></tr>
+<tr class="codeline" data-linenumber="507"><td class="num" id="LN507">507</td><td class="line"> GdkModifierType mask;</td></tr>
+<tr class="codeline" data-linenumber="508"><td class="num" id="LN508">508</td><td class="line"> guint keyval;</td></tr>
+<tr class="codeline" data-linenumber="509"><td class="num" id="LN509">509</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="510"><td class="num" id="LN510">510</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_ACCELS,<span class='macro_popup'>do { if (0) g_printerr("key %s changed\n", key); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="511"><td class="num" id="LN511">511</td><td class="line"> <span class='string_literal'><span class='macro'>"key %s changed\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("key %s changed\n", key); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="512"><td class="num" id="LN512">512</td><td class="line"> <span class='macro'>key)<span class='macro_popup'>do { if (0) g_printerr("key %s changed\n", key); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="513"><td class="num" id="LN513">513</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="514"><td class="num" id="LN514">514</td><td class="line"> val = g_settings_get_value (settings, key);</td></tr>
+<tr class="codeline" data-linenumber="515"><td class="num" id="LN515">515</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="516"><td class="num" id="LN516">516</td><td class="line"><span class='directive'>#ifdef MATE_ENABLE_DEBUG</span></td></tr>
+<tr class="codeline" data-linenumber="517"><td class="num" id="LN517">517</td><td class="line"> <span class='macro'>_TERMINAL_DEBUG_IF (TERMINAL_DEBUG_ACCELS)<span class='macro_popup'>if (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="518"><td class="num" id="LN518">518</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="519"><td class="num" id="LN519">519</td><td class="line"> <span class='keyword'>if</span> (val == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="520"><td class="num" id="LN520">520</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_ACCELS, <span class='string_literal'>" changed to be unset\n"</span>)<span class='macro_popup'>do { if (0) g_printerr(" changed to be unset\n"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="521"><td class="num" id="LN521">521</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (!g_variant_is_of_type (val, <span class='macro'>G_VARIANT_TYPE_STRING<span class='macro_popup'>((const GVariantType *) "s")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="522"><td class="num" id="LN522">522</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_ACCELS, <span class='string_literal'>" changed to non-string value\n"</span>)<span class='macro_popup'>do { if (0) g_printerr(" changed to non-string value\n"); } while<br> (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="523"><td class="num" id="LN523">523</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="524"><td class="num" id="LN524">524</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_ACCELS,<span class='macro_popup'>do { if (0) g_printerr(" changed to \"%s\"\n", g_variant_get_string<br> (val, ((void*)0))); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="525"><td class="num" id="LN525">525</td><td class="line"> <span class='string_literal'><span class='macro'>" changed to \"%s\"\n"</span>,<span class='macro_popup'>do { if (0) g_printerr(" changed to \"%s\"\n", g_variant_get_string<br> (val, ((void*)0))); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="526"><td class="num" id="LN526">526</td><td class="line"> <span class='macro'>g_variant_get_string (val, NULL))<span class='macro_popup'>do { if (0) g_printerr(" changed to \"%s\"\n", g_variant_get_string<br> (val, ((void*)0))); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="527"><td class="num" id="LN527">527</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="528"><td class="num" id="LN528">528</td><td class="line"><span class='directive'>#endif</span></td></tr>
+<tr class="codeline" data-linenumber="529"><td class="num" id="LN529">529</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="530"><td class="num" id="LN530">530</td><td class="line"> key_entry = g_hash_table_lookup (gsettings_key_to_entry, key);</td></tr>
+<tr class="codeline" data-linenumber="531"><td class="num" id="LN531">531</td><td class="line"> <span class='keyword'>if</span> (!key_entry)</td></tr>
+<tr class="codeline" data-linenumber="532"><td class="num" id="LN532">532</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="533"><td class="num" id="LN533">533</td><td class="line"> <span class='comment'>/* shouldn't really happen, but let's be safe */</span></td></tr>
+<tr class="codeline" data-linenumber="534"><td class="num" id="LN534">534</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_ACCELS,<span class='macro_popup'>do { if (0) g_printerr(" WARNING: KeyEntry for changed key not found, bailing out\n"<br>); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="535"><td class="num" id="LN535">535</td><td class="line"> <span class='string_literal'><span class='macro'>" WARNING: KeyEntry for changed key not found, bailing out\n"</span>)<span class='macro_popup'>do { if (0) g_printerr(" WARNING: KeyEntry for changed key not found, bailing out\n"<br>); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="536"><td class="num" id="LN536">536</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="537"><td class="num" id="LN537">537</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="538"><td class="num" id="LN538">538</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="539"><td class="num" id="LN539">539</td><td class="line"> <span class='keyword'>if</span> (!binding_from_value (val, &amp;keyval, &amp;mask))</td></tr>
+<tr class="codeline" data-linenumber="540"><td class="num" id="LN540">540</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="541"><td class="num" id="LN541">541</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *str = g_variant_is_of_type (val, <span class='macro'>G_VARIANT_TYPE_STRING<span class='macro_popup'>((const GVariantType *) "s")</span></span>) ? g_variant_get_string (val, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>) : <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="542"><td class="num" id="LN542">542</td><td class="line"> g_printerr (<span class='string_literal'>"The value \"%s\" of configuration key %s is not a valid accelerator\n"</span>,</td></tr>
+<tr class="codeline" data-linenumber="543"><td class="num" id="LN543">543</td><td class="line"> str ? str : <span class='string_literal'>"(null)"</span>,</td></tr>
+<tr class="codeline" data-linenumber="544"><td class="num" id="LN544">544</td><td class="line"> key_entry-&gt;gsettings_key);</td></tr>
+<tr class="codeline" data-linenumber="545"><td class="num" id="LN545">545</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="546"><td class="num" id="LN546">546</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="547"><td class="num" id="LN547">547</td><td class="line"> key_entry-&gt;gsettings_keyval = keyval;</td></tr>
+<tr class="codeline" data-linenumber="548"><td class="num" id="LN548">548</td><td class="line"> key_entry-&gt;gsettings_mask = mask;</td></tr>
+<tr class="codeline" data-linenumber="549"><td class="num" id="LN549">549</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="550"><td class="num" id="LN550">550</td><td class="line"> <span class='comment'>/* Unlock the path, so we can change its accel */</span></td></tr>
+<tr class="codeline" data-linenumber="551"><td class="num" id="LN551">551</td><td class="line"> <span class='keyword'>if</span> (!key_entry-&gt;accel_path_unlocked)</td></tr>
+<tr class="codeline" data-linenumber="552"><td class="num" id="LN552">552</td><td class="line"> gtk_accel_map_unlock_path (key_entry-&gt;accel_path);</td></tr>
+<tr class="codeline" data-linenumber="553"><td class="num" id="LN553">553</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="554"><td class="num" id="LN554">554</td><td class="line"> <span class='comment'>/* sync over to GTK */</span></td></tr>
+<tr class="codeline" data-linenumber="555"><td class="num" id="LN555">555</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_ACCELS,<span class='macro_popup'>do { if (0) g_printerr("changing path %s to %s\n", key_entry-&gt;<br>accel_path, binding_name (keyval, mask)); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="556"><td class="num" id="LN556">556</td><td class="line"> <span class='string_literal'><span class='macro'>"changing path %s to %s\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("changing path %s to %s\n", key_entry-&gt;<br>accel_path, binding_name (keyval, mask)); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="557"><td class="num" id="LN557">557</td><td class="line"> <span class='macro'>key_entry-&gt;accel_path,<span class='macro_popup'>do { if (0) g_printerr("changing path %s to %s\n", key_entry-&gt;<br>accel_path, binding_name (keyval, mask)); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="558"><td class="num" id="LN558">558</td><td class="line"> <span class='macro'>binding_name (keyval, mask))<span class='macro_popup'>do { if (0) g_printerr("changing path %s to %s\n", key_entry-&gt;<br>accel_path, binding_name (keyval, mask)); } while (0)</span></span>; <span class='comment'>/* memleak */</span></td></tr>
+<tr class="codeline" data-linenumber="559"><td class="num" id="LN559">559</td><td class="line"> inside_gsettings_notify += 1;</td></tr>
+<tr class="codeline" data-linenumber="560"><td class="num" id="LN560">560</td><td class="line"> <span class='comment'>/* Note that this may return FALSE, e.g. when the entry was already set correctly. */</span></td></tr>
+<tr class="codeline" data-linenumber="561"><td class="num" id="LN561">561</td><td class="line"> gtk_accel_map_change_entry (key_entry-&gt;accel_path,</td></tr>
+<tr class="codeline" data-linenumber="562"><td class="num" id="LN562">562</td><td class="line"> keyval, mask,</td></tr>
+<tr class="codeline" data-linenumber="563"><td class="num" id="LN563">563</td><td class="line"> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="564"><td class="num" id="LN564">564</td><td class="line"> inside_gsettings_notify -= 1;</td></tr>
+<tr class="codeline" data-linenumber="565"><td class="num" id="LN565">565</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="566"><td class="num" id="LN566">566</td><td class="line"> <span class='comment'>/* Lock the path if the GSettings key isn't writable */</span></td></tr>
+<tr class="codeline" data-linenumber="567"><td class="num" id="LN567">567</td><td class="line"> key_entry-&gt;accel_path_unlocked = g_settings_is_writable (settings, key);</td></tr>
+<tr class="codeline" data-linenumber="568"><td class="num" id="LN568">568</td><td class="line"> <span class='keyword'>if</span> (!key_entry-&gt;accel_path_unlocked)</td></tr>
+<tr class="codeline" data-linenumber="569"><td class="num" id="LN569">569</td><td class="line"> gtk_accel_map_lock_path (key_entry-&gt;accel_path);</td></tr>
+<tr class="codeline" data-linenumber="570"><td class="num" id="LN570">570</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="571"><td class="num" id="LN571">571</td><td class="line"> <span class='comment'>/* This seems necessary to update the tree model, since sometimes the</span></td></tr>
+<tr class="codeline" data-linenumber="572"><td class="num" id="LN572">572</td><td class="line"> <span class='comment'>* notification on the notification_group seems not to be emitted correctly.</span></td></tr>
+<tr class="codeline" data-linenumber="573"><td class="num" id="LN573">573</td><td class="line"> <span class='comment'>* Without this change, when trying to set an accel to e.g. Alt-T (while the main</span></td></tr>
+<tr class="codeline" data-linenumber="574"><td class="num" id="LN574">574</td><td class="line"> <span class='comment'>* menu in the terminal windows is _Terminal with Alt-T mnemonic) only displays</span></td></tr>
+<tr class="codeline" data-linenumber="575"><td class="num" id="LN575">575</td><td class="line"> <span class='comment'>* the accel change after a re-expose of the row.</span></td></tr>
+<tr class="codeline" data-linenumber="576"><td class="num" id="LN576">576</td><td class="line"> <span class='comment'>* FIXME: Find out *why* the accel-changed signal is wrong here!</span></td></tr>
+<tr class="codeline" data-linenumber="577"><td class="num" id="LN577">577</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="578"><td class="num" id="LN578">578</td><td class="line"> <span class='keyword'>if</span> (edit_keys_store)</td></tr>
+<tr class="codeline" data-linenumber="579"><td class="num" id="LN579">579</td><td class="line"> gtk_tree_model_foreach (<span class='macro'>GTK_TREE_MODEL (edit_keys_store)<span class='macro_popup'>((((GtkTreeModel*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((edit_keys_store)), ((gtk_tree_model_get_type ()))))))</span></span>, update_model_foreach, key_entry);</td></tr>
+<tr class="codeline" data-linenumber="580"><td class="num" id="LN580">580</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="581"><td class="num" id="LN581">581</td><td class="line"> g_variant_unref(val);</td></tr>
+<tr class="codeline" data-linenumber="582"><td class="num" id="LN582">582</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="583"><td class="num" id="LN583">583</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="584"><td class="num" id="LN584">584</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="585"><td class="num" id="LN585">585</td><td class="line">accel_changed_callback (GtkAccelGroup *accel_group,</td></tr>
+<tr class="codeline" data-linenumber="586"><td class="num" id="LN586">586</td><td class="line"> guint keyval,</td></tr>
+<tr class="codeline" data-linenumber="587"><td class="num" id="LN587">587</td><td class="line"> GdkModifierType modifier,</td></tr>
+<tr class="codeline" data-linenumber="588"><td class="num" id="LN588">588</td><td class="line"> GClosure *accel_closure,</td></tr>
+<tr class="codeline" data-linenumber="589"><td class="num" id="LN589">589</td><td class="line"> gpointer data)</td></tr>
+<tr class="codeline" data-linenumber="590"><td class="num" id="LN590">590</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="591"><td class="num" id="LN591">591</td><td class="line"> <span class='comment'>/* FIXME because GTK accel API is so nonsensical, we get</span></td></tr>
+<tr class="codeline" data-linenumber="592"><td class="num" id="LN592">592</td><td class="line"> <span class='comment'>* a notify for each closure, on both the added and the removed</span></td></tr>
+<tr class="codeline" data-linenumber="593"><td class="num" id="LN593">593</td><td class="line"> <span class='comment'>* accelerator. We just use the accel closure to find our</span></td></tr>
+<tr class="codeline" data-linenumber="594"><td class="num" id="LN594">594</td><td class="line"> <span class='comment'>* accel entry, then update the value of that entry.</span></td></tr>
+<tr class="codeline" data-linenumber="595"><td class="num" id="LN595">595</td><td class="line"> <span class='comment'>* We use an idle function to avoid setting the entry</span></td></tr>
+<tr class="codeline" data-linenumber="596"><td class="num" id="LN596">596</td><td class="line"> <span class='comment'>* in GSettings when the accelerator gets removed and then</span></td></tr>
+<tr class="codeline" data-linenumber="597"><td class="num" id="LN597">597</td><td class="line"> <span class='comment'>* setting it again when it gets added.</span></td></tr>
+<tr class="codeline" data-linenumber="598"><td class="num" id="LN598">598</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="599"><td class="num" id="LN599">599</td><td class="line"> KeyEntry *key_entry;</td></tr>
+<tr class="codeline" data-linenumber="600"><td class="num" id="LN600">600</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="601"><td class="num" id="LN601">601</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_ACCELS,<span class='macro_popup'>do { if (0) g_printerr("Changed accel %s closure %p\n", binding_name<br> (keyval, modifier), accel_closure); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="602"><td class="num" id="LN602">602</td><td class="line"> <span class='string_literal'><span class='macro'>"Changed accel %s closure %p\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("Changed accel %s closure %p\n", binding_name<br> (keyval, modifier), accel_closure); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="603"><td class="num" id="LN603">603</td><td class="line"> <span class='macro'>binding_name (keyval, modifier), <span class='comment'>/* memleak */<span class='macro_popup'>do { if (0) g_printerr("Changed accel %s closure %p\n", binding_name<br> (keyval, modifier), accel_closure); } while (0)</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="604"><td class="num" id="LN604">604</td><td class="line"> <span class='macro'>accel_closure)<span class='macro_popup'>do { if (0) g_printerr("Changed accel %s closure %p\n", binding_name<br> (keyval, modifier), accel_closure); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="605"><td class="num" id="LN605">605</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="606"><td class="num" id="LN606">606</td><td class="line"> <span class='keyword'>if</span> (inside_gsettings_notify)</td></tr>
+<tr class="codeline" data-linenumber="607"><td class="num" id="LN607">607</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="608"><td class="num" id="LN608">608</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_ACCELS,<span class='macro_popup'>do { if (0) g_printerr("Ignoring change from gtk because we're inside a GSettings notify\n"<br>); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="609"><td class="num" id="LN609">609</td><td class="line"> <span class='string_literal'><span class='macro'>"Ignoring change from gtk because we're inside a GSettings notify\n"</span>)<span class='macro_popup'>do { if (0) g_printerr("Ignoring change from gtk because we're inside a GSettings notify\n"<br>); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="610"><td class="num" id="LN610">610</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="611"><td class="num" id="LN611">611</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="612"><td class="num" id="LN612">612</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="613"><td class="num" id="LN613">613</td><td class="line"> key_entry = accel_closure-&gt;data;</td></tr>
+<tr class="codeline" data-linenumber="614"><td class="num" id="LN614">614</td><td class="line"> <span class='macro'>g_assert (key_entry)<span class='macro_popup'>do { if (key_entry) ; else g_assertion_message_expr (((gchar*<br>) 0), "terminal-accels.c", 614, ((const char*) (__func__)), "key_entry"<br>); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="615"><td class="num" id="LN615">615</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="616"><td class="num" id="LN616">616</td><td class="line"> key_entry-&gt;needs_gsettings_sync = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="617"><td class="num" id="LN617">617</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="618"><td class="num" id="LN618">618</td><td class="line"> <span class='keyword'>if</span> (sync_idle_id == 0)</td></tr>
+<tr class="codeline" data-linenumber="619"><td class="num" id="LN619">619</td><td class="line"> sync_idle_id = g_idle_add (sync_idle_cb, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="620"><td class="num" id="LN620">620</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="621"><td class="num" id="LN621">621</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="622"><td class="num" id="LN622">622</td><td class="line"><span class='keyword'>static</span> gboolean</td></tr>
+<tr class="codeline" data-linenumber="623"><td class="num" id="LN623">623</td><td class="line">binding_from_string (<span class='keyword'>const</span> <span class='keyword'>char</span> *str,</td></tr>
+<tr class="codeline" data-linenumber="624"><td class="num" id="LN624">624</td><td class="line"> guint *accelerator_key,</td></tr>
+<tr class="codeline" data-linenumber="625"><td class="num" id="LN625">625</td><td class="line"> GdkModifierType *accelerator_mods)</td></tr>
+<tr class="codeline" data-linenumber="626"><td class="num" id="LN626">626</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="627"><td class="num" id="LN627">627</td><td class="line"> <span class='keyword'>if</span> (str == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span> ||</td></tr>
+<tr class="codeline" data-linenumber="628"><td class="num" id="LN628">628</td><td class="line"> strcmp (str, <span class='string_literal'>"disabled"</span>) == 0)</td></tr>
+<tr class="codeline" data-linenumber="629"><td class="num" id="LN629">629</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="630"><td class="num" id="LN630">630</td><td class="line"> *accelerator_key = 0;</td></tr>
+<tr class="codeline" data-linenumber="631"><td class="num" id="LN631">631</td><td class="line"> *accelerator_mods = 0;</td></tr>
+<tr class="codeline" data-linenumber="632"><td class="num" id="LN632">632</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="633"><td class="num" id="LN633">633</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="634"><td class="num" id="LN634">634</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="635"><td class="num" id="LN635">635</td><td class="line"> gtk_accelerator_parse (str, accelerator_key, accelerator_mods);</td></tr>
+<tr class="codeline" data-linenumber="636"><td class="num" id="LN636">636</td><td class="line"> <span class='keyword'>if</span> (*accelerator_key == 0 &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="637"><td class="num" id="LN637">637</td><td class="line"> *accelerator_mods == 0)</td></tr>
+<tr class="codeline" data-linenumber="638"><td class="num" id="LN638">638</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="639"><td class="num" id="LN639">639</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="640"><td class="num" id="LN640">640</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="641"><td class="num" id="LN641">641</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="642"><td class="num" id="LN642">642</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="643"><td class="num" id="LN643">643</td><td class="line"><span class='keyword'>static</span> gboolean</td></tr>
+<tr class="codeline" data-linenumber="644"><td class="num" id="LN644">644</td><td class="line">binding_from_value (GVariant *value,</td></tr>
+<tr class="codeline" data-linenumber="645"><td class="num" id="LN645">645</td><td class="line"> guint *accelerator_key,</td></tr>
+<tr class="codeline" data-linenumber="646"><td class="num" id="LN646">646</td><td class="line"> GdkModifierType *accelerator_mods)</td></tr>
+<tr class="codeline" data-linenumber="647"><td class="num" id="LN647">647</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="648"><td class="num" id="LN648">648</td><td class="line"> <span class='keyword'>if</span> (value == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="649"><td class="num" id="LN649">649</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="650"><td class="num" id="LN650">650</td><td class="line"> <span class='comment'>/* unset */</span></td></tr>
+<tr class="codeline" data-linenumber="651"><td class="num" id="LN651">651</td><td class="line"> *accelerator_key = 0;</td></tr>
+<tr class="codeline" data-linenumber="652"><td class="num" id="LN652">652</td><td class="line"> *accelerator_mods = 0;</td></tr>
+<tr class="codeline" data-linenumber="653"><td class="num" id="LN653">653</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="654"><td class="num" id="LN654">654</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="655"><td class="num" id="LN655">655</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="656"><td class="num" id="LN656">656</td><td class="line"> <span class='keyword'>if</span> (!g_variant_is_of_type (value, <span class="mrange"><span class="mrange"><span class='macro'>G_VARIANT_TYPE_STRING<span class='macro_popup'>((const GVariantType *) "s")</span></span></span></span>))</td></tr>
+<tr><td class="num"></td><td class="line"><div id="EndPath" class="msg msgEvent" style="margin-left:43ex; max-width:31em">Casting a non-structure type to a structure type and accessing a field can lead to memory access errors or data corruption</div></td></tr>
+<tr class="codeline" data-linenumber="657"><td class="num" id="LN657">657</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="658"><td class="num" id="LN658">658</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="659"><td class="num" id="LN659">659</td><td class="line"> <span class='keyword'>return</span> binding_from_string (g_variant_get_string (value,<span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>),</td></tr>
+<tr class="codeline" data-linenumber="660"><td class="num" id="LN660">660</td><td class="line"> accelerator_key,</td></tr>
+<tr class="codeline" data-linenumber="661"><td class="num" id="LN661">661</td><td class="line"> accelerator_mods);</td></tr>
+<tr class="codeline" data-linenumber="662"><td class="num" id="LN662">662</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="663"><td class="num" id="LN663">663</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="664"><td class="num" id="LN664">664</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="665"><td class="num" id="LN665">665</td><td class="line">add_key_entry_to_changeset (gpointer key,</td></tr>
+<tr class="codeline" data-linenumber="666"><td class="num" id="LN666">666</td><td class="line"> KeyEntry *key_entry,</td></tr>
+<tr class="codeline" data-linenumber="667"><td class="num" id="LN667">667</td><td class="line"> GSettings *changeset)</td></tr>
+<tr class="codeline" data-linenumber="668"><td class="num" id="LN668">668</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="669"><td class="num" id="LN669">669</td><td class="line"> GtkAccelKey gtk_key;</td></tr>
+<tr class="codeline" data-linenumber="670"><td class="num" id="LN670">670</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="671"><td class="num" id="LN671">671</td><td class="line"> <span class='keyword'>if</span> (!key_entry-&gt;needs_gsettings_sync)</td></tr>
+<tr class="codeline" data-linenumber="672"><td class="num" id="LN672">672</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="673"><td class="num" id="LN673">673</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="674"><td class="num" id="LN674">674</td><td class="line"> key_entry-&gt;needs_gsettings_sync = <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="675"><td class="num" id="LN675">675</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="676"><td class="num" id="LN676">676</td><td class="line"> <span class='keyword'>if</span> (gtk_accel_map_lookup_entry (key_entry-&gt;accel_path, &amp;gtk_key) &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="677"><td class="num" id="LN677">677</td><td class="line"> (gtk_key.accel_key != key_entry-&gt;gsettings_keyval ||</td></tr>
+<tr class="codeline" data-linenumber="678"><td class="num" id="LN678">678</td><td class="line"> gtk_key.accel_mods != key_entry-&gt;gsettings_mask))</td></tr>
+<tr class="codeline" data-linenumber="679"><td class="num" id="LN679">679</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="680"><td class="num" id="LN680">680</td><td class="line"> <span class='keyword'>char</span> *accel_name;</td></tr>
+<tr class="codeline" data-linenumber="681"><td class="num" id="LN681">681</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="682"><td class="num" id="LN682">682</td><td class="line"> accel_name = binding_name (gtk_key.accel_key, gtk_key.accel_mods);</td></tr>
+<tr class="codeline" data-linenumber="683"><td class="num" id="LN683">683</td><td class="line"> g_settings_set_string (changeset, key_entry-&gt;gsettings_key, accel_name);</td></tr>
+<tr class="codeline" data-linenumber="684"><td class="num" id="LN684">684</td><td class="line"> g_free (accel_name);</td></tr>
+<tr class="codeline" data-linenumber="685"><td class="num" id="LN685">685</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="686"><td class="num" id="LN686">686</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="687"><td class="num" id="LN687">687</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="688"><td class="num" id="LN688">688</td><td class="line"><span class='keyword'>static</span> gboolean</td></tr>
+<tr class="codeline" data-linenumber="689"><td class="num" id="LN689">689</td><td class="line">sync_idle_cb (gpointer data)</td></tr>
+<tr class="codeline" data-linenumber="690"><td class="num" id="LN690">690</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="691"><td class="num" id="LN691">691</td><td class="line"> GSettings *changeset;</td></tr>
+<tr class="codeline" data-linenumber="692"><td class="num" id="LN692">692</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="693"><td class="num" id="LN693">693</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_ACCELS,<span class='macro_popup'>do { if (0) g_printerr("GSettings sync handler\n"); } while (<br>0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="694"><td class="num" id="LN694">694</td><td class="line"> <span class='string_literal'><span class='macro'>"GSettings sync handler\n"</span>)<span class='macro_popup'>do { if (0) g_printerr("GSettings sync handler\n"); } while (<br>0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="695"><td class="num" id="LN695">695</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="696"><td class="num" id="LN696">696</td><td class="line"> sync_idle_id = 0;</td></tr>
+<tr class="codeline" data-linenumber="697"><td class="num" id="LN697">697</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="698"><td class="num" id="LN698">698</td><td class="line"> changeset = g_settings_new (<span class='macro'>CONF_KEYS_SCHEMA<span class='macro_popup'>"org.mate.terminal" ".keybindings"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="699"><td class="num" id="LN699">699</td><td class="line"> g_settings_delay (changeset);</td></tr>
+<tr class="codeline" data-linenumber="700"><td class="num" id="LN700">700</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="701"><td class="num" id="LN701">701</td><td class="line"> g_hash_table_foreach (gsettings_key_to_entry, (GHFunc) add_key_entry_to_changeset, changeset);</td></tr>
+<tr class="codeline" data-linenumber="702"><td class="num" id="LN702">702</td><td class="line"> g_settings_apply(changeset);</td></tr>
+<tr class="codeline" data-linenumber="703"><td class="num" id="LN703">703</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="704"><td class="num" id="LN704">704</td><td class="line"> g_object_unref (changeset);</td></tr>
+<tr class="codeline" data-linenumber="705"><td class="num" id="LN705">705</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="706"><td class="num" id="LN706">706</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="707"><td class="num" id="LN707">707</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="708"><td class="num" id="LN708">708</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="709"><td class="num" id="LN709">709</td><td class="line"><span class='comment'>/* We have the same KeyEntry* in both columns;</span></td></tr>
+<tr class="codeline" data-linenumber="710"><td class="num" id="LN710">710</td><td class="line"> <span class='comment'>* we only have two columns because we want to be able</span></td></tr>
+<tr class="codeline" data-linenumber="711"><td class="num" id="LN711">711</td><td class="line"> <span class='comment'>* to sort by either one of them.</span></td></tr>
+<tr class="codeline" data-linenumber="712"><td class="num" id="LN712">712</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="713"><td class="num" id="LN713">713</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="714"><td class="num" id="LN714">714</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="715"><td class="num" id="LN715">715</td><td class="line">accel_set_func (GtkTreeViewColumn *tree_column,</td></tr>
+<tr class="codeline" data-linenumber="716"><td class="num" id="LN716">716</td><td class="line"> GtkCellRenderer *cell,</td></tr>
+<tr class="codeline" data-linenumber="717"><td class="num" id="LN717">717</td><td class="line"> GtkTreeModel *model,</td></tr>
+<tr class="codeline" data-linenumber="718"><td class="num" id="LN718">718</td><td class="line"> GtkTreeIter *iter,</td></tr>
+<tr class="codeline" data-linenumber="719"><td class="num" id="LN719">719</td><td class="line"> gpointer data)</td></tr>
+<tr class="codeline" data-linenumber="720"><td class="num" id="LN720">720</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="721"><td class="num" id="LN721">721</td><td class="line"> KeyEntry *ke;</td></tr>
+<tr class="codeline" data-linenumber="722"><td class="num" id="LN722">722</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="723"><td class="num" id="LN723">723</td><td class="line"> gtk_tree_model_get (model, iter,</td></tr>
+<tr class="codeline" data-linenumber="724"><td class="num" id="LN724">724</td><td class="line"> KEYVAL_COLUMN, &amp;ke,</td></tr>
+<tr class="codeline" data-linenumber="725"><td class="num" id="LN725">725</td><td class="line"> -1);</td></tr>
+<tr class="codeline" data-linenumber="726"><td class="num" id="LN726">726</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="727"><td class="num" id="LN727">727</td><td class="line"> <span class='keyword'>if</span> (ke == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="728"><td class="num" id="LN728">728</td><td class="line"> <span class='comment'>/* This is a title row */</span></td></tr>
+<tr class="codeline" data-linenumber="729"><td class="num" id="LN729">729</td><td class="line"> g_object_set (cell,</td></tr>
+<tr class="codeline" data-linenumber="730"><td class="num" id="LN730">730</td><td class="line"> <span class='string_literal'>"visible"</span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="731"><td class="num" id="LN731">731</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="732"><td class="num" id="LN732">732</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="733"><td class="num" id="LN733">733</td><td class="line"> g_object_set (cell,</td></tr>
+<tr class="codeline" data-linenumber="734"><td class="num" id="LN734">734</td><td class="line"> <span class='string_literal'>"visible"</span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="735"><td class="num" id="LN735">735</td><td class="line"> <span class='string_literal'>"sensitive"</span>, ke-&gt;accel_path_unlocked,</td></tr>
+<tr class="codeline" data-linenumber="736"><td class="num" id="LN736">736</td><td class="line"> <span class='string_literal'>"editable"</span>, ke-&gt;accel_path_unlocked,</td></tr>
+<tr class="codeline" data-linenumber="737"><td class="num" id="LN737">737</td><td class="line"> <span class='string_literal'>"accel-key"</span>, ke-&gt;gsettings_keyval,</td></tr>
+<tr class="codeline" data-linenumber="738"><td class="num" id="LN738">738</td><td class="line"> <span class='string_literal'>"accel-mods"</span>, ke-&gt;gsettings_mask,</td></tr>
+<tr class="codeline" data-linenumber="739"><td class="num" id="LN739">739</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="740"><td class="num" id="LN740">740</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="741"><td class="num" id="LN741">741</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="742"><td class="num" id="LN742">742</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>int</span></td></tr>
+<tr class="codeline" data-linenumber="743"><td class="num" id="LN743">743</td><td class="line">accel_compare_func (GtkTreeModel *model,</td></tr>
+<tr class="codeline" data-linenumber="744"><td class="num" id="LN744">744</td><td class="line"> GtkTreeIter *a,</td></tr>
+<tr class="codeline" data-linenumber="745"><td class="num" id="LN745">745</td><td class="line"> GtkTreeIter *b,</td></tr>
+<tr class="codeline" data-linenumber="746"><td class="num" id="LN746">746</td><td class="line"> gpointer user_data)</td></tr>
+<tr class="codeline" data-linenumber="747"><td class="num" id="LN747">747</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="748"><td class="num" id="LN748">748</td><td class="line"> KeyEntry *ke_a;</td></tr>
+<tr class="codeline" data-linenumber="749"><td class="num" id="LN749">749</td><td class="line"> KeyEntry *ke_b;</td></tr>
+<tr class="codeline" data-linenumber="750"><td class="num" id="LN750">750</td><td class="line"> <span class='keyword'>char</span> *name_a;</td></tr>
+<tr class="codeline" data-linenumber="751"><td class="num" id="LN751">751</td><td class="line"> <span class='keyword'>char</span> *name_b;</td></tr>
+<tr class="codeline" data-linenumber="752"><td class="num" id="LN752">752</td><td class="line"> <span class='keyword'>int</span> result;</td></tr>
+<tr class="codeline" data-linenumber="753"><td class="num" id="LN753">753</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="754"><td class="num" id="LN754">754</td><td class="line"> gtk_tree_model_get (model, a,</td></tr>
+<tr class="codeline" data-linenumber="755"><td class="num" id="LN755">755</td><td class="line"> KEYVAL_COLUMN, &amp;ke_a,</td></tr>
+<tr class="codeline" data-linenumber="756"><td class="num" id="LN756">756</td><td class="line"> -1);</td></tr>
+<tr class="codeline" data-linenumber="757"><td class="num" id="LN757">757</td><td class="line"> <span class='keyword'>if</span> (ke_a == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="758"><td class="num" id="LN758">758</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="759"><td class="num" id="LN759">759</td><td class="line"> gtk_tree_model_get (model, a,</td></tr>
+<tr class="codeline" data-linenumber="760"><td class="num" id="LN760">760</td><td class="line"> ACTION_COLUMN, &amp;name_a,</td></tr>
+<tr class="codeline" data-linenumber="761"><td class="num" id="LN761">761</td><td class="line"> -1);</td></tr>
+<tr class="codeline" data-linenumber="762"><td class="num" id="LN762">762</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="763"><td class="num" id="LN763">763</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="764"><td class="num" id="LN764">764</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="765"><td class="num" id="LN765">765</td><td class="line"> name_a = binding_display_name (ke_a-&gt;gsettings_keyval,</td></tr>
+<tr class="codeline" data-linenumber="766"><td class="num" id="LN766">766</td><td class="line"> ke_a-&gt;gsettings_mask);</td></tr>
+<tr class="codeline" data-linenumber="767"><td class="num" id="LN767">767</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="768"><td class="num" id="LN768">768</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="769"><td class="num" id="LN769">769</td><td class="line"> gtk_tree_model_get (model, b,</td></tr>
+<tr class="codeline" data-linenumber="770"><td class="num" id="LN770">770</td><td class="line"> KEYVAL_COLUMN, &amp;ke_b,</td></tr>
+<tr class="codeline" data-linenumber="771"><td class="num" id="LN771">771</td><td class="line"> -1);</td></tr>
+<tr class="codeline" data-linenumber="772"><td class="num" id="LN772">772</td><td class="line"> <span class='keyword'>if</span> (ke_b == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="773"><td class="num" id="LN773">773</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="774"><td class="num" id="LN774">774</td><td class="line"> gtk_tree_model_get (model, b,</td></tr>
+<tr class="codeline" data-linenumber="775"><td class="num" id="LN775">775</td><td class="line"> ACTION_COLUMN, &amp;name_b,</td></tr>
+<tr class="codeline" data-linenumber="776"><td class="num" id="LN776">776</td><td class="line"> -1);</td></tr>
+<tr class="codeline" data-linenumber="777"><td class="num" id="LN777">777</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="778"><td class="num" id="LN778">778</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="779"><td class="num" id="LN779">779</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="780"><td class="num" id="LN780">780</td><td class="line"> name_b = binding_display_name (ke_b-&gt;gsettings_keyval,</td></tr>
+<tr class="codeline" data-linenumber="781"><td class="num" id="LN781">781</td><td class="line"> ke_b-&gt;gsettings_mask);</td></tr>
+<tr class="codeline" data-linenumber="782"><td class="num" id="LN782">782</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="783"><td class="num" id="LN783">783</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="784"><td class="num" id="LN784">784</td><td class="line"> result = g_utf8_collate (name_a, name_b);</td></tr>
+<tr class="codeline" data-linenumber="785"><td class="num" id="LN785">785</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="786"><td class="num" id="LN786">786</td><td class="line"> g_free (name_a);</td></tr>
+<tr class="codeline" data-linenumber="787"><td class="num" id="LN787">787</td><td class="line"> g_free (name_b);</td></tr>
+<tr class="codeline" data-linenumber="788"><td class="num" id="LN788">788</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="789"><td class="num" id="LN789">789</td><td class="line"> <span class='keyword'>return</span> result;</td></tr>
+<tr class="codeline" data-linenumber="790"><td class="num" id="LN790">790</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="791"><td class="num" id="LN791">791</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="792"><td class="num" id="LN792">792</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="793"><td class="num" id="LN793">793</td><td class="line">treeview_accel_changed_cb (GtkAccelGroup *accel_group,</td></tr>
+<tr class="codeline" data-linenumber="794"><td class="num" id="LN794">794</td><td class="line"> guint keyval,</td></tr>
+<tr class="codeline" data-linenumber="795"><td class="num" id="LN795">795</td><td class="line"> GdkModifierType modifier,</td></tr>
+<tr class="codeline" data-linenumber="796"><td class="num" id="LN796">796</td><td class="line"> GClosure *accel_closure,</td></tr>
+<tr class="codeline" data-linenumber="797"><td class="num" id="LN797">797</td><td class="line"> GtkTreeModel *model)</td></tr>
+<tr class="codeline" data-linenumber="798"><td class="num" id="LN798">798</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="799"><td class="num" id="LN799">799</td><td class="line"> gtk_tree_model_foreach (model, update_model_foreach, accel_closure-&gt;data);</td></tr>
+<tr class="codeline" data-linenumber="800"><td class="num" id="LN800">800</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="801"><td class="num" id="LN801">801</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="802"><td class="num" id="LN802">802</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="803"><td class="num" id="LN803">803</td><td class="line">accel_edited_callback (GtkCellRendererAccel *cell,</td></tr>
+<tr class="codeline" data-linenumber="804"><td class="num" id="LN804">804</td><td class="line"> gchar *path_string,</td></tr>
+<tr class="codeline" data-linenumber="805"><td class="num" id="LN805">805</td><td class="line"> guint keyval,</td></tr>
+<tr class="codeline" data-linenumber="806"><td class="num" id="LN806">806</td><td class="line"> GdkModifierType mask,</td></tr>
+<tr class="codeline" data-linenumber="807"><td class="num" id="LN807">807</td><td class="line"> guint hardware_keycode,</td></tr>
+<tr class="codeline" data-linenumber="808"><td class="num" id="LN808">808</td><td class="line"> GtkTreeView *view)</td></tr>
+<tr class="codeline" data-linenumber="809"><td class="num" id="LN809">809</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="810"><td class="num" id="LN810">810</td><td class="line"> GtkTreeModel *model;</td></tr>
+<tr class="codeline" data-linenumber="811"><td class="num" id="LN811">811</td><td class="line"> GtkTreePath *path;</td></tr>
+<tr class="codeline" data-linenumber="812"><td class="num" id="LN812">812</td><td class="line"> GtkTreeIter iter;</td></tr>
+<tr class="codeline" data-linenumber="813"><td class="num" id="LN813">813</td><td class="line"> KeyEntry *ke;</td></tr>
+<tr class="codeline" data-linenumber="814"><td class="num" id="LN814">814</td><td class="line"> GtkAccelGroupEntry *entries;</td></tr>
+<tr class="codeline" data-linenumber="815"><td class="num" id="LN815">815</td><td class="line"> guint n_entries;</td></tr>
+<tr class="codeline" data-linenumber="816"><td class="num" id="LN816">816</td><td class="line"> <span class='keyword'>char</span> *str;</td></tr>
+<tr class="codeline" data-linenumber="817"><td class="num" id="LN817">817</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="818"><td class="num" id="LN818">818</td><td class="line"> model = gtk_tree_view_get_model (view);</td></tr>
+<tr class="codeline" data-linenumber="819"><td class="num" id="LN819">819</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="820"><td class="num" id="LN820">820</td><td class="line"> path = gtk_tree_path_new_from_string (path_string);</td></tr>
+<tr class="codeline" data-linenumber="821"><td class="num" id="LN821">821</td><td class="line"> <span class='keyword'>if</span> (!path)</td></tr>
+<tr class="codeline" data-linenumber="822"><td class="num" id="LN822">822</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="823"><td class="num" id="LN823">823</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="824"><td class="num" id="LN824">824</td><td class="line"> <span class='keyword'>if</span> (!gtk_tree_model_get_iter (model, &amp;iter, path))</td></tr>
+<tr class="codeline" data-linenumber="825"><td class="num" id="LN825">825</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="826"><td class="num" id="LN826">826</td><td class="line"> gtk_tree_path_free (path);</td></tr>
+<tr class="codeline" data-linenumber="827"><td class="num" id="LN827">827</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="828"><td class="num" id="LN828">828</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="829"><td class="num" id="LN829">829</td><td class="line"> gtk_tree_path_free (path);</td></tr>
+<tr class="codeline" data-linenumber="830"><td class="num" id="LN830">830</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="831"><td class="num" id="LN831">831</td><td class="line"> gtk_tree_model_get (model, &amp;iter, KEYVAL_COLUMN, &amp;ke, -1);</td></tr>
+<tr class="codeline" data-linenumber="832"><td class="num" id="LN832">832</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="833"><td class="num" id="LN833">833</td><td class="line"> <span class='comment'>/* sanity check */</span></td></tr>
+<tr class="codeline" data-linenumber="834"><td class="num" id="LN834">834</td><td class="line"> <span class='keyword'>if</span> (ke == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="835"><td class="num" id="LN835">835</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="836"><td class="num" id="LN836">836</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="837"><td class="num" id="LN837">837</td><td class="line"> <span class='comment'>/* Check if we already have an entry using this accel */</span></td></tr>
+<tr class="codeline" data-linenumber="838"><td class="num" id="LN838">838</td><td class="line"> entries = gtk_accel_group_query (notification_group, keyval, mask, &amp;n_entries);</td></tr>
+<tr class="codeline" data-linenumber="839"><td class="num" id="LN839">839</td><td class="line"> <span class='keyword'>if</span> (n_entries &gt; 0)</td></tr>
+<tr class="codeline" data-linenumber="840"><td class="num" id="LN840">840</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="841"><td class="num" id="LN841">841</td><td class="line"> <span class='keyword'>if</span> (entries[0].accel_path_quark != g_quark_from_string (ke-&gt;accel_path))</td></tr>
+<tr class="codeline" data-linenumber="842"><td class="num" id="LN842">842</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="843"><td class="num" id="LN843">843</td><td class="line"> GtkWidget *dialog;</td></tr>
+<tr class="codeline" data-linenumber="844"><td class="num" id="LN844">844</td><td class="line"> <span class='keyword'>char</span> *name;</td></tr>
+<tr class="codeline" data-linenumber="845"><td class="num" id="LN845">845</td><td class="line"> KeyEntry *other_key;</td></tr>
+<tr class="codeline" data-linenumber="846"><td class="num" id="LN846">846</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="847"><td class="num" id="LN847">847</td><td class="line"> name = gtk_accelerator_get_label (keyval, mask);</td></tr>
+<tr class="codeline" data-linenumber="848"><td class="num" id="LN848">848</td><td class="line"> other_key = entries[0].closure-&gt;data;</td></tr>
+<tr class="codeline" data-linenumber="849"><td class="num" id="LN849">849</td><td class="line"> <span class='macro'>g_assert (other_key)<span class='macro_popup'>do { if (other_key) ; else g_assertion_message_expr (((gchar*<br>) 0), "terminal-accels.c", 849, ((const char*) (__func__)), "other_key"<br>); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="850"><td class="num" id="LN850">850</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="851"><td class="num" id="LN851">851</td><td class="line"> dialog =</td></tr>
+<tr class="codeline" data-linenumber="852"><td class="num" id="LN852">852</td><td class="line"> gtk_message_dialog_new (<span class='macro'>GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (view)))<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((gtk_widget_get_toplevel (((((GtkWidget*) (void *) g_type_check_instance_cast<br> ((GTypeInstance*) ((view)), ((gtk_widget_get_type ()))))))))<br>), ((gtk_window_get_type ()))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="853"><td class="num" id="LN853">853</td><td class="line"> GTK_DIALOG_DESTROY_WITH_PARENT | GTK_DIALOG_MODAL,</td></tr>
+<tr class="codeline" data-linenumber="854"><td class="num" id="LN854">854</td><td class="line"> GTK_MESSAGE_WARNING,</td></tr>
+<tr class="codeline" data-linenumber="855"><td class="num" id="LN855">855</td><td class="line"> GTK_BUTTONS_OK,</td></tr>
+<tr class="codeline" data-linenumber="856"><td class="num" id="LN856">856</td><td class="line"> <span class='macro'>_(<span class='string_literal'>"The shortcut key “%s” is already bound to the “%s” action"</span>)<span class='macro_popup'>gettext ("The shortcut key “%s” is already bound to the “%s” action"<br>)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="857"><td class="num" id="LN857">857</td><td class="line"> name,</td></tr>
+<tr class="codeline" data-linenumber="858"><td class="num" id="LN858">858</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="859"><td class="num" id="LN859">859</td><td class="line">other_key-&gt;user_visible_name ? <span class='macro'>_(other_key-&gt;user_visible_name)<span class='macro_popup'>gettext (other_key-&gt;user_visible_name)</span></span> : other_key-&gt;gsettings_key);</td></tr>
+<tr class="codeline" data-linenumber="860"><td class="num" id="LN860">860</td><td class="line"> g_free (name);</td></tr>
+<tr class="codeline" data-linenumber="861"><td class="num" id="LN861">861</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="862"><td class="num" id="LN862">862</td><td class="line"> <span class='macro'>g_signal_connect (dialog, <span class='string_literal'>"response"</span>, G_CALLBACK (gtk_widget_destroy), NULL)<span class='macro_popup'>g_signal_connect_data ((dialog), ("response"), (((GCallback) (<br>gtk_widget_destroy))), (((void*)0)), ((void*)0), (GConnectFlags<br>) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="863"><td class="num" id="LN863">863</td><td class="line"> gtk_window_present (<span class='macro'>GTK_WINDOW (dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((dialog)), ((gtk_window_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="864"><td class="num" id="LN864">864</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="865"><td class="num" id="LN865">865</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="866"><td class="num" id="LN866">866</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="867"><td class="num" id="LN867">867</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="868"><td class="num" id="LN868">868</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="869"><td class="num" id="LN869">869</td><td class="line"> str = binding_name (keyval, mask);</td></tr>
+<tr class="codeline" data-linenumber="870"><td class="num" id="LN870">870</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="871"><td class="num" id="LN871">871</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_ACCELS,<span class='macro_popup'>do { if (0) g_printerr("Edited path %s keyval %s, setting GSettings to %s\n"<br>, ke-&gt;accel_path, gdk_keyval_name (keyval) ? gdk_keyval_name<br> (keyval) : "null", str); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="872"><td class="num" id="LN872">872</td><td class="line"> <span class='string_literal'><span class='macro'>"Edited path %s keyval %s, setting GSettings to %s\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("Edited path %s keyval %s, setting GSettings to %s\n"<br>, ke-&gt;accel_path, gdk_keyval_name (keyval) ? gdk_keyval_name<br> (keyval) : "null", str); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="873"><td class="num" id="LN873">873</td><td class="line"> <span class='macro'>ke-&gt;accel_path,<span class='macro_popup'>do { if (0) g_printerr("Edited path %s keyval %s, setting GSettings to %s\n"<br>, ke-&gt;accel_path, gdk_keyval_name (keyval) ? gdk_keyval_name<br> (keyval) : "null", str); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="874"><td class="num" id="LN874">874</td><td class="line"> <span class='macro'>gdk_keyval_name (keyval) ? gdk_keyval_name (keyval) : <span class='string_literal'>"null"</span>,<span class='macro_popup'>do { if (0) g_printerr("Edited path %s keyval %s, setting GSettings to %s\n"<br>, ke-&gt;accel_path, gdk_keyval_name (keyval) ? gdk_keyval_name<br> (keyval) : "null", str); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="875"><td class="num" id="LN875">875</td><td class="line"> <span class='macro'>str)<span class='macro_popup'>do { if (0) g_printerr("Edited path %s keyval %s, setting GSettings to %s\n"<br>, ke-&gt;accel_path, gdk_keyval_name (keyval) ? gdk_keyval_name<br> (keyval) : "null", str); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="876"><td class="num" id="LN876">876</td><td class="line"><span class='directive'>#ifdef MATE_ENABLE_DEBUG</span></td></tr>
+<tr class="codeline" data-linenumber="877"><td class="num" id="LN877">877</td><td class="line"> <span class='macro'>_TERMINAL_DEBUG_IF (TERMINAL_DEBUG_ACCELS)<span class='macro_popup'>if (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="878"><td class="num" id="LN878">878</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="879"><td class="num" id="LN879">879</td><td class="line"> GtkAccelKey old_key;</td></tr>
+<tr class="codeline" data-linenumber="880"><td class="num" id="LN880">880</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="881"><td class="num" id="LN881">881</td><td class="line"> <span class='keyword'>if</span> (gtk_accel_map_lookup_entry (ke-&gt;accel_path, &amp;old_key))</td></tr>
+<tr class="codeline" data-linenumber="882"><td class="num" id="LN882">882</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="883"><td class="num" id="LN883">883</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_ACCELS,<span class='macro_popup'>do { if (0) g_printerr(" Old entry of path %s is keyval %s mask %x\n"<br>, ke-&gt;accel_path, gdk_keyval_name (old_key.accel_key), old_key<br>.accel_mods); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="884"><td class="num" id="LN884">884</td><td class="line"> <span class='string_literal'><span class='macro'>" Old entry of path %s is keyval %s mask %x\n"</span>,<span class='macro_popup'>do { if (0) g_printerr(" Old entry of path %s is keyval %s mask %x\n"<br>, ke-&gt;accel_path, gdk_keyval_name (old_key.accel_key), old_key<br>.accel_mods); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="885"><td class="num" id="LN885">885</td><td class="line"> <span class='macro'>ke-&gt;accel_path, gdk_keyval_name (old_key.accel_key), old_key.accel_mods)<span class='macro_popup'>do { if (0) g_printerr(" Old entry of path %s is keyval %s mask %x\n"<br>, ke-&gt;accel_path, gdk_keyval_name (old_key.accel_key), old_key<br>.accel_mods); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="886"><td class="num" id="LN886">886</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="887"><td class="num" id="LN887">887</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="888"><td class="num" id="LN888">888</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="889"><td class="num" id="LN889">889</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_ACCELS,<span class='macro_popup'>do { if (0) g_printerr(" Failed to look up the old entry of path %s\n"<br>, ke-&gt;accel_path); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="890"><td class="num" id="LN890">890</td><td class="line"> <span class='string_literal'><span class='macro'>" Failed to look up the old entry of path %s\n"</span>,<span class='macro_popup'>do { if (0) g_printerr(" Failed to look up the old entry of path %s\n"<br>, ke-&gt;accel_path); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="891"><td class="num" id="LN891">891</td><td class="line"> <span class='macro'>ke-&gt;accel_path)<span class='macro_popup'>do { if (0) g_printerr(" Failed to look up the old entry of path %s\n"<br>, ke-&gt;accel_path); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="892"><td class="num" id="LN892">892</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="893"><td class="num" id="LN893">893</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="894"><td class="num" id="LN894">894</td><td class="line"><span class='directive'>#endif</span></td></tr>
+<tr class="codeline" data-linenumber="895"><td class="num" id="LN895">895</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="896"><td class="num" id="LN896">896</td><td class="line"> g_settings_set_string (settings_keybindings,</td></tr>
+<tr class="codeline" data-linenumber="897"><td class="num" id="LN897">897</td><td class="line"> ke-&gt;gsettings_key,</td></tr>
+<tr class="codeline" data-linenumber="898"><td class="num" id="LN898">898</td><td class="line"> str);</td></tr>
+<tr class="codeline" data-linenumber="899"><td class="num" id="LN899">899</td><td class="line"> g_free (str);</td></tr>
+<tr class="codeline" data-linenumber="900"><td class="num" id="LN900">900</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="901"><td class="num" id="LN901">901</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="902"><td class="num" id="LN902">902</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="903"><td class="num" id="LN903">903</td><td class="line">accel_cleared_callback (GtkCellRendererAccel *cell,</td></tr>
+<tr class="codeline" data-linenumber="904"><td class="num" id="LN904">904</td><td class="line"> gchar *path_string,</td></tr>
+<tr class="codeline" data-linenumber="905"><td class="num" id="LN905">905</td><td class="line"> GtkTreeView *view)</td></tr>
+<tr class="codeline" data-linenumber="906"><td class="num" id="LN906">906</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="907"><td class="num" id="LN907">907</td><td class="line"> GtkTreeModel *model;</td></tr>
+<tr class="codeline" data-linenumber="908"><td class="num" id="LN908">908</td><td class="line"> GtkTreePath *path;</td></tr>
+<tr class="codeline" data-linenumber="909"><td class="num" id="LN909">909</td><td class="line"> GtkTreeIter iter;</td></tr>
+<tr class="codeline" data-linenumber="910"><td class="num" id="LN910">910</td><td class="line"> KeyEntry *ke;</td></tr>
+<tr class="codeline" data-linenumber="911"><td class="num" id="LN911">911</td><td class="line"> <span class='keyword'>char</span> *str;</td></tr>
+<tr class="codeline" data-linenumber="912"><td class="num" id="LN912">912</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="913"><td class="num" id="LN913">913</td><td class="line"> model = gtk_tree_view_get_model (view);</td></tr>
+<tr class="codeline" data-linenumber="914"><td class="num" id="LN914">914</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="915"><td class="num" id="LN915">915</td><td class="line"> path = gtk_tree_path_new_from_string (path_string);</td></tr>
+<tr class="codeline" data-linenumber="916"><td class="num" id="LN916">916</td><td class="line"> <span class='keyword'>if</span> (!path)</td></tr>
+<tr class="codeline" data-linenumber="917"><td class="num" id="LN917">917</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="918"><td class="num" id="LN918">918</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="919"><td class="num" id="LN919">919</td><td class="line"> <span class='keyword'>if</span> (!gtk_tree_model_get_iter (model, &amp;iter, path))</td></tr>
+<tr class="codeline" data-linenumber="920"><td class="num" id="LN920">920</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="921"><td class="num" id="LN921">921</td><td class="line"> gtk_tree_path_free (path);</td></tr>
+<tr class="codeline" data-linenumber="922"><td class="num" id="LN922">922</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="923"><td class="num" id="LN923">923</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="924"><td class="num" id="LN924">924</td><td class="line"> gtk_tree_path_free (path);</td></tr>
+<tr class="codeline" data-linenumber="925"><td class="num" id="LN925">925</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="926"><td class="num" id="LN926">926</td><td class="line"> gtk_tree_model_get (model, &amp;iter, KEYVAL_COLUMN, &amp;ke, -1);</td></tr>
+<tr class="codeline" data-linenumber="927"><td class="num" id="LN927">927</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="928"><td class="num" id="LN928">928</td><td class="line"> <span class='comment'>/* sanity check */</span></td></tr>
+<tr class="codeline" data-linenumber="929"><td class="num" id="LN929">929</td><td class="line"> <span class='keyword'>if</span> (ke == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="930"><td class="num" id="LN930">930</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="931"><td class="num" id="LN931">931</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="932"><td class="num" id="LN932">932</td><td class="line"> ke-&gt;gsettings_keyval = 0;</td></tr>
+<tr class="codeline" data-linenumber="933"><td class="num" id="LN933">933</td><td class="line"> ke-&gt;gsettings_mask = 0;</td></tr>
+<tr class="codeline" data-linenumber="934"><td class="num" id="LN934">934</td><td class="line"> ke-&gt;needs_gsettings_sync = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="935"><td class="num" id="LN935">935</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="936"><td class="num" id="LN936">936</td><td class="line"> str = binding_name (0, 0);</td></tr>
+<tr class="codeline" data-linenumber="937"><td class="num" id="LN937">937</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="938"><td class="num" id="LN938">938</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_ACCELS,<span class='macro_popup'>do { if (0) g_printerr("Cleared keybinding for GSettings %s",<br> ke-&gt;gsettings_key); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="939"><td class="num" id="LN939">939</td><td class="line"> <span class='string_literal'><span class='macro'>"Cleared keybinding for GSettings %s"</span>,<span class='macro_popup'>do { if (0) g_printerr("Cleared keybinding for GSettings %s",<br> ke-&gt;gsettings_key); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="940"><td class="num" id="LN940">940</td><td class="line"> <span class='macro'>ke-&gt;gsettings_key)<span class='macro_popup'>do { if (0) g_printerr("Cleared keybinding for GSettings %s",<br> ke-&gt;gsettings_key); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="941"><td class="num" id="LN941">941</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="942"><td class="num" id="LN942">942</td><td class="line"> g_settings_set_string (settings_keybindings,</td></tr>
+<tr class="codeline" data-linenumber="943"><td class="num" id="LN943">943</td><td class="line"> ke-&gt;gsettings_key,</td></tr>
+<tr class="codeline" data-linenumber="944"><td class="num" id="LN944">944</td><td class="line"> str);</td></tr>
+<tr class="codeline" data-linenumber="945"><td class="num" id="LN945">945</td><td class="line"> g_free (str);</td></tr>
+<tr class="codeline" data-linenumber="946"><td class="num" id="LN946">946</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="947"><td class="num" id="LN947">947</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="948"><td class="num" id="LN948">948</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="949"><td class="num" id="LN949">949</td><td class="line">edit_keys_dialog_destroy_cb (GtkWidget *widget,</td></tr>
+<tr class="codeline" data-linenumber="950"><td class="num" id="LN950">950</td><td class="line"> gpointer user_data)</td></tr>
+<tr class="codeline" data-linenumber="951"><td class="num" id="LN951">951</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="952"><td class="num" id="LN952">952</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (notification_group, G_CALLBACK (treeview_accel_changed_cb), user_data)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((notification_group), (<br>GSignalMatchType) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA)<br>, 0, 0, ((void*)0), (((GCallback) (treeview_accel_changed_cb)<br>)), (user_data))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="953"><td class="num" id="LN953">953</td><td class="line"> edit_keys_dialog = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="954"><td class="num" id="LN954">954</td><td class="line"> edit_keys_store = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="955"><td class="num" id="LN955">955</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="956"><td class="num" id="LN956">956</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="957"><td class="num" id="LN957">957</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="958"><td class="num" id="LN958">958</td><td class="line">edit_keys_dialog_response_cb (GtkWidget *editor,</td></tr>
+<tr class="codeline" data-linenumber="959"><td class="num" id="LN959">959</td><td class="line"> <span class='keyword'>int</span> response,</td></tr>
+<tr class="codeline" data-linenumber="960"><td class="num" id="LN960">960</td><td class="line"> gpointer use_data)</td></tr>
+<tr class="codeline" data-linenumber="961"><td class="num" id="LN961">961</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="962"><td class="num" id="LN962">962</td><td class="line"> <span class='keyword'>if</span> (response == GTK_RESPONSE_HELP)</td></tr>
+<tr class="codeline" data-linenumber="963"><td class="num" id="LN963">963</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="964"><td class="num" id="LN964">964</td><td class="line"> terminal_util_show_help (<span class='string_literal'>"mate-terminal-shortcuts"</span>, <span class='macro'>GTK_WINDOW (editor)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((editor)), ((gtk_window_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="965"><td class="num" id="LN965">965</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="966"><td class="num" id="LN966">966</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="967"><td class="num" id="LN967">967</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="968"><td class="num" id="LN968">968</td><td class="line"> gtk_widget_destroy (editor);</td></tr>
+<tr class="codeline" data-linenumber="969"><td class="num" id="LN969">969</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="970"><td class="num" id="LN970">970</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="971"><td class="num" id="LN971">971</td><td class="line"><span class='directive'>#ifdef MATE_ENABLE_DEBUG</span></td></tr>
+<tr class="codeline" data-linenumber="972"><td class="num" id="LN972">972</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="973"><td class="num" id="LN973">973</td><td class="line">row_changed (GtkTreeModel *tree_model,</td></tr>
+<tr class="codeline" data-linenumber="974"><td class="num" id="LN974">974</td><td class="line"> GtkTreePath *path,</td></tr>
+<tr class="codeline" data-linenumber="975"><td class="num" id="LN975">975</td><td class="line"> GtkTreeIter *iter,</td></tr>
+<tr class="codeline" data-linenumber="976"><td class="num" id="LN976">976</td><td class="line"> gpointer user_data)</td></tr>
+<tr class="codeline" data-linenumber="977"><td class="num" id="LN977">977</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="978"><td class="num" id="LN978">978</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_ACCELS,<span class='macro_popup'>do { if (0) g_printerr("ROW-CHANGED [%s]\n", gtk_tree_path_to_string<br> (path)); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="979"><td class="num" id="LN979">979</td><td class="line"> <span class='string_literal'><span class='macro'>"ROW-CHANGED [%s]\n"</span>, gtk_tree_path_to_string (path) <span class='comment'>/* leak */</span>)<span class='macro_popup'>do { if (0) g_printerr("ROW-CHANGED [%s]\n", gtk_tree_path_to_string<br> (path)); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="980"><td class="num" id="LN980">980</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="981"><td class="num" id="LN981">981</td><td class="line"><span class='directive'>#endif</span></td></tr>
+<tr class="codeline" data-linenumber="982"><td class="num" id="LN982">982</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="983"><td class="num" id="LN983">983</td><td class="line"><span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="984"><td class="num" id="LN984">984</td><td class="line">terminal_edit_keys_dialog_show (GtkWindow *transient_parent)</td></tr>
+<tr class="codeline" data-linenumber="985"><td class="num" id="LN985">985</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="986"><td class="num" id="LN986">986</td><td class="line"> TerminalApp *app;</td></tr>
+<tr class="codeline" data-linenumber="987"><td class="num" id="LN987">987</td><td class="line"> GtkWidget *dialog, *tree_view, *disable_mnemonics_button, *disable_menu_accel_button;</td></tr>
+<tr class="codeline" data-linenumber="988"><td class="num" id="LN988">988</td><td class="line"> GtkTreeViewColumn *column;</td></tr>
+<tr class="codeline" data-linenumber="989"><td class="num" id="LN989">989</td><td class="line"> GtkCellRenderer *cell_renderer;</td></tr>
+<tr class="codeline" data-linenumber="990"><td class="num" id="LN990">990</td><td class="line"> GtkTreeStore *tree;</td></tr>
+<tr class="codeline" data-linenumber="991"><td class="num" id="LN991">991</td><td class="line"> guint i;</td></tr>
+<tr class="codeline" data-linenumber="992"><td class="num" id="LN992">992</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="993"><td class="num" id="LN993">993</td><td class="line"> <span class='keyword'>if</span> (edit_keys_dialog != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="994"><td class="num" id="LN994">994</td><td class="line"> <span class='keyword'>goto</span> done;</td></tr>
+<tr class="codeline" data-linenumber="995"><td class="num" id="LN995">995</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="996"><td class="num" id="LN996">996</td><td class="line"> <span class='keyword'>if</span> (!terminal_util_load_builder_resource (<span class='macro'>TERMINAL_RESOURCES_PATH_PREFIX<span class='macro_popup'>"/org/mate/terminal"</span></span> <span class='macro'>G_DIR_SEPARATOR_S<span class='macro_popup'>"/"</span></span> <span class='string_literal'>"ui/keybinding-editor.ui"</span>,</td></tr>
+<tr class="codeline" data-linenumber="997"><td class="num" id="LN997">997</td><td class="line"> <span class='string_literal'>"keybindings-dialog"</span>, &amp;dialog,</td></tr>
+<tr class="codeline" data-linenumber="998"><td class="num" id="LN998">998</td><td class="line"> <span class='string_literal'>"disable-mnemonics-checkbutton"</span>, &amp;disable_mnemonics_button,</td></tr>
+<tr class="codeline" data-linenumber="999"><td class="num" id="LN999">999</td><td class="line"> <span class='string_literal'>"disable-menu-accel-checkbutton"</span>, &amp;disable_menu_accel_button,</td></tr>
+<tr class="codeline" data-linenumber="1000"><td class="num" id="LN1000">1000</td><td class="line"> <span class='string_literal'>"accelerators-treeview"</span>, &amp;tree_view,</td></tr>
+<tr class="codeline" data-linenumber="1001"><td class="num" id="LN1001">1001</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="1002"><td class="num" id="LN1002">1002</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1003"><td class="num" id="LN1003">1003</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1004"><td class="num" id="LN1004">1004</td><td class="line"> app = terminal_app_get ();</td></tr>
+<tr class="codeline" data-linenumber="1005"><td class="num" id="LN1005">1005</td><td class="line"> terminal_util_bind_object_property_to_widget (<span class='macro'>G_OBJECT (app)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, <span class='macro'>TERMINAL_APP_ENABLE_MNEMONICS<span class='macro_popup'>"enable-mnemonics"</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1006"><td class="num" id="LN1006">1006</td><td class="line"> disable_mnemonics_button, 0);</td></tr>
+<tr class="codeline" data-linenumber="1007"><td class="num" id="LN1007">1007</td><td class="line"> terminal_util_bind_object_property_to_widget (<span class='macro'>G_OBJECT (app)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, <span class='macro'>TERMINAL_APP_ENABLE_MENU_BAR_ACCEL<span class='macro_popup'>"enable-menu-accels"</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1008"><td class="num" id="LN1008">1008</td><td class="line"> disable_menu_accel_button, 0);</td></tr>
+<tr class="codeline" data-linenumber="1009"><td class="num" id="LN1009">1009</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1010"><td class="num" id="LN1010">1010</td><td class="line"> <span class='comment'>/* Column 1 */</span></td></tr>
+<tr class="codeline" data-linenumber="1011"><td class="num" id="LN1011">1011</td><td class="line"> cell_renderer = gtk_cell_renderer_text_new ();</td></tr>
+<tr class="codeline" data-linenumber="1012"><td class="num" id="LN1012">1012</td><td class="line"> column = gtk_tree_view_column_new_with_attributes (<span class='macro'>_(<span class='string_literal'>"_Action"</span>)<span class='macro_popup'>gettext ("_Action")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1013"><td class="num" id="LN1013">1013</td><td class="line"> cell_renderer,</td></tr>
+<tr class="codeline" data-linenumber="1014"><td class="num" id="LN1014">1014</td><td class="line"> <span class='string_literal'>"text"</span>, ACTION_COLUMN,</td></tr>
+<tr class="codeline" data-linenumber="1015"><td class="num" id="LN1015">1015</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1016"><td class="num" id="LN1016">1016</td><td class="line"> gtk_tree_view_append_column (<span class='macro'>GTK_TREE_VIEW (tree_view)<span class='macro_popup'>((((GtkTreeView*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((tree_view)), ((gtk_tree_view_get_type ()))))))</span></span>, column);</td></tr>
+<tr class="codeline" data-linenumber="1017"><td class="num" id="LN1017">1017</td><td class="line"> gtk_tree_view_column_set_sort_column_id (column, ACTION_COLUMN);</td></tr>
+<tr class="codeline" data-linenumber="1018"><td class="num" id="LN1018">1018</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1019"><td class="num" id="LN1019">1019</td><td class="line"> <span class='comment'>/* Column 2 */</span></td></tr>
+<tr class="codeline" data-linenumber="1020"><td class="num" id="LN1020">1020</td><td class="line"> cell_renderer = gtk_cell_renderer_accel_new ();</td></tr>
+<tr class="codeline" data-linenumber="1021"><td class="num" id="LN1021">1021</td><td class="line"> g_object_set (cell_renderer,</td></tr>
+<tr class="codeline" data-linenumber="1022"><td class="num" id="LN1022">1022</td><td class="line"> <span class='string_literal'>"editable"</span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1023"><td class="num" id="LN1023">1023</td><td class="line"> <span class='string_literal'>"accel-mode"</span>, GTK_CELL_RENDERER_ACCEL_MODE_GTK,</td></tr>
+<tr class="codeline" data-linenumber="1024"><td class="num" id="LN1024">1024</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1025"><td class="num" id="LN1025">1025</td><td class="line"> <span class='macro'>g_signal_connect (cell_renderer, <span class='string_literal'>"accel-edited"</span>,<span class='macro_popup'>g_signal_connect_data ((cell_renderer), ("accel-edited"), (((<br>GCallback) (accel_edited_callback))), (tree_view), ((void*)0)<br>, (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1026"><td class="num" id="LN1026">1026</td><td class="line"> <span class='macro'>G_CALLBACK (accel_edited_callback), tree_view)<span class='macro_popup'>g_signal_connect_data ((cell_renderer), ("accel-edited"), (((<br>GCallback) (accel_edited_callback))), (tree_view), ((void*)0)<br>, (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1027"><td class="num" id="LN1027">1027</td><td class="line"> <span class='macro'>g_signal_connect (cell_renderer, <span class='string_literal'>"accel-cleared"</span>,<span class='macro_popup'>g_signal_connect_data ((cell_renderer), ("accel-cleared"), ((<br>(GCallback) (accel_cleared_callback))), (tree_view), ((void*)<br>0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1028"><td class="num" id="LN1028">1028</td><td class="line"> <span class='macro'>G_CALLBACK (accel_cleared_callback), tree_view)<span class='macro_popup'>g_signal_connect_data ((cell_renderer), ("accel-cleared"), ((<br>(GCallback) (accel_cleared_callback))), (tree_view), ((void*)<br>0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1029"><td class="num" id="LN1029">1029</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1030"><td class="num" id="LN1030">1030</td><td class="line"> column = gtk_tree_view_column_new ();</td></tr>
+<tr class="codeline" data-linenumber="1031"><td class="num" id="LN1031">1031</td><td class="line"> gtk_tree_view_column_set_title (column, <span class='macro'>_(<span class='string_literal'>"Shortcut _Key"</span>)<span class='macro_popup'>gettext ("Shortcut _Key")</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1032"><td class="num" id="LN1032">1032</td><td class="line"> gtk_tree_view_column_pack_start (column, cell_renderer, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1033"><td class="num" id="LN1033">1033</td><td class="line"> gtk_tree_view_column_set_cell_data_func (column, cell_renderer, accel_set_func, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1034"><td class="num" id="LN1034">1034</td><td class="line"> gtk_tree_view_column_set_sort_column_id (column, KEYVAL_COLUMN);</td></tr>
+<tr class="codeline" data-linenumber="1035"><td class="num" id="LN1035">1035</td><td class="line"> gtk_tree_view_append_column (<span class='macro'>GTK_TREE_VIEW (tree_view)<span class='macro_popup'>((((GtkTreeView*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((tree_view)), ((gtk_tree_view_get_type ()))))))</span></span>, column);</td></tr>
+<tr class="codeline" data-linenumber="1036"><td class="num" id="LN1036">1036</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1037"><td class="num" id="LN1037">1037</td><td class="line"> <span class='comment'>/* Add the data */</span></td></tr>
+<tr class="codeline" data-linenumber="1038"><td class="num" id="LN1038">1038</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1039"><td class="num" id="LN1039">1039</td><td class="line"> tree = edit_keys_store = gtk_tree_store_new (N_COLUMNS, <span class='macro'>G_TYPE_STRING<span class='macro_popup'>((GType) ((16) &lt;&lt; (2)))</span></span>, <span class='macro'>G_TYPE_POINTER<span class='macro_popup'>((GType) ((17) &lt;&lt; (2)))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1040"><td class="num" id="LN1040">1040</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1041"><td class="num" id="LN1041">1041</td><td class="line"><span class='directive'>#ifdef MATE_ENABLE_DEBUG</span></td></tr>
+<tr class="codeline" data-linenumber="1042"><td class="num" id="LN1042">1042</td><td class="line"> <span class='macro'>_TERMINAL_DEBUG_IF (TERMINAL_DEBUG_ACCELS)<span class='macro_popup'>if (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1043"><td class="num" id="LN1043">1043</td><td class="line"> <span class='macro'>g_signal_connect (tree, <span class='string_literal'>"row-changed"</span>, G_CALLBACK (row_changed), NULL)<span class='macro_popup'>g_signal_connect_data ((tree), ("row-changed"), (((GCallback)<br> (row_changed))), (((void*)0)), ((void*)0), (GConnectFlags) 0<br>)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1044"><td class="num" id="LN1044">1044</td><td class="line"><span class='directive'>#endif</span></td></tr>
+<tr class="codeline" data-linenumber="1045"><td class="num" id="LN1045">1045</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1046"><td class="num" id="LN1046">1046</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; <span class='macro'>G_N_ELEMENTS (all_entries)<span class='macro_popup'>(sizeof (all_entries) / sizeof ((all_entries)[0]))</span></span>; ++i)</td></tr>
+<tr class="codeline" data-linenumber="1047"><td class="num" id="LN1047">1047</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1048"><td class="num" id="LN1048">1048</td><td class="line"> GtkTreeIter parent_iter;</td></tr>
+<tr class="codeline" data-linenumber="1049"><td class="num" id="LN1049">1049</td><td class="line"> guint j;</td></tr>
+<tr class="codeline" data-linenumber="1050"><td class="num" id="LN1050">1050</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1051"><td class="num" id="LN1051">1051</td><td class="line"> gtk_tree_store_append (tree, &amp;parent_iter, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1052"><td class="num" id="LN1052">1052</td><td class="line"> gtk_tree_store_set (tree, &amp;parent_iter,</td></tr>
+<tr class="codeline" data-linenumber="1053"><td class="num" id="LN1053">1053</td><td class="line"> ACTION_COLUMN, <span class='macro'>_(all_entries[i].user_visible_name)<span class='macro_popup'>gettext (all_entries[i].user_visible_name)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1054"><td class="num" id="LN1054">1054</td><td class="line"> -1);</td></tr>
+<tr class="codeline" data-linenumber="1055"><td class="num" id="LN1055">1055</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1056"><td class="num" id="LN1056">1056</td><td class="line"> <span class='keyword'>for</span> (j = 0; j &lt; all_entries[i].n_elements; ++j)</td></tr>
+<tr class="codeline" data-linenumber="1057"><td class="num" id="LN1057">1057</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1058"><td class="num" id="LN1058">1058</td><td class="line"> KeyEntry *key_entry = &amp;(all_entries[i].key_entry[j]);</td></tr>
+<tr class="codeline" data-linenumber="1059"><td class="num" id="LN1059">1059</td><td class="line"> GtkTreeIter iter;</td></tr>
+<tr class="codeline" data-linenumber="1060"><td class="num" id="LN1060">1060</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1061"><td class="num" id="LN1061">1061</td><td class="line"> gtk_tree_store_insert_with_values (tree, &amp;iter, &amp;parent_iter, -1,</td></tr>
+<tr class="codeline" data-linenumber="1062"><td class="num" id="LN1062">1062</td><td class="line"> ACTION_COLUMN, <span class='macro'>_(key_entry-&gt;user_visible_name)<span class='macro_popup'>gettext (key_entry-&gt;user_visible_name)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1063"><td class="num" id="LN1063">1063</td><td class="line"> KEYVAL_COLUMN, key_entry,</td></tr>
+<tr class="codeline" data-linenumber="1064"><td class="num" id="LN1064">1064</td><td class="line"> -1);</td></tr>
+<tr class="codeline" data-linenumber="1065"><td class="num" id="LN1065">1065</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1066"><td class="num" id="LN1066">1066</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1067"><td class="num" id="LN1067">1067</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1068"><td class="num" id="LN1068">1068</td><td class="line"> gtk_tree_sortable_set_sort_func (<span class='macro'>GTK_TREE_SORTABLE (tree)<span class='macro_popup'>((((GtkTreeSortable*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((tree)), ((gtk_tree_sortable_get_type ()))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1069"><td class="num" id="LN1069">1069</td><td class="line"> KEYVAL_COLUMN, accel_compare_func,</td></tr>
+<tr class="codeline" data-linenumber="1070"><td class="num" id="LN1070">1070</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1071"><td class="num" id="LN1071">1071</td><td class="line"> gtk_tree_sortable_set_sort_column_id (<span class='macro'>GTK_TREE_SORTABLE (tree)<span class='macro_popup'>((((GtkTreeSortable*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((tree)), ((gtk_tree_sortable_get_type ()))))))</span></span>, ACTION_COLUMN,</td></tr>
+<tr class="codeline" data-linenumber="1072"><td class="num" id="LN1072">1072</td><td class="line"> GTK_SORT_ASCENDING);</td></tr>
+<tr class="codeline" data-linenumber="1073"><td class="num" id="LN1073">1073</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1074"><td class="num" id="LN1074">1074</td><td class="line"> gtk_tree_view_set_model (<span class='macro'>GTK_TREE_VIEW (tree_view)<span class='macro_popup'>((((GtkTreeView*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((tree_view)), ((gtk_tree_view_get_type ()))))))</span></span>, <span class='macro'>GTK_TREE_MODEL (tree)<span class='macro_popup'>((((GtkTreeModel*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((tree)), ((gtk_tree_model_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1075"><td class="num" id="LN1075">1075</td><td class="line"> g_object_unref (tree);</td></tr>
+<tr class="codeline" data-linenumber="1076"><td class="num" id="LN1076">1076</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1077"><td class="num" id="LN1077">1077</td><td class="line"> gtk_tree_view_expand_all (<span class='macro'>GTK_TREE_VIEW (tree_view)<span class='macro_popup'>((((GtkTreeView*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((tree_view)), ((gtk_tree_view_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1078"><td class="num" id="LN1078">1078</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1079"><td class="num" id="LN1079">1079</td><td class="line"> <span class='macro'>g_signal_connect (notification_group, <span class='string_literal'>"accel-changed"</span>,<span class='macro_popup'>g_signal_connect_data ((notification_group), ("accel-changed"<br>), (((GCallback) (treeview_accel_changed_cb))), (tree), ((void<br>*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1080"><td class="num" id="LN1080">1080</td><td class="line"> <span class='macro'>G_CALLBACK (treeview_accel_changed_cb), tree)<span class='macro_popup'>g_signal_connect_data ((notification_group), ("accel-changed"<br>), (((GCallback) (treeview_accel_changed_cb))), (tree), ((void<br>*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1081"><td class="num" id="LN1081">1081</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1082"><td class="num" id="LN1082">1082</td><td class="line"> edit_keys_dialog = dialog;</td></tr>
+<tr class="codeline" data-linenumber="1083"><td class="num" id="LN1083">1083</td><td class="line"> <span class='macro'>g_signal_connect (dialog, <span class='string_literal'>"destroy"</span>,<span class='macro_popup'>g_signal_connect_data ((dialog), ("destroy"), (((GCallback) (<br>edit_keys_dialog_destroy_cb))), (tree), ((void*)0), (GConnectFlags<br>) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1084"><td class="num" id="LN1084">1084</td><td class="line"> <span class='macro'>G_CALLBACK (edit_keys_dialog_destroy_cb), tree)<span class='macro_popup'>g_signal_connect_data ((dialog), ("destroy"), (((GCallback) (<br>edit_keys_dialog_destroy_cb))), (tree), ((void*)0), (GConnectFlags<br>) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1085"><td class="num" id="LN1085">1085</td><td class="line"> <span class='macro'>g_signal_connect (dialog, <span class='string_literal'>"response"</span>,<span class='macro_popup'>g_signal_connect_data ((dialog), ("response"), (((GCallback) (<br>edit_keys_dialog_response_cb))), (((void*)0)), ((void*)0), (GConnectFlags<br>) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1086"><td class="num" id="LN1086">1086</td><td class="line"> <span class='macro'>G_CALLBACK (edit_keys_dialog_response_cb),<span class='macro_popup'>g_signal_connect_data ((dialog), ("response"), (((GCallback) (<br>edit_keys_dialog_response_cb))), (((void*)0)), ((void*)0), (GConnectFlags<br>) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1087"><td class="num" id="LN1087">1087</td><td class="line"> <span class='macro'>NULL)<span class='macro_popup'>g_signal_connect_data ((dialog), ("response"), (((GCallback) (<br>edit_keys_dialog_response_cb))), (((void*)0)), ((void*)0), (GConnectFlags<br>) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1088"><td class="num" id="LN1088">1088</td><td class="line"> gtk_window_set_default_size (<span class='macro'>GTK_WINDOW (dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((dialog)), ((gtk_window_get_type ()))))))</span></span>, -1, 350);</td></tr>
+<tr class="codeline" data-linenumber="1089"><td class="num" id="LN1089">1089</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1090"><td class="num" id="LN1090">1090</td><td class="line">done:</td></tr>
+<tr class="codeline" data-linenumber="1091"><td class="num" id="LN1091">1091</td><td class="line"> gtk_window_set_transient_for (<span class='macro'>GTK_WINDOW (edit_keys_dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((edit_keys_dialog)), ((gtk_window_get_type ()))))))</span></span>, transient_parent);</td></tr>
+<tr class="codeline" data-linenumber="1092"><td class="num" id="LN1092">1092</td><td class="line"> gtk_window_present (<span class='macro'>GTK_WINDOW (edit_keys_dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((edit_keys_dialog)), ((gtk_window_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1093"><td class="num" id="LN1093">1093</td><td class="line">}</td></tr>
+</table></body></html>
diff --git a/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-8c30a3.html b/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-8c30a3.html
new file mode 100644
index 0000000..734e23f
--- /dev/null
+++ b/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-8c30a3.html
@@ -0,0 +1,2385 @@
+<!doctype html>
+<html>
+<head>
+<title>terminal-profile.c</title>
+
+<style type="text/css">
+body { color:#000000; background-color:#ffffff }
+body { font-family:Helvetica, sans-serif; font-size:10pt }
+h1 { font-size:14pt }
+.FileName { margin-top: 5px; margin-bottom: 5px; display: inline; }
+.FileNav { margin-left: 5px; margin-right: 5px; display: inline; }
+.FileNav a { text-decoration:none; font-size: larger; }
+.divider { margin-top: 30px; margin-bottom: 30px; height: 15px; }
+.divider { background-color: gray; }
+.code { border-collapse:collapse; width:100%; }
+.code { font-family: "Monospace", monospace; font-size:10pt }
+.code { line-height: 1.2em }
+.comment { color: green; font-style: oblique }
+.keyword { color: blue }
+.string_literal { color: red }
+.directive { color: darkmagenta }
+
+/* Macros and variables could have pop-up notes hidden by default.
+ - Macro pop-up: expansion of the macro
+ - Variable pop-up: value (table) of the variable */
+.macro_popup, .variable_popup { display: none; }
+
+/* Pop-up appears on mouse-hover event. */
+.macro:hover .macro_popup, .variable:hover .variable_popup {
+ display: block;
+ padding: 2px;
+ -webkit-border-radius:5px;
+ -webkit-box-shadow:1px 1px 7px #000;
+ border-radius:5px;
+ box-shadow:1px 1px 7px #000;
+ position: absolute;
+ top: -1em;
+ left:10em;
+ z-index: 1
+}
+
+.macro_popup {
+ border: 2px solid red;
+ background-color:#FFF0F0;
+ font-weight: normal;
+}
+
+.variable_popup {
+ border: 2px solid blue;
+ background-color:#F0F0FF;
+ font-weight: bold;
+ font-family: Helvetica, sans-serif;
+ font-size: 9pt;
+}
+
+/* Pop-up notes needs a relative position as a base where they pops up. */
+.macro, .variable {
+ background-color: PaleGoldenRod;
+ position: relative;
+}
+.macro { color: DarkMagenta; }
+
+#tooltiphint {
+ position: fixed;
+ width: 50em;
+ margin-left: -25em;
+ left: 50%;
+ padding: 10px;
+ border: 1px solid #b0b0b0;
+ border-radius: 2px;
+ box-shadow: 1px 1px 7px black;
+ background-color: #c0c0c0;
+ z-index: 2;
+}
+
+.num { width:2.5em; padding-right:2ex; background-color:#eeeeee }
+.num { text-align:right; font-size:8pt }
+.num { color:#444444 }
+.line { padding-left: 1ex; border-left: 3px solid #ccc }
+.line { white-space: pre }
+.msg { -webkit-box-shadow:1px 1px 7px #000 }
+.msg { box-shadow:1px 1px 7px #000 }
+.msg { -webkit-border-radius:5px }
+.msg { border-radius:5px }
+.msg { font-family:Helvetica, sans-serif; font-size:8pt }
+.msg { float:left }
+.msg { position:relative }
+.msg { padding:0.25em 1ex 0.25em 1ex }
+.msg { margin-top:10px; margin-bottom:10px }
+.msg { font-weight:bold }
+.msg { max-width:60em; word-wrap: break-word; white-space: pre-wrap }
+.msgT { padding:0x; spacing:0x }
+.msgEvent { background-color:#fff8b4; color:#000000 }
+.msgControl { background-color:#bbbbbb; color:#000000 }
+.msgNote { background-color:#ddeeff; color:#000000 }
+.mrange { background-color:#dfddf3 }
+.mrange { border-bottom:1px solid #6F9DBE }
+.PathIndex { font-weight: bold; padding:0px 5px; margin-right:5px; }
+.PathIndex { -webkit-border-radius:8px }
+.PathIndex { border-radius:8px }
+.PathIndexEvent { background-color:#bfba87 }
+.PathIndexControl { background-color:#8c8c8c }
+.PathIndexPopUp { background-color: #879abc; }
+.PathNav a { text-decoration:none; font-size: larger }
+.CodeInsertionHint { font-weight: bold; background-color: #10dd10 }
+.CodeRemovalHint { background-color:#de1010 }
+.CodeRemovalHint { border-bottom:1px solid #6F9DBE }
+.msg.selected{ background-color:orange !important; }
+
+table.simpletable {
+ padding: 5px;
+ font-size:12pt;
+ margin:20px;
+ border-collapse: collapse; border-spacing: 0px;
+}
+td.rowname {
+ text-align: right;
+ vertical-align: top;
+ font-weight: bold;
+ color:#444444;
+ padding-right:2ex;
+}
+
+/* Hidden text. */
+input.spoilerhider + label {
+ cursor: pointer;
+ text-decoration: underline;
+ display: block;
+}
+input.spoilerhider {
+ display: none;
+}
+input.spoilerhider ~ .spoiler {
+ overflow: hidden;
+ margin: 10px auto 0;
+ height: 0;
+ opacity: 0;
+}
+input.spoilerhider:checked + label + .spoiler{
+ height: auto;
+ opacity: 1;
+}
+</style>
+</head>
+<body>
+<!-- BUGDESC Casting a non-structure type to a structure type and accessing a field can lead to memory access errors or data corruption -->
+
+<!-- BUGTYPE Cast from non-struct type to struct type -->
+
+<!-- BUGCATEGORY Logic error -->
+
+<!-- BUGFILE /rootdir/src/terminal-profile.c -->
+
+<!-- FILENAME terminal-profile.c -->
+
+<!-- FUNCTIONNAME terminal_profile_gsettings_notify_cb -->
+
+<!-- ISSUEHASHCONTENTOFLINEINCONTEXT 8c30a389ce15bb7cb52ef8eeb32b5c47 -->
+
+<!-- BUGLINE 649 -->
+
+<!-- BUGCOLUMN 46 -->
+
+<!-- BUGPATHLENGTH 1 -->
+
+<!-- BUGMETAEND -->
+<!-- REPORTHEADER -->
+<h3>Bug Summary</h3>
+<table class="simpletable">
+<tr><td class="rowname">File:</td><td>terminal-profile.c</td></tr>
+<tr><td class="rowname">Warning:</td><td><a href="#EndPath">line 649, column 46</a><br />Casting a non-structure type to a structure type and accessing a field can lead to memory access errors or data corruption</td></tr>
+
+</table>
+<!-- REPORTSUMMARYEXTRA -->
+<h3>Annotated Source Code</h3>
+<p>Press <a href="#" onclick="toggleHelp(); return false;">'?'</a>
+ to see keyboard shortcuts</p>
+<input type="checkbox" class="spoilerhider" id="showinvocation" />
+<label for="showinvocation" >Show analyzer invocation</label>
+<div class="spoiler">clang -cc1 -cc1 -triple x86_64-redhat-linux-gnu -analyze -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name terminal-profile.c -analyzer-checker=core -analyzer-checker=apiModeling -analyzer-checker=unix -analyzer-checker=deadcode -analyzer-checker=security.insecureAPI.UncheckedReturn -analyzer-checker=security.insecureAPI.getpw -analyzer-checker=security.insecureAPI.gets -analyzer-checker=security.insecureAPI.mktemp -analyzer-checker=security.insecureAPI.mkstemp -analyzer-checker=security.insecureAPI.vfork -analyzer-checker=nullability.NullPassedToNonnull -analyzer-checker=nullability.NullReturnedFromNonnull -analyzer-output plist -w -setup-static-analyzer -mrelocation-model static -mframe-pointer=all -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -tune-cpu generic -debugger-tuning=gdb -fcoverage-compilation-dir=/rootdir/src -resource-dir /usr/bin/../lib/clang/17 -D HAVE_CONFIG_H -I . -I .. -I ../src/mate-submodules/libegg -D TERMINAL_COMPILATION -D TERMINAL_RESOURCES_PATH_PREFIX="/org/mate/terminal" -D TERM_DATADIR="/usr/local/share" -D TERM_LOCALEDIR="/usr/local/share/locale" -D TERM_PKGDATADIR="/usr/local/share/mate-terminal" -D TERM_HELPDIR="/usr/local/share/help" -D SN_API_NOT_YET_FROZEN -D GDK_MULTIHEAD_SAFE -D G_DISABLE_SINGLE_INCLUDES -D PANGO_DISABLE_SINGLE_INCLUDES -D ATK_DISABLE_SINGLE_INCLUDES -D GDK_DISABLE_SINGLE_INCLUDES -D GDK_PIXBUF_DISABLE_SINGLE_INCLUDES -D GTK_DISABLE_SINGLE_INCLUDES -I /usr/include/dconf -I /usr/include/vte-2.91 -I /usr/include/pango-1.0 -I /usr/include/gtk-3.0 -I /usr/include/gdk-pixbuf-2.0 -I /usr/include/cairo -I /usr/include/dbus-1.0 -I /usr/lib64/dbus-1.0/include -I /usr/include/atk-1.0 -I /usr/include/harfbuzz -I /usr/include/freetype2 -I /usr/include/glib-2.0 -I /usr/lib64/glib-2.0/include -I /usr/include/cloudproviders -I /usr/include/at-spi2-atk/2.0 -I /usr/include/at-spi-2.0 -I /usr/include/blkid -I /usr/include/gio-unix-2.0 -I /usr/include/pixman-1 -I /usr/include/libmount -I /usr/include/libxml2 -I /usr/include/fribidi -I /usr/include/libpng16 -I /usr/include/sysprof-6 -internal-isystem /usr/bin/../lib/clang/17/include -internal-isystem /usr/local/include -internal-isystem /usr/bin/../lib/gcc/x86_64-redhat-linux/13/../../../../x86_64-redhat-linux/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -Wno-unused-parameter -fdebug-compilation-dir=/rootdir/src -ferror-limit 19 -fgnuc-version=4.2.1 -analyzer-checker deadcode.DeadStores -analyzer-checker alpha.deadcode.UnreachableCode -analyzer-checker alpha.core.CastSize -analyzer-checker alpha.core.CastToStruct -analyzer-checker alpha.core.IdenticalExpr -analyzer-checker alpha.core.SizeofPtr -analyzer-checker alpha.security.ArrayBoundV2 -analyzer-checker alpha.security.MallocOverflow -analyzer-checker alpha.security.ReturnPtrRange -analyzer-checker alpha.unix.SimpleStream -analyzer-checker alpha.unix.cstring.BufferOverlap -analyzer-checker alpha.unix.cstring.NotNullTerminated -analyzer-checker alpha.unix.cstring.OutOfBounds -analyzer-checker alpha.core.FixedAddr -analyzer-checker security.insecureAPI.strcpy -analyzer-output=html -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /rootdir/html-report/2024-02-18-131424-5067-1 -x c terminal-profile.c
+</div>
+<div id='tooltiphint' hidden="true">
+ <p>Keyboard shortcuts: </p>
+ <ul>
+ <li>Use 'j/k' keys for keyboard navigation</li>
+ <li>Use 'Shift+S' to show/hide relevant lines</li>
+ <li>Use '?' to toggle this window</li>
+ </ul>
+ <a href="#" onclick="toggleHelp(); return false;">Close</a>
+</div>
+<script type='text/javascript'>
+var relevant_lines = {"1": {"649": 1}};
+
+var filterCounterexample = function (hide) {
+ var tables = document.getElementsByClassName("code");
+ for (var t=0; t<tables.length; t++) {
+ var table = tables[t];
+ var file_id = table.getAttribute("data-fileid");
+ var lines_in_fid = relevant_lines[file_id];
+ if (!lines_in_fid) {
+ lines_in_fid = {};
+ }
+ var lines = table.getElementsByClassName("codeline");
+ for (var i=0; i<lines.length; i++) {
+ var el = lines[i];
+ var lineNo = el.getAttribute("data-linenumber");
+ if (!lines_in_fid[lineNo]) {
+ if (hide) {
+ el.setAttribute("hidden", "");
+ } else {
+ el.removeAttribute("hidden");
+ }
+ }
+ }
+ }
+}
+
+window.addEventListener("keydown", function (event) {
+ if (event.defaultPrevented) {
+ return;
+ }
+ // SHIFT + S
+ if (event.shiftKey && event.keyCode == 83) {
+ var checked = document.getElementsByName("showCounterexample")[0].checked;
+ filterCounterexample(!checked);
+ document.getElementsByName("showCounterexample")[0].click();
+ } else {
+ return;
+ }
+ event.preventDefault();
+}, true);
+
+document.addEventListener("DOMContentLoaded", function() {
+ document.querySelector('input[name="showCounterexample"]').onchange=
+ function (event) {
+ filterCounterexample(this.checked);
+ };
+});
+</script>
+
+<form>
+ <input type="checkbox" name="showCounterexample" id="showCounterexample" />
+ <label for="showCounterexample">
+ Show only relevant lines
+ </label>
+ <input type="checkbox" name="showArrows"
+ id="showArrows" style="margin-left: 10px" />
+ <label for="showArrows">
+ Show control flow arrows
+ </label>
+</form>
+
+<script type='text/javascript'>
+// Return range of numbers from a range [lower, upper).
+function range(lower, upper) {
+ var array = [];
+ for (var i = lower; i <= upper; ++i) {
+ array.push(i);
+ }
+ return array;
+}
+
+var getRelatedArrowIndices = function(pathId) {
+ // HTML numeration of events is a bit different than it is in the path.
+ // Everything is rotated one step to the right, so the last element
+ // (error diagnostic) has index 0.
+ if (pathId == 0) {
+ // arrowIndices has at least 2 elements
+ pathId = arrowIndices.length - 1;
+ }
+
+ return range(arrowIndices[pathId], arrowIndices[pathId - 1]);
+}
+
+var highlightArrowsForSelectedEvent = function() {
+ const selectedNum = findNum();
+ const arrowIndicesToHighlight = getRelatedArrowIndices(selectedNum);
+ arrowIndicesToHighlight.forEach((index) => {
+ var arrow = document.querySelector("#arrow" + index);
+ if(arrow) {
+ classListAdd(arrow, "selected")
+ }
+ });
+}
+
+var getAbsoluteBoundingRect = function(element) {
+ const relative = element.getBoundingClientRect();
+ return {
+ left: relative.left + window.pageXOffset,
+ right: relative.right + window.pageXOffset,
+ top: relative.top + window.pageYOffset,
+ bottom: relative.bottom + window.pageYOffset,
+ height: relative.height,
+ width: relative.width
+ };
+}
+
+var drawArrow = function(index) {
+ // This function is based on the great answer from SO:
+ // https://stackoverflow.com/a/39575674/11582326
+ var start = document.querySelector("#start" + index);
+ var end = document.querySelector("#end" + index);
+ var arrow = document.querySelector("#arrow" + index);
+
+ var startRect = getAbsoluteBoundingRect(start);
+ var endRect = getAbsoluteBoundingRect(end);
+
+ // It is an arrow from a token to itself, no need to visualize it.
+ if (startRect.top == endRect.top &&
+ startRect.left == endRect.left)
+ return;
+
+ // Each arrow is a very simple Bézier curve, with two nodes and
+ // two handles. So, we need to calculate four points in the window:
+ // * start node
+ var posStart = { x: 0, y: 0 };
+ // * end node
+ var posEnd = { x: 0, y: 0 };
+ // * handle for the start node
+ var startHandle = { x: 0, y: 0 };
+ // * handle for the end node
+ var endHandle = { x: 0, y: 0 };
+ // One can visualize it as follows:
+ //
+ // start handle
+ // /
+ // X"""_.-""""X
+ // .' \
+ // / start node
+ // |
+ // |
+ // | end node
+ // \ /
+ // `->X
+ // X-'
+ // \
+ // end handle
+ //
+ // NOTE: (0, 0) is the top left corner of the window.
+
+ // We have 3 similar, but still different scenarios to cover:
+ //
+ // 1. Two tokens on different lines.
+ // -xxx
+ // /
+ // \
+ // -> xxx
+ // In this situation, we draw arrow on the left curving to the left.
+ // 2. Two tokens on the same line, and the destination is on the right.
+ // ____
+ // / \
+ // / V
+ // xxx xxx
+ // In this situation, we draw arrow above curving upwards.
+ // 3. Two tokens on the same line, and the destination is on the left.
+ // xxx xxx
+ // ^ /
+ // \____/
+ // In this situation, we draw arrow below curving downwards.
+ const onDifferentLines = startRect.top <= endRect.top - 5 ||
+ startRect.top >= endRect.top + 5;
+ const leftToRight = startRect.left < endRect.left;
+
+ // NOTE: various magic constants are chosen empirically for
+ // better positioning and look
+ if (onDifferentLines) {
+ // Case #1
+ const topToBottom = startRect.top < endRect.top;
+ posStart.x = startRect.left - 1;
+ // We don't want to start it at the top left corner of the token,
+ // it doesn't feel like this is where the arrow comes from.
+ // For this reason, we start it in the middle of the left side
+ // of the token.
+ posStart.y = startRect.top + startRect.height / 2;
+
+ // End node has arrow head and we give it a bit more space.
+ posEnd.x = endRect.left - 4;
+ posEnd.y = endRect.top;
+
+ // Utility object with x and y offsets for handles.
+ var curvature = {
+ // We want bottom-to-top arrow to curve a bit more, so it doesn't
+ // overlap much with top-to-bottom curves (much more frequent).
+ x: topToBottom ? 15 : 25,
+ y: Math.min((posEnd.y - posStart.y) / 3, 10)
+ }
+
+ // When destination is on the different line, we can make a
+ // curvier arrow because we have space for it.
+ // So, instead of using
+ //
+ // startHandle.x = posStart.x - curvature.x
+ // endHandle.x = posEnd.x - curvature.x
+ //
+ // We use the leftmost of these two values for both handles.
+ startHandle.x = Math.min(posStart.x, posEnd.x) - curvature.x;
+ endHandle.x = startHandle.x;
+
+ // Curving downwards from the start node...
+ startHandle.y = posStart.y + curvature.y;
+ // ... and upwards from the end node.
+ endHandle.y = posEnd.y - curvature.y;
+
+ } else if (leftToRight) {
+ // Case #2
+ // Starting from the top right corner...
+ posStart.x = startRect.right - 1;
+ posStart.y = startRect.top;
+
+ // ...and ending at the top left corner of the end token.
+ posEnd.x = endRect.left + 1;
+ posEnd.y = endRect.top - 1;
+
+ // Utility object with x and y offsets for handles.
+ var curvature = {
+ x: Math.min((posEnd.x - posStart.x) / 3, 15),
+ y: 5
+ }
+
+ // Curving to the right...
+ startHandle.x = posStart.x + curvature.x;
+ // ... and upwards from the start node.
+ startHandle.y = posStart.y - curvature.y;
+
+ // And to the left...
+ endHandle.x = posEnd.x - curvature.x;
+ // ... and upwards from the end node.
+ endHandle.y = posEnd.y - curvature.y;
+
+ } else {
+ // Case #3
+ // Starting from the bottom right corner...
+ posStart.x = startRect.right;
+ posStart.y = startRect.bottom;
+
+ // ...and ending also at the bottom right corner, but of the end token.
+ posEnd.x = endRect.right - 1;
+ posEnd.y = endRect.bottom + 1;
+
+ // Utility object with x and y offsets for handles.
+ var curvature = {
+ x: Math.min((posStart.x - posEnd.x) / 3, 15),
+ y: 5
+ }
+
+ // Curving to the left...
+ startHandle.x = posStart.x - curvature.x;
+ // ... and downwards from the start node.
+ startHandle.y = posStart.y + curvature.y;
+
+ // And to the right...
+ endHandle.x = posEnd.x + curvature.x;
+ // ... and downwards from the end node.
+ endHandle.y = posEnd.y + curvature.y;
+ }
+
+ // Put it all together into a path.
+ // More information on the format:
+ // https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths
+ var pathStr = "M" + posStart.x + "," + posStart.y + " " +
+ "C" + startHandle.x + "," + startHandle.y + " " +
+ endHandle.x + "," + endHandle.y + " " +
+ posEnd.x + "," + posEnd.y;
+
+ arrow.setAttribute("d", pathStr);
+};
+
+var drawArrows = function() {
+ const numOfArrows = document.querySelectorAll("path[id^=arrow]").length;
+ for (var i = 0; i < numOfArrows; ++i) {
+ drawArrow(i);
+ }
+}
+
+var toggleArrows = function(event) {
+ const arrows = document.querySelector("#arrows");
+ if (event.target.checked) {
+ arrows.setAttribute("visibility", "visible");
+ } else {
+ arrows.setAttribute("visibility", "hidden");
+ }
+}
+
+window.addEventListener("resize", drawArrows);
+document.addEventListener("DOMContentLoaded", function() {
+ // Whenever we show invocation, locations change, i.e. we
+ // need to redraw arrows.
+ document
+ .querySelector('input[id="showinvocation"]')
+ .addEventListener("click", drawArrows);
+ // Hiding irrelevant lines also should cause arrow rerender.
+ document
+ .querySelector('input[name="showCounterexample"]')
+ .addEventListener("change", drawArrows);
+ document
+ .querySelector('input[name="showArrows"]')
+ .addEventListener("change", toggleArrows);
+ drawArrows();
+ // Default highlighting for the last event.
+ highlightArrowsForSelectedEvent();
+});
+</script>
+
+<script type='text/javascript'>
+var digitMatcher = new RegExp("[0-9]+");
+
+var querySelectorAllArray = function(selector) {
+ return Array.prototype.slice.call(
+ document.querySelectorAll(selector));
+}
+
+document.addEventListener("DOMContentLoaded", function() {
+ querySelectorAllArray(".PathNav > a").forEach(
+ function(currentValue, currentIndex) {
+ var hrefValue = currentValue.getAttribute("href");
+ currentValue.onclick = function() {
+ scrollTo(document.querySelector(hrefValue));
+ return false;
+ };
+ });
+});
+
+var findNum = function() {
+ var s = document.querySelector(".msg.selected");
+ if (!s || s.id == "EndPath") {
+ return 0;
+ }
+ var out = parseInt(digitMatcher.exec(s.id)[0]);
+ return out;
+};
+
+var classListAdd = function(el, theClass) {
+ if(!el.className.baseVal)
+ el.className += " " + theClass;
+ else
+ el.className.baseVal += " " + theClass;
+};
+
+var classListRemove = function(el, theClass) {
+ var className = (!el.className.baseVal) ?
+ el.className : el.className.baseVal;
+ className = className.replace(" " + theClass, "");
+ if(!el.className.baseVal)
+ el.className = className;
+ else
+ el.className.baseVal = className;
+};
+
+var scrollTo = function(el) {
+ querySelectorAllArray(".selected").forEach(function(s) {
+ classListRemove(s, "selected");
+ });
+ classListAdd(el, "selected");
+ window.scrollBy(0, el.getBoundingClientRect().top -
+ (window.innerHeight / 2));
+ highlightArrowsForSelectedEvent();
+};
+
+var move = function(num, up, numItems) {
+ if (num == 1 && up || num == numItems - 1 && !up) {
+ return 0;
+ } else if (num == 0 && up) {
+ return numItems - 1;
+ } else if (num == 0 && !up) {
+ return 1 % numItems;
+ }
+ return up ? num - 1 : num + 1;
+}
+
+var numToId = function(num) {
+ if (num == 0) {
+ return document.getElementById("EndPath")
+ }
+ return document.getElementById("Path" + num);
+};
+
+var navigateTo = function(up) {
+ var numItems = document.querySelectorAll(
+ ".line > .msgEvent, .line > .msgControl").length;
+ var currentSelected = findNum();
+ var newSelected = move(currentSelected, up, numItems);
+ var newEl = numToId(newSelected, numItems);
+
+ // Scroll element into center.
+ scrollTo(newEl);
+};
+
+window.addEventListener("keydown", function (event) {
+ if (event.defaultPrevented) {
+ return;
+ }
+ // key 'j'
+ if (event.keyCode == 74) {
+ navigateTo(/*up=*/false);
+ // key 'k'
+ } else if (event.keyCode == 75) {
+ navigateTo(/*up=*/true);
+ } else {
+ return;
+ }
+ event.preventDefault();
+}, true);
+</script>
+
+<script type='text/javascript'>
+
+var toggleHelp = function() {
+ var hint = document.querySelector("#tooltiphint");
+ var attributeName = "hidden";
+ if (hint.hasAttribute(attributeName)) {
+ hint.removeAttribute(attributeName);
+ } else {
+ hint.setAttribute("hidden", "true");
+ }
+};
+window.addEventListener("keydown", function (event) {
+ if (event.defaultPrevented) {
+ return;
+ }
+ if (event.key == "?") {
+ toggleHelp();
+ } else {
+ return;
+ }
+ event.preventDefault();
+});
+</script>
+
+<style type="text/css">
+ svg {
+ position:absolute;
+ top:0;
+ left:0;
+ height:100%;
+ width:100%;
+ pointer-events: none;
+ overflow: visible
+ }
+ .arrow {
+ stroke-opacity: 0.2;
+ stroke-width: 1;
+ marker-end: url(#arrowhead);
+ }
+
+ .arrow.selected {
+ stroke-opacity: 0.6;
+ stroke-width: 2;
+ marker-end: url(#arrowheadSelected);
+ }
+
+ .arrowhead {
+ orient: auto;
+ stroke: none;
+ opacity: 0.6;
+ fill: blue;
+ }
+</style>
+<svg xmlns="http://www.w3.org/2000/svg">
+ <defs>
+ <marker id="arrowheadSelected" class="arrowhead" opacity="0.6"
+ viewBox="0 0 10 10" refX="3" refY="5"
+ markerWidth="4" markerHeight="4">
+ <path d="M 0 0 L 10 5 L 0 10 z" />
+ </marker>
+ <marker id="arrowhead" class="arrowhead" opacity="0.2"
+ viewBox="0 0 10 10" refX="3" refY="5"
+ markerWidth="4" markerHeight="4">
+ <path d="M 0 0 L 10 5 L 0 10 z" />
+ </marker>
+ </defs>
+ <g id="arrows" fill="none" stroke="blue" visibility="hidden">
+
+ </g>
+</svg>
+<script type='text/javascript'>
+const arrowIndices = [ 0,0 ]
+</script>
+<table class="code" data-fileid="1">
+<tr class="codeline" data-linenumber="1"><td class="num" id="LN1">1</td><td class="line"><span class='comment'>/*</span></td></tr>
+<tr class="codeline" data-linenumber="2"><td class="num" id="LN2">2</td><td class="line"> <span class='comment'>* Copyright © 2001 Havoc Pennington</span></td></tr>
+<tr class="codeline" data-linenumber="3"><td class="num" id="LN3">3</td><td class="line"> <span class='comment'>* Copyright © 2002 Mathias Hasselmann</span></td></tr>
+<tr class="codeline" data-linenumber="4"><td class="num" id="LN4">4</td><td class="line"> <span class='comment'>* Copyright © 2008 Christian Persch</span></td></tr>
+<tr class="codeline" data-linenumber="5"><td class="num" id="LN5">5</td><td class="line"> <span class='comment'>* Copyright (C) 2012-2021 MATE Developers</span></td></tr>
+<tr class="codeline" data-linenumber="6"><td class="num" id="LN6">6</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="7"><td class="num" id="LN7">7</td><td class="line"> <span class='comment'>* Mate-terminal is free software; you can redistribute it and/or modify</span></td></tr>
+<tr class="codeline" data-linenumber="8"><td class="num" id="LN8">8</td><td class="line"> <span class='comment'>* it under the terms of the GNU General Public License as published by</span></td></tr>
+<tr class="codeline" data-linenumber="9"><td class="num" id="LN9">9</td><td class="line"> <span class='comment'>* the Free Software Foundation; either version 3 of the License, or</span></td></tr>
+<tr class="codeline" data-linenumber="10"><td class="num" id="LN10">10</td><td class="line"> <span class='comment'>* (at your option) any later version.</span></td></tr>
+<tr class="codeline" data-linenumber="11"><td class="num" id="LN11">11</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="12"><td class="num" id="LN12">12</td><td class="line"> <span class='comment'>* Mate-terminal is distributed in the hope that it will be useful,</span></td></tr>
+<tr class="codeline" data-linenumber="13"><td class="num" id="LN13">13</td><td class="line"> <span class='comment'>* but WITHOUT ANY WARRANTY; without even the implied warranty of</span></td></tr>
+<tr class="codeline" data-linenumber="14"><td class="num" id="LN14">14</td><td class="line"> <span class='comment'>* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></td></tr>
+<tr class="codeline" data-linenumber="15"><td class="num" id="LN15">15</td><td class="line"> <span class='comment'>* GNU General Public License for more details.</span></td></tr>
+<tr class="codeline" data-linenumber="16"><td class="num" id="LN16">16</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="17"><td class="num" id="LN17">17</td><td class="line"> <span class='comment'>* You should have received a copy of the GNU General Public License</span></td></tr>
+<tr class="codeline" data-linenumber="18"><td class="num" id="LN18">18</td><td class="line"> <span class='comment'>* along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.</span></td></tr>
+<tr class="codeline" data-linenumber="19"><td class="num" id="LN19">19</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="20"><td class="num" id="LN20">20</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="21"><td class="num" id="LN21">21</td><td class="line"><span class='directive'>#include &lt;config.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="22"><td class="num" id="LN22">22</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="23"><td class="num" id="LN23">23</td><td class="line"><span class='directive'>#include &lt;string.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="24"><td class="num" id="LN24">24</td><td class="line"><span class='directive'>#include &lt;stdlib.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="25"><td class="num" id="LN25">25</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="26"><td class="num" id="LN26">26</td><td class="line"><span class='directive'>#include &lt;gtk/gtk.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="27"><td class="num" id="LN27">27</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="28"><td class="num" id="LN28">28</td><td class="line"><span class='directive'>#include "terminal-app.h"</span></td></tr>
+<tr class="codeline" data-linenumber="29"><td class="num" id="LN29">29</td><td class="line"><span class='directive'>#include "terminal-debug.h"</span></td></tr>
+<tr class="codeline" data-linenumber="30"><td class="num" id="LN30">30</td><td class="line"><span class='directive'>#include "terminal-intl.h"</span></td></tr>
+<tr class="codeline" data-linenumber="31"><td class="num" id="LN31">31</td><td class="line"><span class='directive'>#include "terminal-profile.h"</span></td></tr>
+<tr class="codeline" data-linenumber="32"><td class="num" id="LN32">32</td><td class="line"><span class='directive'>#include "terminal-screen.h"</span></td></tr>
+<tr class="codeline" data-linenumber="33"><td class="num" id="LN33">33</td><td class="line"><span class='directive'>#include "terminal-type-builtins.h"</span></td></tr>
+<tr class="codeline" data-linenumber="34"><td class="num" id="LN34">34</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="35"><td class="num" id="LN35">35</td><td class="line"><span class='comment'>/* To add a new key, you need to:</span></td></tr>
+<tr class="codeline" data-linenumber="36"><td class="num" id="LN36">36</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="37"><td class="num" id="LN37">37</td><td class="line"> <span class='comment'>* - add an entry to the enum below</span></td></tr>
+<tr class="codeline" data-linenumber="38"><td class="num" id="LN38">38</td><td class="line"> <span class='comment'>* - add a #define with its name in terminal-profile.h</span></td></tr>
+<tr class="codeline" data-linenumber="39"><td class="num" id="LN39">39</td><td class="line"> <span class='comment'>* - add a gobject property for it in terminal_profile_class_init</span></td></tr>
+<tr class="codeline" data-linenumber="40"><td class="num" id="LN40">40</td><td class="line"> <span class='comment'>* - if the property's type needs special casing, add that to</span></td></tr>
+<tr class="codeline" data-linenumber="41"><td class="num" id="LN41">41</td><td class="line"> <span class='comment'>* terminal_profile_gsettings_notify_cb and</span></td></tr>
+<tr class="codeline" data-linenumber="42"><td class="num" id="LN42">42</td><td class="line"> <span class='comment'>* terminal_profile_gsettings_changeset_add</span></td></tr>
+<tr class="codeline" data-linenumber="43"><td class="num" id="LN43">43</td><td class="line"> <span class='comment'>* - if necessary the default value cannot be handled via the paramspec,</span></td></tr>
+<tr class="codeline" data-linenumber="44"><td class="num" id="LN44">44</td><td class="line"> <span class='comment'>* handle that in terminal_profile_reset_property_internal</span></td></tr>
+<tr class="codeline" data-linenumber="45"><td class="num" id="LN45">45</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="46"><td class="num" id="LN46">46</td><td class="line"><span class='keyword'>enum</span></td></tr>
+<tr class="codeline" data-linenumber="47"><td class="num" id="LN47">47</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="48"><td class="num" id="LN48">48</td><td class="line"> PROP_0,</td></tr>
+<tr class="codeline" data-linenumber="49"><td class="num" id="LN49">49</td><td class="line"> PROP_ALLOW_BOLD,</td></tr>
+<tr class="codeline" data-linenumber="50"><td class="num" id="LN50">50</td><td class="line"> PROP_BACKGROUND_COLOR,</td></tr>
+<tr class="codeline" data-linenumber="51"><td class="num" id="LN51">51</td><td class="line"> PROP_BACKGROUND_DARKNESS,</td></tr>
+<tr class="codeline" data-linenumber="52"><td class="num" id="LN52">52</td><td class="line"> PROP_BACKGROUND_IMAGE,</td></tr>
+<tr class="codeline" data-linenumber="53"><td class="num" id="LN53">53</td><td class="line"> PROP_BACKGROUND_IMAGE_FILE,</td></tr>
+<tr class="codeline" data-linenumber="54"><td class="num" id="LN54">54</td><td class="line"> PROP_BACKGROUND_TYPE,</td></tr>
+<tr class="codeline" data-linenumber="55"><td class="num" id="LN55">55</td><td class="line"> PROP_BACKSPACE_BINDING,</td></tr>
+<tr class="codeline" data-linenumber="56"><td class="num" id="LN56">56</td><td class="line"> PROP_BOLD_COLOR,</td></tr>
+<tr class="codeline" data-linenumber="57"><td class="num" id="LN57">57</td><td class="line"> PROP_BOLD_COLOR_SAME_AS_FG,</td></tr>
+<tr class="codeline" data-linenumber="58"><td class="num" id="LN58">58</td><td class="line"> PROP_CURSOR_BLINK_MODE,</td></tr>
+<tr class="codeline" data-linenumber="59"><td class="num" id="LN59">59</td><td class="line"> PROP_CURSOR_SHAPE,</td></tr>
+<tr class="codeline" data-linenumber="60"><td class="num" id="LN60">60</td><td class="line"> PROP_CUSTOM_COMMAND,</td></tr>
+<tr class="codeline" data-linenumber="61"><td class="num" id="LN61">61</td><td class="line"> PROP_DEFAULT_SIZE_COLUMNS,</td></tr>
+<tr class="codeline" data-linenumber="62"><td class="num" id="LN62">62</td><td class="line"> PROP_DEFAULT_SIZE_ROWS,</td></tr>
+<tr class="codeline" data-linenumber="63"><td class="num" id="LN63">63</td><td class="line"> PROP_DEFAULT_SHOW_MENUBAR,</td></tr>
+<tr class="codeline" data-linenumber="64"><td class="num" id="LN64">64</td><td class="line"> PROP_DELETE_BINDING,</td></tr>
+<tr class="codeline" data-linenumber="65"><td class="num" id="LN65">65</td><td class="line"> PROP_EXIT_ACTION,</td></tr>
+<tr class="codeline" data-linenumber="66"><td class="num" id="LN66">66</td><td class="line"> PROP_FONT,</td></tr>
+<tr class="codeline" data-linenumber="67"><td class="num" id="LN67">67</td><td class="line"> PROP_FOREGROUND_COLOR,</td></tr>
+<tr class="codeline" data-linenumber="68"><td class="num" id="LN68">68</td><td class="line"> PROP_LOGIN_SHELL,</td></tr>
+<tr class="codeline" data-linenumber="69"><td class="num" id="LN69">69</td><td class="line"> PROP_NAME,</td></tr>
+<tr class="codeline" data-linenumber="70"><td class="num" id="LN70">70</td><td class="line"> PROP_PALETTE,</td></tr>
+<tr class="codeline" data-linenumber="71"><td class="num" id="LN71">71</td><td class="line"> PROP_SCROLL_BACKGROUND,</td></tr>
+<tr class="codeline" data-linenumber="72"><td class="num" id="LN72">72</td><td class="line"> PROP_SCROLLBACK_LINES,</td></tr>
+<tr class="codeline" data-linenumber="73"><td class="num" id="LN73">73</td><td class="line"> PROP_SCROLLBACK_UNLIMITED,</td></tr>
+<tr class="codeline" data-linenumber="74"><td class="num" id="LN74">74</td><td class="line"> PROP_SCROLLBAR_POSITION,</td></tr>
+<tr class="codeline" data-linenumber="75"><td class="num" id="LN75">75</td><td class="line"> PROP_SCROLL_ON_KEYSTROKE,</td></tr>
+<tr class="codeline" data-linenumber="76"><td class="num" id="LN76">76</td><td class="line"> PROP_SCROLL_ON_OUTPUT,</td></tr>
+<tr class="codeline" data-linenumber="77"><td class="num" id="LN77">77</td><td class="line"> PROP_SILENT_BELL,</td></tr>
+<tr class="codeline" data-linenumber="78"><td class="num" id="LN78">78</td><td class="line"> PROP_TITLE,</td></tr>
+<tr class="codeline" data-linenumber="79"><td class="num" id="LN79">79</td><td class="line"> PROP_TITLE_MODE,</td></tr>
+<tr class="codeline" data-linenumber="80"><td class="num" id="LN80">80</td><td class="line"> PROP_USE_CUSTOM_COMMAND,</td></tr>
+<tr class="codeline" data-linenumber="81"><td class="num" id="LN81">81</td><td class="line"> PROP_USE_CUSTOM_DEFAULT_SIZE,</td></tr>
+<tr class="codeline" data-linenumber="82"><td class="num" id="LN82">82</td><td class="line"> PROP_USE_SKEY,</td></tr>
+<tr class="codeline" data-linenumber="83"><td class="num" id="LN83">83</td><td class="line"> PROP_USE_URLS,</td></tr>
+<tr class="codeline" data-linenumber="84"><td class="num" id="LN84">84</td><td class="line"> PROP_USE_SYSTEM_FONT,</td></tr>
+<tr class="codeline" data-linenumber="85"><td class="num" id="LN85">85</td><td class="line"> PROP_USE_THEME_COLORS,</td></tr>
+<tr class="codeline" data-linenumber="86"><td class="num" id="LN86">86</td><td class="line"> PROP_VISIBLE_NAME,</td></tr>
+<tr class="codeline" data-linenumber="87"><td class="num" id="LN87">87</td><td class="line"> PROP_WORD_CHARS,</td></tr>
+<tr class="codeline" data-linenumber="88"><td class="num" id="LN88">88</td><td class="line"> PROP_COPY_SELECTION,</td></tr>
+<tr class="codeline" data-linenumber="89"><td class="num" id="LN89">89</td><td class="line"> LAST_PROP</td></tr>
+<tr class="codeline" data-linenumber="90"><td class="num" id="LN90">90</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="91"><td class="num" id="LN91">91</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="92"><td class="num" id="LN92">92</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_ALLOW_BOLD<span class='macro_popup'>"allow-bold"</span></span> "allow-bold"</span></td></tr>
+<tr class="codeline" data-linenumber="93"><td class="num" id="LN93">93</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_BACKGROUND_COLOR<span class='macro_popup'>"background-color"</span></span> "background-color"</span></td></tr>
+<tr class="codeline" data-linenumber="94"><td class="num" id="LN94">94</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_BACKGROUND_DARKNESS<span class='macro_popup'>"background-darkness"</span></span> "background-darkness"</span></td></tr>
+<tr class="codeline" data-linenumber="95"><td class="num" id="LN95">95</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_BACKGROUND_IMAGE_FILE<span class='macro_popup'>"background-image"</span></span> "background-image"</span></td></tr>
+<tr class="codeline" data-linenumber="96"><td class="num" id="LN96">96</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_BACKGROUND_TYPE<span class='macro_popup'>"background-type"</span></span> "background-type"</span></td></tr>
+<tr class="codeline" data-linenumber="97"><td class="num" id="LN97">97</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_BACKSPACE_BINDING<span class='macro_popup'>"backspace-binding"</span></span> "backspace-binding"</span></td></tr>
+<tr class="codeline" data-linenumber="98"><td class="num" id="LN98">98</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_BOLD_COLOR<span class='macro_popup'>"bold-color"</span></span> "bold-color"</span></td></tr>
+<tr class="codeline" data-linenumber="99"><td class="num" id="LN99">99</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_BOLD_COLOR_SAME_AS_FG<span class='macro_popup'>"bold-color-same-as-fg"</span></span> "bold-color-same-as-fg"</span></td></tr>
+<tr class="codeline" data-linenumber="100"><td class="num" id="LN100">100</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_CURSOR_BLINK_MODE<span class='macro_popup'>"cursor-blink-mode"</span></span> "cursor-blink-mode"</span></td></tr>
+<tr class="codeline" data-linenumber="101"><td class="num" id="LN101">101</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_CURSOR_SHAPE<span class='macro_popup'>"cursor-shape"</span></span> "cursor-shape"</span></td></tr>
+<tr class="codeline" data-linenumber="102"><td class="num" id="LN102">102</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_CUSTOM_COMMAND<span class='macro_popup'>"custom-command"</span></span> "custom-command"</span></td></tr>
+<tr class="codeline" data-linenumber="103"><td class="num" id="LN103">103</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_DEFAULT_SHOW_MENUBAR<span class='macro_popup'>"default-show-menubar"</span></span> "default-show-menubar"</span></td></tr>
+<tr class="codeline" data-linenumber="104"><td class="num" id="LN104">104</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_DEFAULT_SIZE_COLUMNS<span class='macro_popup'>"default-size-columns"</span></span> "default-size-columns"</span></td></tr>
+<tr class="codeline" data-linenumber="105"><td class="num" id="LN105">105</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_DEFAULT_SIZE_ROWS<span class='macro_popup'>"default-size-rows"</span></span> "default-size-rows"</span></td></tr>
+<tr class="codeline" data-linenumber="106"><td class="num" id="LN106">106</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_DELETE_BINDING<span class='macro_popup'>"delete-binding"</span></span> "delete-binding"</span></td></tr>
+<tr class="codeline" data-linenumber="107"><td class="num" id="LN107">107</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_EXIT_ACTION<span class='macro_popup'>"exit-action"</span></span> "exit-action"</span></td></tr>
+<tr class="codeline" data-linenumber="108"><td class="num" id="LN108">108</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_FONT<span class='macro_popup'>"font"</span></span> "font"</span></td></tr>
+<tr class="codeline" data-linenumber="109"><td class="num" id="LN109">109</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_FOREGROUND_COLOR<span class='macro_popup'>"foreground-color"</span></span> "foreground-color"</span></td></tr>
+<tr class="codeline" data-linenumber="110"><td class="num" id="LN110">110</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_LOGIN_SHELL<span class='macro_popup'>"login-shell"</span></span> "login-shell"</span></td></tr>
+<tr class="codeline" data-linenumber="111"><td class="num" id="LN111">111</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_PALETTE<span class='macro_popup'>"palette"</span></span> "palette"</span></td></tr>
+<tr class="codeline" data-linenumber="112"><td class="num" id="LN112">112</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_SCROLL_BACKGROUND<span class='macro_popup'>"scroll-background"</span></span> "scroll-background"</span></td></tr>
+<tr class="codeline" data-linenumber="113"><td class="num" id="LN113">113</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_SCROLLBACK_LINES<span class='macro_popup'>"scrollback-lines"</span></span> "scrollback-lines"</span></td></tr>
+<tr class="codeline" data-linenumber="114"><td class="num" id="LN114">114</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_SCROLLBACK_UNLIMITED<span class='macro_popup'>"scrollback-unlimited"</span></span> "scrollback-unlimited"</span></td></tr>
+<tr class="codeline" data-linenumber="115"><td class="num" id="LN115">115</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_SCROLLBAR_POSITION<span class='macro_popup'>"scrollbar-position"</span></span> "scrollbar-position"</span></td></tr>
+<tr class="codeline" data-linenumber="116"><td class="num" id="LN116">116</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_SCROLL_ON_KEYSTROKE<span class='macro_popup'>"scroll-on-keystroke"</span></span> "scroll-on-keystroke"</span></td></tr>
+<tr class="codeline" data-linenumber="117"><td class="num" id="LN117">117</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_SCROLL_ON_OUTPUT<span class='macro_popup'>"scroll-on-output"</span></span> "scroll-on-output"</span></td></tr>
+<tr class="codeline" data-linenumber="118"><td class="num" id="LN118">118</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_SILENT_BELL<span class='macro_popup'>"silent-bell"</span></span> "silent-bell"</span></td></tr>
+<tr class="codeline" data-linenumber="119"><td class="num" id="LN119">119</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_COPY_SELECTION<span class='macro_popup'>"copy-selection"</span></span> "copy-selection"</span></td></tr>
+<tr class="codeline" data-linenumber="120"><td class="num" id="LN120">120</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_TITLE_MODE<span class='macro_popup'>"title-mode"</span></span> "title-mode"</span></td></tr>
+<tr class="codeline" data-linenumber="121"><td class="num" id="LN121">121</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_TITLE<span class='macro_popup'>"title"</span></span> "title"</span></td></tr>
+<tr class="codeline" data-linenumber="122"><td class="num" id="LN122">122</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_USE_CUSTOM_COMMAND<span class='macro_popup'>"use-custom-command"</span></span> "use-custom-command"</span></td></tr>
+<tr class="codeline" data-linenumber="123"><td class="num" id="LN123">123</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_USE_CUSTOM_DEFAULT_SIZE<span class='macro_popup'>"use-custom-default-size"</span></span> "use-custom-default-size"</span></td></tr>
+<tr class="codeline" data-linenumber="124"><td class="num" id="LN124">124</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_USE_SKEY<span class='macro_popup'>"use-skey"</span></span> "use-skey"</span></td></tr>
+<tr class="codeline" data-linenumber="125"><td class="num" id="LN125">125</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_USE_URLS<span class='macro_popup'>"use-urls"</span></span> "use-urls"</span></td></tr>
+<tr class="codeline" data-linenumber="126"><td class="num" id="LN126">126</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_USE_SYSTEM_FONT<span class='macro_popup'>"use-system-font"</span></span> "use-system-font"</span></td></tr>
+<tr class="codeline" data-linenumber="127"><td class="num" id="LN127">127</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_USE_THEME_COLORS<span class='macro_popup'>"use-theme-colors"</span></span> "use-theme-colors"</span></td></tr>
+<tr class="codeline" data-linenumber="128"><td class="num" id="LN128">128</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_VISIBLE_NAME<span class='macro_popup'>"visible-name"</span></span> "visible-name"</span></td></tr>
+<tr class="codeline" data-linenumber="129"><td class="num" id="LN129">129</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_WORD_CHARS<span class='macro_popup'>"word-chars"</span></span> "word-chars"</span></td></tr>
+<tr class="codeline" data-linenumber="130"><td class="num" id="LN130">130</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="131"><td class="num" id="LN131">131</td><td class="line"><span class='comment'>/* Keep these in sync with the GSettings schema! */</span></td></tr>
+<tr class="codeline" data-linenumber="132"><td class="num" id="LN132">132</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_ALLOW_BOLD<span class='macro_popup'>((!(0)))</span></span> (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="133"><td class="num" id="LN133">133</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_BACKGROUND_COLOR<span class='macro_popup'>("#FFFFDD")</span></span> ("#FFFFDD")</span></td></tr>
+<tr class="codeline" data-linenumber="134"><td class="num" id="LN134">134</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_BOLD_COLOR_SAME_AS_FG<span class='macro_popup'>((!(0)))</span></span> (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="135"><td class="num" id="LN135">135</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_BACKGROUND_DARKNESS<span class='macro_popup'>(0.5)</span></span> (0.5)</span></td></tr>
+<tr class="codeline" data-linenumber="136"><td class="num" id="LN136">136</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_BACKGROUND_IMAGE_FILE<span class='macro_popup'>("")</span></span> ("")</span></td></tr>
+<tr class="codeline" data-linenumber="137"><td class="num" id="LN137">137</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_BACKGROUND_TYPE<span class='macro_popup'>(TERMINAL_BACKGROUND_SOLID)</span></span> (TERMINAL_BACKGROUND_SOLID)</span></td></tr>
+<tr class="codeline" data-linenumber="138"><td class="num" id="LN138">138</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_BACKSPACE_BINDING<span class='macro_popup'>(VTE_ERASE_ASCII_DELETE)</span></span> (VTE_ERASE_ASCII_DELETE)</span></td></tr>
+<tr class="codeline" data-linenumber="139"><td class="num" id="LN139">139</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_CURSOR_BLINK_MODE<span class='macro_popup'>(VTE_CURSOR_BLINK_SYSTEM)</span></span> (VTE_CURSOR_BLINK_SYSTEM)</span></td></tr>
+<tr class="codeline" data-linenumber="140"><td class="num" id="LN140">140</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_CURSOR_SHAPE<span class='macro_popup'>(VTE_CURSOR_SHAPE_BLOCK)</span></span> (VTE_CURSOR_SHAPE_BLOCK)</span></td></tr>
+<tr class="codeline" data-linenumber="141"><td class="num" id="LN141">141</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_CUSTOM_COMMAND<span class='macro_popup'>("")</span></span> ("")</span></td></tr>
+<tr class="codeline" data-linenumber="142"><td class="num" id="LN142">142</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_DEFAULT_SHOW_MENUBAR<span class='macro_popup'>((!(0)))</span></span> (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="143"><td class="num" id="LN143">143</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_DEFAULT_SIZE_COLUMNS<span class='macro_popup'>(80)</span></span> (80)</span></td></tr>
+<tr class="codeline" data-linenumber="144"><td class="num" id="LN144">144</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_DEFAULT_SIZE_ROWS<span class='macro_popup'>(24)</span></span> (24)</span></td></tr>
+<tr class="codeline" data-linenumber="145"><td class="num" id="LN145">145</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_DELETE_BINDING<span class='macro_popup'>(VTE_ERASE_DELETE_SEQUENCE)</span></span> (VTE_ERASE_DELETE_SEQUENCE)</span></td></tr>
+<tr class="codeline" data-linenumber="146"><td class="num" id="LN146">146</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_EXIT_ACTION<span class='macro_popup'>(TERMINAL_EXIT_CLOSE)</span></span> (TERMINAL_EXIT_CLOSE)</span></td></tr>
+<tr class="codeline" data-linenumber="147"><td class="num" id="LN147">147</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_FONT<span class='macro_popup'>("Monospace 12")</span></span> ("Monospace 12")</span></td></tr>
+<tr class="codeline" data-linenumber="148"><td class="num" id="LN148">148</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_FOREGROUND_COLOR<span class='macro_popup'>("#000000")</span></span> ("#000000")</span></td></tr>
+<tr class="codeline" data-linenumber="149"><td class="num" id="LN149">149</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_LOGIN_SHELL<span class='macro_popup'>((0))</span></span> (<span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="150"><td class="num" id="LN150">150</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_NAME<span class='macro_popup'>(((void*)0))</span></span> (<span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="151"><td class="num" id="LN151">151</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_PALETTE<span class='macro_popup'>(terminal_palettes[0])</span></span> (terminal_palettes[<span class='macro'>TERMINAL_PALETTE_TANGO<span class='macro_popup'>0</span></span>])</span></td></tr>
+<tr class="codeline" data-linenumber="152"><td class="num" id="LN152">152</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_SCROLL_BACKGROUND<span class='macro_popup'>((!(0)))</span></span> (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="153"><td class="num" id="LN153">153</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_SCROLLBACK_LINES<span class='macro_popup'>(512)</span></span> (512)</span></td></tr>
+<tr class="codeline" data-linenumber="154"><td class="num" id="LN154">154</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_SCROLLBACK_UNLIMITED<span class='macro_popup'>((0))</span></span> (<span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="155"><td class="num" id="LN155">155</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_SCROLLBAR_POSITION<span class='macro_popup'>(TERMINAL_SCROLLBAR_RIGHT)</span></span> (TERMINAL_SCROLLBAR_RIGHT)</span></td></tr>
+<tr class="codeline" data-linenumber="156"><td class="num" id="LN156">156</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_SCROLL_ON_KEYSTROKE<span class='macro_popup'>((!(0)))</span></span> (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="157"><td class="num" id="LN157">157</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_SCROLL_ON_OUTPUT<span class='macro_popup'>((0))</span></span> (<span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="158"><td class="num" id="LN158">158</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_SILENT_BELL<span class='macro_popup'>((0))</span></span> (<span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="159"><td class="num" id="LN159">159</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_COPY_SELECTION<span class='macro_popup'>((0))</span></span> (<span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="160"><td class="num" id="LN160">160</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_TITLE_MODE<span class='macro_popup'>(TERMINAL_TITLE_REPLACE)</span></span> (TERMINAL_TITLE_REPLACE)</span></td></tr>
+<tr class="codeline" data-linenumber="161"><td class="num" id="LN161">161</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_TITLE<span class='macro_popup'>(("Terminal"))</span></span> (<span class='macro'>N_("Terminal")<span class='macro_popup'>("Terminal")</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="162"><td class="num" id="LN162">162</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_USE_CUSTOM_COMMAND<span class='macro_popup'>((0))</span></span> (<span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="163"><td class="num" id="LN163">163</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_USE_CUSTOM_DEFAULT_SIZE<span class='macro_popup'>((0))</span></span> (<span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="164"><td class="num" id="LN164">164</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_USE_SKEY<span class='macro_popup'>((!(0)))</span></span> (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="165"><td class="num" id="LN165">165</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_USE_URLS<span class='macro_popup'>((!(0)))</span></span> (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="166"><td class="num" id="LN166">166</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_USE_SYSTEM_FONT<span class='macro_popup'>((!(0)))</span></span> (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="167"><td class="num" id="LN167">167</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_USE_THEME_COLORS<span class='macro_popup'>((!(0)))</span></span> (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="168"><td class="num" id="LN168">168</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_VISIBLE_NAME<span class='macro_popup'>(("Unnamed"))</span></span> (<span class='macro'>N_("Unnamed")<span class='macro_popup'>("Unnamed")</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="169"><td class="num" id="LN169">169</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_WORD_CHARS<span class='macro_popup'>("-A-Za-z0-9,./?%&amp;#:_=+@~")</span></span> ("-A-Za-z0-9,./?%&amp;#:_=+@~")</span></td></tr>
+<tr class="codeline" data-linenumber="170"><td class="num" id="LN170">170</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="171"><td class="num" id="LN171">171</td><td class="line"><span class='keyword'>struct</span> _TerminalProfilePrivate</td></tr>
+<tr class="codeline" data-linenumber="172"><td class="num" id="LN172">172</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="173"><td class="num" id="LN173">173</td><td class="line"> GValueArray *properties;</td></tr>
+<tr class="codeline" data-linenumber="174"><td class="num" id="LN174">174</td><td class="line"> gboolean *locked;</td></tr>
+<tr class="codeline" data-linenumber="175"><td class="num" id="LN175">175</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="176"><td class="num" id="LN176">176</td><td class="line"> GSettings *settings;</td></tr>
+<tr class="codeline" data-linenumber="177"><td class="num" id="LN177">177</td><td class="line"> <span class='keyword'>char</span> *profile_dir;</td></tr>
+<tr class="codeline" data-linenumber="178"><td class="num" id="LN178">178</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="179"><td class="num" id="LN179">179</td><td class="line"> GSList *dirty_pspecs;</td></tr>
+<tr class="codeline" data-linenumber="180"><td class="num" id="LN180">180</td><td class="line"> guint save_idle_id;</td></tr>
+<tr class="codeline" data-linenumber="181"><td class="num" id="LN181">181</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="182"><td class="num" id="LN182">182</td><td class="line"> GParamSpec *gsettings_notification_pspec;</td></tr>
+<tr class="codeline" data-linenumber="183"><td class="num" id="LN183">183</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="184"><td class="num" id="LN184">184</td><td class="line"> gboolean background_load_failed;</td></tr>
+<tr class="codeline" data-linenumber="185"><td class="num" id="LN185">185</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="186"><td class="num" id="LN186">186</td><td class="line"> guint forgotten : 1;</td></tr>
+<tr class="codeline" data-linenumber="187"><td class="num" id="LN187">187</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="188"><td class="num" id="LN188">188</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="189"><td class="num" id="LN189">189</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>const</span> GdkRGBA terminal_palettes[<span class='macro'>TERMINAL_PALETTE_N_BUILTINS<span class='macro_popup'>5</span></span>][<span class='macro'>TERMINAL_PALETTE_SIZE<span class='macro_popup'>16</span></span>] =</td></tr>
+<tr class="codeline" data-linenumber="190"><td class="num" id="LN190">190</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="191"><td class="num" id="LN191">191</td><td class="line"> <span class='comment'>/* Tango palette */</span></td></tr>
+<tr class="codeline" data-linenumber="192"><td class="num" id="LN192">192</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="193"><td class="num" id="LN193">193</td><td class="line"> { 0, 0, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="194"><td class="num" id="LN194">194</td><td class="line"> { 0.8, 0, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="195"><td class="num" id="LN195">195</td><td class="line"> { 0.305882, 0.603922, 0.0235294, 1 },</td></tr>
+<tr class="codeline" data-linenumber="196"><td class="num" id="LN196">196</td><td class="line"> { 0.768627, 0.627451, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="197"><td class="num" id="LN197">197</td><td class="line"> { 0.203922, 0.396078, 0.643137, 1 },</td></tr>
+<tr class="codeline" data-linenumber="198"><td class="num" id="LN198">198</td><td class="line"> { 0.458824, 0.313725, 0.482353, 1 },</td></tr>
+<tr class="codeline" data-linenumber="199"><td class="num" id="LN199">199</td><td class="line"> { 0.0235294, 0.596078, 0.603922, 1 },</td></tr>
+<tr class="codeline" data-linenumber="200"><td class="num" id="LN200">200</td><td class="line"> { 0.827451, 0.843137, 0.811765, 1 },</td></tr>
+<tr class="codeline" data-linenumber="201"><td class="num" id="LN201">201</td><td class="line"> { 0.333333, 0.341176, 0.32549, 1 },</td></tr>
+<tr class="codeline" data-linenumber="202"><td class="num" id="LN202">202</td><td class="line"> { 0.937255, 0.160784, 0.160784, 1 },</td></tr>
+<tr class="codeline" data-linenumber="203"><td class="num" id="LN203">203</td><td class="line"> { 0.541176, 0.886275, 0.203922, 1 },</td></tr>
+<tr class="codeline" data-linenumber="204"><td class="num" id="LN204">204</td><td class="line"> { 0.988235, 0.913725, 0.309804, 1 },</td></tr>
+<tr class="codeline" data-linenumber="205"><td class="num" id="LN205">205</td><td class="line"> { 0.447059, 0.623529, 0.811765, 1 },</td></tr>
+<tr class="codeline" data-linenumber="206"><td class="num" id="LN206">206</td><td class="line"> { 0.678431, 0.498039, 0.658824, 1 },</td></tr>
+<tr class="codeline" data-linenumber="207"><td class="num" id="LN207">207</td><td class="line"> { 0.203922, 0.886275, 0.886275, 1 },</td></tr>
+<tr class="codeline" data-linenumber="208"><td class="num" id="LN208">208</td><td class="line"> { 0.933333, 0.933333, 0.92549, 1 },</td></tr>
+<tr class="codeline" data-linenumber="209"><td class="num" id="LN209">209</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="210"><td class="num" id="LN210">210</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="211"><td class="num" id="LN211">211</td><td class="line"> <span class='comment'>/* Linux palette */</span></td></tr>
+<tr class="codeline" data-linenumber="212"><td class="num" id="LN212">212</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="213"><td class="num" id="LN213">213</td><td class="line"> { 0, 0, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="214"><td class="num" id="LN214">214</td><td class="line"> { 0.666667, 0, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="215"><td class="num" id="LN215">215</td><td class="line"> { 0, 0.666667, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="216"><td class="num" id="LN216">216</td><td class="line"> { 0.666667, 0.333333, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="217"><td class="num" id="LN217">217</td><td class="line"> { 0, 0, 0.666667, 1 },</td></tr>
+<tr class="codeline" data-linenumber="218"><td class="num" id="LN218">218</td><td class="line"> { 0.666667, 0, 0.666667, 1 },</td></tr>
+<tr class="codeline" data-linenumber="219"><td class="num" id="LN219">219</td><td class="line"> { 0, 0.666667, 0.666667, 1 },</td></tr>
+<tr class="codeline" data-linenumber="220"><td class="num" id="LN220">220</td><td class="line"> { 0.666667, 0.666667, 0.666667, 1 },</td></tr>
+<tr class="codeline" data-linenumber="221"><td class="num" id="LN221">221</td><td class="line"> { 0.333333, 0.333333, 0.333333, 1 },</td></tr>
+<tr class="codeline" data-linenumber="222"><td class="num" id="LN222">222</td><td class="line"> { 1, 0.333333, 0.333333, 1 },</td></tr>
+<tr class="codeline" data-linenumber="223"><td class="num" id="LN223">223</td><td class="line"> { 0.333333, 1, 0.333333, 1 },</td></tr>
+<tr class="codeline" data-linenumber="224"><td class="num" id="LN224">224</td><td class="line"> { 1, 1, 0.333333, 1 },</td></tr>
+<tr class="codeline" data-linenumber="225"><td class="num" id="LN225">225</td><td class="line"> { 0.333333, 0.333333, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="226"><td class="num" id="LN226">226</td><td class="line"> { 1, 0.333333, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="227"><td class="num" id="LN227">227</td><td class="line"> { 0.333333, 1, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="228"><td class="num" id="LN228">228</td><td class="line"> { 1, 1, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="229"><td class="num" id="LN229">229</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="230"><td class="num" id="LN230">230</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="231"><td class="num" id="LN231">231</td><td class="line"> <span class='comment'>/* XTerm palette */</span></td></tr>
+<tr class="codeline" data-linenumber="232"><td class="num" id="LN232">232</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="233"><td class="num" id="LN233">233</td><td class="line"> { 0, 0, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="234"><td class="num" id="LN234">234</td><td class="line"> { 0.803922, 0, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="235"><td class="num" id="LN235">235</td><td class="line"> { 0, 0.803922, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="236"><td class="num" id="LN236">236</td><td class="line"> { 0.803922, 0.803922, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="237"><td class="num" id="LN237">237</td><td class="line"> { 0.117647, 0.564706, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="238"><td class="num" id="LN238">238</td><td class="line"> { 0.803922, 0, 0.803922, 1 },</td></tr>
+<tr class="codeline" data-linenumber="239"><td class="num" id="LN239">239</td><td class="line"> { 0, 0.803922, 0.803922, 1 },</td></tr>
+<tr class="codeline" data-linenumber="240"><td class="num" id="LN240">240</td><td class="line"> { 0.898039, 0.898039, 0.898039, 1 },</td></tr>
+<tr class="codeline" data-linenumber="241"><td class="num" id="LN241">241</td><td class="line"> { 0.298039, 0.298039, 0.298039, 1 },</td></tr>
+<tr class="codeline" data-linenumber="242"><td class="num" id="LN242">242</td><td class="line"> { 1, 0, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="243"><td class="num" id="LN243">243</td><td class="line"> { 0, 1, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="244"><td class="num" id="LN244">244</td><td class="line"> { 1, 1, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="245"><td class="num" id="LN245">245</td><td class="line"> { 0.27451, 0.509804, 0.705882, 1 },</td></tr>
+<tr class="codeline" data-linenumber="246"><td class="num" id="LN246">246</td><td class="line"> { 1, 0, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="247"><td class="num" id="LN247">247</td><td class="line"> { 0, 1, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="248"><td class="num" id="LN248">248</td><td class="line"> { 1, 1, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="249"><td class="num" id="LN249">249</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="250"><td class="num" id="LN250">250</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="251"><td class="num" id="LN251">251</td><td class="line"> <span class='comment'>/* RXVT palette */</span></td></tr>
+<tr class="codeline" data-linenumber="252"><td class="num" id="LN252">252</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="253"><td class="num" id="LN253">253</td><td class="line"> { 0, 0, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="254"><td class="num" id="LN254">254</td><td class="line"> { 0.803922, 0, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="255"><td class="num" id="LN255">255</td><td class="line"> { 0, 0.803922, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="256"><td class="num" id="LN256">256</td><td class="line"> { 0.803922, 0.803922, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="257"><td class="num" id="LN257">257</td><td class="line"> { 0, 0, 0.803922, 1 },</td></tr>
+<tr class="codeline" data-linenumber="258"><td class="num" id="LN258">258</td><td class="line"> { 0.803922, 0, 0.803922, 1 },</td></tr>
+<tr class="codeline" data-linenumber="259"><td class="num" id="LN259">259</td><td class="line"> { 0, 0.803922, 0.803922, 1 },</td></tr>
+<tr class="codeline" data-linenumber="260"><td class="num" id="LN260">260</td><td class="line"> { 0.980392, 0.921569, 0.843137, 1 },</td></tr>
+<tr class="codeline" data-linenumber="261"><td class="num" id="LN261">261</td><td class="line"> { 0.25098, 0.25098, 0.25098, 1 },</td></tr>
+<tr class="codeline" data-linenumber="262"><td class="num" id="LN262">262</td><td class="line"> { 1, 0, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="263"><td class="num" id="LN263">263</td><td class="line"> { 0, 1, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="264"><td class="num" id="LN264">264</td><td class="line"> { 1, 1, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="265"><td class="num" id="LN265">265</td><td class="line"> { 0, 0, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="266"><td class="num" id="LN266">266</td><td class="line"> { 1, 0, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="267"><td class="num" id="LN267">267</td><td class="line"> { 0, 1, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="268"><td class="num" id="LN268">268</td><td class="line"> { 1, 1, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="269"><td class="num" id="LN269">269</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="270"><td class="num" id="LN270">270</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="271"><td class="num" id="LN271">271</td><td class="line"> <span class='comment'>/* Solarized palette (1.0.0beta2): http://ethanschoonover.com/solarized */</span></td></tr>
+<tr class="codeline" data-linenumber="272"><td class="num" id="LN272">272</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="273"><td class="num" id="LN273">273</td><td class="line"> { 0.02745, 0.211764, 0.258823, 1 },</td></tr>
+<tr class="codeline" data-linenumber="274"><td class="num" id="LN274">274</td><td class="line"> { 0.862745, 0.196078, 0.184313, 1 },</td></tr>
+<tr class="codeline" data-linenumber="275"><td class="num" id="LN275">275</td><td class="line"> { 0.521568, 0.6, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="276"><td class="num" id="LN276">276</td><td class="line"> { 0.709803, 0.537254, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="277"><td class="num" id="LN277">277</td><td class="line"> { 0.149019, 0.545098, 0.823529, 1 },</td></tr>
+<tr class="codeline" data-linenumber="278"><td class="num" id="LN278">278</td><td class="line"> { 0.82745, 0.211764, 0.509803, 1 },</td></tr>
+<tr class="codeline" data-linenumber="279"><td class="num" id="LN279">279</td><td class="line"> { 0.164705, 0.631372, 0.596078, 1 },</td></tr>
+<tr class="codeline" data-linenumber="280"><td class="num" id="LN280">280</td><td class="line"> { 0.933333, 0.909803, 0.835294, 1 },</td></tr>
+<tr class="codeline" data-linenumber="281"><td class="num" id="LN281">281</td><td class="line"> { 0, 0.168627, 0.211764, 1 },</td></tr>
+<tr class="codeline" data-linenumber="282"><td class="num" id="LN282">282</td><td class="line"> { 0.796078, 0.294117, 0.086274, 1 },</td></tr>
+<tr class="codeline" data-linenumber="283"><td class="num" id="LN283">283</td><td class="line"> { 0.345098, 0.431372, 0.458823, 1 },</td></tr>
+<tr class="codeline" data-linenumber="284"><td class="num" id="LN284">284</td><td class="line"> { 0.396078, 0.482352, 0.513725, 1 },</td></tr>
+<tr class="codeline" data-linenumber="285"><td class="num" id="LN285">285</td><td class="line"> { 0.513725, 0.580392, 0.588235, 1 },</td></tr>
+<tr class="codeline" data-linenumber="286"><td class="num" id="LN286">286</td><td class="line"> { 0.423529, 0.443137, 0.768627, 1 },</td></tr>
+<tr class="codeline" data-linenumber="287"><td class="num" id="LN287">287</td><td class="line"> { 0.57647, 0.631372, 0.631372, 1 },</td></tr>
+<tr class="codeline" data-linenumber="288"><td class="num" id="LN288">288</td><td class="line"> { 0.992156, 0.964705, 0.890196, 1 },</td></tr>
+<tr class="codeline" data-linenumber="289"><td class="num" id="LN289">289</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="290"><td class="num" id="LN290">290</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="291"><td class="num" id="LN291">291</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="292"><td class="num" id="LN292">292</td><td class="line"><span class='keyword'>enum</span></td></tr>
+<tr class="codeline" data-linenumber="293"><td class="num" id="LN293">293</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="294"><td class="num" id="LN294">294</td><td class="line"> FORGOTTEN,</td></tr>
+<tr class="codeline" data-linenumber="295"><td class="num" id="LN295">295</td><td class="line"> LAST_SIGNAL</td></tr>
+<tr class="codeline" data-linenumber="296"><td class="num" id="LN296">296</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="297"><td class="num" id="LN297">297</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="298"><td class="num" id="LN298">298</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> terminal_profile_finalize (GObject *object);</td></tr>
+<tr class="codeline" data-linenumber="299"><td class="num" id="LN299">299</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> terminal_profile_set_property (GObject *object,</td></tr>
+<tr class="codeline" data-linenumber="300"><td class="num" id="LN300">300</td><td class="line"> guint prop_id,</td></tr>
+<tr class="codeline" data-linenumber="301"><td class="num" id="LN301">301</td><td class="line"> <span class='keyword'>const</span> GValue *value,</td></tr>
+<tr class="codeline" data-linenumber="302"><td class="num" id="LN302">302</td><td class="line"> GParamSpec *pspec);</td></tr>
+<tr class="codeline" data-linenumber="303"><td class="num" id="LN303">303</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> ensure_pixbuf_property (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="304"><td class="num" id="LN304">304</td><td class="line"> guint path_prop_id,</td></tr>
+<tr class="codeline" data-linenumber="305"><td class="num" id="LN305">305</td><td class="line"> guint pixbuf_prop_id,</td></tr>
+<tr class="codeline" data-linenumber="306"><td class="num" id="LN306">306</td><td class="line"> gboolean *load_failed);</td></tr>
+<tr class="codeline" data-linenumber="307"><td class="num" id="LN307">307</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="308"><td class="num" id="LN308">308</td><td class="line"><span class='keyword'>static</span> guint signals[LAST_SIGNAL] = { 0 };</td></tr>
+<tr class="codeline" data-linenumber="309"><td class="num" id="LN309">309</td><td class="line"><span class='keyword'>static</span> GQuark gsettings_key_quark;</td></tr>
+<tr class="codeline" data-linenumber="310"><td class="num" id="LN310">310</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="311"><td class="num" id="LN311">311</td><td class="line"><span class='macro'>G_DEFINE_TYPE_WITH_PRIVATE (TerminalProfile, terminal_profile, G_TYPE_OBJECT)<span class='macro_popup'>static void terminal_profile_init (TerminalProfile *self); static<br> void terminal_profile_class_init (TerminalProfileClass *klass<br>); static GType terminal_profile_get_type_once (void); static<br> gpointer terminal_profile_parent_class = ((void*)0); static gint<br> TerminalProfile_private_offset; static void terminal_profile_class_intern_init<br> (gpointer klass) { terminal_profile_parent_class = g_type_class_peek_parent<br> (klass); if (TerminalProfile_private_offset != 0) g_type_class_adjust_private_offset<br> (klass, &amp;TerminalProfile_private_offset); terminal_profile_class_init<br> ((TerminalProfileClass*) klass); } __attribute__ ((__unused__<br>)) static inline gpointer terminal_profile_get_instance_private<br> (TerminalProfile *self) { return (((gpointer) ((guint8*) (self<br>) + (glong) (TerminalProfile_private_offset)))); } GType terminal_profile_get_type<br> (void) { static gsize static_g_define_type_id = 0; if ((__extension__<br> ({ _Static_assert (sizeof *(&amp;static_g_define_type_id) ==<br> sizeof (gpointer), "Expression evaluates to false"); (void) (<br>0 ? (gpointer) *(&amp;static_g_define_type_id) : ((void*)0));<br> (!(__extension__ ({ _Static_assert (sizeof *(&amp;static_g_define_type_id<br>) == sizeof (gpointer), "Expression evaluates to false"); __typeof__<br> (*(&amp;static_g_define_type_id)) gapg_temp_newval; __typeof__<br> ((&amp;static_g_define_type_id)) gapg_temp_atomic = (&amp;static_g_define_type_id<br>); __atomic_load (gapg_temp_atomic, &amp;gapg_temp_newval, 5)<br>; gapg_temp_newval; })) &amp;&amp; g_once_init_enter (&amp;static_g_define_type_id<br>)); }))) { GType g_define_type_id = terminal_profile_get_type_once<br> (); (__extension__ ({ _Static_assert (sizeof *(&amp;static_g_define_type_id<br>) == sizeof (gpointer), "Expression evaluates to false"); 0 ?<br> (void) (*(&amp;static_g_define_type_id) = (g_define_type_id)<br>) : (void) 0; g_once_init_leave ((&amp;static_g_define_type_id<br>), (gsize) (g_define_type_id)); })); } return static_g_define_type_id<br>; } __attribute__ ((__noinline__)) static GType terminal_profile_get_type_once<br> (void) { GType g_define_type_id = g_type_register_static_simple<br> (((GType) ((20) &lt;&lt; (2))), g_intern_static_string ("TerminalProfile"<br>), sizeof (TerminalProfileClass), (GClassInitFunc)(void (*)(void<br>)) terminal_profile_class_intern_init, sizeof (TerminalProfile<br>), (GInstanceInitFunc)(void (*)(void)) terminal_profile_init,<br> (GTypeFlags) 0); { {{ TerminalProfile_private_offset = g_type_add_instance_private<br> (g_define_type_id, sizeof (TerminalProfilePrivate)); };} } return<br> g_define_type_id; }</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="312"><td class="num" id="LN312">312</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="313"><td class="num" id="LN313">313</td><td class="line"><span class='comment'>/* gdk_rgba_equal is too strict! */</span></td></tr>
+<tr class="codeline" data-linenumber="314"><td class="num" id="LN314">314</td><td class="line"><span class='keyword'>static</span> gboolean</td></tr>
+<tr class="codeline" data-linenumber="315"><td class="num" id="LN315">315</td><td class="line">rgba_equal (<span class='keyword'>const</span> GdkRGBA *a,</td></tr>
+<tr class="codeline" data-linenumber="316"><td class="num" id="LN316">316</td><td class="line"> <span class='keyword'>const</span> GdkRGBA *b)</td></tr>
+<tr class="codeline" data-linenumber="317"><td class="num" id="LN317">317</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="318"><td class="num" id="LN318">318</td><td class="line"> gdouble dr, dg, db, da;</td></tr>
+<tr class="codeline" data-linenumber="319"><td class="num" id="LN319">319</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="320"><td class="num" id="LN320">320</td><td class="line"> dr = a-&gt;red - b-&gt;red;</td></tr>
+<tr class="codeline" data-linenumber="321"><td class="num" id="LN321">321</td><td class="line"> dg = a-&gt;green - b-&gt;green;</td></tr>
+<tr class="codeline" data-linenumber="322"><td class="num" id="LN322">322</td><td class="line"> db = a-&gt;blue - b-&gt;blue;</td></tr>
+<tr class="codeline" data-linenumber="323"><td class="num" id="LN323">323</td><td class="line"> da = a-&gt;alpha - b-&gt;alpha;</td></tr>
+<tr class="codeline" data-linenumber="324"><td class="num" id="LN324">324</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="325"><td class="num" id="LN325">325</td><td class="line"> <span class='keyword'>return</span> (dr * dr + dg * dg + db * db + da * da) &lt; 1e-4;</td></tr>
+<tr class="codeline" data-linenumber="326"><td class="num" id="LN326">326</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="327"><td class="num" id="LN327">327</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="328"><td class="num" id="LN328">328</td><td class="line"><span class='keyword'>static</span> gboolean</td></tr>
+<tr class="codeline" data-linenumber="329"><td class="num" id="LN329">329</td><td class="line">palette_cmp (<span class='keyword'>const</span> GdkRGBA *ca,</td></tr>
+<tr class="codeline" data-linenumber="330"><td class="num" id="LN330">330</td><td class="line"> <span class='keyword'>const</span> GdkRGBA *cb)</td></tr>
+<tr class="codeline" data-linenumber="331"><td class="num" id="LN331">331</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="332"><td class="num" id="LN332">332</td><td class="line"> guint i;</td></tr>
+<tr class="codeline" data-linenumber="333"><td class="num" id="LN333">333</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="334"><td class="num" id="LN334">334</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; <span class='macro'>TERMINAL_PALETTE_SIZE<span class='macro_popup'>16</span></span>; ++i)</td></tr>
+<tr class="codeline" data-linenumber="335"><td class="num" id="LN335">335</td><td class="line"> <span class='keyword'>if</span> (!rgba_equal (&amp;ca[i], &amp;cb[i]))</td></tr>
+<tr class="codeline" data-linenumber="336"><td class="num" id="LN336">336</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="337"><td class="num" id="LN337">337</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="338"><td class="num" id="LN338">338</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="339"><td class="num" id="LN339">339</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="340"><td class="num" id="LN340">340</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="341"><td class="num" id="LN341">341</td><td class="line"><span class='keyword'>static</span> GParamSpec *</td></tr>
+<tr class="codeline" data-linenumber="342"><td class="num" id="LN342">342</td><td class="line">get_pspec_from_name (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="343"><td class="num" id="LN343">343</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="344"><td class="num" id="LN344">344</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="345"><td class="num" id="LN345">345</td><td class="line"> TerminalProfileClass *klass = <span class='macro'>TERMINAL_PROFILE_GET_CLASS (profile)<span class='macro_popup'>((((TerminalProfileClass*) (((GTypeInstance*) ((profile)))-&gt;<br>g_class))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="346"><td class="num" id="LN346">346</td><td class="line"> GParamSpec *pspec;</td></tr>
+<tr class="codeline" data-linenumber="347"><td class="num" id="LN347">347</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="348"><td class="num" id="LN348">348</td><td class="line"> pspec = g_object_class_find_property (<span class='macro'>G_OBJECT_CLASS (klass)<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((klass)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="349"><td class="num" id="LN349">349</td><td class="line"> <span class='keyword'>if</span> (pspec &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="350"><td class="num" id="LN350">350</td><td class="line"> pspec-&gt;owner_type != <span class='macro'>TERMINAL_TYPE_PROFILE<span class='macro_popup'>(terminal_profile_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="351"><td class="num" id="LN351">351</td><td class="line"> pspec = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="352"><td class="num" id="LN352">352</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="353"><td class="num" id="LN353">353</td><td class="line"> <span class='keyword'>return</span> pspec;</td></tr>
+<tr class="codeline" data-linenumber="354"><td class="num" id="LN354">354</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="355"><td class="num" id="LN355">355</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="356"><td class="num" id="LN356">356</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>const</span> GValue *</td></tr>
+<tr class="codeline" data-linenumber="357"><td class="num" id="LN357">357</td><td class="line">get_prop_value_from_prop_name (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="358"><td class="num" id="LN358">358</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="359"><td class="num" id="LN359">359</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="360"><td class="num" id="LN360">360</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="361"><td class="num" id="LN361">361</td><td class="line"> GParamSpec *pspec;</td></tr>
+<tr class="codeline" data-linenumber="362"><td class="num" id="LN362">362</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="363"><td class="num" id="LN363">363</td><td class="line"> pspec = get_pspec_from_name (profile, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="364"><td class="num" id="LN364">364</td><td class="line"> <span class='keyword'>if</span> (!pspec)</td></tr>
+<tr class="codeline" data-linenumber="365"><td class="num" id="LN365">365</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="366"><td class="num" id="LN366">366</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="367"><td class="num" id="LN367">367</td><td class="line"> <span class='keyword'>if</span> (<span class='macro'>G_UNLIKELY (pspec-&gt;param_id == PROP_BACKGROUND_IMAGE)<span class='macro_popup'>(pspec-&gt;param_id == PROP_BACKGROUND_IMAGE)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="368"><td class="num" id="LN368">368</td><td class="line"> ensure_pixbuf_property (profile, PROP_BACKGROUND_IMAGE_FILE, PROP_BACKGROUND_IMAGE, &amp;priv-&gt;background_load_failed);</td></tr>
+<tr class="codeline" data-linenumber="369"><td class="num" id="LN369">369</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="370"><td class="num" id="LN370">370</td><td class="line"> <span class='keyword'>return</span> g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id);</td></tr>
+<tr class="codeline" data-linenumber="371"><td class="num" id="LN371">371</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="372"><td class="num" id="LN372">372</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="373"><td class="num" id="LN373">373</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="374"><td class="num" id="LN374">374</td><td class="line">set_value_from_palette (GValue *ret_value,</td></tr>
+<tr class="codeline" data-linenumber="375"><td class="num" id="LN375">375</td><td class="line"> <span class='keyword'>const</span> GdkRGBA *colors,</td></tr>
+<tr class="codeline" data-linenumber="376"><td class="num" id="LN376">376</td><td class="line"> guint n_colors)</td></tr>
+<tr class="codeline" data-linenumber="377"><td class="num" id="LN377">377</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="378"><td class="num" id="LN378">378</td><td class="line"> GValueArray *array;</td></tr>
+<tr class="codeline" data-linenumber="379"><td class="num" id="LN379">379</td><td class="line"> guint i, max_n_colors;</td></tr>
+<tr class="codeline" data-linenumber="380"><td class="num" id="LN380">380</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="381"><td class="num" id="LN381">381</td><td class="line"> max_n_colors = <span class='macro'>MAX (n_colors, TERMINAL_PALETTE_SIZE)<span class='macro_popup'>(((n_colors) &gt; (16)) ? (n_colors) : (16))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="382"><td class="num" id="LN382">382</td><td class="line"> array = g_value_array_new (max_n_colors);</td></tr>
+<tr class="codeline" data-linenumber="383"><td class="num" id="LN383">383</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; max_n_colors; ++i)</td></tr>
+<tr class="codeline" data-linenumber="384"><td class="num" id="LN384">384</td><td class="line"> g_value_array_append (array, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="385"><td class="num" id="LN385">385</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="386"><td class="num" id="LN386">386</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; n_colors; ++i)</td></tr>
+<tr class="codeline" data-linenumber="387"><td class="num" id="LN387">387</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="388"><td class="num" id="LN388">388</td><td class="line"> GValue *value = g_value_array_get_nth (array, i);</td></tr>
+<tr class="codeline" data-linenumber="389"><td class="num" id="LN389">389</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="390"><td class="num" id="LN390">390</td><td class="line"> g_value_init (value, <span class='macro'>GDK_TYPE_RGBA<span class='macro_popup'>(gdk_rgba_get_type ())</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="391"><td class="num" id="LN391">391</td><td class="line"> g_value_set_boxed (value, &amp;colors[i]);</td></tr>
+<tr class="codeline" data-linenumber="392"><td class="num" id="LN392">392</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="393"><td class="num" id="LN393">393</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="394"><td class="num" id="LN394">394</td><td class="line"> <span class='comment'>/* If we haven't enough colours yet, fill up with the default palette */</span></td></tr>
+<tr class="codeline" data-linenumber="395"><td class="num" id="LN395">395</td><td class="line"> <span class='keyword'>for</span> (i = n_colors; i &lt; <span class='macro'>TERMINAL_PALETTE_SIZE<span class='macro_popup'>16</span></span>; ++i)</td></tr>
+<tr class="codeline" data-linenumber="396"><td class="num" id="LN396">396</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="397"><td class="num" id="LN397">397</td><td class="line"> GValue *value = g_value_array_get_nth (array, i);</td></tr>
+<tr class="codeline" data-linenumber="398"><td class="num" id="LN398">398</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="399"><td class="num" id="LN399">399</td><td class="line"> g_value_init (value, <span class='macro'>GDK_TYPE_RGBA<span class='macro_popup'>(gdk_rgba_get_type ())</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="400"><td class="num" id="LN400">400</td><td class="line"> g_value_set_boxed (value, &amp;<span class='macro'>DEFAULT_PALETTE<span class='macro_popup'>(terminal_palettes[0])</span></span>[i]);</td></tr>
+<tr class="codeline" data-linenumber="401"><td class="num" id="LN401">401</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="402"><td class="num" id="LN402">402</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="403"><td class="num" id="LN403">403</td><td class="line"> g_value_take_boxed (ret_value, array);</td></tr>
+<tr class="codeline" data-linenumber="404"><td class="num" id="LN404">404</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="405"><td class="num" id="LN405">405</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="406"><td class="num" id="LN406">406</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>int</span></td></tr>
+<tr class="codeline" data-linenumber="407"><td class="num" id="LN407">407</td><td class="line">values_equal (GParamSpec *pspec,</td></tr>
+<tr class="codeline" data-linenumber="408"><td class="num" id="LN408">408</td><td class="line"> <span class='keyword'>const</span> GValue *va,</td></tr>
+<tr class="codeline" data-linenumber="409"><td class="num" id="LN409">409</td><td class="line"> <span class='keyword'>const</span> GValue *vb)</td></tr>
+<tr class="codeline" data-linenumber="410"><td class="num" id="LN410">410</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="411"><td class="num" id="LN411">411</td><td class="line"> <span class='comment'>/* g_param_values_cmp isn't good enough for some types, since e.g.</span></td></tr>
+<tr class="codeline" data-linenumber="412"><td class="num" id="LN412">412</td><td class="line"> <span class='comment'>* it compares colours and font descriptions by pointer value, not</span></td></tr>
+<tr class="codeline" data-linenumber="413"><td class="num" id="LN413">413</td><td class="line"> <span class='comment'>* with the correct compare functions. Providing extra</span></td></tr>
+<tr class="codeline" data-linenumber="414"><td class="num" id="LN414">414</td><td class="line"> <span class='comment'>* PangoParamSpecFontDescription and GdkParamSpecColor wouldn't</span></td></tr>
+<tr class="codeline" data-linenumber="415"><td class="num" id="LN415">415</td><td class="line"> <span class='comment'>* have fixed this either, since it's unclear how to _order_ them.</span></td></tr>
+<tr class="codeline" data-linenumber="416"><td class="num" id="LN416">416</td><td class="line"> <span class='comment'>* Luckily we only need to check them for equality here.</span></td></tr>
+<tr class="codeline" data-linenumber="417"><td class="num" id="LN417">417</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="418"><td class="num" id="LN418">418</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="419"><td class="num" id="LN419">419</td><td class="line"> <span class='keyword'>if</span> (g_param_values_cmp (pspec, va, vb) == 0)</td></tr>
+<tr class="codeline" data-linenumber="420"><td class="num" id="LN420">420</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="421"><td class="num" id="LN421">421</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="422"><td class="num" id="LN422">422</td><td class="line"> <span class='keyword'>if</span> (<span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span> == <span class='macro'>GDK_TYPE_RGBA<span class='macro_popup'>(gdk_rgba_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="423"><td class="num" id="LN423">423</td><td class="line"> <span class='keyword'>return</span> rgba_equal (g_value_get_boxed (va), g_value_get_boxed (vb));</td></tr>
+<tr class="codeline" data-linenumber="424"><td class="num" id="LN424">424</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="425"><td class="num" id="LN425">425</td><td class="line"> <span class='keyword'>if</span> (<span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span> == <span class='macro'>PANGO_TYPE_FONT_DESCRIPTION<span class='macro_popup'>(pango_font_description_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="426"><td class="num" id="LN426">426</td><td class="line"> <span class='keyword'>return</span> pango_font_description_equal (g_value_get_boxed (va), g_value_get_boxed (vb));</td></tr>
+<tr class="codeline" data-linenumber="427"><td class="num" id="LN427">427</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="428"><td class="num" id="LN428">428</td><td class="line"> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_VALUE_ARRAY (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[18]) GCC warning "Deprecated pre-processor symbol"<br>
+); gboolean __r; if (!__inst) __r = (0); else if (__inst-&gt;<br>g_class &amp;&amp; __inst-&gt;g_class-&gt;g_type == __t) __r =<br> (!(0)); else __r = g_type_check_instance_is_a (__inst, __t);<br> __r; })))) GCC warning "Deprecated pre-processor symbol"
+</span></span> &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="429"><td class="num" id="LN429">429</td><td class="line"> <span class='macro'>G_PARAM_SPEC_VALUE_TYPE (G_PARAM_SPEC_VALUE_ARRAY (pspec)-&gt;element_spec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((((((GParamSpecValueArray*) (void *) g_type_check_instance_cast<br> ((GTypeInstance*) ((pspec)), ((g_param_spec_types[18]) GCC warning<br> "Deprecated pre-processor symbol"
+))))) GCC warning "Deprecated pre-processor symbol"<br>
+-&gt;element_spec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;<br>value_type)</span></span> == <span class='macro'>GDK_TYPE_RGBA<span class='macro_popup'>(gdk_rgba_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="430"><td class="num" id="LN430">430</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="431"><td class="num" id="LN431">431</td><td class="line"> GValueArray *ara, *arb;</td></tr>
+<tr class="codeline" data-linenumber="432"><td class="num" id="LN432">432</td><td class="line"> guint i;</td></tr>
+<tr class="codeline" data-linenumber="433"><td class="num" id="LN433">433</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="434"><td class="num" id="LN434">434</td><td class="line"> ara = g_value_get_boxed (va);</td></tr>
+<tr class="codeline" data-linenumber="435"><td class="num" id="LN435">435</td><td class="line"> arb = g_value_get_boxed (vb);</td></tr>
+<tr class="codeline" data-linenumber="436"><td class="num" id="LN436">436</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="437"><td class="num" id="LN437">437</td><td class="line"> <span class='keyword'>if</span> (!ara || !arb || ara-&gt;n_values != arb-&gt;n_values)</td></tr>
+<tr class="codeline" data-linenumber="438"><td class="num" id="LN438">438</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="439"><td class="num" id="LN439">439</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="440"><td class="num" id="LN440">440</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; ara-&gt;n_values; ++i)</td></tr>
+<tr class="codeline" data-linenumber="441"><td class="num" id="LN441">441</td><td class="line"> <span class='keyword'>if</span> (!rgba_equal (g_value_get_boxed (g_value_array_get_nth (ara, i)),</td></tr>
+<tr class="codeline" data-linenumber="442"><td class="num" id="LN442">442</td><td class="line"> g_value_get_boxed (g_value_array_get_nth (arb, i))))</td></tr>
+<tr class="codeline" data-linenumber="443"><td class="num" id="LN443">443</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="444"><td class="num" id="LN444">444</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="445"><td class="num" id="LN445">445</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="446"><td class="num" id="LN446">446</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="447"><td class="num" id="LN447">447</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="448"><td class="num" id="LN448">448</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="449"><td class="num" id="LN449">449</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="450"><td class="num" id="LN450">450</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="451"><td class="num" id="LN451">451</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="452"><td class="num" id="LN452">452</td><td class="line">ensure_pixbuf_property (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="453"><td class="num" id="LN453">453</td><td class="line"> guint path_prop_id,</td></tr>
+<tr class="codeline" data-linenumber="454"><td class="num" id="LN454">454</td><td class="line"> guint pixbuf_prop_id,</td></tr>
+<tr class="codeline" data-linenumber="455"><td class="num" id="LN455">455</td><td class="line"> gboolean *load_failed)</td></tr>
+<tr class="codeline" data-linenumber="456"><td class="num" id="LN456">456</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="457"><td class="num" id="LN457">457</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="458"><td class="num" id="LN458">458</td><td class="line"> GValue *path_value, *pixbuf_value;</td></tr>
+<tr class="codeline" data-linenumber="459"><td class="num" id="LN459">459</td><td class="line"> GdkPixbuf *pixbuf;</td></tr>
+<tr class="codeline" data-linenumber="460"><td class="num" id="LN460">460</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *path_utf8;</td></tr>
+<tr class="codeline" data-linenumber="461"><td class="num" id="LN461">461</td><td class="line"> <span class='keyword'>char</span> *path;</td></tr>
+<tr class="codeline" data-linenumber="462"><td class="num" id="LN462">462</td><td class="line"> GError *error = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="463"><td class="num" id="LN463">463</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="464"><td class="num" id="LN464">464</td><td class="line"> pixbuf_value = g_value_array_get_nth (priv-&gt;properties, pixbuf_prop_id);</td></tr>
+<tr class="codeline" data-linenumber="465"><td class="num" id="LN465">465</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="466"><td class="num" id="LN466">466</td><td class="line"> pixbuf = g_value_get_object (pixbuf_value);</td></tr>
+<tr class="codeline" data-linenumber="467"><td class="num" id="LN467">467</td><td class="line"> <span class='keyword'>if</span> (pixbuf)</td></tr>
+<tr class="codeline" data-linenumber="468"><td class="num" id="LN468">468</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="469"><td class="num" id="LN469">469</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="470"><td class="num" id="LN470">470</td><td class="line"> <span class='keyword'>if</span> (*load_failed)</td></tr>
+<tr class="codeline" data-linenumber="471"><td class="num" id="LN471">471</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="472"><td class="num" id="LN472">472</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="473"><td class="num" id="LN473">473</td><td class="line"> path_value = g_value_array_get_nth (priv-&gt;properties, path_prop_id);</td></tr>
+<tr class="codeline" data-linenumber="474"><td class="num" id="LN474">474</td><td class="line"> path_utf8 = g_value_get_string (path_value);</td></tr>
+<tr class="codeline" data-linenumber="475"><td class="num" id="LN475">475</td><td class="line"> <span class='keyword'>if</span> (!path_utf8 || !path_utf8[0])</td></tr>
+<tr class="codeline" data-linenumber="476"><td class="num" id="LN476">476</td><td class="line"> <span class='keyword'>goto</span> failed;</td></tr>
+<tr class="codeline" data-linenumber="477"><td class="num" id="LN477">477</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="478"><td class="num" id="LN478">478</td><td class="line"> path = g_filename_from_utf8 (path_utf8, -1, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="479"><td class="num" id="LN479">479</td><td class="line"> <span class='keyword'>if</span> (!path)</td></tr>
+<tr class="codeline" data-linenumber="480"><td class="num" id="LN480">480</td><td class="line"> <span class='keyword'>goto</span> failed;</td></tr>
+<tr class="codeline" data-linenumber="481"><td class="num" id="LN481">481</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="482"><td class="num" id="LN482">482</td><td class="line"> pixbuf = gdk_pixbuf_new_from_file (path, &amp;error);</td></tr>
+<tr class="codeline" data-linenumber="483"><td class="num" id="LN483">483</td><td class="line"> <span class='keyword'>if</span> (!pixbuf)</td></tr>
+<tr class="codeline" data-linenumber="484"><td class="num" id="LN484">484</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="485"><td class="num" id="LN485">485</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_PROFILE,<span class='macro_popup'>do { if (0) g_printerr("Failed to load image \"%s\": %s\n", path<br>, error-&gt;message); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="486"><td class="num" id="LN486">486</td><td class="line"> <span class='string_literal'><span class='macro'>"Failed to load image \"%s\": %s\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("Failed to load image \"%s\": %s\n", path<br>, error-&gt;message); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="487"><td class="num" id="LN487">487</td><td class="line"> <span class='macro'>path, error-&gt;message)<span class='macro_popup'>do { if (0) g_printerr("Failed to load image \"%s\": %s\n", path<br>, error-&gt;message); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="488"><td class="num" id="LN488">488</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="489"><td class="num" id="LN489">489</td><td class="line"> g_error_free (error);</td></tr>
+<tr class="codeline" data-linenumber="490"><td class="num" id="LN490">490</td><td class="line"> g_free (path);</td></tr>
+<tr class="codeline" data-linenumber="491"><td class="num" id="LN491">491</td><td class="line"> <span class='keyword'>goto</span> failed;</td></tr>
+<tr class="codeline" data-linenumber="492"><td class="num" id="LN492">492</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="493"><td class="num" id="LN493">493</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="494"><td class="num" id="LN494">494</td><td class="line"> g_value_take_object (pixbuf_value, pixbuf);</td></tr>
+<tr class="codeline" data-linenumber="495"><td class="num" id="LN495">495</td><td class="line"> g_free (path);</td></tr>
+<tr class="codeline" data-linenumber="496"><td class="num" id="LN496">496</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="497"><td class="num" id="LN497">497</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="498"><td class="num" id="LN498">498</td><td class="line">failed:</td></tr>
+<tr class="codeline" data-linenumber="499"><td class="num" id="LN499">499</td><td class="line"> *load_failed = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="500"><td class="num" id="LN500">500</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="501"><td class="num" id="LN501">501</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="502"><td class="num" id="LN502">502</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="503"><td class="num" id="LN503">503</td><td class="line">terminal_profile_reset_property_internal (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="504"><td class="num" id="LN504">504</td><td class="line"> GParamSpec *pspec,</td></tr>
+<tr class="codeline" data-linenumber="505"><td class="num" id="LN505">505</td><td class="line"> gboolean notify)</td></tr>
+<tr class="codeline" data-linenumber="506"><td class="num" id="LN506">506</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="507"><td class="num" id="LN507">507</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="508"><td class="num" id="LN508">508</td><td class="line"> GValue value_ = { 0, };</td></tr>
+<tr class="codeline" data-linenumber="509"><td class="num" id="LN509">509</td><td class="line"> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="510"><td class="num" id="LN510">510</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="511"><td class="num" id="LN511">511</td><td class="line"> <span class='keyword'>if</span> (notify)</td></tr>
+<tr class="codeline" data-linenumber="512"><td class="num" id="LN512">512</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="513"><td class="num" id="LN513">513</td><td class="line"> value = &amp;value_;</td></tr>
+<tr class="codeline" data-linenumber="514"><td class="num" id="LN514">514</td><td class="line"> g_value_init (value, <span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="515"><td class="num" id="LN515">515</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="516"><td class="num" id="LN516">516</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="517"><td class="num" id="LN517">517</td><td class="line"> value = g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id);</td></tr>
+<tr class="codeline" data-linenumber="518"><td class="num" id="LN518">518</td><td class="line"> <span class='macro'>g_assert (value != NULL)<span class='macro_popup'>do { if (value != ((void*)0)) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-profile.c", 518, ((const char*) (__func__<br>)), "value != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="519"><td class="num" id="LN519">519</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="520"><td class="num" id="LN520">520</td><td class="line"> <span class='comment'>/* A few properties don't have defaults via the param spec; set them explicitly */</span></td></tr>
+<tr class="codeline" data-linenumber="521"><td class="num" id="LN521">521</td><td class="line"> <span class='keyword'>switch</span> (pspec-&gt;param_id)</td></tr>
+<tr class="codeline" data-linenumber="522"><td class="num" id="LN522">522</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="523"><td class="num" id="LN523">523</td><td class="line"> <span class='keyword'>case</span> PROP_FOREGROUND_COLOR:</td></tr>
+<tr class="codeline" data-linenumber="524"><td class="num" id="LN524">524</td><td class="line"> <span class='keyword'>case</span> PROP_BOLD_COLOR:</td></tr>
+<tr class="codeline" data-linenumber="525"><td class="num" id="LN525">525</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="526"><td class="num" id="LN526">526</td><td class="line"> GdkRGBA color;</td></tr>
+<tr class="codeline" data-linenumber="527"><td class="num" id="LN527">527</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="528"><td class="num" id="LN528">528</td><td class="line"> <span class='keyword'>if</span> (!gdk_rgba_parse (&amp;color, <span class='macro'>DEFAULT_FOREGROUND_COLOR<span class='macro_popup'>("#000000")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="529"><td class="num" id="LN529">529</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="530"><td class="num" id="LN530">530</td><td class="line"> color.alpha = 1.0;</td></tr>
+<tr class="codeline" data-linenumber="531"><td class="num" id="LN531">531</td><td class="line"> g_value_set_boxed (value, &amp;color);</td></tr>
+<tr class="codeline" data-linenumber="532"><td class="num" id="LN532">532</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="533"><td class="num" id="LN533">533</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="534"><td class="num" id="LN534">534</td><td class="line"> <span class='keyword'>case</span> PROP_BACKGROUND_COLOR:</td></tr>
+<tr class="codeline" data-linenumber="535"><td class="num" id="LN535">535</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="536"><td class="num" id="LN536">536</td><td class="line"> GdkRGBA color;</td></tr>
+<tr class="codeline" data-linenumber="537"><td class="num" id="LN537">537</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="538"><td class="num" id="LN538">538</td><td class="line"> <span class='keyword'>if</span> (!gdk_rgba_parse (&amp;color, <span class='macro'>DEFAULT_BACKGROUND_COLOR<span class='macro_popup'>("#FFFFDD")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="539"><td class="num" id="LN539">539</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="540"><td class="num" id="LN540">540</td><td class="line"> color.alpha = 1.0;</td></tr>
+<tr class="codeline" data-linenumber="541"><td class="num" id="LN541">541</td><td class="line"> g_value_set_boxed (value, &amp;color);</td></tr>
+<tr class="codeline" data-linenumber="542"><td class="num" id="LN542">542</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="543"><td class="num" id="LN543">543</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="544"><td class="num" id="LN544">544</td><td class="line"> <span class='keyword'>case</span> PROP_FONT:</td></tr>
+<tr class="codeline" data-linenumber="545"><td class="num" id="LN545">545</td><td class="line"> g_value_take_boxed (value, pango_font_description_from_string (<span class='macro'>DEFAULT_FONT<span class='macro_popup'>("Monospace 12")</span></span>));</td></tr>
+<tr class="codeline" data-linenumber="546"><td class="num" id="LN546">546</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="547"><td class="num" id="LN547">547</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="548"><td class="num" id="LN548">548</td><td class="line"> <span class='keyword'>case</span> PROP_PALETTE:</td></tr>
+<tr class="codeline" data-linenumber="549"><td class="num" id="LN549">549</td><td class="line"> set_value_from_palette (value, <span class='macro'>DEFAULT_PALETTE<span class='macro_popup'>(terminal_palettes[0])</span></span>, <span class='macro'>TERMINAL_PALETTE_SIZE<span class='macro_popup'>16</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="550"><td class="num" id="LN550">550</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="551"><td class="num" id="LN551">551</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="552"><td class="num" id="LN552">552</td><td class="line"> <span class='keyword'>default</span>:</td></tr>
+<tr class="codeline" data-linenumber="553"><td class="num" id="LN553">553</td><td class="line"> g_param_value_set_default (pspec, value);</td></tr>
+<tr class="codeline" data-linenumber="554"><td class="num" id="LN554">554</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="555"><td class="num" id="LN555">555</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="556"><td class="num" id="LN556">556</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="557"><td class="num" id="LN557">557</td><td class="line"> <span class='keyword'>if</span> (notify)</td></tr>
+<tr class="codeline" data-linenumber="558"><td class="num" id="LN558">558</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="559"><td class="num" id="LN559">559</td><td class="line"> g_object_set_property (<span class='macro'>G_OBJECT (profile)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((profile)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, pspec-&gt;name, value);</td></tr>
+<tr class="codeline" data-linenumber="560"><td class="num" id="LN560">560</td><td class="line"> g_value_unset (value);</td></tr>
+<tr class="codeline" data-linenumber="561"><td class="num" id="LN561">561</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="562"><td class="num" id="LN562">562</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="563"><td class="num" id="LN563">563</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="564"><td class="num" id="LN564">564</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="565"><td class="num" id="LN565">565</td><td class="line">terminal_profile_gsettings_notify_cb (GSettings *settings,</td></tr>
+<tr class="codeline" data-linenumber="566"><td class="num" id="LN566">566</td><td class="line"> gchar *key,</td></tr>
+<tr class="codeline" data-linenumber="567"><td class="num" id="LN567">567</td><td class="line"> gpointer user_data)</td></tr>
+<tr class="codeline" data-linenumber="568"><td class="num" id="LN568">568</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="569"><td class="num" id="LN569">569</td><td class="line"> TerminalProfile *profile = <span class='macro'>TERMINAL_PROFILE (user_data)<span class='macro_popup'>((((TerminalProfile*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((user_data)), ((terminal_profile_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="570"><td class="num" id="LN570">570</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="571"><td class="num" id="LN571">571</td><td class="line"> TerminalProfileClass *klass;</td></tr>
+<tr class="codeline" data-linenumber="572"><td class="num" id="LN572">572</td><td class="line"> GVariant *settings_value;</td></tr>
+<tr class="codeline" data-linenumber="573"><td class="num" id="LN573">573</td><td class="line"> GParamSpec *pspec;</td></tr>
+<tr class="codeline" data-linenumber="574"><td class="num" id="LN574">574</td><td class="line"> GValue value = { 0, };</td></tr>
+<tr class="codeline" data-linenumber="575"><td class="num" id="LN575">575</td><td class="line"> gboolean equal;</td></tr>
+<tr class="codeline" data-linenumber="576"><td class="num" id="LN576">576</td><td class="line"> gboolean force_set = <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="577"><td class="num" id="LN577">577</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="578"><td class="num" id="LN578">578</td><td class="line"> <span class='keyword'>if</span> (!key) <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="579"><td class="num" id="LN579">579</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="580"><td class="num" id="LN580">580</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_PROFILE,<span class='macro_popup'>do { if (0) g_printerr("GSettings notification for key %s [%s]\n"<br>, key, g_settings_is_writable (settings, key) ? "writable" : "LOCKED"<br>); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="581"><td class="num" id="LN581">581</td><td class="line"> <span class='string_literal'><span class='macro'>"GSettings notification for key %s [%s]\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("GSettings notification for key %s [%s]\n"<br>, key, g_settings_is_writable (settings, key) ? "writable" : "LOCKED"<br>); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="582"><td class="num" id="LN582">582</td><td class="line"> <span class='macro'>key,<span class='macro_popup'>do { if (0) g_printerr("GSettings notification for key %s [%s]\n"<br>, key, g_settings_is_writable (settings, key) ? "writable" : "LOCKED"<br>); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="583"><td class="num" id="LN583">583</td><td class="line"> <span class='macro'>g_settings_is_writable (settings, key) ? <span class='string_literal'>"writable"</span> : <span class='string_literal'>"LOCKED"</span>)<span class='macro_popup'>do { if (0) g_printerr("GSettings notification for key %s [%s]\n"<br>, key, g_settings_is_writable (settings, key) ? "writable" : "LOCKED"<br>); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="584"><td class="num" id="LN584">584</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="585"><td class="num" id="LN585">585</td><td class="line"> klass = <span class='macro'>TERMINAL_PROFILE_GET_CLASS (profile)<span class='macro_popup'>((((TerminalProfileClass*) (((GTypeInstance*) ((profile)))-&gt;<br>g_class))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="586"><td class="num" id="LN586">586</td><td class="line"> pspec = g_hash_table_lookup (klass-&gt;gsettings_keys, key);</td></tr>
+<tr class="codeline" data-linenumber="587"><td class="num" id="LN587">587</td><td class="line"> <span class='keyword'>if</span> (!pspec)</td></tr>
+<tr class="codeline" data-linenumber="588"><td class="num" id="LN588">588</td><td class="line"> <span class='keyword'>return</span>; <span class='comment'>/* ignore unknown keys, for future extensibility */</span></td></tr>
+<tr class="codeline" data-linenumber="589"><td class="num" id="LN589">589</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="590"><td class="num" id="LN590">590</td><td class="line"> priv-&gt;locked[pspec-&gt;param_id] = !g_settings_is_writable (settings, key);</td></tr>
+<tr class="codeline" data-linenumber="591"><td class="num" id="LN591">591</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="592"><td class="num" id="LN592">592</td><td class="line"> settings_value = g_settings_get_value (settings, key);</td></tr>
+<tr class="codeline" data-linenumber="593"><td class="num" id="LN593">593</td><td class="line"> <span class='keyword'>if</span> (!settings_value)</td></tr>
+<tr class="codeline" data-linenumber="594"><td class="num" id="LN594">594</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="595"><td class="num" id="LN595">595</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="596"><td class="num" id="LN596">596</td><td class="line"> g_value_init (&amp;value, <span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="597"><td class="num" id="LN597">597</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="598"><td class="num" id="LN598">598</td><td class="line"> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_BOOLEAN (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[2])); gboolean __r<br>; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="599"><td class="num" id="LN599">599</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="600"><td class="num" id="LN600">600</td><td class="line"> <span class='keyword'>if</span> (!g_variant_is_of_type (settings_value, <span class='macro'>G_VARIANT_TYPE_BOOLEAN<span class='macro_popup'>((const GVariantType *) "b")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="601"><td class="num" id="LN601">601</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="602"><td class="num" id="LN602">602</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="603"><td class="num" id="LN603">603</td><td class="line"> g_value_set_boolean (&amp;value, g_variant_get_boolean (settings_value));</td></tr>
+<tr class="codeline" data-linenumber="604"><td class="num" id="LN604">604</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="605"><td class="num" id="LN605">605</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_STRING (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[14])); gboolean __r<br>; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="606"><td class="num" id="LN606">606</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="607"><td class="num" id="LN607">607</td><td class="line"> <span class='keyword'>if</span> (!g_variant_is_of_type (settings_value, <span class='macro'>G_VARIANT_TYPE_STRING<span class='macro_popup'>((const GVariantType *) "s")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="608"><td class="num" id="LN608">608</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="609"><td class="num" id="LN609">609</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="610"><td class="num" id="LN610">610</td><td class="line"> g_value_set_string (&amp;value, g_variant_get_string (settings_value, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>));</td></tr>
+<tr class="codeline" data-linenumber="611"><td class="num" id="LN611">611</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="612"><td class="num" id="LN612">612</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_ENUM (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[10])); gboolean __r<br>; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="613"><td class="num" id="LN613">613</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="614"><td class="num" id="LN614">614</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="615"><td class="num" id="LN615">615</td><td class="line"> <span class='keyword'>if</span> (!g_variant_is_of_type (settings_value, <span class='macro'>G_VARIANT_TYPE_STRING<span class='macro_popup'>((const GVariantType *) "s")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="616"><td class="num" id="LN616">616</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="617"><td class="num" id="LN617">617</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="618"><td class="num" id="LN618">618</td><td class="line"> g_value_set_enum (&amp;value, g_settings_get_enum (settings, key));</td></tr>
+<tr class="codeline" data-linenumber="619"><td class="num" id="LN619">619</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="620"><td class="num" id="LN620">620</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span> == <span class='macro'>GDK_TYPE_RGBA<span class='macro_popup'>(gdk_rgba_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="621"><td class="num" id="LN621">621</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="622"><td class="num" id="LN622">622</td><td class="line"> GdkRGBA color;</td></tr>
+<tr class="codeline" data-linenumber="623"><td class="num" id="LN623">623</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="624"><td class="num" id="LN624">624</td><td class="line"> <span class='keyword'>if</span> (!g_variant_is_of_type (settings_value, <span class='macro'>G_VARIANT_TYPE_STRING<span class='macro_popup'>((const GVariantType *) "s")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="625"><td class="num" id="LN625">625</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="626"><td class="num" id="LN626">626</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="627"><td class="num" id="LN627">627</td><td class="line"> <span class='keyword'>if</span> (!gdk_rgba_parse (&amp;color, g_variant_get_string (settings_value, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)))</td></tr>
+<tr class="codeline" data-linenumber="628"><td class="num" id="LN628">628</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="629"><td class="num" id="LN629">629</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="630"><td class="num" id="LN630">630</td><td class="line"> g_value_set_boxed (&amp;value, &amp;color);</td></tr>
+<tr class="codeline" data-linenumber="631"><td class="num" id="LN631">631</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="632"><td class="num" id="LN632">632</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span> == <span class='macro'>PANGO_TYPE_FONT_DESCRIPTION<span class='macro_popup'>(pango_font_description_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="633"><td class="num" id="LN633">633</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="634"><td class="num" id="LN634">634</td><td class="line"> <span class='keyword'>if</span> (!g_variant_is_of_type (settings_value, <span class='macro'>G_VARIANT_TYPE_STRING<span class='macro_popup'>((const GVariantType *) "s")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="635"><td class="num" id="LN635">635</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="636"><td class="num" id="LN636">636</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="637"><td class="num" id="LN637">637</td><td class="line"> g_value_take_boxed (&amp;value, pango_font_description_from_string (g_variant_get_string (settings_value, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)));</td></tr>
+<tr class="codeline" data-linenumber="638"><td class="num" id="LN638">638</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="639"><td class="num" id="LN639">639</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_DOUBLE (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[13])); gboolean __r<br>; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="640"><td class="num" id="LN640">640</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="641"><td class="num" id="LN641">641</td><td class="line"> <span class='keyword'>if</span> (!g_variant_is_of_type (settings_value, <span class='macro'>G_VARIANT_TYPE_DOUBLE<span class='macro_popup'>((const GVariantType *) "d")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="642"><td class="num" id="LN642">642</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="643"><td class="num" id="LN643">643</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="644"><td class="num" id="LN644">644</td><td class="line"> g_value_set_double (&amp;value, g_variant_get_double (settings_value));</td></tr>
+<tr class="codeline" data-linenumber="645"><td class="num" id="LN645">645</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="646"><td class="num" id="LN646">646</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_INT (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[3])); gboolean __r<br>; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="647"><td class="num" id="LN647">647</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="648"><td class="num" id="LN648">648</td><td class="line"> <span class='keyword'>if</span> (!g_variant_is_of_type (settings_value, <span class='macro'>G_VARIANT_TYPE_INT16<span class='macro_popup'>((const GVariantType *) "n")</span></span>) &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="649"><td class="num" id="LN649">649</td><td class="line"> !g_variant_is_of_type (settings_value, <span class="mrange"><span class="mrange"><span class='macro'>G_VARIANT_TYPE_INT32<span class='macro_popup'>((const GVariantType *) "i")</span></span></span></span>) &amp;&amp;</td></tr>
+<tr><td class="num"></td><td class="line"><div id="EndPath" class="msg msgEvent" style="margin-left:60ex; max-width:31em">Casting a non-structure type to a structure type and accessing a field can lead to memory access errors or data corruption</div></td></tr>
+<tr class="codeline" data-linenumber="650"><td class="num" id="LN650">650</td><td class="line"> !g_variant_is_of_type (settings_value, <span class='macro'>G_VARIANT_TYPE_INT64<span class='macro_popup'>((const GVariantType *) "x")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="651"><td class="num" id="LN651">651</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="652"><td class="num" id="LN652">652</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="653"><td class="num" id="LN653">653</td><td class="line"> g_value_set_int (&amp;value, g_settings_get_int(settings, key));</td></tr>
+<tr class="codeline" data-linenumber="654"><td class="num" id="LN654">654</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="655"><td class="num" id="LN655">655</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_VALUE_ARRAY (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[18]) GCC warning "Deprecated pre-processor symbol"<br>
+); gboolean __r; if (!__inst) __r = (0); else if (__inst-&gt;<br>g_class &amp;&amp; __inst-&gt;g_class-&gt;g_type == __t) __r =<br> (!(0)); else __r = g_type_check_instance_is_a (__inst, __t);<br> __r; })))) GCC warning "Deprecated pre-processor symbol"
+</span></span> &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="656"><td class="num" id="LN656">656</td><td class="line"> <span class='macro'>G_PARAM_SPEC_VALUE_TYPE (G_PARAM_SPEC_VALUE_ARRAY (pspec)-&gt;element_spec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((((((GParamSpecValueArray*) (void *) g_type_check_instance_cast<br> ((GTypeInstance*) ((pspec)), ((g_param_spec_types[18]) GCC warning<br> "Deprecated pre-processor symbol"
+))))) GCC warning "Deprecated pre-processor symbol"<br>
+-&gt;element_spec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;<br>value_type)</span></span> == <span class='macro'>GDK_TYPE_RGBA<span class='macro_popup'>(gdk_rgba_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="657"><td class="num" id="LN657">657</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="658"><td class="num" id="LN658">658</td><td class="line"> <span class='keyword'>char</span> **color_strings;</td></tr>
+<tr class="codeline" data-linenumber="659"><td class="num" id="LN659">659</td><td class="line"> GdkRGBA *colors;</td></tr>
+<tr class="codeline" data-linenumber="660"><td class="num" id="LN660">660</td><td class="line"> <span class='keyword'>int</span> n_colors, i;</td></tr>
+<tr class="codeline" data-linenumber="661"><td class="num" id="LN661">661</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="662"><td class="num" id="LN662">662</td><td class="line"> <span class='keyword'>if</span> (!g_variant_is_of_type (settings_value, <span class='macro'>G_VARIANT_TYPE_STRING<span class='macro_popup'>((const GVariantType *) "s")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="663"><td class="num" id="LN663">663</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="664"><td class="num" id="LN664">664</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="665"><td class="num" id="LN665">665</td><td class="line"> color_strings = g_strsplit (g_variant_get_string (settings_value, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>), <span class='string_literal'>":"</span>, -1);</td></tr>
+<tr class="codeline" data-linenumber="666"><td class="num" id="LN666">666</td><td class="line"> <span class='keyword'>if</span> (!color_strings)</td></tr>
+<tr class="codeline" data-linenumber="667"><td class="num" id="LN667">667</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="668"><td class="num" id="LN668">668</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="669"><td class="num" id="LN669">669</td><td class="line"> n_colors = g_strv_length (color_strings);</td></tr>
+<tr class="codeline" data-linenumber="670"><td class="num" id="LN670">670</td><td class="line"> colors = <span class='macro'>g_new0 (GdkRGBA, n_colors)<span class='macro_popup'>((GdkRGBA *) g_malloc0_n ((n_colors), sizeof (GdkRGBA)))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="671"><td class="num" id="LN671">671</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; n_colors; ++i)</td></tr>
+<tr class="codeline" data-linenumber="672"><td class="num" id="LN672">672</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="673"><td class="num" id="LN673">673</td><td class="line"> <span class='keyword'>if</span> (!gdk_rgba_parse (&amp;colors[i], color_strings[i]))</td></tr>
+<tr class="codeline" data-linenumber="674"><td class="num" id="LN674">674</td><td class="line"> <span class='keyword'>continue</span>; <span class='comment'>/* ignore errors */</span></td></tr>
+<tr class="codeline" data-linenumber="675"><td class="num" id="LN675">675</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="676"><td class="num" id="LN676">676</td><td class="line"> g_strfreev (color_strings);</td></tr>
+<tr class="codeline" data-linenumber="677"><td class="num" id="LN677">677</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="678"><td class="num" id="LN678">678</td><td class="line"> <span class='comment'>/* We continue even with a palette size != TERMINAL_PALETTE_SIZE,</span></td></tr>
+<tr class="codeline" data-linenumber="679"><td class="num" id="LN679">679</td><td class="line"> <span class='comment'>* so we can change the palette size in future versions without</span></td></tr>
+<tr class="codeline" data-linenumber="680"><td class="num" id="LN680">680</td><td class="line"> <span class='comment'>* causing too many issues.</span></td></tr>
+<tr class="codeline" data-linenumber="681"><td class="num" id="LN681">681</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="682"><td class="num" id="LN682">682</td><td class="line"> set_value_from_palette (&amp;value, colors, n_colors);</td></tr>
+<tr class="codeline" data-linenumber="683"><td class="num" id="LN683">683</td><td class="line"> g_free (colors);</td></tr>
+<tr class="codeline" data-linenumber="684"><td class="num" id="LN684">684</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="685"><td class="num" id="LN685">685</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="686"><td class="num" id="LN686">686</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="687"><td class="num" id="LN687">687</td><td class="line"> g_printerr (<span class='string_literal'>"Unhandled value type %s of pspec %s\n"</span>, g_type_name (<span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span>), pspec-&gt;name);</td></tr>
+<tr class="codeline" data-linenumber="688"><td class="num" id="LN688">688</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="689"><td class="num" id="LN689">689</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="690"><td class="num" id="LN690">690</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="691"><td class="num" id="LN691">691</td><td class="line"> <span class='keyword'>if</span> (g_param_value_validate (pspec, &amp;value))</td></tr>
+<tr class="codeline" data-linenumber="692"><td class="num" id="LN692">692</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="693"><td class="num" id="LN693">693</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_PROFILE,<span class='macro_popup'>do { if (0) g_printerr("Invalid value in GSettings for key %s was changed to comply with pspec %s\n"<br>, key, pspec-&gt;name); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="694"><td class="num" id="LN694">694</td><td class="line"> <span class='string_literal'><span class='macro'>"Invalid value in GSettings for key %s was changed to comply with pspec %s\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("Invalid value in GSettings for key %s was changed to comply with pspec %s\n"<br>, key, pspec-&gt;name); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="695"><td class="num" id="LN695">695</td><td class="line"> <span class='macro'>key, pspec-&gt;name)<span class='macro_popup'>do { if (0) g_printerr("Invalid value in GSettings for key %s was changed to comply with pspec %s\n"<br>, key, pspec-&gt;name); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="696"><td class="num" id="LN696">696</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="697"><td class="num" id="LN697">697</td><td class="line"> force_set = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="698"><td class="num" id="LN698">698</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="699"><td class="num" id="LN699">699</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="700"><td class="num" id="LN700">700</td><td class="line"> <span class='comment'>/* Only set the property if the value is different than our current value,</span></td></tr>
+<tr class="codeline" data-linenumber="701"><td class="num" id="LN701">701</td><td class="line"> <span class='comment'>* so we don't go into an infinite loop.</span></td></tr>
+<tr class="codeline" data-linenumber="702"><td class="num" id="LN702">702</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="703"><td class="num" id="LN703">703</td><td class="line"> equal = values_equal (pspec, &amp;value, g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id));</td></tr>
+<tr class="codeline" data-linenumber="704"><td class="num" id="LN704">704</td><td class="line"><span class='directive'>#ifdef MATE_ENABLE_DEBUG</span></td></tr>
+<tr class="codeline" data-linenumber="705"><td class="num" id="LN705">705</td><td class="line"> <span class='macro'>_TERMINAL_DEBUG_IF (TERMINAL_DEBUG_PROFILE)<span class='macro_popup'>if (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="706"><td class="num" id="LN706">706</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="707"><td class="num" id="LN707">707</td><td class="line"> <span class='keyword'>if</span> (!equal)</td></tr>
+<tr class="codeline" data-linenumber="708"><td class="num" id="LN708">708</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_PROFILE,<span class='macro_popup'>do { if (0) g_printerr("Setting property %s to a different value\n"<br> " now: %s\n" " new: %s\n", pspec-&gt;name, g_strdup_value_contents<br> (g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id<br>)), g_strdup_value_contents (&amp;value)); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="709"><td class="num" id="LN709">709</td><td class="line"> <span class='string_literal'><span class='macro'>"Setting property %s to a different value\n"<span class='macro_popup'>do { if (0) g_printerr("Setting property %s to a different value\n"<br> " now: %s\n" " new: %s\n", pspec-&gt;name, g_strdup_value_contents<br> (g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id<br>)), g_strdup_value_contents (&amp;value)); } while (0)</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="710"><td class="num" id="LN710">710</td><td class="line"> <span class='string_literal'><span class='macro'>" now: %s\n"<span class='macro_popup'>do { if (0) g_printerr("Setting property %s to a different value\n"<br> " now: %s\n" " new: %s\n", pspec-&gt;name, g_strdup_value_contents<br> (g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id<br>)), g_strdup_value_contents (&amp;value)); } while (0)</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="711"><td class="num" id="LN711">711</td><td class="line"> <span class='string_literal'><span class='macro'>" new: %s\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("Setting property %s to a different value\n"<br> " now: %s\n" " new: %s\n", pspec-&gt;name, g_strdup_value_contents<br> (g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id<br>)), g_strdup_value_contents (&amp;value)); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="712"><td class="num" id="LN712">712</td><td class="line"> <span class='macro'>pspec-&gt;name,<span class='macro_popup'>do { if (0) g_printerr("Setting property %s to a different value\n"<br> " now: %s\n" " new: %s\n", pspec-&gt;name, g_strdup_value_contents<br> (g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id<br>)), g_strdup_value_contents (&amp;value)); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="713"><td class="num" id="LN713">713</td><td class="line"> <span class='macro'>g_strdup_value_contents (g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id)),<span class='macro_popup'>do { if (0) g_printerr("Setting property %s to a different value\n"<br> " now: %s\n" " new: %s\n", pspec-&gt;name, g_strdup_value_contents<br> (g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id<br>)), g_strdup_value_contents (&amp;value)); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="714"><td class="num" id="LN714">714</td><td class="line"> <span class='macro'>g_strdup_value_contents (&amp;value))<span class='macro_popup'>do { if (0) g_printerr("Setting property %s to a different value\n"<br> " now: %s\n" " new: %s\n", pspec-&gt;name, g_strdup_value_contents<br> (g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id<br>)), g_strdup_value_contents (&amp;value)); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="715"><td class="num" id="LN715">715</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="716"><td class="num" id="LN716">716</td><td class="line"><span class='directive'>#endif</span></td></tr>
+<tr class="codeline" data-linenumber="717"><td class="num" id="LN717">717</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="718"><td class="num" id="LN718">718</td><td class="line"> <span class='keyword'>if</span> (!equal || force_set)</td></tr>
+<tr class="codeline" data-linenumber="719"><td class="num" id="LN719">719</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="720"><td class="num" id="LN720">720</td><td class="line"> priv-&gt;gsettings_notification_pspec = pspec;</td></tr>
+<tr class="codeline" data-linenumber="721"><td class="num" id="LN721">721</td><td class="line"> g_object_set_property (<span class='macro'>G_OBJECT (profile)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((profile)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, pspec-&gt;name, &amp;value);</td></tr>
+<tr class="codeline" data-linenumber="722"><td class="num" id="LN722">722</td><td class="line"> priv-&gt;gsettings_notification_pspec = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="723"><td class="num" id="LN723">723</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="724"><td class="num" id="LN724">724</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="725"><td class="num" id="LN725">725</td><td class="line">out:</td></tr>
+<tr class="codeline" data-linenumber="726"><td class="num" id="LN726">726</td><td class="line"> <span class='comment'>/* FIXME: if we arrive here through goto in the error cases,</span></td></tr>
+<tr class="codeline" data-linenumber="727"><td class="num" id="LN727">727</td><td class="line"> <span class='comment'>* should we maybe reset the property to its default value?</span></td></tr>
+<tr class="codeline" data-linenumber="728"><td class="num" id="LN728">728</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="729"><td class="num" id="LN729">729</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="730"><td class="num" id="LN730">730</td><td class="line"> g_value_unset (&amp;value);</td></tr>
+<tr class="codeline" data-linenumber="731"><td class="num" id="LN731">731</td><td class="line"> g_variant_unref (settings_value);</td></tr>
+<tr class="codeline" data-linenumber="732"><td class="num" id="LN732">732</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="733"><td class="num" id="LN733">733</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="734"><td class="num" id="LN734">734</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="735"><td class="num" id="LN735">735</td><td class="line">terminal_profile_gsettings_changeset_add (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="736"><td class="num" id="LN736">736</td><td class="line"> GSettings *changeset,</td></tr>
+<tr class="codeline" data-linenumber="737"><td class="num" id="LN737">737</td><td class="line"> GParamSpec *pspec)</td></tr>
+<tr class="codeline" data-linenumber="738"><td class="num" id="LN738">738</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="739"><td class="num" id="LN739">739</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="740"><td class="num" id="LN740">740</td><td class="line"> <span class='keyword'>char</span> *key;</td></tr>
+<tr class="codeline" data-linenumber="741"><td class="num" id="LN741">741</td><td class="line"> <span class='keyword'>const</span> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="742"><td class="num" id="LN742">742</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="743"><td class="num" id="LN743">743</td><td class="line"> <span class='comment'>/* FIXME: do this? */</span></td></tr>
+<tr class="codeline" data-linenumber="744"><td class="num" id="LN744">744</td><td class="line"><span class='directive'>#if 0</span></td></tr>
+<tr class="codeline" data-linenumber="745"><td class="num" id="LN745">745</td><td class="line"> <span class='keyword'>if</span> (priv-&gt;locked[pspec-&gt;param_id])</td></tr>
+<tr class="codeline" data-linenumber="746"><td class="num" id="LN746">746</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="747"><td class="num" id="LN747">747</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="748"><td class="num" id="LN748">748</td><td class="line"> <span class='keyword'>if</span> (!g_settings_is_writable (priv-&gt;settings, gsettings_key, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="749"><td class="num" id="LN749">749</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="750"><td class="num" id="LN750">750</td><td class="line"><span class='directive'>#endif</span></td></tr>
+<tr class="codeline" data-linenumber="751"><td class="num" id="LN751">751</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="752"><td class="num" id="LN752">752</td><td class="line"> key = g_param_spec_get_qdata (pspec, gsettings_key_quark);</td></tr>
+<tr class="codeline" data-linenumber="753"><td class="num" id="LN753">753</td><td class="line"> <span class='keyword'>if</span> (!key)</td></tr>
+<tr class="codeline" data-linenumber="754"><td class="num" id="LN754">754</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="755"><td class="num" id="LN755">755</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="756"><td class="num" id="LN756">756</td><td class="line"> value = g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id);</td></tr>
+<tr class="codeline" data-linenumber="757"><td class="num" id="LN757">757</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="758"><td class="num" id="LN758">758</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_PROFILE,<span class='macro_popup'>do { if (0) g_printerr("Adding pspec %s with value %s to the GSettings changeset\n"<br>, pspec-&gt;name, g_strdup_value_contents (value)); } while (<br>0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="759"><td class="num" id="LN759">759</td><td class="line"> <span class='string_literal'><span class='macro'>"Adding pspec %s with value %s to the GSettings changeset\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("Adding pspec %s with value %s to the GSettings changeset\n"<br>, pspec-&gt;name, g_strdup_value_contents (value)); } while (<br>0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="760"><td class="num" id="LN760">760</td><td class="line"> <span class='macro'>pspec-&gt;name, g_strdup_value_contents (value))<span class='macro_popup'>do { if (0) g_printerr("Adding pspec %s with value %s to the GSettings changeset\n"<br>, pspec-&gt;name, g_strdup_value_contents (value)); } while (<br>0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="761"><td class="num" id="LN761">761</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="762"><td class="num" id="LN762">762</td><td class="line"> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_BOOLEAN (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[2])); gboolean __r<br>; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="763"><td class="num" id="LN763">763</td><td class="line"> g_settings_set_boolean (changeset, key, g_value_get_boolean (value));</td></tr>
+<tr class="codeline" data-linenumber="764"><td class="num" id="LN764">764</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_STRING (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[14])); gboolean __r<br>; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="765"><td class="num" id="LN765">765</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="766"><td class="num" id="LN766">766</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *str;</td></tr>
+<tr class="codeline" data-linenumber="767"><td class="num" id="LN767">767</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="768"><td class="num" id="LN768">768</td><td class="line"> str = g_value_get_string (value);</td></tr>
+<tr class="codeline" data-linenumber="769"><td class="num" id="LN769">769</td><td class="line"> g_settings_set_string (changeset, key, str ? str : <span class='string_literal'>""</span>);</td></tr>
+<tr class="codeline" data-linenumber="770"><td class="num" id="LN770">770</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="771"><td class="num" id="LN771">771</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_ENUM (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[10])); gboolean __r<br>; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="772"><td class="num" id="LN772">772</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="773"><td class="num" id="LN773">773</td><td class="line"> <span class='keyword'>const</span> GEnumValue *eval;</td></tr>
+<tr class="codeline" data-linenumber="774"><td class="num" id="LN774">774</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="775"><td class="num" id="LN775">775</td><td class="line"> eval = g_enum_get_value (<span class='macro'>G_PARAM_SPEC_ENUM (pspec)<span class='macro_popup'>((((GParamSpecEnum*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), ((g_param_spec_types[10]))))))</span></span>-&gt;enum_class, g_value_get_enum (value));</td></tr>
+<tr class="codeline" data-linenumber="776"><td class="num" id="LN776">776</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="777"><td class="num" id="LN777">777</td><td class="line"> g_settings_set_enum (changeset, key, eval-&gt;value);</td></tr>
+<tr class="codeline" data-linenumber="778"><td class="num" id="LN778">778</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="779"><td class="num" id="LN779">779</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span> == <span class='macro'>GDK_TYPE_RGBA<span class='macro_popup'>(gdk_rgba_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="780"><td class="num" id="LN780">780</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="781"><td class="num" id="LN781">781</td><td class="line"> GdkRGBA *color;</td></tr>
+<tr class="codeline" data-linenumber="782"><td class="num" id="LN782">782</td><td class="line"> <span class='keyword'>char</span> str[16];</td></tr>
+<tr class="codeline" data-linenumber="783"><td class="num" id="LN783">783</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="784"><td class="num" id="LN784">784</td><td class="line"> color = g_value_get_boxed (value);</td></tr>
+<tr class="codeline" data-linenumber="785"><td class="num" id="LN785">785</td><td class="line"> <span class='keyword'>if</span> (!color)</td></tr>
+<tr class="codeline" data-linenumber="786"><td class="num" id="LN786">786</td><td class="line"> <span class='keyword'>goto</span> cleanup;</td></tr>
+<tr class="codeline" data-linenumber="787"><td class="num" id="LN787">787</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="788"><td class="num" id="LN788">788</td><td class="line"> g_snprintf (str, <span class='keyword'>sizeof</span> (str),</td></tr>
+<tr class="codeline" data-linenumber="789"><td class="num" id="LN789">789</td><td class="line"> <span class='string_literal'>"#%04X%04X%04X"</span>,</td></tr>
+<tr class="codeline" data-linenumber="790"><td class="num" id="LN790">790</td><td class="line"> (guint) (color-&gt;red * 65535),</td></tr>
+<tr class="codeline" data-linenumber="791"><td class="num" id="LN791">791</td><td class="line"> (guint) (color-&gt;green * 65535),</td></tr>
+<tr class="codeline" data-linenumber="792"><td class="num" id="LN792">792</td><td class="line"> (guint) (color-&gt;blue * 65535));</td></tr>
+<tr class="codeline" data-linenumber="793"><td class="num" id="LN793">793</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="794"><td class="num" id="LN794">794</td><td class="line"> g_settings_set_string (changeset, key, str);</td></tr>
+<tr class="codeline" data-linenumber="795"><td class="num" id="LN795">795</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="796"><td class="num" id="LN796">796</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span> == <span class='macro'>PANGO_TYPE_FONT_DESCRIPTION<span class='macro_popup'>(pango_font_description_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="797"><td class="num" id="LN797">797</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="798"><td class="num" id="LN798">798</td><td class="line"> PangoFontDescription *font_desc;</td></tr>
+<tr class="codeline" data-linenumber="799"><td class="num" id="LN799">799</td><td class="line"> <span class='keyword'>char</span> *font;</td></tr>
+<tr class="codeline" data-linenumber="800"><td class="num" id="LN800">800</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="801"><td class="num" id="LN801">801</td><td class="line"> font_desc = g_value_get_boxed (value);</td></tr>
+<tr class="codeline" data-linenumber="802"><td class="num" id="LN802">802</td><td class="line"> <span class='keyword'>if</span> (!font_desc)</td></tr>
+<tr class="codeline" data-linenumber="803"><td class="num" id="LN803">803</td><td class="line"> <span class='keyword'>goto</span> cleanup;</td></tr>
+<tr class="codeline" data-linenumber="804"><td class="num" id="LN804">804</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="805"><td class="num" id="LN805">805</td><td class="line"> font = pango_font_description_to_string (font_desc);</td></tr>
+<tr class="codeline" data-linenumber="806"><td class="num" id="LN806">806</td><td class="line"> g_settings_set_string (changeset, key, font);</td></tr>
+<tr class="codeline" data-linenumber="807"><td class="num" id="LN807">807</td><td class="line"> g_free (font);</td></tr>
+<tr class="codeline" data-linenumber="808"><td class="num" id="LN808">808</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="809"><td class="num" id="LN809">809</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_DOUBLE (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[13])); gboolean __r<br>; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="810"><td class="num" id="LN810">810</td><td class="line"> g_settings_set_double (changeset, key, g_value_get_double (value));</td></tr>
+<tr class="codeline" data-linenumber="811"><td class="num" id="LN811">811</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_INT (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[3])); gboolean __r<br>; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="812"><td class="num" id="LN812">812</td><td class="line"> g_settings_set_int (changeset, key, g_value_get_int (value));</td></tr>
+<tr class="codeline" data-linenumber="813"><td class="num" id="LN813">813</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_VALUE_ARRAY (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[18]) GCC warning "Deprecated pre-processor symbol"<br>
+); gboolean __r; if (!__inst) __r = (0); else if (__inst-&gt;<br>g_class &amp;&amp; __inst-&gt;g_class-&gt;g_type == __t) __r =<br> (!(0)); else __r = g_type_check_instance_is_a (__inst, __t);<br> __r; })))) GCC warning "Deprecated pre-processor symbol"
+</span></span> &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="814"><td class="num" id="LN814">814</td><td class="line"> <span class='macro'>G_PARAM_SPEC_VALUE_TYPE (G_PARAM_SPEC_VALUE_ARRAY (pspec)-&gt;element_spec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((((((GParamSpecValueArray*) (void *) g_type_check_instance_cast<br> ((GTypeInstance*) ((pspec)), ((g_param_spec_types[18]) GCC warning<br> "Deprecated pre-processor symbol"
+))))) GCC warning "Deprecated pre-processor symbol"<br>
+-&gt;element_spec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;<br>value_type)</span></span> == <span class='macro'>GDK_TYPE_RGBA<span class='macro_popup'>(gdk_rgba_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="815"><td class="num" id="LN815">815</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="816"><td class="num" id="LN816">816</td><td class="line"> GValueArray *array;</td></tr>
+<tr class="codeline" data-linenumber="817"><td class="num" id="LN817">817</td><td class="line"> GString *string;</td></tr>
+<tr class="codeline" data-linenumber="818"><td class="num" id="LN818">818</td><td class="line"> guint n_colors, i;</td></tr>
+<tr class="codeline" data-linenumber="819"><td class="num" id="LN819">819</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="820"><td class="num" id="LN820">820</td><td class="line"> <span class='comment'>/* We need to do this ourselves, because the gtk_color_selection_palette_to_string</span></td></tr>
+<tr class="codeline" data-linenumber="821"><td class="num" id="LN821">821</td><td class="line"> <span class='comment'>* does not carry all the bytes, and xterm's palette is messed up...</span></td></tr>
+<tr class="codeline" data-linenumber="822"><td class="num" id="LN822">822</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="823"><td class="num" id="LN823">823</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="824"><td class="num" id="LN824">824</td><td class="line"> array = g_value_get_boxed (value);</td></tr>
+<tr class="codeline" data-linenumber="825"><td class="num" id="LN825">825</td><td class="line"> <span class='keyword'>if</span> (!array)</td></tr>
+<tr class="codeline" data-linenumber="826"><td class="num" id="LN826">826</td><td class="line"> <span class='keyword'>goto</span> cleanup;</td></tr>
+<tr class="codeline" data-linenumber="827"><td class="num" id="LN827">827</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="828"><td class="num" id="LN828">828</td><td class="line"> n_colors = array-&gt;n_values;</td></tr>
+<tr class="codeline" data-linenumber="829"><td class="num" id="LN829">829</td><td class="line"> string = g_string_sized_new (n_colors * (1 <span class='comment'>/* # */</span> + 3 * 4) + n_colors <span class='comment'>/* : separators and terminating \0 */</span>);</td></tr>
+<tr class="codeline" data-linenumber="830"><td class="num" id="LN830">830</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; n_colors; ++i)</td></tr>
+<tr class="codeline" data-linenumber="831"><td class="num" id="LN831">831</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="832"><td class="num" id="LN832">832</td><td class="line"> GdkRGBA *color;</td></tr>
+<tr class="codeline" data-linenumber="833"><td class="num" id="LN833">833</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="834"><td class="num" id="LN834">834</td><td class="line"> <span class='keyword'>if</span> (i &gt; 0)</td></tr>
+<tr class="codeline" data-linenumber="835"><td class="num" id="LN835">835</td><td class="line"> <span class='macro'>g_string_append_c (string, ':')<span class='macro_popup'>g_string_append_c_inline (string, ':')</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="836"><td class="num" id="LN836">836</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="837"><td class="num" id="LN837">837</td><td class="line"> color = g_value_get_boxed (g_value_array_get_nth (array, i));</td></tr>
+<tr class="codeline" data-linenumber="838"><td class="num" id="LN838">838</td><td class="line"> <span class='keyword'>if</span> (!color)</td></tr>
+<tr class="codeline" data-linenumber="839"><td class="num" id="LN839">839</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="840"><td class="num" id="LN840">840</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="841"><td class="num" id="LN841">841</td><td class="line"> g_string_append_printf (string,</td></tr>
+<tr class="codeline" data-linenumber="842"><td class="num" id="LN842">842</td><td class="line"> <span class='string_literal'>"#%04X%04X%04X"</span>,</td></tr>
+<tr class="codeline" data-linenumber="843"><td class="num" id="LN843">843</td><td class="line"> (guint) (color-&gt;red * 65535),</td></tr>
+<tr class="codeline" data-linenumber="844"><td class="num" id="LN844">844</td><td class="line"> (guint) (color-&gt;green * 65535),</td></tr>
+<tr class="codeline" data-linenumber="845"><td class="num" id="LN845">845</td><td class="line"> (guint) (color-&gt;blue * 65535));</td></tr>
+<tr class="codeline" data-linenumber="846"><td class="num" id="LN846">846</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="847"><td class="num" id="LN847">847</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="848"><td class="num" id="LN848">848</td><td class="line"> g_settings_set_string (changeset, key, string-&gt;str);</td></tr>
+<tr class="codeline" data-linenumber="849"><td class="num" id="LN849">849</td><td class="line"> <span class='macro'>g_string_free (string, TRUE)<span class='macro_popup'>(__builtin_constant_p ((!(0))) ? (((!(0))) ? (g_string_free) (<br>(string), ((!(0)))) : g_string_free_and_steal (string)) : (g_string_free<br>) ((string), ((!(0)))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="850"><td class="num" id="LN850">850</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="851"><td class="num" id="LN851">851</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="852"><td class="num" id="LN852">852</td><td class="line"> g_printerr (<span class='string_literal'>"Unhandled value type %s of pspec %s\n"</span>, g_type_name (<span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span>), pspec-&gt;name);</td></tr>
+<tr class="codeline" data-linenumber="853"><td class="num" id="LN853">853</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="854"><td class="num" id="LN854">854</td><td class="line">cleanup:</td></tr>
+<tr class="codeline" data-linenumber="855"><td class="num" id="LN855">855</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="856"><td class="num" id="LN856">856</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="857"><td class="num" id="LN857">857</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="858"><td class="num" id="LN858">858</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="859"><td class="num" id="LN859">859</td><td class="line">terminal_profile_save (TerminalProfile *profile)</td></tr>
+<tr class="codeline" data-linenumber="860"><td class="num" id="LN860">860</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="861"><td class="num" id="LN861">861</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="862"><td class="num" id="LN862">862</td><td class="line"> GSettings *changeset;</td></tr>
+<tr class="codeline" data-linenumber="863"><td class="num" id="LN863">863</td><td class="line"> GSList *l;</td></tr>
+<tr class="codeline" data-linenumber="864"><td class="num" id="LN864">864</td><td class="line"> gchar *concat;</td></tr>
+<tr class="codeline" data-linenumber="865"><td class="num" id="LN865">865</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="866"><td class="num" id="LN866">866</td><td class="line"> priv-&gt;save_idle_id = 0;</td></tr>
+<tr class="codeline" data-linenumber="867"><td class="num" id="LN867">867</td><td class="line"> concat = g_strconcat (<span class='macro'>CONF_PROFILE_PREFIX<span class='macro_popup'>"/org/mate/terminal/profiles/"</span></span>, priv-&gt;profile_dir,<span class='string_literal'>"/"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="868"><td class="num" id="LN868">868</td><td class="line"> changeset = g_settings_new_with_path (<span class='macro'>CONF_PROFILE_SCHEMA<span class='macro_popup'>"org.mate.terminal" ".profile"</span></span>, concat);</td></tr>
+<tr class="codeline" data-linenumber="869"><td class="num" id="LN869">869</td><td class="line"> g_free (concat);</td></tr>
+<tr class="codeline" data-linenumber="870"><td class="num" id="LN870">870</td><td class="line"> g_settings_delay (changeset);</td></tr>
+<tr class="codeline" data-linenumber="871"><td class="num" id="LN871">871</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="872"><td class="num" id="LN872">872</td><td class="line"> <span class='keyword'>for</span> (l = priv-&gt;dirty_pspecs; l != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; l = l-&gt;next)</td></tr>
+<tr class="codeline" data-linenumber="873"><td class="num" id="LN873">873</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="874"><td class="num" id="LN874">874</td><td class="line"> GParamSpec *pspec = (GParamSpec *) l-&gt;data;</td></tr>
+<tr class="codeline" data-linenumber="875"><td class="num" id="LN875">875</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="876"><td class="num" id="LN876">876</td><td class="line"> <span class='keyword'>if</span> (pspec-&gt;owner_type != <span class='macro'>TERMINAL_TYPE_PROFILE<span class='macro_popup'>(terminal_profile_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="877"><td class="num" id="LN877">877</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="878"><td class="num" id="LN878">878</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="879"><td class="num" id="LN879">879</td><td class="line"> <span class='keyword'>if</span> ((pspec-&gt;flags &amp; G_PARAM_WRITABLE) == 0)</td></tr>
+<tr class="codeline" data-linenumber="880"><td class="num" id="LN880">880</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="881"><td class="num" id="LN881">881</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="882"><td class="num" id="LN882">882</td><td class="line"> terminal_profile_gsettings_changeset_add (profile, changeset, pspec);</td></tr>
+<tr class="codeline" data-linenumber="883"><td class="num" id="LN883">883</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="884"><td class="num" id="LN884">884</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="885"><td class="num" id="LN885">885</td><td class="line"> g_slist_free (priv-&gt;dirty_pspecs);</td></tr>
+<tr class="codeline" data-linenumber="886"><td class="num" id="LN886">886</td><td class="line"> priv-&gt;dirty_pspecs = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="887"><td class="num" id="LN887">887</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="888"><td class="num" id="LN888">888</td><td class="line"> g_settings_apply (changeset);</td></tr>
+<tr class="codeline" data-linenumber="889"><td class="num" id="LN889">889</td><td class="line"> g_object_unref (changeset);</td></tr>
+<tr class="codeline" data-linenumber="890"><td class="num" id="LN890">890</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="891"><td class="num" id="LN891">891</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="892"><td class="num" id="LN892">892</td><td class="line"><span class='keyword'>static</span> gboolean</td></tr>
+<tr class="codeline" data-linenumber="893"><td class="num" id="LN893">893</td><td class="line">terminal_profile_save_idle_cb (TerminalProfile *profile)</td></tr>
+<tr class="codeline" data-linenumber="894"><td class="num" id="LN894">894</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="895"><td class="num" id="LN895">895</td><td class="line"> terminal_profile_save (profile);</td></tr>
+<tr class="codeline" data-linenumber="896"><td class="num" id="LN896">896</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="897"><td class="num" id="LN897">897</td><td class="line"> <span class='comment'>/* don't run again */</span></td></tr>
+<tr class="codeline" data-linenumber="898"><td class="num" id="LN898">898</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="899"><td class="num" id="LN899">899</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="900"><td class="num" id="LN900">900</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="901"><td class="num" id="LN901">901</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="902"><td class="num" id="LN902">902</td><td class="line">terminal_profile_schedule_save (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="903"><td class="num" id="LN903">903</td><td class="line"> GParamSpec *pspec)</td></tr>
+<tr class="codeline" data-linenumber="904"><td class="num" id="LN904">904</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="905"><td class="num" id="LN905">905</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="906"><td class="num" id="LN906">906</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="907"><td class="num" id="LN907">907</td><td class="line"> <span class='macro'>g_assert (pspec != NULL)<span class='macro_popup'>do { if (pspec != ((void*)0)) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-profile.c", 907, ((const char*) (__func__<br>)), "pspec != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="908"><td class="num" id="LN908">908</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="909"><td class="num" id="LN909">909</td><td class="line"> <span class='keyword'>if</span> (!g_slist_find (priv-&gt;dirty_pspecs, pspec))</td></tr>
+<tr class="codeline" data-linenumber="910"><td class="num" id="LN910">910</td><td class="line"> priv-&gt;dirty_pspecs = g_slist_prepend (priv-&gt;dirty_pspecs, pspec);</td></tr>
+<tr class="codeline" data-linenumber="911"><td class="num" id="LN911">911</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="912"><td class="num" id="LN912">912</td><td class="line"> <span class='keyword'>if</span> (priv-&gt;save_idle_id != 0)</td></tr>
+<tr class="codeline" data-linenumber="913"><td class="num" id="LN913">913</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="914"><td class="num" id="LN914">914</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="915"><td class="num" id="LN915">915</td><td class="line"> priv-&gt;save_idle_id = g_idle_add ((GSourceFunc) terminal_profile_save_idle_cb, profile);</td></tr>
+<tr class="codeline" data-linenumber="916"><td class="num" id="LN916">916</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="917"><td class="num" id="LN917">917</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="918"><td class="num" id="LN918">918</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="919"><td class="num" id="LN919">919</td><td class="line">terminal_profile_init (TerminalProfile *profile)</td></tr>
+<tr class="codeline" data-linenumber="920"><td class="num" id="LN920">920</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="921"><td class="num" id="LN921">921</td><td class="line"> TerminalProfilePrivate *priv;</td></tr>
+<tr class="codeline" data-linenumber="922"><td class="num" id="LN922">922</td><td class="line"> GObjectClass *object_class;</td></tr>
+<tr class="codeline" data-linenumber="923"><td class="num" id="LN923">923</td><td class="line"> GParamSpec **pspecs;</td></tr>
+<tr class="codeline" data-linenumber="924"><td class="num" id="LN924">924</td><td class="line"> guint n_pspecs, i;</td></tr>
+<tr class="codeline" data-linenumber="925"><td class="num" id="LN925">925</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="926"><td class="num" id="LN926">926</td><td class="line"> priv = profile-&gt;priv = terminal_profile_get_instance_private (profile);</td></tr>
+<tr class="codeline" data-linenumber="927"><td class="num" id="LN927">927</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="928"><td class="num" id="LN928">928</td><td class="line"> priv-&gt;gsettings_notification_pspec = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="929"><td class="num" id="LN929">929</td><td class="line"> priv-&gt;locked = <span class='macro'>g_new0 (gboolean, LAST_PROP)<span class='macro_popup'>((gboolean *) g_malloc0_n ((LAST_PROP), sizeof (gboolean)))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="930"><td class="num" id="LN930">930</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="931"><td class="num" id="LN931">931</td><td class="line"> priv-&gt;properties = g_value_array_new (LAST_PROP);</td></tr>
+<tr class="codeline" data-linenumber="932"><td class="num" id="LN932">932</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; LAST_PROP; ++i)</td></tr>
+<tr class="codeline" data-linenumber="933"><td class="num" id="LN933">933</td><td class="line"> g_value_array_append (priv-&gt;properties, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="934"><td class="num" id="LN934">934</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="935"><td class="num" id="LN935">935</td><td class="line"> pspecs = g_object_class_list_properties (<span class='macro'>G_OBJECT_CLASS (TERMINAL_PROFILE_GET_CLASS (profile))<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((((((TerminalProfileClass*) (((GTypeInstance*) ((profile)<br>))-&gt;g_class)))))), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, &amp;n_pspecs);</td></tr>
+<tr class="codeline" data-linenumber="936"><td class="num" id="LN936">936</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; n_pspecs; ++i)</td></tr>
+<tr class="codeline" data-linenumber="937"><td class="num" id="LN937">937</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="938"><td class="num" id="LN938">938</td><td class="line"> GParamSpec *pspec = pspecs[i];</td></tr>
+<tr class="codeline" data-linenumber="939"><td class="num" id="LN939">939</td><td class="line"> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="940"><td class="num" id="LN940">940</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="941"><td class="num" id="LN941">941</td><td class="line"> <span class='keyword'>if</span> (pspec-&gt;owner_type != <span class='macro'>TERMINAL_TYPE_PROFILE<span class='macro_popup'>(terminal_profile_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="942"><td class="num" id="LN942">942</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="943"><td class="num" id="LN943">943</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="944"><td class="num" id="LN944">944</td><td class="line"> <span class='macro'>g_assert (pspec-&gt;param_id &lt; LAST_PROP)<span class='macro_popup'>do { if (pspec-&gt;param_id &lt; LAST_PROP) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-profile.c", 944, ((const char*) (__func__<br>)), "pspec-&gt;param_id &lt; LAST_PROP"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="945"><td class="num" id="LN945">945</td><td class="line"> value = g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id);</td></tr>
+<tr class="codeline" data-linenumber="946"><td class="num" id="LN946">946</td><td class="line"> g_value_init (value, pspec-&gt;value_type);</td></tr>
+<tr class="codeline" data-linenumber="947"><td class="num" id="LN947">947</td><td class="line"> g_param_value_set_default (pspec, value);</td></tr>
+<tr class="codeline" data-linenumber="948"><td class="num" id="LN948">948</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="949"><td class="num" id="LN949">949</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="950"><td class="num" id="LN950">950</td><td class="line"> g_free (pspecs);</td></tr>
+<tr class="codeline" data-linenumber="951"><td class="num" id="LN951">951</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="952"><td class="num" id="LN952">952</td><td class="line"> <span class='comment'>/* A few properties don't have defaults via the param spec; set them explicitly */</span></td></tr>
+<tr class="codeline" data-linenumber="953"><td class="num" id="LN953">953</td><td class="line"> object_class = <span class='macro'>G_OBJECT_CLASS (TERMINAL_PROFILE_GET_CLASS (profile))<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((((((TerminalProfileClass*) (((GTypeInstance*) ((profile)<br>))-&gt;g_class)))))), (((GType) ((20) &lt;&lt; (2))))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="954"><td class="num" id="LN954">954</td><td class="line"> terminal_profile_reset_property_internal (profile, g_object_class_find_property (object_class, <span class='macro'>TERMINAL_PROFILE_FOREGROUND_COLOR<span class='macro_popup'>"foreground-color"</span></span>), <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="955"><td class="num" id="LN955">955</td><td class="line"> terminal_profile_reset_property_internal (profile, g_object_class_find_property (object_class, <span class='macro'>TERMINAL_PROFILE_BOLD_COLOR<span class='macro_popup'>"bold-color"</span></span>), <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="956"><td class="num" id="LN956">956</td><td class="line"> terminal_profile_reset_property_internal (profile, g_object_class_find_property (object_class, <span class='macro'>TERMINAL_PROFILE_BACKGROUND_COLOR<span class='macro_popup'>"background-color"</span></span>), <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="957"><td class="num" id="LN957">957</td><td class="line"> terminal_profile_reset_property_internal (profile, g_object_class_find_property (object_class, <span class='macro'>TERMINAL_PROFILE_FONT<span class='macro_popup'>"font"</span></span>), <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="958"><td class="num" id="LN958">958</td><td class="line"> terminal_profile_reset_property_internal (profile, g_object_class_find_property (object_class, <span class='macro'>TERMINAL_PROFILE_PALETTE<span class='macro_popup'>"palette"</span></span>), <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="959"><td class="num" id="LN959">959</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="960"><td class="num" id="LN960">960</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="961"><td class="num" id="LN961">961</td><td class="line"><span class='keyword'>static</span> GObject *</td></tr>
+<tr class="codeline" data-linenumber="962"><td class="num" id="LN962">962</td><td class="line">terminal_profile_constructor (GType type,</td></tr>
+<tr class="codeline" data-linenumber="963"><td class="num" id="LN963">963</td><td class="line"> guint n_construct_properties,</td></tr>
+<tr class="codeline" data-linenumber="964"><td class="num" id="LN964">964</td><td class="line"> GObjectConstructParam *construct_params)</td></tr>
+<tr class="codeline" data-linenumber="965"><td class="num" id="LN965">965</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="966"><td class="num" id="LN966">966</td><td class="line"> GObject *object;</td></tr>
+<tr class="codeline" data-linenumber="967"><td class="num" id="LN967">967</td><td class="line"> TerminalProfile *profile;</td></tr>
+<tr class="codeline" data-linenumber="968"><td class="num" id="LN968">968</td><td class="line"> TerminalProfilePrivate *priv;</td></tr>
+<tr class="codeline" data-linenumber="969"><td class="num" id="LN969">969</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *name;</td></tr>
+<tr class="codeline" data-linenumber="970"><td class="num" id="LN970">970</td><td class="line"> GParamSpec **pspecs;</td></tr>
+<tr class="codeline" data-linenumber="971"><td class="num" id="LN971">971</td><td class="line"> guint n_pspecs, i;</td></tr>
+<tr class="codeline" data-linenumber="972"><td class="num" id="LN972">972</td><td class="line"> gchar *concat;</td></tr>
+<tr class="codeline" data-linenumber="973"><td class="num" id="LN973">973</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="974"><td class="num" id="LN974">974</td><td class="line"> object = <span class='macro'>G_OBJECT_CLASS (terminal_profile_parent_class)<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((terminal_profile_parent_class)), (((GType) ((20) &lt;&lt;<br> (2))))))))</span></span>-&gt;constructor</td></tr>
+<tr class="codeline" data-linenumber="975"><td class="num" id="LN975">975</td><td class="line"> (type, n_construct_properties, construct_params);</td></tr>
+<tr class="codeline" data-linenumber="976"><td class="num" id="LN976">976</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="977"><td class="num" id="LN977">977</td><td class="line"> profile = <span class='macro'>TERMINAL_PROFILE (object)<span class='macro_popup'>((((TerminalProfile*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((object)), ((terminal_profile_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="978"><td class="num" id="LN978">978</td><td class="line"> priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="979"><td class="num" id="LN979">979</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="980"><td class="num" id="LN980">980</td><td class="line"> name = g_value_get_string (g_value_array_get_nth (priv-&gt;properties, PROP_NAME));</td></tr>
+<tr class="codeline" data-linenumber="981"><td class="num" id="LN981">981</td><td class="line"> <span class='macro'>g_assert (name != NULL)<span class='macro_popup'>do { if (name != ((void*)0)) ; else g_assertion_message_expr (<br>((gchar*) 0), "terminal-profile.c", 981, ((const char*) (__func__<br>)), "name != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="982"><td class="num" id="LN982">982</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="983"><td class="num" id="LN983">983</td><td class="line"> concat = g_strconcat (<span class='macro'>CONF_PROFILE_PREFIX<span class='macro_popup'>"/org/mate/terminal/profiles/"</span></span>, name, <span class='string_literal'>"/"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="984"><td class="num" id="LN984">984</td><td class="line"> priv-&gt;settings = g_settings_new_with_path (<span class='macro'>CONF_PROFILE_SCHEMA<span class='macro_popup'>"org.mate.terminal" ".profile"</span></span>, concat);</td></tr>
+<tr class="codeline" data-linenumber="985"><td class="num" id="LN985">985</td><td class="line"> <span class='macro'>g_assert (priv-&gt;settings != NULL)<span class='macro_popup'>do { if (priv-&gt;settings != ((void*)0)) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-profile.c", 985, ((const char*) (__func__<br>)), "priv-&gt;settings != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="986"><td class="num" id="LN986">986</td><td class="line"> g_free (concat);</td></tr>
+<tr class="codeline" data-linenumber="987"><td class="num" id="LN987">987</td><td class="line"> concat = g_strconcat(<span class='string_literal'>"changed::"</span>, priv-&gt;profile_dir, <span class='string_literal'>"/"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="988"><td class="num" id="LN988">988</td><td class="line"> <span class='macro'>g_signal_connect (priv-&gt;settings,<span class='macro_popup'>g_signal_connect_data ((priv-&gt;settings), (concat), (((GCallback<br>) (terminal_profile_gsettings_notify_cb))), (profile), ((void<br>*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="989"><td class="num" id="LN989">989</td><td class="line"> <span class='macro'>concat,<span class='macro_popup'>g_signal_connect_data ((priv-&gt;settings), (concat), (((GCallback<br>) (terminal_profile_gsettings_notify_cb))), (profile), ((void<br>*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="990"><td class="num" id="LN990">990</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_profile_gsettings_notify_cb),<span class='macro_popup'>g_signal_connect_data ((priv-&gt;settings), (concat), (((GCallback<br>) (terminal_profile_gsettings_notify_cb))), (profile), ((void<br>*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="991"><td class="num" id="LN991">991</td><td class="line"> <span class='macro'>profile)<span class='macro_popup'>g_signal_connect_data ((priv-&gt;settings), (concat), (((GCallback<br>) (terminal_profile_gsettings_notify_cb))), (profile), ((void<br>*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="992"><td class="num" id="LN992">992</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="993"><td class="num" id="LN993">993</td><td class="line"> g_free (concat);</td></tr>
+<tr class="codeline" data-linenumber="994"><td class="num" id="LN994">994</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="995"><td class="num" id="LN995">995</td><td class="line"> <span class='comment'>/* Now load those properties from GSettings that were not set as construction params */</span></td></tr>
+<tr class="codeline" data-linenumber="996"><td class="num" id="LN996">996</td><td class="line"> pspecs = g_object_class_list_properties (<span class='macro'>G_OBJECT_CLASS (TERMINAL_PROFILE_GET_CLASS (profile))<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((((((TerminalProfileClass*) (((GTypeInstance*) ((profile)<br>))-&gt;g_class)))))), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, &amp;n_pspecs);</td></tr>
+<tr class="codeline" data-linenumber="997"><td class="num" id="LN997">997</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; n_pspecs; ++i)</td></tr>
+<tr class="codeline" data-linenumber="998"><td class="num" id="LN998">998</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="999"><td class="num" id="LN999">999</td><td class="line"> GParamSpec *pspec = pspecs[i];</td></tr>
+<tr class="codeline" data-linenumber="1000"><td class="num" id="LN1000">1000</td><td class="line"> guint j;</td></tr>
+<tr class="codeline" data-linenumber="1001"><td class="num" id="LN1001">1001</td><td class="line"> gboolean is_construct = <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1002"><td class="num" id="LN1002">1002</td><td class="line"> <span class='keyword'>char</span> *key;</td></tr>
+<tr class="codeline" data-linenumber="1003"><td class="num" id="LN1003">1003</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1004"><td class="num" id="LN1004">1004</td><td class="line"> <span class='keyword'>if</span> (pspec-&gt;owner_type != <span class='macro'>TERMINAL_TYPE_PROFILE<span class='macro_popup'>(terminal_profile_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1005"><td class="num" id="LN1005">1005</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="1006"><td class="num" id="LN1006">1006</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1007"><td class="num" id="LN1007">1007</td><td class="line"> <span class='keyword'>if</span> ((pspec-&gt;flags &amp; G_PARAM_WRITABLE) == 0 ||</td></tr>
+<tr class="codeline" data-linenumber="1008"><td class="num" id="LN1008">1008</td><td class="line"> (pspec-&gt;flags &amp; G_PARAM_CONSTRUCT_ONLY) != 0)</td></tr>
+<tr class="codeline" data-linenumber="1009"><td class="num" id="LN1009">1009</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="1010"><td class="num" id="LN1010">1010</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1011"><td class="num" id="LN1011">1011</td><td class="line"> <span class='keyword'>for</span> (j = 0; j &lt; n_construct_properties; ++j)</td></tr>
+<tr class="codeline" data-linenumber="1012"><td class="num" id="LN1012">1012</td><td class="line"> <span class='keyword'>if</span> (pspec == construct_params[j].pspec)</td></tr>
+<tr class="codeline" data-linenumber="1013"><td class="num" id="LN1013">1013</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1014"><td class="num" id="LN1014">1014</td><td class="line"> is_construct = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1015"><td class="num" id="LN1015">1015</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1016"><td class="num" id="LN1016">1016</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1017"><td class="num" id="LN1017">1017</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1018"><td class="num" id="LN1018">1018</td><td class="line"> <span class='keyword'>if</span> (is_construct)</td></tr>
+<tr class="codeline" data-linenumber="1019"><td class="num" id="LN1019">1019</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="1020"><td class="num" id="LN1020">1020</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1021"><td class="num" id="LN1021">1021</td><td class="line"> key = g_param_spec_get_qdata (pspec, gsettings_key_quark);</td></tr>
+<tr class="codeline" data-linenumber="1022"><td class="num" id="LN1022">1022</td><td class="line"> <span class='keyword'>if</span> (!key)</td></tr>
+<tr class="codeline" data-linenumber="1023"><td class="num" id="LN1023">1023</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="1024"><td class="num" id="LN1024">1024</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1025"><td class="num" id="LN1025">1025</td><td class="line"> terminal_profile_gsettings_notify_cb (priv-&gt;settings, key, profile);</td></tr>
+<tr class="codeline" data-linenumber="1026"><td class="num" id="LN1026">1026</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1027"><td class="num" id="LN1027">1027</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1028"><td class="num" id="LN1028">1028</td><td class="line"> g_free (pspecs);</td></tr>
+<tr class="codeline" data-linenumber="1029"><td class="num" id="LN1029">1029</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1030"><td class="num" id="LN1030">1030</td><td class="line"> <span class='keyword'>return</span> object;</td></tr>
+<tr class="codeline" data-linenumber="1031"><td class="num" id="LN1031">1031</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1032"><td class="num" id="LN1032">1032</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1033"><td class="num" id="LN1033">1033</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1034"><td class="num" id="LN1034">1034</td><td class="line">terminal_profile_finalize (GObject *object)</td></tr>
+<tr class="codeline" data-linenumber="1035"><td class="num" id="LN1035">1035</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1036"><td class="num" id="LN1036">1036</td><td class="line"> TerminalProfile *profile = <span class='macro'>TERMINAL_PROFILE (object)<span class='macro_popup'>((((TerminalProfile*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((object)), ((terminal_profile_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1037"><td class="num" id="LN1037">1037</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1038"><td class="num" id="LN1038">1038</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1039"><td class="num" id="LN1039">1039</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (priv-&gt;settings,<span class='macro_popup'>g_signal_handlers_disconnect_matched ((priv-&gt;settings), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_profile_gsettings_notify_cb))), (<br>profile))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1040"><td class="num" id="LN1040">1040</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_profile_gsettings_notify_cb),<span class='macro_popup'>g_signal_handlers_disconnect_matched ((priv-&gt;settings), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_profile_gsettings_notify_cb))), (<br>profile))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1041"><td class="num" id="LN1041">1041</td><td class="line"> <span class='macro'>profile)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((priv-&gt;settings), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_profile_gsettings_notify_cb))), (<br>profile))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1042"><td class="num" id="LN1042">1042</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1043"><td class="num" id="LN1043">1043</td><td class="line"> <span class='keyword'>if</span> (priv-&gt;save_idle_id)</td></tr>
+<tr class="codeline" data-linenumber="1044"><td class="num" id="LN1044">1044</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1045"><td class="num" id="LN1045">1045</td><td class="line"> g_source_remove (priv-&gt;save_idle_id);</td></tr>
+<tr class="codeline" data-linenumber="1046"><td class="num" id="LN1046">1046</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1047"><td class="num" id="LN1047">1047</td><td class="line"> <span class='comment'>/* Save now */</span></td></tr>
+<tr class="codeline" data-linenumber="1048"><td class="num" id="LN1048">1048</td><td class="line"> terminal_profile_save (profile);</td></tr>
+<tr class="codeline" data-linenumber="1049"><td class="num" id="LN1049">1049</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1050"><td class="num" id="LN1050">1050</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1051"><td class="num" id="LN1051">1051</td><td class="line"> _terminal_profile_forget (profile);</td></tr>
+<tr class="codeline" data-linenumber="1052"><td class="num" id="LN1052">1052</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1053"><td class="num" id="LN1053">1053</td><td class="line"> g_object_unref (priv-&gt;settings);</td></tr>
+<tr class="codeline" data-linenumber="1054"><td class="num" id="LN1054">1054</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1055"><td class="num" id="LN1055">1055</td><td class="line"> g_free (priv-&gt;profile_dir);</td></tr>
+<tr class="codeline" data-linenumber="1056"><td class="num" id="LN1056">1056</td><td class="line"> g_free (priv-&gt;locked);</td></tr>
+<tr class="codeline" data-linenumber="1057"><td class="num" id="LN1057">1057</td><td class="line"> g_value_array_free (priv-&gt;properties);</td></tr>
+<tr class="codeline" data-linenumber="1058"><td class="num" id="LN1058">1058</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1059"><td class="num" id="LN1059">1059</td><td class="line"> <span class='macro'>G_OBJECT_CLASS (terminal_profile_parent_class)<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((terminal_profile_parent_class)), (((GType) ((20) &lt;&lt;<br> (2))))))))</span></span>-&gt;finalize (object);</td></tr>
+<tr class="codeline" data-linenumber="1060"><td class="num" id="LN1060">1060</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1061"><td class="num" id="LN1061">1061</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1062"><td class="num" id="LN1062">1062</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1063"><td class="num" id="LN1063">1063</td><td class="line">terminal_profile_get_property (GObject *object,</td></tr>
+<tr class="codeline" data-linenumber="1064"><td class="num" id="LN1064">1064</td><td class="line"> guint prop_id,</td></tr>
+<tr class="codeline" data-linenumber="1065"><td class="num" id="LN1065">1065</td><td class="line"> GValue *value,</td></tr>
+<tr class="codeline" data-linenumber="1066"><td class="num" id="LN1066">1066</td><td class="line"> GParamSpec *pspec)</td></tr>
+<tr class="codeline" data-linenumber="1067"><td class="num" id="LN1067">1067</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1068"><td class="num" id="LN1068">1068</td><td class="line"> TerminalProfile *profile = <span class='macro'>TERMINAL_PROFILE (object)<span class='macro_popup'>((((TerminalProfile*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((object)), ((terminal_profile_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1069"><td class="num" id="LN1069">1069</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1070"><td class="num" id="LN1070">1070</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1071"><td class="num" id="LN1071">1071</td><td class="line"> <span class='keyword'>if</span> (prop_id == 0 || prop_id &gt;= LAST_PROP)</td></tr>
+<tr class="codeline" data-linenumber="1072"><td class="num" id="LN1072">1072</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1073"><td class="num" id="LN1073">1073</td><td class="line"> <span class='macro'>G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec)<span class='macro_popup'>do { GObject *_glib__object = (GObject*) ((object)); GParamSpec<br> *_glib__pspec = (GParamSpec*) ((pspec)); guint _glib__property_id<br> = ((prop_id)); g_warning ("%s:%d: invalid %s id %u for \"%s\" of type '%s' in '%s'"<br>, "terminal-profile.c", 1073, ("property"), _glib__property_id<br>, _glib__pspec-&gt;name, g_type_name ((((((GTypeClass*) (((GTypeInstance<br>*) (_glib__pspec))-&gt;g_class))-&gt;g_type)))), (g_type_name<br> ((((((GTypeClass*) (((GTypeInstance*) (_glib__object))-&gt;g_class<br>))-&gt;g_type)))))); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1074"><td class="num" id="LN1074">1074</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1075"><td class="num" id="LN1075">1075</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1076"><td class="num" id="LN1076">1076</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1077"><td class="num" id="LN1077">1077</td><td class="line"> <span class='comment'>/* Note: When adding things here, do the same in get_prop_value_from_prop_name! */</span></td></tr>
+<tr class="codeline" data-linenumber="1078"><td class="num" id="LN1078">1078</td><td class="line"> <span class='keyword'>switch</span> (prop_id)</td></tr>
+<tr class="codeline" data-linenumber="1079"><td class="num" id="LN1079">1079</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1080"><td class="num" id="LN1080">1080</td><td class="line"> <span class='keyword'>case</span> PROP_BACKGROUND_IMAGE:</td></tr>
+<tr class="codeline" data-linenumber="1081"><td class="num" id="LN1081">1081</td><td class="line"> ensure_pixbuf_property (profile, PROP_BACKGROUND_IMAGE_FILE, PROP_BACKGROUND_IMAGE, &amp;priv-&gt;background_load_failed);</td></tr>
+<tr class="codeline" data-linenumber="1082"><td class="num" id="LN1082">1082</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1083"><td class="num" id="LN1083">1083</td><td class="line"> <span class='keyword'>default</span>:</td></tr>
+<tr class="codeline" data-linenumber="1084"><td class="num" id="LN1084">1084</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1085"><td class="num" id="LN1085">1085</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1086"><td class="num" id="LN1086">1086</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1087"><td class="num" id="LN1087">1087</td><td class="line"> g_value_copy (g_value_array_get_nth (priv-&gt;properties, prop_id), value);</td></tr>
+<tr class="codeline" data-linenumber="1088"><td class="num" id="LN1088">1088</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1089"><td class="num" id="LN1089">1089</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1090"><td class="num" id="LN1090">1090</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1091"><td class="num" id="LN1091">1091</td><td class="line">terminal_profile_set_property (GObject *object,</td></tr>
+<tr class="codeline" data-linenumber="1092"><td class="num" id="LN1092">1092</td><td class="line"> guint prop_id,</td></tr>
+<tr class="codeline" data-linenumber="1093"><td class="num" id="LN1093">1093</td><td class="line"> <span class='keyword'>const</span> GValue *value,</td></tr>
+<tr class="codeline" data-linenumber="1094"><td class="num" id="LN1094">1094</td><td class="line"> GParamSpec *pspec)</td></tr>
+<tr class="codeline" data-linenumber="1095"><td class="num" id="LN1095">1095</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1096"><td class="num" id="LN1096">1096</td><td class="line"> TerminalProfile *profile = <span class='macro'>TERMINAL_PROFILE (object)<span class='macro_popup'>((((TerminalProfile*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((object)), ((terminal_profile_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1097"><td class="num" id="LN1097">1097</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1098"><td class="num" id="LN1098">1098</td><td class="line"> GValue *prop_value;</td></tr>
+<tr class="codeline" data-linenumber="1099"><td class="num" id="LN1099">1099</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1100"><td class="num" id="LN1100">1100</td><td class="line"> <span class='keyword'>if</span> (prop_id == 0 || prop_id &gt;= LAST_PROP)</td></tr>
+<tr class="codeline" data-linenumber="1101"><td class="num" id="LN1101">1101</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1102"><td class="num" id="LN1102">1102</td><td class="line"> <span class='macro'>G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec)<span class='macro_popup'>do { GObject *_glib__object = (GObject*) ((object)); GParamSpec<br> *_glib__pspec = (GParamSpec*) ((pspec)); guint _glib__property_id<br> = ((prop_id)); g_warning ("%s:%d: invalid %s id %u for \"%s\" of type '%s' in '%s'"<br>, "terminal-profile.c", 1102, ("property"), _glib__property_id<br>, _glib__pspec-&gt;name, g_type_name ((((((GTypeClass*) (((GTypeInstance<br>*) (_glib__pspec))-&gt;g_class))-&gt;g_type)))), (g_type_name<br> ((((((GTypeClass*) (((GTypeInstance*) (_glib__object))-&gt;g_class<br>))-&gt;g_type)))))); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1103"><td class="num" id="LN1103">1103</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1104"><td class="num" id="LN1104">1104</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1105"><td class="num" id="LN1105">1105</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1106"><td class="num" id="LN1106">1106</td><td class="line"> prop_value = g_value_array_get_nth (priv-&gt;properties, prop_id);</td></tr>
+<tr class="codeline" data-linenumber="1107"><td class="num" id="LN1107">1107</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1108"><td class="num" id="LN1108">1108</td><td class="line"> <span class='comment'>/* Preprocessing */</span></td></tr>
+<tr class="codeline" data-linenumber="1109"><td class="num" id="LN1109">1109</td><td class="line"> <span class='keyword'>switch</span> (prop_id)</td></tr>
+<tr class="codeline" data-linenumber="1110"><td class="num" id="LN1110">1110</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1111"><td class="num" id="LN1111">1111</td><td class="line"><span class='directive'>#if 0</span></td></tr>
+<tr class="codeline" data-linenumber="1112"><td class="num" id="LN1112">1112</td><td class="line"> <span class='keyword'>case</span> PROP_FONT:</td></tr>
+<tr class="codeline" data-linenumber="1113"><td class="num" id="LN1113">1113</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1114"><td class="num" id="LN1114">1114</td><td class="line"> PangoFontDescription *font_desc, *new_font_desc;</td></tr>
+<tr class="codeline" data-linenumber="1115"><td class="num" id="LN1115">1115</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1116"><td class="num" id="LN1116">1116</td><td class="line"> font_desc = g_value_get_boxed (prop_value);</td></tr>
+<tr class="codeline" data-linenumber="1117"><td class="num" id="LN1117">1117</td><td class="line"> new_font_desc = g_value_get_boxed (value);</td></tr>
+<tr class="codeline" data-linenumber="1118"><td class="num" id="LN1118">1118</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1119"><td class="num" id="LN1119">1119</td><td class="line"> <span class='keyword'>if</span> (font_desc &amp;&amp; new_font_desc)</td></tr>
+<tr class="codeline" data-linenumber="1120"><td class="num" id="LN1120">1120</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1121"><td class="num" id="LN1121">1121</td><td class="line"> <span class='comment'>/* Merge in case the new string isn't complete enough to load a font */</span></td></tr>
+<tr class="codeline" data-linenumber="1122"><td class="num" id="LN1122">1122</td><td class="line"> pango_font_description_merge (font_desc, new_font_desc, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1123"><td class="num" id="LN1123">1123</td><td class="line"> pango_font_description_free (new_font_desc);</td></tr>
+<tr class="codeline" data-linenumber="1124"><td class="num" id="LN1124">1124</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1125"><td class="num" id="LN1125">1125</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1126"><td class="num" id="LN1126">1126</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1127"><td class="num" id="LN1127">1127</td><td class="line"> <span class='comment'>/* fall-through */</span></td></tr>
+<tr class="codeline" data-linenumber="1128"><td class="num" id="LN1128">1128</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1129"><td class="num" id="LN1129">1129</td><td class="line"><span class='directive'>#endif</span></td></tr>
+<tr class="codeline" data-linenumber="1130"><td class="num" id="LN1130">1130</td><td class="line"> <span class='keyword'>default</span>:</td></tr>
+<tr class="codeline" data-linenumber="1131"><td class="num" id="LN1131">1131</td><td class="line"> g_value_copy (value, prop_value);</td></tr>
+<tr class="codeline" data-linenumber="1132"><td class="num" id="LN1132">1132</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1133"><td class="num" id="LN1133">1133</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1134"><td class="num" id="LN1134">1134</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1135"><td class="num" id="LN1135">1135</td><td class="line"> <span class='comment'>/* Postprocessing */</span></td></tr>
+<tr class="codeline" data-linenumber="1136"><td class="num" id="LN1136">1136</td><td class="line"> <span class='keyword'>switch</span> (prop_id)</td></tr>
+<tr class="codeline" data-linenumber="1137"><td class="num" id="LN1137">1137</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1138"><td class="num" id="LN1138">1138</td><td class="line"> <span class='keyword'>case</span> PROP_NAME:</td></tr>
+<tr class="codeline" data-linenumber="1139"><td class="num" id="LN1139">1139</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1140"><td class="num" id="LN1140">1140</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *name = g_value_get_string (value);</td></tr>
+<tr class="codeline" data-linenumber="1141"><td class="num" id="LN1141">1141</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1142"><td class="num" id="LN1142">1142</td><td class="line"> <span class='macro'>g_assert (name != NULL)<span class='macro_popup'>do { if (name != ((void*)0)) ; else g_assertion_message_expr (<br>((gchar*) 0), "terminal-profile.c", 1142, ((const char*) (__func__<br>)), "name != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1143"><td class="num" id="LN1143">1143</td><td class="line"> priv-&gt;profile_dir = <span class='macro'>g_strdup (name)<span class='macro_popup'>g_strdup_inline (name)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1144"><td class="num" id="LN1144">1144</td><td class="line"> <span class='keyword'>if</span> (priv-&gt;settings != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>) {</td></tr>
+<tr class="codeline" data-linenumber="1145"><td class="num" id="LN1145">1145</td><td class="line"> gchar *concat;</td></tr>
+<tr class="codeline" data-linenumber="1146"><td class="num" id="LN1146">1146</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (priv-&gt;settings,<span class='macro_popup'>g_signal_handlers_disconnect_matched ((priv-&gt;settings), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_profile_gsettings_notify_cb))), (<br>profile))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1147"><td class="num" id="LN1147">1147</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_profile_gsettings_notify_cb),<span class='macro_popup'>g_signal_handlers_disconnect_matched ((priv-&gt;settings), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_profile_gsettings_notify_cb))), (<br>profile))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1148"><td class="num" id="LN1148">1148</td><td class="line"> <span class='macro'>profile)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((priv-&gt;settings), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_profile_gsettings_notify_cb))), (<br>profile))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1149"><td class="num" id="LN1149">1149</td><td class="line"> g_object_unref (priv-&gt;settings);</td></tr>
+<tr class="codeline" data-linenumber="1150"><td class="num" id="LN1150">1150</td><td class="line"> concat= g_strconcat (<span class='macro'>CONF_PROFILE_PREFIX<span class='macro_popup'>"/org/mate/terminal/profiles/"</span></span>, priv-&gt;profile_dir, <span class='string_literal'>"/"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1151"><td class="num" id="LN1151">1151</td><td class="line"> priv-&gt;settings = g_settings_new_with_path (<span class='macro'>CONF_PROFILE_SCHEMA<span class='macro_popup'>"org.mate.terminal" ".profile"</span></span>, concat);</td></tr>
+<tr class="codeline" data-linenumber="1152"><td class="num" id="LN1152">1152</td><td class="line"> g_free (concat);</td></tr>
+<tr class="codeline" data-linenumber="1153"><td class="num" id="LN1153">1153</td><td class="line"> concat = g_strconcat(<span class='string_literal'>"changed::"</span>, priv-&gt;profile_dir, <span class='string_literal'>"/"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1154"><td class="num" id="LN1154">1154</td><td class="line"> <span class='macro'>g_signal_connect (priv-&gt;settings,<span class='macro_popup'>g_signal_connect_data ((priv-&gt;settings), (concat), (((GCallback<br>) (terminal_profile_gsettings_notify_cb))), (profile), ((void<br>*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1155"><td class="num" id="LN1155">1155</td><td class="line"> <span class='macro'>concat,<span class='macro_popup'>g_signal_connect_data ((priv-&gt;settings), (concat), (((GCallback<br>) (terminal_profile_gsettings_notify_cb))), (profile), ((void<br>*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1156"><td class="num" id="LN1156">1156</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_profile_gsettings_notify_cb),<span class='macro_popup'>g_signal_connect_data ((priv-&gt;settings), (concat), (((GCallback<br>) (terminal_profile_gsettings_notify_cb))), (profile), ((void<br>*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1157"><td class="num" id="LN1157">1157</td><td class="line"> <span class='macro'>profile)<span class='macro_popup'>g_signal_connect_data ((priv-&gt;settings), (concat), (((GCallback<br>) (terminal_profile_gsettings_notify_cb))), (profile), ((void<br>*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1158"><td class="num" id="LN1158">1158</td><td class="line"> g_free (concat);</td></tr>
+<tr class="codeline" data-linenumber="1159"><td class="num" id="LN1159">1159</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1160"><td class="num" id="LN1160">1160</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1161"><td class="num" id="LN1161">1161</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1162"><td class="num" id="LN1162">1162</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1163"><td class="num" id="LN1163">1163</td><td class="line"> <span class='keyword'>case</span> PROP_BACKGROUND_IMAGE_FILE:</td></tr>
+<tr class="codeline" data-linenumber="1164"><td class="num" id="LN1164">1164</td><td class="line"> <span class='comment'>/* Clear the cached image */</span></td></tr>
+<tr class="codeline" data-linenumber="1165"><td class="num" id="LN1165">1165</td><td class="line"> g_value_set_object (g_value_array_get_nth (priv-&gt;properties, PROP_BACKGROUND_IMAGE), <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1166"><td class="num" id="LN1166">1166</td><td class="line"> priv-&gt;background_load_failed = <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1167"><td class="num" id="LN1167">1167</td><td class="line"> g_object_notify (object, <span class='macro'>TERMINAL_PROFILE_BACKGROUND_IMAGE<span class='macro_popup'>"background-image"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1168"><td class="num" id="LN1168">1168</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1169"><td class="num" id="LN1169">1169</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1170"><td class="num" id="LN1170">1170</td><td class="line"> <span class='keyword'>default</span>:</td></tr>
+<tr class="codeline" data-linenumber="1171"><td class="num" id="LN1171">1171</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1172"><td class="num" id="LN1172">1172</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1173"><td class="num" id="LN1173">1173</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1174"><td class="num" id="LN1174">1174</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1175"><td class="num" id="LN1175">1175</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1176"><td class="num" id="LN1176">1176</td><td class="line">terminal_profile_notify (GObject *object,</td></tr>
+<tr class="codeline" data-linenumber="1177"><td class="num" id="LN1177">1177</td><td class="line"> GParamSpec *pspec)</td></tr>
+<tr class="codeline" data-linenumber="1178"><td class="num" id="LN1178">1178</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1179"><td class="num" id="LN1179">1179</td><td class="line"> TerminalProfilePrivate *priv = <span class='macro'>TERMINAL_PROFILE (object)<span class='macro_popup'>((((TerminalProfile*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((object)), ((terminal_profile_get_type ()))))))</span></span>-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1180"><td class="num" id="LN1180">1180</td><td class="line"> <span class='keyword'>void</span> (* notify) (GObject *, GParamSpec *) = <span class='macro'>G_OBJECT_CLASS (terminal_profile_parent_class)<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((terminal_profile_parent_class)), (((GType) ((20) &lt;&lt;<br> (2))))))))</span></span>-&gt;notify;</td></tr>
+<tr class="codeline" data-linenumber="1181"><td class="num" id="LN1181">1181</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1182"><td class="num" id="LN1182">1182</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_PROFILE,<span class='macro_popup'>do { if (0) g_printerr("Property notification for prop %s\n",<br> pspec-&gt;name); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1183"><td class="num" id="LN1183">1183</td><td class="line"> <span class='string_literal'><span class='macro'>"Property notification for prop %s\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("Property notification for prop %s\n",<br> pspec-&gt;name); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1184"><td class="num" id="LN1184">1184</td><td class="line"> <span class='macro'>pspec-&gt;name)<span class='macro_popup'>do { if (0) g_printerr("Property notification for prop %s\n",<br> pspec-&gt;name); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1185"><td class="num" id="LN1185">1185</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1186"><td class="num" id="LN1186">1186</td><td class="line"> <span class='keyword'>if</span> (notify)</td></tr>
+<tr class="codeline" data-linenumber="1187"><td class="num" id="LN1187">1187</td><td class="line"> notify (object, pspec);</td></tr>
+<tr class="codeline" data-linenumber="1188"><td class="num" id="LN1188">1188</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1189"><td class="num" id="LN1189">1189</td><td class="line"> <span class='keyword'>if</span> (pspec-&gt;owner_type == <span class='macro'>TERMINAL_TYPE_PROFILE<span class='macro_popup'>(terminal_profile_get_type ())</span></span> &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="1190"><td class="num" id="LN1190">1190</td><td class="line"> (pspec-&gt;flags &amp; G_PARAM_WRITABLE) &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="1191"><td class="num" id="LN1191">1191</td><td class="line"> g_param_spec_get_qdata (pspec, gsettings_key_quark) != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span> &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="1192"><td class="num" id="LN1192">1192</td><td class="line"> pspec != priv-&gt;gsettings_notification_pspec)</td></tr>
+<tr class="codeline" data-linenumber="1193"><td class="num" id="LN1193">1193</td><td class="line"> terminal_profile_schedule_save (<span class='macro'>TERMINAL_PROFILE (object)<span class='macro_popup'>((((TerminalProfile*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((object)), ((terminal_profile_get_type ()))))))</span></span>, pspec);</td></tr>
+<tr class="codeline" data-linenumber="1194"><td class="num" id="LN1194">1194</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1195"><td class="num" id="LN1195">1195</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1196"><td class="num" id="LN1196">1196</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1197"><td class="num" id="LN1197">1197</td><td class="line">terminal_profile_class_init (TerminalProfileClass *klass)</td></tr>
+<tr class="codeline" data-linenumber="1198"><td class="num" id="LN1198">1198</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1199"><td class="num" id="LN1199">1199</td><td class="line"> GObjectClass *object_class = <span class='macro'>G_OBJECT_CLASS (klass)<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((klass)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1200"><td class="num" id="LN1200">1200</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1201"><td class="num" id="LN1201">1201</td><td class="line"> gsettings_key_quark = g_quark_from_static_string (<span class='string_literal'>"GT::GSettingsKey"</span>);</td></tr>
+<tr class="codeline" data-linenumber="1202"><td class="num" id="LN1202">1202</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1203"><td class="num" id="LN1203">1203</td><td class="line"> object_class-&gt;constructor = terminal_profile_constructor;</td></tr>
+<tr class="codeline" data-linenumber="1204"><td class="num" id="LN1204">1204</td><td class="line"> object_class-&gt;finalize = terminal_profile_finalize;</td></tr>
+<tr class="codeline" data-linenumber="1205"><td class="num" id="LN1205">1205</td><td class="line"> object_class-&gt;get_property = terminal_profile_get_property;</td></tr>
+<tr class="codeline" data-linenumber="1206"><td class="num" id="LN1206">1206</td><td class="line"> object_class-&gt;set_property = terminal_profile_set_property;</td></tr>
+<tr class="codeline" data-linenumber="1207"><td class="num" id="LN1207">1207</td><td class="line"> object_class-&gt;notify = terminal_profile_notify;</td></tr>
+<tr class="codeline" data-linenumber="1208"><td class="num" id="LN1208">1208</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1209"><td class="num" id="LN1209">1209</td><td class="line"> signals[FORGOTTEN] =</td></tr>
+<tr class="codeline" data-linenumber="1210"><td class="num" id="LN1210">1210</td><td class="line"> g_signal_new (<span class='string_literal'>"forgotten"</span>,</td></tr>
+<tr class="codeline" data-linenumber="1211"><td class="num" id="LN1211">1211</td><td class="line"> <span class='macro'>G_OBJECT_CLASS_TYPE (object_class)<span class='macro_popup'>((((GTypeClass*) (object_class))-&gt;g_type))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1212"><td class="num" id="LN1212">1212</td><td class="line"> G_SIGNAL_RUN_LAST,</td></tr>
+<tr class="codeline" data-linenumber="1213"><td class="num" id="LN1213">1213</td><td class="line"> <span class='macro'>G_STRUCT_OFFSET (TerminalProfileClass, forgotten)<span class='macro_popup'>((glong) __builtin_offsetof(TerminalProfileClass, forgotten))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1214"><td class="num" id="LN1214">1214</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1215"><td class="num" id="LN1215">1215</td><td class="line"> g_cclosure_marshal_VOID__VOID,</td></tr>
+<tr class="codeline" data-linenumber="1216"><td class="num" id="LN1216">1216</td><td class="line"> <span class='macro'>G_TYPE_NONE<span class='macro_popup'>((GType) ((1) &lt;&lt; (2)))</span></span>, 0);</td></tr>
+<tr class="codeline" data-linenumber="1217"><td class="num" id="LN1217">1217</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1218"><td class="num" id="LN1218">1218</td><td class="line"> <span class='comment'>/* gsettings_key -&gt; pspec hash */</span></td></tr>
+<tr class="codeline" data-linenumber="1219"><td class="num" id="LN1219">1219</td><td class="line"> klass-&gt;gsettings_keys = g_hash_table_new (g_str_hash, g_str_equal);</td></tr>
+<tr class="codeline" data-linenumber="1220"><td class="num" id="LN1220">1220</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1221"><td class="num" id="LN1221">1221</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PSPEC_STATIC<span class='macro_popup'>(G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)</span></span> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)</span></td></tr>
+<tr class="codeline" data-linenumber="1222"><td class="num" id="LN1222">1222</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1223"><td class="num" id="LN1223">1223</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY(propId, propSpec, propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = propSpec; g_object_class_install_property<br> (object_class, propId, pspec); g_param_spec_set_qdata (pspec<br>, gsettings_key_quark, (gpointer) propGSettings); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) propGSettings, pspec);<br>}</span></span> \</span></td></tr>
+<tr class="codeline" data-linenumber="1224"><td class="num" id="LN1224">1224</td><td class="line"><span class='directive'>{\</span></td></tr>
+<tr class="codeline" data-linenumber="1225"><td class="num" id="LN1225">1225</td><td class="line"> <span class='directive'>GParamSpec *pspec = propSpec;\</span></td></tr>
+<tr class="codeline" data-linenumber="1226"><td class="num" id="LN1226">1226</td><td class="line"> <span class='directive'>g_object_class_install_property (object_class, propId, pspec);\</span></td></tr>
+<tr class="codeline" data-linenumber="1227"><td class="num" id="LN1227">1227</td><td class="line"> <span class='directive'>g_param_spec_set_qdata (pspec, gsettings_key_quark, (gpointer) propGSettings);\</span></td></tr>
+<tr class="codeline" data-linenumber="1228"><td class="num" id="LN1228">1228</td><td class="line"> <span class='directive'>g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) propGSettings, pspec);\</span></td></tr>
+<tr class="codeline" data-linenumber="1229"><td class="num" id="LN1229">1229</td><td class="line"><span class='directive'>}</span></td></tr>
+<tr class="codeline" data-linenumber="1230"><td class="num" id="LN1230">1230</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1231"><td class="num" id="LN1231">1231</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY_OUTER(propId, propSpec)<span class='macro_popup'>{ GParamSpec *pspec = propSpec; g_object_class_install_property<br> (object_class, propId, pspec);}</span></span> \</span></td></tr>
+<tr class="codeline" data-linenumber="1232"><td class="num" id="LN1232">1232</td><td class="line"><span class='directive'>{\</span></td></tr>
+<tr class="codeline" data-linenumber="1233"><td class="num" id="LN1233">1233</td><td class="line"> <span class='directive'>GParamSpec *pspec = propSpec;\</span></td></tr>
+<tr class="codeline" data-linenumber="1234"><td class="num" id="LN1234">1234</td><td class="line"> <span class='directive'>g_object_class_install_property (object_class, propId, pspec);\</span></td></tr>
+<tr class="codeline" data-linenumber="1235"><td class="num" id="LN1235">1235</td><td class="line"><span class='directive'>}</span></td></tr>
+<tr class="codeline" data-linenumber="1236"><td class="num" id="LN1236">1236</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1237"><td class="num" id="LN1237">1237</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN(prop, propDefault, propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean (TERMINAL_PROFILE_prop<br>, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_prop, pspec); g_param_spec_set_qdata (pspec<br>, gsettings_key_quark, (gpointer) propGSettings); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) propGSettings, pspec);<br>}</span></span> \</span></td></tr>
+<tr class="codeline" data-linenumber="1238"><td class="num" id="LN1238">1238</td><td class="line"> <span class='directive'><span class='macro'>TERMINAL_PROFILE_PROPERTY (PROP_##prop,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1239"><td class="num" id="LN1239">1239</td><td class="line"> <span class='directive'><span class='macro'>g_param_spec_boolean (TERMINAL_PROFILE_##prop, NULL, NULL,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1240"><td class="num" id="LN1240">1240</td><td class="line"> <span class='directive'><span class='macro'>propDefault,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1241"><td class="num" id="LN1241">1241</td><td class="line"> <span class='directive'><span class='macro'>G_PARAM_READWRITE | TERMINAL_PROFILE_PSPEC_STATIC),\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1242"><td class="num" id="LN1242">1242</td><td class="line"> <span class='directive'><span class='macro'>propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1243"><td class="num" id="LN1243">1243</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1244"><td class="num" id="LN1244">1244</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOXED(prop, propType, propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boxed (TERMINAL_PROFILE_prop<br>, ((void*)0), ((void*)0), propType, G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_prop, pspec); g_param_spec_set_qdata (pspec<br>, gsettings_key_quark, (gpointer) propGSettings); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) propGSettings, pspec);<br>}</span></span>\</span></td></tr>
+<tr class="codeline" data-linenumber="1245"><td class="num" id="LN1245">1245</td><td class="line"> <span class='directive'><span class='macro'>TERMINAL_PROFILE_PROPERTY (PROP_##prop,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boxed (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propType, G_PARAM_READWRITE | (<br>G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1246"><td class="num" id="LN1246">1246</td><td class="line"> <span class='directive'><span class='macro'>g_param_spec_boxed (TERMINAL_PROFILE_##prop, NULL, NULL,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boxed (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propType, G_PARAM_READWRITE | (<br>G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1247"><td class="num" id="LN1247">1247</td><td class="line"> <span class='directive'><span class='macro'>propType,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boxed (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propType, G_PARAM_READWRITE | (<br>G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1248"><td class="num" id="LN1248">1248</td><td class="line"> <span class='directive'><span class='macro'>G_PARAM_READWRITE | TERMINAL_PROFILE_PSPEC_STATIC),\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boxed (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propType, G_PARAM_READWRITE | (<br>G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1249"><td class="num" id="LN1249">1249</td><td class="line"> <span class='directive'><span class='macro'>propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boxed (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propType, G_PARAM_READWRITE | (<br>G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1250"><td class="num" id="LN1250">1250</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1251"><td class="num" id="LN1251">1251</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY_DOUBLE(prop, propMin, propMax, propDefault, propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_double (TERMINAL_PROFILE_prop<br>, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_prop,<br> pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark, (<br>gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span>\</span></td></tr>
+<tr class="codeline" data-linenumber="1252"><td class="num" id="LN1252">1252</td><td class="line"> <span class='directive'><span class='macro'>TERMINAL_PROFILE_PROPERTY (PROP_##prop,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_double (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1253"><td class="num" id="LN1253">1253</td><td class="line"> <span class='directive'><span class='macro'>g_param_spec_double (TERMINAL_PROFILE_##prop, NULL, NULL,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_double (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1254"><td class="num" id="LN1254">1254</td><td class="line"> <span class='directive'><span class='macro'>propMin, propMax, propDefault,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_double (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1255"><td class="num" id="LN1255">1255</td><td class="line"> <span class='directive'><span class='macro'>G_PARAM_READWRITE | TERMINAL_PROFILE_PSPEC_STATIC),\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_double (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1256"><td class="num" id="LN1256">1256</td><td class="line"> <span class='directive'><span class='macro'>propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_double (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1257"><td class="num" id="LN1257">1257</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1258"><td class="num" id="LN1258">1258</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY_ENUM(prop, propType, propDefault, propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum (TERMINAL_PROFILE_prop<br>, ((void*)0), ((void*)0), propType, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_prop,<br> pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark, (<br>gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span>\</span></td></tr>
+<tr class="codeline" data-linenumber="1259"><td class="num" id="LN1259">1259</td><td class="line"> <span class='directive'><span class='macro'>TERMINAL_PROFILE_PROPERTY (PROP_##prop,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum (TERMINAL_PROFILE_##prop<br>, ((void*)0), ((void*)0), propType, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1260"><td class="num" id="LN1260">1260</td><td class="line"> <span class='directive'><span class='macro'>g_param_spec_enum (TERMINAL_PROFILE_##prop, NULL, NULL,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum (TERMINAL_PROFILE_##prop<br>, ((void*)0), ((void*)0), propType, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1261"><td class="num" id="LN1261">1261</td><td class="line"> <span class='directive'><span class='macro'>propType, propDefault,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum (TERMINAL_PROFILE_##prop<br>, ((void*)0), ((void*)0), propType, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1262"><td class="num" id="LN1262">1262</td><td class="line"> <span class='directive'><span class='macro'>G_PARAM_READWRITE | TERMINAL_PROFILE_PSPEC_STATIC),\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum (TERMINAL_PROFILE_##prop<br>, ((void*)0), ((void*)0), propType, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1263"><td class="num" id="LN1263">1263</td><td class="line"> <span class='directive'><span class='macro'>propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum (TERMINAL_PROFILE_##prop<br>, ((void*)0), ((void*)0), propType, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1264"><td class="num" id="LN1264">1264</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1265"><td class="num" id="LN1265">1265</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY_INT(prop, propMin, propMax, propDefault, propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_int (TERMINAL_PROFILE_prop<br>, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_prop,<br> pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark, (<br>gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span>\</span></td></tr>
+<tr class="codeline" data-linenumber="1266"><td class="num" id="LN1266">1266</td><td class="line"> <span class='directive'><span class='macro'>TERMINAL_PROFILE_PROPERTY (PROP_##prop,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_int (TERMINAL_PROFILE_##prop<br>, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1267"><td class="num" id="LN1267">1267</td><td class="line"> <span class='directive'><span class='macro'>g_param_spec_int (TERMINAL_PROFILE_##prop, NULL, NULL,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_int (TERMINAL_PROFILE_##prop<br>, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1268"><td class="num" id="LN1268">1268</td><td class="line"> <span class='directive'><span class='macro'>propMin, propMax, propDefault,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_int (TERMINAL_PROFILE_##prop<br>, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1269"><td class="num" id="LN1269">1269</td><td class="line"> <span class='directive'><span class='macro'>G_PARAM_READWRITE | TERMINAL_PROFILE_PSPEC_STATIC),\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_int (TERMINAL_PROFILE_##prop<br>, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1270"><td class="num" id="LN1270">1270</td><td class="line"> <span class='directive'><span class='macro'>propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_int (TERMINAL_PROFILE_##prop<br>, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1271"><td class="num" id="LN1271">1271</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1272"><td class="num" id="LN1272">1272</td><td class="line"> <span class='comment'>/* these are all read-only */</span></td></tr>
+<tr class="codeline" data-linenumber="1273"><td class="num" id="LN1273">1273</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY_OBJECT(prop, propType)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_object (TERMINAL_PROFILE_prop<br>, ((void*)0), ((void*)0), propType, G_PARAM_READABLE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_prop, pspec);}</span></span>\</span></td></tr>
+<tr class="codeline" data-linenumber="1274"><td class="num" id="LN1274">1274</td><td class="line"> <span class='directive'><span class='macro'>TERMINAL_PROFILE_PROPERTY_OUTER (PROP_##prop,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_object (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propType, G_PARAM_READABLE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_##prop, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1275"><td class="num" id="LN1275">1275</td><td class="line"> <span class='directive'><span class='macro'>g_param_spec_object (TERMINAL_PROFILE_##prop, NULL, NULL,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_object (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propType, G_PARAM_READABLE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_##prop, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1276"><td class="num" id="LN1276">1276</td><td class="line"> <span class='directive'><span class='macro'>propType,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_object (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propType, G_PARAM_READABLE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_##prop, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1277"><td class="num" id="LN1277">1277</td><td class="line"> <span class='directive'><span class='macro'>G_PARAM_READABLE | TERMINAL_PROFILE_PSPEC_STATIC))<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_object (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propType, G_PARAM_READABLE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_##prop, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1278"><td class="num" id="LN1278">1278</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1279"><td class="num" id="LN1279">1279</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY_STRING(prop, propDefault, propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_prop<br>, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_prop, pspec); g_param_spec_set_qdata (pspec<br>, gsettings_key_quark, (gpointer) propGSettings); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) propGSettings, pspec);<br>}</span></span>\</span></td></tr>
+<tr class="codeline" data-linenumber="1280"><td class="num" id="LN1280">1280</td><td class="line"> <span class='directive'><span class='macro'>TERMINAL_PROFILE_PROPERTY (PROP_##prop,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1281"><td class="num" id="LN1281">1281</td><td class="line"> <span class='directive'><span class='macro'>g_param_spec_string (TERMINAL_PROFILE_##prop, NULL, NULL,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1282"><td class="num" id="LN1282">1282</td><td class="line"> <span class='directive'><span class='macro'>propDefault,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1283"><td class="num" id="LN1283">1283</td><td class="line"> <span class='directive'><span class='macro'>G_PARAM_READWRITE | TERMINAL_PROFILE_PSPEC_STATIC),\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1284"><td class="num" id="LN1284">1284</td><td class="line"> <span class='directive'><span class='macro'>propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1285"><td class="num" id="LN1285">1285</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1286"><td class="num" id="LN1286">1286</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY_STRING_CO(prop, propDefault)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_prop<br>, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_prop,<br> pspec);}</span></span>\</span></td></tr>
+<tr class="codeline" data-linenumber="1287"><td class="num" id="LN1287">1287</td><td class="line"> <span class='directive'><span class='macro'>TERMINAL_PROFILE_PROPERTY_OUTER (PROP_##prop,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE |<br> G_PARAM_CONSTRUCT_ONLY | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1288"><td class="num" id="LN1288">1288</td><td class="line"> <span class='directive'><span class='macro'>g_param_spec_string (TERMINAL_PROFILE_##prop, NULL, NULL,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE |<br> G_PARAM_CONSTRUCT_ONLY | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1289"><td class="num" id="LN1289">1289</td><td class="line"> <span class='directive'><span class='macro'>propDefault,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE |<br> G_PARAM_CONSTRUCT_ONLY | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1290"><td class="num" id="LN1290">1290</td><td class="line"> <span class='directive'><span class='macro'>G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | TERMINAL_PROFILE_PSPEC_STATIC))<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE |<br> G_PARAM_CONSTRUCT_ONLY | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1291"><td class="num" id="LN1291">1291</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1292"><td class="num" id="LN1292">1292</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY_VALUE_ARRAY_BOXED(prop, propElementName, propElementType, propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_value_array (TERMINAL_PROFILE_prop<br>, ((void*)0), ((void*)0), g_param_spec_boxed (propElementName<br>, ((void*)0), ((void*)0), propElementType, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_prop, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span>\</span></td></tr>
+<tr class="codeline" data-linenumber="1293"><td class="num" id="LN1293">1293</td><td class="line"> <span class='directive'><span class='macro'>TERMINAL_PROFILE_PROPERTY (PROP_##prop,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_value_array (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), g_param_spec_boxed (propElementName<br>, ((void*)0), ((void*)0), propElementType, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1294"><td class="num" id="LN1294">1294</td><td class="line"> <span class='directive'><span class='macro'>g_param_spec_value_array (TERMINAL_PROFILE_##prop, NULL, NULL,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_value_array (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), g_param_spec_boxed (propElementName<br>, ((void*)0), ((void*)0), propElementType, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1295"><td class="num" id="LN1295">1295</td><td class="line"> <span class='directive'><span class='macro'>g_param_spec_boxed (propElementName, NULL, NULL,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_value_array (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), g_param_spec_boxed (propElementName<br>, ((void*)0), ((void*)0), propElementType, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1296"><td class="num" id="LN1296">1296</td><td class="line"> <span class='directive'><span class='macro'>propElementType, \<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_value_array (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), g_param_spec_boxed (propElementName<br>, ((void*)0), ((void*)0), propElementType, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1297"><td class="num" id="LN1297">1297</td><td class="line"> <span class='directive'><span class='macro'>G_PARAM_READWRITE | TERMINAL_PROFILE_PSPEC_STATIC),\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_value_array (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), g_param_spec_boxed (propElementName<br>, ((void*)0), ((void*)0), propElementType, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1298"><td class="num" id="LN1298">1298</td><td class="line"> <span class='directive'><span class='macro'>G_PARAM_READWRITE | TERMINAL_PROFILE_PSPEC_STATIC),\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_value_array (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), g_param_spec_boxed (propElementName<br>, ((void*)0), ((void*)0), propElementType, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1299"><td class="num" id="LN1299">1299</td><td class="line"> <span class='directive'><span class='macro'>propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_value_array (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), g_param_spec_boxed (propElementName<br>, ((void*)0), ((void*)0), propElementType, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1300"><td class="num" id="LN1300">1300</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1301"><td class="num" id="LN1301">1301</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (ALLOW_BOLD, DEFAULT_ALLOW_BOLD, KEY_ALLOW_BOLD)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("allow-bold", ((void<br>*)0), ((void*)0), ((!(0))), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_ALLOW_BOLD, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "allow-bold"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "allow-bold", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1302"><td class="num" id="LN1302">1302</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (BOLD_COLOR_SAME_AS_FG, DEFAULT_BOLD_COLOR_SAME_AS_FG, KEY_BOLD_COLOR_SAME_AS_FG)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("bold-color-same-as-fg"<br>, ((void*)0), ((void*)0), ((!(0))), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_BOLD_COLOR_SAME_AS_FG, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "bold-color-same-as-fg"<br>); g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "bold-color-same-as-fg"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1303"><td class="num" id="LN1303">1303</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (DEFAULT_SHOW_MENUBAR, DEFAULT_DEFAULT_SHOW_MENUBAR, KEY_DEFAULT_SHOW_MENUBAR)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("default-show-menubar"<br>, ((void*)0), ((void*)0), ((!(0))), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_DEFAULT_SHOW_MENUBAR, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "default-show-menubar"<br>); g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "default-show-menubar"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1304"><td class="num" id="LN1304">1304</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (LOGIN_SHELL, DEFAULT_LOGIN_SHELL, KEY_LOGIN_SHELL)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("login-shell", ((<br>void*)0), ((void*)0), ((0)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_LOGIN_SHELL, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "login-shell"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "login-shell", pspec);<br>}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1305"><td class="num" id="LN1305">1305</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (SCROLL_BACKGROUND, DEFAULT_SCROLL_BACKGROUND, KEY_SCROLL_BACKGROUND)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("scroll-background"<br>, ((void*)0), ((void*)0), ((!(0))), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_SCROLL_BACKGROUND, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "scroll-background")<br>; g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "scroll-background"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1306"><td class="num" id="LN1306">1306</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (SCROLLBACK_UNLIMITED, DEFAULT_SCROLLBACK_UNLIMITED, KEY_SCROLLBACK_UNLIMITED)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("scrollback-unlimited"<br>, ((void*)0), ((void*)0), ((0)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_SCROLLBACK_UNLIMITED, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "scrollback-unlimited"<br>); g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "scrollback-unlimited"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1307"><td class="num" id="LN1307">1307</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (SCROLL_ON_KEYSTROKE, DEFAULT_SCROLL_ON_KEYSTROKE, KEY_SCROLL_ON_KEYSTROKE)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("scroll-on-keystroke"<br>, ((void*)0), ((void*)0), ((!(0))), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_SCROLL_ON_KEYSTROKE, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "scroll-on-keystroke"<br>); g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "scroll-on-keystroke"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1308"><td class="num" id="LN1308">1308</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (SCROLL_ON_OUTPUT, DEFAULT_SCROLL_ON_OUTPUT, KEY_SCROLL_ON_OUTPUT)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("scroll-on-output"<br>, ((void*)0), ((void*)0), ((0)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_SCROLL_ON_OUTPUT, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "scroll-on-output");<br> g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "scroll-on-output"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1309"><td class="num" id="LN1309">1309</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (SILENT_BELL, DEFAULT_SILENT_BELL, KEY_SILENT_BELL)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("silent-bell", ((<br>void*)0), ((void*)0), ((0)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_SILENT_BELL, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "silent-bell"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "silent-bell", pspec);<br>}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1310"><td class="num" id="LN1310">1310</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (COPY_SELECTION, DEFAULT_COPY_SELECTION, KEY_COPY_SELECTION)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("copy-selection",<br> ((void*)0), ((void*)0), ((0)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_COPY_SELECTION, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "copy-selection"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "copy-selection", pspec<br>);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1311"><td class="num" id="LN1311">1311</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (USE_CUSTOM_COMMAND, DEFAULT_USE_CUSTOM_COMMAND, KEY_USE_CUSTOM_COMMAND)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("use-custom-command"<br>, ((void*)0), ((void*)0), ((0)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_USE_CUSTOM_COMMAND, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "use-custom-command"<br>); g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "use-custom-command"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1312"><td class="num" id="LN1312">1312</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (USE_CUSTOM_DEFAULT_SIZE, DEFAULT_USE_CUSTOM_DEFAULT_SIZE, KEY_USE_CUSTOM_DEFAULT_SIZE)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("use-custom-default-size"<br>, ((void*)0), ((void*)0), ((0)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_USE_CUSTOM_DEFAULT_SIZE, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "use-custom-default-size"<br>); g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "use-custom-default-size"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1313"><td class="num" id="LN1313">1313</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (USE_SKEY, DEFAULT_USE_SKEY, KEY_USE_SKEY)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("use-skey", ((void<br>*)0), ((void*)0), ((!(0))), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_USE_SKEY, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "use-skey"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "use-skey", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1314"><td class="num" id="LN1314">1314</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (USE_URLS, DEFAULT_USE_URLS, KEY_USE_URLS)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("use-urls", ((void<br>*)0), ((void*)0), ((!(0))), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_USE_URLS, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "use-urls"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "use-urls", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1315"><td class="num" id="LN1315">1315</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (USE_SYSTEM_FONT, DEFAULT_USE_SYSTEM_FONT, KEY_USE_SYSTEM_FONT)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("use-system-font"<br>, ((void*)0), ((void*)0), ((!(0))), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_USE_SYSTEM_FONT, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "use-system-font"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "use-system-font", pspec<br>);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1316"><td class="num" id="LN1316">1316</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (USE_THEME_COLORS, DEFAULT_USE_THEME_COLORS, KEY_USE_THEME_COLORS)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("use-theme-colors"<br>, ((void*)0), ((void*)0), ((!(0))), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_USE_THEME_COLORS, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "use-theme-colors");<br> g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "use-theme-colors"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1317"><td class="num" id="LN1317">1317</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1318"><td class="num" id="LN1318">1318</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOXED (BACKGROUND_COLOR, GDK_TYPE_RGBA, KEY_BACKGROUND_COLOR)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boxed ("background-color",<br> ((void*)0), ((void*)0), (gdk_rgba_get_type ()), G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_BACKGROUND_COLOR<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) "background-color"); g_hash_table_insert (klass-&gt;<br>gsettings_keys, (gpointer) "background-color", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1319"><td class="num" id="LN1319">1319</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOXED (BOLD_COLOR, GDK_TYPE_RGBA, KEY_BOLD_COLOR)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boxed ("bold-color", ((void<br>*)0), ((void*)0), (gdk_rgba_get_type ()), G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_BOLD_COLOR<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) "bold-color"); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) "bold-color", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1320"><td class="num" id="LN1320">1320</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOXED (FONT, PANGO_TYPE_FONT_DESCRIPTION, KEY_FONT)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boxed ("font", ((void*)0),<br> ((void*)0), (pango_font_description_get_type ()), G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_FONT,<br> pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark, (<br>gpointer) "font"); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) "font", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1321"><td class="num" id="LN1321">1321</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOXED (FOREGROUND_COLOR, GDK_TYPE_RGBA, KEY_FOREGROUND_COLOR)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boxed ("foreground-color",<br> ((void*)0), ((void*)0), (gdk_rgba_get_type ()), G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_FOREGROUND_COLOR<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) "foreground-color"); g_hash_table_insert (klass-&gt;<br>gsettings_keys, (gpointer) "foreground-color", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1322"><td class="num" id="LN1322">1322</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1323"><td class="num" id="LN1323">1323</td><td class="line"> <span class='comment'>/* 0.0 = normal bg, 1.0 = all black bg, 0.5 = half darkened */</span></td></tr>
+<tr class="codeline" data-linenumber="1324"><td class="num" id="LN1324">1324</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_DOUBLE (BACKGROUND_DARKNESS, 0.0, 1.0, DEFAULT_BACKGROUND_DARKNESS, KEY_BACKGROUND_DARKNESS)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_double ("background-darkness"<br>, ((void*)0), ((void*)0), 0.0, 1.0, (0.5), G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_BACKGROUND_DARKNESS<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) "background-darkness"); g_hash_table_insert (klass<br>-&gt;gsettings_keys, (gpointer) "background-darkness", pspec)<br>;}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1325"><td class="num" id="LN1325">1325</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1326"><td class="num" id="LN1326">1326</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_ENUM (BACKGROUND_TYPE, TERMINAL_TYPE_BACKGROUND_TYPE, DEFAULT_BACKGROUND_TYPE, KEY_BACKGROUND_TYPE)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum ("background-type", (<br>(void*)0), ((void*)0), (terminal_background_type_get_type ())<br>, (TERMINAL_BACKGROUND_SOLID), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_BACKGROUND_TYPE, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "background-type"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "background-type", pspec<br>);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1327"><td class="num" id="LN1327">1327</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_ENUM (BACKSPACE_BINDING, VTE_TYPE_ERASE_BINDING, DEFAULT_BACKSPACE_BINDING, KEY_BACKSPACE_BINDING)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum ("backspace-binding",<br> ((void*)0), ((void*)0), (vte_erase_binding_get_type ()), (VTE_ERASE_ASCII_DELETE<br>), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_BACKSPACE_BINDING, pspec); g_param_spec_set_qdata (pspec<br>, gsettings_key_quark, (gpointer) "backspace-binding"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "backspace-binding", pspec<br>);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1328"><td class="num" id="LN1328">1328</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_ENUM (CURSOR_BLINK_MODE, VTE_TYPE_CURSOR_BLINK_MODE, DEFAULT_CURSOR_BLINK_MODE, KEY_CURSOR_BLINK_MODE)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum ("cursor-blink-mode",<br> ((void*)0), ((void*)0), (vte_cursor_blink_mode_get_type ()),<br> (VTE_CURSOR_BLINK_SYSTEM), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_CURSOR_BLINK_MODE, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "cursor-blink-mode")<br>; g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "cursor-blink-mode"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1329"><td class="num" id="LN1329">1329</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_ENUM (CURSOR_SHAPE, VTE_TYPE_CURSOR_SHAPE, DEFAULT_CURSOR_SHAPE, KEY_CURSOR_SHAPE)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum ("cursor-shape", ((void<br>*)0), ((void*)0), (vte_cursor_shape_get_type ()), (VTE_CURSOR_SHAPE_BLOCK<br>), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_CURSOR_SHAPE, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) "cursor-shape"); g_hash_table_insert (klass-&gt;<br>gsettings_keys, (gpointer) "cursor-shape", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1330"><td class="num" id="LN1330">1330</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_ENUM (DELETE_BINDING, VTE_TYPE_ERASE_BINDING, DEFAULT_DELETE_BINDING, KEY_DELETE_BINDING)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum ("delete-binding", ((<br>void*)0), ((void*)0), (vte_erase_binding_get_type ()), (VTE_ERASE_DELETE_SEQUENCE<br>), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_DELETE_BINDING, pspec); g_param_spec_set_qdata (pspec,<br> gsettings_key_quark, (gpointer) "delete-binding"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "delete-binding", pspec<br>);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1331"><td class="num" id="LN1331">1331</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_ENUM (EXIT_ACTION, TERMINAL_TYPE_EXIT_ACTION, DEFAULT_EXIT_ACTION, KEY_EXIT_ACTION)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum ("exit-action", ((void<br>*)0), ((void*)0), (terminal_exit_action_get_type ()), (TERMINAL_EXIT_CLOSE<br>), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_EXIT_ACTION, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) "exit-action"); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) "exit-action", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1332"><td class="num" id="LN1332">1332</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_ENUM (SCROLLBAR_POSITION, TERMINAL_TYPE_SCROLLBAR_POSITION, DEFAULT_SCROLLBAR_POSITION, KEY_SCROLLBAR_POSITION)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum ("scrollbar-position"<br>, ((void*)0), ((void*)0), (terminal_scrollbar_position_get_type<br> ()), (TERMINAL_SCROLLBAR_RIGHT), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_SCROLLBAR_POSITION, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "scrollbar-position"<br>); g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "scrollbar-position"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1333"><td class="num" id="LN1333">1333</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_ENUM (TITLE_MODE, TERMINAL_TYPE_TITLE_MODE, DEFAULT_TITLE_MODE, KEY_TITLE_MODE)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum ("title-mode", ((void<br>*)0), ((void*)0), (terminal_title_mode_get_type ()), (TERMINAL_TITLE_REPLACE<br>), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_TITLE_MODE, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) "title-mode"); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) "title-mode", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1334"><td class="num" id="LN1334">1334</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1335"><td class="num" id="LN1335">1335</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_INT (DEFAULT_SIZE_COLUMNS, 1, 1024, DEFAULT_DEFAULT_SIZE_COLUMNS, KEY_DEFAULT_SIZE_COLUMNS)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_int ("default-size-columns"<br>, ((void*)0), ((void*)0), 1, 1024, (80), G_PARAM_READWRITE | (<br>G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_DEFAULT_SIZE_COLUMNS<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) "default-size-columns"); g_hash_table_insert (klass<br>-&gt;gsettings_keys, (gpointer) "default-size-columns", pspec<br>);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1336"><td class="num" id="LN1336">1336</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_INT (DEFAULT_SIZE_ROWS, 1, 1024, DEFAULT_DEFAULT_SIZE_ROWS, KEY_DEFAULT_SIZE_ROWS)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_int ("default-size-rows", (<br>(void*)0), ((void*)0), 1, 1024, (24), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_DEFAULT_SIZE_ROWS, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "default-size-rows")<br>; g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "default-size-rows"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1337"><td class="num" id="LN1337">1337</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_INT (SCROLLBACK_LINES, 1, G_MAXINT, DEFAULT_SCROLLBACK_LINES, KEY_SCROLLBACK_LINES)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_int ("scrollback-lines", (<br>(void*)0), ((void*)0), 1, 2147483647, (512), G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_SCROLLBACK_LINES<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) "scrollback-lines"); g_hash_table_insert (klass-&gt;<br>gsettings_keys, (gpointer) "scrollback-lines", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1338"><td class="num" id="LN1338">1338</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1339"><td class="num" id="LN1339">1339</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_OBJECT (BACKGROUND_IMAGE, GDK_TYPE_PIXBUF)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_object ("background-image"<br>, ((void*)0), ((void*)0), (gdk_pixbuf_get_type ()), G_PARAM_READABLE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_BACKGROUND_IMAGE<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1340"><td class="num" id="LN1340">1340</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1341"><td class="num" id="LN1341">1341</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_STRING_CO (NAME, DEFAULT_NAME)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string ("name", ((void*)0)<br>, ((void*)0), (((void*)0)), G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_NAME,<br> pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1342"><td class="num" id="LN1342">1342</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1343"><td class="num" id="LN1343">1343</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_STRING (BACKGROUND_IMAGE_FILE, DEFAULT_BACKGROUND_IMAGE_FILE, KEY_BACKGROUND_IMAGE_FILE)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string ("background-image-file"<br>, ((void*)0), ((void*)0), (""), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_BACKGROUND_IMAGE_FILE, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "background-image");<br> g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "background-image"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1344"><td class="num" id="LN1344">1344</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_STRING (CUSTOM_COMMAND, DEFAULT_CUSTOM_COMMAND, KEY_CUSTOM_COMMAND)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string ("custom-command", (<br>(void*)0), ((void*)0), (""), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_CUSTOM_COMMAND, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "custom-command"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "custom-command", pspec<br>);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1345"><td class="num" id="LN1345">1345</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_STRING (TITLE, _(DEFAULT_TITLE), KEY_TITLE)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string ("title", ((void*)0<br>), ((void*)0), gettext ((("Terminal"))), G_PARAM_READWRITE | (<br>G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_TITLE<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) "title"); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) "title", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1346"><td class="num" id="LN1346">1346</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_STRING (VISIBLE_NAME, _(DEFAULT_VISIBLE_NAME), KEY_VISIBLE_NAME)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string ("visible-name", ((<br>void*)0), ((void*)0), gettext ((("Unnamed"))), G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_VISIBLE_NAME<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) "visible-name"); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) "visible-name", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1347"><td class="num" id="LN1347">1347</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_STRING (WORD_CHARS, DEFAULT_WORD_CHARS, KEY_WORD_CHARS)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string ("word-chars", ((void<br>*)0), ((void*)0), ("-A-Za-z0-9,./?%&amp;#:_=+@~"), G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_WORD_CHARS<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) "word-chars"); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) "word-chars", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1348"><td class="num" id="LN1348">1348</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1349"><td class="num" id="LN1349">1349</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_VALUE_ARRAY_BOXED (PALETTE, <span class='string_literal'>"palette-color"</span>, GDK_TYPE_RGBA, KEY_PALETTE)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_value_array ("palette", ((<br>void*)0), ((void*)0), g_param_spec_boxed ("palette-color", ((<br>void*)0), ((void*)0), (gdk_rgba_get_type ()), G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_PALETTE, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) "palette"); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) "palette", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1350"><td class="num" id="LN1350">1350</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1351"><td class="num" id="LN1351">1351</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1352"><td class="num" id="LN1352">1352</td><td class="line"><span class='comment'>/* Semi-Public API */</span></td></tr>
+<tr class="codeline" data-linenumber="1353"><td class="num" id="LN1353">1353</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1354"><td class="num" id="LN1354">1354</td><td class="line">TerminalProfile*</td></tr>
+<tr class="codeline" data-linenumber="1355"><td class="num" id="LN1355">1355</td><td class="line">_terminal_profile_new (<span class='keyword'>const</span> <span class='keyword'>char</span> *name)</td></tr>
+<tr class="codeline" data-linenumber="1356"><td class="num" id="LN1356">1356</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1357"><td class="num" id="LN1357">1357</td><td class="line"> <span class='keyword'>return</span> g_object_new (<span class='macro'>TERMINAL_TYPE_PROFILE<span class='macro_popup'>(terminal_profile_get_type ())</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1358"><td class="num" id="LN1358">1358</td><td class="line"> <span class='string_literal'>"name"</span>, name,</td></tr>
+<tr class="codeline" data-linenumber="1359"><td class="num" id="LN1359">1359</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1360"><td class="num" id="LN1360">1360</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1361"><td class="num" id="LN1361">1361</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1362"><td class="num" id="LN1362">1362</td><td class="line"><span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1363"><td class="num" id="LN1363">1363</td><td class="line">_terminal_profile_forget (TerminalProfile *profile)</td></tr>
+<tr class="codeline" data-linenumber="1364"><td class="num" id="LN1364">1364</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1365"><td class="num" id="LN1365">1365</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1366"><td class="num" id="LN1366">1366</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1367"><td class="num" id="LN1367">1367</td><td class="line"> <span class='keyword'>if</span> (!priv-&gt;forgotten)</td></tr>
+<tr class="codeline" data-linenumber="1368"><td class="num" id="LN1368">1368</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1369"><td class="num" id="LN1369">1369</td><td class="line"> priv-&gt;forgotten = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1370"><td class="num" id="LN1370">1370</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1371"><td class="num" id="LN1371">1371</td><td class="line"> g_signal_emit (<span class='macro'>G_OBJECT (profile)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((profile)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, signals[FORGOTTEN], 0);</td></tr>
+<tr class="codeline" data-linenumber="1372"><td class="num" id="LN1372">1372</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1373"><td class="num" id="LN1373">1373</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1374"><td class="num" id="LN1374">1374</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1375"><td class="num" id="LN1375">1375</td><td class="line">gboolean</td></tr>
+<tr class="codeline" data-linenumber="1376"><td class="num" id="LN1376">1376</td><td class="line">_terminal_profile_get_forgotten (TerminalProfile *profile)</td></tr>
+<tr class="codeline" data-linenumber="1377"><td class="num" id="LN1377">1377</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1378"><td class="num" id="LN1378">1378</td><td class="line"> <span class='keyword'>return</span> profile-&gt;priv-&gt;forgotten;</td></tr>
+<tr class="codeline" data-linenumber="1379"><td class="num" id="LN1379">1379</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1380"><td class="num" id="LN1380">1380</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1381"><td class="num" id="LN1381">1381</td><td class="line">TerminalProfile *</td></tr>
+<tr class="codeline" data-linenumber="1382"><td class="num" id="LN1382">1382</td><td class="line">_terminal_profile_clone (TerminalProfile *base_profile,</td></tr>
+<tr class="codeline" data-linenumber="1383"><td class="num" id="LN1383">1383</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *visible_name)</td></tr>
+<tr class="codeline" data-linenumber="1384"><td class="num" id="LN1384">1384</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1385"><td class="num" id="LN1385">1385</td><td class="line"> TerminalApp *app = terminal_app_get ();</td></tr>
+<tr class="codeline" data-linenumber="1386"><td class="num" id="LN1386">1386</td><td class="line"> GObject *base_object = <span class='macro'>G_OBJECT (base_profile)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((base_profile)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1387"><td class="num" id="LN1387">1387</td><td class="line"> TerminalProfilePrivate *new_priv;</td></tr>
+<tr class="codeline" data-linenumber="1388"><td class="num" id="LN1388">1388</td><td class="line"> <span class='keyword'>char</span> profile_name[32];</td></tr>
+<tr class="codeline" data-linenumber="1389"><td class="num" id="LN1389">1389</td><td class="line"> GParameter *params;</td></tr>
+<tr class="codeline" data-linenumber="1390"><td class="num" id="LN1390">1390</td><td class="line"> GParamSpec **pspecs;</td></tr>
+<tr class="codeline" data-linenumber="1391"><td class="num" id="LN1391">1391</td><td class="line"> guint n_pspecs, i, n_params, profile_num;</td></tr>
+<tr class="codeline" data-linenumber="1392"><td class="num" id="LN1392">1392</td><td class="line"> TerminalProfile *new_profile;</td></tr>
+<tr class="codeline" data-linenumber="1393"><td class="num" id="LN1393">1393</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1394"><td class="num" id="LN1394">1394</td><td class="line"> <span class='macro'>g_object_ref (base_profile)<span class='macro_popup'>((__typeof__ (base_profile)) (g_object_ref) (base_profile))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1395"><td class="num" id="LN1395">1395</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1396"><td class="num" id="LN1396">1396</td><td class="line"> profile_num = 0;</td></tr>
+<tr class="codeline" data-linenumber="1397"><td class="num" id="LN1397">1397</td><td class="line"> <span class='keyword'>do</span></td></tr>
+<tr class="codeline" data-linenumber="1398"><td class="num" id="LN1398">1398</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1399"><td class="num" id="LN1399">1399</td><td class="line"> g_snprintf (profile_name, <span class='keyword'>sizeof</span> (profile_name), <span class='string_literal'>"profile%u"</span>, profile_num++);</td></tr>
+<tr class="codeline" data-linenumber="1400"><td class="num" id="LN1400">1400</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1401"><td class="num" id="LN1401">1401</td><td class="line"> <span class='keyword'>while</span> (terminal_app_get_profile_by_name (app, profile_name) != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1402"><td class="num" id="LN1402">1402</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1403"><td class="num" id="LN1403">1403</td><td class="line"> <span class='comment'>/* Now we have an unused profile name */</span></td></tr>
+<tr class="codeline" data-linenumber="1404"><td class="num" id="LN1404">1404</td><td class="line"> pspecs = g_object_class_list_properties (<span class='macro'>G_OBJECT_CLASS (TERMINAL_PROFILE_GET_CLASS (base_profile))<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((((((TerminalProfileClass*) (((GTypeInstance*) ((base_profile<br>)))-&gt;g_class)))))), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, &amp;n_pspecs);</td></tr>
+<tr class="codeline" data-linenumber="1405"><td class="num" id="LN1405">1405</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1406"><td class="num" id="LN1406">1406</td><td class="line"> params = <span class='macro'>g_newa (GParameter, n_pspecs)<span class='macro_popup'>((GParameter*) __builtin_alloca (sizeof (GParameter) * (gsize<br>) (n_pspecs)))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1407"><td class="num" id="LN1407">1407</td><td class="line"> n_params = 0;</td></tr>
+<tr class="codeline" data-linenumber="1408"><td class="num" id="LN1408">1408</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1409"><td class="num" id="LN1409">1409</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; n_pspecs; ++i)</td></tr>
+<tr class="codeline" data-linenumber="1410"><td class="num" id="LN1410">1410</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1411"><td class="num" id="LN1411">1411</td><td class="line"> GParamSpec *pspec = pspecs[i];</td></tr>
+<tr class="codeline" data-linenumber="1412"><td class="num" id="LN1412">1412</td><td class="line"> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="1413"><td class="num" id="LN1413">1413</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1414"><td class="num" id="LN1414">1414</td><td class="line"> <span class='keyword'>if</span> (pspec-&gt;owner_type != <span class='macro'>TERMINAL_TYPE_PROFILE<span class='macro_popup'>(terminal_profile_get_type ())</span></span> ||</td></tr>
+<tr class="codeline" data-linenumber="1415"><td class="num" id="LN1415">1415</td><td class="line"> (pspec-&gt;flags &amp; G_PARAM_WRITABLE) == 0)</td></tr>
+<tr class="codeline" data-linenumber="1416"><td class="num" id="LN1416">1416</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="1417"><td class="num" id="LN1417">1417</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1418"><td class="num" id="LN1418">1418</td><td class="line"> params[n_params].name = pspec-&gt;name;</td></tr>
+<tr class="codeline" data-linenumber="1419"><td class="num" id="LN1419">1419</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1420"><td class="num" id="LN1420">1420</td><td class="line"> value = &amp;params[n_params].value;</td></tr>
+<tr class="codeline" data-linenumber="1421"><td class="num" id="LN1421">1421</td><td class="line"> <span class='macro'>G_VALUE_TYPE (value)<span class='macro_popup'>(((GValue*) (value))-&gt;g_type)</span></span> = 0;</td></tr>
+<tr class="codeline" data-linenumber="1422"><td class="num" id="LN1422">1422</td><td class="line"> g_value_init (value, <span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1423"><td class="num" id="LN1423">1423</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1424"><td class="num" id="LN1424">1424</td><td class="line"> <span class='keyword'>if</span> (pspec-&gt;name == <span class='macro'>I_(TERMINAL_PROFILE_NAME)<span class='macro_popup'>g_intern_static_string ("name")</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1425"><td class="num" id="LN1425">1425</td><td class="line"> g_value_set_static_string (value, profile_name);</td></tr>
+<tr class="codeline" data-linenumber="1426"><td class="num" id="LN1426">1426</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (pspec-&gt;name == <span class='macro'>I_(TERMINAL_PROFILE_VISIBLE_NAME)<span class='macro_popup'>g_intern_static_string ("visible-name")</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1427"><td class="num" id="LN1427">1427</td><td class="line"> g_value_set_static_string (value, visible_name);</td></tr>
+<tr class="codeline" data-linenumber="1428"><td class="num" id="LN1428">1428</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="1429"><td class="num" id="LN1429">1429</td><td class="line"> g_object_get_property (base_object, pspec-&gt;name, value);</td></tr>
+<tr class="codeline" data-linenumber="1430"><td class="num" id="LN1430">1430</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1431"><td class="num" id="LN1431">1431</td><td class="line"> ++n_params;</td></tr>
+<tr class="codeline" data-linenumber="1432"><td class="num" id="LN1432">1432</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1433"><td class="num" id="LN1433">1433</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1434"><td class="num" id="LN1434">1434</td><td class="line"> new_profile = g_object_newv (<span class='macro'>TERMINAL_TYPE_PROFILE<span class='macro_popup'>(terminal_profile_get_type ())</span></span>, n_params, params);</td></tr>
+<tr class="codeline" data-linenumber="1435"><td class="num" id="LN1435">1435</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1436"><td class="num" id="LN1436">1436</td><td class="line"> g_object_unref (base_profile);</td></tr>
+<tr class="codeline" data-linenumber="1437"><td class="num" id="LN1437">1437</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1438"><td class="num" id="LN1438">1438</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; n_params; ++i)</td></tr>
+<tr class="codeline" data-linenumber="1439"><td class="num" id="LN1439">1439</td><td class="line"> g_value_unset (&amp;params[i].value);</td></tr>
+<tr class="codeline" data-linenumber="1440"><td class="num" id="LN1440">1440</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1441"><td class="num" id="LN1441">1441</td><td class="line"> <span class='comment'>/* Flush the new profile to GSettings */</span></td></tr>
+<tr class="codeline" data-linenumber="1442"><td class="num" id="LN1442">1442</td><td class="line"> new_priv = new_profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1443"><td class="num" id="LN1443">1443</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1444"><td class="num" id="LN1444">1444</td><td class="line"> g_slist_free (new_priv-&gt;dirty_pspecs);</td></tr>
+<tr class="codeline" data-linenumber="1445"><td class="num" id="LN1445">1445</td><td class="line"> new_priv-&gt;dirty_pspecs = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1446"><td class="num" id="LN1446">1446</td><td class="line"> <span class='keyword'>if</span> (new_priv-&gt;save_idle_id != 0)</td></tr>
+<tr class="codeline" data-linenumber="1447"><td class="num" id="LN1447">1447</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1448"><td class="num" id="LN1448">1448</td><td class="line"> g_source_remove (new_priv-&gt;save_idle_id);</td></tr>
+<tr class="codeline" data-linenumber="1449"><td class="num" id="LN1449">1449</td><td class="line"> new_priv-&gt;save_idle_id = 0;</td></tr>
+<tr class="codeline" data-linenumber="1450"><td class="num" id="LN1450">1450</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1451"><td class="num" id="LN1451">1451</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1452"><td class="num" id="LN1452">1452</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; n_pspecs; ++i)</td></tr>
+<tr class="codeline" data-linenumber="1453"><td class="num" id="LN1453">1453</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1454"><td class="num" id="LN1454">1454</td><td class="line"> GParamSpec *pspec = pspecs[i];</td></tr>
+<tr class="codeline" data-linenumber="1455"><td class="num" id="LN1455">1455</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1456"><td class="num" id="LN1456">1456</td><td class="line"> <span class='keyword'>if</span> (pspec-&gt;owner_type != <span class='macro'>TERMINAL_TYPE_PROFILE<span class='macro_popup'>(terminal_profile_get_type ())</span></span> ||</td></tr>
+<tr class="codeline" data-linenumber="1457"><td class="num" id="LN1457">1457</td><td class="line"> (pspec-&gt;flags &amp; G_PARAM_WRITABLE) == 0)</td></tr>
+<tr class="codeline" data-linenumber="1458"><td class="num" id="LN1458">1458</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="1459"><td class="num" id="LN1459">1459</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1460"><td class="num" id="LN1460">1460</td><td class="line"> new_priv-&gt;dirty_pspecs = g_slist_prepend (new_priv-&gt;dirty_pspecs, pspec);</td></tr>
+<tr class="codeline" data-linenumber="1461"><td class="num" id="LN1461">1461</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1462"><td class="num" id="LN1462">1462</td><td class="line"> g_free (pspecs);</td></tr>
+<tr class="codeline" data-linenumber="1463"><td class="num" id="LN1463">1463</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1464"><td class="num" id="LN1464">1464</td><td class="line"> terminal_profile_save (new_profile);</td></tr>
+<tr class="codeline" data-linenumber="1465"><td class="num" id="LN1465">1465</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1466"><td class="num" id="LN1466">1466</td><td class="line"> <span class='keyword'>return</span> new_profile;</td></tr>
+<tr class="codeline" data-linenumber="1467"><td class="num" id="LN1467">1467</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1468"><td class="num" id="LN1468">1468</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1469"><td class="num" id="LN1469">1469</td><td class="line"><span class='comment'>/* Public API */</span></td></tr>
+<tr class="codeline" data-linenumber="1470"><td class="num" id="LN1470">1470</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1471"><td class="num" id="LN1471">1471</td><td class="line">gboolean</td></tr>
+<tr class="codeline" data-linenumber="1472"><td class="num" id="LN1472">1472</td><td class="line">terminal_profile_get_property_boolean (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1473"><td class="num" id="LN1473">1473</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="1474"><td class="num" id="LN1474">1474</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1475"><td class="num" id="LN1475">1475</td><td class="line"> <span class='keyword'>const</span> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="1476"><td class="num" id="LN1476">1476</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1477"><td class="num" id="LN1477">1477</td><td class="line"> value = get_prop_value_from_prop_name (profile, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="1478"><td class="num" id="LN1478">1478</td><td class="line"> <span class='macro'>g_return_val_if_fail (value != NULL &amp;&amp; G_VALUE_HOLDS_BOOLEAN (value), FALSE)<span class='macro_popup'>do { if ((value != ((void*)0) &amp;&amp; (((__extension__ ({ const<br> GValue *__val = (const GValue*) ((value)); GType __t = (((GType<br>) ((5) &lt;&lt; (2)))); gboolean __r; if (!__val) __r = (0); else<br> if (__val-&gt;g_type == __t) __r = (!(0)); else __r = g_type_check_value_holds<br> (__val, __t); __r; })))))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "value != NULL &amp;&amp; G_VALUE_HOLDS_BOOLEAN (value)"<br>); return ((0)); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1479"><td class="num" id="LN1479">1479</td><td class="line"> <span class='keyword'>if</span> (!value || !<span class='macro'>G_VALUE_HOLDS_BOOLEAN (value)<span class='macro_popup'>(((__extension__ ({ const GValue *__val = (const GValue*) ((value<br>)); GType __t = (((GType) ((5) &lt;&lt; (2)))); gboolean __r;<br> if (!__val) __r = (0); else if (__val-&gt;g_type == __t) __r<br> = (!(0)); else __r = g_type_check_value_holds (__val, __t); __r<br>; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1480"><td class="num" id="LN1480">1480</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1481"><td class="num" id="LN1481">1481</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1482"><td class="num" id="LN1482">1482</td><td class="line"> <span class='keyword'>return</span> g_value_get_boolean (value);</td></tr>
+<tr class="codeline" data-linenumber="1483"><td class="num" id="LN1483">1483</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1484"><td class="num" id="LN1484">1484</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1485"><td class="num" id="LN1485">1485</td><td class="line">gconstpointer</td></tr>
+<tr class="codeline" data-linenumber="1486"><td class="num" id="LN1486">1486</td><td class="line">terminal_profile_get_property_boxed (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1487"><td class="num" id="LN1487">1487</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="1488"><td class="num" id="LN1488">1488</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1489"><td class="num" id="LN1489">1489</td><td class="line"> <span class='keyword'>const</span> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="1490"><td class="num" id="LN1490">1490</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1491"><td class="num" id="LN1491">1491</td><td class="line"> value = get_prop_value_from_prop_name (profile, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="1492"><td class="num" id="LN1492">1492</td><td class="line"> <span class='macro'>g_return_val_if_fail (value != NULL &amp;&amp; G_VALUE_HOLDS_BOXED (value), NULL)<span class='macro_popup'>do { if ((value != ((void*)0) &amp;&amp; (((__extension__ ({ const<br> GValue *__val = (const GValue*) ((value)); GType __t = (((GType<br>) ((18) &lt;&lt; (2)))); gboolean __r; if (!__val) __r = (0);<br> else if (__val-&gt;g_type == __t) __r = (!(0)); else __r = g_type_check_value_holds<br> (__val, __t); __r; })))))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "value != NULL &amp;&amp; G_VALUE_HOLDS_BOXED (value)"<br>); return (((void*)0)); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1493"><td class="num" id="LN1493">1493</td><td class="line"> <span class='keyword'>if</span> (!value || !<span class='macro'>G_VALUE_HOLDS_BOXED (value)<span class='macro_popup'>(((__extension__ ({ const GValue *__val = (const GValue*) ((value<br>)); GType __t = (((GType) ((18) &lt;&lt; (2)))); gboolean __r<br>; if (!__val) __r = (0); else if (__val-&gt;g_type == __t) __r<br> = (!(0)); else __r = g_type_check_value_holds (__val, __t); __r<br>; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1494"><td class="num" id="LN1494">1494</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1495"><td class="num" id="LN1495">1495</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1496"><td class="num" id="LN1496">1496</td><td class="line"> <span class='keyword'>return</span> g_value_get_boxed (value);</td></tr>
+<tr class="codeline" data-linenumber="1497"><td class="num" id="LN1497">1497</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1498"><td class="num" id="LN1498">1498</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1499"><td class="num" id="LN1499">1499</td><td class="line"><span class='keyword'>double</span></td></tr>
+<tr class="codeline" data-linenumber="1500"><td class="num" id="LN1500">1500</td><td class="line">terminal_profile_get_property_double (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1501"><td class="num" id="LN1501">1501</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="1502"><td class="num" id="LN1502">1502</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1503"><td class="num" id="LN1503">1503</td><td class="line"> <span class='keyword'>const</span> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="1504"><td class="num" id="LN1504">1504</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1505"><td class="num" id="LN1505">1505</td><td class="line"> value = get_prop_value_from_prop_name (profile, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="1506"><td class="num" id="LN1506">1506</td><td class="line"> <span class='macro'>g_return_val_if_fail (value != NULL &amp;&amp; G_VALUE_HOLDS_DOUBLE (value), 0.0)<span class='macro_popup'>do { if ((value != ((void*)0) &amp;&amp; (((__extension__ ({ const<br> GValue *__val = (const GValue*) ((value)); GType __t = (((GType<br>) ((15) &lt;&lt; (2)))); gboolean __r; if (!__val) __r = (0);<br> else if (__val-&gt;g_type == __t) __r = (!(0)); else __r = g_type_check_value_holds<br> (__val, __t); __r; })))))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "value != NULL &amp;&amp; G_VALUE_HOLDS_DOUBLE (value)"<br>); return (0.0); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1507"><td class="num" id="LN1507">1507</td><td class="line"> <span class='keyword'>if</span> (!value || !<span class='macro'>G_VALUE_HOLDS_DOUBLE (value)<span class='macro_popup'>(((__extension__ ({ const GValue *__val = (const GValue*) ((value<br>)); GType __t = (((GType) ((15) &lt;&lt; (2)))); gboolean __r<br>; if (!__val) __r = (0); else if (__val-&gt;g_type == __t) __r<br> = (!(0)); else __r = g_type_check_value_holds (__val, __t); __r<br>; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1508"><td class="num" id="LN1508">1508</td><td class="line"> <span class='keyword'>return</span> 0.0;</td></tr>
+<tr class="codeline" data-linenumber="1509"><td class="num" id="LN1509">1509</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1510"><td class="num" id="LN1510">1510</td><td class="line"> <span class='keyword'>return</span> g_value_get_double (value);</td></tr>
+<tr class="codeline" data-linenumber="1511"><td class="num" id="LN1511">1511</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1512"><td class="num" id="LN1512">1512</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1513"><td class="num" id="LN1513">1513</td><td class="line"><span class='keyword'>int</span></td></tr>
+<tr class="codeline" data-linenumber="1514"><td class="num" id="LN1514">1514</td><td class="line">terminal_profile_get_property_enum (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1515"><td class="num" id="LN1515">1515</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="1516"><td class="num" id="LN1516">1516</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1517"><td class="num" id="LN1517">1517</td><td class="line"> <span class='keyword'>const</span> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="1518"><td class="num" id="LN1518">1518</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1519"><td class="num" id="LN1519">1519</td><td class="line"> value = get_prop_value_from_prop_name (profile, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="1520"><td class="num" id="LN1520">1520</td><td class="line"> <span class='macro'>g_return_val_if_fail (value != NULL &amp;&amp; G_VALUE_HOLDS_ENUM (value), 0)<span class='macro_popup'>do { if ((value != ((void*)0) &amp;&amp; (((__extension__ ({ const<br> GValue *__val = (const GValue*) ((value)); GType __t = (((GType<br>) ((12) &lt;&lt; (2)))); gboolean __r; if (!__val) __r = (0);<br> else if (__val-&gt;g_type == __t) __r = (!(0)); else __r = g_type_check_value_holds<br> (__val, __t); __r; })))))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "value != NULL &amp;&amp; G_VALUE_HOLDS_ENUM (value)"<br>); return (0); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1521"><td class="num" id="LN1521">1521</td><td class="line"> <span class='keyword'>if</span> (!value || !<span class='macro'>G_VALUE_HOLDS_ENUM (value)<span class='macro_popup'>(((__extension__ ({ const GValue *__val = (const GValue*) ((value<br>)); GType __t = (((GType) ((12) &lt;&lt; (2)))); gboolean __r<br>; if (!__val) __r = (0); else if (__val-&gt;g_type == __t) __r<br> = (!(0)); else __r = g_type_check_value_holds (__val, __t); __r<br>; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1522"><td class="num" id="LN1522">1522</td><td class="line"> <span class='keyword'>return</span> 0;</td></tr>
+<tr class="codeline" data-linenumber="1523"><td class="num" id="LN1523">1523</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1524"><td class="num" id="LN1524">1524</td><td class="line"> <span class='keyword'>return</span> g_value_get_enum (value);</td></tr>
+<tr class="codeline" data-linenumber="1525"><td class="num" id="LN1525">1525</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1526"><td class="num" id="LN1526">1526</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1527"><td class="num" id="LN1527">1527</td><td class="line"><span class='keyword'>int</span></td></tr>
+<tr class="codeline" data-linenumber="1528"><td class="num" id="LN1528">1528</td><td class="line">terminal_profile_get_property_int (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1529"><td class="num" id="LN1529">1529</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="1530"><td class="num" id="LN1530">1530</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1531"><td class="num" id="LN1531">1531</td><td class="line"> <span class='keyword'>const</span> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="1532"><td class="num" id="LN1532">1532</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1533"><td class="num" id="LN1533">1533</td><td class="line"> value = get_prop_value_from_prop_name (profile, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="1534"><td class="num" id="LN1534">1534</td><td class="line"> <span class='macro'>g_return_val_if_fail (value != NULL &amp;&amp; G_VALUE_HOLDS_INT (value), 0)<span class='macro_popup'>do { if ((value != ((void*)0) &amp;&amp; (((__extension__ ({ const<br> GValue *__val = (const GValue*) ((value)); GType __t = (((GType<br>) ((6) &lt;&lt; (2)))); gboolean __r; if (!__val) __r = (0); else<br> if (__val-&gt;g_type == __t) __r = (!(0)); else __r = g_type_check_value_holds<br> (__val, __t); __r; })))))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "value != NULL &amp;&amp; G_VALUE_HOLDS_INT (value)"<br>); return (0); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1535"><td class="num" id="LN1535">1535</td><td class="line"> <span class='keyword'>if</span> (!value || !<span class='macro'>G_VALUE_HOLDS_INT (value)<span class='macro_popup'>(((__extension__ ({ const GValue *__val = (const GValue*) ((value<br>)); GType __t = (((GType) ((6) &lt;&lt; (2)))); gboolean __r;<br> if (!__val) __r = (0); else if (__val-&gt;g_type == __t) __r<br> = (!(0)); else __r = g_type_check_value_holds (__val, __t); __r<br>; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1536"><td class="num" id="LN1536">1536</td><td class="line"> <span class='keyword'>return</span> 0;</td></tr>
+<tr class="codeline" data-linenumber="1537"><td class="num" id="LN1537">1537</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1538"><td class="num" id="LN1538">1538</td><td class="line"> <span class='keyword'>return</span> g_value_get_int (value);</td></tr>
+<tr class="codeline" data-linenumber="1539"><td class="num" id="LN1539">1539</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1540"><td class="num" id="LN1540">1540</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1541"><td class="num" id="LN1541">1541</td><td class="line">gpointer</td></tr>
+<tr class="codeline" data-linenumber="1542"><td class="num" id="LN1542">1542</td><td class="line">terminal_profile_get_property_object (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1543"><td class="num" id="LN1543">1543</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="1544"><td class="num" id="LN1544">1544</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1545"><td class="num" id="LN1545">1545</td><td class="line"> <span class='keyword'>const</span> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="1546"><td class="num" id="LN1546">1546</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1547"><td class="num" id="LN1547">1547</td><td class="line"> value = get_prop_value_from_prop_name (profile, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="1548"><td class="num" id="LN1548">1548</td><td class="line"> <span class='macro'>g_return_val_if_fail (value != NULL &amp;&amp; G_VALUE_HOLDS_OBJECT (value), NULL)<span class='macro_popup'>do { if ((value != ((void*)0) &amp;&amp; (((__extension__ ({ const<br> GValue *__val = (const GValue*) ((value)); GType __t = (((GType<br>) ((20) &lt;&lt; (2)))); gboolean __r; if (!__val) __r = (0);<br> else if (__val-&gt;g_type == __t) __r = (!(0)); else __r = g_type_check_value_holds<br> (__val, __t); __r; })))))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "value != NULL &amp;&amp; G_VALUE_HOLDS_OBJECT (value)"<br>); return (((void*)0)); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1549"><td class="num" id="LN1549">1549</td><td class="line"> <span class='keyword'>if</span> (!value || !<span class='macro'>G_VALUE_HOLDS_OBJECT (value)<span class='macro_popup'>(((__extension__ ({ const GValue *__val = (const GValue*) ((value<br>)); GType __t = (((GType) ((20) &lt;&lt; (2)))); gboolean __r<br>; if (!__val) __r = (0); else if (__val-&gt;g_type == __t) __r<br> = (!(0)); else __r = g_type_check_value_holds (__val, __t); __r<br>; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1550"><td class="num" id="LN1550">1550</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1551"><td class="num" id="LN1551">1551</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1552"><td class="num" id="LN1552">1552</td><td class="line"> <span class='keyword'>return</span> g_value_get_object (value);</td></tr>
+<tr class="codeline" data-linenumber="1553"><td class="num" id="LN1553">1553</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1554"><td class="num" id="LN1554">1554</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1555"><td class="num" id="LN1555">1555</td><td class="line"><span class='keyword'>const</span> <span class='keyword'>char</span>*</td></tr>
+<tr class="codeline" data-linenumber="1556"><td class="num" id="LN1556">1556</td><td class="line">terminal_profile_get_property_string (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1557"><td class="num" id="LN1557">1557</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="1558"><td class="num" id="LN1558">1558</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1559"><td class="num" id="LN1559">1559</td><td class="line"> <span class='keyword'>const</span> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="1560"><td class="num" id="LN1560">1560</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1561"><td class="num" id="LN1561">1561</td><td class="line"> value = get_prop_value_from_prop_name (profile, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="1562"><td class="num" id="LN1562">1562</td><td class="line"> <span class='macro'>g_return_val_if_fail (value != NULL &amp;&amp; G_VALUE_HOLDS_STRING (value), NULL)<span class='macro_popup'>do { if ((value != ((void*)0) &amp;&amp; (((__extension__ ({ const<br> GValue *__val = (const GValue*) ((value)); GType __t = (((GType<br>) ((16) &lt;&lt; (2)))); gboolean __r; if (!__val) __r = (0);<br> else if (__val-&gt;g_type == __t) __r = (!(0)); else __r = g_type_check_value_holds<br> (__val, __t); __r; })))))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "value != NULL &amp;&amp; G_VALUE_HOLDS_STRING (value)"<br>); return (((void*)0)); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1563"><td class="num" id="LN1563">1563</td><td class="line"> <span class='keyword'>if</span> (!value || !<span class='macro'>G_VALUE_HOLDS_STRING (value)<span class='macro_popup'>(((__extension__ ({ const GValue *__val = (const GValue*) ((value<br>)); GType __t = (((GType) ((16) &lt;&lt; (2)))); gboolean __r<br>; if (!__val) __r = (0); else if (__val-&gt;g_type == __t) __r<br> = (!(0)); else __r = g_type_check_value_holds (__val, __t); __r<br>; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1564"><td class="num" id="LN1564">1564</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1565"><td class="num" id="LN1565">1565</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1566"><td class="num" id="LN1566">1566</td><td class="line"> <span class='keyword'>return</span> g_value_get_string (value);</td></tr>
+<tr class="codeline" data-linenumber="1567"><td class="num" id="LN1567">1567</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1568"><td class="num" id="LN1568">1568</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1569"><td class="num" id="LN1569">1569</td><td class="line">gboolean</td></tr>
+<tr class="codeline" data-linenumber="1570"><td class="num" id="LN1570">1570</td><td class="line">terminal_profile_property_locked (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1571"><td class="num" id="LN1571">1571</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="1572"><td class="num" id="LN1572">1572</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1573"><td class="num" id="LN1573">1573</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1574"><td class="num" id="LN1574">1574</td><td class="line"> GParamSpec *pspec;</td></tr>
+<tr class="codeline" data-linenumber="1575"><td class="num" id="LN1575">1575</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1576"><td class="num" id="LN1576">1576</td><td class="line"> pspec = get_pspec_from_name (profile, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="1577"><td class="num" id="LN1577">1577</td><td class="line"> <span class='macro'>g_return_val_if_fail (pspec != NULL, FALSE)<span class='macro_popup'>do { if ((pspec != ((void*)0))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "pspec != NULL");<br> return ((0)); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1578"><td class="num" id="LN1578">1578</td><td class="line"> <span class='keyword'>if</span> (!pspec)</td></tr>
+<tr class="codeline" data-linenumber="1579"><td class="num" id="LN1579">1579</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1580"><td class="num" id="LN1580">1580</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1581"><td class="num" id="LN1581">1581</td><td class="line"> <span class='keyword'>return</span> priv-&gt;locked[pspec-&gt;param_id];</td></tr>
+<tr class="codeline" data-linenumber="1582"><td class="num" id="LN1582">1582</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1583"><td class="num" id="LN1583">1583</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1584"><td class="num" id="LN1584">1584</td><td class="line"><span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1585"><td class="num" id="LN1585">1585</td><td class="line">terminal_profile_reset_property (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1586"><td class="num" id="LN1586">1586</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="1587"><td class="num" id="LN1587">1587</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1588"><td class="num" id="LN1588">1588</td><td class="line"> GParamSpec *pspec;</td></tr>
+<tr class="codeline" data-linenumber="1589"><td class="num" id="LN1589">1589</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1590"><td class="num" id="LN1590">1590</td><td class="line"> pspec = get_pspec_from_name (profile, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="1591"><td class="num" id="LN1591">1591</td><td class="line"> <span class='macro'>g_return_if_fail (pspec != NULL)<span class='macro_popup'>do { if ((pspec != ((void*)0))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "pspec != NULL");<br> return; } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1592"><td class="num" id="LN1592">1592</td><td class="line"> <span class='keyword'>if</span> (!pspec ||</td></tr>
+<tr class="codeline" data-linenumber="1593"><td class="num" id="LN1593">1593</td><td class="line"> (pspec-&gt;flags &amp; G_PARAM_WRITABLE) == 0)</td></tr>
+<tr class="codeline" data-linenumber="1594"><td class="num" id="LN1594">1594</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1595"><td class="num" id="LN1595">1595</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1596"><td class="num" id="LN1596">1596</td><td class="line"> terminal_profile_reset_property_internal (profile, pspec, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1597"><td class="num" id="LN1597">1597</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1598"><td class="num" id="LN1598">1598</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1599"><td class="num" id="LN1599">1599</td><td class="line">gboolean</td></tr>
+<tr class="codeline" data-linenumber="1600"><td class="num" id="LN1600">1600</td><td class="line">terminal_profile_get_palette (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1601"><td class="num" id="LN1601">1601</td><td class="line"> GdkRGBA *colors,</td></tr>
+<tr class="codeline" data-linenumber="1602"><td class="num" id="LN1602">1602</td><td class="line"> guint *n_colors)</td></tr>
+<tr class="codeline" data-linenumber="1603"><td class="num" id="LN1603">1603</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1604"><td class="num" id="LN1604">1604</td><td class="line"> TerminalProfilePrivate *priv;</td></tr>
+<tr class="codeline" data-linenumber="1605"><td class="num" id="LN1605">1605</td><td class="line"> GValueArray *array;</td></tr>
+<tr class="codeline" data-linenumber="1606"><td class="num" id="LN1606">1606</td><td class="line"> guint i, n;</td></tr>
+<tr class="codeline" data-linenumber="1607"><td class="num" id="LN1607">1607</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1608"><td class="num" id="LN1608">1608</td><td class="line"> <span class='macro'>g_return_val_if_fail (TERMINAL_IS_PROFILE (profile), FALSE)<span class='macro_popup'>do { if (((((__extension__ ({ GTypeInstance *__inst = (GTypeInstance<br>*) ((profile)); GType __t = ((terminal_profile_get_type ()));<br> gboolean __r; if (!__inst) __r = (0); else if (__inst-&gt;g_class<br> &amp;&amp; __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)<br>); else __r = g_type_check_instance_is_a (__inst, __t); __r; }<br>)))))) { } else { g_return_if_fail_warning (((gchar*) 0), ((const<br> char*) (__func__)), "TERMINAL_IS_PROFILE (profile)"); return<br> ((0)); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1609"><td class="num" id="LN1609">1609</td><td class="line"> <span class='macro'>g_return_val_if_fail (colors != NULL &amp;&amp; n_colors != NULL, FALSE)<span class='macro_popup'>do { if ((colors != ((void*)0) &amp;&amp; n_colors != ((void*<br>)0))) { } else { g_return_if_fail_warning (((gchar*) 0), ((const<br> char*) (__func__)), "colors != NULL &amp;&amp; n_colors != NULL"<br>); return ((0)); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1610"><td class="num" id="LN1610">1610</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1611"><td class="num" id="LN1611">1611</td><td class="line"> priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1612"><td class="num" id="LN1612">1612</td><td class="line"> array = g_value_get_boxed (g_value_array_get_nth (priv-&gt;properties, PROP_PALETTE));</td></tr>
+<tr class="codeline" data-linenumber="1613"><td class="num" id="LN1613">1613</td><td class="line"> <span class='keyword'>if</span> (!array)</td></tr>
+<tr class="codeline" data-linenumber="1614"><td class="num" id="LN1614">1614</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1615"><td class="num" id="LN1615">1615</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1616"><td class="num" id="LN1616">1616</td><td class="line"> n = <span class='macro'>MIN (array-&gt;n_values, *n_colors)<span class='macro_popup'>(((array-&gt;n_values) &lt; (*n_colors)) ? (array-&gt;n_values<br>) : (*n_colors))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1617"><td class="num" id="LN1617">1617</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; n; ++i)</td></tr>
+<tr class="codeline" data-linenumber="1618"><td class="num" id="LN1618">1618</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1619"><td class="num" id="LN1619">1619</td><td class="line"> GdkRGBA *color = g_value_get_boxed (g_value_array_get_nth (array, i));</td></tr>
+<tr class="codeline" data-linenumber="1620"><td class="num" id="LN1620">1620</td><td class="line"> <span class='keyword'>if</span> (!color)</td></tr>
+<tr class="codeline" data-linenumber="1621"><td class="num" id="LN1621">1621</td><td class="line"> <span class='keyword'>continue</span>; <span class='comment'>/* shouldn't happen!! */</span></td></tr>
+<tr class="codeline" data-linenumber="1622"><td class="num" id="LN1622">1622</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1623"><td class="num" id="LN1623">1623</td><td class="line"> colors[i] = *color;</td></tr>
+<tr class="codeline" data-linenumber="1624"><td class="num" id="LN1624">1624</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1625"><td class="num" id="LN1625">1625</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1626"><td class="num" id="LN1626">1626</td><td class="line"> *n_colors = n;</td></tr>
+<tr class="codeline" data-linenumber="1627"><td class="num" id="LN1627">1627</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1628"><td class="num" id="LN1628">1628</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1629"><td class="num" id="LN1629">1629</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1630"><td class="num" id="LN1630">1630</td><td class="line">gboolean</td></tr>
+<tr class="codeline" data-linenumber="1631"><td class="num" id="LN1631">1631</td><td class="line">terminal_profile_get_palette_is_builtin (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1632"><td class="num" id="LN1632">1632</td><td class="line"> guint *n)</td></tr>
+<tr class="codeline" data-linenumber="1633"><td class="num" id="LN1633">1633</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1634"><td class="num" id="LN1634">1634</td><td class="line"> GdkRGBA colors[<span class='macro'>TERMINAL_PALETTE_SIZE<span class='macro_popup'>16</span></span>];</td></tr>
+<tr class="codeline" data-linenumber="1635"><td class="num" id="LN1635">1635</td><td class="line"> guint n_colors;</td></tr>
+<tr class="codeline" data-linenumber="1636"><td class="num" id="LN1636">1636</td><td class="line"> guint i;</td></tr>
+<tr class="codeline" data-linenumber="1637"><td class="num" id="LN1637">1637</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1638"><td class="num" id="LN1638">1638</td><td class="line"> n_colors = <span class='macro'>G_N_ELEMENTS (colors)<span class='macro_popup'>(sizeof (colors) / sizeof ((colors)[0]))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1639"><td class="num" id="LN1639">1639</td><td class="line"> <span class='keyword'>if</span> (!terminal_profile_get_palette (profile, colors, &amp;n_colors) ||</td></tr>
+<tr class="codeline" data-linenumber="1640"><td class="num" id="LN1640">1640</td><td class="line"> n_colors != <span class='macro'>TERMINAL_PALETTE_SIZE<span class='macro_popup'>16</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1641"><td class="num" id="LN1641">1641</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1642"><td class="num" id="LN1642">1642</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1643"><td class="num" id="LN1643">1643</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; <span class='macro'>TERMINAL_PALETTE_N_BUILTINS<span class='macro_popup'>5</span></span>; ++i)</td></tr>
+<tr class="codeline" data-linenumber="1644"><td class="num" id="LN1644">1644</td><td class="line"> <span class='keyword'>if</span> (palette_cmp (colors, terminal_palettes[i]))</td></tr>
+<tr class="codeline" data-linenumber="1645"><td class="num" id="LN1645">1645</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1646"><td class="num" id="LN1646">1646</td><td class="line"> *n = i;</td></tr>
+<tr class="codeline" data-linenumber="1647"><td class="num" id="LN1647">1647</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1648"><td class="num" id="LN1648">1648</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1649"><td class="num" id="LN1649">1649</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1650"><td class="num" id="LN1650">1650</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1651"><td class="num" id="LN1651">1651</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1652"><td class="num" id="LN1652">1652</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1653"><td class="num" id="LN1653">1653</td><td class="line"><span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1654"><td class="num" id="LN1654">1654</td><td class="line">terminal_profile_set_palette_builtin (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1655"><td class="num" id="LN1655">1655</td><td class="line"> guint n)</td></tr>
+<tr class="codeline" data-linenumber="1656"><td class="num" id="LN1656">1656</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1657"><td class="num" id="LN1657">1657</td><td class="line"> GValue value = { 0, };</td></tr>
+<tr class="codeline" data-linenumber="1658"><td class="num" id="LN1658">1658</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1659"><td class="num" id="LN1659">1659</td><td class="line"> <span class='macro'>g_return_if_fail (n &lt; TERMINAL_PALETTE_N_BUILTINS)<span class='macro_popup'>do { if ((n &lt; 5)) { } else { g_return_if_fail_warning (((gchar<br>*) 0), ((const char*) (__func__)), "n &lt; TERMINAL_PALETTE_N_BUILTINS"<br>); return; } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1660"><td class="num" id="LN1660">1660</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1661"><td class="num" id="LN1661">1661</td><td class="line"> g_value_init (&amp;value, <span class='macro'>G_TYPE_VALUE_ARRAY<span class='macro_popup'>(g_value_array_get_type ()) GCC warning "Deprecated pre-processor symbol: replace with \"(g_array_get_type ())\""<br>
+</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1662"><td class="num" id="LN1662">1662</td><td class="line"> set_value_from_palette (&amp;value, terminal_palettes[n], <span class='macro'>TERMINAL_PALETTE_SIZE<span class='macro_popup'>16</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1663"><td class="num" id="LN1663">1663</td><td class="line"> g_object_set_property (<span class='macro'>G_OBJECT (profile)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((profile)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, <span class='macro'>TERMINAL_PROFILE_PALETTE<span class='macro_popup'>"palette"</span></span>, &amp;value);</td></tr>
+<tr class="codeline" data-linenumber="1664"><td class="num" id="LN1664">1664</td><td class="line"> g_value_unset (&amp;value);</td></tr>
+<tr class="codeline" data-linenumber="1665"><td class="num" id="LN1665">1665</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1666"><td class="num" id="LN1666">1666</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1667"><td class="num" id="LN1667">1667</td><td class="line">gboolean</td></tr>
+<tr class="codeline" data-linenumber="1668"><td class="num" id="LN1668">1668</td><td class="line">terminal_profile_modify_palette_entry (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1669"><td class="num" id="LN1669">1669</td><td class="line"> guint i,</td></tr>
+<tr class="codeline" data-linenumber="1670"><td class="num" id="LN1670">1670</td><td class="line"> <span class='keyword'>const</span> GdkRGBA *color)</td></tr>
+<tr class="codeline" data-linenumber="1671"><td class="num" id="LN1671">1671</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1672"><td class="num" id="LN1672">1672</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1673"><td class="num" id="LN1673">1673</td><td class="line"> GValueArray *array;</td></tr>
+<tr class="codeline" data-linenumber="1674"><td class="num" id="LN1674">1674</td><td class="line"> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="1675"><td class="num" id="LN1675">1675</td><td class="line"> GdkRGBA *old_color;</td></tr>
+<tr class="codeline" data-linenumber="1676"><td class="num" id="LN1676">1676</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1677"><td class="num" id="LN1677">1677</td><td class="line"> array = g_value_get_boxed (g_value_array_get_nth (priv-&gt;properties, PROP_PALETTE));</td></tr>
+<tr class="codeline" data-linenumber="1678"><td class="num" id="LN1678">1678</td><td class="line"> <span class='keyword'>if</span> (!array ||</td></tr>
+<tr class="codeline" data-linenumber="1679"><td class="num" id="LN1679">1679</td><td class="line"> i &gt;= array-&gt;n_values)</td></tr>
+<tr class="codeline" data-linenumber="1680"><td class="num" id="LN1680">1680</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1681"><td class="num" id="LN1681">1681</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1682"><td class="num" id="LN1682">1682</td><td class="line"> value = g_value_array_get_nth (array, i);</td></tr>
+<tr class="codeline" data-linenumber="1683"><td class="num" id="LN1683">1683</td><td class="line"> old_color = g_value_get_boxed (value);</td></tr>
+<tr class="codeline" data-linenumber="1684"><td class="num" id="LN1684">1684</td><td class="line"> <span class='keyword'>if</span> (!old_color ||</td></tr>
+<tr class="codeline" data-linenumber="1685"><td class="num" id="LN1685">1685</td><td class="line"> !rgba_equal (old_color, color))</td></tr>
+<tr class="codeline" data-linenumber="1686"><td class="num" id="LN1686">1686</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1687"><td class="num" id="LN1687">1687</td><td class="line"> g_value_set_boxed (value, color);</td></tr>
+<tr class="codeline" data-linenumber="1688"><td class="num" id="LN1688">1688</td><td class="line"> g_object_notify (<span class='macro'>G_OBJECT (profile)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((profile)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, <span class='macro'>TERMINAL_PROFILE_PALETTE<span class='macro_popup'>"palette"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1689"><td class="num" id="LN1689">1689</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1690"><td class="num" id="LN1690">1690</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1691"><td class="num" id="LN1691">1691</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1692"><td class="num" id="LN1692">1692</td><td class="line">}</td></tr>
+</table></body></html>
diff --git a/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-8c7a76.html b/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-8c7a76.html
new file mode 100644
index 0000000..79748a9
--- /dev/null
+++ b/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-8c7a76.html
@@ -0,0 +1,1021 @@
+<!doctype html>
+<html>
+<head>
+<title>md4.c</title>
+
+<style type="text/css">
+body { color:#000000; background-color:#ffffff }
+body { font-family:Helvetica, sans-serif; font-size:10pt }
+h1 { font-size:14pt }
+.FileName { margin-top: 5px; margin-bottom: 5px; display: inline; }
+.FileNav { margin-left: 5px; margin-right: 5px; display: inline; }
+.FileNav a { text-decoration:none; font-size: larger; }
+.divider { margin-top: 30px; margin-bottom: 30px; height: 15px; }
+.divider { background-color: gray; }
+.code { border-collapse:collapse; width:100%; }
+.code { font-family: "Monospace", monospace; font-size:10pt }
+.code { line-height: 1.2em }
+.comment { color: green; font-style: oblique }
+.keyword { color: blue }
+.string_literal { color: red }
+.directive { color: darkmagenta }
+
+/* Macros and variables could have pop-up notes hidden by default.
+ - Macro pop-up: expansion of the macro
+ - Variable pop-up: value (table) of the variable */
+.macro_popup, .variable_popup { display: none; }
+
+/* Pop-up appears on mouse-hover event. */
+.macro:hover .macro_popup, .variable:hover .variable_popup {
+ display: block;
+ padding: 2px;
+ -webkit-border-radius:5px;
+ -webkit-box-shadow:1px 1px 7px #000;
+ border-radius:5px;
+ box-shadow:1px 1px 7px #000;
+ position: absolute;
+ top: -1em;
+ left:10em;
+ z-index: 1
+}
+
+.macro_popup {
+ border: 2px solid red;
+ background-color:#FFF0F0;
+ font-weight: normal;
+}
+
+.variable_popup {
+ border: 2px solid blue;
+ background-color:#F0F0FF;
+ font-weight: bold;
+ font-family: Helvetica, sans-serif;
+ font-size: 9pt;
+}
+
+/* Pop-up notes needs a relative position as a base where they pops up. */
+.macro, .variable {
+ background-color: PaleGoldenRod;
+ position: relative;
+}
+.macro { color: DarkMagenta; }
+
+#tooltiphint {
+ position: fixed;
+ width: 50em;
+ margin-left: -25em;
+ left: 50%;
+ padding: 10px;
+ border: 1px solid #b0b0b0;
+ border-radius: 2px;
+ box-shadow: 1px 1px 7px black;
+ background-color: #c0c0c0;
+ z-index: 2;
+}
+
+.num { width:2.5em; padding-right:2ex; background-color:#eeeeee }
+.num { text-align:right; font-size:8pt }
+.num { color:#444444 }
+.line { padding-left: 1ex; border-left: 3px solid #ccc }
+.line { white-space: pre }
+.msg { -webkit-box-shadow:1px 1px 7px #000 }
+.msg { box-shadow:1px 1px 7px #000 }
+.msg { -webkit-border-radius:5px }
+.msg { border-radius:5px }
+.msg { font-family:Helvetica, sans-serif; font-size:8pt }
+.msg { float:left }
+.msg { position:relative }
+.msg { padding:0.25em 1ex 0.25em 1ex }
+.msg { margin-top:10px; margin-bottom:10px }
+.msg { font-weight:bold }
+.msg { max-width:60em; word-wrap: break-word; white-space: pre-wrap }
+.msgT { padding:0x; spacing:0x }
+.msgEvent { background-color:#fff8b4; color:#000000 }
+.msgControl { background-color:#bbbbbb; color:#000000 }
+.msgNote { background-color:#ddeeff; color:#000000 }
+.mrange { background-color:#dfddf3 }
+.mrange { border-bottom:1px solid #6F9DBE }
+.PathIndex { font-weight: bold; padding:0px 5px; margin-right:5px; }
+.PathIndex { -webkit-border-radius:8px }
+.PathIndex { border-radius:8px }
+.PathIndexEvent { background-color:#bfba87 }
+.PathIndexControl { background-color:#8c8c8c }
+.PathIndexPopUp { background-color: #879abc; }
+.PathNav a { text-decoration:none; font-size: larger }
+.CodeInsertionHint { font-weight: bold; background-color: #10dd10 }
+.CodeRemovalHint { background-color:#de1010 }
+.CodeRemovalHint { border-bottom:1px solid #6F9DBE }
+.msg.selected{ background-color:orange !important; }
+
+table.simpletable {
+ padding: 5px;
+ font-size:12pt;
+ margin:20px;
+ border-collapse: collapse; border-spacing: 0px;
+}
+td.rowname {
+ text-align: right;
+ vertical-align: top;
+ font-weight: bold;
+ color:#444444;
+ padding-right:2ex;
+}
+
+/* Hidden text. */
+input.spoilerhider + label {
+ cursor: pointer;
+ text-decoration: underline;
+ display: block;
+}
+input.spoilerhider {
+ display: none;
+}
+input.spoilerhider ~ .spoiler {
+ overflow: hidden;
+ margin: 10px auto 0;
+ height: 0;
+ opacity: 0;
+}
+input.spoilerhider:checked + label + .spoiler{
+ height: auto;
+ opacity: 1;
+}
+</style>
+</head>
+<body>
+<!-- BUGDESC Call to function 'strcat' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcat'. CWE-119 -->
+
+<!-- BUGTYPE Potential insecure memory buffer bounds restriction in call 'strcat' -->
+
+<!-- BUGCATEGORY Security -->
+
+<!-- BUGFILE /rootdir/src/skey/md4.c -->
+
+<!-- FILENAME md4.c -->
+
+<!-- FUNCTIONNAME MD4Keycrunch -->
+
+<!-- ISSUEHASHCONTENTOFLINEINCONTEXT 8c7a7690bf3450f489bb5df2771b8bd9 -->
+
+<!-- BUGLINE 276 -->
+
+<!-- BUGCOLUMN 2 -->
+
+<!-- BUGPATHLENGTH 1 -->
+
+<!-- BUGMETAEND -->
+<!-- REPORTHEADER -->
+<h3>Bug Summary</h3>
+<table class="simpletable">
+<tr><td class="rowname">File:</td><td>skey/md4.c</td></tr>
+<tr><td class="rowname">Warning:</td><td><a href="#EndPath">line 276, column 2</a><br />Call to function 'strcat' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcat'. CWE-119</td></tr>
+
+</table>
+<!-- REPORTSUMMARYEXTRA -->
+<h3>Annotated Source Code</h3>
+<p>Press <a href="#" onclick="toggleHelp(); return false;">'?'</a>
+ to see keyboard shortcuts</p>
+<input type="checkbox" class="spoilerhider" id="showinvocation" />
+<label for="showinvocation" >Show analyzer invocation</label>
+<div class="spoiler">clang -cc1 -cc1 -triple x86_64-redhat-linux-gnu -analyze -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name md4.c -analyzer-checker=core -analyzer-checker=apiModeling -analyzer-checker=unix -analyzer-checker=deadcode -analyzer-checker=security.insecureAPI.UncheckedReturn -analyzer-checker=security.insecureAPI.getpw -analyzer-checker=security.insecureAPI.gets -analyzer-checker=security.insecureAPI.mktemp -analyzer-checker=security.insecureAPI.mkstemp -analyzer-checker=security.insecureAPI.vfork -analyzer-checker=nullability.NullPassedToNonnull -analyzer-checker=nullability.NullReturnedFromNonnull -analyzer-output plist -w -setup-static-analyzer -mrelocation-model pic -pic-level 2 -fhalf-no-semantic-interposition -mframe-pointer=all -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -tune-cpu generic -debugger-tuning=gdb -fcoverage-compilation-dir=/rootdir/src/skey -resource-dir /usr/bin/../lib/clang/17 -D HAVE_CONFIG_H -I . -I ../.. -I ./.. -D G_DISABLE_SINGLE_INCLUDES -I /usr/include/dconf -I /usr/include/vte-2.91 -I /usr/include/pango-1.0 -I /usr/include/gtk-3.0 -I /usr/include/gdk-pixbuf-2.0 -I /usr/include/cairo -I /usr/include/dbus-1.0 -I /usr/lib64/dbus-1.0/include -I /usr/include/atk-1.0 -I /usr/include/harfbuzz -I /usr/include/freetype2 -I /usr/include/glib-2.0 -I /usr/lib64/glib-2.0/include -I /usr/include/cloudproviders -I /usr/include/at-spi2-atk/2.0 -I /usr/include/at-spi-2.0 -I /usr/include/blkid -I /usr/include/gio-unix-2.0 -I /usr/include/pixman-1 -I /usr/include/libmount -I /usr/include/libxml2 -I /usr/include/fribidi -I /usr/include/libpng16 -I /usr/include/sysprof-6 -D PIC -internal-isystem /usr/bin/../lib/clang/17/include -internal-isystem /usr/local/include -internal-isystem /usr/bin/../lib/gcc/x86_64-redhat-linux/13/../../../../x86_64-redhat-linux/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -Wno-unused-parameter -fdebug-compilation-dir=/rootdir/src/skey -ferror-limit 19 -fgnuc-version=4.2.1 -analyzer-checker deadcode.DeadStores -analyzer-checker alpha.deadcode.UnreachableCode -analyzer-checker alpha.core.CastSize -analyzer-checker alpha.core.CastToStruct -analyzer-checker alpha.core.IdenticalExpr -analyzer-checker alpha.core.SizeofPtr -analyzer-checker alpha.security.ArrayBoundV2 -analyzer-checker alpha.security.MallocOverflow -analyzer-checker alpha.security.ReturnPtrRange -analyzer-checker alpha.unix.SimpleStream -analyzer-checker alpha.unix.cstring.BufferOverlap -analyzer-checker alpha.unix.cstring.NotNullTerminated -analyzer-checker alpha.unix.cstring.OutOfBounds -analyzer-checker alpha.core.FixedAddr -analyzer-checker security.insecureAPI.strcpy -analyzer-output=html -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /rootdir/html-report/2024-02-18-131424-5067-1 -x c md4.c
+</div>
+<div id='tooltiphint' hidden="true">
+ <p>Keyboard shortcuts: </p>
+ <ul>
+ <li>Use 'j/k' keys for keyboard navigation</li>
+ <li>Use 'Shift+S' to show/hide relevant lines</li>
+ <li>Use '?' to toggle this window</li>
+ </ul>
+ <a href="#" onclick="toggleHelp(); return false;">Close</a>
+</div>
+<script type='text/javascript'>
+var relevant_lines = {"1": {"276": 1}};
+
+var filterCounterexample = function (hide) {
+ var tables = document.getElementsByClassName("code");
+ for (var t=0; t<tables.length; t++) {
+ var table = tables[t];
+ var file_id = table.getAttribute("data-fileid");
+ var lines_in_fid = relevant_lines[file_id];
+ if (!lines_in_fid) {
+ lines_in_fid = {};
+ }
+ var lines = table.getElementsByClassName("codeline");
+ for (var i=0; i<lines.length; i++) {
+ var el = lines[i];
+ var lineNo = el.getAttribute("data-linenumber");
+ if (!lines_in_fid[lineNo]) {
+ if (hide) {
+ el.setAttribute("hidden", "");
+ } else {
+ el.removeAttribute("hidden");
+ }
+ }
+ }
+ }
+}
+
+window.addEventListener("keydown", function (event) {
+ if (event.defaultPrevented) {
+ return;
+ }
+ // SHIFT + S
+ if (event.shiftKey && event.keyCode == 83) {
+ var checked = document.getElementsByName("showCounterexample")[0].checked;
+ filterCounterexample(!checked);
+ document.getElementsByName("showCounterexample")[0].click();
+ } else {
+ return;
+ }
+ event.preventDefault();
+}, true);
+
+document.addEventListener("DOMContentLoaded", function() {
+ document.querySelector('input[name="showCounterexample"]').onchange=
+ function (event) {
+ filterCounterexample(this.checked);
+ };
+});
+</script>
+
+<form>
+ <input type="checkbox" name="showCounterexample" id="showCounterexample" />
+ <label for="showCounterexample">
+ Show only relevant lines
+ </label>
+ <input type="checkbox" name="showArrows"
+ id="showArrows" style="margin-left: 10px" />
+ <label for="showArrows">
+ Show control flow arrows
+ </label>
+</form>
+
+<script type='text/javascript'>
+// Return range of numbers from a range [lower, upper).
+function range(lower, upper) {
+ var array = [];
+ for (var i = lower; i <= upper; ++i) {
+ array.push(i);
+ }
+ return array;
+}
+
+var getRelatedArrowIndices = function(pathId) {
+ // HTML numeration of events is a bit different than it is in the path.
+ // Everything is rotated one step to the right, so the last element
+ // (error diagnostic) has index 0.
+ if (pathId == 0) {
+ // arrowIndices has at least 2 elements
+ pathId = arrowIndices.length - 1;
+ }
+
+ return range(arrowIndices[pathId], arrowIndices[pathId - 1]);
+}
+
+var highlightArrowsForSelectedEvent = function() {
+ const selectedNum = findNum();
+ const arrowIndicesToHighlight = getRelatedArrowIndices(selectedNum);
+ arrowIndicesToHighlight.forEach((index) => {
+ var arrow = document.querySelector("#arrow" + index);
+ if(arrow) {
+ classListAdd(arrow, "selected")
+ }
+ });
+}
+
+var getAbsoluteBoundingRect = function(element) {
+ const relative = element.getBoundingClientRect();
+ return {
+ left: relative.left + window.pageXOffset,
+ right: relative.right + window.pageXOffset,
+ top: relative.top + window.pageYOffset,
+ bottom: relative.bottom + window.pageYOffset,
+ height: relative.height,
+ width: relative.width
+ };
+}
+
+var drawArrow = function(index) {
+ // This function is based on the great answer from SO:
+ // https://stackoverflow.com/a/39575674/11582326
+ var start = document.querySelector("#start" + index);
+ var end = document.querySelector("#end" + index);
+ var arrow = document.querySelector("#arrow" + index);
+
+ var startRect = getAbsoluteBoundingRect(start);
+ var endRect = getAbsoluteBoundingRect(end);
+
+ // It is an arrow from a token to itself, no need to visualize it.
+ if (startRect.top == endRect.top &&
+ startRect.left == endRect.left)
+ return;
+
+ // Each arrow is a very simple Bézier curve, with two nodes and
+ // two handles. So, we need to calculate four points in the window:
+ // * start node
+ var posStart = { x: 0, y: 0 };
+ // * end node
+ var posEnd = { x: 0, y: 0 };
+ // * handle for the start node
+ var startHandle = { x: 0, y: 0 };
+ // * handle for the end node
+ var endHandle = { x: 0, y: 0 };
+ // One can visualize it as follows:
+ //
+ // start handle
+ // /
+ // X"""_.-""""X
+ // .' \
+ // / start node
+ // |
+ // |
+ // | end node
+ // \ /
+ // `->X
+ // X-'
+ // \
+ // end handle
+ //
+ // NOTE: (0, 0) is the top left corner of the window.
+
+ // We have 3 similar, but still different scenarios to cover:
+ //
+ // 1. Two tokens on different lines.
+ // -xxx
+ // /
+ // \
+ // -> xxx
+ // In this situation, we draw arrow on the left curving to the left.
+ // 2. Two tokens on the same line, and the destination is on the right.
+ // ____
+ // / \
+ // / V
+ // xxx xxx
+ // In this situation, we draw arrow above curving upwards.
+ // 3. Two tokens on the same line, and the destination is on the left.
+ // xxx xxx
+ // ^ /
+ // \____/
+ // In this situation, we draw arrow below curving downwards.
+ const onDifferentLines = startRect.top <= endRect.top - 5 ||
+ startRect.top >= endRect.top + 5;
+ const leftToRight = startRect.left < endRect.left;
+
+ // NOTE: various magic constants are chosen empirically for
+ // better positioning and look
+ if (onDifferentLines) {
+ // Case #1
+ const topToBottom = startRect.top < endRect.top;
+ posStart.x = startRect.left - 1;
+ // We don't want to start it at the top left corner of the token,
+ // it doesn't feel like this is where the arrow comes from.
+ // For this reason, we start it in the middle of the left side
+ // of the token.
+ posStart.y = startRect.top + startRect.height / 2;
+
+ // End node has arrow head and we give it a bit more space.
+ posEnd.x = endRect.left - 4;
+ posEnd.y = endRect.top;
+
+ // Utility object with x and y offsets for handles.
+ var curvature = {
+ // We want bottom-to-top arrow to curve a bit more, so it doesn't
+ // overlap much with top-to-bottom curves (much more frequent).
+ x: topToBottom ? 15 : 25,
+ y: Math.min((posEnd.y - posStart.y) / 3, 10)
+ }
+
+ // When destination is on the different line, we can make a
+ // curvier arrow because we have space for it.
+ // So, instead of using
+ //
+ // startHandle.x = posStart.x - curvature.x
+ // endHandle.x = posEnd.x - curvature.x
+ //
+ // We use the leftmost of these two values for both handles.
+ startHandle.x = Math.min(posStart.x, posEnd.x) - curvature.x;
+ endHandle.x = startHandle.x;
+
+ // Curving downwards from the start node...
+ startHandle.y = posStart.y + curvature.y;
+ // ... and upwards from the end node.
+ endHandle.y = posEnd.y - curvature.y;
+
+ } else if (leftToRight) {
+ // Case #2
+ // Starting from the top right corner...
+ posStart.x = startRect.right - 1;
+ posStart.y = startRect.top;
+
+ // ...and ending at the top left corner of the end token.
+ posEnd.x = endRect.left + 1;
+ posEnd.y = endRect.top - 1;
+
+ // Utility object with x and y offsets for handles.
+ var curvature = {
+ x: Math.min((posEnd.x - posStart.x) / 3, 15),
+ y: 5
+ }
+
+ // Curving to the right...
+ startHandle.x = posStart.x + curvature.x;
+ // ... and upwards from the start node.
+ startHandle.y = posStart.y - curvature.y;
+
+ // And to the left...
+ endHandle.x = posEnd.x - curvature.x;
+ // ... and upwards from the end node.
+ endHandle.y = posEnd.y - curvature.y;
+
+ } else {
+ // Case #3
+ // Starting from the bottom right corner...
+ posStart.x = startRect.right;
+ posStart.y = startRect.bottom;
+
+ // ...and ending also at the bottom right corner, but of the end token.
+ posEnd.x = endRect.right - 1;
+ posEnd.y = endRect.bottom + 1;
+
+ // Utility object with x and y offsets for handles.
+ var curvature = {
+ x: Math.min((posStart.x - posEnd.x) / 3, 15),
+ y: 5
+ }
+
+ // Curving to the left...
+ startHandle.x = posStart.x - curvature.x;
+ // ... and downwards from the start node.
+ startHandle.y = posStart.y + curvature.y;
+
+ // And to the right...
+ endHandle.x = posEnd.x + curvature.x;
+ // ... and downwards from the end node.
+ endHandle.y = posEnd.y + curvature.y;
+ }
+
+ // Put it all together into a path.
+ // More information on the format:
+ // https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths
+ var pathStr = "M" + posStart.x + "," + posStart.y + " " +
+ "C" + startHandle.x + "," + startHandle.y + " " +
+ endHandle.x + "," + endHandle.y + " " +
+ posEnd.x + "," + posEnd.y;
+
+ arrow.setAttribute("d", pathStr);
+};
+
+var drawArrows = function() {
+ const numOfArrows = document.querySelectorAll("path[id^=arrow]").length;
+ for (var i = 0; i < numOfArrows; ++i) {
+ drawArrow(i);
+ }
+}
+
+var toggleArrows = function(event) {
+ const arrows = document.querySelector("#arrows");
+ if (event.target.checked) {
+ arrows.setAttribute("visibility", "visible");
+ } else {
+ arrows.setAttribute("visibility", "hidden");
+ }
+}
+
+window.addEventListener("resize", drawArrows);
+document.addEventListener("DOMContentLoaded", function() {
+ // Whenever we show invocation, locations change, i.e. we
+ // need to redraw arrows.
+ document
+ .querySelector('input[id="showinvocation"]')
+ .addEventListener("click", drawArrows);
+ // Hiding irrelevant lines also should cause arrow rerender.
+ document
+ .querySelector('input[name="showCounterexample"]')
+ .addEventListener("change", drawArrows);
+ document
+ .querySelector('input[name="showArrows"]')
+ .addEventListener("change", toggleArrows);
+ drawArrows();
+ // Default highlighting for the last event.
+ highlightArrowsForSelectedEvent();
+});
+</script>
+
+<script type='text/javascript'>
+var digitMatcher = new RegExp("[0-9]+");
+
+var querySelectorAllArray = function(selector) {
+ return Array.prototype.slice.call(
+ document.querySelectorAll(selector));
+}
+
+document.addEventListener("DOMContentLoaded", function() {
+ querySelectorAllArray(".PathNav > a").forEach(
+ function(currentValue, currentIndex) {
+ var hrefValue = currentValue.getAttribute("href");
+ currentValue.onclick = function() {
+ scrollTo(document.querySelector(hrefValue));
+ return false;
+ };
+ });
+});
+
+var findNum = function() {
+ var s = document.querySelector(".msg.selected");
+ if (!s || s.id == "EndPath") {
+ return 0;
+ }
+ var out = parseInt(digitMatcher.exec(s.id)[0]);
+ return out;
+};
+
+var classListAdd = function(el, theClass) {
+ if(!el.className.baseVal)
+ el.className += " " + theClass;
+ else
+ el.className.baseVal += " " + theClass;
+};
+
+var classListRemove = function(el, theClass) {
+ var className = (!el.className.baseVal) ?
+ el.className : el.className.baseVal;
+ className = className.replace(" " + theClass, "");
+ if(!el.className.baseVal)
+ el.className = className;
+ else
+ el.className.baseVal = className;
+};
+
+var scrollTo = function(el) {
+ querySelectorAllArray(".selected").forEach(function(s) {
+ classListRemove(s, "selected");
+ });
+ classListAdd(el, "selected");
+ window.scrollBy(0, el.getBoundingClientRect().top -
+ (window.innerHeight / 2));
+ highlightArrowsForSelectedEvent();
+};
+
+var move = function(num, up, numItems) {
+ if (num == 1 && up || num == numItems - 1 && !up) {
+ return 0;
+ } else if (num == 0 && up) {
+ return numItems - 1;
+ } else if (num == 0 && !up) {
+ return 1 % numItems;
+ }
+ return up ? num - 1 : num + 1;
+}
+
+var numToId = function(num) {
+ if (num == 0) {
+ return document.getElementById("EndPath")
+ }
+ return document.getElementById("Path" + num);
+};
+
+var navigateTo = function(up) {
+ var numItems = document.querySelectorAll(
+ ".line > .msgEvent, .line > .msgControl").length;
+ var currentSelected = findNum();
+ var newSelected = move(currentSelected, up, numItems);
+ var newEl = numToId(newSelected, numItems);
+
+ // Scroll element into center.
+ scrollTo(newEl);
+};
+
+window.addEventListener("keydown", function (event) {
+ if (event.defaultPrevented) {
+ return;
+ }
+ // key 'j'
+ if (event.keyCode == 74) {
+ navigateTo(/*up=*/false);
+ // key 'k'
+ } else if (event.keyCode == 75) {
+ navigateTo(/*up=*/true);
+ } else {
+ return;
+ }
+ event.preventDefault();
+}, true);
+</script>
+
+<script type='text/javascript'>
+
+var toggleHelp = function() {
+ var hint = document.querySelector("#tooltiphint");
+ var attributeName = "hidden";
+ if (hint.hasAttribute(attributeName)) {
+ hint.removeAttribute(attributeName);
+ } else {
+ hint.setAttribute("hidden", "true");
+ }
+};
+window.addEventListener("keydown", function (event) {
+ if (event.defaultPrevented) {
+ return;
+ }
+ if (event.key == "?") {
+ toggleHelp();
+ } else {
+ return;
+ }
+ event.preventDefault();
+});
+</script>
+
+<style type="text/css">
+ svg {
+ position:absolute;
+ top:0;
+ left:0;
+ height:100%;
+ width:100%;
+ pointer-events: none;
+ overflow: visible
+ }
+ .arrow {
+ stroke-opacity: 0.2;
+ stroke-width: 1;
+ marker-end: url(#arrowhead);
+ }
+
+ .arrow.selected {
+ stroke-opacity: 0.6;
+ stroke-width: 2;
+ marker-end: url(#arrowheadSelected);
+ }
+
+ .arrowhead {
+ orient: auto;
+ stroke: none;
+ opacity: 0.6;
+ fill: blue;
+ }
+</style>
+<svg xmlns="http://www.w3.org/2000/svg">
+ <defs>
+ <marker id="arrowheadSelected" class="arrowhead" opacity="0.6"
+ viewBox="0 0 10 10" refX="3" refY="5"
+ markerWidth="4" markerHeight="4">
+ <path d="M 0 0 L 10 5 L 0 10 z" />
+ </marker>
+ <marker id="arrowhead" class="arrowhead" opacity="0.2"
+ viewBox="0 0 10 10" refX="3" refY="5"
+ markerWidth="4" markerHeight="4">
+ <path d="M 0 0 L 10 5 L 0 10 z" />
+ </marker>
+ </defs>
+ <g id="arrows" fill="none" stroke="blue" visibility="hidden">
+
+ </g>
+</svg>
+<script type='text/javascript'>
+const arrowIndices = [ 0,0 ]
+</script>
+<table class="code" data-fileid="1">
+<tr class="codeline" data-linenumber="1"><td class="num" id="LN1">1</td><td class="line"><span class='comment'>/*</span></td></tr>
+<tr class="codeline" data-linenumber="2"><td class="num" id="LN2">2</td><td class="line"> <span class='comment'>* Copyright (C) 2001 Nikos Mavroyanopoulos</span></td></tr>
+<tr class="codeline" data-linenumber="3"><td class="num" id="LN3">3</td><td class="line"> <span class='comment'>* Copyright (C) 2012-2021 MATE Developers</span></td></tr>
+<tr class="codeline" data-linenumber="4"><td class="num" id="LN4">4</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="5"><td class="num" id="LN5">5</td><td class="line"> <span class='comment'>* This library is free software; you can redistribute it and/or modify it</span></td></tr>
+<tr class="codeline" data-linenumber="6"><td class="num" id="LN6">6</td><td class="line"> <span class='comment'>* under the terms of the GNU Library General Public License as published</span></td></tr>
+<tr class="codeline" data-linenumber="7"><td class="num" id="LN7">7</td><td class="line"> <span class='comment'>* by the Free Software Foundation; either version 3 of the License, or</span></td></tr>
+<tr class="codeline" data-linenumber="8"><td class="num" id="LN8">8</td><td class="line"> <span class='comment'>* (at your option) any later version.</span></td></tr>
+<tr class="codeline" data-linenumber="9"><td class="num" id="LN9">9</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="10"><td class="num" id="LN10">10</td><td class="line"> <span class='comment'>* This library is distributed in the hope that it will be useful,</span></td></tr>
+<tr class="codeline" data-linenumber="11"><td class="num" id="LN11">11</td><td class="line"> <span class='comment'>* but WITHOUT ANY WARRANTY; without even the implied warranty of</span></td></tr>
+<tr class="codeline" data-linenumber="12"><td class="num" id="LN12">12</td><td class="line"> <span class='comment'>* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</span></td></tr>
+<tr class="codeline" data-linenumber="13"><td class="num" id="LN13">13</td><td class="line"> <span class='comment'>* Library General Public License for more details.</span></td></tr>
+<tr class="codeline" data-linenumber="14"><td class="num" id="LN14">14</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="15"><td class="num" id="LN15">15</td><td class="line"> <span class='comment'>* You should have received a copy of the GNU Library General Public</span></td></tr>
+<tr class="codeline" data-linenumber="16"><td class="num" id="LN16">16</td><td class="line"> <span class='comment'>* License along with this library; if not, write to the</span></td></tr>
+<tr class="codeline" data-linenumber="17"><td class="num" id="LN17">17</td><td class="line"> <span class='comment'>* Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,</span></td></tr>
+<tr class="codeline" data-linenumber="18"><td class="num" id="LN18">18</td><td class="line"> <span class='comment'>* Boston, MA 02110-1301, USA.</span></td></tr>
+<tr class="codeline" data-linenumber="19"><td class="num" id="LN19">19</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="20"><td class="num" id="LN20">20</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="21"><td class="num" id="LN21">21</td><td class="line"><span class='comment'>/*</span></td></tr>
+<tr class="codeline" data-linenumber="22"><td class="num" id="LN22">22</td><td class="line"> <span class='comment'>* The algorithm is due to Ron Rivest. This code is based on code</span></td></tr>
+<tr class="codeline" data-linenumber="23"><td class="num" id="LN23">23</td><td class="line"> <span class='comment'>* written by Colin Plumb in 1993.</span></td></tr>
+<tr class="codeline" data-linenumber="24"><td class="num" id="LN24">24</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="25"><td class="num" id="LN25">25</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="26"><td class="num" id="LN26">26</td><td class="line"><span class='directive'>#include &lt;string.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="27"><td class="num" id="LN27">27</td><td class="line"><span class='directive'>#include &lt;stdlib.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="28"><td class="num" id="LN28">28</td><td class="line"><span class='directive'>#include "config.h"</span></td></tr>
+<tr class="codeline" data-linenumber="29"><td class="num" id="LN29">29</td><td class="line"><span class='directive'>#include "skey.h"</span></td></tr>
+<tr class="codeline" data-linenumber="30"><td class="num" id="LN30">30</td><td class="line"><span class='directive'>#include "skeyutil.h"</span></td></tr>
+<tr class="codeline" data-linenumber="31"><td class="num" id="LN31">31</td><td class="line"><span class='directive'>#include "md4.h"</span></td></tr>
+<tr class="codeline" data-linenumber="32"><td class="num" id="LN32">32</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="33"><td class="num" id="LN33">33</td><td class="line"><span class='directive'>#ifndef WORDS_BIGENDIAN</span></td></tr>
+<tr class="codeline" data-linenumber="34"><td class="num" id="LN34">34</td><td class="line"><span class='directive'>#define byteReverse(buf, len) /* Nothing */</span></td></tr>
+<tr class="codeline" data-linenumber="35"><td class="num" id="LN35">35</td><td class="line"><span class='directive'>#else</span></td></tr>
+<tr class="codeline" data-linenumber="36"><td class="num" id="LN36">36</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> byteReverse(<span class='keyword'>unsigned</span> <span class='keyword'>char</span> *buf, <span class='keyword'>unsigned</span> longs);</td></tr>
+<tr class="codeline" data-linenumber="37"><td class="num" id="LN37">37</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="38"><td class="num" id="LN38">38</td><td class="line"><span class='comment'>/*</span></td></tr>
+<tr class="codeline" data-linenumber="39"><td class="num" id="LN39">39</td><td class="line"> <span class='comment'>* Note: this code is harmless on little-endian machines.</span></td></tr>
+<tr class="codeline" data-linenumber="40"><td class="num" id="LN40">40</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="41"><td class="num" id="LN41">41</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> byteReverse(<span class='keyword'>unsigned</span> <span class='keyword'>char</span> *buf, <span class='keyword'>unsigned</span> longs)</td></tr>
+<tr class="codeline" data-linenumber="42"><td class="num" id="LN42">42</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="43"><td class="num" id="LN43">43</td><td class="line"> guint32 t;</td></tr>
+<tr class="codeline" data-linenumber="44"><td class="num" id="LN44">44</td><td class="line"> <span class='keyword'>do</span></td></tr>
+<tr class="codeline" data-linenumber="45"><td class="num" id="LN45">45</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="46"><td class="num" id="LN46">46</td><td class="line"> t = (guint32) ((<span class='keyword'>unsigned</span>) buf[3] &lt;&lt; 8 | buf[2]) &lt;&lt; 16 |</td></tr>
+<tr class="codeline" data-linenumber="47"><td class="num" id="LN47">47</td><td class="line"> ((<span class='keyword'>unsigned</span>) buf[1] &lt;&lt; 8 | buf[0]);</td></tr>
+<tr class="codeline" data-linenumber="48"><td class="num" id="LN48">48</td><td class="line"> *(guint32 *) buf = t;</td></tr>
+<tr class="codeline" data-linenumber="49"><td class="num" id="LN49">49</td><td class="line"> buf += 4;</td></tr>
+<tr class="codeline" data-linenumber="50"><td class="num" id="LN50">50</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="51"><td class="num" id="LN51">51</td><td class="line"> <span class='keyword'>while</span> (--longs);</td></tr>
+<tr class="codeline" data-linenumber="52"><td class="num" id="LN52">52</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="53"><td class="num" id="LN53">53</td><td class="line"><span class='directive'>#endif</span></td></tr>
+<tr class="codeline" data-linenumber="54"><td class="num" id="LN54">54</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="55"><td class="num" id="LN55">55</td><td class="line"><span class='directive'>#define <span class='macro'>rotl32(x,n)<span class='macro_popup'>(((x) &lt;&lt; ((guint32)(n))) | ((x) &gt;&gt; (32 - (guint32<br>)(n))))</span></span> (((x) &lt;&lt; ((guint32)(n))) | ((x) &gt;&gt; (32 - (guint32)(n))))</span></td></tr>
+<tr class="codeline" data-linenumber="56"><td class="num" id="LN56">56</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="57"><td class="num" id="LN57">57</td><td class="line"><span class='comment'>/*</span></td></tr>
+<tr class="codeline" data-linenumber="58"><td class="num" id="LN58">58</td><td class="line"> <span class='comment'>* Start MD4 accumulation. Set bit count to 0 and buffer to mysterious</span></td></tr>
+<tr class="codeline" data-linenumber="59"><td class="num" id="LN59">59</td><td class="line"> <span class='comment'>* initialization constants.</span></td></tr>
+<tr class="codeline" data-linenumber="60"><td class="num" id="LN60">60</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="61"><td class="num" id="LN61">61</td><td class="line"><span class='keyword'>void</span> MD4Init(MD4_CTX *ctx)</td></tr>
+<tr class="codeline" data-linenumber="62"><td class="num" id="LN62">62</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="63"><td class="num" id="LN63">63</td><td class="line"> ctx-&gt;buf[0] = 0x67452301;</td></tr>
+<tr class="codeline" data-linenumber="64"><td class="num" id="LN64">64</td><td class="line"> ctx-&gt;buf[1] = 0xefcdab89;</td></tr>
+<tr class="codeline" data-linenumber="65"><td class="num" id="LN65">65</td><td class="line"> ctx-&gt;buf[2] = 0x98badcfe;</td></tr>
+<tr class="codeline" data-linenumber="66"><td class="num" id="LN66">66</td><td class="line"> ctx-&gt;buf[3] = 0x10325476;</td></tr>
+<tr class="codeline" data-linenumber="67"><td class="num" id="LN67">67</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="68"><td class="num" id="LN68">68</td><td class="line"> ctx-&gt;bits[0] = 0;</td></tr>
+<tr class="codeline" data-linenumber="69"><td class="num" id="LN69">69</td><td class="line"> ctx-&gt;bits[1] = 0;</td></tr>
+<tr class="codeline" data-linenumber="70"><td class="num" id="LN70">70</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="71"><td class="num" id="LN71">71</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="72"><td class="num" id="LN72">72</td><td class="line"><span class='comment'>/*</span></td></tr>
+<tr class="codeline" data-linenumber="73"><td class="num" id="LN73">73</td><td class="line"> <span class='comment'>* Update context to reflect the concatenation of another buffer full</span></td></tr>
+<tr class="codeline" data-linenumber="74"><td class="num" id="LN74">74</td><td class="line"> <span class='comment'>* of bytes.</span></td></tr>
+<tr class="codeline" data-linenumber="75"><td class="num" id="LN75">75</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="76"><td class="num" id="LN76">76</td><td class="line"><span class='keyword'>void</span> MD4Update(MD4_CTX *ctx, <span class='keyword'>unsigned</span> <span class='keyword'>char</span> <span class='keyword'>const</span> *buf,</td></tr>
+<tr class="codeline" data-linenumber="77"><td class="num" id="LN77">77</td><td class="line"> <span class='keyword'>unsigned</span> len)</td></tr>
+<tr class="codeline" data-linenumber="78"><td class="num" id="LN78">78</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="79"><td class="num" id="LN79">79</td><td class="line"> <span class='keyword'>register</span> guint32 t;</td></tr>
+<tr class="codeline" data-linenumber="80"><td class="num" id="LN80">80</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="81"><td class="num" id="LN81">81</td><td class="line"> <span class='comment'>/* Update bitcount */</span></td></tr>
+<tr class="codeline" data-linenumber="82"><td class="num" id="LN82">82</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="83"><td class="num" id="LN83">83</td><td class="line"> t = ctx-&gt;bits[0];</td></tr>
+<tr class="codeline" data-linenumber="84"><td class="num" id="LN84">84</td><td class="line"> <span class='keyword'>if</span> ((ctx-&gt;bits[0] = t + ((guint32) len &lt;&lt; 3)) &lt; t)</td></tr>
+<tr class="codeline" data-linenumber="85"><td class="num" id="LN85">85</td><td class="line"> ctx-&gt;bits[1]++; <span class='comment'>/* Carry from low to high */</span></td></tr>
+<tr class="codeline" data-linenumber="86"><td class="num" id="LN86">86</td><td class="line"> ctx-&gt;bits[1] += len &gt;&gt; 29;</td></tr>
+<tr class="codeline" data-linenumber="87"><td class="num" id="LN87">87</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="88"><td class="num" id="LN88">88</td><td class="line"> t = (t &gt;&gt; 3) &amp; 0x3f; <span class='comment'>/* Bytes already in shsInfo-&gt;data */</span></td></tr>
+<tr class="codeline" data-linenumber="89"><td class="num" id="LN89">89</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="90"><td class="num" id="LN90">90</td><td class="line"> <span class='comment'>/* Handle any leading odd-sized chunks */</span></td></tr>
+<tr class="codeline" data-linenumber="91"><td class="num" id="LN91">91</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="92"><td class="num" id="LN92">92</td><td class="line"> <span class='keyword'>if</span> (t)</td></tr>
+<tr class="codeline" data-linenumber="93"><td class="num" id="LN93">93</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="94"><td class="num" id="LN94">94</td><td class="line"> <span class='keyword'>unsigned</span> <span class='keyword'>char</span> *p = (<span class='keyword'>unsigned</span> <span class='keyword'>char</span> *) ctx-&gt;in + t;</td></tr>
+<tr class="codeline" data-linenumber="95"><td class="num" id="LN95">95</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="96"><td class="num" id="LN96">96</td><td class="line"> t = 64 - t;</td></tr>
+<tr class="codeline" data-linenumber="97"><td class="num" id="LN97">97</td><td class="line"> <span class='keyword'>if</span> (len &lt; t)</td></tr>
+<tr class="codeline" data-linenumber="98"><td class="num" id="LN98">98</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="99"><td class="num" id="LN99">99</td><td class="line"> memcpy(p, buf, len);</td></tr>
+<tr class="codeline" data-linenumber="100"><td class="num" id="LN100">100</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="101"><td class="num" id="LN101">101</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="102"><td class="num" id="LN102">102</td><td class="line"> memcpy(p, buf, t);</td></tr>
+<tr class="codeline" data-linenumber="103"><td class="num" id="LN103">103</td><td class="line"> byteReverse(ctx-&gt;in, 16);</td></tr>
+<tr class="codeline" data-linenumber="104"><td class="num" id="LN104">104</td><td class="line"> MD4Transform(ctx-&gt;buf, (guint32 *) ctx-&gt;in);</td></tr>
+<tr class="codeline" data-linenumber="105"><td class="num" id="LN105">105</td><td class="line"> buf += t;</td></tr>
+<tr class="codeline" data-linenumber="106"><td class="num" id="LN106">106</td><td class="line"> len -= t;</td></tr>
+<tr class="codeline" data-linenumber="107"><td class="num" id="LN107">107</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="108"><td class="num" id="LN108">108</td><td class="line"> <span class='comment'>/* Process data in 64-byte chunks */</span></td></tr>
+<tr class="codeline" data-linenumber="109"><td class="num" id="LN109">109</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="110"><td class="num" id="LN110">110</td><td class="line"> <span class='keyword'>while</span> (len &gt;= 64)</td></tr>
+<tr class="codeline" data-linenumber="111"><td class="num" id="LN111">111</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="112"><td class="num" id="LN112">112</td><td class="line"> memcpy(ctx-&gt;in, buf, 64);</td></tr>
+<tr class="codeline" data-linenumber="113"><td class="num" id="LN113">113</td><td class="line"> byteReverse(ctx-&gt;in, 16);</td></tr>
+<tr class="codeline" data-linenumber="114"><td class="num" id="LN114">114</td><td class="line"> MD4Transform(ctx-&gt;buf, (guint32 *) ctx-&gt;in);</td></tr>
+<tr class="codeline" data-linenumber="115"><td class="num" id="LN115">115</td><td class="line"> buf += 64;</td></tr>
+<tr class="codeline" data-linenumber="116"><td class="num" id="LN116">116</td><td class="line"> len -= 64;</td></tr>
+<tr class="codeline" data-linenumber="117"><td class="num" id="LN117">117</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="118"><td class="num" id="LN118">118</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="119"><td class="num" id="LN119">119</td><td class="line"> <span class='comment'>/* Handle any remaining bytes of data. */</span></td></tr>
+<tr class="codeline" data-linenumber="120"><td class="num" id="LN120">120</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="121"><td class="num" id="LN121">121</td><td class="line"> memcpy(ctx-&gt;in, buf, len);</td></tr>
+<tr class="codeline" data-linenumber="122"><td class="num" id="LN122">122</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="123"><td class="num" id="LN123">123</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="124"><td class="num" id="LN124">124</td><td class="line"><span class='comment'>/*</span></td></tr>
+<tr class="codeline" data-linenumber="125"><td class="num" id="LN125">125</td><td class="line"> <span class='comment'>* Final wrapup - pad to 64-byte boundary with the bit pattern</span></td></tr>
+<tr class="codeline" data-linenumber="126"><td class="num" id="LN126">126</td><td class="line"> <span class='comment'>* 1 0* (64-bit count of bits processed, MSB-first)</span></td></tr>
+<tr class="codeline" data-linenumber="127"><td class="num" id="LN127">127</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="128"><td class="num" id="LN128">128</td><td class="line"><span class='keyword'>void</span> MD4Final(<span class='keyword'>unsigned</span> <span class='keyword'>char</span>* digest, MD4_CTX *ctx)</td></tr>
+<tr class="codeline" data-linenumber="129"><td class="num" id="LN129">129</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="130"><td class="num" id="LN130">130</td><td class="line"> <span class='keyword'>unsigned</span> <span class='keyword'>int</span> count;</td></tr>
+<tr class="codeline" data-linenumber="131"><td class="num" id="LN131">131</td><td class="line"> <span class='keyword'>unsigned</span> <span class='keyword'>char</span> *p;</td></tr>
+<tr class="codeline" data-linenumber="132"><td class="num" id="LN132">132</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="133"><td class="num" id="LN133">133</td><td class="line"> <span class='comment'>/* Compute number of bytes mod 64 */</span></td></tr>
+<tr class="codeline" data-linenumber="134"><td class="num" id="LN134">134</td><td class="line"> count = (ctx-&gt;bits[0] &gt;&gt; 3) &amp; 0x3F;</td></tr>
+<tr class="codeline" data-linenumber="135"><td class="num" id="LN135">135</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="136"><td class="num" id="LN136">136</td><td class="line"> <span class='comment'>/* Set the first char of padding to 0x80. This is safe since there is</span></td></tr>
+<tr class="codeline" data-linenumber="137"><td class="num" id="LN137">137</td><td class="line"> <span class='comment'>always at least one byte free */</span></td></tr>
+<tr class="codeline" data-linenumber="138"><td class="num" id="LN138">138</td><td class="line"> p = ctx-&gt;in + count;</td></tr>
+<tr class="codeline" data-linenumber="139"><td class="num" id="LN139">139</td><td class="line"> *p++ = 0x80;</td></tr>
+<tr class="codeline" data-linenumber="140"><td class="num" id="LN140">140</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="141"><td class="num" id="LN141">141</td><td class="line"> <span class='comment'>/* Bytes of padding needed to make 64 bytes */</span></td></tr>
+<tr class="codeline" data-linenumber="142"><td class="num" id="LN142">142</td><td class="line"> count = 64 - 1 - count;</td></tr>
+<tr class="codeline" data-linenumber="143"><td class="num" id="LN143">143</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="144"><td class="num" id="LN144">144</td><td class="line"> <span class='comment'>/* Pad out to 56 mod 64 */</span></td></tr>
+<tr class="codeline" data-linenumber="145"><td class="num" id="LN145">145</td><td class="line"> <span class='keyword'>if</span> (count &lt; 8)</td></tr>
+<tr class="codeline" data-linenumber="146"><td class="num" id="LN146">146</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="147"><td class="num" id="LN147">147</td><td class="line"> <span class='comment'>/* Two lots of padding: Pad the first block to 64 bytes */</span></td></tr>
+<tr class="codeline" data-linenumber="148"><td class="num" id="LN148">148</td><td class="line"> memset(p, 0, count);</td></tr>
+<tr class="codeline" data-linenumber="149"><td class="num" id="LN149">149</td><td class="line"> byteReverse(ctx-&gt;in, 16);</td></tr>
+<tr class="codeline" data-linenumber="150"><td class="num" id="LN150">150</td><td class="line"> MD4Transform(ctx-&gt;buf, (guint32 *) ctx-&gt;in);</td></tr>
+<tr class="codeline" data-linenumber="151"><td class="num" id="LN151">151</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="152"><td class="num" id="LN152">152</td><td class="line"> <span class='comment'>/* Now fill the next block with 56 bytes */</span></td></tr>
+<tr class="codeline" data-linenumber="153"><td class="num" id="LN153">153</td><td class="line"> memset(ctx-&gt;in, 0, 56);</td></tr>
+<tr class="codeline" data-linenumber="154"><td class="num" id="LN154">154</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="155"><td class="num" id="LN155">155</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="156"><td class="num" id="LN156">156</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="157"><td class="num" id="LN157">157</td><td class="line"> <span class='comment'>/* Pad block to 56 bytes */</span></td></tr>
+<tr class="codeline" data-linenumber="158"><td class="num" id="LN158">158</td><td class="line"> memset(p, 0, count - 8);</td></tr>
+<tr class="codeline" data-linenumber="159"><td class="num" id="LN159">159</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="160"><td class="num" id="LN160">160</td><td class="line"> byteReverse(ctx-&gt;in, 14);</td></tr>
+<tr class="codeline" data-linenumber="161"><td class="num" id="LN161">161</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="162"><td class="num" id="LN162">162</td><td class="line"> <span class='comment'>/* Append length in bits and transform */</span></td></tr>
+<tr class="codeline" data-linenumber="163"><td class="num" id="LN163">163</td><td class="line"> ((guint32 *) ctx-&gt;in)[14] = ctx-&gt;bits[0];</td></tr>
+<tr class="codeline" data-linenumber="164"><td class="num" id="LN164">164</td><td class="line"> ((guint32 *) ctx-&gt;in)[15] = ctx-&gt;bits[1];</td></tr>
+<tr class="codeline" data-linenumber="165"><td class="num" id="LN165">165</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="166"><td class="num" id="LN166">166</td><td class="line"> MD4Transform(ctx-&gt;buf, (guint32 *) ctx-&gt;in);</td></tr>
+<tr class="codeline" data-linenumber="167"><td class="num" id="LN167">167</td><td class="line"> byteReverse((<span class='keyword'>unsigned</span> <span class='keyword'>char</span> *) ctx-&gt;buf, 4);</td></tr>
+<tr class="codeline" data-linenumber="168"><td class="num" id="LN168">168</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="169"><td class="num" id="LN169">169</td><td class="line"> <span class='keyword'>if</span> (digest!=<span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="170"><td class="num" id="LN170">170</td><td class="line"> memcpy(digest, ctx-&gt;buf, 16);</td></tr>
+<tr class="codeline" data-linenumber="171"><td class="num" id="LN171">171</td><td class="line"> memset(ctx, 0, <span class='keyword'>sizeof</span>(*ctx)); <span class='comment'>/* In case it's sensitive */</span></td></tr>
+<tr class="codeline" data-linenumber="172"><td class="num" id="LN172">172</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="173"><td class="num" id="LN173">173</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="174"><td class="num" id="LN174">174</td><td class="line"><span class='comment'>/* The three core functions */</span></td></tr>
+<tr class="codeline" data-linenumber="175"><td class="num" id="LN175">175</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="176"><td class="num" id="LN176">176</td><td class="line"><span class='directive'>#define <span class='macro'>F(x, y, z)<span class='macro_popup'>(((x) &amp; (y)) | ((~x) &amp; (z)))</span></span> (((x) &amp; (y)) | ((~x) &amp; (z)))</span></td></tr>
+<tr class="codeline" data-linenumber="177"><td class="num" id="LN177">177</td><td class="line"><span class='directive'>#define <span class='macro'>G(x, y, z)<span class='macro_popup'>(((x) &amp; (y)) | ((x) &amp; (z)) | ((y) &amp; (z)))</span></span> (((x) &amp; (y)) | ((x) &amp; (z)) | ((y) &amp; (z)))</span></td></tr>
+<tr class="codeline" data-linenumber="178"><td class="num" id="LN178">178</td><td class="line"><span class='directive'>#define <span class='macro'>H(x, y, z)<span class='macro_popup'>((x) ^ (y) ^ (z))</span></span> ((x) ^ (y) ^ (z))</span></td></tr>
+<tr class="codeline" data-linenumber="179"><td class="num" id="LN179">179</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="180"><td class="num" id="LN180">180</td><td class="line"><span class='directive'>#define <span class='macro'>FF(a, b, c, d, x, s)<span class='macro_popup'>{ (a) += ((((b)) &amp; ((c))) | ((~(b)) &amp; ((d)))) + (x); (<br>a) = ((((a)) &lt;&lt; ((guint32)((s)))) | (((a)) &gt;&gt; (32<br> - (guint32)((s))))); }</span></span> { \</span></td></tr>
+<tr class="codeline" data-linenumber="181"><td class="num" id="LN181">181</td><td class="line"> <span class='directive'>(a) += <span class='macro'>F ((b), (c), (d))<span class='macro_popup'>((((b)) &amp; ((c))) | ((~(b)) &amp; ((d))))</span></span> + (x); \</span></td></tr>
+<tr class="codeline" data-linenumber="182"><td class="num" id="LN182">182</td><td class="line"> <span class='directive'>(a) = <span class='macro'>rotl32 ((a), (s))<span class='macro_popup'>((((a)) &lt;&lt; ((guint32)((s)))) | (((a)) &gt;&gt; (32 - (guint32<br>)((s)))))</span></span>; \</span></td></tr>
+<tr class="codeline" data-linenumber="183"><td class="num" id="LN183">183</td><td class="line"> <span class='directive'>}</span></td></tr>
+<tr class="codeline" data-linenumber="184"><td class="num" id="LN184">184</td><td class="line"><span class='directive'>#define <span class='macro'>GG(a, b, c, d, x, s)<span class='macro_popup'>{ (a) += ((((b)) &amp; ((c))) | (((b)) &amp; ((d))) | (((c)) &amp;<br> ((d)))) + (x) + (guint32)0x5a827999; (a) = ((((a)) &lt;&lt; (<br>(guint32)((s)))) | (((a)) &gt;&gt; (32 - (guint32)((s))))); }</span></span> { \</span></td></tr>
+<tr class="codeline" data-linenumber="185"><td class="num" id="LN185">185</td><td class="line"> <span class='directive'>(a) += <span class='macro'>G ((b), (c), (d))<span class='macro_popup'>((((b)) &amp; ((c))) | (((b)) &amp; ((d))) | (((c)) &amp; ((d<br>))))</span></span> + (x) + (guint32)0x5a827999; \</span></td></tr>
+<tr class="codeline" data-linenumber="186"><td class="num" id="LN186">186</td><td class="line"> <span class='directive'>(a) = <span class='macro'>rotl32 ((a), (s))<span class='macro_popup'>((((a)) &lt;&lt; ((guint32)((s)))) | (((a)) &gt;&gt; (32 - (guint32<br>)((s)))))</span></span>; \</span></td></tr>
+<tr class="codeline" data-linenumber="187"><td class="num" id="LN187">187</td><td class="line"> <span class='directive'>}</span></td></tr>
+<tr class="codeline" data-linenumber="188"><td class="num" id="LN188">188</td><td class="line"><span class='directive'>#define <span class='macro'>HH(a, b, c, d, x, s)<span class='macro_popup'>{ (a) += (((b)) ^ ((c)) ^ ((d))) + (x) + (guint32)0x6ed9eba1;<br> (a) = ((((a)) &lt;&lt; ((guint32)((s)))) | (((a)) &gt;&gt; (<br>32 - (guint32)((s))))); }</span></span> { \</span></td></tr>
+<tr class="codeline" data-linenumber="189"><td class="num" id="LN189">189</td><td class="line"> <span class='directive'>(a) += <span class='macro'>H ((b), (c), (d))<span class='macro_popup'>(((b)) ^ ((c)) ^ ((d)))</span></span> + (x) + (guint32)0x6ed9eba1; \</span></td></tr>
+<tr class="codeline" data-linenumber="190"><td class="num" id="LN190">190</td><td class="line"> <span class='directive'>(a) = <span class='macro'>rotl32 ((a), (s))<span class='macro_popup'>((((a)) &lt;&lt; ((guint32)((s)))) | (((a)) &gt;&gt; (32 - (guint32<br>)((s)))))</span></span>; \</span></td></tr>
+<tr class="codeline" data-linenumber="191"><td class="num" id="LN191">191</td><td class="line"> <span class='directive'>}</span></td></tr>
+<tr class="codeline" data-linenumber="192"><td class="num" id="LN192">192</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="193"><td class="num" id="LN193">193</td><td class="line"><span class='comment'>/*</span></td></tr>
+<tr class="codeline" data-linenumber="194"><td class="num" id="LN194">194</td><td class="line"> <span class='comment'>* The core of the MD4 algorithm</span></td></tr>
+<tr class="codeline" data-linenumber="195"><td class="num" id="LN195">195</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="196"><td class="num" id="LN196">196</td><td class="line"><span class='keyword'>void</span> MD4Transform(guint32 buf[4], guint32 <span class='keyword'>const</span> in[16])</td></tr>
+<tr class="codeline" data-linenumber="197"><td class="num" id="LN197">197</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="198"><td class="num" id="LN198">198</td><td class="line"> <span class='keyword'>register</span> guint32 a, b, c, d;</td></tr>
+<tr class="codeline" data-linenumber="199"><td class="num" id="LN199">199</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="200"><td class="num" id="LN200">200</td><td class="line"> a = buf[0];</td></tr>
+<tr class="codeline" data-linenumber="201"><td class="num" id="LN201">201</td><td class="line"> b = buf[1];</td></tr>
+<tr class="codeline" data-linenumber="202"><td class="num" id="LN202">202</td><td class="line"> c = buf[2];</td></tr>
+<tr class="codeline" data-linenumber="203"><td class="num" id="LN203">203</td><td class="line"> d = buf[3];</td></tr>
+<tr class="codeline" data-linenumber="204"><td class="num" id="LN204">204</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="205"><td class="num" id="LN205">205</td><td class="line"> <span class='macro'>FF(a, b, c, d, in[0], 3)<span class='macro_popup'>{ (a) += ((((b)) &amp; ((c))) | ((~(b)) &amp; ((d)))) + (in[0<br>]); (a) = ((((a)) &lt;&lt; ((guint32)((3)))) | (((a)) &gt;&gt;<br> (32 - (guint32)((3))))); }</span></span>; <span class='comment'>/* 1 */</span></td></tr>
+<tr class="codeline" data-linenumber="206"><td class="num" id="LN206">206</td><td class="line"> <span class='macro'>FF(d, a, b, c, in[1], 7)<span class='macro_popup'>{ (d) += ((((a)) &amp; ((b))) | ((~(a)) &amp; ((c)))) + (in[1<br>]); (d) = ((((d)) &lt;&lt; ((guint32)((7)))) | (((d)) &gt;&gt;<br> (32 - (guint32)((7))))); }</span></span>; <span class='comment'>/* 2 */</span></td></tr>
+<tr class="codeline" data-linenumber="207"><td class="num" id="LN207">207</td><td class="line"> <span class='macro'>FF(c, d, a, b, in[2], 11)<span class='macro_popup'>{ (c) += ((((d)) &amp; ((a))) | ((~(d)) &amp; ((b)))) + (in[2<br>]); (c) = ((((c)) &lt;&lt; ((guint32)((11)))) | (((c)) &gt;&gt;<br> (32 - (guint32)((11))))); }</span></span>; <span class='comment'>/* 3 */</span></td></tr>
+<tr class="codeline" data-linenumber="208"><td class="num" id="LN208">208</td><td class="line"> <span class='macro'>FF(b, c, d, a, in[3], 19)<span class='macro_popup'>{ (b) += ((((c)) &amp; ((d))) | ((~(c)) &amp; ((a)))) + (in[3<br>]); (b) = ((((b)) &lt;&lt; ((guint32)((19)))) | (((b)) &gt;&gt;<br> (32 - (guint32)((19))))); }</span></span>; <span class='comment'>/* 4 */</span></td></tr>
+<tr class="codeline" data-linenumber="209"><td class="num" id="LN209">209</td><td class="line"> <span class='macro'>FF(a, b, c, d, in[4], 3)<span class='macro_popup'>{ (a) += ((((b)) &amp; ((c))) | ((~(b)) &amp; ((d)))) + (in[4<br>]); (a) = ((((a)) &lt;&lt; ((guint32)((3)))) | (((a)) &gt;&gt;<br> (32 - (guint32)((3))))); }</span></span>; <span class='comment'>/* 5 */</span></td></tr>
+<tr class="codeline" data-linenumber="210"><td class="num" id="LN210">210</td><td class="line"> <span class='macro'>FF(d, a, b, c, in[5], 7)<span class='macro_popup'>{ (d) += ((((a)) &amp; ((b))) | ((~(a)) &amp; ((c)))) + (in[5<br>]); (d) = ((((d)) &lt;&lt; ((guint32)((7)))) | (((d)) &gt;&gt;<br> (32 - (guint32)((7))))); }</span></span>; <span class='comment'>/* 6 */</span></td></tr>
+<tr class="codeline" data-linenumber="211"><td class="num" id="LN211">211</td><td class="line"> <span class='macro'>FF(c, d, a, b, in[6], 11)<span class='macro_popup'>{ (c) += ((((d)) &amp; ((a))) | ((~(d)) &amp; ((b)))) + (in[6<br>]); (c) = ((((c)) &lt;&lt; ((guint32)((11)))) | (((c)) &gt;&gt;<br> (32 - (guint32)((11))))); }</span></span>; <span class='comment'>/* 7 */</span></td></tr>
+<tr class="codeline" data-linenumber="212"><td class="num" id="LN212">212</td><td class="line"> <span class='macro'>FF(b, c, d, a, in[7], 19)<span class='macro_popup'>{ (b) += ((((c)) &amp; ((d))) | ((~(c)) &amp; ((a)))) + (in[7<br>]); (b) = ((((b)) &lt;&lt; ((guint32)((19)))) | (((b)) &gt;&gt;<br> (32 - (guint32)((19))))); }</span></span>; <span class='comment'>/* 8 */</span></td></tr>
+<tr class="codeline" data-linenumber="213"><td class="num" id="LN213">213</td><td class="line"> <span class='macro'>FF(a, b, c, d, in[8], 3)<span class='macro_popup'>{ (a) += ((((b)) &amp; ((c))) | ((~(b)) &amp; ((d)))) + (in[8<br>]); (a) = ((((a)) &lt;&lt; ((guint32)((3)))) | (((a)) &gt;&gt;<br> (32 - (guint32)((3))))); }</span></span>; <span class='comment'>/* 9 */</span></td></tr>
+<tr class="codeline" data-linenumber="214"><td class="num" id="LN214">214</td><td class="line"> <span class='macro'>FF(d, a, b, c, in[9], 7)<span class='macro_popup'>{ (d) += ((((a)) &amp; ((b))) | ((~(a)) &amp; ((c)))) + (in[9<br>]); (d) = ((((d)) &lt;&lt; ((guint32)((7)))) | (((d)) &gt;&gt;<br> (32 - (guint32)((7))))); }</span></span>; <span class='comment'>/* 10 */</span></td></tr>
+<tr class="codeline" data-linenumber="215"><td class="num" id="LN215">215</td><td class="line"> <span class='macro'>FF(c, d, a, b, in[10], 11)<span class='macro_popup'>{ (c) += ((((d)) &amp; ((a))) | ((~(d)) &amp; ((b)))) + (in[10<br>]); (c) = ((((c)) &lt;&lt; ((guint32)((11)))) | (((c)) &gt;&gt;<br> (32 - (guint32)((11))))); }</span></span>; <span class='comment'>/* 11 */</span></td></tr>
+<tr class="codeline" data-linenumber="216"><td class="num" id="LN216">216</td><td class="line"> <span class='macro'>FF(b, c, d, a, in[11], 19)<span class='macro_popup'>{ (b) += ((((c)) &amp; ((d))) | ((~(c)) &amp; ((a)))) + (in[11<br>]); (b) = ((((b)) &lt;&lt; ((guint32)((19)))) | (((b)) &gt;&gt;<br> (32 - (guint32)((19))))); }</span></span>; <span class='comment'>/* 12 */</span></td></tr>
+<tr class="codeline" data-linenumber="217"><td class="num" id="LN217">217</td><td class="line"> <span class='macro'>FF(a, b, c, d, in[12], 3)<span class='macro_popup'>{ (a) += ((((b)) &amp; ((c))) | ((~(b)) &amp; ((d)))) + (in[12<br>]); (a) = ((((a)) &lt;&lt; ((guint32)((3)))) | (((a)) &gt;&gt;<br> (32 - (guint32)((3))))); }</span></span>; <span class='comment'>/* 13 */</span></td></tr>
+<tr class="codeline" data-linenumber="218"><td class="num" id="LN218">218</td><td class="line"> <span class='macro'>FF(d, a, b, c, in[13], 7)<span class='macro_popup'>{ (d) += ((((a)) &amp; ((b))) | ((~(a)) &amp; ((c)))) + (in[13<br>]); (d) = ((((d)) &lt;&lt; ((guint32)((7)))) | (((d)) &gt;&gt;<br> (32 - (guint32)((7))))); }</span></span>; <span class='comment'>/* 14 */</span></td></tr>
+<tr class="codeline" data-linenumber="219"><td class="num" id="LN219">219</td><td class="line"> <span class='macro'>FF(c, d, a, b, in[14], 11)<span class='macro_popup'>{ (c) += ((((d)) &amp; ((a))) | ((~(d)) &amp; ((b)))) + (in[14<br>]); (c) = ((((c)) &lt;&lt; ((guint32)((11)))) | (((c)) &gt;&gt;<br> (32 - (guint32)((11))))); }</span></span>; <span class='comment'>/* 15 */</span></td></tr>
+<tr class="codeline" data-linenumber="220"><td class="num" id="LN220">220</td><td class="line"> <span class='macro'>FF(b, c, d, a, in[15], 19)<span class='macro_popup'>{ (b) += ((((c)) &amp; ((d))) | ((~(c)) &amp; ((a)))) + (in[15<br>]); (b) = ((((b)) &lt;&lt; ((guint32)((19)))) | (((b)) &gt;&gt;<br> (32 - (guint32)((19))))); }</span></span>; <span class='comment'>/* 16 */</span></td></tr>
+<tr class="codeline" data-linenumber="221"><td class="num" id="LN221">221</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="222"><td class="num" id="LN222">222</td><td class="line"> <span class='macro'>GG(a, b, c, d, in[0], 3)<span class='macro_popup'>{ (a) += ((((b)) &amp; ((c))) | (((b)) &amp; ((d))) | (((c)) &amp;<br> ((d)))) + (in[0]) + (guint32)0x5a827999; (a) = ((((a)) &lt;&lt;<br> ((guint32)((3)))) | (((a)) &gt;&gt; (32 - (guint32)((3)))));<br> }</span></span>; <span class='comment'>/* 17 */</span></td></tr>
+<tr class="codeline" data-linenumber="223"><td class="num" id="LN223">223</td><td class="line"> <span class='macro'>GG(d, a, b, c, in[4], 5)<span class='macro_popup'>{ (d) += ((((a)) &amp; ((b))) | (((a)) &amp; ((c))) | (((b)) &amp;<br> ((c)))) + (in[4]) + (guint32)0x5a827999; (d) = ((((d)) &lt;&lt;<br> ((guint32)((5)))) | (((d)) &gt;&gt; (32 - (guint32)((5)))));<br> }</span></span>; <span class='comment'>/* 18 */</span></td></tr>
+<tr class="codeline" data-linenumber="224"><td class="num" id="LN224">224</td><td class="line"> <span class='macro'>GG(c, d, a, b, in[8], 9)<span class='macro_popup'>{ (c) += ((((d)) &amp; ((a))) | (((d)) &amp; ((b))) | (((a)) &amp;<br> ((b)))) + (in[8]) + (guint32)0x5a827999; (c) = ((((c)) &lt;&lt;<br> ((guint32)((9)))) | (((c)) &gt;&gt; (32 - (guint32)((9)))));<br> }</span></span>; <span class='comment'>/* 19 */</span></td></tr>
+<tr class="codeline" data-linenumber="225"><td class="num" id="LN225">225</td><td class="line"> <span class='macro'>GG(b, c, d, a, in[12], 13)<span class='macro_popup'>{ (b) += ((((c)) &amp; ((d))) | (((c)) &amp; ((a))) | (((d)) &amp;<br> ((a)))) + (in[12]) + (guint32)0x5a827999; (b) = ((((b)) &lt;&lt;<br> ((guint32)((13)))) | (((b)) &gt;&gt; (32 - (guint32)((13))))<br>); }</span></span>; <span class='comment'>/* 20 */</span></td></tr>
+<tr class="codeline" data-linenumber="226"><td class="num" id="LN226">226</td><td class="line"> <span class='macro'>GG(a, b, c, d, in[1], 3)<span class='macro_popup'>{ (a) += ((((b)) &amp; ((c))) | (((b)) &amp; ((d))) | (((c)) &amp;<br> ((d)))) + (in[1]) + (guint32)0x5a827999; (a) = ((((a)) &lt;&lt;<br> ((guint32)((3)))) | (((a)) &gt;&gt; (32 - (guint32)((3)))));<br> }</span></span>; <span class='comment'>/* 21 */</span></td></tr>
+<tr class="codeline" data-linenumber="227"><td class="num" id="LN227">227</td><td class="line"> <span class='macro'>GG(d, a, b, c, in[5], 5)<span class='macro_popup'>{ (d) += ((((a)) &amp; ((b))) | (((a)) &amp; ((c))) | (((b)) &amp;<br> ((c)))) + (in[5]) + (guint32)0x5a827999; (d) = ((((d)) &lt;&lt;<br> ((guint32)((5)))) | (((d)) &gt;&gt; (32 - (guint32)((5)))));<br> }</span></span>; <span class='comment'>/* 22 */</span></td></tr>
+<tr class="codeline" data-linenumber="228"><td class="num" id="LN228">228</td><td class="line"> <span class='macro'>GG(c, d, a, b, in[9], 9)<span class='macro_popup'>{ (c) += ((((d)) &amp; ((a))) | (((d)) &amp; ((b))) | (((a)) &amp;<br> ((b)))) + (in[9]) + (guint32)0x5a827999; (c) = ((((c)) &lt;&lt;<br> ((guint32)((9)))) | (((c)) &gt;&gt; (32 - (guint32)((9)))));<br> }</span></span>; <span class='comment'>/* 23 */</span></td></tr>
+<tr class="codeline" data-linenumber="229"><td class="num" id="LN229">229</td><td class="line"> <span class='macro'>GG(b, c, d, a, in[13], 13)<span class='macro_popup'>{ (b) += ((((c)) &amp; ((d))) | (((c)) &amp; ((a))) | (((d)) &amp;<br> ((a)))) + (in[13]) + (guint32)0x5a827999; (b) = ((((b)) &lt;&lt;<br> ((guint32)((13)))) | (((b)) &gt;&gt; (32 - (guint32)((13))))<br>); }</span></span>; <span class='comment'>/* 24 */</span></td></tr>
+<tr class="codeline" data-linenumber="230"><td class="num" id="LN230">230</td><td class="line"> <span class='macro'>GG(a, b, c, d, in[2], 3)<span class='macro_popup'>{ (a) += ((((b)) &amp; ((c))) | (((b)) &amp; ((d))) | (((c)) &amp;<br> ((d)))) + (in[2]) + (guint32)0x5a827999; (a) = ((((a)) &lt;&lt;<br> ((guint32)((3)))) | (((a)) &gt;&gt; (32 - (guint32)((3)))));<br> }</span></span>; <span class='comment'>/* 25 */</span></td></tr>
+<tr class="codeline" data-linenumber="231"><td class="num" id="LN231">231</td><td class="line"> <span class='macro'>GG(d, a, b, c, in[6], 5)<span class='macro_popup'>{ (d) += ((((a)) &amp; ((b))) | (((a)) &amp; ((c))) | (((b)) &amp;<br> ((c)))) + (in[6]) + (guint32)0x5a827999; (d) = ((((d)) &lt;&lt;<br> ((guint32)((5)))) | (((d)) &gt;&gt; (32 - (guint32)((5)))));<br> }</span></span>; <span class='comment'>/* 26 */</span></td></tr>
+<tr class="codeline" data-linenumber="232"><td class="num" id="LN232">232</td><td class="line"> <span class='macro'>GG(c, d, a, b, in[10], 9)<span class='macro_popup'>{ (c) += ((((d)) &amp; ((a))) | (((d)) &amp; ((b))) | (((a)) &amp;<br> ((b)))) + (in[10]) + (guint32)0x5a827999; (c) = ((((c)) &lt;&lt;<br> ((guint32)((9)))) | (((c)) &gt;&gt; (32 - (guint32)((9)))));<br> }</span></span>; <span class='comment'>/* 27 */</span></td></tr>
+<tr class="codeline" data-linenumber="233"><td class="num" id="LN233">233</td><td class="line"> <span class='macro'>GG(b, c, d, a, in[14], 13)<span class='macro_popup'>{ (b) += ((((c)) &amp; ((d))) | (((c)) &amp; ((a))) | (((d)) &amp;<br> ((a)))) + (in[14]) + (guint32)0x5a827999; (b) = ((((b)) &lt;&lt;<br> ((guint32)((13)))) | (((b)) &gt;&gt; (32 - (guint32)((13))))<br>); }</span></span>; <span class='comment'>/* 28 */</span></td></tr>
+<tr class="codeline" data-linenumber="234"><td class="num" id="LN234">234</td><td class="line"> <span class='macro'>GG(a, b, c, d, in[3], 3)<span class='macro_popup'>{ (a) += ((((b)) &amp; ((c))) | (((b)) &amp; ((d))) | (((c)) &amp;<br> ((d)))) + (in[3]) + (guint32)0x5a827999; (a) = ((((a)) &lt;&lt;<br> ((guint32)((3)))) | (((a)) &gt;&gt; (32 - (guint32)((3)))));<br> }</span></span>; <span class='comment'>/* 29 */</span></td></tr>
+<tr class="codeline" data-linenumber="235"><td class="num" id="LN235">235</td><td class="line"> <span class='macro'>GG(d, a, b, c, in[7], 5)<span class='macro_popup'>{ (d) += ((((a)) &amp; ((b))) | (((a)) &amp; ((c))) | (((b)) &amp;<br> ((c)))) + (in[7]) + (guint32)0x5a827999; (d) = ((((d)) &lt;&lt;<br> ((guint32)((5)))) | (((d)) &gt;&gt; (32 - (guint32)((5)))));<br> }</span></span>; <span class='comment'>/* 30 */</span></td></tr>
+<tr class="codeline" data-linenumber="236"><td class="num" id="LN236">236</td><td class="line"> <span class='macro'>GG(c, d, a, b, in[11], 9)<span class='macro_popup'>{ (c) += ((((d)) &amp; ((a))) | (((d)) &amp; ((b))) | (((a)) &amp;<br> ((b)))) + (in[11]) + (guint32)0x5a827999; (c) = ((((c)) &lt;&lt;<br> ((guint32)((9)))) | (((c)) &gt;&gt; (32 - (guint32)((9)))));<br> }</span></span>; <span class='comment'>/* 31 */</span></td></tr>
+<tr class="codeline" data-linenumber="237"><td class="num" id="LN237">237</td><td class="line"> <span class='macro'>GG(b, c, d, a, in[15], 13)<span class='macro_popup'>{ (b) += ((((c)) &amp; ((d))) | (((c)) &amp; ((a))) | (((d)) &amp;<br> ((a)))) + (in[15]) + (guint32)0x5a827999; (b) = ((((b)) &lt;&lt;<br> ((guint32)((13)))) | (((b)) &gt;&gt; (32 - (guint32)((13))))<br>); }</span></span>; <span class='comment'>/* 32 */</span></td></tr>
+<tr class="codeline" data-linenumber="238"><td class="num" id="LN238">238</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="239"><td class="num" id="LN239">239</td><td class="line"> <span class='macro'>HH(a, b, c, d, in[0], 3)<span class='macro_popup'>{ (a) += (((b)) ^ ((c)) ^ ((d))) + (in[0]) + (guint32)0x6ed9eba1<br>; (a) = ((((a)) &lt;&lt; ((guint32)((3)))) | (((a)) &gt;&gt; (<br>32 - (guint32)((3))))); }</span></span>; <span class='comment'>/* 33 */</span></td></tr>
+<tr class="codeline" data-linenumber="240"><td class="num" id="LN240">240</td><td class="line"> <span class='macro'>HH(d, a, b, c, in[8], 9)<span class='macro_popup'>{ (d) += (((a)) ^ ((b)) ^ ((c))) + (in[8]) + (guint32)0x6ed9eba1<br>; (d) = ((((d)) &lt;&lt; ((guint32)((9)))) | (((d)) &gt;&gt; (<br>32 - (guint32)((9))))); }</span></span>; <span class='comment'>/* 34 */</span></td></tr>
+<tr class="codeline" data-linenumber="241"><td class="num" id="LN241">241</td><td class="line"> <span class='macro'>HH(c, d, a, b, in[4], 11)<span class='macro_popup'>{ (c) += (((d)) ^ ((a)) ^ ((b))) + (in[4]) + (guint32)0x6ed9eba1<br>; (c) = ((((c)) &lt;&lt; ((guint32)((11)))) | (((c)) &gt;&gt;<br> (32 - (guint32)((11))))); }</span></span>; <span class='comment'>/* 35 */</span></td></tr>
+<tr class="codeline" data-linenumber="242"><td class="num" id="LN242">242</td><td class="line"> <span class='macro'>HH(b, c, d, a, in[12], 15)<span class='macro_popup'>{ (b) += (((c)) ^ ((d)) ^ ((a))) + (in[12]) + (guint32)0x6ed9eba1<br>; (b) = ((((b)) &lt;&lt; ((guint32)((15)))) | (((b)) &gt;&gt;<br> (32 - (guint32)((15))))); }</span></span>; <span class='comment'>/* 36 */</span></td></tr>
+<tr class="codeline" data-linenumber="243"><td class="num" id="LN243">243</td><td class="line"> <span class='macro'>HH(a, b, c, d, in[2], 3)<span class='macro_popup'>{ (a) += (((b)) ^ ((c)) ^ ((d))) + (in[2]) + (guint32)0x6ed9eba1<br>; (a) = ((((a)) &lt;&lt; ((guint32)((3)))) | (((a)) &gt;&gt; (<br>32 - (guint32)((3))))); }</span></span>; <span class='comment'>/* 37 */</span></td></tr>
+<tr class="codeline" data-linenumber="244"><td class="num" id="LN244">244</td><td class="line"> <span class='macro'>HH(d, a, b, c, in[10], 9)<span class='macro_popup'>{ (d) += (((a)) ^ ((b)) ^ ((c))) + (in[10]) + (guint32)0x6ed9eba1<br>; (d) = ((((d)) &lt;&lt; ((guint32)((9)))) | (((d)) &gt;&gt; (<br>32 - (guint32)((9))))); }</span></span>; <span class='comment'>/* 38 */</span></td></tr>
+<tr class="codeline" data-linenumber="245"><td class="num" id="LN245">245</td><td class="line"> <span class='macro'>HH(c, d, a, b, in[6], 11)<span class='macro_popup'>{ (c) += (((d)) ^ ((a)) ^ ((b))) + (in[6]) + (guint32)0x6ed9eba1<br>; (c) = ((((c)) &lt;&lt; ((guint32)((11)))) | (((c)) &gt;&gt;<br> (32 - (guint32)((11))))); }</span></span>; <span class='comment'>/* 39 */</span></td></tr>
+<tr class="codeline" data-linenumber="246"><td class="num" id="LN246">246</td><td class="line"> <span class='macro'>HH(b, c, d, a, in[14], 15)<span class='macro_popup'>{ (b) += (((c)) ^ ((d)) ^ ((a))) + (in[14]) + (guint32)0x6ed9eba1<br>; (b) = ((((b)) &lt;&lt; ((guint32)((15)))) | (((b)) &gt;&gt;<br> (32 - (guint32)((15))))); }</span></span>; <span class='comment'>/* 40 */</span></td></tr>
+<tr class="codeline" data-linenumber="247"><td class="num" id="LN247">247</td><td class="line"> <span class='macro'>HH(a, b, c, d, in[1], 3)<span class='macro_popup'>{ (a) += (((b)) ^ ((c)) ^ ((d))) + (in[1]) + (guint32)0x6ed9eba1<br>; (a) = ((((a)) &lt;&lt; ((guint32)((3)))) | (((a)) &gt;&gt; (<br>32 - (guint32)((3))))); }</span></span>; <span class='comment'>/* 41 */</span></td></tr>
+<tr class="codeline" data-linenumber="248"><td class="num" id="LN248">248</td><td class="line"> <span class='macro'>HH(d, a, b, c, in[9], 9)<span class='macro_popup'>{ (d) += (((a)) ^ ((b)) ^ ((c))) + (in[9]) + (guint32)0x6ed9eba1<br>; (d) = ((((d)) &lt;&lt; ((guint32)((9)))) | (((d)) &gt;&gt; (<br>32 - (guint32)((9))))); }</span></span>; <span class='comment'>/* 42 */</span></td></tr>
+<tr class="codeline" data-linenumber="249"><td class="num" id="LN249">249</td><td class="line"> <span class='macro'>HH(c, d, a, b, in[5], 11)<span class='macro_popup'>{ (c) += (((d)) ^ ((a)) ^ ((b))) + (in[5]) + (guint32)0x6ed9eba1<br>; (c) = ((((c)) &lt;&lt; ((guint32)((11)))) | (((c)) &gt;&gt;<br> (32 - (guint32)((11))))); }</span></span>; <span class='comment'>/* 43 */</span></td></tr>
+<tr class="codeline" data-linenumber="250"><td class="num" id="LN250">250</td><td class="line"> <span class='macro'>HH(b, c, d, a, in[13], 15)<span class='macro_popup'>{ (b) += (((c)) ^ ((d)) ^ ((a))) + (in[13]) + (guint32)0x6ed9eba1<br>; (b) = ((((b)) &lt;&lt; ((guint32)((15)))) | (((b)) &gt;&gt;<br> (32 - (guint32)((15))))); }</span></span>; <span class='comment'>/* 44 */</span></td></tr>
+<tr class="codeline" data-linenumber="251"><td class="num" id="LN251">251</td><td class="line"> <span class='macro'>HH(a, b, c, d, in[3], 3)<span class='macro_popup'>{ (a) += (((b)) ^ ((c)) ^ ((d))) + (in[3]) + (guint32)0x6ed9eba1<br>; (a) = ((((a)) &lt;&lt; ((guint32)((3)))) | (((a)) &gt;&gt; (<br>32 - (guint32)((3))))); }</span></span>; <span class='comment'>/* 45 */</span></td></tr>
+<tr class="codeline" data-linenumber="252"><td class="num" id="LN252">252</td><td class="line"> <span class='macro'>HH(d, a, b, c, in[11], 9)<span class='macro_popup'>{ (d) += (((a)) ^ ((b)) ^ ((c))) + (in[11]) + (guint32)0x6ed9eba1<br>; (d) = ((((d)) &lt;&lt; ((guint32)((9)))) | (((d)) &gt;&gt; (<br>32 - (guint32)((9))))); }</span></span>; <span class='comment'>/* 46 */</span></td></tr>
+<tr class="codeline" data-linenumber="253"><td class="num" id="LN253">253</td><td class="line"> <span class='macro'>HH(c, d, a, b, in[7], 11)<span class='macro_popup'>{ (c) += (((d)) ^ ((a)) ^ ((b))) + (in[7]) + (guint32)0x6ed9eba1<br>; (c) = ((((c)) &lt;&lt; ((guint32)((11)))) | (((c)) &gt;&gt;<br> (32 - (guint32)((11))))); }</span></span>; <span class='comment'>/* 47 */</span></td></tr>
+<tr class="codeline" data-linenumber="254"><td class="num" id="LN254">254</td><td class="line"> <span class='macro'>HH(b, c, d, a, in[15], 15)<span class='macro_popup'>{ (b) += (((c)) ^ ((d)) ^ ((a))) + (in[15]) + (guint32)0x6ed9eba1<br>; (b) = ((((b)) &lt;&lt; ((guint32)((15)))) | (((b)) &gt;&gt;<br> (32 - (guint32)((15))))); }</span></span>; <span class='comment'>/* 48 */</span></td></tr>
+<tr class="codeline" data-linenumber="255"><td class="num" id="LN255">255</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="256"><td class="num" id="LN256">256</td><td class="line"> buf[0] += a;</td></tr>
+<tr class="codeline" data-linenumber="257"><td class="num" id="LN257">257</td><td class="line"> buf[1] += b;</td></tr>
+<tr class="codeline" data-linenumber="258"><td class="num" id="LN258">258</td><td class="line"> buf[2] += c;</td></tr>
+<tr class="codeline" data-linenumber="259"><td class="num" id="LN259">259</td><td class="line"> buf[3] += d;</td></tr>
+<tr class="codeline" data-linenumber="260"><td class="num" id="LN260">260</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="261"><td class="num" id="LN261">261</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="262"><td class="num" id="LN262">262</td><td class="line"><span class='keyword'>int</span> MD4Keycrunch( <span class='keyword'>char</span> *result, <span class='keyword'>const</span> <span class='keyword'>char</span> *seed, <span class='keyword'>const</span> <span class='keyword'>char</span> *passphrase)</td></tr>
+<tr class="codeline" data-linenumber="263"><td class="num" id="LN263">263</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="264"><td class="num" id="LN264">264</td><td class="line"> <span class='keyword'>int</span> len;</td></tr>
+<tr class="codeline" data-linenumber="265"><td class="num" id="LN265">265</td><td class="line"> <span class='keyword'>char</span> *buf;</td></tr>
+<tr class="codeline" data-linenumber="266"><td class="num" id="LN266">266</td><td class="line"> MD4_CTX md;</td></tr>
+<tr class="codeline" data-linenumber="267"><td class="num" id="LN267">267</td><td class="line"> guint32 results[4];</td></tr>
+<tr class="codeline" data-linenumber="268"><td class="num" id="LN268">268</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="269"><td class="num" id="LN269">269</td><td class="line"> len = strlen(seed) + strlen(passphrase);</td></tr>
+<tr class="codeline" data-linenumber="270"><td class="num" id="LN270">270</td><td class="line"> buf = (<span class='keyword'>char</span> *)malloc(len+1);</td></tr>
+<tr class="codeline" data-linenumber="271"><td class="num" id="LN271">271</td><td class="line"> <span class='keyword'>if</span> (buf == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="272"><td class="num" id="LN272">272</td><td class="line"> <span class='keyword'>return</span> -1;</td></tr>
+<tr class="codeline" data-linenumber="273"><td class="num" id="LN273">273</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="274"><td class="num" id="LN274">274</td><td class="line"> strcpy(buf, seed);</td></tr>
+<tr class="codeline" data-linenumber="275"><td class="num" id="LN275">275</td><td class="line"> skey_lowcase(buf);</td></tr>
+<tr class="codeline" data-linenumber="276"><td class="num" id="LN276">276</td><td class="line"> <span class="mrange">strcat</span>(buf, passphrase);</td></tr>
+<tr><td class="num"></td><td class="line"><div id="EndPath" class="msg msgEvent" style="margin-left:9ex; max-width:52em">Call to function 'strcat' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcat'. CWE-119</div></td></tr>
+<tr class="codeline" data-linenumber="277"><td class="num" id="LN277">277</td><td class="line"> skey_sevenbit(buf);</td></tr>
+<tr class="codeline" data-linenumber="278"><td class="num" id="LN278">278</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="279"><td class="num" id="LN279">279</td><td class="line"> MD4Init(&amp;md);</td></tr>
+<tr class="codeline" data-linenumber="280"><td class="num" id="LN280">280</td><td class="line"> MD4Update(&amp;md, (<span class='keyword'>unsigned</span> <span class='keyword'>char</span> *)buf, len);</td></tr>
+<tr class="codeline" data-linenumber="281"><td class="num" id="LN281">281</td><td class="line"> MD4Final((<span class='keyword'>unsigned</span> <span class='keyword'>char</span> *)results, &amp;md);</td></tr>
+<tr class="codeline" data-linenumber="282"><td class="num" id="LN282">282</td><td class="line"> free(buf);</td></tr>
+<tr class="codeline" data-linenumber="283"><td class="num" id="LN283">283</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="284"><td class="num" id="LN284">284</td><td class="line"> results[0] ^= results[2];</td></tr>
+<tr class="codeline" data-linenumber="285"><td class="num" id="LN285">285</td><td class="line"> results[1] ^= results[3];</td></tr>
+<tr class="codeline" data-linenumber="286"><td class="num" id="LN286">286</td><td class="line"> memcpy((<span class='keyword'>void</span> *)result, (<span class='keyword'>void</span> *)results, <span class='macro'>SKEY_SIZE<span class='macro_popup'>8</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="287"><td class="num" id="LN287">287</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="288"><td class="num" id="LN288">288</td><td class="line"> <span class='keyword'>return</span> 0;</td></tr>
+<tr class="codeline" data-linenumber="289"><td class="num" id="LN289">289</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="290"><td class="num" id="LN290">290</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="291"><td class="num" id="LN291">291</td><td class="line"><span class='keyword'>void</span> MD4SKey(<span class='keyword'>char</span> *x)</td></tr>
+<tr class="codeline" data-linenumber="292"><td class="num" id="LN292">292</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="293"><td class="num" id="LN293">293</td><td class="line"> MD4_CTX md;</td></tr>
+<tr class="codeline" data-linenumber="294"><td class="num" id="LN294">294</td><td class="line"> guint32 results[4];</td></tr>
+<tr class="codeline" data-linenumber="295"><td class="num" id="LN295">295</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="296"><td class="num" id="LN296">296</td><td class="line"> MD4Init(&amp;md);</td></tr>
+<tr class="codeline" data-linenumber="297"><td class="num" id="LN297">297</td><td class="line"> MD4Update(&amp;md, (<span class='keyword'>unsigned</span> <span class='keyword'>char</span> *)x, <span class='macro'>SKEY_SIZE<span class='macro_popup'>8</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="298"><td class="num" id="LN298">298</td><td class="line"> MD4Final((<span class='keyword'>unsigned</span> <span class='keyword'>char</span> *)results, &amp;md);</td></tr>
+<tr class="codeline" data-linenumber="299"><td class="num" id="LN299">299</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="300"><td class="num" id="LN300">300</td><td class="line"> results[0] ^= results[2];</td></tr>
+<tr class="codeline" data-linenumber="301"><td class="num" id="LN301">301</td><td class="line"> results[1] ^= results[3];</td></tr>
+<tr class="codeline" data-linenumber="302"><td class="num" id="LN302">302</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="303"><td class="num" id="LN303">303</td><td class="line"> memcpy((<span class='keyword'>void</span> *)x, (<span class='keyword'>void</span> *)results, <span class='macro'>SKEY_SIZE<span class='macro_popup'>8</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="304"><td class="num" id="LN304">304</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="305"><td class="num" id="LN305">305</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="306"><td class="num" id="LN306">306</td><td class="line"><span class='directive'>#ifdef MD4_MAIN</span></td></tr>
+<tr class="codeline" data-linenumber="307"><td class="num" id="LN307">307</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="308"><td class="num" id="LN308">308</td><td class="line"><span class='directive'>#include &lt;stdio.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="309"><td class="num" id="LN309">309</td><td class="line"><span class='directive'>#include &lt;unistd.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="310"><td class="num" id="LN310">310</td><td class="line"><span class='directive'>#include &lt;stdlib.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="311"><td class="num" id="LN311">311</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="312"><td class="num" id="LN312">312</td><td class="line"><span class='keyword'>int</span> main(<span class='keyword'>int</span> argc, <span class='keyword'>char</span> *argv[])</td></tr>
+<tr class="codeline" data-linenumber="313"><td class="num" id="LN313">313</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="314"><td class="num" id="LN314">314</td><td class="line"> MD4_CTX *md4;</td></tr>
+<tr class="codeline" data-linenumber="315"><td class="num" id="LN315">315</td><td class="line"> <span class='keyword'>unsigned</span> <span class='keyword'>char</span> digest[16];</td></tr>
+<tr class="codeline" data-linenumber="316"><td class="num" id="LN316">316</td><td class="line"> <span class='keyword'>unsigned</span> <span class='keyword'>char</span> data[1024];</td></tr>
+<tr class="codeline" data-linenumber="317"><td class="num" id="LN317">317</td><td class="line"> <span class='keyword'>int</span> i, r;</td></tr>
+<tr class="codeline" data-linenumber="318"><td class="num" id="LN318">318</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="319"><td class="num" id="LN319">319</td><td class="line"> memset(digest, 0, 16);</td></tr>
+<tr class="codeline" data-linenumber="320"><td class="num" id="LN320">320</td><td class="line"> printf(<span class='string_literal'>"MD4 digest algorithm. End with Ctrl-D:\n"</span>);</td></tr>
+<tr class="codeline" data-linenumber="321"><td class="num" id="LN321">321</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="322"><td class="num" id="LN322">322</td><td class="line"> md4 = (MD4_CTX *)malloc(<span class='keyword'>sizeof</span>(MD4_CTX));</td></tr>
+<tr class="codeline" data-linenumber="323"><td class="num" id="LN323">323</td><td class="line"> MD4Init(md4);</td></tr>
+<tr class="codeline" data-linenumber="324"><td class="num" id="LN324">324</td><td class="line"> <span class='keyword'>do</span></td></tr>
+<tr class="codeline" data-linenumber="325"><td class="num" id="LN325">325</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="326"><td class="num" id="LN326">326</td><td class="line"> r = read(0, data, <span class='keyword'>sizeof</span> data);</td></tr>
+<tr class="codeline" data-linenumber="327"><td class="num" id="LN327">327</td><td class="line"> MD4Update(md4, data, r);</td></tr>
+<tr class="codeline" data-linenumber="328"><td class="num" id="LN328">328</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="329"><td class="num" id="LN329">329</td><td class="line"> <span class='keyword'>while</span> (r);</td></tr>
+<tr class="codeline" data-linenumber="330"><td class="num" id="LN330">330</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="331"><td class="num" id="LN331">331</td><td class="line"> MD4Final(digest, md4);</td></tr>
+<tr class="codeline" data-linenumber="332"><td class="num" id="LN332">332</td><td class="line"> printf(<span class='string_literal'>"MD4 Digest is: "</span>);</td></tr>
+<tr class="codeline" data-linenumber="333"><td class="num" id="LN333">333</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; 16; i++)</td></tr>
+<tr class="codeline" data-linenumber="334"><td class="num" id="LN334">334</td><td class="line"> printf(<span class='string_literal'>"%02X"</span>, digest[i]);</td></tr>
+<tr class="codeline" data-linenumber="335"><td class="num" id="LN335">335</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="336"><td class="num" id="LN336">336</td><td class="line"> printf(<span class='string_literal'>"\n"</span>);</td></tr>
+<tr class="codeline" data-linenumber="337"><td class="num" id="LN337">337</td><td class="line"> free(md4);</td></tr>
+<tr class="codeline" data-linenumber="338"><td class="num" id="LN338">338</td><td class="line"> <span class='keyword'>return</span> 0;</td></tr>
+<tr class="codeline" data-linenumber="339"><td class="num" id="LN339">339</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="340"><td class="num" id="LN340">340</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="341"><td class="num" id="LN341">341</td><td class="line"><span class='directive'>#endif</span></td></tr>
+</table></body></html>
diff --git a/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-959831.html b/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-959831.html
new file mode 100644
index 0000000..aeebadb
--- /dev/null
+++ b/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-959831.html
@@ -0,0 +1,747 @@
+<!doctype html>
+<html>
+<head>
+<title>md5.c</title>
+
+<style type="text/css">
+body { color:#000000; background-color:#ffffff }
+body { font-family:Helvetica, sans-serif; font-size:10pt }
+h1 { font-size:14pt }
+.FileName { margin-top: 5px; margin-bottom: 5px; display: inline; }
+.FileNav { margin-left: 5px; margin-right: 5px; display: inline; }
+.FileNav a { text-decoration:none; font-size: larger; }
+.divider { margin-top: 30px; margin-bottom: 30px; height: 15px; }
+.divider { background-color: gray; }
+.code { border-collapse:collapse; width:100%; }
+.code { font-family: "Monospace", monospace; font-size:10pt }
+.code { line-height: 1.2em }
+.comment { color: green; font-style: oblique }
+.keyword { color: blue }
+.string_literal { color: red }
+.directive { color: darkmagenta }
+
+/* Macros and variables could have pop-up notes hidden by default.
+ - Macro pop-up: expansion of the macro
+ - Variable pop-up: value (table) of the variable */
+.macro_popup, .variable_popup { display: none; }
+
+/* Pop-up appears on mouse-hover event. */
+.macro:hover .macro_popup, .variable:hover .variable_popup {
+ display: block;
+ padding: 2px;
+ -webkit-border-radius:5px;
+ -webkit-box-shadow:1px 1px 7px #000;
+ border-radius:5px;
+ box-shadow:1px 1px 7px #000;
+ position: absolute;
+ top: -1em;
+ left:10em;
+ z-index: 1
+}
+
+.macro_popup {
+ border: 2px solid red;
+ background-color:#FFF0F0;
+ font-weight: normal;
+}
+
+.variable_popup {
+ border: 2px solid blue;
+ background-color:#F0F0FF;
+ font-weight: bold;
+ font-family: Helvetica, sans-serif;
+ font-size: 9pt;
+}
+
+/* Pop-up notes needs a relative position as a base where they pops up. */
+.macro, .variable {
+ background-color: PaleGoldenRod;
+ position: relative;
+}
+.macro { color: DarkMagenta; }
+
+#tooltiphint {
+ position: fixed;
+ width: 50em;
+ margin-left: -25em;
+ left: 50%;
+ padding: 10px;
+ border: 1px solid #b0b0b0;
+ border-radius: 2px;
+ box-shadow: 1px 1px 7px black;
+ background-color: #c0c0c0;
+ z-index: 2;
+}
+
+.num { width:2.5em; padding-right:2ex; background-color:#eeeeee }
+.num { text-align:right; font-size:8pt }
+.num { color:#444444 }
+.line { padding-left: 1ex; border-left: 3px solid #ccc }
+.line { white-space: pre }
+.msg { -webkit-box-shadow:1px 1px 7px #000 }
+.msg { box-shadow:1px 1px 7px #000 }
+.msg { -webkit-border-radius:5px }
+.msg { border-radius:5px }
+.msg { font-family:Helvetica, sans-serif; font-size:8pt }
+.msg { float:left }
+.msg { position:relative }
+.msg { padding:0.25em 1ex 0.25em 1ex }
+.msg { margin-top:10px; margin-bottom:10px }
+.msg { font-weight:bold }
+.msg { max-width:60em; word-wrap: break-word; white-space: pre-wrap }
+.msgT { padding:0x; spacing:0x }
+.msgEvent { background-color:#fff8b4; color:#000000 }
+.msgControl { background-color:#bbbbbb; color:#000000 }
+.msgNote { background-color:#ddeeff; color:#000000 }
+.mrange { background-color:#dfddf3 }
+.mrange { border-bottom:1px solid #6F9DBE }
+.PathIndex { font-weight: bold; padding:0px 5px; margin-right:5px; }
+.PathIndex { -webkit-border-radius:8px }
+.PathIndex { border-radius:8px }
+.PathIndexEvent { background-color:#bfba87 }
+.PathIndexControl { background-color:#8c8c8c }
+.PathIndexPopUp { background-color: #879abc; }
+.PathNav a { text-decoration:none; font-size: larger }
+.CodeInsertionHint { font-weight: bold; background-color: #10dd10 }
+.CodeRemovalHint { background-color:#de1010 }
+.CodeRemovalHint { border-bottom:1px solid #6F9DBE }
+.msg.selected{ background-color:orange !important; }
+
+table.simpletable {
+ padding: 5px;
+ font-size:12pt;
+ margin:20px;
+ border-collapse: collapse; border-spacing: 0px;
+}
+td.rowname {
+ text-align: right;
+ vertical-align: top;
+ font-weight: bold;
+ color:#444444;
+ padding-right:2ex;
+}
+
+/* Hidden text. */
+input.spoilerhider + label {
+ cursor: pointer;
+ text-decoration: underline;
+ display: block;
+}
+input.spoilerhider {
+ display: none;
+}
+input.spoilerhider ~ .spoiler {
+ overflow: hidden;
+ margin: 10px auto 0;
+ height: 0;
+ opacity: 0;
+}
+input.spoilerhider:checked + label + .spoiler{
+ height: auto;
+ opacity: 1;
+}
+</style>
+</head>
+<body>
+<!-- BUGDESC Call to function 'strcat' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcat'. CWE-119 -->
+
+<!-- BUGTYPE Potential insecure memory buffer bounds restriction in call 'strcat' -->
+
+<!-- BUGCATEGORY Security -->
+
+<!-- BUGFILE /rootdir/src/skey/md5.c -->
+
+<!-- FILENAME md5.c -->
+
+<!-- FUNCTIONNAME MD5Keycrunch -->
+
+<!-- ISSUEHASHCONTENTOFLINEINCONTEXT 959831df62a160698aac49d5c8864582 -->
+
+<!-- BUGLINE 27 -->
+
+<!-- BUGCOLUMN 2 -->
+
+<!-- BUGPATHLENGTH 1 -->
+
+<!-- BUGMETAEND -->
+<!-- REPORTHEADER -->
+<h3>Bug Summary</h3>
+<table class="simpletable">
+<tr><td class="rowname">File:</td><td>skey/md5.c</td></tr>
+<tr><td class="rowname">Warning:</td><td><a href="#EndPath">line 27, column 2</a><br />Call to function 'strcat' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcat'. CWE-119</td></tr>
+
+</table>
+<!-- REPORTSUMMARYEXTRA -->
+<h3>Annotated Source Code</h3>
+<p>Press <a href="#" onclick="toggleHelp(); return false;">'?'</a>
+ to see keyboard shortcuts</p>
+<input type="checkbox" class="spoilerhider" id="showinvocation" />
+<label for="showinvocation" >Show analyzer invocation</label>
+<div class="spoiler">clang -cc1 -cc1 -triple x86_64-redhat-linux-gnu -analyze -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name md5.c -analyzer-checker=core -analyzer-checker=apiModeling -analyzer-checker=unix -analyzer-checker=deadcode -analyzer-checker=security.insecureAPI.UncheckedReturn -analyzer-checker=security.insecureAPI.getpw -analyzer-checker=security.insecureAPI.gets -analyzer-checker=security.insecureAPI.mktemp -analyzer-checker=security.insecureAPI.mkstemp -analyzer-checker=security.insecureAPI.vfork -analyzer-checker=nullability.NullPassedToNonnull -analyzer-checker=nullability.NullReturnedFromNonnull -analyzer-output plist -w -setup-static-analyzer -mrelocation-model pic -pic-level 2 -fhalf-no-semantic-interposition -mframe-pointer=all -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -tune-cpu generic -debugger-tuning=gdb -fcoverage-compilation-dir=/rootdir/src/skey -resource-dir /usr/bin/../lib/clang/17 -D HAVE_CONFIG_H -I . -I ../.. -I ./.. -D G_DISABLE_SINGLE_INCLUDES -I /usr/include/dconf -I /usr/include/vte-2.91 -I /usr/include/pango-1.0 -I /usr/include/gtk-3.0 -I /usr/include/gdk-pixbuf-2.0 -I /usr/include/cairo -I /usr/include/dbus-1.0 -I /usr/lib64/dbus-1.0/include -I /usr/include/atk-1.0 -I /usr/include/harfbuzz -I /usr/include/freetype2 -I /usr/include/glib-2.0 -I /usr/lib64/glib-2.0/include -I /usr/include/cloudproviders -I /usr/include/at-spi2-atk/2.0 -I /usr/include/at-spi-2.0 -I /usr/include/blkid -I /usr/include/gio-unix-2.0 -I /usr/include/pixman-1 -I /usr/include/libmount -I /usr/include/libxml2 -I /usr/include/fribidi -I /usr/include/libpng16 -I /usr/include/sysprof-6 -D PIC -internal-isystem /usr/bin/../lib/clang/17/include -internal-isystem /usr/local/include -internal-isystem /usr/bin/../lib/gcc/x86_64-redhat-linux/13/../../../../x86_64-redhat-linux/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -Wno-unused-parameter -fdebug-compilation-dir=/rootdir/src/skey -ferror-limit 19 -fgnuc-version=4.2.1 -analyzer-checker deadcode.DeadStores -analyzer-checker alpha.deadcode.UnreachableCode -analyzer-checker alpha.core.CastSize -analyzer-checker alpha.core.CastToStruct -analyzer-checker alpha.core.IdenticalExpr -analyzer-checker alpha.core.SizeofPtr -analyzer-checker alpha.security.ArrayBoundV2 -analyzer-checker alpha.security.MallocOverflow -analyzer-checker alpha.security.ReturnPtrRange -analyzer-checker alpha.unix.SimpleStream -analyzer-checker alpha.unix.cstring.BufferOverlap -analyzer-checker alpha.unix.cstring.NotNullTerminated -analyzer-checker alpha.unix.cstring.OutOfBounds -analyzer-checker alpha.core.FixedAddr -analyzer-checker security.insecureAPI.strcpy -analyzer-output=html -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /rootdir/html-report/2024-02-18-131424-5067-1 -x c md5.c
+</div>
+<div id='tooltiphint' hidden="true">
+ <p>Keyboard shortcuts: </p>
+ <ul>
+ <li>Use 'j/k' keys for keyboard navigation</li>
+ <li>Use 'Shift+S' to show/hide relevant lines</li>
+ <li>Use '?' to toggle this window</li>
+ </ul>
+ <a href="#" onclick="toggleHelp(); return false;">Close</a>
+</div>
+<script type='text/javascript'>
+var relevant_lines = {"1": {"27": 1}};
+
+var filterCounterexample = function (hide) {
+ var tables = document.getElementsByClassName("code");
+ for (var t=0; t<tables.length; t++) {
+ var table = tables[t];
+ var file_id = table.getAttribute("data-fileid");
+ var lines_in_fid = relevant_lines[file_id];
+ if (!lines_in_fid) {
+ lines_in_fid = {};
+ }
+ var lines = table.getElementsByClassName("codeline");
+ for (var i=0; i<lines.length; i++) {
+ var el = lines[i];
+ var lineNo = el.getAttribute("data-linenumber");
+ if (!lines_in_fid[lineNo]) {
+ if (hide) {
+ el.setAttribute("hidden", "");
+ } else {
+ el.removeAttribute("hidden");
+ }
+ }
+ }
+ }
+}
+
+window.addEventListener("keydown", function (event) {
+ if (event.defaultPrevented) {
+ return;
+ }
+ // SHIFT + S
+ if (event.shiftKey && event.keyCode == 83) {
+ var checked = document.getElementsByName("showCounterexample")[0].checked;
+ filterCounterexample(!checked);
+ document.getElementsByName("showCounterexample")[0].click();
+ } else {
+ return;
+ }
+ event.preventDefault();
+}, true);
+
+document.addEventListener("DOMContentLoaded", function() {
+ document.querySelector('input[name="showCounterexample"]').onchange=
+ function (event) {
+ filterCounterexample(this.checked);
+ };
+});
+</script>
+
+<form>
+ <input type="checkbox" name="showCounterexample" id="showCounterexample" />
+ <label for="showCounterexample">
+ Show only relevant lines
+ </label>
+ <input type="checkbox" name="showArrows"
+ id="showArrows" style="margin-left: 10px" />
+ <label for="showArrows">
+ Show control flow arrows
+ </label>
+</form>
+
+<script type='text/javascript'>
+// Return range of numbers from a range [lower, upper).
+function range(lower, upper) {
+ var array = [];
+ for (var i = lower; i <= upper; ++i) {
+ array.push(i);
+ }
+ return array;
+}
+
+var getRelatedArrowIndices = function(pathId) {
+ // HTML numeration of events is a bit different than it is in the path.
+ // Everything is rotated one step to the right, so the last element
+ // (error diagnostic) has index 0.
+ if (pathId == 0) {
+ // arrowIndices has at least 2 elements
+ pathId = arrowIndices.length - 1;
+ }
+
+ return range(arrowIndices[pathId], arrowIndices[pathId - 1]);
+}
+
+var highlightArrowsForSelectedEvent = function() {
+ const selectedNum = findNum();
+ const arrowIndicesToHighlight = getRelatedArrowIndices(selectedNum);
+ arrowIndicesToHighlight.forEach((index) => {
+ var arrow = document.querySelector("#arrow" + index);
+ if(arrow) {
+ classListAdd(arrow, "selected")
+ }
+ });
+}
+
+var getAbsoluteBoundingRect = function(element) {
+ const relative = element.getBoundingClientRect();
+ return {
+ left: relative.left + window.pageXOffset,
+ right: relative.right + window.pageXOffset,
+ top: relative.top + window.pageYOffset,
+ bottom: relative.bottom + window.pageYOffset,
+ height: relative.height,
+ width: relative.width
+ };
+}
+
+var drawArrow = function(index) {
+ // This function is based on the great answer from SO:
+ // https://stackoverflow.com/a/39575674/11582326
+ var start = document.querySelector("#start" + index);
+ var end = document.querySelector("#end" + index);
+ var arrow = document.querySelector("#arrow" + index);
+
+ var startRect = getAbsoluteBoundingRect(start);
+ var endRect = getAbsoluteBoundingRect(end);
+
+ // It is an arrow from a token to itself, no need to visualize it.
+ if (startRect.top == endRect.top &&
+ startRect.left == endRect.left)
+ return;
+
+ // Each arrow is a very simple Bézier curve, with two nodes and
+ // two handles. So, we need to calculate four points in the window:
+ // * start node
+ var posStart = { x: 0, y: 0 };
+ // * end node
+ var posEnd = { x: 0, y: 0 };
+ // * handle for the start node
+ var startHandle = { x: 0, y: 0 };
+ // * handle for the end node
+ var endHandle = { x: 0, y: 0 };
+ // One can visualize it as follows:
+ //
+ // start handle
+ // /
+ // X"""_.-""""X
+ // .' \
+ // / start node
+ // |
+ // |
+ // | end node
+ // \ /
+ // `->X
+ // X-'
+ // \
+ // end handle
+ //
+ // NOTE: (0, 0) is the top left corner of the window.
+
+ // We have 3 similar, but still different scenarios to cover:
+ //
+ // 1. Two tokens on different lines.
+ // -xxx
+ // /
+ // \
+ // -> xxx
+ // In this situation, we draw arrow on the left curving to the left.
+ // 2. Two tokens on the same line, and the destination is on the right.
+ // ____
+ // / \
+ // / V
+ // xxx xxx
+ // In this situation, we draw arrow above curving upwards.
+ // 3. Two tokens on the same line, and the destination is on the left.
+ // xxx xxx
+ // ^ /
+ // \____/
+ // In this situation, we draw arrow below curving downwards.
+ const onDifferentLines = startRect.top <= endRect.top - 5 ||
+ startRect.top >= endRect.top + 5;
+ const leftToRight = startRect.left < endRect.left;
+
+ // NOTE: various magic constants are chosen empirically for
+ // better positioning and look
+ if (onDifferentLines) {
+ // Case #1
+ const topToBottom = startRect.top < endRect.top;
+ posStart.x = startRect.left - 1;
+ // We don't want to start it at the top left corner of the token,
+ // it doesn't feel like this is where the arrow comes from.
+ // For this reason, we start it in the middle of the left side
+ // of the token.
+ posStart.y = startRect.top + startRect.height / 2;
+
+ // End node has arrow head and we give it a bit more space.
+ posEnd.x = endRect.left - 4;
+ posEnd.y = endRect.top;
+
+ // Utility object with x and y offsets for handles.
+ var curvature = {
+ // We want bottom-to-top arrow to curve a bit more, so it doesn't
+ // overlap much with top-to-bottom curves (much more frequent).
+ x: topToBottom ? 15 : 25,
+ y: Math.min((posEnd.y - posStart.y) / 3, 10)
+ }
+
+ // When destination is on the different line, we can make a
+ // curvier arrow because we have space for it.
+ // So, instead of using
+ //
+ // startHandle.x = posStart.x - curvature.x
+ // endHandle.x = posEnd.x - curvature.x
+ //
+ // We use the leftmost of these two values for both handles.
+ startHandle.x = Math.min(posStart.x, posEnd.x) - curvature.x;
+ endHandle.x = startHandle.x;
+
+ // Curving downwards from the start node...
+ startHandle.y = posStart.y + curvature.y;
+ // ... and upwards from the end node.
+ endHandle.y = posEnd.y - curvature.y;
+
+ } else if (leftToRight) {
+ // Case #2
+ // Starting from the top right corner...
+ posStart.x = startRect.right - 1;
+ posStart.y = startRect.top;
+
+ // ...and ending at the top left corner of the end token.
+ posEnd.x = endRect.left + 1;
+ posEnd.y = endRect.top - 1;
+
+ // Utility object with x and y offsets for handles.
+ var curvature = {
+ x: Math.min((posEnd.x - posStart.x) / 3, 15),
+ y: 5
+ }
+
+ // Curving to the right...
+ startHandle.x = posStart.x + curvature.x;
+ // ... and upwards from the start node.
+ startHandle.y = posStart.y - curvature.y;
+
+ // And to the left...
+ endHandle.x = posEnd.x - curvature.x;
+ // ... and upwards from the end node.
+ endHandle.y = posEnd.y - curvature.y;
+
+ } else {
+ // Case #3
+ // Starting from the bottom right corner...
+ posStart.x = startRect.right;
+ posStart.y = startRect.bottom;
+
+ // ...and ending also at the bottom right corner, but of the end token.
+ posEnd.x = endRect.right - 1;
+ posEnd.y = endRect.bottom + 1;
+
+ // Utility object with x and y offsets for handles.
+ var curvature = {
+ x: Math.min((posStart.x - posEnd.x) / 3, 15),
+ y: 5
+ }
+
+ // Curving to the left...
+ startHandle.x = posStart.x - curvature.x;
+ // ... and downwards from the start node.
+ startHandle.y = posStart.y + curvature.y;
+
+ // And to the right...
+ endHandle.x = posEnd.x + curvature.x;
+ // ... and downwards from the end node.
+ endHandle.y = posEnd.y + curvature.y;
+ }
+
+ // Put it all together into a path.
+ // More information on the format:
+ // https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths
+ var pathStr = "M" + posStart.x + "," + posStart.y + " " +
+ "C" + startHandle.x + "," + startHandle.y + " " +
+ endHandle.x + "," + endHandle.y + " " +
+ posEnd.x + "," + posEnd.y;
+
+ arrow.setAttribute("d", pathStr);
+};
+
+var drawArrows = function() {
+ const numOfArrows = document.querySelectorAll("path[id^=arrow]").length;
+ for (var i = 0; i < numOfArrows; ++i) {
+ drawArrow(i);
+ }
+}
+
+var toggleArrows = function(event) {
+ const arrows = document.querySelector("#arrows");
+ if (event.target.checked) {
+ arrows.setAttribute("visibility", "visible");
+ } else {
+ arrows.setAttribute("visibility", "hidden");
+ }
+}
+
+window.addEventListener("resize", drawArrows);
+document.addEventListener("DOMContentLoaded", function() {
+ // Whenever we show invocation, locations change, i.e. we
+ // need to redraw arrows.
+ document
+ .querySelector('input[id="showinvocation"]')
+ .addEventListener("click", drawArrows);
+ // Hiding irrelevant lines also should cause arrow rerender.
+ document
+ .querySelector('input[name="showCounterexample"]')
+ .addEventListener("change", drawArrows);
+ document
+ .querySelector('input[name="showArrows"]')
+ .addEventListener("change", toggleArrows);
+ drawArrows();
+ // Default highlighting for the last event.
+ highlightArrowsForSelectedEvent();
+});
+</script>
+
+<script type='text/javascript'>
+var digitMatcher = new RegExp("[0-9]+");
+
+var querySelectorAllArray = function(selector) {
+ return Array.prototype.slice.call(
+ document.querySelectorAll(selector));
+}
+
+document.addEventListener("DOMContentLoaded", function() {
+ querySelectorAllArray(".PathNav > a").forEach(
+ function(currentValue, currentIndex) {
+ var hrefValue = currentValue.getAttribute("href");
+ currentValue.onclick = function() {
+ scrollTo(document.querySelector(hrefValue));
+ return false;
+ };
+ });
+});
+
+var findNum = function() {
+ var s = document.querySelector(".msg.selected");
+ if (!s || s.id == "EndPath") {
+ return 0;
+ }
+ var out = parseInt(digitMatcher.exec(s.id)[0]);
+ return out;
+};
+
+var classListAdd = function(el, theClass) {
+ if(!el.className.baseVal)
+ el.className += " " + theClass;
+ else
+ el.className.baseVal += " " + theClass;
+};
+
+var classListRemove = function(el, theClass) {
+ var className = (!el.className.baseVal) ?
+ el.className : el.className.baseVal;
+ className = className.replace(" " + theClass, "");
+ if(!el.className.baseVal)
+ el.className = className;
+ else
+ el.className.baseVal = className;
+};
+
+var scrollTo = function(el) {
+ querySelectorAllArray(".selected").forEach(function(s) {
+ classListRemove(s, "selected");
+ });
+ classListAdd(el, "selected");
+ window.scrollBy(0, el.getBoundingClientRect().top -
+ (window.innerHeight / 2));
+ highlightArrowsForSelectedEvent();
+};
+
+var move = function(num, up, numItems) {
+ if (num == 1 && up || num == numItems - 1 && !up) {
+ return 0;
+ } else if (num == 0 && up) {
+ return numItems - 1;
+ } else if (num == 0 && !up) {
+ return 1 % numItems;
+ }
+ return up ? num - 1 : num + 1;
+}
+
+var numToId = function(num) {
+ if (num == 0) {
+ return document.getElementById("EndPath")
+ }
+ return document.getElementById("Path" + num);
+};
+
+var navigateTo = function(up) {
+ var numItems = document.querySelectorAll(
+ ".line > .msgEvent, .line > .msgControl").length;
+ var currentSelected = findNum();
+ var newSelected = move(currentSelected, up, numItems);
+ var newEl = numToId(newSelected, numItems);
+
+ // Scroll element into center.
+ scrollTo(newEl);
+};
+
+window.addEventListener("keydown", function (event) {
+ if (event.defaultPrevented) {
+ return;
+ }
+ // key 'j'
+ if (event.keyCode == 74) {
+ navigateTo(/*up=*/false);
+ // key 'k'
+ } else if (event.keyCode == 75) {
+ navigateTo(/*up=*/true);
+ } else {
+ return;
+ }
+ event.preventDefault();
+}, true);
+</script>
+
+<script type='text/javascript'>
+
+var toggleHelp = function() {
+ var hint = document.querySelector("#tooltiphint");
+ var attributeName = "hidden";
+ if (hint.hasAttribute(attributeName)) {
+ hint.removeAttribute(attributeName);
+ } else {
+ hint.setAttribute("hidden", "true");
+ }
+};
+window.addEventListener("keydown", function (event) {
+ if (event.defaultPrevented) {
+ return;
+ }
+ if (event.key == "?") {
+ toggleHelp();
+ } else {
+ return;
+ }
+ event.preventDefault();
+});
+</script>
+
+<style type="text/css">
+ svg {
+ position:absolute;
+ top:0;
+ left:0;
+ height:100%;
+ width:100%;
+ pointer-events: none;
+ overflow: visible
+ }
+ .arrow {
+ stroke-opacity: 0.2;
+ stroke-width: 1;
+ marker-end: url(#arrowhead);
+ }
+
+ .arrow.selected {
+ stroke-opacity: 0.6;
+ stroke-width: 2;
+ marker-end: url(#arrowheadSelected);
+ }
+
+ .arrowhead {
+ orient: auto;
+ stroke: none;
+ opacity: 0.6;
+ fill: blue;
+ }
+</style>
+<svg xmlns="http://www.w3.org/2000/svg">
+ <defs>
+ <marker id="arrowheadSelected" class="arrowhead" opacity="0.6"
+ viewBox="0 0 10 10" refX="3" refY="5"
+ markerWidth="4" markerHeight="4">
+ <path d="M 0 0 L 10 5 L 0 10 z" />
+ </marker>
+ <marker id="arrowhead" class="arrowhead" opacity="0.2"
+ viewBox="0 0 10 10" refX="3" refY="5"
+ markerWidth="4" markerHeight="4">
+ <path d="M 0 0 L 10 5 L 0 10 z" />
+ </marker>
+ </defs>
+ <g id="arrows" fill="none" stroke="blue" visibility="hidden">
+
+ </g>
+</svg>
+<script type='text/javascript'>
+const arrowIndices = [ 0,0 ]
+</script>
+<table class="code" data-fileid="1">
+<tr class="codeline" data-linenumber="1"><td class="num" id="LN1">1</td><td class="line"><span class='directive'>#include &lt;config.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="2"><td class="num" id="LN2">2</td><td class="line"><span class='directive'>#include &lt;stdlib.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="3"><td class="num" id="LN3">3</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4"><td class="num" id="LN4">4</td><td class="line"><span class='directive'>#include &lt;string.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="5"><td class="num" id="LN5">5</td><td class="line"><span class='directive'>#include &lt;glib.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="6"><td class="num" id="LN6">6</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="7"><td class="num" id="LN7">7</td><td class="line"><span class='directive'>#include "skey.h"</span></td></tr>
+<tr class="codeline" data-linenumber="8"><td class="num" id="LN8">8</td><td class="line"><span class='directive'>#include "skeyutil.h"</span></td></tr>
+<tr class="codeline" data-linenumber="9"><td class="num" id="LN9">9</td><td class="line"><span class='directive'>#include "md5.h"</span></td></tr>
+<tr class="codeline" data-linenumber="10"><td class="num" id="LN10">10</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="11"><td class="num" id="LN11">11</td><td class="line"><span class='keyword'>int</span> MD5Keycrunch(<span class='keyword'>char</span> *result, <span class='keyword'>const</span> <span class='keyword'>char</span> *seed, <span class='keyword'>const</span> <span class='keyword'>char</span> *passhrase)</td></tr>
+<tr class="codeline" data-linenumber="12"><td class="num" id="LN12">12</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="13"><td class="num" id="LN13">13</td><td class="line"> <span class='keyword'>char</span> *buf;</td></tr>
+<tr class="codeline" data-linenumber="14"><td class="num" id="LN14">14</td><td class="line"> gsize len;</td></tr>
+<tr class="codeline" data-linenumber="15"><td class="num" id="LN15">15</td><td class="line"> GChecksum *checksum;</td></tr>
+<tr class="codeline" data-linenumber="16"><td class="num" id="LN16">16</td><td class="line"> guint8 digest[16];</td></tr>
+<tr class="codeline" data-linenumber="17"><td class="num" id="LN17">17</td><td class="line"> gsize digest_len = <span class='keyword'>sizeof</span> (digest);</td></tr>
+<tr class="codeline" data-linenumber="18"><td class="num" id="LN18">18</td><td class="line"> guint32 *results;</td></tr>
+<tr class="codeline" data-linenumber="19"><td class="num" id="LN19">19</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="20"><td class="num" id="LN20">20</td><td class="line"> len = strlen(seed) + strlen(passhrase);</td></tr>
+<tr class="codeline" data-linenumber="21"><td class="num" id="LN21">21</td><td class="line"> buf = (<span class='keyword'>char</span> *)g_try_malloc(len+1);</td></tr>
+<tr class="codeline" data-linenumber="22"><td class="num" id="LN22">22</td><td class="line"> <span class='keyword'>if</span> (buf == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="23"><td class="num" id="LN23">23</td><td class="line"> <span class='keyword'>return</span> -1;</td></tr>
+<tr class="codeline" data-linenumber="24"><td class="num" id="LN24">24</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="25"><td class="num" id="LN25">25</td><td class="line"> strcpy(buf, seed);</td></tr>
+<tr class="codeline" data-linenumber="26"><td class="num" id="LN26">26</td><td class="line"> skey_lowcase(buf);</td></tr>
+<tr class="codeline" data-linenumber="27"><td class="num" id="LN27">27</td><td class="line"> <span class="mrange">strcat</span>(buf, passhrase);</td></tr>
+<tr><td class="num"></td><td class="line"><div id="EndPath" class="msg msgEvent" style="margin-left:9ex; max-width:52em">Call to function 'strcat' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcat'. CWE-119</div></td></tr>
+<tr class="codeline" data-linenumber="28"><td class="num" id="LN28">28</td><td class="line"> skey_sevenbit(buf);</td></tr>
+<tr class="codeline" data-linenumber="29"><td class="num" id="LN29">29</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="30"><td class="num" id="LN30">30</td><td class="line"> checksum = g_checksum_new (G_CHECKSUM_MD5);</td></tr>
+<tr class="codeline" data-linenumber="31"><td class="num" id="LN31">31</td><td class="line"> g_checksum_update (checksum, (<span class='keyword'>const</span> guchar *) buf, len);</td></tr>
+<tr class="codeline" data-linenumber="32"><td class="num" id="LN32">32</td><td class="line"> g_free(buf);</td></tr>
+<tr class="codeline" data-linenumber="33"><td class="num" id="LN33">33</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="34"><td class="num" id="LN34">34</td><td class="line"> g_checksum_get_digest (checksum, digest, &amp;digest_len);</td></tr>
+<tr class="codeline" data-linenumber="35"><td class="num" id="LN35">35</td><td class="line"> <span class='macro'>g_assert (digest_len == 16)<span class='macro_popup'>do { if (digest_len == 16) ; else g_assertion_message_expr ((<br>(gchar*) 0), "md5.c", 35, ((const char*) (__func__)), "digest_len == 16"<br>); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="36"><td class="num" id="LN36">36</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="37"><td class="num" id="LN37">37</td><td class="line"> results = (guint32 *) digest;</td></tr>
+<tr class="codeline" data-linenumber="38"><td class="num" id="LN38">38</td><td class="line"> results[0] ^= results[2];</td></tr>
+<tr class="codeline" data-linenumber="39"><td class="num" id="LN39">39</td><td class="line"> results[1] ^= results[3];</td></tr>
+<tr class="codeline" data-linenumber="40"><td class="num" id="LN40">40</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="41"><td class="num" id="LN41">41</td><td class="line"> memcpy((<span class='keyword'>void</span> *)result, (<span class='keyword'>void</span> *)results, <span class='macro'>SKEY_SIZE<span class='macro_popup'>8</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="42"><td class="num" id="LN42">42</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="43"><td class="num" id="LN43">43</td><td class="line"> g_checksum_free (checksum);</td></tr>
+<tr class="codeline" data-linenumber="44"><td class="num" id="LN44">44</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="45"><td class="num" id="LN45">45</td><td class="line"> <span class='keyword'>return</span> 0;</td></tr>
+<tr class="codeline" data-linenumber="46"><td class="num" id="LN46">46</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="47"><td class="num" id="LN47">47</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="48"><td class="num" id="LN48">48</td><td class="line"><span class='keyword'>void</span> MD5SKey(<span class='keyword'>char</span> *x)</td></tr>
+<tr class="codeline" data-linenumber="49"><td class="num" id="LN49">49</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="50"><td class="num" id="LN50">50</td><td class="line"> GChecksum *checksum;</td></tr>
+<tr class="codeline" data-linenumber="51"><td class="num" id="LN51">51</td><td class="line"> guint8 digest[16];</td></tr>
+<tr class="codeline" data-linenumber="52"><td class="num" id="LN52">52</td><td class="line"> gsize digest_len = <span class='keyword'>sizeof</span> (digest);</td></tr>
+<tr class="codeline" data-linenumber="53"><td class="num" id="LN53">53</td><td class="line"> guint32 *results;</td></tr>
+<tr class="codeline" data-linenumber="54"><td class="num" id="LN54">54</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="55"><td class="num" id="LN55">55</td><td class="line"> checksum = g_checksum_new (G_CHECKSUM_MD5);</td></tr>
+<tr class="codeline" data-linenumber="56"><td class="num" id="LN56">56</td><td class="line"> g_checksum_update (checksum, (<span class='keyword'>const</span> guchar *) x, <span class='macro'>SKEY_SIZE<span class='macro_popup'>8</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="57"><td class="num" id="LN57">57</td><td class="line"> g_checksum_get_digest (checksum, digest, &amp;digest_len);</td></tr>
+<tr class="codeline" data-linenumber="58"><td class="num" id="LN58">58</td><td class="line"> <span class='macro'>g_assert (digest_len == 16)<span class='macro_popup'>do { if (digest_len == 16) ; else g_assertion_message_expr ((<br>(gchar*) 0), "md5.c", 58, ((const char*) (__func__)), "digest_len == 16"<br>); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="59"><td class="num" id="LN59">59</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="60"><td class="num" id="LN60">60</td><td class="line"> results = (guint32 *) digest;</td></tr>
+<tr class="codeline" data-linenumber="61"><td class="num" id="LN61">61</td><td class="line"> results[0] ^= results[2];</td></tr>
+<tr class="codeline" data-linenumber="62"><td class="num" id="LN62">62</td><td class="line"> results[1] ^= results[3];</td></tr>
+<tr class="codeline" data-linenumber="63"><td class="num" id="LN63">63</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="64"><td class="num" id="LN64">64</td><td class="line"> memcpy((<span class='keyword'>void</span> *)x, (<span class='keyword'>void</span> *)results, <span class='macro'>SKEY_SIZE<span class='macro_popup'>8</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="65"><td class="num" id="LN65">65</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="66"><td class="num" id="LN66">66</td><td class="line"> g_checksum_free (checksum);</td></tr>
+<tr class="codeline" data-linenumber="67"><td class="num" id="LN67">67</td><td class="line">}</td></tr>
+</table></body></html>
diff --git a/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-a2885e.html b/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-a2885e.html
new file mode 100644
index 0000000..ab44f60
--- /dev/null
+++ b/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-a2885e.html
@@ -0,0 +1,789 @@
+<!doctype html>
+<html>
+<head>
+<title>sha1.c</title>
+
+<style type="text/css">
+body { color:#000000; background-color:#ffffff }
+body { font-family:Helvetica, sans-serif; font-size:10pt }
+h1 { font-size:14pt }
+.FileName { margin-top: 5px; margin-bottom: 5px; display: inline; }
+.FileNav { margin-left: 5px; margin-right: 5px; display: inline; }
+.FileNav a { text-decoration:none; font-size: larger; }
+.divider { margin-top: 30px; margin-bottom: 30px; height: 15px; }
+.divider { background-color: gray; }
+.code { border-collapse:collapse; width:100%; }
+.code { font-family: "Monospace", monospace; font-size:10pt }
+.code { line-height: 1.2em }
+.comment { color: green; font-style: oblique }
+.keyword { color: blue }
+.string_literal { color: red }
+.directive { color: darkmagenta }
+
+/* Macros and variables could have pop-up notes hidden by default.
+ - Macro pop-up: expansion of the macro
+ - Variable pop-up: value (table) of the variable */
+.macro_popup, .variable_popup { display: none; }
+
+/* Pop-up appears on mouse-hover event. */
+.macro:hover .macro_popup, .variable:hover .variable_popup {
+ display: block;
+ padding: 2px;
+ -webkit-border-radius:5px;
+ -webkit-box-shadow:1px 1px 7px #000;
+ border-radius:5px;
+ box-shadow:1px 1px 7px #000;
+ position: absolute;
+ top: -1em;
+ left:10em;
+ z-index: 1
+}
+
+.macro_popup {
+ border: 2px solid red;
+ background-color:#FFF0F0;
+ font-weight: normal;
+}
+
+.variable_popup {
+ border: 2px solid blue;
+ background-color:#F0F0FF;
+ font-weight: bold;
+ font-family: Helvetica, sans-serif;
+ font-size: 9pt;
+}
+
+/* Pop-up notes needs a relative position as a base where they pops up. */
+.macro, .variable {
+ background-color: PaleGoldenRod;
+ position: relative;
+}
+.macro { color: DarkMagenta; }
+
+#tooltiphint {
+ position: fixed;
+ width: 50em;
+ margin-left: -25em;
+ left: 50%;
+ padding: 10px;
+ border: 1px solid #b0b0b0;
+ border-radius: 2px;
+ box-shadow: 1px 1px 7px black;
+ background-color: #c0c0c0;
+ z-index: 2;
+}
+
+.num { width:2.5em; padding-right:2ex; background-color:#eeeeee }
+.num { text-align:right; font-size:8pt }
+.num { color:#444444 }
+.line { padding-left: 1ex; border-left: 3px solid #ccc }
+.line { white-space: pre }
+.msg { -webkit-box-shadow:1px 1px 7px #000 }
+.msg { box-shadow:1px 1px 7px #000 }
+.msg { -webkit-border-radius:5px }
+.msg { border-radius:5px }
+.msg { font-family:Helvetica, sans-serif; font-size:8pt }
+.msg { float:left }
+.msg { position:relative }
+.msg { padding:0.25em 1ex 0.25em 1ex }
+.msg { margin-top:10px; margin-bottom:10px }
+.msg { font-weight:bold }
+.msg { max-width:60em; word-wrap: break-word; white-space: pre-wrap }
+.msgT { padding:0x; spacing:0x }
+.msgEvent { background-color:#fff8b4; color:#000000 }
+.msgControl { background-color:#bbbbbb; color:#000000 }
+.msgNote { background-color:#ddeeff; color:#000000 }
+.mrange { background-color:#dfddf3 }
+.mrange { border-bottom:1px solid #6F9DBE }
+.PathIndex { font-weight: bold; padding:0px 5px; margin-right:5px; }
+.PathIndex { -webkit-border-radius:8px }
+.PathIndex { border-radius:8px }
+.PathIndexEvent { background-color:#bfba87 }
+.PathIndexControl { background-color:#8c8c8c }
+.PathIndexPopUp { background-color: #879abc; }
+.PathNav a { text-decoration:none; font-size: larger }
+.CodeInsertionHint { font-weight: bold; background-color: #10dd10 }
+.CodeRemovalHint { background-color:#de1010 }
+.CodeRemovalHint { border-bottom:1px solid #6F9DBE }
+.msg.selected{ background-color:orange !important; }
+
+table.simpletable {
+ padding: 5px;
+ font-size:12pt;
+ margin:20px;
+ border-collapse: collapse; border-spacing: 0px;
+}
+td.rowname {
+ text-align: right;
+ vertical-align: top;
+ font-weight: bold;
+ color:#444444;
+ padding-right:2ex;
+}
+
+/* Hidden text. */
+input.spoilerhider + label {
+ cursor: pointer;
+ text-decoration: underline;
+ display: block;
+}
+input.spoilerhider {
+ display: none;
+}
+input.spoilerhider ~ .spoiler {
+ overflow: hidden;
+ margin: 10px auto 0;
+ height: 0;
+ opacity: 0;
+}
+input.spoilerhider:checked + label + .spoiler{
+ height: auto;
+ opacity: 1;
+}
+</style>
+</head>
+<body>
+<!-- BUGDESC Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119 -->
+
+<!-- BUGTYPE Potential insecure memory buffer bounds restriction in call 'strcpy' -->
+
+<!-- BUGCATEGORY Security -->
+
+<!-- BUGFILE /rootdir/src/skey/sha1.c -->
+
+<!-- FILENAME sha1.c -->
+
+<!-- FUNCTIONNAME SHA1Keycrunch -->
+
+<!-- ISSUEHASHCONTENTOFLINEINCONTEXT a2885eb19076bdc61e34cfe3fdfaabd0 -->
+
+<!-- BUGLINE 51 -->
+
+<!-- BUGCOLUMN 2 -->
+
+<!-- BUGPATHLENGTH 1 -->
+
+<!-- BUGMETAEND -->
+<!-- REPORTHEADER -->
+<h3>Bug Summary</h3>
+<table class="simpletable">
+<tr><td class="rowname">File:</td><td>skey/sha1.c</td></tr>
+<tr><td class="rowname">Warning:</td><td><a href="#EndPath">line 51, column 2</a><br />Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119</td></tr>
+
+</table>
+<!-- REPORTSUMMARYEXTRA -->
+<h3>Annotated Source Code</h3>
+<p>Press <a href="#" onclick="toggleHelp(); return false;">'?'</a>
+ to see keyboard shortcuts</p>
+<input type="checkbox" class="spoilerhider" id="showinvocation" />
+<label for="showinvocation" >Show analyzer invocation</label>
+<div class="spoiler">clang -cc1 -cc1 -triple x86_64-redhat-linux-gnu -analyze -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name sha1.c -analyzer-checker=core -analyzer-checker=apiModeling -analyzer-checker=unix -analyzer-checker=deadcode -analyzer-checker=security.insecureAPI.UncheckedReturn -analyzer-checker=security.insecureAPI.getpw -analyzer-checker=security.insecureAPI.gets -analyzer-checker=security.insecureAPI.mktemp -analyzer-checker=security.insecureAPI.mkstemp -analyzer-checker=security.insecureAPI.vfork -analyzer-checker=nullability.NullPassedToNonnull -analyzer-checker=nullability.NullReturnedFromNonnull -analyzer-output plist -w -setup-static-analyzer -mrelocation-model pic -pic-level 2 -fhalf-no-semantic-interposition -mframe-pointer=all -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -tune-cpu generic -debugger-tuning=gdb -fcoverage-compilation-dir=/rootdir/src/skey -resource-dir /usr/bin/../lib/clang/17 -D HAVE_CONFIG_H -I . -I ../.. -I ./.. -D G_DISABLE_SINGLE_INCLUDES -I /usr/include/dconf -I /usr/include/vte-2.91 -I /usr/include/pango-1.0 -I /usr/include/gtk-3.0 -I /usr/include/gdk-pixbuf-2.0 -I /usr/include/cairo -I /usr/include/dbus-1.0 -I /usr/lib64/dbus-1.0/include -I /usr/include/atk-1.0 -I /usr/include/harfbuzz -I /usr/include/freetype2 -I /usr/include/glib-2.0 -I /usr/lib64/glib-2.0/include -I /usr/include/cloudproviders -I /usr/include/at-spi2-atk/2.0 -I /usr/include/at-spi-2.0 -I /usr/include/blkid -I /usr/include/gio-unix-2.0 -I /usr/include/pixman-1 -I /usr/include/libmount -I /usr/include/libxml2 -I /usr/include/fribidi -I /usr/include/libpng16 -I /usr/include/sysprof-6 -D PIC -internal-isystem /usr/bin/../lib/clang/17/include -internal-isystem /usr/local/include -internal-isystem /usr/bin/../lib/gcc/x86_64-redhat-linux/13/../../../../x86_64-redhat-linux/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -Wno-unused-parameter -fdebug-compilation-dir=/rootdir/src/skey -ferror-limit 19 -fgnuc-version=4.2.1 -analyzer-checker deadcode.DeadStores -analyzer-checker alpha.deadcode.UnreachableCode -analyzer-checker alpha.core.CastSize -analyzer-checker alpha.core.CastToStruct -analyzer-checker alpha.core.IdenticalExpr -analyzer-checker alpha.core.SizeofPtr -analyzer-checker alpha.security.ArrayBoundV2 -analyzer-checker alpha.security.MallocOverflow -analyzer-checker alpha.security.ReturnPtrRange -analyzer-checker alpha.unix.SimpleStream -analyzer-checker alpha.unix.cstring.BufferOverlap -analyzer-checker alpha.unix.cstring.NotNullTerminated -analyzer-checker alpha.unix.cstring.OutOfBounds -analyzer-checker alpha.core.FixedAddr -analyzer-checker security.insecureAPI.strcpy -analyzer-output=html -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /rootdir/html-report/2024-02-18-131424-5067-1 -x c sha1.c
+</div>
+<div id='tooltiphint' hidden="true">
+ <p>Keyboard shortcuts: </p>
+ <ul>
+ <li>Use 'j/k' keys for keyboard navigation</li>
+ <li>Use 'Shift+S' to show/hide relevant lines</li>
+ <li>Use '?' to toggle this window</li>
+ </ul>
+ <a href="#" onclick="toggleHelp(); return false;">Close</a>
+</div>
+<script type='text/javascript'>
+var relevant_lines = {"1": {"51": 1}};
+
+var filterCounterexample = function (hide) {
+ var tables = document.getElementsByClassName("code");
+ for (var t=0; t<tables.length; t++) {
+ var table = tables[t];
+ var file_id = table.getAttribute("data-fileid");
+ var lines_in_fid = relevant_lines[file_id];
+ if (!lines_in_fid) {
+ lines_in_fid = {};
+ }
+ var lines = table.getElementsByClassName("codeline");
+ for (var i=0; i<lines.length; i++) {
+ var el = lines[i];
+ var lineNo = el.getAttribute("data-linenumber");
+ if (!lines_in_fid[lineNo]) {
+ if (hide) {
+ el.setAttribute("hidden", "");
+ } else {
+ el.removeAttribute("hidden");
+ }
+ }
+ }
+ }
+}
+
+window.addEventListener("keydown", function (event) {
+ if (event.defaultPrevented) {
+ return;
+ }
+ // SHIFT + S
+ if (event.shiftKey && event.keyCode == 83) {
+ var checked = document.getElementsByName("showCounterexample")[0].checked;
+ filterCounterexample(!checked);
+ document.getElementsByName("showCounterexample")[0].click();
+ } else {
+ return;
+ }
+ event.preventDefault();
+}, true);
+
+document.addEventListener("DOMContentLoaded", function() {
+ document.querySelector('input[name="showCounterexample"]').onchange=
+ function (event) {
+ filterCounterexample(this.checked);
+ };
+});
+</script>
+
+<form>
+ <input type="checkbox" name="showCounterexample" id="showCounterexample" />
+ <label for="showCounterexample">
+ Show only relevant lines
+ </label>
+ <input type="checkbox" name="showArrows"
+ id="showArrows" style="margin-left: 10px" />
+ <label for="showArrows">
+ Show control flow arrows
+ </label>
+</form>
+
+<script type='text/javascript'>
+// Return range of numbers from a range [lower, upper).
+function range(lower, upper) {
+ var array = [];
+ for (var i = lower; i <= upper; ++i) {
+ array.push(i);
+ }
+ return array;
+}
+
+var getRelatedArrowIndices = function(pathId) {
+ // HTML numeration of events is a bit different than it is in the path.
+ // Everything is rotated one step to the right, so the last element
+ // (error diagnostic) has index 0.
+ if (pathId == 0) {
+ // arrowIndices has at least 2 elements
+ pathId = arrowIndices.length - 1;
+ }
+
+ return range(arrowIndices[pathId], arrowIndices[pathId - 1]);
+}
+
+var highlightArrowsForSelectedEvent = function() {
+ const selectedNum = findNum();
+ const arrowIndicesToHighlight = getRelatedArrowIndices(selectedNum);
+ arrowIndicesToHighlight.forEach((index) => {
+ var arrow = document.querySelector("#arrow" + index);
+ if(arrow) {
+ classListAdd(arrow, "selected")
+ }
+ });
+}
+
+var getAbsoluteBoundingRect = function(element) {
+ const relative = element.getBoundingClientRect();
+ return {
+ left: relative.left + window.pageXOffset,
+ right: relative.right + window.pageXOffset,
+ top: relative.top + window.pageYOffset,
+ bottom: relative.bottom + window.pageYOffset,
+ height: relative.height,
+ width: relative.width
+ };
+}
+
+var drawArrow = function(index) {
+ // This function is based on the great answer from SO:
+ // https://stackoverflow.com/a/39575674/11582326
+ var start = document.querySelector("#start" + index);
+ var end = document.querySelector("#end" + index);
+ var arrow = document.querySelector("#arrow" + index);
+
+ var startRect = getAbsoluteBoundingRect(start);
+ var endRect = getAbsoluteBoundingRect(end);
+
+ // It is an arrow from a token to itself, no need to visualize it.
+ if (startRect.top == endRect.top &&
+ startRect.left == endRect.left)
+ return;
+
+ // Each arrow is a very simple Bézier curve, with two nodes and
+ // two handles. So, we need to calculate four points in the window:
+ // * start node
+ var posStart = { x: 0, y: 0 };
+ // * end node
+ var posEnd = { x: 0, y: 0 };
+ // * handle for the start node
+ var startHandle = { x: 0, y: 0 };
+ // * handle for the end node
+ var endHandle = { x: 0, y: 0 };
+ // One can visualize it as follows:
+ //
+ // start handle
+ // /
+ // X"""_.-""""X
+ // .' \
+ // / start node
+ // |
+ // |
+ // | end node
+ // \ /
+ // `->X
+ // X-'
+ // \
+ // end handle
+ //
+ // NOTE: (0, 0) is the top left corner of the window.
+
+ // We have 3 similar, but still different scenarios to cover:
+ //
+ // 1. Two tokens on different lines.
+ // -xxx
+ // /
+ // \
+ // -> xxx
+ // In this situation, we draw arrow on the left curving to the left.
+ // 2. Two tokens on the same line, and the destination is on the right.
+ // ____
+ // / \
+ // / V
+ // xxx xxx
+ // In this situation, we draw arrow above curving upwards.
+ // 3. Two tokens on the same line, and the destination is on the left.
+ // xxx xxx
+ // ^ /
+ // \____/
+ // In this situation, we draw arrow below curving downwards.
+ const onDifferentLines = startRect.top <= endRect.top - 5 ||
+ startRect.top >= endRect.top + 5;
+ const leftToRight = startRect.left < endRect.left;
+
+ // NOTE: various magic constants are chosen empirically for
+ // better positioning and look
+ if (onDifferentLines) {
+ // Case #1
+ const topToBottom = startRect.top < endRect.top;
+ posStart.x = startRect.left - 1;
+ // We don't want to start it at the top left corner of the token,
+ // it doesn't feel like this is where the arrow comes from.
+ // For this reason, we start it in the middle of the left side
+ // of the token.
+ posStart.y = startRect.top + startRect.height / 2;
+
+ // End node has arrow head and we give it a bit more space.
+ posEnd.x = endRect.left - 4;
+ posEnd.y = endRect.top;
+
+ // Utility object with x and y offsets for handles.
+ var curvature = {
+ // We want bottom-to-top arrow to curve a bit more, so it doesn't
+ // overlap much with top-to-bottom curves (much more frequent).
+ x: topToBottom ? 15 : 25,
+ y: Math.min((posEnd.y - posStart.y) / 3, 10)
+ }
+
+ // When destination is on the different line, we can make a
+ // curvier arrow because we have space for it.
+ // So, instead of using
+ //
+ // startHandle.x = posStart.x - curvature.x
+ // endHandle.x = posEnd.x - curvature.x
+ //
+ // We use the leftmost of these two values for both handles.
+ startHandle.x = Math.min(posStart.x, posEnd.x) - curvature.x;
+ endHandle.x = startHandle.x;
+
+ // Curving downwards from the start node...
+ startHandle.y = posStart.y + curvature.y;
+ // ... and upwards from the end node.
+ endHandle.y = posEnd.y - curvature.y;
+
+ } else if (leftToRight) {
+ // Case #2
+ // Starting from the top right corner...
+ posStart.x = startRect.right - 1;
+ posStart.y = startRect.top;
+
+ // ...and ending at the top left corner of the end token.
+ posEnd.x = endRect.left + 1;
+ posEnd.y = endRect.top - 1;
+
+ // Utility object with x and y offsets for handles.
+ var curvature = {
+ x: Math.min((posEnd.x - posStart.x) / 3, 15),
+ y: 5
+ }
+
+ // Curving to the right...
+ startHandle.x = posStart.x + curvature.x;
+ // ... and upwards from the start node.
+ startHandle.y = posStart.y - curvature.y;
+
+ // And to the left...
+ endHandle.x = posEnd.x - curvature.x;
+ // ... and upwards from the end node.
+ endHandle.y = posEnd.y - curvature.y;
+
+ } else {
+ // Case #3
+ // Starting from the bottom right corner...
+ posStart.x = startRect.right;
+ posStart.y = startRect.bottom;
+
+ // ...and ending also at the bottom right corner, but of the end token.
+ posEnd.x = endRect.right - 1;
+ posEnd.y = endRect.bottom + 1;
+
+ // Utility object with x and y offsets for handles.
+ var curvature = {
+ x: Math.min((posStart.x - posEnd.x) / 3, 15),
+ y: 5
+ }
+
+ // Curving to the left...
+ startHandle.x = posStart.x - curvature.x;
+ // ... and downwards from the start node.
+ startHandle.y = posStart.y + curvature.y;
+
+ // And to the right...
+ endHandle.x = posEnd.x + curvature.x;
+ // ... and downwards from the end node.
+ endHandle.y = posEnd.y + curvature.y;
+ }
+
+ // Put it all together into a path.
+ // More information on the format:
+ // https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths
+ var pathStr = "M" + posStart.x + "," + posStart.y + " " +
+ "C" + startHandle.x + "," + startHandle.y + " " +
+ endHandle.x + "," + endHandle.y + " " +
+ posEnd.x + "," + posEnd.y;
+
+ arrow.setAttribute("d", pathStr);
+};
+
+var drawArrows = function() {
+ const numOfArrows = document.querySelectorAll("path[id^=arrow]").length;
+ for (var i = 0; i < numOfArrows; ++i) {
+ drawArrow(i);
+ }
+}
+
+var toggleArrows = function(event) {
+ const arrows = document.querySelector("#arrows");
+ if (event.target.checked) {
+ arrows.setAttribute("visibility", "visible");
+ } else {
+ arrows.setAttribute("visibility", "hidden");
+ }
+}
+
+window.addEventListener("resize", drawArrows);
+document.addEventListener("DOMContentLoaded", function() {
+ // Whenever we show invocation, locations change, i.e. we
+ // need to redraw arrows.
+ document
+ .querySelector('input[id="showinvocation"]')
+ .addEventListener("click", drawArrows);
+ // Hiding irrelevant lines also should cause arrow rerender.
+ document
+ .querySelector('input[name="showCounterexample"]')
+ .addEventListener("change", drawArrows);
+ document
+ .querySelector('input[name="showArrows"]')
+ .addEventListener("change", toggleArrows);
+ drawArrows();
+ // Default highlighting for the last event.
+ highlightArrowsForSelectedEvent();
+});
+</script>
+
+<script type='text/javascript'>
+var digitMatcher = new RegExp("[0-9]+");
+
+var querySelectorAllArray = function(selector) {
+ return Array.prototype.slice.call(
+ document.querySelectorAll(selector));
+}
+
+document.addEventListener("DOMContentLoaded", function() {
+ querySelectorAllArray(".PathNav > a").forEach(
+ function(currentValue, currentIndex) {
+ var hrefValue = currentValue.getAttribute("href");
+ currentValue.onclick = function() {
+ scrollTo(document.querySelector(hrefValue));
+ return false;
+ };
+ });
+});
+
+var findNum = function() {
+ var s = document.querySelector(".msg.selected");
+ if (!s || s.id == "EndPath") {
+ return 0;
+ }
+ var out = parseInt(digitMatcher.exec(s.id)[0]);
+ return out;
+};
+
+var classListAdd = function(el, theClass) {
+ if(!el.className.baseVal)
+ el.className += " " + theClass;
+ else
+ el.className.baseVal += " " + theClass;
+};
+
+var classListRemove = function(el, theClass) {
+ var className = (!el.className.baseVal) ?
+ el.className : el.className.baseVal;
+ className = className.replace(" " + theClass, "");
+ if(!el.className.baseVal)
+ el.className = className;
+ else
+ el.className.baseVal = className;
+};
+
+var scrollTo = function(el) {
+ querySelectorAllArray(".selected").forEach(function(s) {
+ classListRemove(s, "selected");
+ });
+ classListAdd(el, "selected");
+ window.scrollBy(0, el.getBoundingClientRect().top -
+ (window.innerHeight / 2));
+ highlightArrowsForSelectedEvent();
+};
+
+var move = function(num, up, numItems) {
+ if (num == 1 && up || num == numItems - 1 && !up) {
+ return 0;
+ } else if (num == 0 && up) {
+ return numItems - 1;
+ } else if (num == 0 && !up) {
+ return 1 % numItems;
+ }
+ return up ? num - 1 : num + 1;
+}
+
+var numToId = function(num) {
+ if (num == 0) {
+ return document.getElementById("EndPath")
+ }
+ return document.getElementById("Path" + num);
+};
+
+var navigateTo = function(up) {
+ var numItems = document.querySelectorAll(
+ ".line > .msgEvent, .line > .msgControl").length;
+ var currentSelected = findNum();
+ var newSelected = move(currentSelected, up, numItems);
+ var newEl = numToId(newSelected, numItems);
+
+ // Scroll element into center.
+ scrollTo(newEl);
+};
+
+window.addEventListener("keydown", function (event) {
+ if (event.defaultPrevented) {
+ return;
+ }
+ // key 'j'
+ if (event.keyCode == 74) {
+ navigateTo(/*up=*/false);
+ // key 'k'
+ } else if (event.keyCode == 75) {
+ navigateTo(/*up=*/true);
+ } else {
+ return;
+ }
+ event.preventDefault();
+}, true);
+</script>
+
+<script type='text/javascript'>
+
+var toggleHelp = function() {
+ var hint = document.querySelector("#tooltiphint");
+ var attributeName = "hidden";
+ if (hint.hasAttribute(attributeName)) {
+ hint.removeAttribute(attributeName);
+ } else {
+ hint.setAttribute("hidden", "true");
+ }
+};
+window.addEventListener("keydown", function (event) {
+ if (event.defaultPrevented) {
+ return;
+ }
+ if (event.key == "?") {
+ toggleHelp();
+ } else {
+ return;
+ }
+ event.preventDefault();
+});
+</script>
+
+<style type="text/css">
+ svg {
+ position:absolute;
+ top:0;
+ left:0;
+ height:100%;
+ width:100%;
+ pointer-events: none;
+ overflow: visible
+ }
+ .arrow {
+ stroke-opacity: 0.2;
+ stroke-width: 1;
+ marker-end: url(#arrowhead);
+ }
+
+ .arrow.selected {
+ stroke-opacity: 0.6;
+ stroke-width: 2;
+ marker-end: url(#arrowheadSelected);
+ }
+
+ .arrowhead {
+ orient: auto;
+ stroke: none;
+ opacity: 0.6;
+ fill: blue;
+ }
+</style>
+<svg xmlns="http://www.w3.org/2000/svg">
+ <defs>
+ <marker id="arrowheadSelected" class="arrowhead" opacity="0.6"
+ viewBox="0 0 10 10" refX="3" refY="5"
+ markerWidth="4" markerHeight="4">
+ <path d="M 0 0 L 10 5 L 0 10 z" />
+ </marker>
+ <marker id="arrowhead" class="arrowhead" opacity="0.2"
+ viewBox="0 0 10 10" refX="3" refY="5"
+ markerWidth="4" markerHeight="4">
+ <path d="M 0 0 L 10 5 L 0 10 z" />
+ </marker>
+ </defs>
+ <g id="arrows" fill="none" stroke="blue" visibility="hidden">
+
+ </g>
+</svg>
+<script type='text/javascript'>
+const arrowIndices = [ 0,0 ]
+</script>
+<table class="code" data-fileid="1">
+<tr class="codeline" data-linenumber="1"><td class="num" id="LN1">1</td><td class="line"><span class='directive'>#include &lt;config.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="2"><td class="num" id="LN2">2</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3"><td class="num" id="LN3">3</td><td class="line"><span class='directive'>#include &lt;string.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="4"><td class="num" id="LN4">4</td><td class="line"><span class='directive'>#include &lt;stdlib.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="5"><td class="num" id="LN5">5</td><td class="line"><span class='directive'>#include &lt;arpa/inet.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="6"><td class="num" id="LN6">6</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="7"><td class="num" id="LN7">7</td><td class="line"><span class='directive'>#include &lt;glib.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="8"><td class="num" id="LN8">8</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="9"><td class="num" id="LN9">9</td><td class="line"><span class='directive'>#include "skey.h"</span></td></tr>
+<tr class="codeline" data-linenumber="10"><td class="num" id="LN10">10</td><td class="line"><span class='directive'>#include "skeyutil.h"</span></td></tr>
+<tr class="codeline" data-linenumber="11"><td class="num" id="LN11">11</td><td class="line"><span class='directive'>#include "sha1.h"</span></td></tr>
+<tr class="codeline" data-linenumber="12"><td class="num" id="LN12">12</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="13"><td class="num" id="LN13">13</td><td class="line"><span class='directive'>#define <span class='macro'>HTONDIGEST(x)<span class='macro_popup'>{ x[0] = htonl(x[0]); x[1] = htonl(x[1]); x[2] = htonl(x[2]);<br> x[3] = htonl(x[3]); x[4] = htonl(x[4]); }</span></span> { \</span></td></tr>
+<tr class="codeline" data-linenumber="14"><td class="num" id="LN14">14</td><td class="line"> <span class='directive'>x[0] = htonl(x[0]); \</span></td></tr>
+<tr class="codeline" data-linenumber="15"><td class="num" id="LN15">15</td><td class="line"> <span class='directive'>x[1] = htonl(x[1]); \</span></td></tr>
+<tr class="codeline" data-linenumber="16"><td class="num" id="LN16">16</td><td class="line"> <span class='directive'>x[2] = htonl(x[2]); \</span></td></tr>
+<tr class="codeline" data-linenumber="17"><td class="num" id="LN17">17</td><td class="line"> <span class='directive'>x[3] = htonl(x[3]); \</span></td></tr>
+<tr class="codeline" data-linenumber="18"><td class="num" id="LN18">18</td><td class="line"> <span class='directive'>x[4] = htonl(x[4]); }</span></td></tr>
+<tr class="codeline" data-linenumber="19"><td class="num" id="LN19">19</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="20"><td class="num" id="LN20">20</td><td class="line"><span class='directive'>#ifdef WORDS_BIGENDIAN</span></td></tr>
+<tr class="codeline" data-linenumber="21"><td class="num" id="LN21">21</td><td class="line"><span class='comment'>/*</span></td></tr>
+<tr class="codeline" data-linenumber="22"><td class="num" id="LN22">22</td><td class="line"> <span class='comment'>* Note: this code is harmless on little-endian machines.</span></td></tr>
+<tr class="codeline" data-linenumber="23"><td class="num" id="LN23">23</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="24"><td class="num" id="LN24">24</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> byteReverse(<span class='keyword'>unsigned</span> <span class='keyword'>char</span> *buf, <span class='keyword'>unsigned</span> longs)</td></tr>
+<tr class="codeline" data-linenumber="25"><td class="num" id="LN25">25</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="26"><td class="num" id="LN26">26</td><td class="line"> guint32 t;</td></tr>
+<tr class="codeline" data-linenumber="27"><td class="num" id="LN27">27</td><td class="line"> <span class='keyword'>do</span></td></tr>
+<tr class="codeline" data-linenumber="28"><td class="num" id="LN28">28</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="29"><td class="num" id="LN29">29</td><td class="line"> t = (guint32) ((<span class='keyword'>unsigned</span>) buf[3] &lt;&lt; 8 | buf[2]) &lt;&lt; 16 |</td></tr>
+<tr class="codeline" data-linenumber="30"><td class="num" id="LN30">30</td><td class="line"> ((<span class='keyword'>unsigned</span>) buf[1] &lt;&lt; 8 | buf[0]);</td></tr>
+<tr class="codeline" data-linenumber="31"><td class="num" id="LN31">31</td><td class="line"> *(guint32 *) buf = t;</td></tr>
+<tr class="codeline" data-linenumber="32"><td class="num" id="LN32">32</td><td class="line"> buf += 4;</td></tr>
+<tr class="codeline" data-linenumber="33"><td class="num" id="LN33">33</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="34"><td class="num" id="LN34">34</td><td class="line"> <span class='keyword'>while</span> (--longs);</td></tr>
+<tr class="codeline" data-linenumber="35"><td class="num" id="LN35">35</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="36"><td class="num" id="LN36">36</td><td class="line"><span class='directive'>#endif</span></td></tr>
+<tr class="codeline" data-linenumber="37"><td class="num" id="LN37">37</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="38"><td class="num" id="LN38">38</td><td class="line"><span class='keyword'>int</span> SHA1Keycrunch(<span class='keyword'>char</span> *result, <span class='keyword'>const</span> <span class='keyword'>char</span> *seed, <span class='keyword'>const</span> <span class='keyword'>char</span> *passphrase)</td></tr>
+<tr class="codeline" data-linenumber="39"><td class="num" id="LN39">39</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="40"><td class="num" id="LN40">40</td><td class="line"> <span class='keyword'>char</span> *buf;</td></tr>
+<tr class="codeline" data-linenumber="41"><td class="num" id="LN41">41</td><td class="line"> gsize len;</td></tr>
+<tr class="codeline" data-linenumber="42"><td class="num" id="LN42">42</td><td class="line"> GChecksum *checksum;</td></tr>
+<tr class="codeline" data-linenumber="43"><td class="num" id="LN43">43</td><td class="line"> guint8 digest[20];</td></tr>
+<tr class="codeline" data-linenumber="44"><td class="num" id="LN44">44</td><td class="line"> gsize digest_len = <span class='keyword'>sizeof</span> (digest);</td></tr>
+<tr class="codeline" data-linenumber="45"><td class="num" id="LN45">45</td><td class="line"> guint32 *results;</td></tr>
+<tr class="codeline" data-linenumber="46"><td class="num" id="LN46">46</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="47"><td class="num" id="LN47">47</td><td class="line"> len = strlen(seed) + strlen(passphrase);</td></tr>
+<tr class="codeline" data-linenumber="48"><td class="num" id="LN48">48</td><td class="line"> <span class='keyword'>if</span> ((buf = (<span class='keyword'>char</span> *)g_try_malloc(len+1)) == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="49"><td class="num" id="LN49">49</td><td class="line"> <span class='keyword'>return</span> -1;</td></tr>
+<tr class="codeline" data-linenumber="50"><td class="num" id="LN50">50</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="51"><td class="num" id="LN51">51</td><td class="line"> <span class="mrange">strcpy</span>(buf, seed);</td></tr>
+<tr><td class="num"></td><td class="line"><div id="EndPath" class="msg msgEvent" style="margin-left:9ex; max-width:52em">Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119</div></td></tr>
+<tr class="codeline" data-linenumber="52"><td class="num" id="LN52">52</td><td class="line"> skey_lowcase(buf);</td></tr>
+<tr class="codeline" data-linenumber="53"><td class="num" id="LN53">53</td><td class="line"> strcat(buf, passphrase);</td></tr>
+<tr class="codeline" data-linenumber="54"><td class="num" id="LN54">54</td><td class="line"> skey_sevenbit(buf);</td></tr>
+<tr class="codeline" data-linenumber="55"><td class="num" id="LN55">55</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="56"><td class="num" id="LN56">56</td><td class="line"> checksum = g_checksum_new (G_CHECKSUM_SHA1);</td></tr>
+<tr class="codeline" data-linenumber="57"><td class="num" id="LN57">57</td><td class="line"> g_checksum_update (checksum, (<span class='keyword'>const</span> guchar *) buf, len);</td></tr>
+<tr class="codeline" data-linenumber="58"><td class="num" id="LN58">58</td><td class="line"> g_free(buf);</td></tr>
+<tr class="codeline" data-linenumber="59"><td class="num" id="LN59">59</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="60"><td class="num" id="LN60">60</td><td class="line"> g_checksum_get_digest (checksum, digest, &amp;digest_len);</td></tr>
+<tr class="codeline" data-linenumber="61"><td class="num" id="LN61">61</td><td class="line"> <span class='macro'>g_assert (digest_len == 20)<span class='macro_popup'>do { if (digest_len == 20) ; else g_assertion_message_expr ((<br>(gchar*) 0), "sha1.c", 61, ((const char*) (__func__)), "digest_len == 20"<br>); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="62"><td class="num" id="LN62">62</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="63"><td class="num" id="LN63">63</td><td class="line"> results = (guint32 *) digest;</td></tr>
+<tr class="codeline" data-linenumber="64"><td class="num" id="LN64">64</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="65"><td class="num" id="LN65">65</td><td class="line"><span class='directive'>#ifndef WORDS_BIGENDIAN</span></td></tr>
+<tr class="codeline" data-linenumber="66"><td class="num" id="LN66">66</td><td class="line"> <span class='macro'>HTONDIGEST(results)<span class='macro_popup'>{ results[0] = htonl(results[0]); results[1] = htonl(results[<br>1]); results[2] = htonl(results[2]); results[3] = htonl(results<br>[3]); results[4] = htonl(results[4]); }</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="67"><td class="num" id="LN67">67</td><td class="line"><span class='directive'>#else</span></td></tr>
+<tr class="codeline" data-linenumber="68"><td class="num" id="LN68">68</td><td class="line"> byteReverse((<span class='keyword'>unsigned</span> <span class='keyword'>char</span> *)digest, 5);</td></tr>
+<tr class="codeline" data-linenumber="69"><td class="num" id="LN69">69</td><td class="line"><span class='directive'>#endif</span></td></tr>
+<tr class="codeline" data-linenumber="70"><td class="num" id="LN70">70</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="71"><td class="num" id="LN71">71</td><td class="line"> results = (guint32 *) digest;</td></tr>
+<tr class="codeline" data-linenumber="72"><td class="num" id="LN72">72</td><td class="line"> results[0] ^= results[2];</td></tr>
+<tr class="codeline" data-linenumber="73"><td class="num" id="LN73">73</td><td class="line"> results[1] ^= results[3];</td></tr>
+<tr class="codeline" data-linenumber="74"><td class="num" id="LN74">74</td><td class="line"> results[0] ^= results[4];</td></tr>
+<tr class="codeline" data-linenumber="75"><td class="num" id="LN75">75</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="76"><td class="num" id="LN76">76</td><td class="line"> memcpy((<span class='keyword'>void</span> *)result, (<span class='keyword'>void</span> *)results, <span class='macro'>SKEY_SIZE<span class='macro_popup'>8</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="77"><td class="num" id="LN77">77</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="78"><td class="num" id="LN78">78</td><td class="line"> g_checksum_free (checksum);</td></tr>
+<tr class="codeline" data-linenumber="79"><td class="num" id="LN79">79</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="80"><td class="num" id="LN80">80</td><td class="line"> <span class='keyword'>return</span> 0;</td></tr>
+<tr class="codeline" data-linenumber="81"><td class="num" id="LN81">81</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="82"><td class="num" id="LN82">82</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="83"><td class="num" id="LN83">83</td><td class="line"><span class='keyword'>void</span> SHA1SKey(<span class='keyword'>char</span> *x)</td></tr>
+<tr class="codeline" data-linenumber="84"><td class="num" id="LN84">84</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="85"><td class="num" id="LN85">85</td><td class="line"> GChecksum *checksum;</td></tr>
+<tr class="codeline" data-linenumber="86"><td class="num" id="LN86">86</td><td class="line"> guint8 digest[20];</td></tr>
+<tr class="codeline" data-linenumber="87"><td class="num" id="LN87">87</td><td class="line"> gsize digest_len = <span class='keyword'>sizeof</span> (digest);</td></tr>
+<tr class="codeline" data-linenumber="88"><td class="num" id="LN88">88</td><td class="line"> guint32 *results;</td></tr>
+<tr class="codeline" data-linenumber="89"><td class="num" id="LN89">89</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="90"><td class="num" id="LN90">90</td><td class="line"> checksum = g_checksum_new (G_CHECKSUM_SHA1);</td></tr>
+<tr class="codeline" data-linenumber="91"><td class="num" id="LN91">91</td><td class="line"> g_checksum_update (checksum, (<span class='keyword'>const</span> guchar *) x, <span class='macro'>SKEY_SIZE<span class='macro_popup'>8</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="92"><td class="num" id="LN92">92</td><td class="line"> g_checksum_get_digest (checksum, digest, &amp;digest_len);</td></tr>
+<tr class="codeline" data-linenumber="93"><td class="num" id="LN93">93</td><td class="line"> <span class='macro'>g_assert (digest_len == 20)<span class='macro_popup'>do { if (digest_len == 20) ; else g_assertion_message_expr ((<br>(gchar*) 0), "sha1.c", 93, ((const char*) (__func__)), "digest_len == 20"<br>); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="94"><td class="num" id="LN94">94</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="95"><td class="num" id="LN95">95</td><td class="line"> results = (guint32 *) digest;</td></tr>
+<tr class="codeline" data-linenumber="96"><td class="num" id="LN96">96</td><td class="line"><span class='directive'>#ifndef WORDS_BIGENDIAN</span></td></tr>
+<tr class="codeline" data-linenumber="97"><td class="num" id="LN97">97</td><td class="line"> <span class='macro'>HTONDIGEST(results)<span class='macro_popup'>{ results[0] = htonl(results[0]); results[1] = htonl(results[<br>1]); results[2] = htonl(results[2]); results[3] = htonl(results<br>[3]); results[4] = htonl(results[4]); }</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="98"><td class="num" id="LN98">98</td><td class="line"><span class='directive'>#else</span></td></tr>
+<tr class="codeline" data-linenumber="99"><td class="num" id="LN99">99</td><td class="line"> byteReverse((<span class='keyword'>unsigned</span> <span class='keyword'>char</span> *)digest, 5);</td></tr>
+<tr class="codeline" data-linenumber="100"><td class="num" id="LN100">100</td><td class="line"><span class='directive'>#endif</span></td></tr>
+<tr class="codeline" data-linenumber="101"><td class="num" id="LN101">101</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="102"><td class="num" id="LN102">102</td><td class="line"> results[0] ^= results[2];</td></tr>
+<tr class="codeline" data-linenumber="103"><td class="num" id="LN103">103</td><td class="line"> results[1] ^= results[3];</td></tr>
+<tr class="codeline" data-linenumber="104"><td class="num" id="LN104">104</td><td class="line"> results[0] ^= results[4];</td></tr>
+<tr class="codeline" data-linenumber="105"><td class="num" id="LN105">105</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="106"><td class="num" id="LN106">106</td><td class="line"> memcpy((<span class='keyword'>void</span> *)x, (<span class='keyword'>void</span> *)results, <span class='macro'>SKEY_SIZE<span class='macro_popup'>8</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="107"><td class="num" id="LN107">107</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="108"><td class="num" id="LN108">108</td><td class="line"> g_checksum_free (checksum);</td></tr>
+<tr class="codeline" data-linenumber="109"><td class="num" id="LN109">109</td><td class="line">}</td></tr>
+</table></body></html>
diff --git a/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-b430a1.html b/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-b430a1.html
new file mode 100644
index 0000000..6d06054
--- /dev/null
+++ b/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-b430a1.html
@@ -0,0 +1,747 @@
+<!doctype html>
+<html>
+<head>
+<title>md5.c</title>
+
+<style type="text/css">
+body { color:#000000; background-color:#ffffff }
+body { font-family:Helvetica, sans-serif; font-size:10pt }
+h1 { font-size:14pt }
+.FileName { margin-top: 5px; margin-bottom: 5px; display: inline; }
+.FileNav { margin-left: 5px; margin-right: 5px; display: inline; }
+.FileNav a { text-decoration:none; font-size: larger; }
+.divider { margin-top: 30px; margin-bottom: 30px; height: 15px; }
+.divider { background-color: gray; }
+.code { border-collapse:collapse; width:100%; }
+.code { font-family: "Monospace", monospace; font-size:10pt }
+.code { line-height: 1.2em }
+.comment { color: green; font-style: oblique }
+.keyword { color: blue }
+.string_literal { color: red }
+.directive { color: darkmagenta }
+
+/* Macros and variables could have pop-up notes hidden by default.
+ - Macro pop-up: expansion of the macro
+ - Variable pop-up: value (table) of the variable */
+.macro_popup, .variable_popup { display: none; }
+
+/* Pop-up appears on mouse-hover event. */
+.macro:hover .macro_popup, .variable:hover .variable_popup {
+ display: block;
+ padding: 2px;
+ -webkit-border-radius:5px;
+ -webkit-box-shadow:1px 1px 7px #000;
+ border-radius:5px;
+ box-shadow:1px 1px 7px #000;
+ position: absolute;
+ top: -1em;
+ left:10em;
+ z-index: 1
+}
+
+.macro_popup {
+ border: 2px solid red;
+ background-color:#FFF0F0;
+ font-weight: normal;
+}
+
+.variable_popup {
+ border: 2px solid blue;
+ background-color:#F0F0FF;
+ font-weight: bold;
+ font-family: Helvetica, sans-serif;
+ font-size: 9pt;
+}
+
+/* Pop-up notes needs a relative position as a base where they pops up. */
+.macro, .variable {
+ background-color: PaleGoldenRod;
+ position: relative;
+}
+.macro { color: DarkMagenta; }
+
+#tooltiphint {
+ position: fixed;
+ width: 50em;
+ margin-left: -25em;
+ left: 50%;
+ padding: 10px;
+ border: 1px solid #b0b0b0;
+ border-radius: 2px;
+ box-shadow: 1px 1px 7px black;
+ background-color: #c0c0c0;
+ z-index: 2;
+}
+
+.num { width:2.5em; padding-right:2ex; background-color:#eeeeee }
+.num { text-align:right; font-size:8pt }
+.num { color:#444444 }
+.line { padding-left: 1ex; border-left: 3px solid #ccc }
+.line { white-space: pre }
+.msg { -webkit-box-shadow:1px 1px 7px #000 }
+.msg { box-shadow:1px 1px 7px #000 }
+.msg { -webkit-border-radius:5px }
+.msg { border-radius:5px }
+.msg { font-family:Helvetica, sans-serif; font-size:8pt }
+.msg { float:left }
+.msg { position:relative }
+.msg { padding:0.25em 1ex 0.25em 1ex }
+.msg { margin-top:10px; margin-bottom:10px }
+.msg { font-weight:bold }
+.msg { max-width:60em; word-wrap: break-word; white-space: pre-wrap }
+.msgT { padding:0x; spacing:0x }
+.msgEvent { background-color:#fff8b4; color:#000000 }
+.msgControl { background-color:#bbbbbb; color:#000000 }
+.msgNote { background-color:#ddeeff; color:#000000 }
+.mrange { background-color:#dfddf3 }
+.mrange { border-bottom:1px solid #6F9DBE }
+.PathIndex { font-weight: bold; padding:0px 5px; margin-right:5px; }
+.PathIndex { -webkit-border-radius:8px }
+.PathIndex { border-radius:8px }
+.PathIndexEvent { background-color:#bfba87 }
+.PathIndexControl { background-color:#8c8c8c }
+.PathIndexPopUp { background-color: #879abc; }
+.PathNav a { text-decoration:none; font-size: larger }
+.CodeInsertionHint { font-weight: bold; background-color: #10dd10 }
+.CodeRemovalHint { background-color:#de1010 }
+.CodeRemovalHint { border-bottom:1px solid #6F9DBE }
+.msg.selected{ background-color:orange !important; }
+
+table.simpletable {
+ padding: 5px;
+ font-size:12pt;
+ margin:20px;
+ border-collapse: collapse; border-spacing: 0px;
+}
+td.rowname {
+ text-align: right;
+ vertical-align: top;
+ font-weight: bold;
+ color:#444444;
+ padding-right:2ex;
+}
+
+/* Hidden text. */
+input.spoilerhider + label {
+ cursor: pointer;
+ text-decoration: underline;
+ display: block;
+}
+input.spoilerhider {
+ display: none;
+}
+input.spoilerhider ~ .spoiler {
+ overflow: hidden;
+ margin: 10px auto 0;
+ height: 0;
+ opacity: 0;
+}
+input.spoilerhider:checked + label + .spoiler{
+ height: auto;
+ opacity: 1;
+}
+</style>
+</head>
+<body>
+<!-- BUGDESC Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119 -->
+
+<!-- BUGTYPE Potential insecure memory buffer bounds restriction in call 'strcpy' -->
+
+<!-- BUGCATEGORY Security -->
+
+<!-- BUGFILE /rootdir/src/skey/md5.c -->
+
+<!-- FILENAME md5.c -->
+
+<!-- FUNCTIONNAME MD5Keycrunch -->
+
+<!-- ISSUEHASHCONTENTOFLINEINCONTEXT b430a1bd6de9f2cf397948b044a7fe54 -->
+
+<!-- BUGLINE 25 -->
+
+<!-- BUGCOLUMN 2 -->
+
+<!-- BUGPATHLENGTH 1 -->
+
+<!-- BUGMETAEND -->
+<!-- REPORTHEADER -->
+<h3>Bug Summary</h3>
+<table class="simpletable">
+<tr><td class="rowname">File:</td><td>skey/md5.c</td></tr>
+<tr><td class="rowname">Warning:</td><td><a href="#EndPath">line 25, column 2</a><br />Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119</td></tr>
+
+</table>
+<!-- REPORTSUMMARYEXTRA -->
+<h3>Annotated Source Code</h3>
+<p>Press <a href="#" onclick="toggleHelp(); return false;">'?'</a>
+ to see keyboard shortcuts</p>
+<input type="checkbox" class="spoilerhider" id="showinvocation" />
+<label for="showinvocation" >Show analyzer invocation</label>
+<div class="spoiler">clang -cc1 -cc1 -triple x86_64-redhat-linux-gnu -analyze -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name md5.c -analyzer-checker=core -analyzer-checker=apiModeling -analyzer-checker=unix -analyzer-checker=deadcode -analyzer-checker=security.insecureAPI.UncheckedReturn -analyzer-checker=security.insecureAPI.getpw -analyzer-checker=security.insecureAPI.gets -analyzer-checker=security.insecureAPI.mktemp -analyzer-checker=security.insecureAPI.mkstemp -analyzer-checker=security.insecureAPI.vfork -analyzer-checker=nullability.NullPassedToNonnull -analyzer-checker=nullability.NullReturnedFromNonnull -analyzer-output plist -w -setup-static-analyzer -mrelocation-model pic -pic-level 2 -fhalf-no-semantic-interposition -mframe-pointer=all -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -tune-cpu generic -debugger-tuning=gdb -fcoverage-compilation-dir=/rootdir/src/skey -resource-dir /usr/bin/../lib/clang/17 -D HAVE_CONFIG_H -I . -I ../.. -I ./.. -D G_DISABLE_SINGLE_INCLUDES -I /usr/include/dconf -I /usr/include/vte-2.91 -I /usr/include/pango-1.0 -I /usr/include/gtk-3.0 -I /usr/include/gdk-pixbuf-2.0 -I /usr/include/cairo -I /usr/include/dbus-1.0 -I /usr/lib64/dbus-1.0/include -I /usr/include/atk-1.0 -I /usr/include/harfbuzz -I /usr/include/freetype2 -I /usr/include/glib-2.0 -I /usr/lib64/glib-2.0/include -I /usr/include/cloudproviders -I /usr/include/at-spi2-atk/2.0 -I /usr/include/at-spi-2.0 -I /usr/include/blkid -I /usr/include/gio-unix-2.0 -I /usr/include/pixman-1 -I /usr/include/libmount -I /usr/include/libxml2 -I /usr/include/fribidi -I /usr/include/libpng16 -I /usr/include/sysprof-6 -D PIC -internal-isystem /usr/bin/../lib/clang/17/include -internal-isystem /usr/local/include -internal-isystem /usr/bin/../lib/gcc/x86_64-redhat-linux/13/../../../../x86_64-redhat-linux/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -Wno-unused-parameter -fdebug-compilation-dir=/rootdir/src/skey -ferror-limit 19 -fgnuc-version=4.2.1 -analyzer-checker deadcode.DeadStores -analyzer-checker alpha.deadcode.UnreachableCode -analyzer-checker alpha.core.CastSize -analyzer-checker alpha.core.CastToStruct -analyzer-checker alpha.core.IdenticalExpr -analyzer-checker alpha.core.SizeofPtr -analyzer-checker alpha.security.ArrayBoundV2 -analyzer-checker alpha.security.MallocOverflow -analyzer-checker alpha.security.ReturnPtrRange -analyzer-checker alpha.unix.SimpleStream -analyzer-checker alpha.unix.cstring.BufferOverlap -analyzer-checker alpha.unix.cstring.NotNullTerminated -analyzer-checker alpha.unix.cstring.OutOfBounds -analyzer-checker alpha.core.FixedAddr -analyzer-checker security.insecureAPI.strcpy -analyzer-output=html -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /rootdir/html-report/2024-02-18-131424-5067-1 -x c md5.c
+</div>
+<div id='tooltiphint' hidden="true">
+ <p>Keyboard shortcuts: </p>
+ <ul>
+ <li>Use 'j/k' keys for keyboard navigation</li>
+ <li>Use 'Shift+S' to show/hide relevant lines</li>
+ <li>Use '?' to toggle this window</li>
+ </ul>
+ <a href="#" onclick="toggleHelp(); return false;">Close</a>
+</div>
+<script type='text/javascript'>
+var relevant_lines = {"1": {"25": 1}};
+
+var filterCounterexample = function (hide) {
+ var tables = document.getElementsByClassName("code");
+ for (var t=0; t<tables.length; t++) {
+ var table = tables[t];
+ var file_id = table.getAttribute("data-fileid");
+ var lines_in_fid = relevant_lines[file_id];
+ if (!lines_in_fid) {
+ lines_in_fid = {};
+ }
+ var lines = table.getElementsByClassName("codeline");
+ for (var i=0; i<lines.length; i++) {
+ var el = lines[i];
+ var lineNo = el.getAttribute("data-linenumber");
+ if (!lines_in_fid[lineNo]) {
+ if (hide) {
+ el.setAttribute("hidden", "");
+ } else {
+ el.removeAttribute("hidden");
+ }
+ }
+ }
+ }
+}
+
+window.addEventListener("keydown", function (event) {
+ if (event.defaultPrevented) {
+ return;
+ }
+ // SHIFT + S
+ if (event.shiftKey && event.keyCode == 83) {
+ var checked = document.getElementsByName("showCounterexample")[0].checked;
+ filterCounterexample(!checked);
+ document.getElementsByName("showCounterexample")[0].click();
+ } else {
+ return;
+ }
+ event.preventDefault();
+}, true);
+
+document.addEventListener("DOMContentLoaded", function() {
+ document.querySelector('input[name="showCounterexample"]').onchange=
+ function (event) {
+ filterCounterexample(this.checked);
+ };
+});
+</script>
+
+<form>
+ <input type="checkbox" name="showCounterexample" id="showCounterexample" />
+ <label for="showCounterexample">
+ Show only relevant lines
+ </label>
+ <input type="checkbox" name="showArrows"
+ id="showArrows" style="margin-left: 10px" />
+ <label for="showArrows">
+ Show control flow arrows
+ </label>
+</form>
+
+<script type='text/javascript'>
+// Return range of numbers from a range [lower, upper).
+function range(lower, upper) {
+ var array = [];
+ for (var i = lower; i <= upper; ++i) {
+ array.push(i);
+ }
+ return array;
+}
+
+var getRelatedArrowIndices = function(pathId) {
+ // HTML numeration of events is a bit different than it is in the path.
+ // Everything is rotated one step to the right, so the last element
+ // (error diagnostic) has index 0.
+ if (pathId == 0) {
+ // arrowIndices has at least 2 elements
+ pathId = arrowIndices.length - 1;
+ }
+
+ return range(arrowIndices[pathId], arrowIndices[pathId - 1]);
+}
+
+var highlightArrowsForSelectedEvent = function() {
+ const selectedNum = findNum();
+ const arrowIndicesToHighlight = getRelatedArrowIndices(selectedNum);
+ arrowIndicesToHighlight.forEach((index) => {
+ var arrow = document.querySelector("#arrow" + index);
+ if(arrow) {
+ classListAdd(arrow, "selected")
+ }
+ });
+}
+
+var getAbsoluteBoundingRect = function(element) {
+ const relative = element.getBoundingClientRect();
+ return {
+ left: relative.left + window.pageXOffset,
+ right: relative.right + window.pageXOffset,
+ top: relative.top + window.pageYOffset,
+ bottom: relative.bottom + window.pageYOffset,
+ height: relative.height,
+ width: relative.width
+ };
+}
+
+var drawArrow = function(index) {
+ // This function is based on the great answer from SO:
+ // https://stackoverflow.com/a/39575674/11582326
+ var start = document.querySelector("#start" + index);
+ var end = document.querySelector("#end" + index);
+ var arrow = document.querySelector("#arrow" + index);
+
+ var startRect = getAbsoluteBoundingRect(start);
+ var endRect = getAbsoluteBoundingRect(end);
+
+ // It is an arrow from a token to itself, no need to visualize it.
+ if (startRect.top == endRect.top &&
+ startRect.left == endRect.left)
+ return;
+
+ // Each arrow is a very simple Bézier curve, with two nodes and
+ // two handles. So, we need to calculate four points in the window:
+ // * start node
+ var posStart = { x: 0, y: 0 };
+ // * end node
+ var posEnd = { x: 0, y: 0 };
+ // * handle for the start node
+ var startHandle = { x: 0, y: 0 };
+ // * handle for the end node
+ var endHandle = { x: 0, y: 0 };
+ // One can visualize it as follows:
+ //
+ // start handle
+ // /
+ // X"""_.-""""X
+ // .' \
+ // / start node
+ // |
+ // |
+ // | end node
+ // \ /
+ // `->X
+ // X-'
+ // \
+ // end handle
+ //
+ // NOTE: (0, 0) is the top left corner of the window.
+
+ // We have 3 similar, but still different scenarios to cover:
+ //
+ // 1. Two tokens on different lines.
+ // -xxx
+ // /
+ // \
+ // -> xxx
+ // In this situation, we draw arrow on the left curving to the left.
+ // 2. Two tokens on the same line, and the destination is on the right.
+ // ____
+ // / \
+ // / V
+ // xxx xxx
+ // In this situation, we draw arrow above curving upwards.
+ // 3. Two tokens on the same line, and the destination is on the left.
+ // xxx xxx
+ // ^ /
+ // \____/
+ // In this situation, we draw arrow below curving downwards.
+ const onDifferentLines = startRect.top <= endRect.top - 5 ||
+ startRect.top >= endRect.top + 5;
+ const leftToRight = startRect.left < endRect.left;
+
+ // NOTE: various magic constants are chosen empirically for
+ // better positioning and look
+ if (onDifferentLines) {
+ // Case #1
+ const topToBottom = startRect.top < endRect.top;
+ posStart.x = startRect.left - 1;
+ // We don't want to start it at the top left corner of the token,
+ // it doesn't feel like this is where the arrow comes from.
+ // For this reason, we start it in the middle of the left side
+ // of the token.
+ posStart.y = startRect.top + startRect.height / 2;
+
+ // End node has arrow head and we give it a bit more space.
+ posEnd.x = endRect.left - 4;
+ posEnd.y = endRect.top;
+
+ // Utility object with x and y offsets for handles.
+ var curvature = {
+ // We want bottom-to-top arrow to curve a bit more, so it doesn't
+ // overlap much with top-to-bottom curves (much more frequent).
+ x: topToBottom ? 15 : 25,
+ y: Math.min((posEnd.y - posStart.y) / 3, 10)
+ }
+
+ // When destination is on the different line, we can make a
+ // curvier arrow because we have space for it.
+ // So, instead of using
+ //
+ // startHandle.x = posStart.x - curvature.x
+ // endHandle.x = posEnd.x - curvature.x
+ //
+ // We use the leftmost of these two values for both handles.
+ startHandle.x = Math.min(posStart.x, posEnd.x) - curvature.x;
+ endHandle.x = startHandle.x;
+
+ // Curving downwards from the start node...
+ startHandle.y = posStart.y + curvature.y;
+ // ... and upwards from the end node.
+ endHandle.y = posEnd.y - curvature.y;
+
+ } else if (leftToRight) {
+ // Case #2
+ // Starting from the top right corner...
+ posStart.x = startRect.right - 1;
+ posStart.y = startRect.top;
+
+ // ...and ending at the top left corner of the end token.
+ posEnd.x = endRect.left + 1;
+ posEnd.y = endRect.top - 1;
+
+ // Utility object with x and y offsets for handles.
+ var curvature = {
+ x: Math.min((posEnd.x - posStart.x) / 3, 15),
+ y: 5
+ }
+
+ // Curving to the right...
+ startHandle.x = posStart.x + curvature.x;
+ // ... and upwards from the start node.
+ startHandle.y = posStart.y - curvature.y;
+
+ // And to the left...
+ endHandle.x = posEnd.x - curvature.x;
+ // ... and upwards from the end node.
+ endHandle.y = posEnd.y - curvature.y;
+
+ } else {
+ // Case #3
+ // Starting from the bottom right corner...
+ posStart.x = startRect.right;
+ posStart.y = startRect.bottom;
+
+ // ...and ending also at the bottom right corner, but of the end token.
+ posEnd.x = endRect.right - 1;
+ posEnd.y = endRect.bottom + 1;
+
+ // Utility object with x and y offsets for handles.
+ var curvature = {
+ x: Math.min((posStart.x - posEnd.x) / 3, 15),
+ y: 5
+ }
+
+ // Curving to the left...
+ startHandle.x = posStart.x - curvature.x;
+ // ... and downwards from the start node.
+ startHandle.y = posStart.y + curvature.y;
+
+ // And to the right...
+ endHandle.x = posEnd.x + curvature.x;
+ // ... and downwards from the end node.
+ endHandle.y = posEnd.y + curvature.y;
+ }
+
+ // Put it all together into a path.
+ // More information on the format:
+ // https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths
+ var pathStr = "M" + posStart.x + "," + posStart.y + " " +
+ "C" + startHandle.x + "," + startHandle.y + " " +
+ endHandle.x + "," + endHandle.y + " " +
+ posEnd.x + "," + posEnd.y;
+
+ arrow.setAttribute("d", pathStr);
+};
+
+var drawArrows = function() {
+ const numOfArrows = document.querySelectorAll("path[id^=arrow]").length;
+ for (var i = 0; i < numOfArrows; ++i) {
+ drawArrow(i);
+ }
+}
+
+var toggleArrows = function(event) {
+ const arrows = document.querySelector("#arrows");
+ if (event.target.checked) {
+ arrows.setAttribute("visibility", "visible");
+ } else {
+ arrows.setAttribute("visibility", "hidden");
+ }
+}
+
+window.addEventListener("resize", drawArrows);
+document.addEventListener("DOMContentLoaded", function() {
+ // Whenever we show invocation, locations change, i.e. we
+ // need to redraw arrows.
+ document
+ .querySelector('input[id="showinvocation"]')
+ .addEventListener("click", drawArrows);
+ // Hiding irrelevant lines also should cause arrow rerender.
+ document
+ .querySelector('input[name="showCounterexample"]')
+ .addEventListener("change", drawArrows);
+ document
+ .querySelector('input[name="showArrows"]')
+ .addEventListener("change", toggleArrows);
+ drawArrows();
+ // Default highlighting for the last event.
+ highlightArrowsForSelectedEvent();
+});
+</script>
+
+<script type='text/javascript'>
+var digitMatcher = new RegExp("[0-9]+");
+
+var querySelectorAllArray = function(selector) {
+ return Array.prototype.slice.call(
+ document.querySelectorAll(selector));
+}
+
+document.addEventListener("DOMContentLoaded", function() {
+ querySelectorAllArray(".PathNav > a").forEach(
+ function(currentValue, currentIndex) {
+ var hrefValue = currentValue.getAttribute("href");
+ currentValue.onclick = function() {
+ scrollTo(document.querySelector(hrefValue));
+ return false;
+ };
+ });
+});
+
+var findNum = function() {
+ var s = document.querySelector(".msg.selected");
+ if (!s || s.id == "EndPath") {
+ return 0;
+ }
+ var out = parseInt(digitMatcher.exec(s.id)[0]);
+ return out;
+};
+
+var classListAdd = function(el, theClass) {
+ if(!el.className.baseVal)
+ el.className += " " + theClass;
+ else
+ el.className.baseVal += " " + theClass;
+};
+
+var classListRemove = function(el, theClass) {
+ var className = (!el.className.baseVal) ?
+ el.className : el.className.baseVal;
+ className = className.replace(" " + theClass, "");
+ if(!el.className.baseVal)
+ el.className = className;
+ else
+ el.className.baseVal = className;
+};
+
+var scrollTo = function(el) {
+ querySelectorAllArray(".selected").forEach(function(s) {
+ classListRemove(s, "selected");
+ });
+ classListAdd(el, "selected");
+ window.scrollBy(0, el.getBoundingClientRect().top -
+ (window.innerHeight / 2));
+ highlightArrowsForSelectedEvent();
+};
+
+var move = function(num, up, numItems) {
+ if (num == 1 && up || num == numItems - 1 && !up) {
+ return 0;
+ } else if (num == 0 && up) {
+ return numItems - 1;
+ } else if (num == 0 && !up) {
+ return 1 % numItems;
+ }
+ return up ? num - 1 : num + 1;
+}
+
+var numToId = function(num) {
+ if (num == 0) {
+ return document.getElementById("EndPath")
+ }
+ return document.getElementById("Path" + num);
+};
+
+var navigateTo = function(up) {
+ var numItems = document.querySelectorAll(
+ ".line > .msgEvent, .line > .msgControl").length;
+ var currentSelected = findNum();
+ var newSelected = move(currentSelected, up, numItems);
+ var newEl = numToId(newSelected, numItems);
+
+ // Scroll element into center.
+ scrollTo(newEl);
+};
+
+window.addEventListener("keydown", function (event) {
+ if (event.defaultPrevented) {
+ return;
+ }
+ // key 'j'
+ if (event.keyCode == 74) {
+ navigateTo(/*up=*/false);
+ // key 'k'
+ } else if (event.keyCode == 75) {
+ navigateTo(/*up=*/true);
+ } else {
+ return;
+ }
+ event.preventDefault();
+}, true);
+</script>
+
+<script type='text/javascript'>
+
+var toggleHelp = function() {
+ var hint = document.querySelector("#tooltiphint");
+ var attributeName = "hidden";
+ if (hint.hasAttribute(attributeName)) {
+ hint.removeAttribute(attributeName);
+ } else {
+ hint.setAttribute("hidden", "true");
+ }
+};
+window.addEventListener("keydown", function (event) {
+ if (event.defaultPrevented) {
+ return;
+ }
+ if (event.key == "?") {
+ toggleHelp();
+ } else {
+ return;
+ }
+ event.preventDefault();
+});
+</script>
+
+<style type="text/css">
+ svg {
+ position:absolute;
+ top:0;
+ left:0;
+ height:100%;
+ width:100%;
+ pointer-events: none;
+ overflow: visible
+ }
+ .arrow {
+ stroke-opacity: 0.2;
+ stroke-width: 1;
+ marker-end: url(#arrowhead);
+ }
+
+ .arrow.selected {
+ stroke-opacity: 0.6;
+ stroke-width: 2;
+ marker-end: url(#arrowheadSelected);
+ }
+
+ .arrowhead {
+ orient: auto;
+ stroke: none;
+ opacity: 0.6;
+ fill: blue;
+ }
+</style>
+<svg xmlns="http://www.w3.org/2000/svg">
+ <defs>
+ <marker id="arrowheadSelected" class="arrowhead" opacity="0.6"
+ viewBox="0 0 10 10" refX="3" refY="5"
+ markerWidth="4" markerHeight="4">
+ <path d="M 0 0 L 10 5 L 0 10 z" />
+ </marker>
+ <marker id="arrowhead" class="arrowhead" opacity="0.2"
+ viewBox="0 0 10 10" refX="3" refY="5"
+ markerWidth="4" markerHeight="4">
+ <path d="M 0 0 L 10 5 L 0 10 z" />
+ </marker>
+ </defs>
+ <g id="arrows" fill="none" stroke="blue" visibility="hidden">
+
+ </g>
+</svg>
+<script type='text/javascript'>
+const arrowIndices = [ 0,0 ]
+</script>
+<table class="code" data-fileid="1">
+<tr class="codeline" data-linenumber="1"><td class="num" id="LN1">1</td><td class="line"><span class='directive'>#include &lt;config.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="2"><td class="num" id="LN2">2</td><td class="line"><span class='directive'>#include &lt;stdlib.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="3"><td class="num" id="LN3">3</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4"><td class="num" id="LN4">4</td><td class="line"><span class='directive'>#include &lt;string.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="5"><td class="num" id="LN5">5</td><td class="line"><span class='directive'>#include &lt;glib.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="6"><td class="num" id="LN6">6</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="7"><td class="num" id="LN7">7</td><td class="line"><span class='directive'>#include "skey.h"</span></td></tr>
+<tr class="codeline" data-linenumber="8"><td class="num" id="LN8">8</td><td class="line"><span class='directive'>#include "skeyutil.h"</span></td></tr>
+<tr class="codeline" data-linenumber="9"><td class="num" id="LN9">9</td><td class="line"><span class='directive'>#include "md5.h"</span></td></tr>
+<tr class="codeline" data-linenumber="10"><td class="num" id="LN10">10</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="11"><td class="num" id="LN11">11</td><td class="line"><span class='keyword'>int</span> MD5Keycrunch(<span class='keyword'>char</span> *result, <span class='keyword'>const</span> <span class='keyword'>char</span> *seed, <span class='keyword'>const</span> <span class='keyword'>char</span> *passhrase)</td></tr>
+<tr class="codeline" data-linenumber="12"><td class="num" id="LN12">12</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="13"><td class="num" id="LN13">13</td><td class="line"> <span class='keyword'>char</span> *buf;</td></tr>
+<tr class="codeline" data-linenumber="14"><td class="num" id="LN14">14</td><td class="line"> gsize len;</td></tr>
+<tr class="codeline" data-linenumber="15"><td class="num" id="LN15">15</td><td class="line"> GChecksum *checksum;</td></tr>
+<tr class="codeline" data-linenumber="16"><td class="num" id="LN16">16</td><td class="line"> guint8 digest[16];</td></tr>
+<tr class="codeline" data-linenumber="17"><td class="num" id="LN17">17</td><td class="line"> gsize digest_len = <span class='keyword'>sizeof</span> (digest);</td></tr>
+<tr class="codeline" data-linenumber="18"><td class="num" id="LN18">18</td><td class="line"> guint32 *results;</td></tr>
+<tr class="codeline" data-linenumber="19"><td class="num" id="LN19">19</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="20"><td class="num" id="LN20">20</td><td class="line"> len = strlen(seed) + strlen(passhrase);</td></tr>
+<tr class="codeline" data-linenumber="21"><td class="num" id="LN21">21</td><td class="line"> buf = (<span class='keyword'>char</span> *)g_try_malloc(len+1);</td></tr>
+<tr class="codeline" data-linenumber="22"><td class="num" id="LN22">22</td><td class="line"> <span class='keyword'>if</span> (buf == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="23"><td class="num" id="LN23">23</td><td class="line"> <span class='keyword'>return</span> -1;</td></tr>
+<tr class="codeline" data-linenumber="24"><td class="num" id="LN24">24</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="25"><td class="num" id="LN25">25</td><td class="line"> <span class="mrange">strcpy</span>(buf, seed);</td></tr>
+<tr><td class="num"></td><td class="line"><div id="EndPath" class="msg msgEvent" style="margin-left:9ex; max-width:52em">Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119</div></td></tr>
+<tr class="codeline" data-linenumber="26"><td class="num" id="LN26">26</td><td class="line"> skey_lowcase(buf);</td></tr>
+<tr class="codeline" data-linenumber="27"><td class="num" id="LN27">27</td><td class="line"> strcat(buf, passhrase);</td></tr>
+<tr class="codeline" data-linenumber="28"><td class="num" id="LN28">28</td><td class="line"> skey_sevenbit(buf);</td></tr>
+<tr class="codeline" data-linenumber="29"><td class="num" id="LN29">29</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="30"><td class="num" id="LN30">30</td><td class="line"> checksum = g_checksum_new (G_CHECKSUM_MD5);</td></tr>
+<tr class="codeline" data-linenumber="31"><td class="num" id="LN31">31</td><td class="line"> g_checksum_update (checksum, (<span class='keyword'>const</span> guchar *) buf, len);</td></tr>
+<tr class="codeline" data-linenumber="32"><td class="num" id="LN32">32</td><td class="line"> g_free(buf);</td></tr>
+<tr class="codeline" data-linenumber="33"><td class="num" id="LN33">33</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="34"><td class="num" id="LN34">34</td><td class="line"> g_checksum_get_digest (checksum, digest, &amp;digest_len);</td></tr>
+<tr class="codeline" data-linenumber="35"><td class="num" id="LN35">35</td><td class="line"> <span class='macro'>g_assert (digest_len == 16)<span class='macro_popup'>do { if (digest_len == 16) ; else g_assertion_message_expr ((<br>(gchar*) 0), "md5.c", 35, ((const char*) (__func__)), "digest_len == 16"<br>); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="36"><td class="num" id="LN36">36</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="37"><td class="num" id="LN37">37</td><td class="line"> results = (guint32 *) digest;</td></tr>
+<tr class="codeline" data-linenumber="38"><td class="num" id="LN38">38</td><td class="line"> results[0] ^= results[2];</td></tr>
+<tr class="codeline" data-linenumber="39"><td class="num" id="LN39">39</td><td class="line"> results[1] ^= results[3];</td></tr>
+<tr class="codeline" data-linenumber="40"><td class="num" id="LN40">40</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="41"><td class="num" id="LN41">41</td><td class="line"> memcpy((<span class='keyword'>void</span> *)result, (<span class='keyword'>void</span> *)results, <span class='macro'>SKEY_SIZE<span class='macro_popup'>8</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="42"><td class="num" id="LN42">42</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="43"><td class="num" id="LN43">43</td><td class="line"> g_checksum_free (checksum);</td></tr>
+<tr class="codeline" data-linenumber="44"><td class="num" id="LN44">44</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="45"><td class="num" id="LN45">45</td><td class="line"> <span class='keyword'>return</span> 0;</td></tr>
+<tr class="codeline" data-linenumber="46"><td class="num" id="LN46">46</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="47"><td class="num" id="LN47">47</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="48"><td class="num" id="LN48">48</td><td class="line"><span class='keyword'>void</span> MD5SKey(<span class='keyword'>char</span> *x)</td></tr>
+<tr class="codeline" data-linenumber="49"><td class="num" id="LN49">49</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="50"><td class="num" id="LN50">50</td><td class="line"> GChecksum *checksum;</td></tr>
+<tr class="codeline" data-linenumber="51"><td class="num" id="LN51">51</td><td class="line"> guint8 digest[16];</td></tr>
+<tr class="codeline" data-linenumber="52"><td class="num" id="LN52">52</td><td class="line"> gsize digest_len = <span class='keyword'>sizeof</span> (digest);</td></tr>
+<tr class="codeline" data-linenumber="53"><td class="num" id="LN53">53</td><td class="line"> guint32 *results;</td></tr>
+<tr class="codeline" data-linenumber="54"><td class="num" id="LN54">54</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="55"><td class="num" id="LN55">55</td><td class="line"> checksum = g_checksum_new (G_CHECKSUM_MD5);</td></tr>
+<tr class="codeline" data-linenumber="56"><td class="num" id="LN56">56</td><td class="line"> g_checksum_update (checksum, (<span class='keyword'>const</span> guchar *) x, <span class='macro'>SKEY_SIZE<span class='macro_popup'>8</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="57"><td class="num" id="LN57">57</td><td class="line"> g_checksum_get_digest (checksum, digest, &amp;digest_len);</td></tr>
+<tr class="codeline" data-linenumber="58"><td class="num" id="LN58">58</td><td class="line"> <span class='macro'>g_assert (digest_len == 16)<span class='macro_popup'>do { if (digest_len == 16) ; else g_assertion_message_expr ((<br>(gchar*) 0), "md5.c", 58, ((const char*) (__func__)), "digest_len == 16"<br>); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="59"><td class="num" id="LN59">59</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="60"><td class="num" id="LN60">60</td><td class="line"> results = (guint32 *) digest;</td></tr>
+<tr class="codeline" data-linenumber="61"><td class="num" id="LN61">61</td><td class="line"> results[0] ^= results[2];</td></tr>
+<tr class="codeline" data-linenumber="62"><td class="num" id="LN62">62</td><td class="line"> results[1] ^= results[3];</td></tr>
+<tr class="codeline" data-linenumber="63"><td class="num" id="LN63">63</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="64"><td class="num" id="LN64">64</td><td class="line"> memcpy((<span class='keyword'>void</span> *)x, (<span class='keyword'>void</span> *)results, <span class='macro'>SKEY_SIZE<span class='macro_popup'>8</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="65"><td class="num" id="LN65">65</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="66"><td class="num" id="LN66">66</td><td class="line"> g_checksum_free (checksum);</td></tr>
+<tr class="codeline" data-linenumber="67"><td class="num" id="LN67">67</td><td class="line">}</td></tr>
+</table></body></html>
diff --git a/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-b8f564.html b/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-b8f564.html
new file mode 100644
index 0000000..582401b
--- /dev/null
+++ b/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-b8f564.html
@@ -0,0 +1,2089 @@
+<!doctype html>
+<html>
+<head>
+<title>eggsmclient-xsmp.c</title>
+
+<style type="text/css">
+body { color:#000000; background-color:#ffffff }
+body { font-family:Helvetica, sans-serif; font-size:10pt }
+h1 { font-size:14pt }
+.FileName { margin-top: 5px; margin-bottom: 5px; display: inline; }
+.FileNav { margin-left: 5px; margin-right: 5px; display: inline; }
+.FileNav a { text-decoration:none; font-size: larger; }
+.divider { margin-top: 30px; margin-bottom: 30px; height: 15px; }
+.divider { background-color: gray; }
+.code { border-collapse:collapse; width:100%; }
+.code { font-family: "Monospace", monospace; font-size:10pt }
+.code { line-height: 1.2em }
+.comment { color: green; font-style: oblique }
+.keyword { color: blue }
+.string_literal { color: red }
+.directive { color: darkmagenta }
+
+/* Macros and variables could have pop-up notes hidden by default.
+ - Macro pop-up: expansion of the macro
+ - Variable pop-up: value (table) of the variable */
+.macro_popup, .variable_popup { display: none; }
+
+/* Pop-up appears on mouse-hover event. */
+.macro:hover .macro_popup, .variable:hover .variable_popup {
+ display: block;
+ padding: 2px;
+ -webkit-border-radius:5px;
+ -webkit-box-shadow:1px 1px 7px #000;
+ border-radius:5px;
+ box-shadow:1px 1px 7px #000;
+ position: absolute;
+ top: -1em;
+ left:10em;
+ z-index: 1
+}
+
+.macro_popup {
+ border: 2px solid red;
+ background-color:#FFF0F0;
+ font-weight: normal;
+}
+
+.variable_popup {
+ border: 2px solid blue;
+ background-color:#F0F0FF;
+ font-weight: bold;
+ font-family: Helvetica, sans-serif;
+ font-size: 9pt;
+}
+
+/* Pop-up notes needs a relative position as a base where they pops up. */
+.macro, .variable {
+ background-color: PaleGoldenRod;
+ position: relative;
+}
+.macro { color: DarkMagenta; }
+
+#tooltiphint {
+ position: fixed;
+ width: 50em;
+ margin-left: -25em;
+ left: 50%;
+ padding: 10px;
+ border: 1px solid #b0b0b0;
+ border-radius: 2px;
+ box-shadow: 1px 1px 7px black;
+ background-color: #c0c0c0;
+ z-index: 2;
+}
+
+.num { width:2.5em; padding-right:2ex; background-color:#eeeeee }
+.num { text-align:right; font-size:8pt }
+.num { color:#444444 }
+.line { padding-left: 1ex; border-left: 3px solid #ccc }
+.line { white-space: pre }
+.msg { -webkit-box-shadow:1px 1px 7px #000 }
+.msg { box-shadow:1px 1px 7px #000 }
+.msg { -webkit-border-radius:5px }
+.msg { border-radius:5px }
+.msg { font-family:Helvetica, sans-serif; font-size:8pt }
+.msg { float:left }
+.msg { position:relative }
+.msg { padding:0.25em 1ex 0.25em 1ex }
+.msg { margin-top:10px; margin-bottom:10px }
+.msg { font-weight:bold }
+.msg { max-width:60em; word-wrap: break-word; white-space: pre-wrap }
+.msgT { padding:0x; spacing:0x }
+.msgEvent { background-color:#fff8b4; color:#000000 }
+.msgControl { background-color:#bbbbbb; color:#000000 }
+.msgNote { background-color:#ddeeff; color:#000000 }
+.mrange { background-color:#dfddf3 }
+.mrange { border-bottom:1px solid #6F9DBE }
+.PathIndex { font-weight: bold; padding:0px 5px; margin-right:5px; }
+.PathIndex { -webkit-border-radius:8px }
+.PathIndex { border-radius:8px }
+.PathIndexEvent { background-color:#bfba87 }
+.PathIndexControl { background-color:#8c8c8c }
+.PathIndexPopUp { background-color: #879abc; }
+.PathNav a { text-decoration:none; font-size: larger }
+.CodeInsertionHint { font-weight: bold; background-color: #10dd10 }
+.CodeRemovalHint { background-color:#de1010 }
+.CodeRemovalHint { border-bottom:1px solid #6F9DBE }
+.msg.selected{ background-color:orange !important; }
+
+table.simpletable {
+ padding: 5px;
+ font-size:12pt;
+ margin:20px;
+ border-collapse: collapse; border-spacing: 0px;
+}
+td.rowname {
+ text-align: right;
+ vertical-align: top;
+ font-weight: bold;
+ color:#444444;
+ padding-right:2ex;
+}
+
+/* Hidden text. */
+input.spoilerhider + label {
+ cursor: pointer;
+ text-decoration: underline;
+ display: block;
+}
+input.spoilerhider {
+ display: none;
+}
+input.spoilerhider ~ .spoiler {
+ overflow: hidden;
+ margin: 10px auto 0;
+ height: 0;
+ opacity: 0;
+}
+input.spoilerhider:checked + label + .spoiler{
+ height: auto;
+ opacity: 1;
+}
+</style>
+</head>
+<body>
+<!-- BUGDESC Casting a non-structure type to a structure type and accessing a field can lead to memory access errors or data corruption -->
+
+<!-- BUGTYPE Cast from non-struct type to struct type -->
+
+<!-- BUGCATEGORY Logic error -->
+
+<!-- BUGFILE /rootdir/src/mate-submodules/libegg/eggsmclient-xsmp.c -->
+
+<!-- FILENAME eggsmclient-xsmp.c -->
+
+<!-- FUNCTIONNAME array_prop -->
+
+<!-- ISSUEHASHCONTENTOFLINEINCONTEXT b8f564960b65bf4fae4d59c6aee36738 -->
+
+<!-- BUGLINE 1199 -->
+
+<!-- BUGCOLUMN 18 -->
+
+<!-- BUGPATHLENGTH 1 -->
+
+<!-- BUGMETAEND -->
+<!-- REPORTHEADER -->
+<h3>Bug Summary</h3>
+<table class="simpletable">
+<tr><td class="rowname">File:</td><td>mate-submodules/libegg/eggsmclient-xsmp.c</td></tr>
+<tr><td class="rowname">Warning:</td><td><a href="#EndPath">line 1199, column 18</a><br />Casting a non-structure type to a structure type and accessing a field can lead to memory access errors or data corruption</td></tr>
+
+</table>
+<!-- REPORTSUMMARYEXTRA -->
+<h3>Annotated Source Code</h3>
+<p>Press <a href="#" onclick="toggleHelp(); return false;">'?'</a>
+ to see keyboard shortcuts</p>
+<input type="checkbox" class="spoilerhider" id="showinvocation" />
+<label for="showinvocation" >Show analyzer invocation</label>
+<div class="spoiler">clang -cc1 -cc1 -triple x86_64-redhat-linux-gnu -analyze -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name eggsmclient-xsmp.c -analyzer-checker=core -analyzer-checker=apiModeling -analyzer-checker=unix -analyzer-checker=deadcode -analyzer-checker=security.insecureAPI.UncheckedReturn -analyzer-checker=security.insecureAPI.getpw -analyzer-checker=security.insecureAPI.gets -analyzer-checker=security.insecureAPI.mktemp -analyzer-checker=security.insecureAPI.mkstemp -analyzer-checker=security.insecureAPI.vfork -analyzer-checker=nullability.NullPassedToNonnull -analyzer-checker=nullability.NullReturnedFromNonnull -analyzer-output plist -w -setup-static-analyzer -mrelocation-model pic -pic-level 2 -fhalf-no-semantic-interposition -mframe-pointer=all -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -tune-cpu generic -debugger-tuning=gdb -fcoverage-compilation-dir=/rootdir/src/mate-submodules/libegg -resource-dir /usr/bin/../lib/clang/17 -D HAVE_CONFIG_H -I . -I ../../.. -I /usr/include/gtk-3.0 -I /usr/include/pango-1.0 -I /usr/include/gdk-pixbuf-2.0 -I /usr/include/cairo -I /usr/include/dbus-1.0 -I /usr/lib64/dbus-1.0/include -I /usr/include/atk-1.0 -I /usr/include/harfbuzz -I /usr/include/freetype2 -I /usr/include/glib-2.0 -I /usr/lib64/glib-2.0/include -I /usr/include/at-spi2-atk/2.0 -I /usr/include/cloudproviders -I /usr/include/blkid -I /usr/include/at-spi-2.0 -I /usr/include/gio-unix-2.0 -I /usr/include/libmount -I /usr/include/pixman-1 -I /usr/include/libxml2 -I /usr/include/fribidi -I /usr/include/sysprof-6 -I /usr/include/libpng16 -D EGG_SM_CLIENT_BACKEND_XSMP -D G_LOG_DOMAIN="EggSMClient" -I /usr/include/gtk-3.0 -I /usr/include/pango-1.0 -I /usr/include/gdk-pixbuf-2.0 -I /usr/include/cairo -I /usr/include/dbus-1.0 -I /usr/lib64/dbus-1.0/include -I /usr/include/atk-1.0 -I /usr/include/harfbuzz -I /usr/include/freetype2 -I /usr/include/glib-2.0 -I /usr/lib64/glib-2.0/include -I /usr/include/at-spi2-atk/2.0 -I /usr/include/cloudproviders -I /usr/include/blkid -I /usr/include/at-spi-2.0 -I /usr/include/gio-unix-2.0 -I /usr/include/libmount -I /usr/include/pixman-1 -I /usr/include/libxml2 -I /usr/include/fribidi -I /usr/include/sysprof-6 -I /usr/include/libpng16 -D PIC -internal-isystem /usr/bin/../lib/clang/17/include -internal-isystem /usr/local/include -internal-isystem /usr/bin/../lib/gcc/x86_64-redhat-linux/13/../../../../x86_64-redhat-linux/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -Wno-unused-parameter -fdebug-compilation-dir=/rootdir/src/mate-submodules/libegg -ferror-limit 19 -fgnuc-version=4.2.1 -analyzer-checker deadcode.DeadStores -analyzer-checker alpha.deadcode.UnreachableCode -analyzer-checker alpha.core.CastSize -analyzer-checker alpha.core.CastToStruct -analyzer-checker alpha.core.IdenticalExpr -analyzer-checker alpha.core.SizeofPtr -analyzer-checker alpha.security.ArrayBoundV2 -analyzer-checker alpha.security.MallocOverflow -analyzer-checker alpha.security.ReturnPtrRange -analyzer-checker alpha.unix.SimpleStream -analyzer-checker alpha.unix.cstring.BufferOverlap -analyzer-checker alpha.unix.cstring.NotNullTerminated -analyzer-checker alpha.unix.cstring.OutOfBounds -analyzer-checker alpha.core.FixedAddr -analyzer-checker security.insecureAPI.strcpy -analyzer-output=html -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /rootdir/html-report/2024-02-18-131424-5067-1 -x c eggsmclient-xsmp.c
+</div>
+<div id='tooltiphint' hidden="true">
+ <p>Keyboard shortcuts: </p>
+ <ul>
+ <li>Use 'j/k' keys for keyboard navigation</li>
+ <li>Use 'Shift+S' to show/hide relevant lines</li>
+ <li>Use '?' to toggle this window</li>
+ </ul>
+ <a href="#" onclick="toggleHelp(); return false;">Close</a>
+</div>
+<script type='text/javascript'>
+var relevant_lines = {"1": {"1199": 1}};
+
+var filterCounterexample = function (hide) {
+ var tables = document.getElementsByClassName("code");
+ for (var t=0; t<tables.length; t++) {
+ var table = tables[t];
+ var file_id = table.getAttribute("data-fileid");
+ var lines_in_fid = relevant_lines[file_id];
+ if (!lines_in_fid) {
+ lines_in_fid = {};
+ }
+ var lines = table.getElementsByClassName("codeline");
+ for (var i=0; i<lines.length; i++) {
+ var el = lines[i];
+ var lineNo = el.getAttribute("data-linenumber");
+ if (!lines_in_fid[lineNo]) {
+ if (hide) {
+ el.setAttribute("hidden", "");
+ } else {
+ el.removeAttribute("hidden");
+ }
+ }
+ }
+ }
+}
+
+window.addEventListener("keydown", function (event) {
+ if (event.defaultPrevented) {
+ return;
+ }
+ // SHIFT + S
+ if (event.shiftKey && event.keyCode == 83) {
+ var checked = document.getElementsByName("showCounterexample")[0].checked;
+ filterCounterexample(!checked);
+ document.getElementsByName("showCounterexample")[0].click();
+ } else {
+ return;
+ }
+ event.preventDefault();
+}, true);
+
+document.addEventListener("DOMContentLoaded", function() {
+ document.querySelector('input[name="showCounterexample"]').onchange=
+ function (event) {
+ filterCounterexample(this.checked);
+ };
+});
+</script>
+
+<form>
+ <input type="checkbox" name="showCounterexample" id="showCounterexample" />
+ <label for="showCounterexample">
+ Show only relevant lines
+ </label>
+ <input type="checkbox" name="showArrows"
+ id="showArrows" style="margin-left: 10px" />
+ <label for="showArrows">
+ Show control flow arrows
+ </label>
+</form>
+
+<script type='text/javascript'>
+// Return range of numbers from a range [lower, upper).
+function range(lower, upper) {
+ var array = [];
+ for (var i = lower; i <= upper; ++i) {
+ array.push(i);
+ }
+ return array;
+}
+
+var getRelatedArrowIndices = function(pathId) {
+ // HTML numeration of events is a bit different than it is in the path.
+ // Everything is rotated one step to the right, so the last element
+ // (error diagnostic) has index 0.
+ if (pathId == 0) {
+ // arrowIndices has at least 2 elements
+ pathId = arrowIndices.length - 1;
+ }
+
+ return range(arrowIndices[pathId], arrowIndices[pathId - 1]);
+}
+
+var highlightArrowsForSelectedEvent = function() {
+ const selectedNum = findNum();
+ const arrowIndicesToHighlight = getRelatedArrowIndices(selectedNum);
+ arrowIndicesToHighlight.forEach((index) => {
+ var arrow = document.querySelector("#arrow" + index);
+ if(arrow) {
+ classListAdd(arrow, "selected")
+ }
+ });
+}
+
+var getAbsoluteBoundingRect = function(element) {
+ const relative = element.getBoundingClientRect();
+ return {
+ left: relative.left + window.pageXOffset,
+ right: relative.right + window.pageXOffset,
+ top: relative.top + window.pageYOffset,
+ bottom: relative.bottom + window.pageYOffset,
+ height: relative.height,
+ width: relative.width
+ };
+}
+
+var drawArrow = function(index) {
+ // This function is based on the great answer from SO:
+ // https://stackoverflow.com/a/39575674/11582326
+ var start = document.querySelector("#start" + index);
+ var end = document.querySelector("#end" + index);
+ var arrow = document.querySelector("#arrow" + index);
+
+ var startRect = getAbsoluteBoundingRect(start);
+ var endRect = getAbsoluteBoundingRect(end);
+
+ // It is an arrow from a token to itself, no need to visualize it.
+ if (startRect.top == endRect.top &&
+ startRect.left == endRect.left)
+ return;
+
+ // Each arrow is a very simple Bézier curve, with two nodes and
+ // two handles. So, we need to calculate four points in the window:
+ // * start node
+ var posStart = { x: 0, y: 0 };
+ // * end node
+ var posEnd = { x: 0, y: 0 };
+ // * handle for the start node
+ var startHandle = { x: 0, y: 0 };
+ // * handle for the end node
+ var endHandle = { x: 0, y: 0 };
+ // One can visualize it as follows:
+ //
+ // start handle
+ // /
+ // X"""_.-""""X
+ // .' \
+ // / start node
+ // |
+ // |
+ // | end node
+ // \ /
+ // `->X
+ // X-'
+ // \
+ // end handle
+ //
+ // NOTE: (0, 0) is the top left corner of the window.
+
+ // We have 3 similar, but still different scenarios to cover:
+ //
+ // 1. Two tokens on different lines.
+ // -xxx
+ // /
+ // \
+ // -> xxx
+ // In this situation, we draw arrow on the left curving to the left.
+ // 2. Two tokens on the same line, and the destination is on the right.
+ // ____
+ // / \
+ // / V
+ // xxx xxx
+ // In this situation, we draw arrow above curving upwards.
+ // 3. Two tokens on the same line, and the destination is on the left.
+ // xxx xxx
+ // ^ /
+ // \____/
+ // In this situation, we draw arrow below curving downwards.
+ const onDifferentLines = startRect.top <= endRect.top - 5 ||
+ startRect.top >= endRect.top + 5;
+ const leftToRight = startRect.left < endRect.left;
+
+ // NOTE: various magic constants are chosen empirically for
+ // better positioning and look
+ if (onDifferentLines) {
+ // Case #1
+ const topToBottom = startRect.top < endRect.top;
+ posStart.x = startRect.left - 1;
+ // We don't want to start it at the top left corner of the token,
+ // it doesn't feel like this is where the arrow comes from.
+ // For this reason, we start it in the middle of the left side
+ // of the token.
+ posStart.y = startRect.top + startRect.height / 2;
+
+ // End node has arrow head and we give it a bit more space.
+ posEnd.x = endRect.left - 4;
+ posEnd.y = endRect.top;
+
+ // Utility object with x and y offsets for handles.
+ var curvature = {
+ // We want bottom-to-top arrow to curve a bit more, so it doesn't
+ // overlap much with top-to-bottom curves (much more frequent).
+ x: topToBottom ? 15 : 25,
+ y: Math.min((posEnd.y - posStart.y) / 3, 10)
+ }
+
+ // When destination is on the different line, we can make a
+ // curvier arrow because we have space for it.
+ // So, instead of using
+ //
+ // startHandle.x = posStart.x - curvature.x
+ // endHandle.x = posEnd.x - curvature.x
+ //
+ // We use the leftmost of these two values for both handles.
+ startHandle.x = Math.min(posStart.x, posEnd.x) - curvature.x;
+ endHandle.x = startHandle.x;
+
+ // Curving downwards from the start node...
+ startHandle.y = posStart.y + curvature.y;
+ // ... and upwards from the end node.
+ endHandle.y = posEnd.y - curvature.y;
+
+ } else if (leftToRight) {
+ // Case #2
+ // Starting from the top right corner...
+ posStart.x = startRect.right - 1;
+ posStart.y = startRect.top;
+
+ // ...and ending at the top left corner of the end token.
+ posEnd.x = endRect.left + 1;
+ posEnd.y = endRect.top - 1;
+
+ // Utility object with x and y offsets for handles.
+ var curvature = {
+ x: Math.min((posEnd.x - posStart.x) / 3, 15),
+ y: 5
+ }
+
+ // Curving to the right...
+ startHandle.x = posStart.x + curvature.x;
+ // ... and upwards from the start node.
+ startHandle.y = posStart.y - curvature.y;
+
+ // And to the left...
+ endHandle.x = posEnd.x - curvature.x;
+ // ... and upwards from the end node.
+ endHandle.y = posEnd.y - curvature.y;
+
+ } else {
+ // Case #3
+ // Starting from the bottom right corner...
+ posStart.x = startRect.right;
+ posStart.y = startRect.bottom;
+
+ // ...and ending also at the bottom right corner, but of the end token.
+ posEnd.x = endRect.right - 1;
+ posEnd.y = endRect.bottom + 1;
+
+ // Utility object with x and y offsets for handles.
+ var curvature = {
+ x: Math.min((posStart.x - posEnd.x) / 3, 15),
+ y: 5
+ }
+
+ // Curving to the left...
+ startHandle.x = posStart.x - curvature.x;
+ // ... and downwards from the start node.
+ startHandle.y = posStart.y + curvature.y;
+
+ // And to the right...
+ endHandle.x = posEnd.x + curvature.x;
+ // ... and downwards from the end node.
+ endHandle.y = posEnd.y + curvature.y;
+ }
+
+ // Put it all together into a path.
+ // More information on the format:
+ // https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths
+ var pathStr = "M" + posStart.x + "," + posStart.y + " " +
+ "C" + startHandle.x + "," + startHandle.y + " " +
+ endHandle.x + "," + endHandle.y + " " +
+ posEnd.x + "," + posEnd.y;
+
+ arrow.setAttribute("d", pathStr);
+};
+
+var drawArrows = function() {
+ const numOfArrows = document.querySelectorAll("path[id^=arrow]").length;
+ for (var i = 0; i < numOfArrows; ++i) {
+ drawArrow(i);
+ }
+}
+
+var toggleArrows = function(event) {
+ const arrows = document.querySelector("#arrows");
+ if (event.target.checked) {
+ arrows.setAttribute("visibility", "visible");
+ } else {
+ arrows.setAttribute("visibility", "hidden");
+ }
+}
+
+window.addEventListener("resize", drawArrows);
+document.addEventListener("DOMContentLoaded", function() {
+ // Whenever we show invocation, locations change, i.e. we
+ // need to redraw arrows.
+ document
+ .querySelector('input[id="showinvocation"]')
+ .addEventListener("click", drawArrows);
+ // Hiding irrelevant lines also should cause arrow rerender.
+ document
+ .querySelector('input[name="showCounterexample"]')
+ .addEventListener("change", drawArrows);
+ document
+ .querySelector('input[name="showArrows"]')
+ .addEventListener("change", toggleArrows);
+ drawArrows();
+ // Default highlighting for the last event.
+ highlightArrowsForSelectedEvent();
+});
+</script>
+
+<script type='text/javascript'>
+var digitMatcher = new RegExp("[0-9]+");
+
+var querySelectorAllArray = function(selector) {
+ return Array.prototype.slice.call(
+ document.querySelectorAll(selector));
+}
+
+document.addEventListener("DOMContentLoaded", function() {
+ querySelectorAllArray(".PathNav > a").forEach(
+ function(currentValue, currentIndex) {
+ var hrefValue = currentValue.getAttribute("href");
+ currentValue.onclick = function() {
+ scrollTo(document.querySelector(hrefValue));
+ return false;
+ };
+ });
+});
+
+var findNum = function() {
+ var s = document.querySelector(".msg.selected");
+ if (!s || s.id == "EndPath") {
+ return 0;
+ }
+ var out = parseInt(digitMatcher.exec(s.id)[0]);
+ return out;
+};
+
+var classListAdd = function(el, theClass) {
+ if(!el.className.baseVal)
+ el.className += " " + theClass;
+ else
+ el.className.baseVal += " " + theClass;
+};
+
+var classListRemove = function(el, theClass) {
+ var className = (!el.className.baseVal) ?
+ el.className : el.className.baseVal;
+ className = className.replace(" " + theClass, "");
+ if(!el.className.baseVal)
+ el.className = className;
+ else
+ el.className.baseVal = className;
+};
+
+var scrollTo = function(el) {
+ querySelectorAllArray(".selected").forEach(function(s) {
+ classListRemove(s, "selected");
+ });
+ classListAdd(el, "selected");
+ window.scrollBy(0, el.getBoundingClientRect().top -
+ (window.innerHeight / 2));
+ highlightArrowsForSelectedEvent();
+};
+
+var move = function(num, up, numItems) {
+ if (num == 1 && up || num == numItems - 1 && !up) {
+ return 0;
+ } else if (num == 0 && up) {
+ return numItems - 1;
+ } else if (num == 0 && !up) {
+ return 1 % numItems;
+ }
+ return up ? num - 1 : num + 1;
+}
+
+var numToId = function(num) {
+ if (num == 0) {
+ return document.getElementById("EndPath")
+ }
+ return document.getElementById("Path" + num);
+};
+
+var navigateTo = function(up) {
+ var numItems = document.querySelectorAll(
+ ".line > .msgEvent, .line > .msgControl").length;
+ var currentSelected = findNum();
+ var newSelected = move(currentSelected, up, numItems);
+ var newEl = numToId(newSelected, numItems);
+
+ // Scroll element into center.
+ scrollTo(newEl);
+};
+
+window.addEventListener("keydown", function (event) {
+ if (event.defaultPrevented) {
+ return;
+ }
+ // key 'j'
+ if (event.keyCode == 74) {
+ navigateTo(/*up=*/false);
+ // key 'k'
+ } else if (event.keyCode == 75) {
+ navigateTo(/*up=*/true);
+ } else {
+ return;
+ }
+ event.preventDefault();
+}, true);
+</script>
+
+<script type='text/javascript'>
+
+var toggleHelp = function() {
+ var hint = document.querySelector("#tooltiphint");
+ var attributeName = "hidden";
+ if (hint.hasAttribute(attributeName)) {
+ hint.removeAttribute(attributeName);
+ } else {
+ hint.setAttribute("hidden", "true");
+ }
+};
+window.addEventListener("keydown", function (event) {
+ if (event.defaultPrevented) {
+ return;
+ }
+ if (event.key == "?") {
+ toggleHelp();
+ } else {
+ return;
+ }
+ event.preventDefault();
+});
+</script>
+
+<style type="text/css">
+ svg {
+ position:absolute;
+ top:0;
+ left:0;
+ height:100%;
+ width:100%;
+ pointer-events: none;
+ overflow: visible
+ }
+ .arrow {
+ stroke-opacity: 0.2;
+ stroke-width: 1;
+ marker-end: url(#arrowhead);
+ }
+
+ .arrow.selected {
+ stroke-opacity: 0.6;
+ stroke-width: 2;
+ marker-end: url(#arrowheadSelected);
+ }
+
+ .arrowhead {
+ orient: auto;
+ stroke: none;
+ opacity: 0.6;
+ fill: blue;
+ }
+</style>
+<svg xmlns="http://www.w3.org/2000/svg">
+ <defs>
+ <marker id="arrowheadSelected" class="arrowhead" opacity="0.6"
+ viewBox="0 0 10 10" refX="3" refY="5"
+ markerWidth="4" markerHeight="4">
+ <path d="M 0 0 L 10 5 L 0 10 z" />
+ </marker>
+ <marker id="arrowhead" class="arrowhead" opacity="0.2"
+ viewBox="0 0 10 10" refX="3" refY="5"
+ markerWidth="4" markerHeight="4">
+ <path d="M 0 0 L 10 5 L 0 10 z" />
+ </marker>
+ </defs>
+ <g id="arrows" fill="none" stroke="blue" visibility="hidden">
+
+ </g>
+</svg>
+<script type='text/javascript'>
+const arrowIndices = [ 0,0 ]
+</script>
+<table class="code" data-fileid="1">
+<tr class="codeline" data-linenumber="1"><td class="num" id="LN1">1</td><td class="line"><span class='comment'>/*</span></td></tr>
+<tr class="codeline" data-linenumber="2"><td class="num" id="LN2">2</td><td class="line"> <span class='comment'>* Copyright (C) 2007 Novell, Inc.</span></td></tr>
+<tr class="codeline" data-linenumber="3"><td class="num" id="LN3">3</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="4"><td class="num" id="LN4">4</td><td class="line"> <span class='comment'>* Inspired by various other pieces of code including GsmClient (C)</span></td></tr>
+<tr class="codeline" data-linenumber="5"><td class="num" id="LN5">5</td><td class="line"> <span class='comment'>* 2001 Havoc Pennington, MateClient (C) 1998 Carsten Schaar, and twm</span></td></tr>
+<tr class="codeline" data-linenumber="6"><td class="num" id="LN6">6</td><td class="line"> <span class='comment'>* session code (C) 1998 The Open Group.</span></td></tr>
+<tr class="codeline" data-linenumber="7"><td class="num" id="LN7">7</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="8"><td class="num" id="LN8">8</td><td class="line"> <span class='comment'>* This library is free software; you can redistribute it and/or</span></td></tr>
+<tr class="codeline" data-linenumber="9"><td class="num" id="LN9">9</td><td class="line"> <span class='comment'>* modify it under the terms of the GNU Library General Public</span></td></tr>
+<tr class="codeline" data-linenumber="10"><td class="num" id="LN10">10</td><td class="line"> <span class='comment'>* License as published by the Free Software Foundation; either</span></td></tr>
+<tr class="codeline" data-linenumber="11"><td class="num" id="LN11">11</td><td class="line"> <span class='comment'>* version 2 of the License, or (at your option) any later version.</span></td></tr>
+<tr class="codeline" data-linenumber="12"><td class="num" id="LN12">12</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="13"><td class="num" id="LN13">13</td><td class="line"> <span class='comment'>* This library is distributed in the hope that it will be useful,</span></td></tr>
+<tr class="codeline" data-linenumber="14"><td class="num" id="LN14">14</td><td class="line"> <span class='comment'>* but WITHOUT ANY WARRANTY; without even the implied warranty of</span></td></tr>
+<tr class="codeline" data-linenumber="15"><td class="num" id="LN15">15</td><td class="line"> <span class='comment'>* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</span></td></tr>
+<tr class="codeline" data-linenumber="16"><td class="num" id="LN16">16</td><td class="line"> <span class='comment'>* Library General Public License for more details.</span></td></tr>
+<tr class="codeline" data-linenumber="17"><td class="num" id="LN17">17</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="18"><td class="num" id="LN18">18</td><td class="line"> <span class='comment'>* You should have received a copy of the GNU Library General Public</span></td></tr>
+<tr class="codeline" data-linenumber="19"><td class="num" id="LN19">19</td><td class="line"> <span class='comment'>* License along with this library; if not, write to the</span></td></tr>
+<tr class="codeline" data-linenumber="20"><td class="num" id="LN20">20</td><td class="line"> <span class='comment'>* Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,</span></td></tr>
+<tr class="codeline" data-linenumber="21"><td class="num" id="LN21">21</td><td class="line"> <span class='comment'>* Boston, MA 02110-1301, USA.</span></td></tr>
+<tr class="codeline" data-linenumber="22"><td class="num" id="LN22">22</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="23"><td class="num" id="LN23">23</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="24"><td class="num" id="LN24">24</td><td class="line"><span class='directive'>#include "config.h"</span></td></tr>
+<tr class="codeline" data-linenumber="25"><td class="num" id="LN25">25</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="26"><td class="num" id="LN26">26</td><td class="line"><span class='directive'>#include "eggsmclient.h"</span></td></tr>
+<tr class="codeline" data-linenumber="27"><td class="num" id="LN27">27</td><td class="line"><span class='directive'>#include "eggsmclient-private.h"</span></td></tr>
+<tr class="codeline" data-linenumber="28"><td class="num" id="LN28">28</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="29"><td class="num" id="LN29">29</td><td class="line"><span class='directive'>#include "eggdesktopfile.h"</span></td></tr>
+<tr class="codeline" data-linenumber="30"><td class="num" id="LN30">30</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="31"><td class="num" id="LN31">31</td><td class="line"><span class='directive'>#include &lt;<span class='macro'>errno<span class='macro_popup'>(*__errno_location ())</span></span>.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="32"><td class="num" id="LN32">32</td><td class="line"><span class='directive'>#include &lt;fcntl.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="33"><td class="num" id="LN33">33</td><td class="line"><span class='directive'>#include &lt;stdlib.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="34"><td class="num" id="LN34">34</td><td class="line"><span class='directive'>#include &lt;string.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="35"><td class="num" id="LN35">35</td><td class="line"><span class='directive'>#include &lt;unistd.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="36"><td class="num" id="LN36">36</td><td class="line"><span class='directive'>#include &lt;X11/SM/SMlib.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="37"><td class="num" id="LN37">37</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="38"><td class="num" id="LN38">38</td><td class="line"><span class='directive'>#include &lt;gtk/gtk.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="39"><td class="num" id="LN39">39</td><td class="line"><span class='directive'>#include &lt;gdk/gdk.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="40"><td class="num" id="LN40">40</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="41"><td class="num" id="LN41">41</td><td class="line"><span class='directive'>#ifdef GDK_WINDOWING_X11</span></td></tr>
+<tr class="codeline" data-linenumber="42"><td class="num" id="LN42">42</td><td class="line"><span class='directive'>#include &lt;gdk/gdkx.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="43"><td class="num" id="LN43">43</td><td class="line"><span class='directive'>#endif</span></td></tr>
+<tr class="codeline" data-linenumber="44"><td class="num" id="LN44">44</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="45"><td class="num" id="LN45">45</td><td class="line"><span class='directive'>#define <span class='macro'>EGG_TYPE_SM_CLIENT_XSMP<span class='macro_popup'>(egg_sm_client_xsmp_get_type ())</span></span> (egg_sm_client_xsmp_get_type ())</span></td></tr>
+<tr class="codeline" data-linenumber="46"><td class="num" id="LN46">46</td><td class="line"><span class='directive'>#define <span class='macro'>EGG_SM_CLIENT_XSMP(obj)<span class='macro_popup'>((((EggSMClientXSMP*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((obj)), ((egg_sm_client_xsmp_get_type ()))))))</span></span> (<span class='macro'>G_TYPE_CHECK_INSTANCE_CAST ((obj), EGG_TYPE_SM_CLIENT_XSMP, EggSMClientXSMP)<span class='macro_popup'>(((EggSMClientXSMP*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((obj)), ((egg_sm_client_xsmp_get_type ())))))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="47"><td class="num" id="LN47">47</td><td class="line"><span class='directive'>#define <span class='macro'>EGG_SM_CLIENT_XSMP_CLASS(klass)<span class='macro_popup'>((((EggSMClientXSMPClass*) (void *) g_type_check_class_cast (<br>(GTypeClass*) ((klass)), ((egg_sm_client_xsmp_get_type ()))))<br>))</span></span> (<span class='macro'>G_TYPE_CHECK_CLASS_CAST ((klass), EGG_TYPE_SM_CLIENT_XSMP, EggSMClientXSMPClass)<span class='macro_popup'>(((EggSMClientXSMPClass*) (void *) g_type_check_class_cast ((<br>GTypeClass*) ((klass)), ((egg_sm_client_xsmp_get_type ())))))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="48"><td class="num" id="LN48">48</td><td class="line"><span class='directive'>#define <span class='macro'>EGG_IS_SM_CLIENT_XSMP(obj)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(obj)); GType __t = ((egg_sm_client_xsmp_get_type ())); gboolean<br> __r; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span> (<span class='macro'>G_TYPE_CHECK_INSTANCE_TYPE ((obj), EGG_TYPE_SM_CLIENT_XSMP)<span class='macro_popup'>((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(obj)); GType __t = ((egg_sm_client_xsmp_get_type ())); gboolean<br> __r; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; })))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="49"><td class="num" id="LN49">49</td><td class="line"><span class='directive'>#define <span class='macro'>EGG_IS_SM_CLIENT_XSMP_CLASS(klass)<span class='macro_popup'>(((__extension__ ({ GTypeClass *__class = (GTypeClass*) ((klass<br>)); GType __t = ((egg_sm_client_xsmp_get_type ())); gboolean __r<br>; if (!__class) __r = (0); else if (__class-&gt;g_type == __t<br>) __r = (!(0)); else __r = g_type_check_class_is_a (__class, __t<br>); __r; }))))</span></span> (<span class='macro'>G_TYPE_CHECK_CLASS_TYPE ((klass), EGG_TYPE_SM_CLIENT_XSMP)<span class='macro_popup'>((__extension__ ({ GTypeClass *__class = (GTypeClass*) ((klass<br>)); GType __t = ((egg_sm_client_xsmp_get_type ())); gboolean __r<br>; if (!__class) __r = (0); else if (__class-&gt;g_type == __t<br>) __r = (!(0)); else __r = g_type_check_class_is_a (__class, __t<br>); __r; })))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="50"><td class="num" id="LN50">50</td><td class="line"><span class='directive'>#define <span class='macro'>EGG_SM_CLIENT_XSMP_GET_CLASS(obj)<span class='macro_popup'>((((EggSMClientXSMPClass*) (((GTypeInstance*) ((obj)))-&gt;g_class<br>))))</span></span> (<span class='macro'>G_TYPE_INSTANCE_GET_CLASS ((obj), EGG_TYPE_SM_CLIENT_XSMP, EggSMClientXSMPClass)<span class='macro_popup'>(((EggSMClientXSMPClass*) (((GTypeInstance*) ((obj)))-&gt;g_class<br>)))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="51"><td class="num" id="LN51">51</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="52"><td class="num" id="LN52">52</td><td class="line"><span class='keyword'>typedef</span> <span class='keyword'>struct</span> _EggSMClientXSMP EggSMClientXSMP;</td></tr>
+<tr class="codeline" data-linenumber="53"><td class="num" id="LN53">53</td><td class="line"><span class='keyword'>typedef</span> <span class='keyword'>struct</span> _EggSMClientXSMPClass EggSMClientXSMPClass;</td></tr>
+<tr class="codeline" data-linenumber="54"><td class="num" id="LN54">54</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="55"><td class="num" id="LN55">55</td><td class="line"><span class='comment'>/* These mostly correspond to the similarly-named states in section</span></td></tr>
+<tr class="codeline" data-linenumber="56"><td class="num" id="LN56">56</td><td class="line"> <span class='comment'>* 9.1 of the XSMP spec. Some of the states there aren't represented</span></td></tr>
+<tr class="codeline" data-linenumber="57"><td class="num" id="LN57">57</td><td class="line"> <span class='comment'>* here, because we don't need them. SHUTDOWN_CANCELLED is slightly</span></td></tr>
+<tr class="codeline" data-linenumber="58"><td class="num" id="LN58">58</td><td class="line"> <span class='comment'>* different from the spec; we use it when the client is IDLE after a</span></td></tr>
+<tr class="codeline" data-linenumber="59"><td class="num" id="LN59">59</td><td class="line"> <span class='comment'>* ShutdownCancelled message, but the application is still interacting</span></td></tr>
+<tr class="codeline" data-linenumber="60"><td class="num" id="LN60">60</td><td class="line"> <span class='comment'>* and doesn't know the shutdown has been cancelled yet.</span></td></tr>
+<tr class="codeline" data-linenumber="61"><td class="num" id="LN61">61</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="62"><td class="num" id="LN62">62</td><td class="line"><span class='keyword'>typedef</span> <span class='keyword'>enum</span></td></tr>
+<tr class="codeline" data-linenumber="63"><td class="num" id="LN63">63</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="64"><td class="num" id="LN64">64</td><td class="line"> XSMP_STATE_IDLE,</td></tr>
+<tr class="codeline" data-linenumber="65"><td class="num" id="LN65">65</td><td class="line"> XSMP_STATE_SAVE_YOURSELF,</td></tr>
+<tr class="codeline" data-linenumber="66"><td class="num" id="LN66">66</td><td class="line"> XSMP_STATE_INTERACT_REQUEST,</td></tr>
+<tr class="codeline" data-linenumber="67"><td class="num" id="LN67">67</td><td class="line"> XSMP_STATE_INTERACT,</td></tr>
+<tr class="codeline" data-linenumber="68"><td class="num" id="LN68">68</td><td class="line"> XSMP_STATE_SAVE_YOURSELF_DONE,</td></tr>
+<tr class="codeline" data-linenumber="69"><td class="num" id="LN69">69</td><td class="line"> XSMP_STATE_SHUTDOWN_CANCELLED,</td></tr>
+<tr class="codeline" data-linenumber="70"><td class="num" id="LN70">70</td><td class="line"> XSMP_STATE_CONNECTION_CLOSED</td></tr>
+<tr class="codeline" data-linenumber="71"><td class="num" id="LN71">71</td><td class="line">} EggSMClientXSMPState;</td></tr>
+<tr class="codeline" data-linenumber="72"><td class="num" id="LN72">72</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="73"><td class="num" id="LN73">73</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>const</span> <span class='keyword'>char</span> *state_names[] =</td></tr>
+<tr class="codeline" data-linenumber="74"><td class="num" id="LN74">74</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="75"><td class="num" id="LN75">75</td><td class="line"> <span class='string_literal'>"idle"</span>,</td></tr>
+<tr class="codeline" data-linenumber="76"><td class="num" id="LN76">76</td><td class="line"> <span class='string_literal'>"save-yourself"</span>,</td></tr>
+<tr class="codeline" data-linenumber="77"><td class="num" id="LN77">77</td><td class="line"> <span class='string_literal'>"interact-request"</span>,</td></tr>
+<tr class="codeline" data-linenumber="78"><td class="num" id="LN78">78</td><td class="line"> <span class='string_literal'>"interact"</span>,</td></tr>
+<tr class="codeline" data-linenumber="79"><td class="num" id="LN79">79</td><td class="line"> <span class='string_literal'>"save-yourself-done"</span>,</td></tr>
+<tr class="codeline" data-linenumber="80"><td class="num" id="LN80">80</td><td class="line"> <span class='string_literal'>"shutdown-cancelled"</span>,</td></tr>
+<tr class="codeline" data-linenumber="81"><td class="num" id="LN81">81</td><td class="line"> <span class='string_literal'>"connection-closed"</span></td></tr>
+<tr class="codeline" data-linenumber="82"><td class="num" id="LN82">82</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="83"><td class="num" id="LN83">83</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="84"><td class="num" id="LN84">84</td><td class="line"><span class='directive'>#define <span class='macro'>EGG_SM_CLIENT_XSMP_STATE(xsmp)<span class='macro_popup'>(state_names[(xsmp)-&gt;state])</span></span> (state_names[(xsmp)-&gt;state])</span></td></tr>
+<tr class="codeline" data-linenumber="85"><td class="num" id="LN85">85</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="86"><td class="num" id="LN86">86</td><td class="line"><span class='keyword'>struct</span> _EggSMClientXSMP</td></tr>
+<tr class="codeline" data-linenumber="87"><td class="num" id="LN87">87</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="88"><td class="num" id="LN88">88</td><td class="line"> EggSMClient parent;</td></tr>
+<tr class="codeline" data-linenumber="89"><td class="num" id="LN89">89</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="90"><td class="num" id="LN90">90</td><td class="line"> SmcConn connection;</td></tr>
+<tr class="codeline" data-linenumber="91"><td class="num" id="LN91">91</td><td class="line"> <span class='keyword'>char</span> *client_id;</td></tr>
+<tr class="codeline" data-linenumber="92"><td class="num" id="LN92">92</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="93"><td class="num" id="LN93">93</td><td class="line"> EggSMClientXSMPState state;</td></tr>
+<tr class="codeline" data-linenumber="94"><td class="num" id="LN94">94</td><td class="line"> <span class='keyword'>char</span> **restart_command;</td></tr>
+<tr class="codeline" data-linenumber="95"><td class="num" id="LN95">95</td><td class="line"> gboolean set_restart_command;</td></tr>
+<tr class="codeline" data-linenumber="96"><td class="num" id="LN96">96</td><td class="line"> <span class='keyword'>int</span> restart_style;</td></tr>
+<tr class="codeline" data-linenumber="97"><td class="num" id="LN97">97</td><td class="line"> <span class='keyword'>char</span> **discard_command;</td></tr>
+<tr class="codeline" data-linenumber="98"><td class="num" id="LN98">98</td><td class="line"> gboolean set_discard_command;</td></tr>
+<tr class="codeline" data-linenumber="99"><td class="num" id="LN99">99</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="100"><td class="num" id="LN100">100</td><td class="line"> guint idle;</td></tr>
+<tr class="codeline" data-linenumber="101"><td class="num" id="LN101">101</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="102"><td class="num" id="LN102">102</td><td class="line"> <span class='comment'>/* Current SaveYourself state */</span></td></tr>
+<tr class="codeline" data-linenumber="103"><td class="num" id="LN103">103</td><td class="line"> guint expecting_initial_save_yourself : 1;</td></tr>
+<tr class="codeline" data-linenumber="104"><td class="num" id="LN104">104</td><td class="line"> guint need_save_state : 1;</td></tr>
+<tr class="codeline" data-linenumber="105"><td class="num" id="LN105">105</td><td class="line"> guint need_quit_requested : 1;</td></tr>
+<tr class="codeline" data-linenumber="106"><td class="num" id="LN106">106</td><td class="line"> guint interact_errors : 1;</td></tr>
+<tr class="codeline" data-linenumber="107"><td class="num" id="LN107">107</td><td class="line"> guint shutting_down : 1;</td></tr>
+<tr class="codeline" data-linenumber="108"><td class="num" id="LN108">108</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="109"><td class="num" id="LN109">109</td><td class="line"> <span class='comment'>/* Todo list */</span></td></tr>
+<tr class="codeline" data-linenumber="110"><td class="num" id="LN110">110</td><td class="line"> guint waiting_to_set_initial_properties : 1;</td></tr>
+<tr class="codeline" data-linenumber="111"><td class="num" id="LN111">111</td><td class="line"> guint waiting_to_emit_quit : 1;</td></tr>
+<tr class="codeline" data-linenumber="112"><td class="num" id="LN112">112</td><td class="line"> guint waiting_to_emit_quit_cancelled : 1;</td></tr>
+<tr class="codeline" data-linenumber="113"><td class="num" id="LN113">113</td><td class="line"> guint waiting_to_save_myself : 1;</td></tr>
+<tr class="codeline" data-linenumber="114"><td class="num" id="LN114">114</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="115"><td class="num" id="LN115">115</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="116"><td class="num" id="LN116">116</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="117"><td class="num" id="LN117">117</td><td class="line"><span class='keyword'>struct</span> _EggSMClientXSMPClass</td></tr>
+<tr class="codeline" data-linenumber="118"><td class="num" id="LN118">118</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="119"><td class="num" id="LN119">119</td><td class="line"> EggSMClientClass parent_class;</td></tr>
+<tr class="codeline" data-linenumber="120"><td class="num" id="LN120">120</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="121"><td class="num" id="LN121">121</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="122"><td class="num" id="LN122">122</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="123"><td class="num" id="LN123">123</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> sm_client_xsmp_startup (EggSMClient *client,</td></tr>
+<tr class="codeline" data-linenumber="124"><td class="num" id="LN124">124</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *client_id);</td></tr>
+<tr class="codeline" data-linenumber="125"><td class="num" id="LN125">125</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> sm_client_xsmp_set_restart_command (EggSMClient *client,</td></tr>
+<tr class="codeline" data-linenumber="126"><td class="num" id="LN126">126</td><td class="line"> <span class='keyword'>int</span> argc,</td></tr>
+<tr class="codeline" data-linenumber="127"><td class="num" id="LN127">127</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> **argv);</td></tr>
+<tr class="codeline" data-linenumber="128"><td class="num" id="LN128">128</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> sm_client_xsmp_set_discard_command (EggSMClient *client,</td></tr>
+<tr class="codeline" data-linenumber="129"><td class="num" id="LN129">129</td><td class="line"> <span class='keyword'>int</span> argc,</td></tr>
+<tr class="codeline" data-linenumber="130"><td class="num" id="LN130">130</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> **argv);</td></tr>
+<tr class="codeline" data-linenumber="131"><td class="num" id="LN131">131</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> sm_client_xsmp_will_quit (EggSMClient *client,</td></tr>
+<tr class="codeline" data-linenumber="132"><td class="num" id="LN132">132</td><td class="line"> gboolean will_quit);</td></tr>
+<tr class="codeline" data-linenumber="133"><td class="num" id="LN133">133</td><td class="line"><span class='keyword'>static</span> gboolean sm_client_xsmp_end_session (EggSMClient *client,</td></tr>
+<tr class="codeline" data-linenumber="134"><td class="num" id="LN134">134</td><td class="line"> EggSMClientEndStyle style,</td></tr>
+<tr class="codeline" data-linenumber="135"><td class="num" id="LN135">135</td><td class="line"> gboolean request_confirmation);</td></tr>
+<tr class="codeline" data-linenumber="136"><td class="num" id="LN136">136</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="137"><td class="num" id="LN137">137</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> xsmp_save_yourself (SmcConn smc_conn,</td></tr>
+<tr class="codeline" data-linenumber="138"><td class="num" id="LN138">138</td><td class="line"> SmPointer client_data,</td></tr>
+<tr class="codeline" data-linenumber="139"><td class="num" id="LN139">139</td><td class="line"> <span class='keyword'>int</span> save_style,</td></tr>
+<tr class="codeline" data-linenumber="140"><td class="num" id="LN140">140</td><td class="line"> <span class='macro'>Bool<span class='macro_popup'>int</span></span> shutdown,</td></tr>
+<tr class="codeline" data-linenumber="141"><td class="num" id="LN141">141</td><td class="line"> <span class='keyword'>int</span> interact_style,</td></tr>
+<tr class="codeline" data-linenumber="142"><td class="num" id="LN142">142</td><td class="line"> <span class='macro'>Bool<span class='macro_popup'>int</span></span> fast);</td></tr>
+<tr class="codeline" data-linenumber="143"><td class="num" id="LN143">143</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> xsmp_die (SmcConn smc_conn,</td></tr>
+<tr class="codeline" data-linenumber="144"><td class="num" id="LN144">144</td><td class="line"> SmPointer client_data);</td></tr>
+<tr class="codeline" data-linenumber="145"><td class="num" id="LN145">145</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> xsmp_save_complete (SmcConn smc_conn,</td></tr>
+<tr class="codeline" data-linenumber="146"><td class="num" id="LN146">146</td><td class="line"> SmPointer client_data);</td></tr>
+<tr class="codeline" data-linenumber="147"><td class="num" id="LN147">147</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> xsmp_shutdown_cancelled (SmcConn smc_conn,</td></tr>
+<tr class="codeline" data-linenumber="148"><td class="num" id="LN148">148</td><td class="line"> SmPointer client_data);</td></tr>
+<tr class="codeline" data-linenumber="149"><td class="num" id="LN149">149</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> xsmp_interact (SmcConn smc_conn,</td></tr>
+<tr class="codeline" data-linenumber="150"><td class="num" id="LN150">150</td><td class="line"> SmPointer client_data);</td></tr>
+<tr class="codeline" data-linenumber="151"><td class="num" id="LN151">151</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="152"><td class="num" id="LN152">152</td><td class="line"><span class='keyword'>static</span> SmProp *array_prop (<span class='keyword'>const</span> <span class='keyword'>char</span> *name,</td></tr>
+<tr class="codeline" data-linenumber="153"><td class="num" id="LN153">153</td><td class="line"> ...);</td></tr>
+<tr class="codeline" data-linenumber="154"><td class="num" id="LN154">154</td><td class="line"><span class='keyword'>static</span> SmProp *ptrarray_prop (<span class='keyword'>const</span> <span class='keyword'>char</span> *name,</td></tr>
+<tr class="codeline" data-linenumber="155"><td class="num" id="LN155">155</td><td class="line"> GPtrArray *values);</td></tr>
+<tr class="codeline" data-linenumber="156"><td class="num" id="LN156">156</td><td class="line"><span class='keyword'>static</span> SmProp *string_prop (<span class='keyword'>const</span> <span class='keyword'>char</span> *name,</td></tr>
+<tr class="codeline" data-linenumber="157"><td class="num" id="LN157">157</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *value);</td></tr>
+<tr class="codeline" data-linenumber="158"><td class="num" id="LN158">158</td><td class="line"><span class='keyword'>static</span> SmProp *card8_prop (<span class='keyword'>const</span> <span class='keyword'>char</span> *name,</td></tr>
+<tr class="codeline" data-linenumber="159"><td class="num" id="LN159">159</td><td class="line"> <span class='keyword'>unsigned</span> <span class='keyword'>char</span> value);</td></tr>
+<tr class="codeline" data-linenumber="160"><td class="num" id="LN160">160</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="161"><td class="num" id="LN161">161</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> set_properties (EggSMClientXSMP *xsmp, ...);</td></tr>
+<tr class="codeline" data-linenumber="162"><td class="num" id="LN162">162</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> delete_properties (EggSMClientXSMP *xsmp, ...);</td></tr>
+<tr class="codeline" data-linenumber="163"><td class="num" id="LN163">163</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="164"><td class="num" id="LN164">164</td><td class="line"><span class='keyword'>static</span> GPtrArray *generate_command (<span class='keyword'>char</span> **restart_command,</td></tr>
+<tr class="codeline" data-linenumber="165"><td class="num" id="LN165">165</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *client_id,</td></tr>
+<tr class="codeline" data-linenumber="166"><td class="num" id="LN166">166</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *state_file);</td></tr>
+<tr class="codeline" data-linenumber="167"><td class="num" id="LN167">167</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="168"><td class="num" id="LN168">168</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> save_state (EggSMClientXSMP *xsmp);</td></tr>
+<tr class="codeline" data-linenumber="169"><td class="num" id="LN169">169</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> do_save_yourself (EggSMClientXSMP *xsmp);</td></tr>
+<tr class="codeline" data-linenumber="170"><td class="num" id="LN170">170</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> update_pending_events (EggSMClientXSMP *xsmp);</td></tr>
+<tr class="codeline" data-linenumber="171"><td class="num" id="LN171">171</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="172"><td class="num" id="LN172">172</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> ice_init (<span class='keyword'>void</span>);</td></tr>
+<tr class="codeline" data-linenumber="173"><td class="num" id="LN173">173</td><td class="line"><span class='keyword'>static</span> gboolean process_ice_messages (IceConn ice_conn);</td></tr>
+<tr class="codeline" data-linenumber="174"><td class="num" id="LN174">174</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> smc_error_handler (SmcConn smc_conn,</td></tr>
+<tr class="codeline" data-linenumber="175"><td class="num" id="LN175">175</td><td class="line"> <span class='macro'>Bool<span class='macro_popup'>int</span></span> swap,</td></tr>
+<tr class="codeline" data-linenumber="176"><td class="num" id="LN176">176</td><td class="line"> <span class='keyword'>int</span> offending_minor_opcode,</td></tr>
+<tr class="codeline" data-linenumber="177"><td class="num" id="LN177">177</td><td class="line"> <span class='keyword'>unsigned</span> <span class='keyword'>long</span> offending_sequence,</td></tr>
+<tr class="codeline" data-linenumber="178"><td class="num" id="LN178">178</td><td class="line"> <span class='keyword'>int</span> error_class,</td></tr>
+<tr class="codeline" data-linenumber="179"><td class="num" id="LN179">179</td><td class="line"> <span class='keyword'>int</span> severity,</td></tr>
+<tr class="codeline" data-linenumber="180"><td class="num" id="LN180">180</td><td class="line"> SmPointer values);</td></tr>
+<tr class="codeline" data-linenumber="181"><td class="num" id="LN181">181</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="182"><td class="num" id="LN182">182</td><td class="line"><span class='macro'>G_DEFINE_TYPE (EggSMClientXSMP, egg_sm_client_xsmp, EGG_TYPE_SM_CLIENT)<span class='macro_popup'>static void egg_sm_client_xsmp_init (EggSMClientXSMP *self); static<br> void egg_sm_client_xsmp_class_init (EggSMClientXSMPClass *klass<br>); static GType egg_sm_client_xsmp_get_type_once (void); static<br> gpointer egg_sm_client_xsmp_parent_class = ((void*)0); static<br> gint EggSMClientXSMP_private_offset; static void egg_sm_client_xsmp_class_intern_init<br> (gpointer klass) { egg_sm_client_xsmp_parent_class = g_type_class_peek_parent<br> (klass); if (EggSMClientXSMP_private_offset != 0) g_type_class_adjust_private_offset<br> (klass, &amp;EggSMClientXSMP_private_offset); egg_sm_client_xsmp_class_init<br> ((EggSMClientXSMPClass*) klass); } __attribute__ ((__unused__<br>)) static inline gpointer egg_sm_client_xsmp_get_instance_private<br> (EggSMClientXSMP *self) { return (((gpointer) ((guint8*) (self<br>) + (glong) (EggSMClientXSMP_private_offset)))); } GType egg_sm_client_xsmp_get_type<br> (void) { static gsize static_g_define_type_id = 0; if ((__extension__<br> ({ _Static_assert (sizeof *(&amp;static_g_define_type_id) ==<br> sizeof (gpointer), "Expression evaluates to false"); (void) (<br>0 ? (gpointer) *(&amp;static_g_define_type_id) : ((void*)0));<br> (!(__extension__ ({ _Static_assert (sizeof *(&amp;static_g_define_type_id<br>) == sizeof (gpointer), "Expression evaluates to false"); __typeof__<br> (*(&amp;static_g_define_type_id)) gapg_temp_newval; __typeof__<br> ((&amp;static_g_define_type_id)) gapg_temp_atomic = (&amp;static_g_define_type_id<br>); __atomic_load (gapg_temp_atomic, &amp;gapg_temp_newval, 5)<br>; gapg_temp_newval; })) &amp;&amp; g_once_init_enter (&amp;static_g_define_type_id<br>)); }))) { GType g_define_type_id = egg_sm_client_xsmp_get_type_once<br> (); (__extension__ ({ _Static_assert (sizeof *(&amp;static_g_define_type_id<br>) == sizeof (gpointer), "Expression evaluates to false"); 0 ?<br> (void) (*(&amp;static_g_define_type_id) = (g_define_type_id)<br>) : (void) 0; g_once_init_leave ((&amp;static_g_define_type_id<br>), (gsize) (g_define_type_id)); })); } return static_g_define_type_id<br>; } __attribute__ ((__noinline__)) static GType egg_sm_client_xsmp_get_type_once<br> (void) { GType g_define_type_id = g_type_register_static_simple<br> ((egg_sm_client_get_type ()), g_intern_static_string ("EggSMClientXSMP"<br>), sizeof (EggSMClientXSMPClass), (GClassInitFunc)(void (*)(void<br>)) egg_sm_client_xsmp_class_intern_init, sizeof (EggSMClientXSMP<br>), (GInstanceInitFunc)(void (*)(void)) egg_sm_client_xsmp_init<br>, (GTypeFlags) 0); { {{};} } return g_define_type_id; }</span></span></td></tr>
+<tr class="codeline" data-linenumber="183"><td class="num" id="LN183">183</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="184"><td class="num" id="LN184">184</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="185"><td class="num" id="LN185">185</td><td class="line">egg_sm_client_xsmp_init (EggSMClientXSMP *xsmp)</td></tr>
+<tr class="codeline" data-linenumber="186"><td class="num" id="LN186">186</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="187"><td class="num" id="LN187">187</td><td class="line"> xsmp-&gt;state = XSMP_STATE_CONNECTION_CLOSED;</td></tr>
+<tr class="codeline" data-linenumber="188"><td class="num" id="LN188">188</td><td class="line"> xsmp-&gt;connection = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="189"><td class="num" id="LN189">189</td><td class="line"> xsmp-&gt;restart_style = <span class='macro'>SmRestartIfRunning<span class='macro_popup'>0</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="190"><td class="num" id="LN190">190</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="191"><td class="num" id="LN191">191</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="192"><td class="num" id="LN192">192</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="193"><td class="num" id="LN193">193</td><td class="line">egg_sm_client_xsmp_class_init (EggSMClientXSMPClass *klass)</td></tr>
+<tr class="codeline" data-linenumber="194"><td class="num" id="LN194">194</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="195"><td class="num" id="LN195">195</td><td class="line"> EggSMClientClass *sm_client_class = EGG_SM_CLIENT_CLASS (klass);</td></tr>
+<tr class="codeline" data-linenumber="196"><td class="num" id="LN196">196</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="197"><td class="num" id="LN197">197</td><td class="line"> sm_client_class-&gt;startup = sm_client_xsmp_startup;</td></tr>
+<tr class="codeline" data-linenumber="198"><td class="num" id="LN198">198</td><td class="line"> sm_client_class-&gt;set_restart_command = sm_client_xsmp_set_restart_command;</td></tr>
+<tr class="codeline" data-linenumber="199"><td class="num" id="LN199">199</td><td class="line"> sm_client_class-&gt;set_discard_command = sm_client_xsmp_set_discard_command;</td></tr>
+<tr class="codeline" data-linenumber="200"><td class="num" id="LN200">200</td><td class="line"> sm_client_class-&gt;will_quit = sm_client_xsmp_will_quit;</td></tr>
+<tr class="codeline" data-linenumber="201"><td class="num" id="LN201">201</td><td class="line"> sm_client_class-&gt;end_session = sm_client_xsmp_end_session;</td></tr>
+<tr class="codeline" data-linenumber="202"><td class="num" id="LN202">202</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="203"><td class="num" id="LN203">203</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="204"><td class="num" id="LN204">204</td><td class="line">EggSMClient *</td></tr>
+<tr class="codeline" data-linenumber="205"><td class="num" id="LN205">205</td><td class="line">egg_sm_client_xsmp_new (<span class='keyword'>void</span>)</td></tr>
+<tr class="codeline" data-linenumber="206"><td class="num" id="LN206">206</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="207"><td class="num" id="LN207">207</td><td class="line"> <span class='keyword'>if</span> (!g_getenv (<span class='string_literal'>"SESSION_MANAGER"</span>))</td></tr>
+<tr class="codeline" data-linenumber="208"><td class="num" id="LN208">208</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="209"><td class="num" id="LN209">209</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="210"><td class="num" id="LN210">210</td><td class="line"> <span class='keyword'>return</span> g_object_new (<span class='macro'>EGG_TYPE_SM_CLIENT_XSMP<span class='macro_popup'>(egg_sm_client_xsmp_get_type ())</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="211"><td class="num" id="LN211">211</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="212"><td class="num" id="LN212">212</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="213"><td class="num" id="LN213">213</td><td class="line"><span class='keyword'>static</span> gboolean</td></tr>
+<tr class="codeline" data-linenumber="214"><td class="num" id="LN214">214</td><td class="line">sm_client_xsmp_set_initial_properties (gpointer user_data)</td></tr>
+<tr class="codeline" data-linenumber="215"><td class="num" id="LN215">215</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="216"><td class="num" id="LN216">216</td><td class="line"> EggSMClientXSMP *xsmp = user_data;</td></tr>
+<tr class="codeline" data-linenumber="217"><td class="num" id="LN217">217</td><td class="line"> EggDesktopFile *desktop_file;</td></tr>
+<tr class="codeline" data-linenumber="218"><td class="num" id="LN218">218</td><td class="line"> GPtrArray *clone, *restart;</td></tr>
+<tr class="codeline" data-linenumber="219"><td class="num" id="LN219">219</td><td class="line"> <span class='keyword'>char</span> pid_str[64];</td></tr>
+<tr class="codeline" data-linenumber="220"><td class="num" id="LN220">220</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="221"><td class="num" id="LN221">221</td><td class="line"> <span class='keyword'>if</span> (xsmp-&gt;idle)</td></tr>
+<tr class="codeline" data-linenumber="222"><td class="num" id="LN222">222</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="223"><td class="num" id="LN223">223</td><td class="line"> g_source_remove (xsmp-&gt;idle);</td></tr>
+<tr class="codeline" data-linenumber="224"><td class="num" id="LN224">224</td><td class="line"> xsmp-&gt;idle = 0;</td></tr>
+<tr class="codeline" data-linenumber="225"><td class="num" id="LN225">225</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="226"><td class="num" id="LN226">226</td><td class="line"> xsmp-&gt;waiting_to_set_initial_properties = <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="227"><td class="num" id="LN227">227</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="228"><td class="num" id="LN228">228</td><td class="line"> <span class='keyword'>if</span> (egg_sm_client_get_mode () == EGG_SM_CLIENT_MODE_NO_RESTART)</td></tr>
+<tr class="codeline" data-linenumber="229"><td class="num" id="LN229">229</td><td class="line"> xsmp-&gt;restart_style = <span class='macro'>SmRestartNever<span class='macro_popup'>3</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="230"><td class="num" id="LN230">230</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="231"><td class="num" id="LN231">231</td><td class="line"> <span class='comment'>/* Parse info out of desktop file */</span></td></tr>
+<tr class="codeline" data-linenumber="232"><td class="num" id="LN232">232</td><td class="line"> desktop_file = egg_get_desktop_file ();</td></tr>
+<tr class="codeline" data-linenumber="233"><td class="num" id="LN233">233</td><td class="line"> <span class='keyword'>if</span> (desktop_file)</td></tr>
+<tr class="codeline" data-linenumber="234"><td class="num" id="LN234">234</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="235"><td class="num" id="LN235">235</td><td class="line"> GError *err = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="236"><td class="num" id="LN236">236</td><td class="line"> <span class='keyword'>char</span> **argv;</td></tr>
+<tr class="codeline" data-linenumber="237"><td class="num" id="LN237">237</td><td class="line"> <span class='keyword'>int</span> argc;</td></tr>
+<tr class="codeline" data-linenumber="238"><td class="num" id="LN238">238</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="239"><td class="num" id="LN239">239</td><td class="line"> <span class='keyword'>if</span> (xsmp-&gt;restart_style == <span class='macro'>SmRestartIfRunning<span class='macro_popup'>0</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="240"><td class="num" id="LN240">240</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="241"><td class="num" id="LN241">241</td><td class="line"> <span class='keyword'>if</span> (egg_desktop_file_get_boolean (desktop_file,</td></tr>
+<tr class="codeline" data-linenumber="242"><td class="num" id="LN242">242</td><td class="line"> <span class='string_literal'>"X-MATE-AutoRestart"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="243"><td class="num" id="LN243">243</td><td class="line"> xsmp-&gt;restart_style = <span class='macro'>SmRestartImmediately<span class='macro_popup'>2</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="244"><td class="num" id="LN244">244</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="245"><td class="num" id="LN245">245</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="246"><td class="num" id="LN246">246</td><td class="line"> <span class='keyword'>if</span> (!xsmp-&gt;set_restart_command)</td></tr>
+<tr class="codeline" data-linenumber="247"><td class="num" id="LN247">247</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="248"><td class="num" id="LN248">248</td><td class="line"> <span class='keyword'>char</span> *cmdline;</td></tr>
+<tr class="codeline" data-linenumber="249"><td class="num" id="LN249">249</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="250"><td class="num" id="LN250">250</td><td class="line"> cmdline = egg_desktop_file_parse_exec (desktop_file, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, &amp;err);</td></tr>
+<tr class="codeline" data-linenumber="251"><td class="num" id="LN251">251</td><td class="line"> <span class='keyword'>if</span> (cmdline &amp;&amp; g_shell_parse_argv (cmdline, &amp;argc, &amp;argv, &amp;err))</td></tr>
+<tr class="codeline" data-linenumber="252"><td class="num" id="LN252">252</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="253"><td class="num" id="LN253">253</td><td class="line"> egg_sm_client_set_restart_command (EGG_SM_CLIENT (xsmp),</td></tr>
+<tr class="codeline" data-linenumber="254"><td class="num" id="LN254">254</td><td class="line"> argc, (<span class='keyword'>const</span> <span class='keyword'>char</span> **)argv);</td></tr>
+<tr class="codeline" data-linenumber="255"><td class="num" id="LN255">255</td><td class="line"> g_strfreev (argv);</td></tr>
+<tr class="codeline" data-linenumber="256"><td class="num" id="LN256">256</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="257"><td class="num" id="LN257">257</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="258"><td class="num" id="LN258">258</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="259"><td class="num" id="LN259">259</td><td class="line"> g_warning (<span class='string_literal'>"Could not parse Exec line in desktop file: %s"</span>,</td></tr>
+<tr class="codeline" data-linenumber="260"><td class="num" id="LN260">260</td><td class="line"> err-&gt;message);</td></tr>
+<tr class="codeline" data-linenumber="261"><td class="num" id="LN261">261</td><td class="line"> g_error_free (err);</td></tr>
+<tr class="codeline" data-linenumber="262"><td class="num" id="LN262">262</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="263"><td class="num" id="LN263">263</td><td class="line"> g_free (cmdline);</td></tr>
+<tr class="codeline" data-linenumber="264"><td class="num" id="LN264">264</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="265"><td class="num" id="LN265">265</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="266"><td class="num" id="LN266">266</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="267"><td class="num" id="LN267">267</td><td class="line"> <span class='keyword'>if</span> (!xsmp-&gt;set_restart_command)</td></tr>
+<tr class="codeline" data-linenumber="268"><td class="num" id="LN268">268</td><td class="line"> xsmp-&gt;restart_command = g_strsplit (g_get_prgname (), <span class='string_literal'>" "</span>, -1);</td></tr>
+<tr class="codeline" data-linenumber="269"><td class="num" id="LN269">269</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="270"><td class="num" id="LN270">270</td><td class="line"> clone = generate_command (xsmp-&gt;restart_command, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="271"><td class="num" id="LN271">271</td><td class="line"> restart = generate_command (xsmp-&gt;restart_command, xsmp-&gt;client_id, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="272"><td class="num" id="LN272">272</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="273"><td class="num" id="LN273">273</td><td class="line"> g_debug (<span class='string_literal'>"Setting initial properties"</span>);</td></tr>
+<tr class="codeline" data-linenumber="274"><td class="num" id="LN274">274</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="275"><td class="num" id="LN275">275</td><td class="line"> <span class='comment'>/* Program, CloneCommand, RestartCommand, and UserID are required.</span></td></tr>
+<tr class="codeline" data-linenumber="276"><td class="num" id="LN276">276</td><td class="line"> <span class='comment'>* ProcessID isn't required, but the SM may be able to do something</span></td></tr>
+<tr class="codeline" data-linenumber="277"><td class="num" id="LN277">277</td><td class="line"> <span class='comment'>* useful with it.</span></td></tr>
+<tr class="codeline" data-linenumber="278"><td class="num" id="LN278">278</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="279"><td class="num" id="LN279">279</td><td class="line"> g_snprintf (pid_str, <span class='keyword'>sizeof</span> (pid_str), <span class='string_literal'>"%lu"</span>, (gulong) getpid ());</td></tr>
+<tr class="codeline" data-linenumber="280"><td class="num" id="LN280">280</td><td class="line"> set_properties (xsmp,</td></tr>
+<tr class="codeline" data-linenumber="281"><td class="num" id="LN281">281</td><td class="line"> string_prop (<span class='macro'>SmProgram<span class='macro_popup'>"Program"</span></span>, g_get_prgname ()),</td></tr>
+<tr class="codeline" data-linenumber="282"><td class="num" id="LN282">282</td><td class="line"> ptrarray_prop (<span class='macro'>SmCloneCommand<span class='macro_popup'>"CloneCommand"</span></span>, clone),</td></tr>
+<tr class="codeline" data-linenumber="283"><td class="num" id="LN283">283</td><td class="line"> ptrarray_prop (<span class='macro'>SmRestartCommand<span class='macro_popup'>"RestartCommand"</span></span>, restart),</td></tr>
+<tr class="codeline" data-linenumber="284"><td class="num" id="LN284">284</td><td class="line"> string_prop (<span class='macro'>SmUserID<span class='macro_popup'>"UserID"</span></span>, g_get_user_name ()),</td></tr>
+<tr class="codeline" data-linenumber="285"><td class="num" id="LN285">285</td><td class="line"> string_prop (<span class='macro'>SmProcessID<span class='macro_popup'>"ProcessID"</span></span>, pid_str),</td></tr>
+<tr class="codeline" data-linenumber="286"><td class="num" id="LN286">286</td><td class="line"> card8_prop (<span class='macro'>SmRestartStyleHint<span class='macro_popup'>"RestartStyleHint"</span></span>, xsmp-&gt;restart_style),</td></tr>
+<tr class="codeline" data-linenumber="287"><td class="num" id="LN287">287</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="288"><td class="num" id="LN288">288</td><td class="line"> g_ptr_array_free (clone, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="289"><td class="num" id="LN289">289</td><td class="line"> g_ptr_array_free (restart, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="290"><td class="num" id="LN290">290</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="291"><td class="num" id="LN291">291</td><td class="line"> <span class='keyword'>if</span> (desktop_file)</td></tr>
+<tr class="codeline" data-linenumber="292"><td class="num" id="LN292">292</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="293"><td class="num" id="LN293">293</td><td class="line"> set_properties (xsmp,</td></tr>
+<tr class="codeline" data-linenumber="294"><td class="num" id="LN294">294</td><td class="line"> string_prop (<span class='string_literal'>"_GSM_DesktopFile"</span>, egg_desktop_file_get_source (desktop_file)),</td></tr>
+<tr class="codeline" data-linenumber="295"><td class="num" id="LN295">295</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="296"><td class="num" id="LN296">296</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="297"><td class="num" id="LN297">297</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="298"><td class="num" id="LN298">298</td><td class="line"> update_pending_events (xsmp);</td></tr>
+<tr class="codeline" data-linenumber="299"><td class="num" id="LN299">299</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="300"><td class="num" id="LN300">300</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="301"><td class="num" id="LN301">301</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="302"><td class="num" id="LN302">302</td><td class="line"><span class='comment'>/* This gets called from two different places: xsmp_die() (when the</span></td></tr>
+<tr class="codeline" data-linenumber="303"><td class="num" id="LN303">303</td><td class="line"> <span class='comment'>* server asks us to disconnect) and process_ice_messages() (when the</span></td></tr>
+<tr class="codeline" data-linenumber="304"><td class="num" id="LN304">304</td><td class="line"> <span class='comment'>* server disconnects unexpectedly).</span></td></tr>
+<tr class="codeline" data-linenumber="305"><td class="num" id="LN305">305</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="306"><td class="num" id="LN306">306</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="307"><td class="num" id="LN307">307</td><td class="line">sm_client_xsmp_disconnect (EggSMClientXSMP *xsmp)</td></tr>
+<tr class="codeline" data-linenumber="308"><td class="num" id="LN308">308</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="309"><td class="num" id="LN309">309</td><td class="line"> SmcConn connection;</td></tr>
+<tr class="codeline" data-linenumber="310"><td class="num" id="LN310">310</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="311"><td class="num" id="LN311">311</td><td class="line"> <span class='keyword'>if</span> (!xsmp-&gt;connection)</td></tr>
+<tr class="codeline" data-linenumber="312"><td class="num" id="LN312">312</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="313"><td class="num" id="LN313">313</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="314"><td class="num" id="LN314">314</td><td class="line"> g_debug (<span class='string_literal'>"Disconnecting"</span>);</td></tr>
+<tr class="codeline" data-linenumber="315"><td class="num" id="LN315">315</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="316"><td class="num" id="LN316">316</td><td class="line"> connection = xsmp-&gt;connection;</td></tr>
+<tr class="codeline" data-linenumber="317"><td class="num" id="LN317">317</td><td class="line"> xsmp-&gt;connection = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="318"><td class="num" id="LN318">318</td><td class="line"> SmcCloseConnection (connection, 0, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="319"><td class="num" id="LN319">319</td><td class="line"> xsmp-&gt;state = XSMP_STATE_CONNECTION_CLOSED;</td></tr>
+<tr class="codeline" data-linenumber="320"><td class="num" id="LN320">320</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="321"><td class="num" id="LN321">321</td><td class="line"> xsmp-&gt;waiting_to_save_myself = <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="322"><td class="num" id="LN322">322</td><td class="line"> update_pending_events (xsmp);</td></tr>
+<tr class="codeline" data-linenumber="323"><td class="num" id="LN323">323</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="324"><td class="num" id="LN324">324</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="325"><td class="num" id="LN325">325</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="326"><td class="num" id="LN326">326</td><td class="line">sm_client_xsmp_startup (EggSMClient *client,</td></tr>
+<tr class="codeline" data-linenumber="327"><td class="num" id="LN327">327</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *client_id)</td></tr>
+<tr class="codeline" data-linenumber="328"><td class="num" id="LN328">328</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="329"><td class="num" id="LN329">329</td><td class="line"> EggSMClientXSMP *xsmp = (EggSMClientXSMP *)client;</td></tr>
+<tr class="codeline" data-linenumber="330"><td class="num" id="LN330">330</td><td class="line"> SmcCallbacks callbacks;</td></tr>
+<tr class="codeline" data-linenumber="331"><td class="num" id="LN331">331</td><td class="line"> <span class='keyword'>char</span> *ret_client_id;</td></tr>
+<tr class="codeline" data-linenumber="332"><td class="num" id="LN332">332</td><td class="line"> <span class='keyword'>char</span> error_string_ret[256];</td></tr>
+<tr class="codeline" data-linenumber="333"><td class="num" id="LN333">333</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="334"><td class="num" id="LN334">334</td><td class="line"> xsmp-&gt;client_id = <span class='macro'>g_strdup (client_id)<span class='macro_popup'>g_strdup_inline (client_id)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="335"><td class="num" id="LN335">335</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="336"><td class="num" id="LN336">336</td><td class="line"> ice_init ();</td></tr>
+<tr class="codeline" data-linenumber="337"><td class="num" id="LN337">337</td><td class="line"> SmcSetErrorHandler (smc_error_handler);</td></tr>
+<tr class="codeline" data-linenumber="338"><td class="num" id="LN338">338</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="339"><td class="num" id="LN339">339</td><td class="line"> callbacks.save_yourself.callback = xsmp_save_yourself;</td></tr>
+<tr class="codeline" data-linenumber="340"><td class="num" id="LN340">340</td><td class="line"> callbacks.die.callback = xsmp_die;</td></tr>
+<tr class="codeline" data-linenumber="341"><td class="num" id="LN341">341</td><td class="line"> callbacks.save_complete.callback = xsmp_save_complete;</td></tr>
+<tr class="codeline" data-linenumber="342"><td class="num" id="LN342">342</td><td class="line"> callbacks.shutdown_cancelled.callback = xsmp_shutdown_cancelled;</td></tr>
+<tr class="codeline" data-linenumber="343"><td class="num" id="LN343">343</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="344"><td class="num" id="LN344">344</td><td class="line"> callbacks.save_yourself.client_data = xsmp;</td></tr>
+<tr class="codeline" data-linenumber="345"><td class="num" id="LN345">345</td><td class="line"> callbacks.die.client_data = xsmp;</td></tr>
+<tr class="codeline" data-linenumber="346"><td class="num" id="LN346">346</td><td class="line"> callbacks.save_complete.client_data = xsmp;</td></tr>
+<tr class="codeline" data-linenumber="347"><td class="num" id="LN347">347</td><td class="line"> callbacks.shutdown_cancelled.client_data = xsmp;</td></tr>
+<tr class="codeline" data-linenumber="348"><td class="num" id="LN348">348</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="349"><td class="num" id="LN349">349</td><td class="line"> client_id = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="350"><td class="num" id="LN350">350</td><td class="line"> error_string_ret[0] = '\0';</td></tr>
+<tr class="codeline" data-linenumber="351"><td class="num" id="LN351">351</td><td class="line"> xsmp-&gt;connection =</td></tr>
+<tr class="codeline" data-linenumber="352"><td class="num" id="LN352">352</td><td class="line"> SmcOpenConnection (<span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, xsmp, <span class='macro'>SmProtoMajor<span class='macro_popup'>1</span></span>, <span class='macro'>SmProtoMinor<span class='macro_popup'>0</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="353"><td class="num" id="LN353">353</td><td class="line"> <span class='macro'>SmcSaveYourselfProcMask<span class='macro_popup'>(1L &lt;&lt; 0)</span></span> | <span class='macro'>SmcDieProcMask<span class='macro_popup'>(1L &lt;&lt; 1)</span></span> |</td></tr>
+<tr class="codeline" data-linenumber="354"><td class="num" id="LN354">354</td><td class="line"> <span class='macro'>SmcSaveCompleteProcMask<span class='macro_popup'>(1L &lt;&lt; 2)</span></span> |</td></tr>
+<tr class="codeline" data-linenumber="355"><td class="num" id="LN355">355</td><td class="line"> <span class='macro'>SmcShutdownCancelledProcMask<span class='macro_popup'>(1L &lt;&lt; 3)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="356"><td class="num" id="LN356">356</td><td class="line"> &amp;callbacks,</td></tr>
+<tr class="codeline" data-linenumber="357"><td class="num" id="LN357">357</td><td class="line"> xsmp-&gt;client_id, &amp;ret_client_id,</td></tr>
+<tr class="codeline" data-linenumber="358"><td class="num" id="LN358">358</td><td class="line"> <span class='keyword'>sizeof</span> (error_string_ret), error_string_ret);</td></tr>
+<tr class="codeline" data-linenumber="359"><td class="num" id="LN359">359</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="360"><td class="num" id="LN360">360</td><td class="line"> <span class='keyword'>if</span> (!xsmp-&gt;connection)</td></tr>
+<tr class="codeline" data-linenumber="361"><td class="num" id="LN361">361</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="362"><td class="num" id="LN362">362</td><td class="line"> g_warning (<span class='string_literal'>"Failed to connect to the session manager: %s\n"</span>,</td></tr>
+<tr class="codeline" data-linenumber="363"><td class="num" id="LN363">363</td><td class="line"> error_string_ret[0] ?</td></tr>
+<tr class="codeline" data-linenumber="364"><td class="num" id="LN364">364</td><td class="line"> error_string_ret : <span class='string_literal'>"no error message given"</span>);</td></tr>
+<tr class="codeline" data-linenumber="365"><td class="num" id="LN365">365</td><td class="line"> xsmp-&gt;state = XSMP_STATE_CONNECTION_CLOSED;</td></tr>
+<tr class="codeline" data-linenumber="366"><td class="num" id="LN366">366</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="367"><td class="num" id="LN367">367</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="368"><td class="num" id="LN368">368</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="369"><td class="num" id="LN369">369</td><td class="line"> <span class='comment'>/* We expect a pointless initial SaveYourself if either (a) we</span></td></tr>
+<tr class="codeline" data-linenumber="370"><td class="num" id="LN370">370</td><td class="line"> <span class='comment'>* didn't have an initial client ID, or (b) we DID have an initial</span></td></tr>
+<tr class="codeline" data-linenumber="371"><td class="num" id="LN371">371</td><td class="line"> <span class='comment'>* client ID, but the server rejected it and gave us a new one.</span></td></tr>
+<tr class="codeline" data-linenumber="372"><td class="num" id="LN372">372</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="373"><td class="num" id="LN373">373</td><td class="line"> <span class='keyword'>if</span> (!xsmp-&gt;client_id ||</td></tr>
+<tr class="codeline" data-linenumber="374"><td class="num" id="LN374">374</td><td class="line"> (ret_client_id &amp;&amp; strcmp (xsmp-&gt;client_id, ret_client_id) != 0))</td></tr>
+<tr class="codeline" data-linenumber="375"><td class="num" id="LN375">375</td><td class="line"> xsmp-&gt;expecting_initial_save_yourself = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="376"><td class="num" id="LN376">376</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="377"><td class="num" id="LN377">377</td><td class="line"> <span class='keyword'>if</span> (ret_client_id)</td></tr>
+<tr class="codeline" data-linenumber="378"><td class="num" id="LN378">378</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="379"><td class="num" id="LN379">379</td><td class="line"> g_free (xsmp-&gt;client_id);</td></tr>
+<tr class="codeline" data-linenumber="380"><td class="num" id="LN380">380</td><td class="line"> xsmp-&gt;client_id = <span class='macro'>g_strdup (ret_client_id)<span class='macro_popup'>g_strdup_inline (ret_client_id)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="381"><td class="num" id="LN381">381</td><td class="line"> free (ret_client_id);</td></tr>
+<tr class="codeline" data-linenumber="382"><td class="num" id="LN382">382</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="383"><td class="num" id="LN383">383</td><td class="line"><span class='directive'>#ifdef GDK_WINDOWING_X11</span></td></tr>
+<tr class="codeline" data-linenumber="384"><td class="num" id="LN384">384</td><td class="line"> <span class='keyword'>if</span> (<span class='macro'>GDK_IS_X11_DISPLAY (gdk_display_get_default ())<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(gdk_display_get_default ())); GType __t = ((gdk_x11_display_get_type<br>())); gboolean __r; if (!__inst) __r = (0); else if (__inst-&gt;<br>g_class &amp;&amp; __inst-&gt;g_class-&gt;g_type == __t) __r =<br> (!(0)); else __r = g_type_check_instance_is_a (__inst, __t);<br> __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="385"><td class="num" id="LN385">385</td><td class="line"> gdk_x11_set_sm_client_id (xsmp-&gt;client_id);</td></tr>
+<tr class="codeline" data-linenumber="386"><td class="num" id="LN386">386</td><td class="line"><span class='directive'>#endif</span></td></tr>
+<tr class="codeline" data-linenumber="387"><td class="num" id="LN387">387</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="388"><td class="num" id="LN388">388</td><td class="line"> g_debug (<span class='string_literal'>"Got client ID \"%s\""</span>, xsmp-&gt;client_id);</td></tr>
+<tr class="codeline" data-linenumber="389"><td class="num" id="LN389">389</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="390"><td class="num" id="LN390">390</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="391"><td class="num" id="LN391">391</td><td class="line"> xsmp-&gt;state = XSMP_STATE_IDLE;</td></tr>
+<tr class="codeline" data-linenumber="392"><td class="num" id="LN392">392</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="393"><td class="num" id="LN393">393</td><td class="line"> <span class='comment'>/* Do not set the initial properties until we reach the main loop,</span></td></tr>
+<tr class="codeline" data-linenumber="394"><td class="num" id="LN394">394</td><td class="line"> <span class='comment'>* so that the application has a chance to call</span></td></tr>
+<tr class="codeline" data-linenumber="395"><td class="num" id="LN395">395</td><td class="line"> <span class='comment'>* egg_set_desktop_file(). (This may also help the session manager</span></td></tr>
+<tr class="codeline" data-linenumber="396"><td class="num" id="LN396">396</td><td class="line"> <span class='comment'>* have a better idea of when the application is fully up and</span></td></tr>
+<tr class="codeline" data-linenumber="397"><td class="num" id="LN397">397</td><td class="line"> <span class='comment'>* running.)</span></td></tr>
+<tr class="codeline" data-linenumber="398"><td class="num" id="LN398">398</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="399"><td class="num" id="LN399">399</td><td class="line"> xsmp-&gt;waiting_to_set_initial_properties = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="400"><td class="num" id="LN400">400</td><td class="line"> xsmp-&gt;idle = g_idle_add (sm_client_xsmp_set_initial_properties, client);</td></tr>
+<tr class="codeline" data-linenumber="401"><td class="num" id="LN401">401</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="402"><td class="num" id="LN402">402</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="403"><td class="num" id="LN403">403</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="404"><td class="num" id="LN404">404</td><td class="line">sm_client_xsmp_set_restart_command (EggSMClient *client,</td></tr>
+<tr class="codeline" data-linenumber="405"><td class="num" id="LN405">405</td><td class="line"> <span class='keyword'>int</span> argc,</td></tr>
+<tr class="codeline" data-linenumber="406"><td class="num" id="LN406">406</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> **argv)</td></tr>
+<tr class="codeline" data-linenumber="407"><td class="num" id="LN407">407</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="408"><td class="num" id="LN408">408</td><td class="line"> EggSMClientXSMP *xsmp = (EggSMClientXSMP *)client;</td></tr>
+<tr class="codeline" data-linenumber="409"><td class="num" id="LN409">409</td><td class="line"> <span class='keyword'>int</span> i;</td></tr>
+<tr class="codeline" data-linenumber="410"><td class="num" id="LN410">410</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="411"><td class="num" id="LN411">411</td><td class="line"> g_strfreev (xsmp-&gt;restart_command);</td></tr>
+<tr class="codeline" data-linenumber="412"><td class="num" id="LN412">412</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="413"><td class="num" id="LN413">413</td><td class="line"> xsmp-&gt;restart_command = <span class='macro'>g_new (<span class='keyword'>char</span> *, argc + 1)<span class='macro_popup'>((char * *) g_malloc_n ((argc + 1), sizeof (char *)))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="414"><td class="num" id="LN414">414</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; argc; i++)</td></tr>
+<tr class="codeline" data-linenumber="415"><td class="num" id="LN415">415</td><td class="line"> xsmp-&gt;restart_command[i] = <span class='macro'>g_strdup (argv[i])<span class='macro_popup'>g_strdup_inline (argv[i])</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="416"><td class="num" id="LN416">416</td><td class="line"> xsmp-&gt;restart_command[i] = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="417"><td class="num" id="LN417">417</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="418"><td class="num" id="LN418">418</td><td class="line"> xsmp-&gt;set_restart_command = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="419"><td class="num" id="LN419">419</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="420"><td class="num" id="LN420">420</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="421"><td class="num" id="LN421">421</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="422"><td class="num" id="LN422">422</td><td class="line">sm_client_xsmp_set_discard_command (EggSMClient *client,</td></tr>
+<tr class="codeline" data-linenumber="423"><td class="num" id="LN423">423</td><td class="line"> <span class='keyword'>int</span> argc,</td></tr>
+<tr class="codeline" data-linenumber="424"><td class="num" id="LN424">424</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> **argv)</td></tr>
+<tr class="codeline" data-linenumber="425"><td class="num" id="LN425">425</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="426"><td class="num" id="LN426">426</td><td class="line"> EggSMClientXSMP *xsmp = (EggSMClientXSMP *)client;</td></tr>
+<tr class="codeline" data-linenumber="427"><td class="num" id="LN427">427</td><td class="line"> <span class='keyword'>int</span> i;</td></tr>
+<tr class="codeline" data-linenumber="428"><td class="num" id="LN428">428</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="429"><td class="num" id="LN429">429</td><td class="line"> g_strfreev (xsmp-&gt;discard_command);</td></tr>
+<tr class="codeline" data-linenumber="430"><td class="num" id="LN430">430</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="431"><td class="num" id="LN431">431</td><td class="line"> xsmp-&gt;discard_command = <span class='macro'>g_new (<span class='keyword'>char</span> *, argc + 1)<span class='macro_popup'>((char * *) g_malloc_n ((argc + 1), sizeof (char *)))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="432"><td class="num" id="LN432">432</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; argc; i++)</td></tr>
+<tr class="codeline" data-linenumber="433"><td class="num" id="LN433">433</td><td class="line"> xsmp-&gt;discard_command[i] = <span class='macro'>g_strdup (argv[i])<span class='macro_popup'>g_strdup_inline (argv[i])</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="434"><td class="num" id="LN434">434</td><td class="line"> xsmp-&gt;discard_command[i] = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="435"><td class="num" id="LN435">435</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="436"><td class="num" id="LN436">436</td><td class="line"> xsmp-&gt;set_discard_command = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="437"><td class="num" id="LN437">437</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="438"><td class="num" id="LN438">438</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="439"><td class="num" id="LN439">439</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="440"><td class="num" id="LN440">440</td><td class="line">sm_client_xsmp_will_quit (EggSMClient *client,</td></tr>
+<tr class="codeline" data-linenumber="441"><td class="num" id="LN441">441</td><td class="line"> gboolean will_quit)</td></tr>
+<tr class="codeline" data-linenumber="442"><td class="num" id="LN442">442</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="443"><td class="num" id="LN443">443</td><td class="line"> EggSMClientXSMP *xsmp = (EggSMClientXSMP *)client;</td></tr>
+<tr class="codeline" data-linenumber="444"><td class="num" id="LN444">444</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="445"><td class="num" id="LN445">445</td><td class="line"> <span class='keyword'>if</span> (xsmp-&gt;state == XSMP_STATE_CONNECTION_CLOSED)</td></tr>
+<tr class="codeline" data-linenumber="446"><td class="num" id="LN446">446</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="447"><td class="num" id="LN447">447</td><td class="line"> <span class='comment'>/* The session manager has already exited! Schedule a quit</span></td></tr>
+<tr class="codeline" data-linenumber="448"><td class="num" id="LN448">448</td><td class="line"> <span class='comment'>* signal.</span></td></tr>
+<tr class="codeline" data-linenumber="449"><td class="num" id="LN449">449</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="450"><td class="num" id="LN450">450</td><td class="line"> xsmp-&gt;waiting_to_emit_quit = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="451"><td class="num" id="LN451">451</td><td class="line"> update_pending_events (xsmp);</td></tr>
+<tr class="codeline" data-linenumber="452"><td class="num" id="LN452">452</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="453"><td class="num" id="LN453">453</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="454"><td class="num" id="LN454">454</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (xsmp-&gt;state == XSMP_STATE_SHUTDOWN_CANCELLED)</td></tr>
+<tr class="codeline" data-linenumber="455"><td class="num" id="LN455">455</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="456"><td class="num" id="LN456">456</td><td class="line"> <span class='comment'>/* We received a ShutdownCancelled message while the application</span></td></tr>
+<tr class="codeline" data-linenumber="457"><td class="num" id="LN457">457</td><td class="line"> <span class='comment'>* was interacting; Schedule a quit_cancelled signal.</span></td></tr>
+<tr class="codeline" data-linenumber="458"><td class="num" id="LN458">458</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="459"><td class="num" id="LN459">459</td><td class="line"> xsmp-&gt;waiting_to_emit_quit_cancelled = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="460"><td class="num" id="LN460">460</td><td class="line"> update_pending_events (xsmp);</td></tr>
+<tr class="codeline" data-linenumber="461"><td class="num" id="LN461">461</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="462"><td class="num" id="LN462">462</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="463"><td class="num" id="LN463">463</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="464"><td class="num" id="LN464">464</td><td class="line"> <span class='macro'>g_return_if_fail (xsmp-&gt;state == XSMP_STATE_INTERACT)<span class='macro_popup'>do { if ((xsmp-&gt;state == XSMP_STATE_INTERACT)) { } else { g_return_if_fail_warning<br> ("EggSMClient", ((const char*) (__func__)), "xsmp-&gt;state == XSMP_STATE_INTERACT"<br>); return; } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="465"><td class="num" id="LN465">465</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="466"><td class="num" id="LN466">466</td><td class="line"> g_debug (<span class='string_literal'>"Sending InteractDone(%s)"</span>, will_quit ? <span class='string_literal'>"False"</span> : <span class='string_literal'>"True"</span>);</td></tr>
+<tr class="codeline" data-linenumber="467"><td class="num" id="LN467">467</td><td class="line"> SmcInteractDone (xsmp-&gt;connection, !will_quit);</td></tr>
+<tr class="codeline" data-linenumber="468"><td class="num" id="LN468">468</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="469"><td class="num" id="LN469">469</td><td class="line"> <span class='keyword'>if</span> (will_quit &amp;&amp; xsmp-&gt;need_save_state)</td></tr>
+<tr class="codeline" data-linenumber="470"><td class="num" id="LN470">470</td><td class="line"> save_state (xsmp);</td></tr>
+<tr class="codeline" data-linenumber="471"><td class="num" id="LN471">471</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="472"><td class="num" id="LN472">472</td><td class="line"> g_debug (<span class='string_literal'>"Sending SaveYourselfDone(%s)"</span>, will_quit ? <span class='string_literal'>"True"</span> : <span class='string_literal'>"False"</span>);</td></tr>
+<tr class="codeline" data-linenumber="473"><td class="num" id="LN473">473</td><td class="line"> SmcSaveYourselfDone (xsmp-&gt;connection, will_quit);</td></tr>
+<tr class="codeline" data-linenumber="474"><td class="num" id="LN474">474</td><td class="line"> xsmp-&gt;state = XSMP_STATE_SAVE_YOURSELF_DONE;</td></tr>
+<tr class="codeline" data-linenumber="475"><td class="num" id="LN475">475</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="476"><td class="num" id="LN476">476</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="477"><td class="num" id="LN477">477</td><td class="line"><span class='keyword'>static</span> gboolean</td></tr>
+<tr class="codeline" data-linenumber="478"><td class="num" id="LN478">478</td><td class="line">sm_client_xsmp_end_session (EggSMClient *client,</td></tr>
+<tr class="codeline" data-linenumber="479"><td class="num" id="LN479">479</td><td class="line"> EggSMClientEndStyle style,</td></tr>
+<tr class="codeline" data-linenumber="480"><td class="num" id="LN480">480</td><td class="line"> gboolean request_confirmation)</td></tr>
+<tr class="codeline" data-linenumber="481"><td class="num" id="LN481">481</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="482"><td class="num" id="LN482">482</td><td class="line"> EggSMClientXSMP *xsmp = (EggSMClientXSMP *)client;</td></tr>
+<tr class="codeline" data-linenumber="483"><td class="num" id="LN483">483</td><td class="line"> <span class='keyword'>int</span> save_type;</td></tr>
+<tr class="codeline" data-linenumber="484"><td class="num" id="LN484">484</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="485"><td class="num" id="LN485">485</td><td class="line"> <span class='comment'>/* To end the session via XSMP, we have to send a</span></td></tr>
+<tr class="codeline" data-linenumber="486"><td class="num" id="LN486">486</td><td class="line"> <span class='comment'>* SaveYourselfRequest. We aren't allowed to do that if anything</span></td></tr>
+<tr class="codeline" data-linenumber="487"><td class="num" id="LN487">487</td><td class="line"> <span class='comment'>* else is going on, but we don't want to expose this fact to the</span></td></tr>
+<tr class="codeline" data-linenumber="488"><td class="num" id="LN488">488</td><td class="line"> <span class='comment'>* application. So we do our best to patch things up here...</span></td></tr>
+<tr class="codeline" data-linenumber="489"><td class="num" id="LN489">489</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="490"><td class="num" id="LN490">490</td><td class="line"> <span class='comment'>* In the worst case, this method might block for some length of</span></td></tr>
+<tr class="codeline" data-linenumber="491"><td class="num" id="LN491">491</td><td class="line"> <span class='comment'>* time in process_ice_messages, but the only time that code path is</span></td></tr>
+<tr class="codeline" data-linenumber="492"><td class="num" id="LN492">492</td><td class="line"> <span class='comment'>* honestly likely to get hit is if the application tries to end the</span></td></tr>
+<tr class="codeline" data-linenumber="493"><td class="num" id="LN493">493</td><td class="line"> <span class='comment'>* session as the very first thing it does, in which case it</span></td></tr>
+<tr class="codeline" data-linenumber="494"><td class="num" id="LN494">494</td><td class="line"> <span class='comment'>* probably won't actually block anyway. It's not worth gunking up</span></td></tr>
+<tr class="codeline" data-linenumber="495"><td class="num" id="LN495">495</td><td class="line"> <span class='comment'>* the API to try to deal nicely with the other 0.01% of cases where</span></td></tr>
+<tr class="codeline" data-linenumber="496"><td class="num" id="LN496">496</td><td class="line"> <span class='comment'>* this happens.</span></td></tr>
+<tr class="codeline" data-linenumber="497"><td class="num" id="LN497">497</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="498"><td class="num" id="LN498">498</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="499"><td class="num" id="LN499">499</td><td class="line"> <span class='keyword'>while</span> (xsmp-&gt;state != XSMP_STATE_IDLE ||</td></tr>
+<tr class="codeline" data-linenumber="500"><td class="num" id="LN500">500</td><td class="line"> xsmp-&gt;expecting_initial_save_yourself)</td></tr>
+<tr class="codeline" data-linenumber="501"><td class="num" id="LN501">501</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="502"><td class="num" id="LN502">502</td><td class="line"> <span class='comment'>/* If we're already shutting down, we don't need to do anything. */</span></td></tr>
+<tr class="codeline" data-linenumber="503"><td class="num" id="LN503">503</td><td class="line"> <span class='keyword'>if</span> (xsmp-&gt;shutting_down)</td></tr>
+<tr class="codeline" data-linenumber="504"><td class="num" id="LN504">504</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="505"><td class="num" id="LN505">505</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="506"><td class="num" id="LN506">506</td><td class="line"> <span class='keyword'>switch</span> (xsmp-&gt;state)</td></tr>
+<tr class="codeline" data-linenumber="507"><td class="num" id="LN507">507</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="508"><td class="num" id="LN508">508</td><td class="line"> <span class='keyword'>case</span> XSMP_STATE_CONNECTION_CLOSED:</td></tr>
+<tr class="codeline" data-linenumber="509"><td class="num" id="LN509">509</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="510"><td class="num" id="LN510">510</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="511"><td class="num" id="LN511">511</td><td class="line"> <span class='keyword'>case</span> XSMP_STATE_SAVE_YOURSELF:</td></tr>
+<tr class="codeline" data-linenumber="512"><td class="num" id="LN512">512</td><td class="line"> <span class='comment'>/* Trying to log out from the save_state callback? Whatever.</span></td></tr>
+<tr class="codeline" data-linenumber="513"><td class="num" id="LN513">513</td><td class="line"> <span class='comment'>* Abort the save_state.</span></td></tr>
+<tr class="codeline" data-linenumber="514"><td class="num" id="LN514">514</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="515"><td class="num" id="LN515">515</td><td class="line"> SmcSaveYourselfDone (xsmp-&gt;connection, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="516"><td class="num" id="LN516">516</td><td class="line"> xsmp-&gt;state = XSMP_STATE_SAVE_YOURSELF_DONE;</td></tr>
+<tr class="codeline" data-linenumber="517"><td class="num" id="LN517">517</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="518"><td class="num" id="LN518">518</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="519"><td class="num" id="LN519">519</td><td class="line"> <span class='keyword'>case</span> XSMP_STATE_INTERACT_REQUEST:</td></tr>
+<tr class="codeline" data-linenumber="520"><td class="num" id="LN520">520</td><td class="line"> <span class='keyword'>case</span> XSMP_STATE_INTERACT:</td></tr>
+<tr class="codeline" data-linenumber="521"><td class="num" id="LN521">521</td><td class="line"> <span class='keyword'>case</span> XSMP_STATE_SHUTDOWN_CANCELLED:</td></tr>
+<tr class="codeline" data-linenumber="522"><td class="num" id="LN522">522</td><td class="line"> <span class='comment'>/* Already in a shutdown-related state, just ignore</span></td></tr>
+<tr class="codeline" data-linenumber="523"><td class="num" id="LN523">523</td><td class="line"> <span class='comment'>* the new shutdown request...</span></td></tr>
+<tr class="codeline" data-linenumber="524"><td class="num" id="LN524">524</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="525"><td class="num" id="LN525">525</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="526"><td class="num" id="LN526">526</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="527"><td class="num" id="LN527">527</td><td class="line"> <span class='keyword'>case</span> XSMP_STATE_IDLE:</td></tr>
+<tr class="codeline" data-linenumber="528"><td class="num" id="LN528">528</td><td class="line"> <span class='keyword'>if</span> (xsmp-&gt;waiting_to_set_initial_properties)</td></tr>
+<tr class="codeline" data-linenumber="529"><td class="num" id="LN529">529</td><td class="line"> sm_client_xsmp_set_initial_properties (xsmp);</td></tr>
+<tr class="codeline" data-linenumber="530"><td class="num" id="LN530">530</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="531"><td class="num" id="LN531">531</td><td class="line"> <span class='keyword'>if</span> (!xsmp-&gt;expecting_initial_save_yourself)</td></tr>
+<tr class="codeline" data-linenumber="532"><td class="num" id="LN532">532</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="533"><td class="num" id="LN533">533</td><td class="line"> <span class='comment'>/* else fall through */</span></td></tr>
+<tr class="codeline" data-linenumber="534"><td class="num" id="LN534">534</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="535"><td class="num" id="LN535">535</td><td class="line"> <span class='keyword'>case</span> XSMP_STATE_SAVE_YOURSELF_DONE:</td></tr>
+<tr class="codeline" data-linenumber="536"><td class="num" id="LN536">536</td><td class="line"> <span class='comment'>/* We need to wait for some response from the server.*/</span></td></tr>
+<tr class="codeline" data-linenumber="537"><td class="num" id="LN537">537</td><td class="line"> process_ice_messages (SmcGetIceConnection (xsmp-&gt;connection));</td></tr>
+<tr class="codeline" data-linenumber="538"><td class="num" id="LN538">538</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="539"><td class="num" id="LN539">539</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="540"><td class="num" id="LN540">540</td><td class="line"> <span class='keyword'>default</span>:</td></tr>
+<tr class="codeline" data-linenumber="541"><td class="num" id="LN541">541</td><td class="line"> <span class='comment'>/* Hm... shouldn't happen */</span></td></tr>
+<tr class="codeline" data-linenumber="542"><td class="num" id="LN542">542</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="543"><td class="num" id="LN543">543</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="544"><td class="num" id="LN544">544</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="545"><td class="num" id="LN545">545</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="546"><td class="num" id="LN546">546</td><td class="line"> <span class='comment'>/* xfce4-session will do the wrong thing if we pass SmSaveGlobal and</span></td></tr>
+<tr class="codeline" data-linenumber="547"><td class="num" id="LN547">547</td><td class="line"> <span class='comment'>* the user chooses to save the session. But mate-session will do</span></td></tr>
+<tr class="codeline" data-linenumber="548"><td class="num" id="LN548">548</td><td class="line"> <span class='comment'>* the wrong thing if we pass SmSaveBoth and the user chooses NOT to</span></td></tr>
+<tr class="codeline" data-linenumber="549"><td class="num" id="LN549">549</td><td class="line"> <span class='comment'>* save the session... Sigh.</span></td></tr>
+<tr class="codeline" data-linenumber="550"><td class="num" id="LN550">550</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="551"><td class="num" id="LN551">551</td><td class="line"> <span class='keyword'>if</span> (!strcmp (SmcVendor (xsmp-&gt;connection), <span class='string_literal'>"xfce4-session"</span>))</td></tr>
+<tr class="codeline" data-linenumber="552"><td class="num" id="LN552">552</td><td class="line"> save_type = <span class='macro'>SmSaveBoth<span class='macro_popup'>2</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="553"><td class="num" id="LN553">553</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="554"><td class="num" id="LN554">554</td><td class="line"> save_type = <span class='macro'>SmSaveGlobal<span class='macro_popup'>0</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="555"><td class="num" id="LN555">555</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="556"><td class="num" id="LN556">556</td><td class="line"> g_debug (<span class='string_literal'>"Sending SaveYourselfRequest(SmSaveGlobal, Shutdown, SmInteractStyleAny, %sFast)"</span>, request_confirmation ? <span class='string_literal'>"!"</span> : <span class='string_literal'>""</span>);</td></tr>
+<tr class="codeline" data-linenumber="557"><td class="num" id="LN557">557</td><td class="line"> SmcRequestSaveYourself (xsmp-&gt;connection,</td></tr>
+<tr class="codeline" data-linenumber="558"><td class="num" id="LN558">558</td><td class="line"> save_type,</td></tr>
+<tr class="codeline" data-linenumber="559"><td class="num" id="LN559">559</td><td class="line"> <span class='macro'>True<span class='macro_popup'>1</span></span>, <span class='comment'>/* shutdown */</span></td></tr>
+<tr class="codeline" data-linenumber="560"><td class="num" id="LN560">560</td><td class="line"> <span class='macro'>SmInteractStyleAny<span class='macro_popup'>2</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="561"><td class="num" id="LN561">561</td><td class="line"> !request_confirmation, <span class='comment'>/* fast */</span></td></tr>
+<tr class="codeline" data-linenumber="562"><td class="num" id="LN562">562</td><td class="line"> <span class='macro'>True<span class='macro_popup'>1</span></span> <span class='comment'>/* global */</span>);</td></tr>
+<tr class="codeline" data-linenumber="563"><td class="num" id="LN563">563</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="564"><td class="num" id="LN564">564</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="565"><td class="num" id="LN565">565</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="566"><td class="num" id="LN566">566</td><td class="line"><span class='keyword'>static</span> gboolean</td></tr>
+<tr class="codeline" data-linenumber="567"><td class="num" id="LN567">567</td><td class="line">idle_do_pending_events (gpointer data)</td></tr>
+<tr class="codeline" data-linenumber="568"><td class="num" id="LN568">568</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="569"><td class="num" id="LN569">569</td><td class="line"> EggSMClientXSMP *xsmp = data;</td></tr>
+<tr class="codeline" data-linenumber="570"><td class="num" id="LN570">570</td><td class="line"> EggSMClient *client = data;</td></tr>
+<tr class="codeline" data-linenumber="571"><td class="num" id="LN571">571</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="572"><td class="num" id="LN572">572</td><td class="line"> xsmp-&gt;idle = 0;</td></tr>
+<tr class="codeline" data-linenumber="573"><td class="num" id="LN573">573</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="574"><td class="num" id="LN574">574</td><td class="line"> <span class='keyword'>if</span> (xsmp-&gt;waiting_to_emit_quit)</td></tr>
+<tr class="codeline" data-linenumber="575"><td class="num" id="LN575">575</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="576"><td class="num" id="LN576">576</td><td class="line"> xsmp-&gt;waiting_to_emit_quit = <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="577"><td class="num" id="LN577">577</td><td class="line"> egg_sm_client_quit (client);</td></tr>
+<tr class="codeline" data-linenumber="578"><td class="num" id="LN578">578</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="579"><td class="num" id="LN579">579</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="580"><td class="num" id="LN580">580</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="581"><td class="num" id="LN581">581</td><td class="line"> <span class='keyword'>if</span> (xsmp-&gt;waiting_to_emit_quit_cancelled)</td></tr>
+<tr class="codeline" data-linenumber="582"><td class="num" id="LN582">582</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="583"><td class="num" id="LN583">583</td><td class="line"> xsmp-&gt;waiting_to_emit_quit_cancelled = <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="584"><td class="num" id="LN584">584</td><td class="line"> egg_sm_client_quit_cancelled (client);</td></tr>
+<tr class="codeline" data-linenumber="585"><td class="num" id="LN585">585</td><td class="line"> xsmp-&gt;state = XSMP_STATE_IDLE;</td></tr>
+<tr class="codeline" data-linenumber="586"><td class="num" id="LN586">586</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="587"><td class="num" id="LN587">587</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="588"><td class="num" id="LN588">588</td><td class="line"> <span class='keyword'>if</span> (xsmp-&gt;waiting_to_save_myself)</td></tr>
+<tr class="codeline" data-linenumber="589"><td class="num" id="LN589">589</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="590"><td class="num" id="LN590">590</td><td class="line"> xsmp-&gt;waiting_to_save_myself = <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="591"><td class="num" id="LN591">591</td><td class="line"> do_save_yourself (xsmp);</td></tr>
+<tr class="codeline" data-linenumber="592"><td class="num" id="LN592">592</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="593"><td class="num" id="LN593">593</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="594"><td class="num" id="LN594">594</td><td class="line">out:</td></tr>
+<tr class="codeline" data-linenumber="595"><td class="num" id="LN595">595</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="596"><td class="num" id="LN596">596</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="597"><td class="num" id="LN597">597</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="598"><td class="num" id="LN598">598</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="599"><td class="num" id="LN599">599</td><td class="line">update_pending_events (EggSMClientXSMP *xsmp)</td></tr>
+<tr class="codeline" data-linenumber="600"><td class="num" id="LN600">600</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="601"><td class="num" id="LN601">601</td><td class="line"> gboolean want_idle =</td></tr>
+<tr class="codeline" data-linenumber="602"><td class="num" id="LN602">602</td><td class="line"> xsmp-&gt;waiting_to_emit_quit ||</td></tr>
+<tr class="codeline" data-linenumber="603"><td class="num" id="LN603">603</td><td class="line"> xsmp-&gt;waiting_to_emit_quit_cancelled ||</td></tr>
+<tr class="codeline" data-linenumber="604"><td class="num" id="LN604">604</td><td class="line"> xsmp-&gt;waiting_to_save_myself;</td></tr>
+<tr class="codeline" data-linenumber="605"><td class="num" id="LN605">605</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="606"><td class="num" id="LN606">606</td><td class="line"> <span class='keyword'>if</span> (want_idle)</td></tr>
+<tr class="codeline" data-linenumber="607"><td class="num" id="LN607">607</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="608"><td class="num" id="LN608">608</td><td class="line"> <span class='keyword'>if</span> (xsmp-&gt;idle == 0)</td></tr>
+<tr class="codeline" data-linenumber="609"><td class="num" id="LN609">609</td><td class="line"> xsmp-&gt;idle = g_idle_add (idle_do_pending_events, xsmp);</td></tr>
+<tr class="codeline" data-linenumber="610"><td class="num" id="LN610">610</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="611"><td class="num" id="LN611">611</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="612"><td class="num" id="LN612">612</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="613"><td class="num" id="LN613">613</td><td class="line"> <span class='keyword'>if</span> (xsmp-&gt;idle != 0)</td></tr>
+<tr class="codeline" data-linenumber="614"><td class="num" id="LN614">614</td><td class="line"> g_source_remove (xsmp-&gt;idle);</td></tr>
+<tr class="codeline" data-linenumber="615"><td class="num" id="LN615">615</td><td class="line"> xsmp-&gt;idle = 0;</td></tr>
+<tr class="codeline" data-linenumber="616"><td class="num" id="LN616">616</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="617"><td class="num" id="LN617">617</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="618"><td class="num" id="LN618">618</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="619"><td class="num" id="LN619">619</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="620"><td class="num" id="LN620">620</td><td class="line">fix_broken_state (EggSMClientXSMP *xsmp, <span class='keyword'>const</span> <span class='keyword'>char</span> *message,</td></tr>
+<tr class="codeline" data-linenumber="621"><td class="num" id="LN621">621</td><td class="line"> gboolean send_interact_done,</td></tr>
+<tr class="codeline" data-linenumber="622"><td class="num" id="LN622">622</td><td class="line"> gboolean send_save_yourself_done)</td></tr>
+<tr class="codeline" data-linenumber="623"><td class="num" id="LN623">623</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="624"><td class="num" id="LN624">624</td><td class="line"> g_warning (<span class='string_literal'>"Received XSMP %s message in state %s: client or server error"</span>,</td></tr>
+<tr class="codeline" data-linenumber="625"><td class="num" id="LN625">625</td><td class="line"> message, <span class='macro'>EGG_SM_CLIENT_XSMP_STATE (xsmp)<span class='macro_popup'>(state_names[(xsmp)-&gt;state])</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="626"><td class="num" id="LN626">626</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="627"><td class="num" id="LN627">627</td><td class="line"> <span class='comment'>/* Forget any pending SaveYourself plans we had */</span></td></tr>
+<tr class="codeline" data-linenumber="628"><td class="num" id="LN628">628</td><td class="line"> xsmp-&gt;waiting_to_save_myself = <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="629"><td class="num" id="LN629">629</td><td class="line"> update_pending_events (xsmp);</td></tr>
+<tr class="codeline" data-linenumber="630"><td class="num" id="LN630">630</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="631"><td class="num" id="LN631">631</td><td class="line"> <span class='keyword'>if</span> (send_interact_done)</td></tr>
+<tr class="codeline" data-linenumber="632"><td class="num" id="LN632">632</td><td class="line"> SmcInteractDone (xsmp-&gt;connection, <span class='macro'>False<span class='macro_popup'>0</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="633"><td class="num" id="LN633">633</td><td class="line"> <span class='keyword'>if</span> (send_save_yourself_done)</td></tr>
+<tr class="codeline" data-linenumber="634"><td class="num" id="LN634">634</td><td class="line"> SmcSaveYourselfDone (xsmp-&gt;connection, <span class='macro'>True<span class='macro_popup'>1</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="635"><td class="num" id="LN635">635</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="636"><td class="num" id="LN636">636</td><td class="line"> xsmp-&gt;state = send_save_yourself_done ? XSMP_STATE_SAVE_YOURSELF_DONE : XSMP_STATE_IDLE;</td></tr>
+<tr class="codeline" data-linenumber="637"><td class="num" id="LN637">637</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="638"><td class="num" id="LN638">638</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="639"><td class="num" id="LN639">639</td><td class="line"><span class='comment'>/* SM callbacks */</span></td></tr>
+<tr class="codeline" data-linenumber="640"><td class="num" id="LN640">640</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="641"><td class="num" id="LN641">641</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="642"><td class="num" id="LN642">642</td><td class="line">xsmp_save_yourself (SmcConn smc_conn,</td></tr>
+<tr class="codeline" data-linenumber="643"><td class="num" id="LN643">643</td><td class="line"> SmPointer client_data,</td></tr>
+<tr class="codeline" data-linenumber="644"><td class="num" id="LN644">644</td><td class="line"> <span class='keyword'>int</span> save_type,</td></tr>
+<tr class="codeline" data-linenumber="645"><td class="num" id="LN645">645</td><td class="line"> <span class='macro'>Bool<span class='macro_popup'>int</span></span> shutdown,</td></tr>
+<tr class="codeline" data-linenumber="646"><td class="num" id="LN646">646</td><td class="line"> <span class='keyword'>int</span> interact_style,</td></tr>
+<tr class="codeline" data-linenumber="647"><td class="num" id="LN647">647</td><td class="line"> <span class='macro'>Bool<span class='macro_popup'>int</span></span> fast)</td></tr>
+<tr class="codeline" data-linenumber="648"><td class="num" id="LN648">648</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="649"><td class="num" id="LN649">649</td><td class="line"> EggSMClientXSMP *xsmp = client_data;</td></tr>
+<tr class="codeline" data-linenumber="650"><td class="num" id="LN650">650</td><td class="line"> gboolean wants_quit_requested;</td></tr>
+<tr class="codeline" data-linenumber="651"><td class="num" id="LN651">651</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="652"><td class="num" id="LN652">652</td><td class="line"> g_debug (<span class='string_literal'>"Received SaveYourself(%s, %s, %s, %s) in state %s"</span>,</td></tr>
+<tr class="codeline" data-linenumber="653"><td class="num" id="LN653">653</td><td class="line"> save_type == <span class='macro'>SmSaveLocal<span class='macro_popup'>1</span></span> ? <span class='string_literal'>"SmSaveLocal"</span> :</td></tr>
+<tr class="codeline" data-linenumber="654"><td class="num" id="LN654">654</td><td class="line"> save_type == <span class='macro'>SmSaveGlobal<span class='macro_popup'>0</span></span> ? <span class='string_literal'>"SmSaveGlobal"</span> : <span class='string_literal'>"SmSaveBoth"</span>,</td></tr>
+<tr class="codeline" data-linenumber="655"><td class="num" id="LN655">655</td><td class="line"> shutdown ? <span class='string_literal'>"Shutdown"</span> : <span class='string_literal'>"!Shutdown"</span>,</td></tr>
+<tr class="codeline" data-linenumber="656"><td class="num" id="LN656">656</td><td class="line"> interact_style == <span class='macro'>SmInteractStyleAny<span class='macro_popup'>2</span></span> ? <span class='string_literal'>"SmInteractStyleAny"</span> :</td></tr>
+<tr class="codeline" data-linenumber="657"><td class="num" id="LN657">657</td><td class="line"> interact_style == <span class='macro'>SmInteractStyleErrors<span class='macro_popup'>1</span></span> ? <span class='string_literal'>"SmInteractStyleErrors"</span> :</td></tr>
+<tr class="codeline" data-linenumber="658"><td class="num" id="LN658">658</td><td class="line"> <span class='string_literal'>"SmInteractStyleNone"</span>, fast ? <span class='string_literal'>"Fast"</span> : <span class='string_literal'>"!Fast"</span>,</td></tr>
+<tr class="codeline" data-linenumber="659"><td class="num" id="LN659">659</td><td class="line"> <span class='macro'>EGG_SM_CLIENT_XSMP_STATE (xsmp)<span class='macro_popup'>(state_names[(xsmp)-&gt;state])</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="660"><td class="num" id="LN660">660</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="661"><td class="num" id="LN661">661</td><td class="line"> <span class='keyword'>if</span> (xsmp-&gt;state != XSMP_STATE_IDLE &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="662"><td class="num" id="LN662">662</td><td class="line"> xsmp-&gt;state != XSMP_STATE_SHUTDOWN_CANCELLED)</td></tr>
+<tr class="codeline" data-linenumber="663"><td class="num" id="LN663">663</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="664"><td class="num" id="LN664">664</td><td class="line"> fix_broken_state (xsmp, <span class='string_literal'>"SaveYourself"</span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="665"><td class="num" id="LN665">665</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="666"><td class="num" id="LN666">666</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="667"><td class="num" id="LN667">667</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="668"><td class="num" id="LN668">668</td><td class="line"> <span class='keyword'>if</span> (xsmp-&gt;waiting_to_set_initial_properties)</td></tr>
+<tr class="codeline" data-linenumber="669"><td class="num" id="LN669">669</td><td class="line"> sm_client_xsmp_set_initial_properties (xsmp);</td></tr>
+<tr class="codeline" data-linenumber="670"><td class="num" id="LN670">670</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="671"><td class="num" id="LN671">671</td><td class="line"> <span class='comment'>/* If this is the initial SaveYourself, ignore it; we've already set</span></td></tr>
+<tr class="codeline" data-linenumber="672"><td class="num" id="LN672">672</td><td class="line"> <span class='comment'>* properties and there's no reason to actually save state too.</span></td></tr>
+<tr class="codeline" data-linenumber="673"><td class="num" id="LN673">673</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="674"><td class="num" id="LN674">674</td><td class="line"> <span class='keyword'>if</span> (xsmp-&gt;expecting_initial_save_yourself)</td></tr>
+<tr class="codeline" data-linenumber="675"><td class="num" id="LN675">675</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="676"><td class="num" id="LN676">676</td><td class="line"> xsmp-&gt;expecting_initial_save_yourself = <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="677"><td class="num" id="LN677">677</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="678"><td class="num" id="LN678">678</td><td class="line"> <span class='keyword'>if</span> (save_type == <span class='macro'>SmSaveLocal<span class='macro_popup'>1</span></span> &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="679"><td class="num" id="LN679">679</td><td class="line"> interact_style == <span class='macro'>SmInteractStyleNone<span class='macro_popup'>0</span></span> &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="680"><td class="num" id="LN680">680</td><td class="line"> !shutdown &amp;&amp; !fast)</td></tr>
+<tr class="codeline" data-linenumber="681"><td class="num" id="LN681">681</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="682"><td class="num" id="LN682">682</td><td class="line"> g_debug (<span class='string_literal'>"Sending SaveYourselfDone(True) for initial SaveYourself"</span>);</td></tr>
+<tr class="codeline" data-linenumber="683"><td class="num" id="LN683">683</td><td class="line"> SmcSaveYourselfDone (xsmp-&gt;connection, <span class='macro'>True<span class='macro_popup'>1</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="684"><td class="num" id="LN684">684</td><td class="line"> <span class='comment'>/* As explained in the comment at the end of</span></td></tr>
+<tr class="codeline" data-linenumber="685"><td class="num" id="LN685">685</td><td class="line"> <span class='comment'>* do_save_yourself(), SAVE_YOURSELF_DONE is the correct</span></td></tr>
+<tr class="codeline" data-linenumber="686"><td class="num" id="LN686">686</td><td class="line"> <span class='comment'>* state here, not IDLE.</span></td></tr>
+<tr class="codeline" data-linenumber="687"><td class="num" id="LN687">687</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="688"><td class="num" id="LN688">688</td><td class="line"> xsmp-&gt;state = XSMP_STATE_SAVE_YOURSELF_DONE;</td></tr>
+<tr class="codeline" data-linenumber="689"><td class="num" id="LN689">689</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="690"><td class="num" id="LN690">690</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="691"><td class="num" id="LN691">691</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="692"><td class="num" id="LN692">692</td><td class="line"> g_warning (<span class='string_literal'>"First SaveYourself was not the expected one!"</span>);</td></tr>
+<tr class="codeline" data-linenumber="693"><td class="num" id="LN693">693</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="694"><td class="num" id="LN694">694</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="695"><td class="num" id="LN695">695</td><td class="line"> <span class='comment'>/* Even ignoring the "fast" flag completely, there are still 18</span></td></tr>
+<tr class="codeline" data-linenumber="696"><td class="num" id="LN696">696</td><td class="line"> <span class='comment'>* different combinations of save_type, shutdown and interact_style.</span></td></tr>
+<tr class="codeline" data-linenumber="697"><td class="num" id="LN697">697</td><td class="line"> <span class='comment'>* We interpret them as follows:</span></td></tr>
+<tr class="codeline" data-linenumber="698"><td class="num" id="LN698">698</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="699"><td class="num" id="LN699">699</td><td class="line"> <span class='comment'>* Type Shutdown Interact Interpretation</span></td></tr>
+<tr class="codeline" data-linenumber="700"><td class="num" id="LN700">700</td><td class="line"> <span class='comment'>* G F A/E/N do nothing (1)</span></td></tr>
+<tr class="codeline" data-linenumber="701"><td class="num" id="LN701">701</td><td class="line"> <span class='comment'>* G T N do nothing (1)*</span></td></tr>
+<tr class="codeline" data-linenumber="702"><td class="num" id="LN702">702</td><td class="line"> <span class='comment'>* G T A/E quit_requested (2)</span></td></tr>
+<tr class="codeline" data-linenumber="703"><td class="num" id="LN703">703</td><td class="line"> <span class='comment'>* L/B F A/E/N save_state (3)</span></td></tr>
+<tr class="codeline" data-linenumber="704"><td class="num" id="LN704">704</td><td class="line"> <span class='comment'>* L/B T N save_state (3)*</span></td></tr>
+<tr class="codeline" data-linenumber="705"><td class="num" id="LN705">705</td><td class="line"> <span class='comment'>* L/B T A/E quit_requested, then save_state (4)</span></td></tr>
+<tr class="codeline" data-linenumber="706"><td class="num" id="LN706">706</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="707"><td class="num" id="LN707">707</td><td class="line"> <span class='comment'>* 1. Do nothing, because the SM asked us to do something</span></td></tr>
+<tr class="codeline" data-linenumber="708"><td class="num" id="LN708">708</td><td class="line"> <span class='comment'>* uninteresting (save open files, but then don't quit</span></td></tr>
+<tr class="codeline" data-linenumber="709"><td class="num" id="LN709">709</td><td class="line"> <span class='comment'>* afterward) or rude (save open files without asking the user</span></td></tr>
+<tr class="codeline" data-linenumber="710"><td class="num" id="LN710">710</td><td class="line"> <span class='comment'>* for confirmation).</span></td></tr>
+<tr class="codeline" data-linenumber="711"><td class="num" id="LN711">711</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="712"><td class="num" id="LN712">712</td><td class="line"> <span class='comment'>* 2. Request interaction and then emit ::quit_requested. This</span></td></tr>
+<tr class="codeline" data-linenumber="713"><td class="num" id="LN713">713</td><td class="line"> <span class='comment'>* perhaps isn't quite correct for the SmInteractStyleErrors</span></td></tr>
+<tr class="codeline" data-linenumber="714"><td class="num" id="LN714">714</td><td class="line"> <span class='comment'>* case, but we don't care.</span></td></tr>
+<tr class="codeline" data-linenumber="715"><td class="num" id="LN715">715</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="716"><td class="num" id="LN716">716</td><td class="line"> <span class='comment'>* 3. Emit ::save_state. The SmSaveBoth SaveYourselfs in these</span></td></tr>
+<tr class="codeline" data-linenumber="717"><td class="num" id="LN717">717</td><td class="line"> <span class='comment'>* rows essentially get demoted to SmSaveLocal, because their</span></td></tr>
+<tr class="codeline" data-linenumber="718"><td class="num" id="LN718">718</td><td class="line"> <span class='comment'>* Global halves correspond to "do nothing".</span></td></tr>
+<tr class="codeline" data-linenumber="719"><td class="num" id="LN719">719</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="720"><td class="num" id="LN720">720</td><td class="line"> <span class='comment'>* 4. Request interaction, emit ::quit_requested, and then emit</span></td></tr>
+<tr class="codeline" data-linenumber="721"><td class="num" id="LN721">721</td><td class="line"> <span class='comment'>* ::save_state after interacting. This is the SmSaveBoth</span></td></tr>
+<tr class="codeline" data-linenumber="722"><td class="num" id="LN722">722</td><td class="line"> <span class='comment'>* equivalent of #2, but we also promote SmSaveLocal shutdown</span></td></tr>
+<tr class="codeline" data-linenumber="723"><td class="num" id="LN723">723</td><td class="line"> <span class='comment'>* SaveYourselfs to SmSaveBoth here, because we want to give</span></td></tr>
+<tr class="codeline" data-linenumber="724"><td class="num" id="LN724">724</td><td class="line"> <span class='comment'>* the user a chance to save open files before quitting.</span></td></tr>
+<tr class="codeline" data-linenumber="725"><td class="num" id="LN725">725</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="726"><td class="num" id="LN726">726</td><td class="line"> <span class='comment'>* (* It would be nice if we could do something useful when the</span></td></tr>
+<tr class="codeline" data-linenumber="727"><td class="num" id="LN727">727</td><td class="line"> <span class='comment'>* session manager sends a SaveYourself with shutdown True and</span></td></tr>
+<tr class="codeline" data-linenumber="728"><td class="num" id="LN728">728</td><td class="line"> <span class='comment'>* SmInteractStyleNone. But we can't, so we just pretend it didn't</span></td></tr>
+<tr class="codeline" data-linenumber="729"><td class="num" id="LN729">729</td><td class="line"> <span class='comment'>* even tell us it was shutting down. The docs for ::quit mention</span></td></tr>
+<tr class="codeline" data-linenumber="730"><td class="num" id="LN730">730</td><td class="line"> <span class='comment'>* that it might not always be preceded by ::quit_requested.)</span></td></tr>
+<tr class="codeline" data-linenumber="731"><td class="num" id="LN731">731</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="732"><td class="num" id="LN732">732</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="733"><td class="num" id="LN733">733</td><td class="line"> <span class='comment'>/* As an optimization, we don't actually request interaction and</span></td></tr>
+<tr class="codeline" data-linenumber="734"><td class="num" id="LN734">734</td><td class="line"> <span class='comment'>* emit ::quit_requested if the application isn't listening to the</span></td></tr>
+<tr class="codeline" data-linenumber="735"><td class="num" id="LN735">735</td><td class="line"> <span class='comment'>* signal.</span></td></tr>
+<tr class="codeline" data-linenumber="736"><td class="num" id="LN736">736</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="737"><td class="num" id="LN737">737</td><td class="line"> wants_quit_requested = g_signal_has_handler_pending (xsmp, g_signal_lookup (<span class='string_literal'>"quit_requested"</span>, <span class='macro'>EGG_TYPE_SM_CLIENT<span class='macro_popup'>(egg_sm_client_get_type ())</span></span>), 0, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="738"><td class="num" id="LN738">738</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="739"><td class="num" id="LN739">739</td><td class="line"> xsmp-&gt;need_save_state = (save_type != <span class='macro'>SmSaveGlobal<span class='macro_popup'>0</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="740"><td class="num" id="LN740">740</td><td class="line"> xsmp-&gt;need_quit_requested = (shutdown &amp;&amp; wants_quit_requested &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="741"><td class="num" id="LN741">741</td><td class="line"> interact_style != <span class='macro'>SmInteractStyleNone<span class='macro_popup'>0</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="742"><td class="num" id="LN742">742</td><td class="line"> xsmp-&gt;interact_errors = (interact_style == <span class='macro'>SmInteractStyleErrors<span class='macro_popup'>1</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="743"><td class="num" id="LN743">743</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="744"><td class="num" id="LN744">744</td><td class="line"> xsmp-&gt;shutting_down = shutdown;</td></tr>
+<tr class="codeline" data-linenumber="745"><td class="num" id="LN745">745</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="746"><td class="num" id="LN746">746</td><td class="line"> do_save_yourself (xsmp);</td></tr>
+<tr class="codeline" data-linenumber="747"><td class="num" id="LN747">747</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="748"><td class="num" id="LN748">748</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="749"><td class="num" id="LN749">749</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="750"><td class="num" id="LN750">750</td><td class="line">do_save_yourself (EggSMClientXSMP *xsmp)</td></tr>
+<tr class="codeline" data-linenumber="751"><td class="num" id="LN751">751</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="752"><td class="num" id="LN752">752</td><td class="line"> <span class='keyword'>if</span> (xsmp-&gt;state == XSMP_STATE_SHUTDOWN_CANCELLED)</td></tr>
+<tr class="codeline" data-linenumber="753"><td class="num" id="LN753">753</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="754"><td class="num" id="LN754">754</td><td class="line"> <span class='comment'>/* The SM cancelled a previous SaveYourself, but we haven't yet</span></td></tr>
+<tr class="codeline" data-linenumber="755"><td class="num" id="LN755">755</td><td class="line"> <span class='comment'>* had a chance to tell the application, so we can't start</span></td></tr>
+<tr class="codeline" data-linenumber="756"><td class="num" id="LN756">756</td><td class="line"> <span class='comment'>* processing this SaveYourself yet.</span></td></tr>
+<tr class="codeline" data-linenumber="757"><td class="num" id="LN757">757</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="758"><td class="num" id="LN758">758</td><td class="line"> xsmp-&gt;waiting_to_save_myself = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="759"><td class="num" id="LN759">759</td><td class="line"> update_pending_events (xsmp);</td></tr>
+<tr class="codeline" data-linenumber="760"><td class="num" id="LN760">760</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="761"><td class="num" id="LN761">761</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="762"><td class="num" id="LN762">762</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="763"><td class="num" id="LN763">763</td><td class="line"> <span class='keyword'>if</span> (xsmp-&gt;need_quit_requested)</td></tr>
+<tr class="codeline" data-linenumber="764"><td class="num" id="LN764">764</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="765"><td class="num" id="LN765">765</td><td class="line"> xsmp-&gt;state = XSMP_STATE_INTERACT_REQUEST;</td></tr>
+<tr class="codeline" data-linenumber="766"><td class="num" id="LN766">766</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="767"><td class="num" id="LN767">767</td><td class="line"> g_debug (<span class='string_literal'>"Sending InteractRequest(%s)"</span>,</td></tr>
+<tr class="codeline" data-linenumber="768"><td class="num" id="LN768">768</td><td class="line"> xsmp-&gt;interact_errors ? <span class='string_literal'>"Error"</span> : <span class='string_literal'>"Normal"</span>);</td></tr>
+<tr class="codeline" data-linenumber="769"><td class="num" id="LN769">769</td><td class="line"> SmcInteractRequest (xsmp-&gt;connection,</td></tr>
+<tr class="codeline" data-linenumber="770"><td class="num" id="LN770">770</td><td class="line"> xsmp-&gt;interact_errors ? <span class='macro'>SmDialogError<span class='macro_popup'>0</span></span> : <span class='macro'>SmDialogNormal<span class='macro_popup'>1</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="771"><td class="num" id="LN771">771</td><td class="line"> xsmp_interact,</td></tr>
+<tr class="codeline" data-linenumber="772"><td class="num" id="LN772">772</td><td class="line"> xsmp);</td></tr>
+<tr class="codeline" data-linenumber="773"><td class="num" id="LN773">773</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="774"><td class="num" id="LN774">774</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="775"><td class="num" id="LN775">775</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="776"><td class="num" id="LN776">776</td><td class="line"> <span class='keyword'>if</span> (xsmp-&gt;need_save_state)</td></tr>
+<tr class="codeline" data-linenumber="777"><td class="num" id="LN777">777</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="778"><td class="num" id="LN778">778</td><td class="line"> save_state (xsmp);</td></tr>
+<tr class="codeline" data-linenumber="779"><td class="num" id="LN779">779</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="780"><td class="num" id="LN780">780</td><td class="line"> <span class='comment'>/* Though unlikely, the client could have been disconnected</span></td></tr>
+<tr class="codeline" data-linenumber="781"><td class="num" id="LN781">781</td><td class="line"> <span class='comment'>* while the application was saving its state.</span></td></tr>
+<tr class="codeline" data-linenumber="782"><td class="num" id="LN782">782</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="783"><td class="num" id="LN783">783</td><td class="line"> <span class='keyword'>if</span> (!xsmp-&gt;connection)</td></tr>
+<tr class="codeline" data-linenumber="784"><td class="num" id="LN784">784</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="785"><td class="num" id="LN785">785</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="786"><td class="num" id="LN786">786</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="787"><td class="num" id="LN787">787</td><td class="line"> g_debug (<span class='string_literal'>"Sending SaveYourselfDone(True)"</span>);</td></tr>
+<tr class="codeline" data-linenumber="788"><td class="num" id="LN788">788</td><td class="line"> SmcSaveYourselfDone (xsmp-&gt;connection, <span class='macro'>True<span class='macro_popup'>1</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="789"><td class="num" id="LN789">789</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="790"><td class="num" id="LN790">790</td><td class="line"> <span class='comment'>/* The client state diagram in the XSMP spec says that after a</span></td></tr>
+<tr class="codeline" data-linenumber="791"><td class="num" id="LN791">791</td><td class="line"> <span class='comment'>* non-shutdown SaveYourself, we go directly back to "idle". But</span></td></tr>
+<tr class="codeline" data-linenumber="792"><td class="num" id="LN792">792</td><td class="line"> <span class='comment'>* everything else in both the XSMP spec and the libSM docs</span></td></tr>
+<tr class="codeline" data-linenumber="793"><td class="num" id="LN793">793</td><td class="line"> <span class='comment'>* disagrees.</span></td></tr>
+<tr class="codeline" data-linenumber="794"><td class="num" id="LN794">794</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="795"><td class="num" id="LN795">795</td><td class="line"> xsmp-&gt;state = XSMP_STATE_SAVE_YOURSELF_DONE;</td></tr>
+<tr class="codeline" data-linenumber="796"><td class="num" id="LN796">796</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="797"><td class="num" id="LN797">797</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="798"><td class="num" id="LN798">798</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="799"><td class="num" id="LN799">799</td><td class="line">save_state (EggSMClientXSMP *xsmp)</td></tr>
+<tr class="codeline" data-linenumber="800"><td class="num" id="LN800">800</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="801"><td class="num" id="LN801">801</td><td class="line"> GKeyFile *state_file;</td></tr>
+<tr class="codeline" data-linenumber="802"><td class="num" id="LN802">802</td><td class="line"> <span class='keyword'>char</span> *state_file_path, *data;</td></tr>
+<tr class="codeline" data-linenumber="803"><td class="num" id="LN803">803</td><td class="line"> EggDesktopFile *desktop_file;</td></tr>
+<tr class="codeline" data-linenumber="804"><td class="num" id="LN804">804</td><td class="line"> GPtrArray *restart, *discard;</td></tr>
+<tr class="codeline" data-linenumber="805"><td class="num" id="LN805">805</td><td class="line"> <span class='keyword'>int</span> offset, fd;</td></tr>
+<tr class="codeline" data-linenumber="806"><td class="num" id="LN806">806</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="807"><td class="num" id="LN807">807</td><td class="line"> <span class='comment'>/* We set xsmp-&gt;state before emitting save_state, but our caller is</span></td></tr>
+<tr class="codeline" data-linenumber="808"><td class="num" id="LN808">808</td><td class="line"> <span class='comment'>* responsible for setting it back afterward.</span></td></tr>
+<tr class="codeline" data-linenumber="809"><td class="num" id="LN809">809</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="810"><td class="num" id="LN810">810</td><td class="line"> xsmp-&gt;state = XSMP_STATE_SAVE_YOURSELF;</td></tr>
+<tr class="codeline" data-linenumber="811"><td class="num" id="LN811">811</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="812"><td class="num" id="LN812">812</td><td class="line"> state_file = egg_sm_client_save_state ((EggSMClient *)xsmp);</td></tr>
+<tr class="codeline" data-linenumber="813"><td class="num" id="LN813">813</td><td class="line"> <span class='keyword'>if</span> (!state_file)</td></tr>
+<tr class="codeline" data-linenumber="814"><td class="num" id="LN814">814</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="815"><td class="num" id="LN815">815</td><td class="line"> restart = generate_command (xsmp-&gt;restart_command, xsmp-&gt;client_id, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="816"><td class="num" id="LN816">816</td><td class="line"> set_properties (xsmp,</td></tr>
+<tr class="codeline" data-linenumber="817"><td class="num" id="LN817">817</td><td class="line"> ptrarray_prop (<span class='macro'>SmRestartCommand<span class='macro_popup'>"RestartCommand"</span></span>, restart),</td></tr>
+<tr class="codeline" data-linenumber="818"><td class="num" id="LN818">818</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="819"><td class="num" id="LN819">819</td><td class="line"> g_ptr_array_free (restart, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="820"><td class="num" id="LN820">820</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="821"><td class="num" id="LN821">821</td><td class="line"> <span class='keyword'>if</span> (xsmp-&gt;set_discard_command)</td></tr>
+<tr class="codeline" data-linenumber="822"><td class="num" id="LN822">822</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="823"><td class="num" id="LN823">823</td><td class="line"> discard = generate_command (xsmp-&gt;discard_command, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="824"><td class="num" id="LN824">824</td><td class="line"> set_properties (xsmp,</td></tr>
+<tr class="codeline" data-linenumber="825"><td class="num" id="LN825">825</td><td class="line"> ptrarray_prop (<span class='macro'>SmDiscardCommand<span class='macro_popup'>"DiscardCommand"</span></span>, discard),</td></tr>
+<tr class="codeline" data-linenumber="826"><td class="num" id="LN826">826</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="827"><td class="num" id="LN827">827</td><td class="line"> g_ptr_array_free (discard, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="828"><td class="num" id="LN828">828</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="829"><td class="num" id="LN829">829</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="830"><td class="num" id="LN830">830</td><td class="line"> delete_properties (xsmp, <span class='macro'>SmDiscardCommand<span class='macro_popup'>"DiscardCommand"</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="831"><td class="num" id="LN831">831</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="832"><td class="num" id="LN832">832</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="833"><td class="num" id="LN833">833</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="834"><td class="num" id="LN834">834</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="835"><td class="num" id="LN835">835</td><td class="line"> desktop_file = egg_get_desktop_file ();</td></tr>
+<tr class="codeline" data-linenumber="836"><td class="num" id="LN836">836</td><td class="line"> <span class='keyword'>if</span> (desktop_file)</td></tr>
+<tr class="codeline" data-linenumber="837"><td class="num" id="LN837">837</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="838"><td class="num" id="LN838">838</td><td class="line"> GKeyFile *merged_file;</td></tr>
+<tr class="codeline" data-linenumber="839"><td class="num" id="LN839">839</td><td class="line"> <span class='keyword'>char</span> *desktop_file_path;</td></tr>
+<tr class="codeline" data-linenumber="840"><td class="num" id="LN840">840</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="841"><td class="num" id="LN841">841</td><td class="line"> merged_file = g_key_file_new ();</td></tr>
+<tr class="codeline" data-linenumber="842"><td class="num" id="LN842">842</td><td class="line"> desktop_file_path =</td></tr>
+<tr class="codeline" data-linenumber="843"><td class="num" id="LN843">843</td><td class="line"> g_filename_from_uri (egg_desktop_file_get_source (desktop_file),</td></tr>
+<tr class="codeline" data-linenumber="844"><td class="num" id="LN844">844</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="845"><td class="num" id="LN845">845</td><td class="line"> <span class='keyword'>if</span> (desktop_file_path &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="846"><td class="num" id="LN846">846</td><td class="line"> g_key_file_load_from_file (merged_file, desktop_file_path,</td></tr>
+<tr class="codeline" data-linenumber="847"><td class="num" id="LN847">847</td><td class="line"> G_KEY_FILE_KEEP_COMMENTS |</td></tr>
+<tr class="codeline" data-linenumber="848"><td class="num" id="LN848">848</td><td class="line"> G_KEY_FILE_KEEP_TRANSLATIONS, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="849"><td class="num" id="LN849">849</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="850"><td class="num" id="LN850">850</td><td class="line"> guint g, k, i;</td></tr>
+<tr class="codeline" data-linenumber="851"><td class="num" id="LN851">851</td><td class="line"> <span class='keyword'>char</span> **groups, **keys, *value, *exec;</td></tr>
+<tr class="codeline" data-linenumber="852"><td class="num" id="LN852">852</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="853"><td class="num" id="LN853">853</td><td class="line"> groups = g_key_file_get_groups (state_file, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="854"><td class="num" id="LN854">854</td><td class="line"> <span class='keyword'>for</span> (g = 0; groups[g]; g++)</td></tr>
+<tr class="codeline" data-linenumber="855"><td class="num" id="LN855">855</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="856"><td class="num" id="LN856">856</td><td class="line"> keys = g_key_file_get_keys (state_file, groups[g], <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="857"><td class="num" id="LN857">857</td><td class="line"> <span class='keyword'>for</span> (k = 0; keys[k]; k++)</td></tr>
+<tr class="codeline" data-linenumber="858"><td class="num" id="LN858">858</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="859"><td class="num" id="LN859">859</td><td class="line"> value = g_key_file_get_value (state_file, groups[g],</td></tr>
+<tr class="codeline" data-linenumber="860"><td class="num" id="LN860">860</td><td class="line"> keys[k], <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="861"><td class="num" id="LN861">861</td><td class="line"> <span class='keyword'>if</span> (value)</td></tr>
+<tr class="codeline" data-linenumber="862"><td class="num" id="LN862">862</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="863"><td class="num" id="LN863">863</td><td class="line"> g_key_file_set_value (merged_file, groups[g],</td></tr>
+<tr class="codeline" data-linenumber="864"><td class="num" id="LN864">864</td><td class="line"> keys[k], value);</td></tr>
+<tr class="codeline" data-linenumber="865"><td class="num" id="LN865">865</td><td class="line"> g_free (value);</td></tr>
+<tr class="codeline" data-linenumber="866"><td class="num" id="LN866">866</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="867"><td class="num" id="LN867">867</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="868"><td class="num" id="LN868">868</td><td class="line"> g_strfreev (keys);</td></tr>
+<tr class="codeline" data-linenumber="869"><td class="num" id="LN869">869</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="870"><td class="num" id="LN870">870</td><td class="line"> g_strfreev (groups);</td></tr>
+<tr class="codeline" data-linenumber="871"><td class="num" id="LN871">871</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="872"><td class="num" id="LN872">872</td><td class="line"> g_key_file_free (state_file);</td></tr>
+<tr class="codeline" data-linenumber="873"><td class="num" id="LN873">873</td><td class="line"> state_file = merged_file;</td></tr>
+<tr class="codeline" data-linenumber="874"><td class="num" id="LN874">874</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="875"><td class="num" id="LN875">875</td><td class="line"> <span class='comment'>/* Update Exec key using "--sm-client-state-file %k" */</span></td></tr>
+<tr class="codeline" data-linenumber="876"><td class="num" id="LN876">876</td><td class="line"> restart = generate_command (xsmp-&gt;restart_command,</td></tr>
+<tr class="codeline" data-linenumber="877"><td class="num" id="LN877">877</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='string_literal'>"%k"</span>);</td></tr>
+<tr class="codeline" data-linenumber="878"><td class="num" id="LN878">878</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; restart-&gt;len; i++)</td></tr>
+<tr class="codeline" data-linenumber="879"><td class="num" id="LN879">879</td><td class="line"> restart-&gt;pdata[i] = g_shell_quote (restart-&gt;pdata[i]);</td></tr>
+<tr class="codeline" data-linenumber="880"><td class="num" id="LN880">880</td><td class="line"> g_ptr_array_add (restart, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="881"><td class="num" id="LN881">881</td><td class="line"> exec = g_strjoinv (<span class='string_literal'>" "</span>, (<span class='keyword'>char</span> **)restart-&gt;pdata);</td></tr>
+<tr class="codeline" data-linenumber="882"><td class="num" id="LN882">882</td><td class="line"> g_strfreev ((<span class='keyword'>char</span> **)restart-&gt;pdata);</td></tr>
+<tr class="codeline" data-linenumber="883"><td class="num" id="LN883">883</td><td class="line"> g_ptr_array_free (restart, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="884"><td class="num" id="LN884">884</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="885"><td class="num" id="LN885">885</td><td class="line"> g_key_file_set_string (state_file, <span class='macro'>EGG_DESKTOP_FILE_GROUP<span class='macro_popup'>"Desktop Entry"</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="886"><td class="num" id="LN886">886</td><td class="line"> <span class='macro'>EGG_DESKTOP_FILE_KEY_EXEC<span class='macro_popup'>"Exec"</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="887"><td class="num" id="LN887">887</td><td class="line"> exec);</td></tr>
+<tr class="codeline" data-linenumber="888"><td class="num" id="LN888">888</td><td class="line"> g_free (exec);</td></tr>
+<tr class="codeline" data-linenumber="889"><td class="num" id="LN889">889</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="890"><td class="num" id="LN890">890</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="891"><td class="num" id="LN891">891</td><td class="line"> desktop_file = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="892"><td class="num" id="LN892">892</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="893"><td class="num" id="LN893">893</td><td class="line"> g_free (desktop_file_path);</td></tr>
+<tr class="codeline" data-linenumber="894"><td class="num" id="LN894">894</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="895"><td class="num" id="LN895">895</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="896"><td class="num" id="LN896">896</td><td class="line"> <span class='comment'>/* Now write state_file to disk. (We can't use mktemp(), because</span></td></tr>
+<tr class="codeline" data-linenumber="897"><td class="num" id="LN897">897</td><td class="line"> <span class='comment'>* that requires the filename to end with "XXXXXX", and we want</span></td></tr>
+<tr class="codeline" data-linenumber="898"><td class="num" id="LN898">898</td><td class="line"> <span class='comment'>* it to end with ".desktop".)</span></td></tr>
+<tr class="codeline" data-linenumber="899"><td class="num" id="LN899">899</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="900"><td class="num" id="LN900">900</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="901"><td class="num" id="LN901">901</td><td class="line"> data = g_key_file_to_data (state_file, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="902"><td class="num" id="LN902">902</td><td class="line"> g_key_file_free (state_file);</td></tr>
+<tr class="codeline" data-linenumber="903"><td class="num" id="LN903">903</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="904"><td class="num" id="LN904">904</td><td class="line"> offset = 0;</td></tr>
+<tr class="codeline" data-linenumber="905"><td class="num" id="LN905">905</td><td class="line"> <span class='keyword'>while</span> (1)</td></tr>
+<tr class="codeline" data-linenumber="906"><td class="num" id="LN906">906</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="907"><td class="num" id="LN907">907</td><td class="line"> state_file_path = g_strdup_printf (<span class='string_literal'>"%s%csession-state%c%s-%ld.%s"</span>,</td></tr>
+<tr class="codeline" data-linenumber="908"><td class="num" id="LN908">908</td><td class="line"> g_get_user_config_dir (),</td></tr>
+<tr class="codeline" data-linenumber="909"><td class="num" id="LN909">909</td><td class="line"> <span class='macro'>G_DIR_SEPARATOR<span class='macro_popup'>'/'</span></span>, <span class='macro'>G_DIR_SEPARATOR<span class='macro_popup'>'/'</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="910"><td class="num" id="LN910">910</td><td class="line"> g_get_prgname (),</td></tr>
+<tr class="codeline" data-linenumber="911"><td class="num" id="LN911">911</td><td class="line"> (<span class='keyword'>long</span>)time (<span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>) + offset,</td></tr>
+<tr class="codeline" data-linenumber="912"><td class="num" id="LN912">912</td><td class="line"> desktop_file ? <span class='string_literal'>"desktop"</span> : <span class='string_literal'>"state"</span>);</td></tr>
+<tr class="codeline" data-linenumber="913"><td class="num" id="LN913">913</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="914"><td class="num" id="LN914">914</td><td class="line"> fd = open (state_file_path, <span class='macro'>O_WRONLY<span class='macro_popup'>01</span></span> | <span class='macro'>O_CREAT<span class='macro_popup'>0100</span></span> | <span class='macro'>O_EXCL<span class='macro_popup'>0200</span></span>, 0644);</td></tr>
+<tr class="codeline" data-linenumber="915"><td class="num" id="LN915">915</td><td class="line"> <span class='keyword'>if</span> (fd == -1)</td></tr>
+<tr class="codeline" data-linenumber="916"><td class="num" id="LN916">916</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="917"><td class="num" id="LN917">917</td><td class="line"> <span class='keyword'>if</span> (<span class='macro'>errno<span class='macro_popup'>(*__errno_location ())</span></span> == <span class='macro'>EEXIST<span class='macro_popup'>17</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="918"><td class="num" id="LN918">918</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="919"><td class="num" id="LN919">919</td><td class="line"> offset++;</td></tr>
+<tr class="codeline" data-linenumber="920"><td class="num" id="LN920">920</td><td class="line"> g_free (state_file_path);</td></tr>
+<tr class="codeline" data-linenumber="921"><td class="num" id="LN921">921</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="922"><td class="num" id="LN922">922</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="923"><td class="num" id="LN923">923</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>errno<span class='macro_popup'>(*__errno_location ())</span></span> == <span class='macro'>ENOTDIR<span class='macro_popup'>20</span></span> || <span class='macro'>errno<span class='macro_popup'>(*__errno_location ())</span></span> == <span class='macro'>ENOENT<span class='macro_popup'>2</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="924"><td class="num" id="LN924">924</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="925"><td class="num" id="LN925">925</td><td class="line"> <span class='keyword'>char</span> *sep = strrchr (state_file_path, <span class='macro'>G_DIR_SEPARATOR<span class='macro_popup'>'/'</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="926"><td class="num" id="LN926">926</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="927"><td class="num" id="LN927">927</td><td class="line"> *sep = '\0';</td></tr>
+<tr class="codeline" data-linenumber="928"><td class="num" id="LN928">928</td><td class="line"> <span class='keyword'>if</span> (g_mkdir_with_parents (state_file_path, 0755) != 0)</td></tr>
+<tr class="codeline" data-linenumber="929"><td class="num" id="LN929">929</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="930"><td class="num" id="LN930">930</td><td class="line"> g_warning (<span class='string_literal'>"Could not create directory '%s'"</span>,</td></tr>
+<tr class="codeline" data-linenumber="931"><td class="num" id="LN931">931</td><td class="line"> state_file_path);</td></tr>
+<tr class="codeline" data-linenumber="932"><td class="num" id="LN932">932</td><td class="line"> g_free (state_file_path);</td></tr>
+<tr class="codeline" data-linenumber="933"><td class="num" id="LN933">933</td><td class="line"> state_file_path = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="934"><td class="num" id="LN934">934</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="935"><td class="num" id="LN935">935</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="936"><td class="num" id="LN936">936</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="937"><td class="num" id="LN937">937</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="938"><td class="num" id="LN938">938</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="939"><td class="num" id="LN939">939</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="940"><td class="num" id="LN940">940</td><td class="line"> g_warning (<span class='string_literal'>"Could not create file '%s': %s"</span>,</td></tr>
+<tr class="codeline" data-linenumber="941"><td class="num" id="LN941">941</td><td class="line"> state_file_path, g_strerror (<span class='macro'>errno<span class='macro_popup'>(*__errno_location ())</span></span>));</td></tr>
+<tr class="codeline" data-linenumber="942"><td class="num" id="LN942">942</td><td class="line"> g_free (state_file_path);</td></tr>
+<tr class="codeline" data-linenumber="943"><td class="num" id="LN943">943</td><td class="line"> state_file_path = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="944"><td class="num" id="LN944">944</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="945"><td class="num" id="LN945">945</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="946"><td class="num" id="LN946">946</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="947"><td class="num" id="LN947">947</td><td class="line"> close (fd);</td></tr>
+<tr class="codeline" data-linenumber="948"><td class="num" id="LN948">948</td><td class="line"> g_file_set_contents (state_file_path, data, -1, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="949"><td class="num" id="LN949">949</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="950"><td class="num" id="LN950">950</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="951"><td class="num" id="LN951">951</td><td class="line"> g_free (data);</td></tr>
+<tr class="codeline" data-linenumber="952"><td class="num" id="LN952">952</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="953"><td class="num" id="LN953">953</td><td class="line"> restart = generate_command (xsmp-&gt;restart_command, xsmp-&gt;client_id,</td></tr>
+<tr class="codeline" data-linenumber="954"><td class="num" id="LN954">954</td><td class="line"> state_file_path);</td></tr>
+<tr class="codeline" data-linenumber="955"><td class="num" id="LN955">955</td><td class="line"> set_properties (xsmp,</td></tr>
+<tr class="codeline" data-linenumber="956"><td class="num" id="LN956">956</td><td class="line"> ptrarray_prop (<span class='macro'>SmRestartCommand<span class='macro_popup'>"RestartCommand"</span></span>, restart),</td></tr>
+<tr class="codeline" data-linenumber="957"><td class="num" id="LN957">957</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="958"><td class="num" id="LN958">958</td><td class="line"> g_ptr_array_free (restart, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="959"><td class="num" id="LN959">959</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="960"><td class="num" id="LN960">960</td><td class="line"> <span class='keyword'>if</span> (state_file_path)</td></tr>
+<tr class="codeline" data-linenumber="961"><td class="num" id="LN961">961</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="962"><td class="num" id="LN962">962</td><td class="line"> set_properties (xsmp,</td></tr>
+<tr class="codeline" data-linenumber="963"><td class="num" id="LN963">963</td><td class="line"> array_prop (<span class='macro'>SmDiscardCommand<span class='macro_popup'>"DiscardCommand"</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="964"><td class="num" id="LN964">964</td><td class="line"> <span class='string_literal'>"/bin/rm"</span>, <span class='string_literal'>"-rf"</span>, state_file_path,</td></tr>
+<tr class="codeline" data-linenumber="965"><td class="num" id="LN965">965</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>),</td></tr>
+<tr class="codeline" data-linenumber="966"><td class="num" id="LN966">966</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="967"><td class="num" id="LN967">967</td><td class="line"> g_free (state_file_path);</td></tr>
+<tr class="codeline" data-linenumber="968"><td class="num" id="LN968">968</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="969"><td class="num" id="LN969">969</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="970"><td class="num" id="LN970">970</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="971"><td class="num" id="LN971">971</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="972"><td class="num" id="LN972">972</td><td class="line">xsmp_interact (SmcConn smc_conn,</td></tr>
+<tr class="codeline" data-linenumber="973"><td class="num" id="LN973">973</td><td class="line"> SmPointer client_data)</td></tr>
+<tr class="codeline" data-linenumber="974"><td class="num" id="LN974">974</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="975"><td class="num" id="LN975">975</td><td class="line"> EggSMClientXSMP *xsmp = client_data;</td></tr>
+<tr class="codeline" data-linenumber="976"><td class="num" id="LN976">976</td><td class="line"> EggSMClient *client = client_data;</td></tr>
+<tr class="codeline" data-linenumber="977"><td class="num" id="LN977">977</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="978"><td class="num" id="LN978">978</td><td class="line"> g_debug (<span class='string_literal'>"Received Interact message in state %s"</span>,</td></tr>
+<tr class="codeline" data-linenumber="979"><td class="num" id="LN979">979</td><td class="line"> <span class='macro'>EGG_SM_CLIENT_XSMP_STATE (xsmp)<span class='macro_popup'>(state_names[(xsmp)-&gt;state])</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="980"><td class="num" id="LN980">980</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="981"><td class="num" id="LN981">981</td><td class="line"> <span class='keyword'>if</span> (xsmp-&gt;state != XSMP_STATE_INTERACT_REQUEST)</td></tr>
+<tr class="codeline" data-linenumber="982"><td class="num" id="LN982">982</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="983"><td class="num" id="LN983">983</td><td class="line"> fix_broken_state (xsmp, <span class='string_literal'>"Interact"</span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="984"><td class="num" id="LN984">984</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="985"><td class="num" id="LN985">985</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="986"><td class="num" id="LN986">986</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="987"><td class="num" id="LN987">987</td><td class="line"> xsmp-&gt;state = XSMP_STATE_INTERACT;</td></tr>
+<tr class="codeline" data-linenumber="988"><td class="num" id="LN988">988</td><td class="line"> egg_sm_client_quit_requested (client);</td></tr>
+<tr class="codeline" data-linenumber="989"><td class="num" id="LN989">989</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="990"><td class="num" id="LN990">990</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="991"><td class="num" id="LN991">991</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="992"><td class="num" id="LN992">992</td><td class="line">xsmp_die (SmcConn smc_conn,</td></tr>
+<tr class="codeline" data-linenumber="993"><td class="num" id="LN993">993</td><td class="line"> SmPointer client_data)</td></tr>
+<tr class="codeline" data-linenumber="994"><td class="num" id="LN994">994</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="995"><td class="num" id="LN995">995</td><td class="line"> EggSMClientXSMP *xsmp = client_data;</td></tr>
+<tr class="codeline" data-linenumber="996"><td class="num" id="LN996">996</td><td class="line"> EggSMClient *client = client_data;</td></tr>
+<tr class="codeline" data-linenumber="997"><td class="num" id="LN997">997</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="998"><td class="num" id="LN998">998</td><td class="line"> g_debug (<span class='string_literal'>"Received Die message in state %s"</span>,</td></tr>
+<tr class="codeline" data-linenumber="999"><td class="num" id="LN999">999</td><td class="line"> <span class='macro'>EGG_SM_CLIENT_XSMP_STATE (xsmp)<span class='macro_popup'>(state_names[(xsmp)-&gt;state])</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1000"><td class="num" id="LN1000">1000</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1001"><td class="num" id="LN1001">1001</td><td class="line"> sm_client_xsmp_disconnect (xsmp);</td></tr>
+<tr class="codeline" data-linenumber="1002"><td class="num" id="LN1002">1002</td><td class="line"> egg_sm_client_quit (client);</td></tr>
+<tr class="codeline" data-linenumber="1003"><td class="num" id="LN1003">1003</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1004"><td class="num" id="LN1004">1004</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1005"><td class="num" id="LN1005">1005</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1006"><td class="num" id="LN1006">1006</td><td class="line">xsmp_save_complete (SmcConn smc_conn,</td></tr>
+<tr class="codeline" data-linenumber="1007"><td class="num" id="LN1007">1007</td><td class="line"> SmPointer client_data)</td></tr>
+<tr class="codeline" data-linenumber="1008"><td class="num" id="LN1008">1008</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1009"><td class="num" id="LN1009">1009</td><td class="line"> EggSMClientXSMP *xsmp = client_data;</td></tr>
+<tr class="codeline" data-linenumber="1010"><td class="num" id="LN1010">1010</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1011"><td class="num" id="LN1011">1011</td><td class="line"> g_debug (<span class='string_literal'>"Received SaveComplete message in state %s"</span>,</td></tr>
+<tr class="codeline" data-linenumber="1012"><td class="num" id="LN1012">1012</td><td class="line"> <span class='macro'>EGG_SM_CLIENT_XSMP_STATE (xsmp)<span class='macro_popup'>(state_names[(xsmp)-&gt;state])</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1013"><td class="num" id="LN1013">1013</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1014"><td class="num" id="LN1014">1014</td><td class="line"> <span class='keyword'>if</span> (xsmp-&gt;state == XSMP_STATE_SAVE_YOURSELF_DONE)</td></tr>
+<tr class="codeline" data-linenumber="1015"><td class="num" id="LN1015">1015</td><td class="line"> xsmp-&gt;state = XSMP_STATE_IDLE;</td></tr>
+<tr class="codeline" data-linenumber="1016"><td class="num" id="LN1016">1016</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="1017"><td class="num" id="LN1017">1017</td><td class="line"> fix_broken_state (xsmp, <span class='string_literal'>"SaveComplete"</span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1018"><td class="num" id="LN1018">1018</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1019"><td class="num" id="LN1019">1019</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1020"><td class="num" id="LN1020">1020</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1021"><td class="num" id="LN1021">1021</td><td class="line">xsmp_shutdown_cancelled (SmcConn smc_conn,</td></tr>
+<tr class="codeline" data-linenumber="1022"><td class="num" id="LN1022">1022</td><td class="line"> SmPointer client_data)</td></tr>
+<tr class="codeline" data-linenumber="1023"><td class="num" id="LN1023">1023</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1024"><td class="num" id="LN1024">1024</td><td class="line"> EggSMClientXSMP *xsmp = client_data;</td></tr>
+<tr class="codeline" data-linenumber="1025"><td class="num" id="LN1025">1025</td><td class="line"> EggSMClient *client = client_data;</td></tr>
+<tr class="codeline" data-linenumber="1026"><td class="num" id="LN1026">1026</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1027"><td class="num" id="LN1027">1027</td><td class="line"> g_debug (<span class='string_literal'>"Received ShutdownCancelled message in state %s"</span>,</td></tr>
+<tr class="codeline" data-linenumber="1028"><td class="num" id="LN1028">1028</td><td class="line"> <span class='macro'>EGG_SM_CLIENT_XSMP_STATE (xsmp)<span class='macro_popup'>(state_names[(xsmp)-&gt;state])</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1029"><td class="num" id="LN1029">1029</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1030"><td class="num" id="LN1030">1030</td><td class="line"> xsmp-&gt;shutting_down = <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1031"><td class="num" id="LN1031">1031</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1032"><td class="num" id="LN1032">1032</td><td class="line"> <span class='keyword'>if</span> (xsmp-&gt;state == XSMP_STATE_SAVE_YOURSELF_DONE)</td></tr>
+<tr class="codeline" data-linenumber="1033"><td class="num" id="LN1033">1033</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1034"><td class="num" id="LN1034">1034</td><td class="line"> <span class='comment'>/* We've finished interacting and now the SM has agreed to</span></td></tr>
+<tr class="codeline" data-linenumber="1035"><td class="num" id="LN1035">1035</td><td class="line"> <span class='comment'>* cancel the shutdown.</span></td></tr>
+<tr class="codeline" data-linenumber="1036"><td class="num" id="LN1036">1036</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="1037"><td class="num" id="LN1037">1037</td><td class="line"> xsmp-&gt;state = XSMP_STATE_IDLE;</td></tr>
+<tr class="codeline" data-linenumber="1038"><td class="num" id="LN1038">1038</td><td class="line"> egg_sm_client_quit_cancelled (client);</td></tr>
+<tr class="codeline" data-linenumber="1039"><td class="num" id="LN1039">1039</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1040"><td class="num" id="LN1040">1040</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (xsmp-&gt;state == XSMP_STATE_SHUTDOWN_CANCELLED)</td></tr>
+<tr class="codeline" data-linenumber="1041"><td class="num" id="LN1041">1041</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1042"><td class="num" id="LN1042">1042</td><td class="line"> <span class='comment'>/* Hm... ok, so we got a shutdown SaveYourself, which got</span></td></tr>
+<tr class="codeline" data-linenumber="1043"><td class="num" id="LN1043">1043</td><td class="line"> <span class='comment'>* cancelled, but the application was still interacting, so we</span></td></tr>
+<tr class="codeline" data-linenumber="1044"><td class="num" id="LN1044">1044</td><td class="line"> <span class='comment'>* didn't tell it yet, and then *another* SaveYourself arrived,</span></td></tr>
+<tr class="codeline" data-linenumber="1045"><td class="num" id="LN1045">1045</td><td class="line"> <span class='comment'>* which we must still be waiting to tell the app about, except</span></td></tr>
+<tr class="codeline" data-linenumber="1046"><td class="num" id="LN1046">1046</td><td class="line"> <span class='comment'>* that now that SaveYourself has been cancelled too! Dizzy yet?</span></td></tr>
+<tr class="codeline" data-linenumber="1047"><td class="num" id="LN1047">1047</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="1048"><td class="num" id="LN1048">1048</td><td class="line"> xsmp-&gt;waiting_to_save_myself = <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1049"><td class="num" id="LN1049">1049</td><td class="line"> update_pending_events (xsmp);</td></tr>
+<tr class="codeline" data-linenumber="1050"><td class="num" id="LN1050">1050</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1051"><td class="num" id="LN1051">1051</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="1052"><td class="num" id="LN1052">1052</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1053"><td class="num" id="LN1053">1053</td><td class="line"> g_debug (<span class='string_literal'>"Sending SaveYourselfDone(False)"</span>);</td></tr>
+<tr class="codeline" data-linenumber="1054"><td class="num" id="LN1054">1054</td><td class="line"> SmcSaveYourselfDone (xsmp-&gt;connection, <span class='macro'>False<span class='macro_popup'>0</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1055"><td class="num" id="LN1055">1055</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1056"><td class="num" id="LN1056">1056</td><td class="line"> <span class='keyword'>if</span> (xsmp-&gt;state == XSMP_STATE_INTERACT)</td></tr>
+<tr class="codeline" data-linenumber="1057"><td class="num" id="LN1057">1057</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1058"><td class="num" id="LN1058">1058</td><td class="line"> <span class='comment'>/* The application is currently interacting, so we can't</span></td></tr>
+<tr class="codeline" data-linenumber="1059"><td class="num" id="LN1059">1059</td><td class="line"> <span class='comment'>* tell it about the cancellation yet; we will wait until</span></td></tr>
+<tr class="codeline" data-linenumber="1060"><td class="num" id="LN1060">1060</td><td class="line"> <span class='comment'>* after it calls egg_sm_client_will_quit().</span></td></tr>
+<tr class="codeline" data-linenumber="1061"><td class="num" id="LN1061">1061</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="1062"><td class="num" id="LN1062">1062</td><td class="line"> xsmp-&gt;state = XSMP_STATE_SHUTDOWN_CANCELLED;</td></tr>
+<tr class="codeline" data-linenumber="1063"><td class="num" id="LN1063">1063</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1064"><td class="num" id="LN1064">1064</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="1065"><td class="num" id="LN1065">1065</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1066"><td class="num" id="LN1066">1066</td><td class="line"> <span class='comment'>/* The shutdown was cancelled before the application got a</span></td></tr>
+<tr class="codeline" data-linenumber="1067"><td class="num" id="LN1067">1067</td><td class="line"> <span class='comment'>* chance to interact.</span></td></tr>
+<tr class="codeline" data-linenumber="1068"><td class="num" id="LN1068">1068</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="1069"><td class="num" id="LN1069">1069</td><td class="line"> xsmp-&gt;state = XSMP_STATE_IDLE;</td></tr>
+<tr class="codeline" data-linenumber="1070"><td class="num" id="LN1070">1070</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1071"><td class="num" id="LN1071">1071</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1072"><td class="num" id="LN1072">1072</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1073"><td class="num" id="LN1073">1073</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1074"><td class="num" id="LN1074">1074</td><td class="line"><span class='comment'>/* Utilities */</span></td></tr>
+<tr class="codeline" data-linenumber="1075"><td class="num" id="LN1075">1075</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1076"><td class="num" id="LN1076">1076</td><td class="line"><span class='comment'>/* Create a restart/clone/Exec command based on @restart_command.</span></td></tr>
+<tr class="codeline" data-linenumber="1077"><td class="num" id="LN1077">1077</td><td class="line"> <span class='comment'>* If @client_id is non-%NULL, add "--sm-client-id @client_id".</span></td></tr>
+<tr class="codeline" data-linenumber="1078"><td class="num" id="LN1078">1078</td><td class="line"> <span class='comment'>* If @state_file is non-%NULL, add "--sm-client-state-file @state_file".</span></td></tr>
+<tr class="codeline" data-linenumber="1079"><td class="num" id="LN1079">1079</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="1080"><td class="num" id="LN1080">1080</td><td class="line"> <span class='comment'>* None of the input strings are g_strdup()ed; the caller must keep</span></td></tr>
+<tr class="codeline" data-linenumber="1081"><td class="num" id="LN1081">1081</td><td class="line"> <span class='comment'>* them around until it is done with the returned GPtrArray, and must</span></td></tr>
+<tr class="codeline" data-linenumber="1082"><td class="num" id="LN1082">1082</td><td class="line"> <span class='comment'>* then free the array, but not its contents.</span></td></tr>
+<tr class="codeline" data-linenumber="1083"><td class="num" id="LN1083">1083</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="1084"><td class="num" id="LN1084">1084</td><td class="line"><span class='keyword'>static</span> GPtrArray *</td></tr>
+<tr class="codeline" data-linenumber="1085"><td class="num" id="LN1085">1085</td><td class="line">generate_command (<span class='keyword'>char</span> **restart_command, <span class='keyword'>const</span> <span class='keyword'>char</span> *client_id,</td></tr>
+<tr class="codeline" data-linenumber="1086"><td class="num" id="LN1086">1086</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *state_file)</td></tr>
+<tr class="codeline" data-linenumber="1087"><td class="num" id="LN1087">1087</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1088"><td class="num" id="LN1088">1088</td><td class="line"> GPtrArray *cmd;</td></tr>
+<tr class="codeline" data-linenumber="1089"><td class="num" id="LN1089">1089</td><td class="line"> <span class='keyword'>int</span> i;</td></tr>
+<tr class="codeline" data-linenumber="1090"><td class="num" id="LN1090">1090</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1091"><td class="num" id="LN1091">1091</td><td class="line"> cmd = g_ptr_array_new ();</td></tr>
+<tr class="codeline" data-linenumber="1092"><td class="num" id="LN1092">1092</td><td class="line"> g_ptr_array_add (cmd, restart_command[0]);</td></tr>
+<tr class="codeline" data-linenumber="1093"><td class="num" id="LN1093">1093</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1094"><td class="num" id="LN1094">1094</td><td class="line"> <span class='keyword'>if</span> (client_id)</td></tr>
+<tr class="codeline" data-linenumber="1095"><td class="num" id="LN1095">1095</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1096"><td class="num" id="LN1096">1096</td><td class="line"> g_ptr_array_add (cmd, (<span class='keyword'>char</span> *)<span class='string_literal'>"--sm-client-id"</span>);</td></tr>
+<tr class="codeline" data-linenumber="1097"><td class="num" id="LN1097">1097</td><td class="line"> g_ptr_array_add (cmd, (<span class='keyword'>char</span> *)client_id);</td></tr>
+<tr class="codeline" data-linenumber="1098"><td class="num" id="LN1098">1098</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1099"><td class="num" id="LN1099">1099</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1100"><td class="num" id="LN1100">1100</td><td class="line"> <span class='keyword'>if</span> (state_file)</td></tr>
+<tr class="codeline" data-linenumber="1101"><td class="num" id="LN1101">1101</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1102"><td class="num" id="LN1102">1102</td><td class="line"> g_ptr_array_add (cmd, (<span class='keyword'>char</span> *)<span class='string_literal'>"--sm-client-state-file"</span>);</td></tr>
+<tr class="codeline" data-linenumber="1103"><td class="num" id="LN1103">1103</td><td class="line"> g_ptr_array_add (cmd, (<span class='keyword'>char</span> *)state_file);</td></tr>
+<tr class="codeline" data-linenumber="1104"><td class="num" id="LN1104">1104</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1105"><td class="num" id="LN1105">1105</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1106"><td class="num" id="LN1106">1106</td><td class="line"> <span class='keyword'>for</span> (i = 1; restart_command[i]; i++)</td></tr>
+<tr class="codeline" data-linenumber="1107"><td class="num" id="LN1107">1107</td><td class="line"> g_ptr_array_add (cmd, restart_command[i]);</td></tr>
+<tr class="codeline" data-linenumber="1108"><td class="num" id="LN1108">1108</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1109"><td class="num" id="LN1109">1109</td><td class="line"> <span class='keyword'>return</span> cmd;</td></tr>
+<tr class="codeline" data-linenumber="1110"><td class="num" id="LN1110">1110</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1111"><td class="num" id="LN1111">1111</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1112"><td class="num" id="LN1112">1112</td><td class="line"><span class='comment'>/* Takes a NULL-terminated list of SmProp * values, created by</span></td></tr>
+<tr class="codeline" data-linenumber="1113"><td class="num" id="LN1113">1113</td><td class="line"> <span class='comment'>* array_prop, ptrarray_prop, string_prop, card8_prop, sets them, and</span></td></tr>
+<tr class="codeline" data-linenumber="1114"><td class="num" id="LN1114">1114</td><td class="line"> <span class='comment'>* frees them.</span></td></tr>
+<tr class="codeline" data-linenumber="1115"><td class="num" id="LN1115">1115</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="1116"><td class="num" id="LN1116">1116</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1117"><td class="num" id="LN1117">1117</td><td class="line">set_properties (EggSMClientXSMP *xsmp, ...)</td></tr>
+<tr class="codeline" data-linenumber="1118"><td class="num" id="LN1118">1118</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1119"><td class="num" id="LN1119">1119</td><td class="line"> GPtrArray *props;</td></tr>
+<tr class="codeline" data-linenumber="1120"><td class="num" id="LN1120">1120</td><td class="line"> SmProp *prop;</td></tr>
+<tr class="codeline" data-linenumber="1121"><td class="num" id="LN1121">1121</td><td class="line"> va_list ap;</td></tr>
+<tr class="codeline" data-linenumber="1122"><td class="num" id="LN1122">1122</td><td class="line"> guint i;</td></tr>
+<tr class="codeline" data-linenumber="1123"><td class="num" id="LN1123">1123</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1124"><td class="num" id="LN1124">1124</td><td class="line"> props = g_ptr_array_new ();</td></tr>
+<tr class="codeline" data-linenumber="1125"><td class="num" id="LN1125">1125</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1126"><td class="num" id="LN1126">1126</td><td class="line"> <span class='macro'>va_start (ap, xsmp)<span class='macro_popup'>__builtin_va_start(ap, xsmp)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1127"><td class="num" id="LN1127">1127</td><td class="line"> <span class='keyword'>while</span> ((prop = <span class='macro'>va_arg (ap, SmProp *)<span class='macro_popup'>__builtin_va_arg(ap, SmProp *)</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="1128"><td class="num" id="LN1128">1128</td><td class="line"> g_ptr_array_add (props, prop);</td></tr>
+<tr class="codeline" data-linenumber="1129"><td class="num" id="LN1129">1129</td><td class="line"> <span class='macro'>va_end (ap)<span class='macro_popup'>__builtin_va_end(ap)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1130"><td class="num" id="LN1130">1130</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1131"><td class="num" id="LN1131">1131</td><td class="line"> <span class='keyword'>if</span> (xsmp-&gt;connection)</td></tr>
+<tr class="codeline" data-linenumber="1132"><td class="num" id="LN1132">1132</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1133"><td class="num" id="LN1133">1133</td><td class="line"> SmcSetProperties (xsmp-&gt;connection, props-&gt;len,</td></tr>
+<tr class="codeline" data-linenumber="1134"><td class="num" id="LN1134">1134</td><td class="line"> (SmProp **)props-&gt;pdata);</td></tr>
+<tr class="codeline" data-linenumber="1135"><td class="num" id="LN1135">1135</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1136"><td class="num" id="LN1136">1136</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1137"><td class="num" id="LN1137">1137</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; props-&gt;len; i++)</td></tr>
+<tr class="codeline" data-linenumber="1138"><td class="num" id="LN1138">1138</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1139"><td class="num" id="LN1139">1139</td><td class="line"> prop = props-&gt;pdata[i];</td></tr>
+<tr class="codeline" data-linenumber="1140"><td class="num" id="LN1140">1140</td><td class="line"> g_free (prop-&gt;vals);</td></tr>
+<tr class="codeline" data-linenumber="1141"><td class="num" id="LN1141">1141</td><td class="line"> g_free (prop);</td></tr>
+<tr class="codeline" data-linenumber="1142"><td class="num" id="LN1142">1142</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1143"><td class="num" id="LN1143">1143</td><td class="line"> g_ptr_array_free (props, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1144"><td class="num" id="LN1144">1144</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1145"><td class="num" id="LN1145">1145</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1146"><td class="num" id="LN1146">1146</td><td class="line"><span class='comment'>/* Takes a NULL-terminated list of property names and deletes them. */</span></td></tr>
+<tr class="codeline" data-linenumber="1147"><td class="num" id="LN1147">1147</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1148"><td class="num" id="LN1148">1148</td><td class="line">delete_properties (EggSMClientXSMP *xsmp, ...)</td></tr>
+<tr class="codeline" data-linenumber="1149"><td class="num" id="LN1149">1149</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1150"><td class="num" id="LN1150">1150</td><td class="line"> GPtrArray *props;</td></tr>
+<tr class="codeline" data-linenumber="1151"><td class="num" id="LN1151">1151</td><td class="line"> <span class='keyword'>char</span> *prop;</td></tr>
+<tr class="codeline" data-linenumber="1152"><td class="num" id="LN1152">1152</td><td class="line"> va_list ap;</td></tr>
+<tr class="codeline" data-linenumber="1153"><td class="num" id="LN1153">1153</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1154"><td class="num" id="LN1154">1154</td><td class="line"> <span class='keyword'>if</span> (!xsmp-&gt;connection)</td></tr>
+<tr class="codeline" data-linenumber="1155"><td class="num" id="LN1155">1155</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1156"><td class="num" id="LN1156">1156</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1157"><td class="num" id="LN1157">1157</td><td class="line"> props = g_ptr_array_new ();</td></tr>
+<tr class="codeline" data-linenumber="1158"><td class="num" id="LN1158">1158</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1159"><td class="num" id="LN1159">1159</td><td class="line"> <span class='macro'>va_start (ap, xsmp)<span class='macro_popup'>__builtin_va_start(ap, xsmp)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1160"><td class="num" id="LN1160">1160</td><td class="line"> <span class='keyword'>while</span> ((prop = <span class='macro'>va_arg (ap, <span class='keyword'>char</span> *)<span class='macro_popup'>__builtin_va_arg(ap, char *)</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="1161"><td class="num" id="LN1161">1161</td><td class="line"> g_ptr_array_add (props, prop);</td></tr>
+<tr class="codeline" data-linenumber="1162"><td class="num" id="LN1162">1162</td><td class="line"> <span class='macro'>va_end (ap)<span class='macro_popup'>__builtin_va_end(ap)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1163"><td class="num" id="LN1163">1163</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1164"><td class="num" id="LN1164">1164</td><td class="line"> SmcDeleteProperties (xsmp-&gt;connection, props-&gt;len,</td></tr>
+<tr class="codeline" data-linenumber="1165"><td class="num" id="LN1165">1165</td><td class="line"> (<span class='keyword'>char</span> **)props-&gt;pdata);</td></tr>
+<tr class="codeline" data-linenumber="1166"><td class="num" id="LN1166">1166</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1167"><td class="num" id="LN1167">1167</td><td class="line"> g_ptr_array_free (props, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1168"><td class="num" id="LN1168">1168</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1169"><td class="num" id="LN1169">1169</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1170"><td class="num" id="LN1170">1170</td><td class="line"><span class='comment'>/* Takes an array of strings and creates a LISTofARRAY8 property. The</span></td></tr>
+<tr class="codeline" data-linenumber="1171"><td class="num" id="LN1171">1171</td><td class="line"> <span class='comment'>* strings are neither dupped nor freed; they need to remain valid</span></td></tr>
+<tr class="codeline" data-linenumber="1172"><td class="num" id="LN1172">1172</td><td class="line"> <span class='comment'>* until you're done with the SmProp.</span></td></tr>
+<tr class="codeline" data-linenumber="1173"><td class="num" id="LN1173">1173</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="1174"><td class="num" id="LN1174">1174</td><td class="line"><span class='keyword'>static</span> SmProp *</td></tr>
+<tr class="codeline" data-linenumber="1175"><td class="num" id="LN1175">1175</td><td class="line">array_prop (<span class='keyword'>const</span> <span class='keyword'>char</span> *name, ...)</td></tr>
+<tr class="codeline" data-linenumber="1176"><td class="num" id="LN1176">1176</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1177"><td class="num" id="LN1177">1177</td><td class="line"> SmProp *prop;</td></tr>
+<tr class="codeline" data-linenumber="1178"><td class="num" id="LN1178">1178</td><td class="line"> SmPropValue pv;</td></tr>
+<tr class="codeline" data-linenumber="1179"><td class="num" id="LN1179">1179</td><td class="line"> GArray *vals;</td></tr>
+<tr class="codeline" data-linenumber="1180"><td class="num" id="LN1180">1180</td><td class="line"> <span class='keyword'>char</span> *value;</td></tr>
+<tr class="codeline" data-linenumber="1181"><td class="num" id="LN1181">1181</td><td class="line"> va_list ap;</td></tr>
+<tr class="codeline" data-linenumber="1182"><td class="num" id="LN1182">1182</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1183"><td class="num" id="LN1183">1183</td><td class="line"> prop = <span class='macro'>g_new (SmProp, 1)<span class='macro_popup'>((SmProp *) g_malloc_n ((1), sizeof (SmProp)))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1184"><td class="num" id="LN1184">1184</td><td class="line"> prop-&gt;name = (<span class='keyword'>char</span> *)name;</td></tr>
+<tr class="codeline" data-linenumber="1185"><td class="num" id="LN1185">1185</td><td class="line"> prop-&gt;type = (<span class='keyword'>char</span> *)<span class='macro'>SmLISTofARRAY8<span class='macro_popup'>"LISTofARRAY8"</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1186"><td class="num" id="LN1186">1186</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1187"><td class="num" id="LN1187">1187</td><td class="line"> vals = g_array_new (<span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='keyword'>sizeof</span> (SmPropValue));</td></tr>
+<tr class="codeline" data-linenumber="1188"><td class="num" id="LN1188">1188</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1189"><td class="num" id="LN1189">1189</td><td class="line"> <span class='macro'>va_start (ap, name)<span class='macro_popup'>__builtin_va_start(ap, name)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1190"><td class="num" id="LN1190">1190</td><td class="line"> <span class='keyword'>while</span> ((value = <span class='macro'>va_arg (ap, <span class='keyword'>char</span> *)<span class='macro_popup'>__builtin_va_arg(ap, char *)</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="1191"><td class="num" id="LN1191">1191</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1192"><td class="num" id="LN1192">1192</td><td class="line"> pv.length = strlen (value);</td></tr>
+<tr class="codeline" data-linenumber="1193"><td class="num" id="LN1193">1193</td><td class="line"> pv.value = value;</td></tr>
+<tr class="codeline" data-linenumber="1194"><td class="num" id="LN1194">1194</td><td class="line"> <span class='macro'>g_array_append_val (vals, pv)<span class='macro_popup'>g_array_append_vals (vals, &amp;(pv), 1)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1195"><td class="num" id="LN1195">1195</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1196"><td class="num" id="LN1196">1196</td><td class="line"> <span class='macro'>va_end (ap)<span class='macro_popup'>__builtin_va_end(ap)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1197"><td class="num" id="LN1197">1197</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1198"><td class="num" id="LN1198">1198</td><td class="line"> prop-&gt;num_vals = vals-&gt;len;</td></tr>
+<tr class="codeline" data-linenumber="1199"><td class="num" id="LN1199">1199</td><td class="line"> prop-&gt;vals = <span class="mrange"><span class="mrange">(SmPropValue *)vals-&gt;data</span></span>;</td></tr>
+<tr><td class="num"></td><td class="line"><div id="EndPath" class="msg msgEvent" style="margin-left:18ex; max-width:31em">Casting a non-structure type to a structure type and accessing a field can lead to memory access errors or data corruption</div></td></tr>
+<tr class="codeline" data-linenumber="1200"><td class="num" id="LN1200">1200</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1201"><td class="num" id="LN1201">1201</td><td class="line"> g_array_free (vals, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1202"><td class="num" id="LN1202">1202</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1203"><td class="num" id="LN1203">1203</td><td class="line"> <span class='keyword'>return</span> prop;</td></tr>
+<tr class="codeline" data-linenumber="1204"><td class="num" id="LN1204">1204</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1205"><td class="num" id="LN1205">1205</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1206"><td class="num" id="LN1206">1206</td><td class="line"><span class='comment'>/* Takes a GPtrArray of strings and creates a LISTofARRAY8 property.</span></td></tr>
+<tr class="codeline" data-linenumber="1207"><td class="num" id="LN1207">1207</td><td class="line"> <span class='comment'>* The array contents are neither dupped nor freed; they need to</span></td></tr>
+<tr class="codeline" data-linenumber="1208"><td class="num" id="LN1208">1208</td><td class="line"> <span class='comment'>* remain valid until you're done with the SmProp.</span></td></tr>
+<tr class="codeline" data-linenumber="1209"><td class="num" id="LN1209">1209</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="1210"><td class="num" id="LN1210">1210</td><td class="line"><span class='keyword'>static</span> SmProp *</td></tr>
+<tr class="codeline" data-linenumber="1211"><td class="num" id="LN1211">1211</td><td class="line">ptrarray_prop (<span class='keyword'>const</span> <span class='keyword'>char</span> *name, GPtrArray *values)</td></tr>
+<tr class="codeline" data-linenumber="1212"><td class="num" id="LN1212">1212</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1213"><td class="num" id="LN1213">1213</td><td class="line"> SmProp *prop;</td></tr>
+<tr class="codeline" data-linenumber="1214"><td class="num" id="LN1214">1214</td><td class="line"> SmPropValue pv;</td></tr>
+<tr class="codeline" data-linenumber="1215"><td class="num" id="LN1215">1215</td><td class="line"> GArray *vals;</td></tr>
+<tr class="codeline" data-linenumber="1216"><td class="num" id="LN1216">1216</td><td class="line"> guint i;</td></tr>
+<tr class="codeline" data-linenumber="1217"><td class="num" id="LN1217">1217</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1218"><td class="num" id="LN1218">1218</td><td class="line"> prop = <span class='macro'>g_new (SmProp, 1)<span class='macro_popup'>((SmProp *) g_malloc_n ((1), sizeof (SmProp)))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1219"><td class="num" id="LN1219">1219</td><td class="line"> prop-&gt;name = (<span class='keyword'>char</span> *)name;</td></tr>
+<tr class="codeline" data-linenumber="1220"><td class="num" id="LN1220">1220</td><td class="line"> prop-&gt;type = (<span class='keyword'>char</span> *)<span class='macro'>SmLISTofARRAY8<span class='macro_popup'>"LISTofARRAY8"</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1221"><td class="num" id="LN1221">1221</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1222"><td class="num" id="LN1222">1222</td><td class="line"> vals = g_array_new (<span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='keyword'>sizeof</span> (SmPropValue));</td></tr>
+<tr class="codeline" data-linenumber="1223"><td class="num" id="LN1223">1223</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1224"><td class="num" id="LN1224">1224</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; values-&gt;len; i++)</td></tr>
+<tr class="codeline" data-linenumber="1225"><td class="num" id="LN1225">1225</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1226"><td class="num" id="LN1226">1226</td><td class="line"> pv.length = strlen (values-&gt;pdata[i]);</td></tr>
+<tr class="codeline" data-linenumber="1227"><td class="num" id="LN1227">1227</td><td class="line"> pv.value = values-&gt;pdata[i];</td></tr>
+<tr class="codeline" data-linenumber="1228"><td class="num" id="LN1228">1228</td><td class="line"> <span class='macro'>g_array_append_val (vals, pv)<span class='macro_popup'>g_array_append_vals (vals, &amp;(pv), 1)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1229"><td class="num" id="LN1229">1229</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1230"><td class="num" id="LN1230">1230</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1231"><td class="num" id="LN1231">1231</td><td class="line"> prop-&gt;num_vals = vals-&gt;len;</td></tr>
+<tr class="codeline" data-linenumber="1232"><td class="num" id="LN1232">1232</td><td class="line"> prop-&gt;vals = (SmPropValue *)vals-&gt;data;</td></tr>
+<tr class="codeline" data-linenumber="1233"><td class="num" id="LN1233">1233</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1234"><td class="num" id="LN1234">1234</td><td class="line"> g_array_free (vals, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1235"><td class="num" id="LN1235">1235</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1236"><td class="num" id="LN1236">1236</td><td class="line"> <span class='keyword'>return</span> prop;</td></tr>
+<tr class="codeline" data-linenumber="1237"><td class="num" id="LN1237">1237</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1238"><td class="num" id="LN1238">1238</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1239"><td class="num" id="LN1239">1239</td><td class="line"><span class='comment'>/* Takes a string and creates an ARRAY8 property. The string is</span></td></tr>
+<tr class="codeline" data-linenumber="1240"><td class="num" id="LN1240">1240</td><td class="line"> <span class='comment'>* neither dupped nor freed; it needs to remain valid until you're</span></td></tr>
+<tr class="codeline" data-linenumber="1241"><td class="num" id="LN1241">1241</td><td class="line"> <span class='comment'>* done with the SmProp.</span></td></tr>
+<tr class="codeline" data-linenumber="1242"><td class="num" id="LN1242">1242</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="1243"><td class="num" id="LN1243">1243</td><td class="line"><span class='keyword'>static</span> SmProp *</td></tr>
+<tr class="codeline" data-linenumber="1244"><td class="num" id="LN1244">1244</td><td class="line">string_prop (<span class='keyword'>const</span> <span class='keyword'>char</span> *name, <span class='keyword'>const</span> <span class='keyword'>char</span> *value)</td></tr>
+<tr class="codeline" data-linenumber="1245"><td class="num" id="LN1245">1245</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1246"><td class="num" id="LN1246">1246</td><td class="line"> SmProp *prop;</td></tr>
+<tr class="codeline" data-linenumber="1247"><td class="num" id="LN1247">1247</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1248"><td class="num" id="LN1248">1248</td><td class="line"> prop = <span class='macro'>g_new (SmProp, 1)<span class='macro_popup'>((SmProp *) g_malloc_n ((1), sizeof (SmProp)))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1249"><td class="num" id="LN1249">1249</td><td class="line"> prop-&gt;name = (<span class='keyword'>char</span> *)name;</td></tr>
+<tr class="codeline" data-linenumber="1250"><td class="num" id="LN1250">1250</td><td class="line"> prop-&gt;type = (<span class='keyword'>char</span> *)<span class='macro'>SmARRAY8<span class='macro_popup'>"ARRAY8"</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1251"><td class="num" id="LN1251">1251</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1252"><td class="num" id="LN1252">1252</td><td class="line"> prop-&gt;num_vals = 1;</td></tr>
+<tr class="codeline" data-linenumber="1253"><td class="num" id="LN1253">1253</td><td class="line"> prop-&gt;vals = <span class='macro'>g_new (SmPropValue, 1)<span class='macro_popup'>((SmPropValue *) g_malloc_n ((1), sizeof (SmPropValue)))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1254"><td class="num" id="LN1254">1254</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1255"><td class="num" id="LN1255">1255</td><td class="line"> prop-&gt;vals[0].length = strlen (value);</td></tr>
+<tr class="codeline" data-linenumber="1256"><td class="num" id="LN1256">1256</td><td class="line"> prop-&gt;vals[0].value = (<span class='keyword'>char</span> *)value;</td></tr>
+<tr class="codeline" data-linenumber="1257"><td class="num" id="LN1257">1257</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1258"><td class="num" id="LN1258">1258</td><td class="line"> <span class='keyword'>return</span> prop;</td></tr>
+<tr class="codeline" data-linenumber="1259"><td class="num" id="LN1259">1259</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1260"><td class="num" id="LN1260">1260</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1261"><td class="num" id="LN1261">1261</td><td class="line"><span class='comment'>/* Takes a char and creates a CARD8 property. */</span></td></tr>
+<tr class="codeline" data-linenumber="1262"><td class="num" id="LN1262">1262</td><td class="line"><span class='keyword'>static</span> SmProp *</td></tr>
+<tr class="codeline" data-linenumber="1263"><td class="num" id="LN1263">1263</td><td class="line">card8_prop (<span class='keyword'>const</span> <span class='keyword'>char</span> *name, <span class='keyword'>unsigned</span> <span class='keyword'>char</span> value)</td></tr>
+<tr class="codeline" data-linenumber="1264"><td class="num" id="LN1264">1264</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1265"><td class="num" id="LN1265">1265</td><td class="line"> SmProp *prop;</td></tr>
+<tr class="codeline" data-linenumber="1266"><td class="num" id="LN1266">1266</td><td class="line"> <span class='keyword'>char</span> *card8val;</td></tr>
+<tr class="codeline" data-linenumber="1267"><td class="num" id="LN1267">1267</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1268"><td class="num" id="LN1268">1268</td><td class="line"> <span class='comment'>/* To avoid having to allocate and free prop-&gt;vals[0], we cheat and</span></td></tr>
+<tr class="codeline" data-linenumber="1269"><td class="num" id="LN1269">1269</td><td class="line"> <span class='comment'>* make vals a 2-element-long array and then use the second element</span></td></tr>
+<tr class="codeline" data-linenumber="1270"><td class="num" id="LN1270">1270</td><td class="line"> <span class='comment'>* to store value.</span></td></tr>
+<tr class="codeline" data-linenumber="1271"><td class="num" id="LN1271">1271</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="1272"><td class="num" id="LN1272">1272</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1273"><td class="num" id="LN1273">1273</td><td class="line"> prop = <span class='macro'>g_new (SmProp, 1)<span class='macro_popup'>((SmProp *) g_malloc_n ((1), sizeof (SmProp)))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1274"><td class="num" id="LN1274">1274</td><td class="line"> prop-&gt;name = (<span class='keyword'>char</span> *)name;</td></tr>
+<tr class="codeline" data-linenumber="1275"><td class="num" id="LN1275">1275</td><td class="line"> prop-&gt;type = (<span class='keyword'>char</span> *)<span class='macro'>SmCARD8<span class='macro_popup'>"CARD8"</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1276"><td class="num" id="LN1276">1276</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1277"><td class="num" id="LN1277">1277</td><td class="line"> prop-&gt;num_vals = 1;</td></tr>
+<tr class="codeline" data-linenumber="1278"><td class="num" id="LN1278">1278</td><td class="line"> prop-&gt;vals = <span class='macro'>g_new (SmPropValue, 2)<span class='macro_popup'>((SmPropValue *) g_malloc_n ((2), sizeof (SmPropValue)))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1279"><td class="num" id="LN1279">1279</td><td class="line"> card8val = (<span class='keyword'>char</span> *)(&amp;prop-&gt;vals[1]);</td></tr>
+<tr class="codeline" data-linenumber="1280"><td class="num" id="LN1280">1280</td><td class="line"> card8val[0] = value;</td></tr>
+<tr class="codeline" data-linenumber="1281"><td class="num" id="LN1281">1281</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1282"><td class="num" id="LN1282">1282</td><td class="line"> prop-&gt;vals[0].length = 1;</td></tr>
+<tr class="codeline" data-linenumber="1283"><td class="num" id="LN1283">1283</td><td class="line"> prop-&gt;vals[0].value = card8val;</td></tr>
+<tr class="codeline" data-linenumber="1284"><td class="num" id="LN1284">1284</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1285"><td class="num" id="LN1285">1285</td><td class="line"> <span class='keyword'>return</span> prop;</td></tr>
+<tr class="codeline" data-linenumber="1286"><td class="num" id="LN1286">1286</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1287"><td class="num" id="LN1287">1287</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1288"><td class="num" id="LN1288">1288</td><td class="line"><span class='comment'>/* ICE code. This makes no effort to play nice with anyone else trying</span></td></tr>
+<tr class="codeline" data-linenumber="1289"><td class="num" id="LN1289">1289</td><td class="line"> <span class='comment'>* to use libICE. Fortunately, no one uses libICE for anything other</span></td></tr>
+<tr class="codeline" data-linenumber="1290"><td class="num" id="LN1290">1290</td><td class="line"> <span class='comment'>* than SM. (DCOP uses ICE, but it has its own private copy of</span></td></tr>
+<tr class="codeline" data-linenumber="1291"><td class="num" id="LN1291">1291</td><td class="line"> <span class='comment'>* libICE.)</span></td></tr>
+<tr class="codeline" data-linenumber="1292"><td class="num" id="LN1292">1292</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="1293"><td class="num" id="LN1293">1293</td><td class="line"> <span class='comment'>* When this moves to gtk, it will need to be cleverer, to avoid</span></td></tr>
+<tr class="codeline" data-linenumber="1294"><td class="num" id="LN1294">1294</td><td class="line"> <span class='comment'>* tripping over old apps that use MateClient or that use libSM</span></td></tr>
+<tr class="codeline" data-linenumber="1295"><td class="num" id="LN1295">1295</td><td class="line"> <span class='comment'>* directly.</span></td></tr>
+<tr class="codeline" data-linenumber="1296"><td class="num" id="LN1296">1296</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="1297"><td class="num" id="LN1297">1297</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1298"><td class="num" id="LN1298">1298</td><td class="line"><span class='directive'>#include &lt;X11/ICE/ICElib.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="1299"><td class="num" id="LN1299">1299</td><td class="line"><span class='directive'>#include &lt;fcntl.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="1300"><td class="num" id="LN1300">1300</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1301"><td class="num" id="LN1301">1301</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> ice_error_handler (IceConn ice_conn,</td></tr>
+<tr class="codeline" data-linenumber="1302"><td class="num" id="LN1302">1302</td><td class="line"> <span class='macro'>Bool<span class='macro_popup'>int</span></span> swap,</td></tr>
+<tr class="codeline" data-linenumber="1303"><td class="num" id="LN1303">1303</td><td class="line"> <span class='keyword'>int</span> offending_minor_opcode,</td></tr>
+<tr class="codeline" data-linenumber="1304"><td class="num" id="LN1304">1304</td><td class="line"> <span class='keyword'>unsigned</span> <span class='keyword'>long</span> offending_sequence,</td></tr>
+<tr class="codeline" data-linenumber="1305"><td class="num" id="LN1305">1305</td><td class="line"> <span class='keyword'>int</span> error_class,</td></tr>
+<tr class="codeline" data-linenumber="1306"><td class="num" id="LN1306">1306</td><td class="line"> <span class='keyword'>int</span> severity,</td></tr>
+<tr class="codeline" data-linenumber="1307"><td class="num" id="LN1307">1307</td><td class="line"> IcePointer values);</td></tr>
+<tr class="codeline" data-linenumber="1308"><td class="num" id="LN1308">1308</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> ice_io_error_handler (IceConn ice_conn);</td></tr>
+<tr class="codeline" data-linenumber="1309"><td class="num" id="LN1309">1309</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> ice_connection_watch (IceConn ice_conn,</td></tr>
+<tr class="codeline" data-linenumber="1310"><td class="num" id="LN1310">1310</td><td class="line"> IcePointer client_data,</td></tr>
+<tr class="codeline" data-linenumber="1311"><td class="num" id="LN1311">1311</td><td class="line"> <span class='macro'>Bool<span class='macro_popup'>int</span></span> opening,</td></tr>
+<tr class="codeline" data-linenumber="1312"><td class="num" id="LN1312">1312</td><td class="line"> IcePointer *watch_data);</td></tr>
+<tr class="codeline" data-linenumber="1313"><td class="num" id="LN1313">1313</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1314"><td class="num" id="LN1314">1314</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1315"><td class="num" id="LN1315">1315</td><td class="line">ice_init (<span class='keyword'>void</span>)</td></tr>
+<tr class="codeline" data-linenumber="1316"><td class="num" id="LN1316">1316</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1317"><td class="num" id="LN1317">1317</td><td class="line"> IceSetIOErrorHandler (ice_io_error_handler);</td></tr>
+<tr class="codeline" data-linenumber="1318"><td class="num" id="LN1318">1318</td><td class="line"> IceSetErrorHandler (ice_error_handler);</td></tr>
+<tr class="codeline" data-linenumber="1319"><td class="num" id="LN1319">1319</td><td class="line"> IceAddConnectionWatch (ice_connection_watch, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1320"><td class="num" id="LN1320">1320</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1321"><td class="num" id="LN1321">1321</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1322"><td class="num" id="LN1322">1322</td><td class="line"><span class='keyword'>static</span> gboolean</td></tr>
+<tr class="codeline" data-linenumber="1323"><td class="num" id="LN1323">1323</td><td class="line">process_ice_messages (IceConn ice_conn)</td></tr>
+<tr class="codeline" data-linenumber="1324"><td class="num" id="LN1324">1324</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1325"><td class="num" id="LN1325">1325</td><td class="line"> IceProcessMessagesStatus status;</td></tr>
+<tr class="codeline" data-linenumber="1326"><td class="num" id="LN1326">1326</td><td class="line"> status = IceProcessMessages (ice_conn, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1327"><td class="num" id="LN1327">1327</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1328"><td class="num" id="LN1328">1328</td><td class="line"> <span class='keyword'>switch</span> (status)</td></tr>
+<tr class="codeline" data-linenumber="1329"><td class="num" id="LN1329">1329</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1330"><td class="num" id="LN1330">1330</td><td class="line"> <span class='keyword'>case</span> IceProcessMessagesSuccess:</td></tr>
+<tr class="codeline" data-linenumber="1331"><td class="num" id="LN1331">1331</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1332"><td class="num" id="LN1332">1332</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1333"><td class="num" id="LN1333">1333</td><td class="line"> <span class='keyword'>case</span> IceProcessMessagesIOError:</td></tr>
+<tr class="codeline" data-linenumber="1334"><td class="num" id="LN1334">1334</td><td class="line"> sm_client_xsmp_disconnect (IceGetConnectionContext (ice_conn));</td></tr>
+<tr class="codeline" data-linenumber="1335"><td class="num" id="LN1335">1335</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1336"><td class="num" id="LN1336">1336</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1337"><td class="num" id="LN1337">1337</td><td class="line"> <span class='keyword'>case</span> IceProcessMessagesConnectionClosed:</td></tr>
+<tr class="codeline" data-linenumber="1338"><td class="num" id="LN1338">1338</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1339"><td class="num" id="LN1339">1339</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1340"><td class="num" id="LN1340">1340</td><td class="line"> <span class='keyword'>default</span>:</td></tr>
+<tr class="codeline" data-linenumber="1341"><td class="num" id="LN1341">1341</td><td class="line"> <span class='macro'>g_assert_not_reached ()<span class='macro_popup'>do { g_assertion_message_expr ("EggSMClient", "eggsmclient-xsmp.c"<br>, 1341, ((const char*) (__func__)), ((void*)0)); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1342"><td class="num" id="LN1342">1342</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1343"><td class="num" id="LN1343">1343</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1344"><td class="num" id="LN1344">1344</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1345"><td class="num" id="LN1345">1345</td><td class="line"><span class='keyword'>static</span> gboolean</td></tr>
+<tr class="codeline" data-linenumber="1346"><td class="num" id="LN1346">1346</td><td class="line">ice_iochannel_watch (GIOChannel *channel,</td></tr>
+<tr class="codeline" data-linenumber="1347"><td class="num" id="LN1347">1347</td><td class="line"> GIOCondition condition,</td></tr>
+<tr class="codeline" data-linenumber="1348"><td class="num" id="LN1348">1348</td><td class="line"> gpointer client_data)</td></tr>
+<tr class="codeline" data-linenumber="1349"><td class="num" id="LN1349">1349</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1350"><td class="num" id="LN1350">1350</td><td class="line"> <span class='keyword'>return</span> process_ice_messages (client_data);</td></tr>
+<tr class="codeline" data-linenumber="1351"><td class="num" id="LN1351">1351</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1352"><td class="num" id="LN1352">1352</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1353"><td class="num" id="LN1353">1353</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1354"><td class="num" id="LN1354">1354</td><td class="line">ice_connection_watch (IceConn ice_conn,</td></tr>
+<tr class="codeline" data-linenumber="1355"><td class="num" id="LN1355">1355</td><td class="line"> IcePointer client_data,</td></tr>
+<tr class="codeline" data-linenumber="1356"><td class="num" id="LN1356">1356</td><td class="line"> <span class='macro'>Bool<span class='macro_popup'>int</span></span> opening,</td></tr>
+<tr class="codeline" data-linenumber="1357"><td class="num" id="LN1357">1357</td><td class="line"> IcePointer *watch_data)</td></tr>
+<tr class="codeline" data-linenumber="1358"><td class="num" id="LN1358">1358</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1359"><td class="num" id="LN1359">1359</td><td class="line"> guint watch_id;</td></tr>
+<tr class="codeline" data-linenumber="1360"><td class="num" id="LN1360">1360</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1361"><td class="num" id="LN1361">1361</td><td class="line"> <span class='keyword'>if</span> (opening)</td></tr>
+<tr class="codeline" data-linenumber="1362"><td class="num" id="LN1362">1362</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1363"><td class="num" id="LN1363">1363</td><td class="line"> GIOChannel *channel;</td></tr>
+<tr class="codeline" data-linenumber="1364"><td class="num" id="LN1364">1364</td><td class="line"> <span class='keyword'>int</span> fd = IceConnectionNumber (ice_conn);</td></tr>
+<tr class="codeline" data-linenumber="1365"><td class="num" id="LN1365">1365</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1366"><td class="num" id="LN1366">1366</td><td class="line"> fcntl (fd, <span class='macro'>F_SETFD<span class='macro_popup'>2</span></span>, fcntl (fd, <span class='macro'>F_GETFD<span class='macro_popup'>1</span></span>, 0) | <span class='macro'>FD_CLOEXEC<span class='macro_popup'>1</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1367"><td class="num" id="LN1367">1367</td><td class="line"> channel = g_io_channel_unix_new (fd);</td></tr>
+<tr class="codeline" data-linenumber="1368"><td class="num" id="LN1368">1368</td><td class="line"> watch_id = g_io_add_watch (channel, G_IO_IN | G_IO_ERR,</td></tr>
+<tr class="codeline" data-linenumber="1369"><td class="num" id="LN1369">1369</td><td class="line"> ice_iochannel_watch, ice_conn);</td></tr>
+<tr class="codeline" data-linenumber="1370"><td class="num" id="LN1370">1370</td><td class="line"> g_io_channel_unref (channel);</td></tr>
+<tr class="codeline" data-linenumber="1371"><td class="num" id="LN1371">1371</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1372"><td class="num" id="LN1372">1372</td><td class="line"> *watch_data = <span class='macro'>GUINT_TO_POINTER (watch_id)<span class='macro_popup'>((gpointer) (gulong) (watch_id))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1373"><td class="num" id="LN1373">1373</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1374"><td class="num" id="LN1374">1374</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="1375"><td class="num" id="LN1375">1375</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1376"><td class="num" id="LN1376">1376</td><td class="line"> watch_id = <span class='macro'>GPOINTER_TO_UINT (*watch_data)<span class='macro_popup'>((guint) (gulong) (*watch_data))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1377"><td class="num" id="LN1377">1377</td><td class="line"> g_source_remove (watch_id);</td></tr>
+<tr class="codeline" data-linenumber="1378"><td class="num" id="LN1378">1378</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1379"><td class="num" id="LN1379">1379</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1380"><td class="num" id="LN1380">1380</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1381"><td class="num" id="LN1381">1381</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1382"><td class="num" id="LN1382">1382</td><td class="line">ice_error_handler (IceConn ice_conn,</td></tr>
+<tr class="codeline" data-linenumber="1383"><td class="num" id="LN1383">1383</td><td class="line"> <span class='macro'>Bool<span class='macro_popup'>int</span></span> swap,</td></tr>
+<tr class="codeline" data-linenumber="1384"><td class="num" id="LN1384">1384</td><td class="line"> <span class='keyword'>int</span> offending_minor_opcode,</td></tr>
+<tr class="codeline" data-linenumber="1385"><td class="num" id="LN1385">1385</td><td class="line"> <span class='keyword'>unsigned</span> <span class='keyword'>long</span> offending_sequence,</td></tr>
+<tr class="codeline" data-linenumber="1386"><td class="num" id="LN1386">1386</td><td class="line"> <span class='keyword'>int</span> error_class,</td></tr>
+<tr class="codeline" data-linenumber="1387"><td class="num" id="LN1387">1387</td><td class="line"> <span class='keyword'>int</span> severity,</td></tr>
+<tr class="codeline" data-linenumber="1388"><td class="num" id="LN1388">1388</td><td class="line"> IcePointer values)</td></tr>
+<tr class="codeline" data-linenumber="1389"><td class="num" id="LN1389">1389</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1390"><td class="num" id="LN1390">1390</td><td class="line"> <span class='comment'>/* Do nothing */</span></td></tr>
+<tr class="codeline" data-linenumber="1391"><td class="num" id="LN1391">1391</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1392"><td class="num" id="LN1392">1392</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1393"><td class="num" id="LN1393">1393</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1394"><td class="num" id="LN1394">1394</td><td class="line">ice_io_error_handler (IceConn ice_conn)</td></tr>
+<tr class="codeline" data-linenumber="1395"><td class="num" id="LN1395">1395</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1396"><td class="num" id="LN1396">1396</td><td class="line"> <span class='comment'>/* Do nothing */</span></td></tr>
+<tr class="codeline" data-linenumber="1397"><td class="num" id="LN1397">1397</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1398"><td class="num" id="LN1398">1398</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1399"><td class="num" id="LN1399">1399</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1400"><td class="num" id="LN1400">1400</td><td class="line">smc_error_handler (SmcConn smc_conn,</td></tr>
+<tr class="codeline" data-linenumber="1401"><td class="num" id="LN1401">1401</td><td class="line"> <span class='macro'>Bool<span class='macro_popup'>int</span></span> swap,</td></tr>
+<tr class="codeline" data-linenumber="1402"><td class="num" id="LN1402">1402</td><td class="line"> <span class='keyword'>int</span> offending_minor_opcode,</td></tr>
+<tr class="codeline" data-linenumber="1403"><td class="num" id="LN1403">1403</td><td class="line"> <span class='keyword'>unsigned</span> <span class='keyword'>long</span> offending_sequence,</td></tr>
+<tr class="codeline" data-linenumber="1404"><td class="num" id="LN1404">1404</td><td class="line"> <span class='keyword'>int</span> error_class,</td></tr>
+<tr class="codeline" data-linenumber="1405"><td class="num" id="LN1405">1405</td><td class="line"> <span class='keyword'>int</span> severity,</td></tr>
+<tr class="codeline" data-linenumber="1406"><td class="num" id="LN1406">1406</td><td class="line"> SmPointer values)</td></tr>
+<tr class="codeline" data-linenumber="1407"><td class="num" id="LN1407">1407</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1408"><td class="num" id="LN1408">1408</td><td class="line"> <span class='comment'>/* Do nothing */</span></td></tr>
+<tr class="codeline" data-linenumber="1409"><td class="num" id="LN1409">1409</td><td class="line">}</td></tr>
+</table></body></html>
diff --git a/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-c21a0f.html b/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-c21a0f.html
new file mode 100644
index 0000000..00c44c2
--- /dev/null
+++ b/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-c21a0f.html
@@ -0,0 +1,2385 @@
+<!doctype html>
+<html>
+<head>
+<title>terminal-profile.c</title>
+
+<style type="text/css">
+body { color:#000000; background-color:#ffffff }
+body { font-family:Helvetica, sans-serif; font-size:10pt }
+h1 { font-size:14pt }
+.FileName { margin-top: 5px; margin-bottom: 5px; display: inline; }
+.FileNav { margin-left: 5px; margin-right: 5px; display: inline; }
+.FileNav a { text-decoration:none; font-size: larger; }
+.divider { margin-top: 30px; margin-bottom: 30px; height: 15px; }
+.divider { background-color: gray; }
+.code { border-collapse:collapse; width:100%; }
+.code { font-family: "Monospace", monospace; font-size:10pt }
+.code { line-height: 1.2em }
+.comment { color: green; font-style: oblique }
+.keyword { color: blue }
+.string_literal { color: red }
+.directive { color: darkmagenta }
+
+/* Macros and variables could have pop-up notes hidden by default.
+ - Macro pop-up: expansion of the macro
+ - Variable pop-up: value (table) of the variable */
+.macro_popup, .variable_popup { display: none; }
+
+/* Pop-up appears on mouse-hover event. */
+.macro:hover .macro_popup, .variable:hover .variable_popup {
+ display: block;
+ padding: 2px;
+ -webkit-border-radius:5px;
+ -webkit-box-shadow:1px 1px 7px #000;
+ border-radius:5px;
+ box-shadow:1px 1px 7px #000;
+ position: absolute;
+ top: -1em;
+ left:10em;
+ z-index: 1
+}
+
+.macro_popup {
+ border: 2px solid red;
+ background-color:#FFF0F0;
+ font-weight: normal;
+}
+
+.variable_popup {
+ border: 2px solid blue;
+ background-color:#F0F0FF;
+ font-weight: bold;
+ font-family: Helvetica, sans-serif;
+ font-size: 9pt;
+}
+
+/* Pop-up notes needs a relative position as a base where they pops up. */
+.macro, .variable {
+ background-color: PaleGoldenRod;
+ position: relative;
+}
+.macro { color: DarkMagenta; }
+
+#tooltiphint {
+ position: fixed;
+ width: 50em;
+ margin-left: -25em;
+ left: 50%;
+ padding: 10px;
+ border: 1px solid #b0b0b0;
+ border-radius: 2px;
+ box-shadow: 1px 1px 7px black;
+ background-color: #c0c0c0;
+ z-index: 2;
+}
+
+.num { width:2.5em; padding-right:2ex; background-color:#eeeeee }
+.num { text-align:right; font-size:8pt }
+.num { color:#444444 }
+.line { padding-left: 1ex; border-left: 3px solid #ccc }
+.line { white-space: pre }
+.msg { -webkit-box-shadow:1px 1px 7px #000 }
+.msg { box-shadow:1px 1px 7px #000 }
+.msg { -webkit-border-radius:5px }
+.msg { border-radius:5px }
+.msg { font-family:Helvetica, sans-serif; font-size:8pt }
+.msg { float:left }
+.msg { position:relative }
+.msg { padding:0.25em 1ex 0.25em 1ex }
+.msg { margin-top:10px; margin-bottom:10px }
+.msg { font-weight:bold }
+.msg { max-width:60em; word-wrap: break-word; white-space: pre-wrap }
+.msgT { padding:0x; spacing:0x }
+.msgEvent { background-color:#fff8b4; color:#000000 }
+.msgControl { background-color:#bbbbbb; color:#000000 }
+.msgNote { background-color:#ddeeff; color:#000000 }
+.mrange { background-color:#dfddf3 }
+.mrange { border-bottom:1px solid #6F9DBE }
+.PathIndex { font-weight: bold; padding:0px 5px; margin-right:5px; }
+.PathIndex { -webkit-border-radius:8px }
+.PathIndex { border-radius:8px }
+.PathIndexEvent { background-color:#bfba87 }
+.PathIndexControl { background-color:#8c8c8c }
+.PathIndexPopUp { background-color: #879abc; }
+.PathNav a { text-decoration:none; font-size: larger }
+.CodeInsertionHint { font-weight: bold; background-color: #10dd10 }
+.CodeRemovalHint { background-color:#de1010 }
+.CodeRemovalHint { border-bottom:1px solid #6F9DBE }
+.msg.selected{ background-color:orange !important; }
+
+table.simpletable {
+ padding: 5px;
+ font-size:12pt;
+ margin:20px;
+ border-collapse: collapse; border-spacing: 0px;
+}
+td.rowname {
+ text-align: right;
+ vertical-align: top;
+ font-weight: bold;
+ color:#444444;
+ padding-right:2ex;
+}
+
+/* Hidden text. */
+input.spoilerhider + label {
+ cursor: pointer;
+ text-decoration: underline;
+ display: block;
+}
+input.spoilerhider {
+ display: none;
+}
+input.spoilerhider ~ .spoiler {
+ overflow: hidden;
+ margin: 10px auto 0;
+ height: 0;
+ opacity: 0;
+}
+input.spoilerhider:checked + label + .spoiler{
+ height: auto;
+ opacity: 1;
+}
+</style>
+</head>
+<body>
+<!-- BUGDESC This statement is never executed -->
+
+<!-- BUGTYPE Unreachable code -->
+
+<!-- BUGCATEGORY Unused code -->
+
+<!-- BUGFILE /rootdir/src/terminal-profile.c -->
+
+<!-- FILENAME terminal-profile.c -->
+
+<!-- FUNCTIONNAME terminal_profile_property_locked -->
+
+<!-- ISSUEHASHCONTENTOFLINEINCONTEXT c21a0f98214bfa9ddc94cde89ef7d09b -->
+
+<!-- BUGLINE 1579 -->
+
+<!-- BUGCOLUMN 10 -->
+
+<!-- BUGPATHLENGTH 1 -->
+
+<!-- BUGMETAEND -->
+<!-- REPORTHEADER -->
+<h3>Bug Summary</h3>
+<table class="simpletable">
+<tr><td class="rowname">File:</td><td>terminal-profile.c</td></tr>
+<tr><td class="rowname">Warning:</td><td><a href="#EndPath">line 1579, column 10</a><br />This statement is never executed</td></tr>
+
+</table>
+<!-- REPORTSUMMARYEXTRA -->
+<h3>Annotated Source Code</h3>
+<p>Press <a href="#" onclick="toggleHelp(); return false;">'?'</a>
+ to see keyboard shortcuts</p>
+<input type="checkbox" class="spoilerhider" id="showinvocation" />
+<label for="showinvocation" >Show analyzer invocation</label>
+<div class="spoiler">clang -cc1 -cc1 -triple x86_64-redhat-linux-gnu -analyze -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name terminal-profile.c -analyzer-checker=core -analyzer-checker=apiModeling -analyzer-checker=unix -analyzer-checker=deadcode -analyzer-checker=security.insecureAPI.UncheckedReturn -analyzer-checker=security.insecureAPI.getpw -analyzer-checker=security.insecureAPI.gets -analyzer-checker=security.insecureAPI.mktemp -analyzer-checker=security.insecureAPI.mkstemp -analyzer-checker=security.insecureAPI.vfork -analyzer-checker=nullability.NullPassedToNonnull -analyzer-checker=nullability.NullReturnedFromNonnull -analyzer-output plist -w -setup-static-analyzer -mrelocation-model static -mframe-pointer=all -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -tune-cpu generic -debugger-tuning=gdb -fcoverage-compilation-dir=/rootdir/src -resource-dir /usr/bin/../lib/clang/17 -D HAVE_CONFIG_H -I . -I .. -I ../src/mate-submodules/libegg -D TERMINAL_COMPILATION -D TERMINAL_RESOURCES_PATH_PREFIX="/org/mate/terminal" -D TERM_DATADIR="/usr/local/share" -D TERM_LOCALEDIR="/usr/local/share/locale" -D TERM_PKGDATADIR="/usr/local/share/mate-terminal" -D TERM_HELPDIR="/usr/local/share/help" -D SN_API_NOT_YET_FROZEN -D GDK_MULTIHEAD_SAFE -D G_DISABLE_SINGLE_INCLUDES -D PANGO_DISABLE_SINGLE_INCLUDES -D ATK_DISABLE_SINGLE_INCLUDES -D GDK_DISABLE_SINGLE_INCLUDES -D GDK_PIXBUF_DISABLE_SINGLE_INCLUDES -D GTK_DISABLE_SINGLE_INCLUDES -I /usr/include/dconf -I /usr/include/vte-2.91 -I /usr/include/pango-1.0 -I /usr/include/gtk-3.0 -I /usr/include/gdk-pixbuf-2.0 -I /usr/include/cairo -I /usr/include/dbus-1.0 -I /usr/lib64/dbus-1.0/include -I /usr/include/atk-1.0 -I /usr/include/harfbuzz -I /usr/include/freetype2 -I /usr/include/glib-2.0 -I /usr/lib64/glib-2.0/include -I /usr/include/cloudproviders -I /usr/include/at-spi2-atk/2.0 -I /usr/include/at-spi-2.0 -I /usr/include/blkid -I /usr/include/gio-unix-2.0 -I /usr/include/pixman-1 -I /usr/include/libmount -I /usr/include/libxml2 -I /usr/include/fribidi -I /usr/include/libpng16 -I /usr/include/sysprof-6 -internal-isystem /usr/bin/../lib/clang/17/include -internal-isystem /usr/local/include -internal-isystem /usr/bin/../lib/gcc/x86_64-redhat-linux/13/../../../../x86_64-redhat-linux/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -Wno-unused-parameter -fdebug-compilation-dir=/rootdir/src -ferror-limit 19 -fgnuc-version=4.2.1 -analyzer-checker deadcode.DeadStores -analyzer-checker alpha.deadcode.UnreachableCode -analyzer-checker alpha.core.CastSize -analyzer-checker alpha.core.CastToStruct -analyzer-checker alpha.core.IdenticalExpr -analyzer-checker alpha.core.SizeofPtr -analyzer-checker alpha.security.ArrayBoundV2 -analyzer-checker alpha.security.MallocOverflow -analyzer-checker alpha.security.ReturnPtrRange -analyzer-checker alpha.unix.SimpleStream -analyzer-checker alpha.unix.cstring.BufferOverlap -analyzer-checker alpha.unix.cstring.NotNullTerminated -analyzer-checker alpha.unix.cstring.OutOfBounds -analyzer-checker alpha.core.FixedAddr -analyzer-checker security.insecureAPI.strcpy -analyzer-output=html -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /rootdir/html-report/2024-02-18-131424-5067-1 -x c terminal-profile.c
+</div>
+<div id='tooltiphint' hidden="true">
+ <p>Keyboard shortcuts: </p>
+ <ul>
+ <li>Use 'j/k' keys for keyboard navigation</li>
+ <li>Use 'Shift+S' to show/hide relevant lines</li>
+ <li>Use '?' to toggle this window</li>
+ </ul>
+ <a href="#" onclick="toggleHelp(); return false;">Close</a>
+</div>
+<script type='text/javascript'>
+var relevant_lines = {"1": {"1579": 1}};
+
+var filterCounterexample = function (hide) {
+ var tables = document.getElementsByClassName("code");
+ for (var t=0; t<tables.length; t++) {
+ var table = tables[t];
+ var file_id = table.getAttribute("data-fileid");
+ var lines_in_fid = relevant_lines[file_id];
+ if (!lines_in_fid) {
+ lines_in_fid = {};
+ }
+ var lines = table.getElementsByClassName("codeline");
+ for (var i=0; i<lines.length; i++) {
+ var el = lines[i];
+ var lineNo = el.getAttribute("data-linenumber");
+ if (!lines_in_fid[lineNo]) {
+ if (hide) {
+ el.setAttribute("hidden", "");
+ } else {
+ el.removeAttribute("hidden");
+ }
+ }
+ }
+ }
+}
+
+window.addEventListener("keydown", function (event) {
+ if (event.defaultPrevented) {
+ return;
+ }
+ // SHIFT + S
+ if (event.shiftKey && event.keyCode == 83) {
+ var checked = document.getElementsByName("showCounterexample")[0].checked;
+ filterCounterexample(!checked);
+ document.getElementsByName("showCounterexample")[0].click();
+ } else {
+ return;
+ }
+ event.preventDefault();
+}, true);
+
+document.addEventListener("DOMContentLoaded", function() {
+ document.querySelector('input[name="showCounterexample"]').onchange=
+ function (event) {
+ filterCounterexample(this.checked);
+ };
+});
+</script>
+
+<form>
+ <input type="checkbox" name="showCounterexample" id="showCounterexample" />
+ <label for="showCounterexample">
+ Show only relevant lines
+ </label>
+ <input type="checkbox" name="showArrows"
+ id="showArrows" style="margin-left: 10px" />
+ <label for="showArrows">
+ Show control flow arrows
+ </label>
+</form>
+
+<script type='text/javascript'>
+// Return range of numbers from a range [lower, upper).
+function range(lower, upper) {
+ var array = [];
+ for (var i = lower; i <= upper; ++i) {
+ array.push(i);
+ }
+ return array;
+}
+
+var getRelatedArrowIndices = function(pathId) {
+ // HTML numeration of events is a bit different than it is in the path.
+ // Everything is rotated one step to the right, so the last element
+ // (error diagnostic) has index 0.
+ if (pathId == 0) {
+ // arrowIndices has at least 2 elements
+ pathId = arrowIndices.length - 1;
+ }
+
+ return range(arrowIndices[pathId], arrowIndices[pathId - 1]);
+}
+
+var highlightArrowsForSelectedEvent = function() {
+ const selectedNum = findNum();
+ const arrowIndicesToHighlight = getRelatedArrowIndices(selectedNum);
+ arrowIndicesToHighlight.forEach((index) => {
+ var arrow = document.querySelector("#arrow" + index);
+ if(arrow) {
+ classListAdd(arrow, "selected")
+ }
+ });
+}
+
+var getAbsoluteBoundingRect = function(element) {
+ const relative = element.getBoundingClientRect();
+ return {
+ left: relative.left + window.pageXOffset,
+ right: relative.right + window.pageXOffset,
+ top: relative.top + window.pageYOffset,
+ bottom: relative.bottom + window.pageYOffset,
+ height: relative.height,
+ width: relative.width
+ };
+}
+
+var drawArrow = function(index) {
+ // This function is based on the great answer from SO:
+ // https://stackoverflow.com/a/39575674/11582326
+ var start = document.querySelector("#start" + index);
+ var end = document.querySelector("#end" + index);
+ var arrow = document.querySelector("#arrow" + index);
+
+ var startRect = getAbsoluteBoundingRect(start);
+ var endRect = getAbsoluteBoundingRect(end);
+
+ // It is an arrow from a token to itself, no need to visualize it.
+ if (startRect.top == endRect.top &&
+ startRect.left == endRect.left)
+ return;
+
+ // Each arrow is a very simple Bézier curve, with two nodes and
+ // two handles. So, we need to calculate four points in the window:
+ // * start node
+ var posStart = { x: 0, y: 0 };
+ // * end node
+ var posEnd = { x: 0, y: 0 };
+ // * handle for the start node
+ var startHandle = { x: 0, y: 0 };
+ // * handle for the end node
+ var endHandle = { x: 0, y: 0 };
+ // One can visualize it as follows:
+ //
+ // start handle
+ // /
+ // X"""_.-""""X
+ // .' \
+ // / start node
+ // |
+ // |
+ // | end node
+ // \ /
+ // `->X
+ // X-'
+ // \
+ // end handle
+ //
+ // NOTE: (0, 0) is the top left corner of the window.
+
+ // We have 3 similar, but still different scenarios to cover:
+ //
+ // 1. Two tokens on different lines.
+ // -xxx
+ // /
+ // \
+ // -> xxx
+ // In this situation, we draw arrow on the left curving to the left.
+ // 2. Two tokens on the same line, and the destination is on the right.
+ // ____
+ // / \
+ // / V
+ // xxx xxx
+ // In this situation, we draw arrow above curving upwards.
+ // 3. Two tokens on the same line, and the destination is on the left.
+ // xxx xxx
+ // ^ /
+ // \____/
+ // In this situation, we draw arrow below curving downwards.
+ const onDifferentLines = startRect.top <= endRect.top - 5 ||
+ startRect.top >= endRect.top + 5;
+ const leftToRight = startRect.left < endRect.left;
+
+ // NOTE: various magic constants are chosen empirically for
+ // better positioning and look
+ if (onDifferentLines) {
+ // Case #1
+ const topToBottom = startRect.top < endRect.top;
+ posStart.x = startRect.left - 1;
+ // We don't want to start it at the top left corner of the token,
+ // it doesn't feel like this is where the arrow comes from.
+ // For this reason, we start it in the middle of the left side
+ // of the token.
+ posStart.y = startRect.top + startRect.height / 2;
+
+ // End node has arrow head and we give it a bit more space.
+ posEnd.x = endRect.left - 4;
+ posEnd.y = endRect.top;
+
+ // Utility object with x and y offsets for handles.
+ var curvature = {
+ // We want bottom-to-top arrow to curve a bit more, so it doesn't
+ // overlap much with top-to-bottom curves (much more frequent).
+ x: topToBottom ? 15 : 25,
+ y: Math.min((posEnd.y - posStart.y) / 3, 10)
+ }
+
+ // When destination is on the different line, we can make a
+ // curvier arrow because we have space for it.
+ // So, instead of using
+ //
+ // startHandle.x = posStart.x - curvature.x
+ // endHandle.x = posEnd.x - curvature.x
+ //
+ // We use the leftmost of these two values for both handles.
+ startHandle.x = Math.min(posStart.x, posEnd.x) - curvature.x;
+ endHandle.x = startHandle.x;
+
+ // Curving downwards from the start node...
+ startHandle.y = posStart.y + curvature.y;
+ // ... and upwards from the end node.
+ endHandle.y = posEnd.y - curvature.y;
+
+ } else if (leftToRight) {
+ // Case #2
+ // Starting from the top right corner...
+ posStart.x = startRect.right - 1;
+ posStart.y = startRect.top;
+
+ // ...and ending at the top left corner of the end token.
+ posEnd.x = endRect.left + 1;
+ posEnd.y = endRect.top - 1;
+
+ // Utility object with x and y offsets for handles.
+ var curvature = {
+ x: Math.min((posEnd.x - posStart.x) / 3, 15),
+ y: 5
+ }
+
+ // Curving to the right...
+ startHandle.x = posStart.x + curvature.x;
+ // ... and upwards from the start node.
+ startHandle.y = posStart.y - curvature.y;
+
+ // And to the left...
+ endHandle.x = posEnd.x - curvature.x;
+ // ... and upwards from the end node.
+ endHandle.y = posEnd.y - curvature.y;
+
+ } else {
+ // Case #3
+ // Starting from the bottom right corner...
+ posStart.x = startRect.right;
+ posStart.y = startRect.bottom;
+
+ // ...and ending also at the bottom right corner, but of the end token.
+ posEnd.x = endRect.right - 1;
+ posEnd.y = endRect.bottom + 1;
+
+ // Utility object with x and y offsets for handles.
+ var curvature = {
+ x: Math.min((posStart.x - posEnd.x) / 3, 15),
+ y: 5
+ }
+
+ // Curving to the left...
+ startHandle.x = posStart.x - curvature.x;
+ // ... and downwards from the start node.
+ startHandle.y = posStart.y + curvature.y;
+
+ // And to the right...
+ endHandle.x = posEnd.x + curvature.x;
+ // ... and downwards from the end node.
+ endHandle.y = posEnd.y + curvature.y;
+ }
+
+ // Put it all together into a path.
+ // More information on the format:
+ // https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths
+ var pathStr = "M" + posStart.x + "," + posStart.y + " " +
+ "C" + startHandle.x + "," + startHandle.y + " " +
+ endHandle.x + "," + endHandle.y + " " +
+ posEnd.x + "," + posEnd.y;
+
+ arrow.setAttribute("d", pathStr);
+};
+
+var drawArrows = function() {
+ const numOfArrows = document.querySelectorAll("path[id^=arrow]").length;
+ for (var i = 0; i < numOfArrows; ++i) {
+ drawArrow(i);
+ }
+}
+
+var toggleArrows = function(event) {
+ const arrows = document.querySelector("#arrows");
+ if (event.target.checked) {
+ arrows.setAttribute("visibility", "visible");
+ } else {
+ arrows.setAttribute("visibility", "hidden");
+ }
+}
+
+window.addEventListener("resize", drawArrows);
+document.addEventListener("DOMContentLoaded", function() {
+ // Whenever we show invocation, locations change, i.e. we
+ // need to redraw arrows.
+ document
+ .querySelector('input[id="showinvocation"]')
+ .addEventListener("click", drawArrows);
+ // Hiding irrelevant lines also should cause arrow rerender.
+ document
+ .querySelector('input[name="showCounterexample"]')
+ .addEventListener("change", drawArrows);
+ document
+ .querySelector('input[name="showArrows"]')
+ .addEventListener("change", toggleArrows);
+ drawArrows();
+ // Default highlighting for the last event.
+ highlightArrowsForSelectedEvent();
+});
+</script>
+
+<script type='text/javascript'>
+var digitMatcher = new RegExp("[0-9]+");
+
+var querySelectorAllArray = function(selector) {
+ return Array.prototype.slice.call(
+ document.querySelectorAll(selector));
+}
+
+document.addEventListener("DOMContentLoaded", function() {
+ querySelectorAllArray(".PathNav > a").forEach(
+ function(currentValue, currentIndex) {
+ var hrefValue = currentValue.getAttribute("href");
+ currentValue.onclick = function() {
+ scrollTo(document.querySelector(hrefValue));
+ return false;
+ };
+ });
+});
+
+var findNum = function() {
+ var s = document.querySelector(".msg.selected");
+ if (!s || s.id == "EndPath") {
+ return 0;
+ }
+ var out = parseInt(digitMatcher.exec(s.id)[0]);
+ return out;
+};
+
+var classListAdd = function(el, theClass) {
+ if(!el.className.baseVal)
+ el.className += " " + theClass;
+ else
+ el.className.baseVal += " " + theClass;
+};
+
+var classListRemove = function(el, theClass) {
+ var className = (!el.className.baseVal) ?
+ el.className : el.className.baseVal;
+ className = className.replace(" " + theClass, "");
+ if(!el.className.baseVal)
+ el.className = className;
+ else
+ el.className.baseVal = className;
+};
+
+var scrollTo = function(el) {
+ querySelectorAllArray(".selected").forEach(function(s) {
+ classListRemove(s, "selected");
+ });
+ classListAdd(el, "selected");
+ window.scrollBy(0, el.getBoundingClientRect().top -
+ (window.innerHeight / 2));
+ highlightArrowsForSelectedEvent();
+};
+
+var move = function(num, up, numItems) {
+ if (num == 1 && up || num == numItems - 1 && !up) {
+ return 0;
+ } else if (num == 0 && up) {
+ return numItems - 1;
+ } else if (num == 0 && !up) {
+ return 1 % numItems;
+ }
+ return up ? num - 1 : num + 1;
+}
+
+var numToId = function(num) {
+ if (num == 0) {
+ return document.getElementById("EndPath")
+ }
+ return document.getElementById("Path" + num);
+};
+
+var navigateTo = function(up) {
+ var numItems = document.querySelectorAll(
+ ".line > .msgEvent, .line > .msgControl").length;
+ var currentSelected = findNum();
+ var newSelected = move(currentSelected, up, numItems);
+ var newEl = numToId(newSelected, numItems);
+
+ // Scroll element into center.
+ scrollTo(newEl);
+};
+
+window.addEventListener("keydown", function (event) {
+ if (event.defaultPrevented) {
+ return;
+ }
+ // key 'j'
+ if (event.keyCode == 74) {
+ navigateTo(/*up=*/false);
+ // key 'k'
+ } else if (event.keyCode == 75) {
+ navigateTo(/*up=*/true);
+ } else {
+ return;
+ }
+ event.preventDefault();
+}, true);
+</script>
+
+<script type='text/javascript'>
+
+var toggleHelp = function() {
+ var hint = document.querySelector("#tooltiphint");
+ var attributeName = "hidden";
+ if (hint.hasAttribute(attributeName)) {
+ hint.removeAttribute(attributeName);
+ } else {
+ hint.setAttribute("hidden", "true");
+ }
+};
+window.addEventListener("keydown", function (event) {
+ if (event.defaultPrevented) {
+ return;
+ }
+ if (event.key == "?") {
+ toggleHelp();
+ } else {
+ return;
+ }
+ event.preventDefault();
+});
+</script>
+
+<style type="text/css">
+ svg {
+ position:absolute;
+ top:0;
+ left:0;
+ height:100%;
+ width:100%;
+ pointer-events: none;
+ overflow: visible
+ }
+ .arrow {
+ stroke-opacity: 0.2;
+ stroke-width: 1;
+ marker-end: url(#arrowhead);
+ }
+
+ .arrow.selected {
+ stroke-opacity: 0.6;
+ stroke-width: 2;
+ marker-end: url(#arrowheadSelected);
+ }
+
+ .arrowhead {
+ orient: auto;
+ stroke: none;
+ opacity: 0.6;
+ fill: blue;
+ }
+</style>
+<svg xmlns="http://www.w3.org/2000/svg">
+ <defs>
+ <marker id="arrowheadSelected" class="arrowhead" opacity="0.6"
+ viewBox="0 0 10 10" refX="3" refY="5"
+ markerWidth="4" markerHeight="4">
+ <path d="M 0 0 L 10 5 L 0 10 z" />
+ </marker>
+ <marker id="arrowhead" class="arrowhead" opacity="0.2"
+ viewBox="0 0 10 10" refX="3" refY="5"
+ markerWidth="4" markerHeight="4">
+ <path d="M 0 0 L 10 5 L 0 10 z" />
+ </marker>
+ </defs>
+ <g id="arrows" fill="none" stroke="blue" visibility="hidden">
+
+ </g>
+</svg>
+<script type='text/javascript'>
+const arrowIndices = [ 0,0 ]
+</script>
+<table class="code" data-fileid="1">
+<tr class="codeline" data-linenumber="1"><td class="num" id="LN1">1</td><td class="line"><span class='comment'>/*</span></td></tr>
+<tr class="codeline" data-linenumber="2"><td class="num" id="LN2">2</td><td class="line"> <span class='comment'>* Copyright © 2001 Havoc Pennington</span></td></tr>
+<tr class="codeline" data-linenumber="3"><td class="num" id="LN3">3</td><td class="line"> <span class='comment'>* Copyright © 2002 Mathias Hasselmann</span></td></tr>
+<tr class="codeline" data-linenumber="4"><td class="num" id="LN4">4</td><td class="line"> <span class='comment'>* Copyright © 2008 Christian Persch</span></td></tr>
+<tr class="codeline" data-linenumber="5"><td class="num" id="LN5">5</td><td class="line"> <span class='comment'>* Copyright (C) 2012-2021 MATE Developers</span></td></tr>
+<tr class="codeline" data-linenumber="6"><td class="num" id="LN6">6</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="7"><td class="num" id="LN7">7</td><td class="line"> <span class='comment'>* Mate-terminal is free software; you can redistribute it and/or modify</span></td></tr>
+<tr class="codeline" data-linenumber="8"><td class="num" id="LN8">8</td><td class="line"> <span class='comment'>* it under the terms of the GNU General Public License as published by</span></td></tr>
+<tr class="codeline" data-linenumber="9"><td class="num" id="LN9">9</td><td class="line"> <span class='comment'>* the Free Software Foundation; either version 3 of the License, or</span></td></tr>
+<tr class="codeline" data-linenumber="10"><td class="num" id="LN10">10</td><td class="line"> <span class='comment'>* (at your option) any later version.</span></td></tr>
+<tr class="codeline" data-linenumber="11"><td class="num" id="LN11">11</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="12"><td class="num" id="LN12">12</td><td class="line"> <span class='comment'>* Mate-terminal is distributed in the hope that it will be useful,</span></td></tr>
+<tr class="codeline" data-linenumber="13"><td class="num" id="LN13">13</td><td class="line"> <span class='comment'>* but WITHOUT ANY WARRANTY; without even the implied warranty of</span></td></tr>
+<tr class="codeline" data-linenumber="14"><td class="num" id="LN14">14</td><td class="line"> <span class='comment'>* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></td></tr>
+<tr class="codeline" data-linenumber="15"><td class="num" id="LN15">15</td><td class="line"> <span class='comment'>* GNU General Public License for more details.</span></td></tr>
+<tr class="codeline" data-linenumber="16"><td class="num" id="LN16">16</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="17"><td class="num" id="LN17">17</td><td class="line"> <span class='comment'>* You should have received a copy of the GNU General Public License</span></td></tr>
+<tr class="codeline" data-linenumber="18"><td class="num" id="LN18">18</td><td class="line"> <span class='comment'>* along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.</span></td></tr>
+<tr class="codeline" data-linenumber="19"><td class="num" id="LN19">19</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="20"><td class="num" id="LN20">20</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="21"><td class="num" id="LN21">21</td><td class="line"><span class='directive'>#include &lt;config.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="22"><td class="num" id="LN22">22</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="23"><td class="num" id="LN23">23</td><td class="line"><span class='directive'>#include &lt;string.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="24"><td class="num" id="LN24">24</td><td class="line"><span class='directive'>#include &lt;stdlib.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="25"><td class="num" id="LN25">25</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="26"><td class="num" id="LN26">26</td><td class="line"><span class='directive'>#include &lt;gtk/gtk.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="27"><td class="num" id="LN27">27</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="28"><td class="num" id="LN28">28</td><td class="line"><span class='directive'>#include "terminal-app.h"</span></td></tr>
+<tr class="codeline" data-linenumber="29"><td class="num" id="LN29">29</td><td class="line"><span class='directive'>#include "terminal-debug.h"</span></td></tr>
+<tr class="codeline" data-linenumber="30"><td class="num" id="LN30">30</td><td class="line"><span class='directive'>#include "terminal-intl.h"</span></td></tr>
+<tr class="codeline" data-linenumber="31"><td class="num" id="LN31">31</td><td class="line"><span class='directive'>#include "terminal-profile.h"</span></td></tr>
+<tr class="codeline" data-linenumber="32"><td class="num" id="LN32">32</td><td class="line"><span class='directive'>#include "terminal-screen.h"</span></td></tr>
+<tr class="codeline" data-linenumber="33"><td class="num" id="LN33">33</td><td class="line"><span class='directive'>#include "terminal-type-builtins.h"</span></td></tr>
+<tr class="codeline" data-linenumber="34"><td class="num" id="LN34">34</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="35"><td class="num" id="LN35">35</td><td class="line"><span class='comment'>/* To add a new key, you need to:</span></td></tr>
+<tr class="codeline" data-linenumber="36"><td class="num" id="LN36">36</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="37"><td class="num" id="LN37">37</td><td class="line"> <span class='comment'>* - add an entry to the enum below</span></td></tr>
+<tr class="codeline" data-linenumber="38"><td class="num" id="LN38">38</td><td class="line"> <span class='comment'>* - add a #define with its name in terminal-profile.h</span></td></tr>
+<tr class="codeline" data-linenumber="39"><td class="num" id="LN39">39</td><td class="line"> <span class='comment'>* - add a gobject property for it in terminal_profile_class_init</span></td></tr>
+<tr class="codeline" data-linenumber="40"><td class="num" id="LN40">40</td><td class="line"> <span class='comment'>* - if the property's type needs special casing, add that to</span></td></tr>
+<tr class="codeline" data-linenumber="41"><td class="num" id="LN41">41</td><td class="line"> <span class='comment'>* terminal_profile_gsettings_notify_cb and</span></td></tr>
+<tr class="codeline" data-linenumber="42"><td class="num" id="LN42">42</td><td class="line"> <span class='comment'>* terminal_profile_gsettings_changeset_add</span></td></tr>
+<tr class="codeline" data-linenumber="43"><td class="num" id="LN43">43</td><td class="line"> <span class='comment'>* - if necessary the default value cannot be handled via the paramspec,</span></td></tr>
+<tr class="codeline" data-linenumber="44"><td class="num" id="LN44">44</td><td class="line"> <span class='comment'>* handle that in terminal_profile_reset_property_internal</span></td></tr>
+<tr class="codeline" data-linenumber="45"><td class="num" id="LN45">45</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="46"><td class="num" id="LN46">46</td><td class="line"><span class='keyword'>enum</span></td></tr>
+<tr class="codeline" data-linenumber="47"><td class="num" id="LN47">47</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="48"><td class="num" id="LN48">48</td><td class="line"> PROP_0,</td></tr>
+<tr class="codeline" data-linenumber="49"><td class="num" id="LN49">49</td><td class="line"> PROP_ALLOW_BOLD,</td></tr>
+<tr class="codeline" data-linenumber="50"><td class="num" id="LN50">50</td><td class="line"> PROP_BACKGROUND_COLOR,</td></tr>
+<tr class="codeline" data-linenumber="51"><td class="num" id="LN51">51</td><td class="line"> PROP_BACKGROUND_DARKNESS,</td></tr>
+<tr class="codeline" data-linenumber="52"><td class="num" id="LN52">52</td><td class="line"> PROP_BACKGROUND_IMAGE,</td></tr>
+<tr class="codeline" data-linenumber="53"><td class="num" id="LN53">53</td><td class="line"> PROP_BACKGROUND_IMAGE_FILE,</td></tr>
+<tr class="codeline" data-linenumber="54"><td class="num" id="LN54">54</td><td class="line"> PROP_BACKGROUND_TYPE,</td></tr>
+<tr class="codeline" data-linenumber="55"><td class="num" id="LN55">55</td><td class="line"> PROP_BACKSPACE_BINDING,</td></tr>
+<tr class="codeline" data-linenumber="56"><td class="num" id="LN56">56</td><td class="line"> PROP_BOLD_COLOR,</td></tr>
+<tr class="codeline" data-linenumber="57"><td class="num" id="LN57">57</td><td class="line"> PROP_BOLD_COLOR_SAME_AS_FG,</td></tr>
+<tr class="codeline" data-linenumber="58"><td class="num" id="LN58">58</td><td class="line"> PROP_CURSOR_BLINK_MODE,</td></tr>
+<tr class="codeline" data-linenumber="59"><td class="num" id="LN59">59</td><td class="line"> PROP_CURSOR_SHAPE,</td></tr>
+<tr class="codeline" data-linenumber="60"><td class="num" id="LN60">60</td><td class="line"> PROP_CUSTOM_COMMAND,</td></tr>
+<tr class="codeline" data-linenumber="61"><td class="num" id="LN61">61</td><td class="line"> PROP_DEFAULT_SIZE_COLUMNS,</td></tr>
+<tr class="codeline" data-linenumber="62"><td class="num" id="LN62">62</td><td class="line"> PROP_DEFAULT_SIZE_ROWS,</td></tr>
+<tr class="codeline" data-linenumber="63"><td class="num" id="LN63">63</td><td class="line"> PROP_DEFAULT_SHOW_MENUBAR,</td></tr>
+<tr class="codeline" data-linenumber="64"><td class="num" id="LN64">64</td><td class="line"> PROP_DELETE_BINDING,</td></tr>
+<tr class="codeline" data-linenumber="65"><td class="num" id="LN65">65</td><td class="line"> PROP_EXIT_ACTION,</td></tr>
+<tr class="codeline" data-linenumber="66"><td class="num" id="LN66">66</td><td class="line"> PROP_FONT,</td></tr>
+<tr class="codeline" data-linenumber="67"><td class="num" id="LN67">67</td><td class="line"> PROP_FOREGROUND_COLOR,</td></tr>
+<tr class="codeline" data-linenumber="68"><td class="num" id="LN68">68</td><td class="line"> PROP_LOGIN_SHELL,</td></tr>
+<tr class="codeline" data-linenumber="69"><td class="num" id="LN69">69</td><td class="line"> PROP_NAME,</td></tr>
+<tr class="codeline" data-linenumber="70"><td class="num" id="LN70">70</td><td class="line"> PROP_PALETTE,</td></tr>
+<tr class="codeline" data-linenumber="71"><td class="num" id="LN71">71</td><td class="line"> PROP_SCROLL_BACKGROUND,</td></tr>
+<tr class="codeline" data-linenumber="72"><td class="num" id="LN72">72</td><td class="line"> PROP_SCROLLBACK_LINES,</td></tr>
+<tr class="codeline" data-linenumber="73"><td class="num" id="LN73">73</td><td class="line"> PROP_SCROLLBACK_UNLIMITED,</td></tr>
+<tr class="codeline" data-linenumber="74"><td class="num" id="LN74">74</td><td class="line"> PROP_SCROLLBAR_POSITION,</td></tr>
+<tr class="codeline" data-linenumber="75"><td class="num" id="LN75">75</td><td class="line"> PROP_SCROLL_ON_KEYSTROKE,</td></tr>
+<tr class="codeline" data-linenumber="76"><td class="num" id="LN76">76</td><td class="line"> PROP_SCROLL_ON_OUTPUT,</td></tr>
+<tr class="codeline" data-linenumber="77"><td class="num" id="LN77">77</td><td class="line"> PROP_SILENT_BELL,</td></tr>
+<tr class="codeline" data-linenumber="78"><td class="num" id="LN78">78</td><td class="line"> PROP_TITLE,</td></tr>
+<tr class="codeline" data-linenumber="79"><td class="num" id="LN79">79</td><td class="line"> PROP_TITLE_MODE,</td></tr>
+<tr class="codeline" data-linenumber="80"><td class="num" id="LN80">80</td><td class="line"> PROP_USE_CUSTOM_COMMAND,</td></tr>
+<tr class="codeline" data-linenumber="81"><td class="num" id="LN81">81</td><td class="line"> PROP_USE_CUSTOM_DEFAULT_SIZE,</td></tr>
+<tr class="codeline" data-linenumber="82"><td class="num" id="LN82">82</td><td class="line"> PROP_USE_SKEY,</td></tr>
+<tr class="codeline" data-linenumber="83"><td class="num" id="LN83">83</td><td class="line"> PROP_USE_URLS,</td></tr>
+<tr class="codeline" data-linenumber="84"><td class="num" id="LN84">84</td><td class="line"> PROP_USE_SYSTEM_FONT,</td></tr>
+<tr class="codeline" data-linenumber="85"><td class="num" id="LN85">85</td><td class="line"> PROP_USE_THEME_COLORS,</td></tr>
+<tr class="codeline" data-linenumber="86"><td class="num" id="LN86">86</td><td class="line"> PROP_VISIBLE_NAME,</td></tr>
+<tr class="codeline" data-linenumber="87"><td class="num" id="LN87">87</td><td class="line"> PROP_WORD_CHARS,</td></tr>
+<tr class="codeline" data-linenumber="88"><td class="num" id="LN88">88</td><td class="line"> PROP_COPY_SELECTION,</td></tr>
+<tr class="codeline" data-linenumber="89"><td class="num" id="LN89">89</td><td class="line"> LAST_PROP</td></tr>
+<tr class="codeline" data-linenumber="90"><td class="num" id="LN90">90</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="91"><td class="num" id="LN91">91</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="92"><td class="num" id="LN92">92</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_ALLOW_BOLD<span class='macro_popup'>"allow-bold"</span></span> "allow-bold"</span></td></tr>
+<tr class="codeline" data-linenumber="93"><td class="num" id="LN93">93</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_BACKGROUND_COLOR<span class='macro_popup'>"background-color"</span></span> "background-color"</span></td></tr>
+<tr class="codeline" data-linenumber="94"><td class="num" id="LN94">94</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_BACKGROUND_DARKNESS<span class='macro_popup'>"background-darkness"</span></span> "background-darkness"</span></td></tr>
+<tr class="codeline" data-linenumber="95"><td class="num" id="LN95">95</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_BACKGROUND_IMAGE_FILE<span class='macro_popup'>"background-image"</span></span> "background-image"</span></td></tr>
+<tr class="codeline" data-linenumber="96"><td class="num" id="LN96">96</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_BACKGROUND_TYPE<span class='macro_popup'>"background-type"</span></span> "background-type"</span></td></tr>
+<tr class="codeline" data-linenumber="97"><td class="num" id="LN97">97</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_BACKSPACE_BINDING<span class='macro_popup'>"backspace-binding"</span></span> "backspace-binding"</span></td></tr>
+<tr class="codeline" data-linenumber="98"><td class="num" id="LN98">98</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_BOLD_COLOR<span class='macro_popup'>"bold-color"</span></span> "bold-color"</span></td></tr>
+<tr class="codeline" data-linenumber="99"><td class="num" id="LN99">99</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_BOLD_COLOR_SAME_AS_FG<span class='macro_popup'>"bold-color-same-as-fg"</span></span> "bold-color-same-as-fg"</span></td></tr>
+<tr class="codeline" data-linenumber="100"><td class="num" id="LN100">100</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_CURSOR_BLINK_MODE<span class='macro_popup'>"cursor-blink-mode"</span></span> "cursor-blink-mode"</span></td></tr>
+<tr class="codeline" data-linenumber="101"><td class="num" id="LN101">101</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_CURSOR_SHAPE<span class='macro_popup'>"cursor-shape"</span></span> "cursor-shape"</span></td></tr>
+<tr class="codeline" data-linenumber="102"><td class="num" id="LN102">102</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_CUSTOM_COMMAND<span class='macro_popup'>"custom-command"</span></span> "custom-command"</span></td></tr>
+<tr class="codeline" data-linenumber="103"><td class="num" id="LN103">103</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_DEFAULT_SHOW_MENUBAR<span class='macro_popup'>"default-show-menubar"</span></span> "default-show-menubar"</span></td></tr>
+<tr class="codeline" data-linenumber="104"><td class="num" id="LN104">104</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_DEFAULT_SIZE_COLUMNS<span class='macro_popup'>"default-size-columns"</span></span> "default-size-columns"</span></td></tr>
+<tr class="codeline" data-linenumber="105"><td class="num" id="LN105">105</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_DEFAULT_SIZE_ROWS<span class='macro_popup'>"default-size-rows"</span></span> "default-size-rows"</span></td></tr>
+<tr class="codeline" data-linenumber="106"><td class="num" id="LN106">106</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_DELETE_BINDING<span class='macro_popup'>"delete-binding"</span></span> "delete-binding"</span></td></tr>
+<tr class="codeline" data-linenumber="107"><td class="num" id="LN107">107</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_EXIT_ACTION<span class='macro_popup'>"exit-action"</span></span> "exit-action"</span></td></tr>
+<tr class="codeline" data-linenumber="108"><td class="num" id="LN108">108</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_FONT<span class='macro_popup'>"font"</span></span> "font"</span></td></tr>
+<tr class="codeline" data-linenumber="109"><td class="num" id="LN109">109</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_FOREGROUND_COLOR<span class='macro_popup'>"foreground-color"</span></span> "foreground-color"</span></td></tr>
+<tr class="codeline" data-linenumber="110"><td class="num" id="LN110">110</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_LOGIN_SHELL<span class='macro_popup'>"login-shell"</span></span> "login-shell"</span></td></tr>
+<tr class="codeline" data-linenumber="111"><td class="num" id="LN111">111</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_PALETTE<span class='macro_popup'>"palette"</span></span> "palette"</span></td></tr>
+<tr class="codeline" data-linenumber="112"><td class="num" id="LN112">112</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_SCROLL_BACKGROUND<span class='macro_popup'>"scroll-background"</span></span> "scroll-background"</span></td></tr>
+<tr class="codeline" data-linenumber="113"><td class="num" id="LN113">113</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_SCROLLBACK_LINES<span class='macro_popup'>"scrollback-lines"</span></span> "scrollback-lines"</span></td></tr>
+<tr class="codeline" data-linenumber="114"><td class="num" id="LN114">114</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_SCROLLBACK_UNLIMITED<span class='macro_popup'>"scrollback-unlimited"</span></span> "scrollback-unlimited"</span></td></tr>
+<tr class="codeline" data-linenumber="115"><td class="num" id="LN115">115</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_SCROLLBAR_POSITION<span class='macro_popup'>"scrollbar-position"</span></span> "scrollbar-position"</span></td></tr>
+<tr class="codeline" data-linenumber="116"><td class="num" id="LN116">116</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_SCROLL_ON_KEYSTROKE<span class='macro_popup'>"scroll-on-keystroke"</span></span> "scroll-on-keystroke"</span></td></tr>
+<tr class="codeline" data-linenumber="117"><td class="num" id="LN117">117</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_SCROLL_ON_OUTPUT<span class='macro_popup'>"scroll-on-output"</span></span> "scroll-on-output"</span></td></tr>
+<tr class="codeline" data-linenumber="118"><td class="num" id="LN118">118</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_SILENT_BELL<span class='macro_popup'>"silent-bell"</span></span> "silent-bell"</span></td></tr>
+<tr class="codeline" data-linenumber="119"><td class="num" id="LN119">119</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_COPY_SELECTION<span class='macro_popup'>"copy-selection"</span></span> "copy-selection"</span></td></tr>
+<tr class="codeline" data-linenumber="120"><td class="num" id="LN120">120</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_TITLE_MODE<span class='macro_popup'>"title-mode"</span></span> "title-mode"</span></td></tr>
+<tr class="codeline" data-linenumber="121"><td class="num" id="LN121">121</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_TITLE<span class='macro_popup'>"title"</span></span> "title"</span></td></tr>
+<tr class="codeline" data-linenumber="122"><td class="num" id="LN122">122</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_USE_CUSTOM_COMMAND<span class='macro_popup'>"use-custom-command"</span></span> "use-custom-command"</span></td></tr>
+<tr class="codeline" data-linenumber="123"><td class="num" id="LN123">123</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_USE_CUSTOM_DEFAULT_SIZE<span class='macro_popup'>"use-custom-default-size"</span></span> "use-custom-default-size"</span></td></tr>
+<tr class="codeline" data-linenumber="124"><td class="num" id="LN124">124</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_USE_SKEY<span class='macro_popup'>"use-skey"</span></span> "use-skey"</span></td></tr>
+<tr class="codeline" data-linenumber="125"><td class="num" id="LN125">125</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_USE_URLS<span class='macro_popup'>"use-urls"</span></span> "use-urls"</span></td></tr>
+<tr class="codeline" data-linenumber="126"><td class="num" id="LN126">126</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_USE_SYSTEM_FONT<span class='macro_popup'>"use-system-font"</span></span> "use-system-font"</span></td></tr>
+<tr class="codeline" data-linenumber="127"><td class="num" id="LN127">127</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_USE_THEME_COLORS<span class='macro_popup'>"use-theme-colors"</span></span> "use-theme-colors"</span></td></tr>
+<tr class="codeline" data-linenumber="128"><td class="num" id="LN128">128</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_VISIBLE_NAME<span class='macro_popup'>"visible-name"</span></span> "visible-name"</span></td></tr>
+<tr class="codeline" data-linenumber="129"><td class="num" id="LN129">129</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_WORD_CHARS<span class='macro_popup'>"word-chars"</span></span> "word-chars"</span></td></tr>
+<tr class="codeline" data-linenumber="130"><td class="num" id="LN130">130</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="131"><td class="num" id="LN131">131</td><td class="line"><span class='comment'>/* Keep these in sync with the GSettings schema! */</span></td></tr>
+<tr class="codeline" data-linenumber="132"><td class="num" id="LN132">132</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_ALLOW_BOLD<span class='macro_popup'>((!(0)))</span></span> (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="133"><td class="num" id="LN133">133</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_BACKGROUND_COLOR<span class='macro_popup'>("#FFFFDD")</span></span> ("#FFFFDD")</span></td></tr>
+<tr class="codeline" data-linenumber="134"><td class="num" id="LN134">134</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_BOLD_COLOR_SAME_AS_FG<span class='macro_popup'>((!(0)))</span></span> (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="135"><td class="num" id="LN135">135</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_BACKGROUND_DARKNESS<span class='macro_popup'>(0.5)</span></span> (0.5)</span></td></tr>
+<tr class="codeline" data-linenumber="136"><td class="num" id="LN136">136</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_BACKGROUND_IMAGE_FILE<span class='macro_popup'>("")</span></span> ("")</span></td></tr>
+<tr class="codeline" data-linenumber="137"><td class="num" id="LN137">137</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_BACKGROUND_TYPE<span class='macro_popup'>(TERMINAL_BACKGROUND_SOLID)</span></span> (TERMINAL_BACKGROUND_SOLID)</span></td></tr>
+<tr class="codeline" data-linenumber="138"><td class="num" id="LN138">138</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_BACKSPACE_BINDING<span class='macro_popup'>(VTE_ERASE_ASCII_DELETE)</span></span> (VTE_ERASE_ASCII_DELETE)</span></td></tr>
+<tr class="codeline" data-linenumber="139"><td class="num" id="LN139">139</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_CURSOR_BLINK_MODE<span class='macro_popup'>(VTE_CURSOR_BLINK_SYSTEM)</span></span> (VTE_CURSOR_BLINK_SYSTEM)</span></td></tr>
+<tr class="codeline" data-linenumber="140"><td class="num" id="LN140">140</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_CURSOR_SHAPE<span class='macro_popup'>(VTE_CURSOR_SHAPE_BLOCK)</span></span> (VTE_CURSOR_SHAPE_BLOCK)</span></td></tr>
+<tr class="codeline" data-linenumber="141"><td class="num" id="LN141">141</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_CUSTOM_COMMAND<span class='macro_popup'>("")</span></span> ("")</span></td></tr>
+<tr class="codeline" data-linenumber="142"><td class="num" id="LN142">142</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_DEFAULT_SHOW_MENUBAR<span class='macro_popup'>((!(0)))</span></span> (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="143"><td class="num" id="LN143">143</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_DEFAULT_SIZE_COLUMNS<span class='macro_popup'>(80)</span></span> (80)</span></td></tr>
+<tr class="codeline" data-linenumber="144"><td class="num" id="LN144">144</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_DEFAULT_SIZE_ROWS<span class='macro_popup'>(24)</span></span> (24)</span></td></tr>
+<tr class="codeline" data-linenumber="145"><td class="num" id="LN145">145</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_DELETE_BINDING<span class='macro_popup'>(VTE_ERASE_DELETE_SEQUENCE)</span></span> (VTE_ERASE_DELETE_SEQUENCE)</span></td></tr>
+<tr class="codeline" data-linenumber="146"><td class="num" id="LN146">146</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_EXIT_ACTION<span class='macro_popup'>(TERMINAL_EXIT_CLOSE)</span></span> (TERMINAL_EXIT_CLOSE)</span></td></tr>
+<tr class="codeline" data-linenumber="147"><td class="num" id="LN147">147</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_FONT<span class='macro_popup'>("Monospace 12")</span></span> ("Monospace 12")</span></td></tr>
+<tr class="codeline" data-linenumber="148"><td class="num" id="LN148">148</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_FOREGROUND_COLOR<span class='macro_popup'>("#000000")</span></span> ("#000000")</span></td></tr>
+<tr class="codeline" data-linenumber="149"><td class="num" id="LN149">149</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_LOGIN_SHELL<span class='macro_popup'>((0))</span></span> (<span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="150"><td class="num" id="LN150">150</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_NAME<span class='macro_popup'>(((void*)0))</span></span> (<span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="151"><td class="num" id="LN151">151</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_PALETTE<span class='macro_popup'>(terminal_palettes[0])</span></span> (terminal_palettes[<span class='macro'>TERMINAL_PALETTE_TANGO<span class='macro_popup'>0</span></span>])</span></td></tr>
+<tr class="codeline" data-linenumber="152"><td class="num" id="LN152">152</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_SCROLL_BACKGROUND<span class='macro_popup'>((!(0)))</span></span> (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="153"><td class="num" id="LN153">153</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_SCROLLBACK_LINES<span class='macro_popup'>(512)</span></span> (512)</span></td></tr>
+<tr class="codeline" data-linenumber="154"><td class="num" id="LN154">154</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_SCROLLBACK_UNLIMITED<span class='macro_popup'>((0))</span></span> (<span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="155"><td class="num" id="LN155">155</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_SCROLLBAR_POSITION<span class='macro_popup'>(TERMINAL_SCROLLBAR_RIGHT)</span></span> (TERMINAL_SCROLLBAR_RIGHT)</span></td></tr>
+<tr class="codeline" data-linenumber="156"><td class="num" id="LN156">156</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_SCROLL_ON_KEYSTROKE<span class='macro_popup'>((!(0)))</span></span> (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="157"><td class="num" id="LN157">157</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_SCROLL_ON_OUTPUT<span class='macro_popup'>((0))</span></span> (<span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="158"><td class="num" id="LN158">158</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_SILENT_BELL<span class='macro_popup'>((0))</span></span> (<span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="159"><td class="num" id="LN159">159</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_COPY_SELECTION<span class='macro_popup'>((0))</span></span> (<span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="160"><td class="num" id="LN160">160</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_TITLE_MODE<span class='macro_popup'>(TERMINAL_TITLE_REPLACE)</span></span> (TERMINAL_TITLE_REPLACE)</span></td></tr>
+<tr class="codeline" data-linenumber="161"><td class="num" id="LN161">161</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_TITLE<span class='macro_popup'>(("Terminal"))</span></span> (<span class='macro'>N_("Terminal")<span class='macro_popup'>("Terminal")</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="162"><td class="num" id="LN162">162</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_USE_CUSTOM_COMMAND<span class='macro_popup'>((0))</span></span> (<span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="163"><td class="num" id="LN163">163</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_USE_CUSTOM_DEFAULT_SIZE<span class='macro_popup'>((0))</span></span> (<span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="164"><td class="num" id="LN164">164</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_USE_SKEY<span class='macro_popup'>((!(0)))</span></span> (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="165"><td class="num" id="LN165">165</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_USE_URLS<span class='macro_popup'>((!(0)))</span></span> (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="166"><td class="num" id="LN166">166</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_USE_SYSTEM_FONT<span class='macro_popup'>((!(0)))</span></span> (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="167"><td class="num" id="LN167">167</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_USE_THEME_COLORS<span class='macro_popup'>((!(0)))</span></span> (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="168"><td class="num" id="LN168">168</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_VISIBLE_NAME<span class='macro_popup'>(("Unnamed"))</span></span> (<span class='macro'>N_("Unnamed")<span class='macro_popup'>("Unnamed")</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="169"><td class="num" id="LN169">169</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_WORD_CHARS<span class='macro_popup'>("-A-Za-z0-9,./?%&amp;#:_=+@~")</span></span> ("-A-Za-z0-9,./?%&amp;#:_=+@~")</span></td></tr>
+<tr class="codeline" data-linenumber="170"><td class="num" id="LN170">170</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="171"><td class="num" id="LN171">171</td><td class="line"><span class='keyword'>struct</span> _TerminalProfilePrivate</td></tr>
+<tr class="codeline" data-linenumber="172"><td class="num" id="LN172">172</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="173"><td class="num" id="LN173">173</td><td class="line"> GValueArray *properties;</td></tr>
+<tr class="codeline" data-linenumber="174"><td class="num" id="LN174">174</td><td class="line"> gboolean *locked;</td></tr>
+<tr class="codeline" data-linenumber="175"><td class="num" id="LN175">175</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="176"><td class="num" id="LN176">176</td><td class="line"> GSettings *settings;</td></tr>
+<tr class="codeline" data-linenumber="177"><td class="num" id="LN177">177</td><td class="line"> <span class='keyword'>char</span> *profile_dir;</td></tr>
+<tr class="codeline" data-linenumber="178"><td class="num" id="LN178">178</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="179"><td class="num" id="LN179">179</td><td class="line"> GSList *dirty_pspecs;</td></tr>
+<tr class="codeline" data-linenumber="180"><td class="num" id="LN180">180</td><td class="line"> guint save_idle_id;</td></tr>
+<tr class="codeline" data-linenumber="181"><td class="num" id="LN181">181</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="182"><td class="num" id="LN182">182</td><td class="line"> GParamSpec *gsettings_notification_pspec;</td></tr>
+<tr class="codeline" data-linenumber="183"><td class="num" id="LN183">183</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="184"><td class="num" id="LN184">184</td><td class="line"> gboolean background_load_failed;</td></tr>
+<tr class="codeline" data-linenumber="185"><td class="num" id="LN185">185</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="186"><td class="num" id="LN186">186</td><td class="line"> guint forgotten : 1;</td></tr>
+<tr class="codeline" data-linenumber="187"><td class="num" id="LN187">187</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="188"><td class="num" id="LN188">188</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="189"><td class="num" id="LN189">189</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>const</span> GdkRGBA terminal_palettes[<span class='macro'>TERMINAL_PALETTE_N_BUILTINS<span class='macro_popup'>5</span></span>][<span class='macro'>TERMINAL_PALETTE_SIZE<span class='macro_popup'>16</span></span>] =</td></tr>
+<tr class="codeline" data-linenumber="190"><td class="num" id="LN190">190</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="191"><td class="num" id="LN191">191</td><td class="line"> <span class='comment'>/* Tango palette */</span></td></tr>
+<tr class="codeline" data-linenumber="192"><td class="num" id="LN192">192</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="193"><td class="num" id="LN193">193</td><td class="line"> { 0, 0, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="194"><td class="num" id="LN194">194</td><td class="line"> { 0.8, 0, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="195"><td class="num" id="LN195">195</td><td class="line"> { 0.305882, 0.603922, 0.0235294, 1 },</td></tr>
+<tr class="codeline" data-linenumber="196"><td class="num" id="LN196">196</td><td class="line"> { 0.768627, 0.627451, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="197"><td class="num" id="LN197">197</td><td class="line"> { 0.203922, 0.396078, 0.643137, 1 },</td></tr>
+<tr class="codeline" data-linenumber="198"><td class="num" id="LN198">198</td><td class="line"> { 0.458824, 0.313725, 0.482353, 1 },</td></tr>
+<tr class="codeline" data-linenumber="199"><td class="num" id="LN199">199</td><td class="line"> { 0.0235294, 0.596078, 0.603922, 1 },</td></tr>
+<tr class="codeline" data-linenumber="200"><td class="num" id="LN200">200</td><td class="line"> { 0.827451, 0.843137, 0.811765, 1 },</td></tr>
+<tr class="codeline" data-linenumber="201"><td class="num" id="LN201">201</td><td class="line"> { 0.333333, 0.341176, 0.32549, 1 },</td></tr>
+<tr class="codeline" data-linenumber="202"><td class="num" id="LN202">202</td><td class="line"> { 0.937255, 0.160784, 0.160784, 1 },</td></tr>
+<tr class="codeline" data-linenumber="203"><td class="num" id="LN203">203</td><td class="line"> { 0.541176, 0.886275, 0.203922, 1 },</td></tr>
+<tr class="codeline" data-linenumber="204"><td class="num" id="LN204">204</td><td class="line"> { 0.988235, 0.913725, 0.309804, 1 },</td></tr>
+<tr class="codeline" data-linenumber="205"><td class="num" id="LN205">205</td><td class="line"> { 0.447059, 0.623529, 0.811765, 1 },</td></tr>
+<tr class="codeline" data-linenumber="206"><td class="num" id="LN206">206</td><td class="line"> { 0.678431, 0.498039, 0.658824, 1 },</td></tr>
+<tr class="codeline" data-linenumber="207"><td class="num" id="LN207">207</td><td class="line"> { 0.203922, 0.886275, 0.886275, 1 },</td></tr>
+<tr class="codeline" data-linenumber="208"><td class="num" id="LN208">208</td><td class="line"> { 0.933333, 0.933333, 0.92549, 1 },</td></tr>
+<tr class="codeline" data-linenumber="209"><td class="num" id="LN209">209</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="210"><td class="num" id="LN210">210</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="211"><td class="num" id="LN211">211</td><td class="line"> <span class='comment'>/* Linux palette */</span></td></tr>
+<tr class="codeline" data-linenumber="212"><td class="num" id="LN212">212</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="213"><td class="num" id="LN213">213</td><td class="line"> { 0, 0, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="214"><td class="num" id="LN214">214</td><td class="line"> { 0.666667, 0, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="215"><td class="num" id="LN215">215</td><td class="line"> { 0, 0.666667, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="216"><td class="num" id="LN216">216</td><td class="line"> { 0.666667, 0.333333, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="217"><td class="num" id="LN217">217</td><td class="line"> { 0, 0, 0.666667, 1 },</td></tr>
+<tr class="codeline" data-linenumber="218"><td class="num" id="LN218">218</td><td class="line"> { 0.666667, 0, 0.666667, 1 },</td></tr>
+<tr class="codeline" data-linenumber="219"><td class="num" id="LN219">219</td><td class="line"> { 0, 0.666667, 0.666667, 1 },</td></tr>
+<tr class="codeline" data-linenumber="220"><td class="num" id="LN220">220</td><td class="line"> { 0.666667, 0.666667, 0.666667, 1 },</td></tr>
+<tr class="codeline" data-linenumber="221"><td class="num" id="LN221">221</td><td class="line"> { 0.333333, 0.333333, 0.333333, 1 },</td></tr>
+<tr class="codeline" data-linenumber="222"><td class="num" id="LN222">222</td><td class="line"> { 1, 0.333333, 0.333333, 1 },</td></tr>
+<tr class="codeline" data-linenumber="223"><td class="num" id="LN223">223</td><td class="line"> { 0.333333, 1, 0.333333, 1 },</td></tr>
+<tr class="codeline" data-linenumber="224"><td class="num" id="LN224">224</td><td class="line"> { 1, 1, 0.333333, 1 },</td></tr>
+<tr class="codeline" data-linenumber="225"><td class="num" id="LN225">225</td><td class="line"> { 0.333333, 0.333333, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="226"><td class="num" id="LN226">226</td><td class="line"> { 1, 0.333333, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="227"><td class="num" id="LN227">227</td><td class="line"> { 0.333333, 1, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="228"><td class="num" id="LN228">228</td><td class="line"> { 1, 1, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="229"><td class="num" id="LN229">229</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="230"><td class="num" id="LN230">230</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="231"><td class="num" id="LN231">231</td><td class="line"> <span class='comment'>/* XTerm palette */</span></td></tr>
+<tr class="codeline" data-linenumber="232"><td class="num" id="LN232">232</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="233"><td class="num" id="LN233">233</td><td class="line"> { 0, 0, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="234"><td class="num" id="LN234">234</td><td class="line"> { 0.803922, 0, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="235"><td class="num" id="LN235">235</td><td class="line"> { 0, 0.803922, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="236"><td class="num" id="LN236">236</td><td class="line"> { 0.803922, 0.803922, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="237"><td class="num" id="LN237">237</td><td class="line"> { 0.117647, 0.564706, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="238"><td class="num" id="LN238">238</td><td class="line"> { 0.803922, 0, 0.803922, 1 },</td></tr>
+<tr class="codeline" data-linenumber="239"><td class="num" id="LN239">239</td><td class="line"> { 0, 0.803922, 0.803922, 1 },</td></tr>
+<tr class="codeline" data-linenumber="240"><td class="num" id="LN240">240</td><td class="line"> { 0.898039, 0.898039, 0.898039, 1 },</td></tr>
+<tr class="codeline" data-linenumber="241"><td class="num" id="LN241">241</td><td class="line"> { 0.298039, 0.298039, 0.298039, 1 },</td></tr>
+<tr class="codeline" data-linenumber="242"><td class="num" id="LN242">242</td><td class="line"> { 1, 0, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="243"><td class="num" id="LN243">243</td><td class="line"> { 0, 1, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="244"><td class="num" id="LN244">244</td><td class="line"> { 1, 1, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="245"><td class="num" id="LN245">245</td><td class="line"> { 0.27451, 0.509804, 0.705882, 1 },</td></tr>
+<tr class="codeline" data-linenumber="246"><td class="num" id="LN246">246</td><td class="line"> { 1, 0, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="247"><td class="num" id="LN247">247</td><td class="line"> { 0, 1, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="248"><td class="num" id="LN248">248</td><td class="line"> { 1, 1, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="249"><td class="num" id="LN249">249</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="250"><td class="num" id="LN250">250</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="251"><td class="num" id="LN251">251</td><td class="line"> <span class='comment'>/* RXVT palette */</span></td></tr>
+<tr class="codeline" data-linenumber="252"><td class="num" id="LN252">252</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="253"><td class="num" id="LN253">253</td><td class="line"> { 0, 0, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="254"><td class="num" id="LN254">254</td><td class="line"> { 0.803922, 0, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="255"><td class="num" id="LN255">255</td><td class="line"> { 0, 0.803922, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="256"><td class="num" id="LN256">256</td><td class="line"> { 0.803922, 0.803922, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="257"><td class="num" id="LN257">257</td><td class="line"> { 0, 0, 0.803922, 1 },</td></tr>
+<tr class="codeline" data-linenumber="258"><td class="num" id="LN258">258</td><td class="line"> { 0.803922, 0, 0.803922, 1 },</td></tr>
+<tr class="codeline" data-linenumber="259"><td class="num" id="LN259">259</td><td class="line"> { 0, 0.803922, 0.803922, 1 },</td></tr>
+<tr class="codeline" data-linenumber="260"><td class="num" id="LN260">260</td><td class="line"> { 0.980392, 0.921569, 0.843137, 1 },</td></tr>
+<tr class="codeline" data-linenumber="261"><td class="num" id="LN261">261</td><td class="line"> { 0.25098, 0.25098, 0.25098, 1 },</td></tr>
+<tr class="codeline" data-linenumber="262"><td class="num" id="LN262">262</td><td class="line"> { 1, 0, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="263"><td class="num" id="LN263">263</td><td class="line"> { 0, 1, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="264"><td class="num" id="LN264">264</td><td class="line"> { 1, 1, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="265"><td class="num" id="LN265">265</td><td class="line"> { 0, 0, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="266"><td class="num" id="LN266">266</td><td class="line"> { 1, 0, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="267"><td class="num" id="LN267">267</td><td class="line"> { 0, 1, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="268"><td class="num" id="LN268">268</td><td class="line"> { 1, 1, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="269"><td class="num" id="LN269">269</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="270"><td class="num" id="LN270">270</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="271"><td class="num" id="LN271">271</td><td class="line"> <span class='comment'>/* Solarized palette (1.0.0beta2): http://ethanschoonover.com/solarized */</span></td></tr>
+<tr class="codeline" data-linenumber="272"><td class="num" id="LN272">272</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="273"><td class="num" id="LN273">273</td><td class="line"> { 0.02745, 0.211764, 0.258823, 1 },</td></tr>
+<tr class="codeline" data-linenumber="274"><td class="num" id="LN274">274</td><td class="line"> { 0.862745, 0.196078, 0.184313, 1 },</td></tr>
+<tr class="codeline" data-linenumber="275"><td class="num" id="LN275">275</td><td class="line"> { 0.521568, 0.6, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="276"><td class="num" id="LN276">276</td><td class="line"> { 0.709803, 0.537254, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="277"><td class="num" id="LN277">277</td><td class="line"> { 0.149019, 0.545098, 0.823529, 1 },</td></tr>
+<tr class="codeline" data-linenumber="278"><td class="num" id="LN278">278</td><td class="line"> { 0.82745, 0.211764, 0.509803, 1 },</td></tr>
+<tr class="codeline" data-linenumber="279"><td class="num" id="LN279">279</td><td class="line"> { 0.164705, 0.631372, 0.596078, 1 },</td></tr>
+<tr class="codeline" data-linenumber="280"><td class="num" id="LN280">280</td><td class="line"> { 0.933333, 0.909803, 0.835294, 1 },</td></tr>
+<tr class="codeline" data-linenumber="281"><td class="num" id="LN281">281</td><td class="line"> { 0, 0.168627, 0.211764, 1 },</td></tr>
+<tr class="codeline" data-linenumber="282"><td class="num" id="LN282">282</td><td class="line"> { 0.796078, 0.294117, 0.086274, 1 },</td></tr>
+<tr class="codeline" data-linenumber="283"><td class="num" id="LN283">283</td><td class="line"> { 0.345098, 0.431372, 0.458823, 1 },</td></tr>
+<tr class="codeline" data-linenumber="284"><td class="num" id="LN284">284</td><td class="line"> { 0.396078, 0.482352, 0.513725, 1 },</td></tr>
+<tr class="codeline" data-linenumber="285"><td class="num" id="LN285">285</td><td class="line"> { 0.513725, 0.580392, 0.588235, 1 },</td></tr>
+<tr class="codeline" data-linenumber="286"><td class="num" id="LN286">286</td><td class="line"> { 0.423529, 0.443137, 0.768627, 1 },</td></tr>
+<tr class="codeline" data-linenumber="287"><td class="num" id="LN287">287</td><td class="line"> { 0.57647, 0.631372, 0.631372, 1 },</td></tr>
+<tr class="codeline" data-linenumber="288"><td class="num" id="LN288">288</td><td class="line"> { 0.992156, 0.964705, 0.890196, 1 },</td></tr>
+<tr class="codeline" data-linenumber="289"><td class="num" id="LN289">289</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="290"><td class="num" id="LN290">290</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="291"><td class="num" id="LN291">291</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="292"><td class="num" id="LN292">292</td><td class="line"><span class='keyword'>enum</span></td></tr>
+<tr class="codeline" data-linenumber="293"><td class="num" id="LN293">293</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="294"><td class="num" id="LN294">294</td><td class="line"> FORGOTTEN,</td></tr>
+<tr class="codeline" data-linenumber="295"><td class="num" id="LN295">295</td><td class="line"> LAST_SIGNAL</td></tr>
+<tr class="codeline" data-linenumber="296"><td class="num" id="LN296">296</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="297"><td class="num" id="LN297">297</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="298"><td class="num" id="LN298">298</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> terminal_profile_finalize (GObject *object);</td></tr>
+<tr class="codeline" data-linenumber="299"><td class="num" id="LN299">299</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> terminal_profile_set_property (GObject *object,</td></tr>
+<tr class="codeline" data-linenumber="300"><td class="num" id="LN300">300</td><td class="line"> guint prop_id,</td></tr>
+<tr class="codeline" data-linenumber="301"><td class="num" id="LN301">301</td><td class="line"> <span class='keyword'>const</span> GValue *value,</td></tr>
+<tr class="codeline" data-linenumber="302"><td class="num" id="LN302">302</td><td class="line"> GParamSpec *pspec);</td></tr>
+<tr class="codeline" data-linenumber="303"><td class="num" id="LN303">303</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> ensure_pixbuf_property (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="304"><td class="num" id="LN304">304</td><td class="line"> guint path_prop_id,</td></tr>
+<tr class="codeline" data-linenumber="305"><td class="num" id="LN305">305</td><td class="line"> guint pixbuf_prop_id,</td></tr>
+<tr class="codeline" data-linenumber="306"><td class="num" id="LN306">306</td><td class="line"> gboolean *load_failed);</td></tr>
+<tr class="codeline" data-linenumber="307"><td class="num" id="LN307">307</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="308"><td class="num" id="LN308">308</td><td class="line"><span class='keyword'>static</span> guint signals[LAST_SIGNAL] = { 0 };</td></tr>
+<tr class="codeline" data-linenumber="309"><td class="num" id="LN309">309</td><td class="line"><span class='keyword'>static</span> GQuark gsettings_key_quark;</td></tr>
+<tr class="codeline" data-linenumber="310"><td class="num" id="LN310">310</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="311"><td class="num" id="LN311">311</td><td class="line"><span class='macro'>G_DEFINE_TYPE_WITH_PRIVATE (TerminalProfile, terminal_profile, G_TYPE_OBJECT)<span class='macro_popup'>static void terminal_profile_init (TerminalProfile *self); static<br> void terminal_profile_class_init (TerminalProfileClass *klass<br>); static GType terminal_profile_get_type_once (void); static<br> gpointer terminal_profile_parent_class = ((void*)0); static gint<br> TerminalProfile_private_offset; static void terminal_profile_class_intern_init<br> (gpointer klass) { terminal_profile_parent_class = g_type_class_peek_parent<br> (klass); if (TerminalProfile_private_offset != 0) g_type_class_adjust_private_offset<br> (klass, &amp;TerminalProfile_private_offset); terminal_profile_class_init<br> ((TerminalProfileClass*) klass); } __attribute__ ((__unused__<br>)) static inline gpointer terminal_profile_get_instance_private<br> (TerminalProfile *self) { return (((gpointer) ((guint8*) (self<br>) + (glong) (TerminalProfile_private_offset)))); } GType terminal_profile_get_type<br> (void) { static gsize static_g_define_type_id = 0; if ((__extension__<br> ({ _Static_assert (sizeof *(&amp;static_g_define_type_id) ==<br> sizeof (gpointer), "Expression evaluates to false"); (void) (<br>0 ? (gpointer) *(&amp;static_g_define_type_id) : ((void*)0));<br> (!(__extension__ ({ _Static_assert (sizeof *(&amp;static_g_define_type_id<br>) == sizeof (gpointer), "Expression evaluates to false"); __typeof__<br> (*(&amp;static_g_define_type_id)) gapg_temp_newval; __typeof__<br> ((&amp;static_g_define_type_id)) gapg_temp_atomic = (&amp;static_g_define_type_id<br>); __atomic_load (gapg_temp_atomic, &amp;gapg_temp_newval, 5)<br>; gapg_temp_newval; })) &amp;&amp; g_once_init_enter (&amp;static_g_define_type_id<br>)); }))) { GType g_define_type_id = terminal_profile_get_type_once<br> (); (__extension__ ({ _Static_assert (sizeof *(&amp;static_g_define_type_id<br>) == sizeof (gpointer), "Expression evaluates to false"); 0 ?<br> (void) (*(&amp;static_g_define_type_id) = (g_define_type_id)<br>) : (void) 0; g_once_init_leave ((&amp;static_g_define_type_id<br>), (gsize) (g_define_type_id)); })); } return static_g_define_type_id<br>; } __attribute__ ((__noinline__)) static GType terminal_profile_get_type_once<br> (void) { GType g_define_type_id = g_type_register_static_simple<br> (((GType) ((20) &lt;&lt; (2))), g_intern_static_string ("TerminalProfile"<br>), sizeof (TerminalProfileClass), (GClassInitFunc)(void (*)(void<br>)) terminal_profile_class_intern_init, sizeof (TerminalProfile<br>), (GInstanceInitFunc)(void (*)(void)) terminal_profile_init,<br> (GTypeFlags) 0); { {{ TerminalProfile_private_offset = g_type_add_instance_private<br> (g_define_type_id, sizeof (TerminalProfilePrivate)); };} } return<br> g_define_type_id; }</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="312"><td class="num" id="LN312">312</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="313"><td class="num" id="LN313">313</td><td class="line"><span class='comment'>/* gdk_rgba_equal is too strict! */</span></td></tr>
+<tr class="codeline" data-linenumber="314"><td class="num" id="LN314">314</td><td class="line"><span class='keyword'>static</span> gboolean</td></tr>
+<tr class="codeline" data-linenumber="315"><td class="num" id="LN315">315</td><td class="line">rgba_equal (<span class='keyword'>const</span> GdkRGBA *a,</td></tr>
+<tr class="codeline" data-linenumber="316"><td class="num" id="LN316">316</td><td class="line"> <span class='keyword'>const</span> GdkRGBA *b)</td></tr>
+<tr class="codeline" data-linenumber="317"><td class="num" id="LN317">317</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="318"><td class="num" id="LN318">318</td><td class="line"> gdouble dr, dg, db, da;</td></tr>
+<tr class="codeline" data-linenumber="319"><td class="num" id="LN319">319</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="320"><td class="num" id="LN320">320</td><td class="line"> dr = a-&gt;red - b-&gt;red;</td></tr>
+<tr class="codeline" data-linenumber="321"><td class="num" id="LN321">321</td><td class="line"> dg = a-&gt;green - b-&gt;green;</td></tr>
+<tr class="codeline" data-linenumber="322"><td class="num" id="LN322">322</td><td class="line"> db = a-&gt;blue - b-&gt;blue;</td></tr>
+<tr class="codeline" data-linenumber="323"><td class="num" id="LN323">323</td><td class="line"> da = a-&gt;alpha - b-&gt;alpha;</td></tr>
+<tr class="codeline" data-linenumber="324"><td class="num" id="LN324">324</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="325"><td class="num" id="LN325">325</td><td class="line"> <span class='keyword'>return</span> (dr * dr + dg * dg + db * db + da * da) &lt; 1e-4;</td></tr>
+<tr class="codeline" data-linenumber="326"><td class="num" id="LN326">326</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="327"><td class="num" id="LN327">327</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="328"><td class="num" id="LN328">328</td><td class="line"><span class='keyword'>static</span> gboolean</td></tr>
+<tr class="codeline" data-linenumber="329"><td class="num" id="LN329">329</td><td class="line">palette_cmp (<span class='keyword'>const</span> GdkRGBA *ca,</td></tr>
+<tr class="codeline" data-linenumber="330"><td class="num" id="LN330">330</td><td class="line"> <span class='keyword'>const</span> GdkRGBA *cb)</td></tr>
+<tr class="codeline" data-linenumber="331"><td class="num" id="LN331">331</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="332"><td class="num" id="LN332">332</td><td class="line"> guint i;</td></tr>
+<tr class="codeline" data-linenumber="333"><td class="num" id="LN333">333</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="334"><td class="num" id="LN334">334</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; <span class='macro'>TERMINAL_PALETTE_SIZE<span class='macro_popup'>16</span></span>; ++i)</td></tr>
+<tr class="codeline" data-linenumber="335"><td class="num" id="LN335">335</td><td class="line"> <span class='keyword'>if</span> (!rgba_equal (&amp;ca[i], &amp;cb[i]))</td></tr>
+<tr class="codeline" data-linenumber="336"><td class="num" id="LN336">336</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="337"><td class="num" id="LN337">337</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="338"><td class="num" id="LN338">338</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="339"><td class="num" id="LN339">339</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="340"><td class="num" id="LN340">340</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="341"><td class="num" id="LN341">341</td><td class="line"><span class='keyword'>static</span> GParamSpec *</td></tr>
+<tr class="codeline" data-linenumber="342"><td class="num" id="LN342">342</td><td class="line">get_pspec_from_name (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="343"><td class="num" id="LN343">343</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="344"><td class="num" id="LN344">344</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="345"><td class="num" id="LN345">345</td><td class="line"> TerminalProfileClass *klass = <span class='macro'>TERMINAL_PROFILE_GET_CLASS (profile)<span class='macro_popup'>((((TerminalProfileClass*) (((GTypeInstance*) ((profile)))-&gt;<br>g_class))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="346"><td class="num" id="LN346">346</td><td class="line"> GParamSpec *pspec;</td></tr>
+<tr class="codeline" data-linenumber="347"><td class="num" id="LN347">347</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="348"><td class="num" id="LN348">348</td><td class="line"> pspec = g_object_class_find_property (<span class='macro'>G_OBJECT_CLASS (klass)<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((klass)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="349"><td class="num" id="LN349">349</td><td class="line"> <span class='keyword'>if</span> (pspec &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="350"><td class="num" id="LN350">350</td><td class="line"> pspec-&gt;owner_type != <span class='macro'>TERMINAL_TYPE_PROFILE<span class='macro_popup'>(terminal_profile_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="351"><td class="num" id="LN351">351</td><td class="line"> pspec = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="352"><td class="num" id="LN352">352</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="353"><td class="num" id="LN353">353</td><td class="line"> <span class='keyword'>return</span> pspec;</td></tr>
+<tr class="codeline" data-linenumber="354"><td class="num" id="LN354">354</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="355"><td class="num" id="LN355">355</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="356"><td class="num" id="LN356">356</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>const</span> GValue *</td></tr>
+<tr class="codeline" data-linenumber="357"><td class="num" id="LN357">357</td><td class="line">get_prop_value_from_prop_name (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="358"><td class="num" id="LN358">358</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="359"><td class="num" id="LN359">359</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="360"><td class="num" id="LN360">360</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="361"><td class="num" id="LN361">361</td><td class="line"> GParamSpec *pspec;</td></tr>
+<tr class="codeline" data-linenumber="362"><td class="num" id="LN362">362</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="363"><td class="num" id="LN363">363</td><td class="line"> pspec = get_pspec_from_name (profile, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="364"><td class="num" id="LN364">364</td><td class="line"> <span class='keyword'>if</span> (!pspec)</td></tr>
+<tr class="codeline" data-linenumber="365"><td class="num" id="LN365">365</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="366"><td class="num" id="LN366">366</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="367"><td class="num" id="LN367">367</td><td class="line"> <span class='keyword'>if</span> (<span class='macro'>G_UNLIKELY (pspec-&gt;param_id == PROP_BACKGROUND_IMAGE)<span class='macro_popup'>(pspec-&gt;param_id == PROP_BACKGROUND_IMAGE)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="368"><td class="num" id="LN368">368</td><td class="line"> ensure_pixbuf_property (profile, PROP_BACKGROUND_IMAGE_FILE, PROP_BACKGROUND_IMAGE, &amp;priv-&gt;background_load_failed);</td></tr>
+<tr class="codeline" data-linenumber="369"><td class="num" id="LN369">369</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="370"><td class="num" id="LN370">370</td><td class="line"> <span class='keyword'>return</span> g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id);</td></tr>
+<tr class="codeline" data-linenumber="371"><td class="num" id="LN371">371</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="372"><td class="num" id="LN372">372</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="373"><td class="num" id="LN373">373</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="374"><td class="num" id="LN374">374</td><td class="line">set_value_from_palette (GValue *ret_value,</td></tr>
+<tr class="codeline" data-linenumber="375"><td class="num" id="LN375">375</td><td class="line"> <span class='keyword'>const</span> GdkRGBA *colors,</td></tr>
+<tr class="codeline" data-linenumber="376"><td class="num" id="LN376">376</td><td class="line"> guint n_colors)</td></tr>
+<tr class="codeline" data-linenumber="377"><td class="num" id="LN377">377</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="378"><td class="num" id="LN378">378</td><td class="line"> GValueArray *array;</td></tr>
+<tr class="codeline" data-linenumber="379"><td class="num" id="LN379">379</td><td class="line"> guint i, max_n_colors;</td></tr>
+<tr class="codeline" data-linenumber="380"><td class="num" id="LN380">380</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="381"><td class="num" id="LN381">381</td><td class="line"> max_n_colors = <span class='macro'>MAX (n_colors, TERMINAL_PALETTE_SIZE)<span class='macro_popup'>(((n_colors) &gt; (16)) ? (n_colors) : (16))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="382"><td class="num" id="LN382">382</td><td class="line"> array = g_value_array_new (max_n_colors);</td></tr>
+<tr class="codeline" data-linenumber="383"><td class="num" id="LN383">383</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; max_n_colors; ++i)</td></tr>
+<tr class="codeline" data-linenumber="384"><td class="num" id="LN384">384</td><td class="line"> g_value_array_append (array, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="385"><td class="num" id="LN385">385</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="386"><td class="num" id="LN386">386</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; n_colors; ++i)</td></tr>
+<tr class="codeline" data-linenumber="387"><td class="num" id="LN387">387</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="388"><td class="num" id="LN388">388</td><td class="line"> GValue *value = g_value_array_get_nth (array, i);</td></tr>
+<tr class="codeline" data-linenumber="389"><td class="num" id="LN389">389</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="390"><td class="num" id="LN390">390</td><td class="line"> g_value_init (value, <span class='macro'>GDK_TYPE_RGBA<span class='macro_popup'>(gdk_rgba_get_type ())</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="391"><td class="num" id="LN391">391</td><td class="line"> g_value_set_boxed (value, &amp;colors[i]);</td></tr>
+<tr class="codeline" data-linenumber="392"><td class="num" id="LN392">392</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="393"><td class="num" id="LN393">393</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="394"><td class="num" id="LN394">394</td><td class="line"> <span class='comment'>/* If we haven't enough colours yet, fill up with the default palette */</span></td></tr>
+<tr class="codeline" data-linenumber="395"><td class="num" id="LN395">395</td><td class="line"> <span class='keyword'>for</span> (i = n_colors; i &lt; <span class='macro'>TERMINAL_PALETTE_SIZE<span class='macro_popup'>16</span></span>; ++i)</td></tr>
+<tr class="codeline" data-linenumber="396"><td class="num" id="LN396">396</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="397"><td class="num" id="LN397">397</td><td class="line"> GValue *value = g_value_array_get_nth (array, i);</td></tr>
+<tr class="codeline" data-linenumber="398"><td class="num" id="LN398">398</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="399"><td class="num" id="LN399">399</td><td class="line"> g_value_init (value, <span class='macro'>GDK_TYPE_RGBA<span class='macro_popup'>(gdk_rgba_get_type ())</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="400"><td class="num" id="LN400">400</td><td class="line"> g_value_set_boxed (value, &amp;<span class='macro'>DEFAULT_PALETTE<span class='macro_popup'>(terminal_palettes[0])</span></span>[i]);</td></tr>
+<tr class="codeline" data-linenumber="401"><td class="num" id="LN401">401</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="402"><td class="num" id="LN402">402</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="403"><td class="num" id="LN403">403</td><td class="line"> g_value_take_boxed (ret_value, array);</td></tr>
+<tr class="codeline" data-linenumber="404"><td class="num" id="LN404">404</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="405"><td class="num" id="LN405">405</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="406"><td class="num" id="LN406">406</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>int</span></td></tr>
+<tr class="codeline" data-linenumber="407"><td class="num" id="LN407">407</td><td class="line">values_equal (GParamSpec *pspec,</td></tr>
+<tr class="codeline" data-linenumber="408"><td class="num" id="LN408">408</td><td class="line"> <span class='keyword'>const</span> GValue *va,</td></tr>
+<tr class="codeline" data-linenumber="409"><td class="num" id="LN409">409</td><td class="line"> <span class='keyword'>const</span> GValue *vb)</td></tr>
+<tr class="codeline" data-linenumber="410"><td class="num" id="LN410">410</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="411"><td class="num" id="LN411">411</td><td class="line"> <span class='comment'>/* g_param_values_cmp isn't good enough for some types, since e.g.</span></td></tr>
+<tr class="codeline" data-linenumber="412"><td class="num" id="LN412">412</td><td class="line"> <span class='comment'>* it compares colours and font descriptions by pointer value, not</span></td></tr>
+<tr class="codeline" data-linenumber="413"><td class="num" id="LN413">413</td><td class="line"> <span class='comment'>* with the correct compare functions. Providing extra</span></td></tr>
+<tr class="codeline" data-linenumber="414"><td class="num" id="LN414">414</td><td class="line"> <span class='comment'>* PangoParamSpecFontDescription and GdkParamSpecColor wouldn't</span></td></tr>
+<tr class="codeline" data-linenumber="415"><td class="num" id="LN415">415</td><td class="line"> <span class='comment'>* have fixed this either, since it's unclear how to _order_ them.</span></td></tr>
+<tr class="codeline" data-linenumber="416"><td class="num" id="LN416">416</td><td class="line"> <span class='comment'>* Luckily we only need to check them for equality here.</span></td></tr>
+<tr class="codeline" data-linenumber="417"><td class="num" id="LN417">417</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="418"><td class="num" id="LN418">418</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="419"><td class="num" id="LN419">419</td><td class="line"> <span class='keyword'>if</span> (g_param_values_cmp (pspec, va, vb) == 0)</td></tr>
+<tr class="codeline" data-linenumber="420"><td class="num" id="LN420">420</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="421"><td class="num" id="LN421">421</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="422"><td class="num" id="LN422">422</td><td class="line"> <span class='keyword'>if</span> (<span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span> == <span class='macro'>GDK_TYPE_RGBA<span class='macro_popup'>(gdk_rgba_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="423"><td class="num" id="LN423">423</td><td class="line"> <span class='keyword'>return</span> rgba_equal (g_value_get_boxed (va), g_value_get_boxed (vb));</td></tr>
+<tr class="codeline" data-linenumber="424"><td class="num" id="LN424">424</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="425"><td class="num" id="LN425">425</td><td class="line"> <span class='keyword'>if</span> (<span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span> == <span class='macro'>PANGO_TYPE_FONT_DESCRIPTION<span class='macro_popup'>(pango_font_description_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="426"><td class="num" id="LN426">426</td><td class="line"> <span class='keyword'>return</span> pango_font_description_equal (g_value_get_boxed (va), g_value_get_boxed (vb));</td></tr>
+<tr class="codeline" data-linenumber="427"><td class="num" id="LN427">427</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="428"><td class="num" id="LN428">428</td><td class="line"> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_VALUE_ARRAY (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[18]) GCC warning "Deprecated pre-processor symbol"<br>
+); gboolean __r; if (!__inst) __r = (0); else if (__inst-&gt;<br>g_class &amp;&amp; __inst-&gt;g_class-&gt;g_type == __t) __r =<br> (!(0)); else __r = g_type_check_instance_is_a (__inst, __t);<br> __r; })))) GCC warning "Deprecated pre-processor symbol"
+</span></span> &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="429"><td class="num" id="LN429">429</td><td class="line"> <span class='macro'>G_PARAM_SPEC_VALUE_TYPE (G_PARAM_SPEC_VALUE_ARRAY (pspec)-&gt;element_spec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((((((GParamSpecValueArray*) (void *) g_type_check_instance_cast<br> ((GTypeInstance*) ((pspec)), ((g_param_spec_types[18]) GCC warning<br> "Deprecated pre-processor symbol"
+))))) GCC warning "Deprecated pre-processor symbol"<br>
+-&gt;element_spec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;<br>value_type)</span></span> == <span class='macro'>GDK_TYPE_RGBA<span class='macro_popup'>(gdk_rgba_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="430"><td class="num" id="LN430">430</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="431"><td class="num" id="LN431">431</td><td class="line"> GValueArray *ara, *arb;</td></tr>
+<tr class="codeline" data-linenumber="432"><td class="num" id="LN432">432</td><td class="line"> guint i;</td></tr>
+<tr class="codeline" data-linenumber="433"><td class="num" id="LN433">433</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="434"><td class="num" id="LN434">434</td><td class="line"> ara = g_value_get_boxed (va);</td></tr>
+<tr class="codeline" data-linenumber="435"><td class="num" id="LN435">435</td><td class="line"> arb = g_value_get_boxed (vb);</td></tr>
+<tr class="codeline" data-linenumber="436"><td class="num" id="LN436">436</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="437"><td class="num" id="LN437">437</td><td class="line"> <span class='keyword'>if</span> (!ara || !arb || ara-&gt;n_values != arb-&gt;n_values)</td></tr>
+<tr class="codeline" data-linenumber="438"><td class="num" id="LN438">438</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="439"><td class="num" id="LN439">439</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="440"><td class="num" id="LN440">440</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; ara-&gt;n_values; ++i)</td></tr>
+<tr class="codeline" data-linenumber="441"><td class="num" id="LN441">441</td><td class="line"> <span class='keyword'>if</span> (!rgba_equal (g_value_get_boxed (g_value_array_get_nth (ara, i)),</td></tr>
+<tr class="codeline" data-linenumber="442"><td class="num" id="LN442">442</td><td class="line"> g_value_get_boxed (g_value_array_get_nth (arb, i))))</td></tr>
+<tr class="codeline" data-linenumber="443"><td class="num" id="LN443">443</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="444"><td class="num" id="LN444">444</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="445"><td class="num" id="LN445">445</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="446"><td class="num" id="LN446">446</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="447"><td class="num" id="LN447">447</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="448"><td class="num" id="LN448">448</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="449"><td class="num" id="LN449">449</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="450"><td class="num" id="LN450">450</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="451"><td class="num" id="LN451">451</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="452"><td class="num" id="LN452">452</td><td class="line">ensure_pixbuf_property (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="453"><td class="num" id="LN453">453</td><td class="line"> guint path_prop_id,</td></tr>
+<tr class="codeline" data-linenumber="454"><td class="num" id="LN454">454</td><td class="line"> guint pixbuf_prop_id,</td></tr>
+<tr class="codeline" data-linenumber="455"><td class="num" id="LN455">455</td><td class="line"> gboolean *load_failed)</td></tr>
+<tr class="codeline" data-linenumber="456"><td class="num" id="LN456">456</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="457"><td class="num" id="LN457">457</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="458"><td class="num" id="LN458">458</td><td class="line"> GValue *path_value, *pixbuf_value;</td></tr>
+<tr class="codeline" data-linenumber="459"><td class="num" id="LN459">459</td><td class="line"> GdkPixbuf *pixbuf;</td></tr>
+<tr class="codeline" data-linenumber="460"><td class="num" id="LN460">460</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *path_utf8;</td></tr>
+<tr class="codeline" data-linenumber="461"><td class="num" id="LN461">461</td><td class="line"> <span class='keyword'>char</span> *path;</td></tr>
+<tr class="codeline" data-linenumber="462"><td class="num" id="LN462">462</td><td class="line"> GError *error = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="463"><td class="num" id="LN463">463</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="464"><td class="num" id="LN464">464</td><td class="line"> pixbuf_value = g_value_array_get_nth (priv-&gt;properties, pixbuf_prop_id);</td></tr>
+<tr class="codeline" data-linenumber="465"><td class="num" id="LN465">465</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="466"><td class="num" id="LN466">466</td><td class="line"> pixbuf = g_value_get_object (pixbuf_value);</td></tr>
+<tr class="codeline" data-linenumber="467"><td class="num" id="LN467">467</td><td class="line"> <span class='keyword'>if</span> (pixbuf)</td></tr>
+<tr class="codeline" data-linenumber="468"><td class="num" id="LN468">468</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="469"><td class="num" id="LN469">469</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="470"><td class="num" id="LN470">470</td><td class="line"> <span class='keyword'>if</span> (*load_failed)</td></tr>
+<tr class="codeline" data-linenumber="471"><td class="num" id="LN471">471</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="472"><td class="num" id="LN472">472</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="473"><td class="num" id="LN473">473</td><td class="line"> path_value = g_value_array_get_nth (priv-&gt;properties, path_prop_id);</td></tr>
+<tr class="codeline" data-linenumber="474"><td class="num" id="LN474">474</td><td class="line"> path_utf8 = g_value_get_string (path_value);</td></tr>
+<tr class="codeline" data-linenumber="475"><td class="num" id="LN475">475</td><td class="line"> <span class='keyword'>if</span> (!path_utf8 || !path_utf8[0])</td></tr>
+<tr class="codeline" data-linenumber="476"><td class="num" id="LN476">476</td><td class="line"> <span class='keyword'>goto</span> failed;</td></tr>
+<tr class="codeline" data-linenumber="477"><td class="num" id="LN477">477</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="478"><td class="num" id="LN478">478</td><td class="line"> path = g_filename_from_utf8 (path_utf8, -1, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="479"><td class="num" id="LN479">479</td><td class="line"> <span class='keyword'>if</span> (!path)</td></tr>
+<tr class="codeline" data-linenumber="480"><td class="num" id="LN480">480</td><td class="line"> <span class='keyword'>goto</span> failed;</td></tr>
+<tr class="codeline" data-linenumber="481"><td class="num" id="LN481">481</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="482"><td class="num" id="LN482">482</td><td class="line"> pixbuf = gdk_pixbuf_new_from_file (path, &amp;error);</td></tr>
+<tr class="codeline" data-linenumber="483"><td class="num" id="LN483">483</td><td class="line"> <span class='keyword'>if</span> (!pixbuf)</td></tr>
+<tr class="codeline" data-linenumber="484"><td class="num" id="LN484">484</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="485"><td class="num" id="LN485">485</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_PROFILE,<span class='macro_popup'>do { if (0) g_printerr("Failed to load image \"%s\": %s\n", path<br>, error-&gt;message); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="486"><td class="num" id="LN486">486</td><td class="line"> <span class='string_literal'><span class='macro'>"Failed to load image \"%s\": %s\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("Failed to load image \"%s\": %s\n", path<br>, error-&gt;message); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="487"><td class="num" id="LN487">487</td><td class="line"> <span class='macro'>path, error-&gt;message)<span class='macro_popup'>do { if (0) g_printerr("Failed to load image \"%s\": %s\n", path<br>, error-&gt;message); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="488"><td class="num" id="LN488">488</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="489"><td class="num" id="LN489">489</td><td class="line"> g_error_free (error);</td></tr>
+<tr class="codeline" data-linenumber="490"><td class="num" id="LN490">490</td><td class="line"> g_free (path);</td></tr>
+<tr class="codeline" data-linenumber="491"><td class="num" id="LN491">491</td><td class="line"> <span class='keyword'>goto</span> failed;</td></tr>
+<tr class="codeline" data-linenumber="492"><td class="num" id="LN492">492</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="493"><td class="num" id="LN493">493</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="494"><td class="num" id="LN494">494</td><td class="line"> g_value_take_object (pixbuf_value, pixbuf);</td></tr>
+<tr class="codeline" data-linenumber="495"><td class="num" id="LN495">495</td><td class="line"> g_free (path);</td></tr>
+<tr class="codeline" data-linenumber="496"><td class="num" id="LN496">496</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="497"><td class="num" id="LN497">497</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="498"><td class="num" id="LN498">498</td><td class="line">failed:</td></tr>
+<tr class="codeline" data-linenumber="499"><td class="num" id="LN499">499</td><td class="line"> *load_failed = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="500"><td class="num" id="LN500">500</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="501"><td class="num" id="LN501">501</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="502"><td class="num" id="LN502">502</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="503"><td class="num" id="LN503">503</td><td class="line">terminal_profile_reset_property_internal (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="504"><td class="num" id="LN504">504</td><td class="line"> GParamSpec *pspec,</td></tr>
+<tr class="codeline" data-linenumber="505"><td class="num" id="LN505">505</td><td class="line"> gboolean notify)</td></tr>
+<tr class="codeline" data-linenumber="506"><td class="num" id="LN506">506</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="507"><td class="num" id="LN507">507</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="508"><td class="num" id="LN508">508</td><td class="line"> GValue value_ = { 0, };</td></tr>
+<tr class="codeline" data-linenumber="509"><td class="num" id="LN509">509</td><td class="line"> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="510"><td class="num" id="LN510">510</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="511"><td class="num" id="LN511">511</td><td class="line"> <span class='keyword'>if</span> (notify)</td></tr>
+<tr class="codeline" data-linenumber="512"><td class="num" id="LN512">512</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="513"><td class="num" id="LN513">513</td><td class="line"> value = &amp;value_;</td></tr>
+<tr class="codeline" data-linenumber="514"><td class="num" id="LN514">514</td><td class="line"> g_value_init (value, <span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="515"><td class="num" id="LN515">515</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="516"><td class="num" id="LN516">516</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="517"><td class="num" id="LN517">517</td><td class="line"> value = g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id);</td></tr>
+<tr class="codeline" data-linenumber="518"><td class="num" id="LN518">518</td><td class="line"> <span class='macro'>g_assert (value != NULL)<span class='macro_popup'>do { if (value != ((void*)0)) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-profile.c", 518, ((const char*) (__func__<br>)), "value != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="519"><td class="num" id="LN519">519</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="520"><td class="num" id="LN520">520</td><td class="line"> <span class='comment'>/* A few properties don't have defaults via the param spec; set them explicitly */</span></td></tr>
+<tr class="codeline" data-linenumber="521"><td class="num" id="LN521">521</td><td class="line"> <span class='keyword'>switch</span> (pspec-&gt;param_id)</td></tr>
+<tr class="codeline" data-linenumber="522"><td class="num" id="LN522">522</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="523"><td class="num" id="LN523">523</td><td class="line"> <span class='keyword'>case</span> PROP_FOREGROUND_COLOR:</td></tr>
+<tr class="codeline" data-linenumber="524"><td class="num" id="LN524">524</td><td class="line"> <span class='keyword'>case</span> PROP_BOLD_COLOR:</td></tr>
+<tr class="codeline" data-linenumber="525"><td class="num" id="LN525">525</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="526"><td class="num" id="LN526">526</td><td class="line"> GdkRGBA color;</td></tr>
+<tr class="codeline" data-linenumber="527"><td class="num" id="LN527">527</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="528"><td class="num" id="LN528">528</td><td class="line"> <span class='keyword'>if</span> (!gdk_rgba_parse (&amp;color, <span class='macro'>DEFAULT_FOREGROUND_COLOR<span class='macro_popup'>("#000000")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="529"><td class="num" id="LN529">529</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="530"><td class="num" id="LN530">530</td><td class="line"> color.alpha = 1.0;</td></tr>
+<tr class="codeline" data-linenumber="531"><td class="num" id="LN531">531</td><td class="line"> g_value_set_boxed (value, &amp;color);</td></tr>
+<tr class="codeline" data-linenumber="532"><td class="num" id="LN532">532</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="533"><td class="num" id="LN533">533</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="534"><td class="num" id="LN534">534</td><td class="line"> <span class='keyword'>case</span> PROP_BACKGROUND_COLOR:</td></tr>
+<tr class="codeline" data-linenumber="535"><td class="num" id="LN535">535</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="536"><td class="num" id="LN536">536</td><td class="line"> GdkRGBA color;</td></tr>
+<tr class="codeline" data-linenumber="537"><td class="num" id="LN537">537</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="538"><td class="num" id="LN538">538</td><td class="line"> <span class='keyword'>if</span> (!gdk_rgba_parse (&amp;color, <span class='macro'>DEFAULT_BACKGROUND_COLOR<span class='macro_popup'>("#FFFFDD")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="539"><td class="num" id="LN539">539</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="540"><td class="num" id="LN540">540</td><td class="line"> color.alpha = 1.0;</td></tr>
+<tr class="codeline" data-linenumber="541"><td class="num" id="LN541">541</td><td class="line"> g_value_set_boxed (value, &amp;color);</td></tr>
+<tr class="codeline" data-linenumber="542"><td class="num" id="LN542">542</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="543"><td class="num" id="LN543">543</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="544"><td class="num" id="LN544">544</td><td class="line"> <span class='keyword'>case</span> PROP_FONT:</td></tr>
+<tr class="codeline" data-linenumber="545"><td class="num" id="LN545">545</td><td class="line"> g_value_take_boxed (value, pango_font_description_from_string (<span class='macro'>DEFAULT_FONT<span class='macro_popup'>("Monospace 12")</span></span>));</td></tr>
+<tr class="codeline" data-linenumber="546"><td class="num" id="LN546">546</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="547"><td class="num" id="LN547">547</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="548"><td class="num" id="LN548">548</td><td class="line"> <span class='keyword'>case</span> PROP_PALETTE:</td></tr>
+<tr class="codeline" data-linenumber="549"><td class="num" id="LN549">549</td><td class="line"> set_value_from_palette (value, <span class='macro'>DEFAULT_PALETTE<span class='macro_popup'>(terminal_palettes[0])</span></span>, <span class='macro'>TERMINAL_PALETTE_SIZE<span class='macro_popup'>16</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="550"><td class="num" id="LN550">550</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="551"><td class="num" id="LN551">551</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="552"><td class="num" id="LN552">552</td><td class="line"> <span class='keyword'>default</span>:</td></tr>
+<tr class="codeline" data-linenumber="553"><td class="num" id="LN553">553</td><td class="line"> g_param_value_set_default (pspec, value);</td></tr>
+<tr class="codeline" data-linenumber="554"><td class="num" id="LN554">554</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="555"><td class="num" id="LN555">555</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="556"><td class="num" id="LN556">556</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="557"><td class="num" id="LN557">557</td><td class="line"> <span class='keyword'>if</span> (notify)</td></tr>
+<tr class="codeline" data-linenumber="558"><td class="num" id="LN558">558</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="559"><td class="num" id="LN559">559</td><td class="line"> g_object_set_property (<span class='macro'>G_OBJECT (profile)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((profile)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, pspec-&gt;name, value);</td></tr>
+<tr class="codeline" data-linenumber="560"><td class="num" id="LN560">560</td><td class="line"> g_value_unset (value);</td></tr>
+<tr class="codeline" data-linenumber="561"><td class="num" id="LN561">561</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="562"><td class="num" id="LN562">562</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="563"><td class="num" id="LN563">563</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="564"><td class="num" id="LN564">564</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="565"><td class="num" id="LN565">565</td><td class="line">terminal_profile_gsettings_notify_cb (GSettings *settings,</td></tr>
+<tr class="codeline" data-linenumber="566"><td class="num" id="LN566">566</td><td class="line"> gchar *key,</td></tr>
+<tr class="codeline" data-linenumber="567"><td class="num" id="LN567">567</td><td class="line"> gpointer user_data)</td></tr>
+<tr class="codeline" data-linenumber="568"><td class="num" id="LN568">568</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="569"><td class="num" id="LN569">569</td><td class="line"> TerminalProfile *profile = <span class='macro'>TERMINAL_PROFILE (user_data)<span class='macro_popup'>((((TerminalProfile*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((user_data)), ((terminal_profile_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="570"><td class="num" id="LN570">570</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="571"><td class="num" id="LN571">571</td><td class="line"> TerminalProfileClass *klass;</td></tr>
+<tr class="codeline" data-linenumber="572"><td class="num" id="LN572">572</td><td class="line"> GVariant *settings_value;</td></tr>
+<tr class="codeline" data-linenumber="573"><td class="num" id="LN573">573</td><td class="line"> GParamSpec *pspec;</td></tr>
+<tr class="codeline" data-linenumber="574"><td class="num" id="LN574">574</td><td class="line"> GValue value = { 0, };</td></tr>
+<tr class="codeline" data-linenumber="575"><td class="num" id="LN575">575</td><td class="line"> gboolean equal;</td></tr>
+<tr class="codeline" data-linenumber="576"><td class="num" id="LN576">576</td><td class="line"> gboolean force_set = <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="577"><td class="num" id="LN577">577</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="578"><td class="num" id="LN578">578</td><td class="line"> <span class='keyword'>if</span> (!key) <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="579"><td class="num" id="LN579">579</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="580"><td class="num" id="LN580">580</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_PROFILE,<span class='macro_popup'>do { if (0) g_printerr("GSettings notification for key %s [%s]\n"<br>, key, g_settings_is_writable (settings, key) ? "writable" : "LOCKED"<br>); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="581"><td class="num" id="LN581">581</td><td class="line"> <span class='string_literal'><span class='macro'>"GSettings notification for key %s [%s]\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("GSettings notification for key %s [%s]\n"<br>, key, g_settings_is_writable (settings, key) ? "writable" : "LOCKED"<br>); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="582"><td class="num" id="LN582">582</td><td class="line"> <span class='macro'>key,<span class='macro_popup'>do { if (0) g_printerr("GSettings notification for key %s [%s]\n"<br>, key, g_settings_is_writable (settings, key) ? "writable" : "LOCKED"<br>); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="583"><td class="num" id="LN583">583</td><td class="line"> <span class='macro'>g_settings_is_writable (settings, key) ? <span class='string_literal'>"writable"</span> : <span class='string_literal'>"LOCKED"</span>)<span class='macro_popup'>do { if (0) g_printerr("GSettings notification for key %s [%s]\n"<br>, key, g_settings_is_writable (settings, key) ? "writable" : "LOCKED"<br>); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="584"><td class="num" id="LN584">584</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="585"><td class="num" id="LN585">585</td><td class="line"> klass = <span class='macro'>TERMINAL_PROFILE_GET_CLASS (profile)<span class='macro_popup'>((((TerminalProfileClass*) (((GTypeInstance*) ((profile)))-&gt;<br>g_class))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="586"><td class="num" id="LN586">586</td><td class="line"> pspec = g_hash_table_lookup (klass-&gt;gsettings_keys, key);</td></tr>
+<tr class="codeline" data-linenumber="587"><td class="num" id="LN587">587</td><td class="line"> <span class='keyword'>if</span> (!pspec)</td></tr>
+<tr class="codeline" data-linenumber="588"><td class="num" id="LN588">588</td><td class="line"> <span class='keyword'>return</span>; <span class='comment'>/* ignore unknown keys, for future extensibility */</span></td></tr>
+<tr class="codeline" data-linenumber="589"><td class="num" id="LN589">589</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="590"><td class="num" id="LN590">590</td><td class="line"> priv-&gt;locked[pspec-&gt;param_id] = !g_settings_is_writable (settings, key);</td></tr>
+<tr class="codeline" data-linenumber="591"><td class="num" id="LN591">591</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="592"><td class="num" id="LN592">592</td><td class="line"> settings_value = g_settings_get_value (settings, key);</td></tr>
+<tr class="codeline" data-linenumber="593"><td class="num" id="LN593">593</td><td class="line"> <span class='keyword'>if</span> (!settings_value)</td></tr>
+<tr class="codeline" data-linenumber="594"><td class="num" id="LN594">594</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="595"><td class="num" id="LN595">595</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="596"><td class="num" id="LN596">596</td><td class="line"> g_value_init (&amp;value, <span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="597"><td class="num" id="LN597">597</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="598"><td class="num" id="LN598">598</td><td class="line"> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_BOOLEAN (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[2])); gboolean __r<br>; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="599"><td class="num" id="LN599">599</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="600"><td class="num" id="LN600">600</td><td class="line"> <span class='keyword'>if</span> (!g_variant_is_of_type (settings_value, <span class='macro'>G_VARIANT_TYPE_BOOLEAN<span class='macro_popup'>((const GVariantType *) "b")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="601"><td class="num" id="LN601">601</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="602"><td class="num" id="LN602">602</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="603"><td class="num" id="LN603">603</td><td class="line"> g_value_set_boolean (&amp;value, g_variant_get_boolean (settings_value));</td></tr>
+<tr class="codeline" data-linenumber="604"><td class="num" id="LN604">604</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="605"><td class="num" id="LN605">605</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_STRING (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[14])); gboolean __r<br>; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="606"><td class="num" id="LN606">606</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="607"><td class="num" id="LN607">607</td><td class="line"> <span class='keyword'>if</span> (!g_variant_is_of_type (settings_value, <span class='macro'>G_VARIANT_TYPE_STRING<span class='macro_popup'>((const GVariantType *) "s")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="608"><td class="num" id="LN608">608</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="609"><td class="num" id="LN609">609</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="610"><td class="num" id="LN610">610</td><td class="line"> g_value_set_string (&amp;value, g_variant_get_string (settings_value, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>));</td></tr>
+<tr class="codeline" data-linenumber="611"><td class="num" id="LN611">611</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="612"><td class="num" id="LN612">612</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_ENUM (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[10])); gboolean __r<br>; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="613"><td class="num" id="LN613">613</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="614"><td class="num" id="LN614">614</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="615"><td class="num" id="LN615">615</td><td class="line"> <span class='keyword'>if</span> (!g_variant_is_of_type (settings_value, <span class='macro'>G_VARIANT_TYPE_STRING<span class='macro_popup'>((const GVariantType *) "s")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="616"><td class="num" id="LN616">616</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="617"><td class="num" id="LN617">617</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="618"><td class="num" id="LN618">618</td><td class="line"> g_value_set_enum (&amp;value, g_settings_get_enum (settings, key));</td></tr>
+<tr class="codeline" data-linenumber="619"><td class="num" id="LN619">619</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="620"><td class="num" id="LN620">620</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span> == <span class='macro'>GDK_TYPE_RGBA<span class='macro_popup'>(gdk_rgba_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="621"><td class="num" id="LN621">621</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="622"><td class="num" id="LN622">622</td><td class="line"> GdkRGBA color;</td></tr>
+<tr class="codeline" data-linenumber="623"><td class="num" id="LN623">623</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="624"><td class="num" id="LN624">624</td><td class="line"> <span class='keyword'>if</span> (!g_variant_is_of_type (settings_value, <span class='macro'>G_VARIANT_TYPE_STRING<span class='macro_popup'>((const GVariantType *) "s")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="625"><td class="num" id="LN625">625</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="626"><td class="num" id="LN626">626</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="627"><td class="num" id="LN627">627</td><td class="line"> <span class='keyword'>if</span> (!gdk_rgba_parse (&amp;color, g_variant_get_string (settings_value, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)))</td></tr>
+<tr class="codeline" data-linenumber="628"><td class="num" id="LN628">628</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="629"><td class="num" id="LN629">629</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="630"><td class="num" id="LN630">630</td><td class="line"> g_value_set_boxed (&amp;value, &amp;color);</td></tr>
+<tr class="codeline" data-linenumber="631"><td class="num" id="LN631">631</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="632"><td class="num" id="LN632">632</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span> == <span class='macro'>PANGO_TYPE_FONT_DESCRIPTION<span class='macro_popup'>(pango_font_description_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="633"><td class="num" id="LN633">633</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="634"><td class="num" id="LN634">634</td><td class="line"> <span class='keyword'>if</span> (!g_variant_is_of_type (settings_value, <span class='macro'>G_VARIANT_TYPE_STRING<span class='macro_popup'>((const GVariantType *) "s")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="635"><td class="num" id="LN635">635</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="636"><td class="num" id="LN636">636</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="637"><td class="num" id="LN637">637</td><td class="line"> g_value_take_boxed (&amp;value, pango_font_description_from_string (g_variant_get_string (settings_value, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)));</td></tr>
+<tr class="codeline" data-linenumber="638"><td class="num" id="LN638">638</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="639"><td class="num" id="LN639">639</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_DOUBLE (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[13])); gboolean __r<br>; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="640"><td class="num" id="LN640">640</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="641"><td class="num" id="LN641">641</td><td class="line"> <span class='keyword'>if</span> (!g_variant_is_of_type (settings_value, <span class='macro'>G_VARIANT_TYPE_DOUBLE<span class='macro_popup'>((const GVariantType *) "d")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="642"><td class="num" id="LN642">642</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="643"><td class="num" id="LN643">643</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="644"><td class="num" id="LN644">644</td><td class="line"> g_value_set_double (&amp;value, g_variant_get_double (settings_value));</td></tr>
+<tr class="codeline" data-linenumber="645"><td class="num" id="LN645">645</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="646"><td class="num" id="LN646">646</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_INT (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[3])); gboolean __r<br>; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="647"><td class="num" id="LN647">647</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="648"><td class="num" id="LN648">648</td><td class="line"> <span class='keyword'>if</span> (!g_variant_is_of_type (settings_value, <span class='macro'>G_VARIANT_TYPE_INT16<span class='macro_popup'>((const GVariantType *) "n")</span></span>) &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="649"><td class="num" id="LN649">649</td><td class="line"> !g_variant_is_of_type (settings_value, <span class='macro'>G_VARIANT_TYPE_INT32<span class='macro_popup'>((const GVariantType *) "i")</span></span>) &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="650"><td class="num" id="LN650">650</td><td class="line"> !g_variant_is_of_type (settings_value, <span class='macro'>G_VARIANT_TYPE_INT64<span class='macro_popup'>((const GVariantType *) "x")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="651"><td class="num" id="LN651">651</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="652"><td class="num" id="LN652">652</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="653"><td class="num" id="LN653">653</td><td class="line"> g_value_set_int (&amp;value, g_settings_get_int(settings, key));</td></tr>
+<tr class="codeline" data-linenumber="654"><td class="num" id="LN654">654</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="655"><td class="num" id="LN655">655</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_VALUE_ARRAY (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[18]) GCC warning "Deprecated pre-processor symbol"<br>
+); gboolean __r; if (!__inst) __r = (0); else if (__inst-&gt;<br>g_class &amp;&amp; __inst-&gt;g_class-&gt;g_type == __t) __r =<br> (!(0)); else __r = g_type_check_instance_is_a (__inst, __t);<br> __r; })))) GCC warning "Deprecated pre-processor symbol"
+</span></span> &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="656"><td class="num" id="LN656">656</td><td class="line"> <span class='macro'>G_PARAM_SPEC_VALUE_TYPE (G_PARAM_SPEC_VALUE_ARRAY (pspec)-&gt;element_spec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((((((GParamSpecValueArray*) (void *) g_type_check_instance_cast<br> ((GTypeInstance*) ((pspec)), ((g_param_spec_types[18]) GCC warning<br> "Deprecated pre-processor symbol"
+))))) GCC warning "Deprecated pre-processor symbol"<br>
+-&gt;element_spec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;<br>value_type)</span></span> == <span class='macro'>GDK_TYPE_RGBA<span class='macro_popup'>(gdk_rgba_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="657"><td class="num" id="LN657">657</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="658"><td class="num" id="LN658">658</td><td class="line"> <span class='keyword'>char</span> **color_strings;</td></tr>
+<tr class="codeline" data-linenumber="659"><td class="num" id="LN659">659</td><td class="line"> GdkRGBA *colors;</td></tr>
+<tr class="codeline" data-linenumber="660"><td class="num" id="LN660">660</td><td class="line"> <span class='keyword'>int</span> n_colors, i;</td></tr>
+<tr class="codeline" data-linenumber="661"><td class="num" id="LN661">661</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="662"><td class="num" id="LN662">662</td><td class="line"> <span class='keyword'>if</span> (!g_variant_is_of_type (settings_value, <span class='macro'>G_VARIANT_TYPE_STRING<span class='macro_popup'>((const GVariantType *) "s")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="663"><td class="num" id="LN663">663</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="664"><td class="num" id="LN664">664</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="665"><td class="num" id="LN665">665</td><td class="line"> color_strings = g_strsplit (g_variant_get_string (settings_value, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>), <span class='string_literal'>":"</span>, -1);</td></tr>
+<tr class="codeline" data-linenumber="666"><td class="num" id="LN666">666</td><td class="line"> <span class='keyword'>if</span> (!color_strings)</td></tr>
+<tr class="codeline" data-linenumber="667"><td class="num" id="LN667">667</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="668"><td class="num" id="LN668">668</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="669"><td class="num" id="LN669">669</td><td class="line"> n_colors = g_strv_length (color_strings);</td></tr>
+<tr class="codeline" data-linenumber="670"><td class="num" id="LN670">670</td><td class="line"> colors = <span class='macro'>g_new0 (GdkRGBA, n_colors)<span class='macro_popup'>((GdkRGBA *) g_malloc0_n ((n_colors), sizeof (GdkRGBA)))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="671"><td class="num" id="LN671">671</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; n_colors; ++i)</td></tr>
+<tr class="codeline" data-linenumber="672"><td class="num" id="LN672">672</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="673"><td class="num" id="LN673">673</td><td class="line"> <span class='keyword'>if</span> (!gdk_rgba_parse (&amp;colors[i], color_strings[i]))</td></tr>
+<tr class="codeline" data-linenumber="674"><td class="num" id="LN674">674</td><td class="line"> <span class='keyword'>continue</span>; <span class='comment'>/* ignore errors */</span></td></tr>
+<tr class="codeline" data-linenumber="675"><td class="num" id="LN675">675</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="676"><td class="num" id="LN676">676</td><td class="line"> g_strfreev (color_strings);</td></tr>
+<tr class="codeline" data-linenumber="677"><td class="num" id="LN677">677</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="678"><td class="num" id="LN678">678</td><td class="line"> <span class='comment'>/* We continue even with a palette size != TERMINAL_PALETTE_SIZE,</span></td></tr>
+<tr class="codeline" data-linenumber="679"><td class="num" id="LN679">679</td><td class="line"> <span class='comment'>* so we can change the palette size in future versions without</span></td></tr>
+<tr class="codeline" data-linenumber="680"><td class="num" id="LN680">680</td><td class="line"> <span class='comment'>* causing too many issues.</span></td></tr>
+<tr class="codeline" data-linenumber="681"><td class="num" id="LN681">681</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="682"><td class="num" id="LN682">682</td><td class="line"> set_value_from_palette (&amp;value, colors, n_colors);</td></tr>
+<tr class="codeline" data-linenumber="683"><td class="num" id="LN683">683</td><td class="line"> g_free (colors);</td></tr>
+<tr class="codeline" data-linenumber="684"><td class="num" id="LN684">684</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="685"><td class="num" id="LN685">685</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="686"><td class="num" id="LN686">686</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="687"><td class="num" id="LN687">687</td><td class="line"> g_printerr (<span class='string_literal'>"Unhandled value type %s of pspec %s\n"</span>, g_type_name (<span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span>), pspec-&gt;name);</td></tr>
+<tr class="codeline" data-linenumber="688"><td class="num" id="LN688">688</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="689"><td class="num" id="LN689">689</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="690"><td class="num" id="LN690">690</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="691"><td class="num" id="LN691">691</td><td class="line"> <span class='keyword'>if</span> (g_param_value_validate (pspec, &amp;value))</td></tr>
+<tr class="codeline" data-linenumber="692"><td class="num" id="LN692">692</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="693"><td class="num" id="LN693">693</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_PROFILE,<span class='macro_popup'>do { if (0) g_printerr("Invalid value in GSettings for key %s was changed to comply with pspec %s\n"<br>, key, pspec-&gt;name); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="694"><td class="num" id="LN694">694</td><td class="line"> <span class='string_literal'><span class='macro'>"Invalid value in GSettings for key %s was changed to comply with pspec %s\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("Invalid value in GSettings for key %s was changed to comply with pspec %s\n"<br>, key, pspec-&gt;name); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="695"><td class="num" id="LN695">695</td><td class="line"> <span class='macro'>key, pspec-&gt;name)<span class='macro_popup'>do { if (0) g_printerr("Invalid value in GSettings for key %s was changed to comply with pspec %s\n"<br>, key, pspec-&gt;name); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="696"><td class="num" id="LN696">696</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="697"><td class="num" id="LN697">697</td><td class="line"> force_set = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="698"><td class="num" id="LN698">698</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="699"><td class="num" id="LN699">699</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="700"><td class="num" id="LN700">700</td><td class="line"> <span class='comment'>/* Only set the property if the value is different than our current value,</span></td></tr>
+<tr class="codeline" data-linenumber="701"><td class="num" id="LN701">701</td><td class="line"> <span class='comment'>* so we don't go into an infinite loop.</span></td></tr>
+<tr class="codeline" data-linenumber="702"><td class="num" id="LN702">702</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="703"><td class="num" id="LN703">703</td><td class="line"> equal = values_equal (pspec, &amp;value, g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id));</td></tr>
+<tr class="codeline" data-linenumber="704"><td class="num" id="LN704">704</td><td class="line"><span class='directive'>#ifdef MATE_ENABLE_DEBUG</span></td></tr>
+<tr class="codeline" data-linenumber="705"><td class="num" id="LN705">705</td><td class="line"> <span class='macro'>_TERMINAL_DEBUG_IF (TERMINAL_DEBUG_PROFILE)<span class='macro_popup'>if (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="706"><td class="num" id="LN706">706</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="707"><td class="num" id="LN707">707</td><td class="line"> <span class='keyword'>if</span> (!equal)</td></tr>
+<tr class="codeline" data-linenumber="708"><td class="num" id="LN708">708</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_PROFILE,<span class='macro_popup'>do { if (0) g_printerr("Setting property %s to a different value\n"<br> " now: %s\n" " new: %s\n", pspec-&gt;name, g_strdup_value_contents<br> (g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id<br>)), g_strdup_value_contents (&amp;value)); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="709"><td class="num" id="LN709">709</td><td class="line"> <span class='string_literal'><span class='macro'>"Setting property %s to a different value\n"<span class='macro_popup'>do { if (0) g_printerr("Setting property %s to a different value\n"<br> " now: %s\n" " new: %s\n", pspec-&gt;name, g_strdup_value_contents<br> (g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id<br>)), g_strdup_value_contents (&amp;value)); } while (0)</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="710"><td class="num" id="LN710">710</td><td class="line"> <span class='string_literal'><span class='macro'>" now: %s\n"<span class='macro_popup'>do { if (0) g_printerr("Setting property %s to a different value\n"<br> " now: %s\n" " new: %s\n", pspec-&gt;name, g_strdup_value_contents<br> (g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id<br>)), g_strdup_value_contents (&amp;value)); } while (0)</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="711"><td class="num" id="LN711">711</td><td class="line"> <span class='string_literal'><span class='macro'>" new: %s\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("Setting property %s to a different value\n"<br> " now: %s\n" " new: %s\n", pspec-&gt;name, g_strdup_value_contents<br> (g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id<br>)), g_strdup_value_contents (&amp;value)); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="712"><td class="num" id="LN712">712</td><td class="line"> <span class='macro'>pspec-&gt;name,<span class='macro_popup'>do { if (0) g_printerr("Setting property %s to a different value\n"<br> " now: %s\n" " new: %s\n", pspec-&gt;name, g_strdup_value_contents<br> (g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id<br>)), g_strdup_value_contents (&amp;value)); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="713"><td class="num" id="LN713">713</td><td class="line"> <span class='macro'>g_strdup_value_contents (g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id)),<span class='macro_popup'>do { if (0) g_printerr("Setting property %s to a different value\n"<br> " now: %s\n" " new: %s\n", pspec-&gt;name, g_strdup_value_contents<br> (g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id<br>)), g_strdup_value_contents (&amp;value)); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="714"><td class="num" id="LN714">714</td><td class="line"> <span class='macro'>g_strdup_value_contents (&amp;value))<span class='macro_popup'>do { if (0) g_printerr("Setting property %s to a different value\n"<br> " now: %s\n" " new: %s\n", pspec-&gt;name, g_strdup_value_contents<br> (g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id<br>)), g_strdup_value_contents (&amp;value)); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="715"><td class="num" id="LN715">715</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="716"><td class="num" id="LN716">716</td><td class="line"><span class='directive'>#endif</span></td></tr>
+<tr class="codeline" data-linenumber="717"><td class="num" id="LN717">717</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="718"><td class="num" id="LN718">718</td><td class="line"> <span class='keyword'>if</span> (!equal || force_set)</td></tr>
+<tr class="codeline" data-linenumber="719"><td class="num" id="LN719">719</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="720"><td class="num" id="LN720">720</td><td class="line"> priv-&gt;gsettings_notification_pspec = pspec;</td></tr>
+<tr class="codeline" data-linenumber="721"><td class="num" id="LN721">721</td><td class="line"> g_object_set_property (<span class='macro'>G_OBJECT (profile)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((profile)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, pspec-&gt;name, &amp;value);</td></tr>
+<tr class="codeline" data-linenumber="722"><td class="num" id="LN722">722</td><td class="line"> priv-&gt;gsettings_notification_pspec = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="723"><td class="num" id="LN723">723</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="724"><td class="num" id="LN724">724</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="725"><td class="num" id="LN725">725</td><td class="line">out:</td></tr>
+<tr class="codeline" data-linenumber="726"><td class="num" id="LN726">726</td><td class="line"> <span class='comment'>/* FIXME: if we arrive here through goto in the error cases,</span></td></tr>
+<tr class="codeline" data-linenumber="727"><td class="num" id="LN727">727</td><td class="line"> <span class='comment'>* should we maybe reset the property to its default value?</span></td></tr>
+<tr class="codeline" data-linenumber="728"><td class="num" id="LN728">728</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="729"><td class="num" id="LN729">729</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="730"><td class="num" id="LN730">730</td><td class="line"> g_value_unset (&amp;value);</td></tr>
+<tr class="codeline" data-linenumber="731"><td class="num" id="LN731">731</td><td class="line"> g_variant_unref (settings_value);</td></tr>
+<tr class="codeline" data-linenumber="732"><td class="num" id="LN732">732</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="733"><td class="num" id="LN733">733</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="734"><td class="num" id="LN734">734</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="735"><td class="num" id="LN735">735</td><td class="line">terminal_profile_gsettings_changeset_add (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="736"><td class="num" id="LN736">736</td><td class="line"> GSettings *changeset,</td></tr>
+<tr class="codeline" data-linenumber="737"><td class="num" id="LN737">737</td><td class="line"> GParamSpec *pspec)</td></tr>
+<tr class="codeline" data-linenumber="738"><td class="num" id="LN738">738</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="739"><td class="num" id="LN739">739</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="740"><td class="num" id="LN740">740</td><td class="line"> <span class='keyword'>char</span> *key;</td></tr>
+<tr class="codeline" data-linenumber="741"><td class="num" id="LN741">741</td><td class="line"> <span class='keyword'>const</span> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="742"><td class="num" id="LN742">742</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="743"><td class="num" id="LN743">743</td><td class="line"> <span class='comment'>/* FIXME: do this? */</span></td></tr>
+<tr class="codeline" data-linenumber="744"><td class="num" id="LN744">744</td><td class="line"><span class='directive'>#if 0</span></td></tr>
+<tr class="codeline" data-linenumber="745"><td class="num" id="LN745">745</td><td class="line"> <span class='keyword'>if</span> (priv-&gt;locked[pspec-&gt;param_id])</td></tr>
+<tr class="codeline" data-linenumber="746"><td class="num" id="LN746">746</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="747"><td class="num" id="LN747">747</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="748"><td class="num" id="LN748">748</td><td class="line"> <span class='keyword'>if</span> (!g_settings_is_writable (priv-&gt;settings, gsettings_key, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="749"><td class="num" id="LN749">749</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="750"><td class="num" id="LN750">750</td><td class="line"><span class='directive'>#endif</span></td></tr>
+<tr class="codeline" data-linenumber="751"><td class="num" id="LN751">751</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="752"><td class="num" id="LN752">752</td><td class="line"> key = g_param_spec_get_qdata (pspec, gsettings_key_quark);</td></tr>
+<tr class="codeline" data-linenumber="753"><td class="num" id="LN753">753</td><td class="line"> <span class='keyword'>if</span> (!key)</td></tr>
+<tr class="codeline" data-linenumber="754"><td class="num" id="LN754">754</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="755"><td class="num" id="LN755">755</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="756"><td class="num" id="LN756">756</td><td class="line"> value = g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id);</td></tr>
+<tr class="codeline" data-linenumber="757"><td class="num" id="LN757">757</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="758"><td class="num" id="LN758">758</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_PROFILE,<span class='macro_popup'>do { if (0) g_printerr("Adding pspec %s with value %s to the GSettings changeset\n"<br>, pspec-&gt;name, g_strdup_value_contents (value)); } while (<br>0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="759"><td class="num" id="LN759">759</td><td class="line"> <span class='string_literal'><span class='macro'>"Adding pspec %s with value %s to the GSettings changeset\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("Adding pspec %s with value %s to the GSettings changeset\n"<br>, pspec-&gt;name, g_strdup_value_contents (value)); } while (<br>0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="760"><td class="num" id="LN760">760</td><td class="line"> <span class='macro'>pspec-&gt;name, g_strdup_value_contents (value))<span class='macro_popup'>do { if (0) g_printerr("Adding pspec %s with value %s to the GSettings changeset\n"<br>, pspec-&gt;name, g_strdup_value_contents (value)); } while (<br>0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="761"><td class="num" id="LN761">761</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="762"><td class="num" id="LN762">762</td><td class="line"> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_BOOLEAN (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[2])); gboolean __r<br>; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="763"><td class="num" id="LN763">763</td><td class="line"> g_settings_set_boolean (changeset, key, g_value_get_boolean (value));</td></tr>
+<tr class="codeline" data-linenumber="764"><td class="num" id="LN764">764</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_STRING (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[14])); gboolean __r<br>; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="765"><td class="num" id="LN765">765</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="766"><td class="num" id="LN766">766</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *str;</td></tr>
+<tr class="codeline" data-linenumber="767"><td class="num" id="LN767">767</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="768"><td class="num" id="LN768">768</td><td class="line"> str = g_value_get_string (value);</td></tr>
+<tr class="codeline" data-linenumber="769"><td class="num" id="LN769">769</td><td class="line"> g_settings_set_string (changeset, key, str ? str : <span class='string_literal'>""</span>);</td></tr>
+<tr class="codeline" data-linenumber="770"><td class="num" id="LN770">770</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="771"><td class="num" id="LN771">771</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_ENUM (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[10])); gboolean __r<br>; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="772"><td class="num" id="LN772">772</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="773"><td class="num" id="LN773">773</td><td class="line"> <span class='keyword'>const</span> GEnumValue *eval;</td></tr>
+<tr class="codeline" data-linenumber="774"><td class="num" id="LN774">774</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="775"><td class="num" id="LN775">775</td><td class="line"> eval = g_enum_get_value (<span class='macro'>G_PARAM_SPEC_ENUM (pspec)<span class='macro_popup'>((((GParamSpecEnum*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), ((g_param_spec_types[10]))))))</span></span>-&gt;enum_class, g_value_get_enum (value));</td></tr>
+<tr class="codeline" data-linenumber="776"><td class="num" id="LN776">776</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="777"><td class="num" id="LN777">777</td><td class="line"> g_settings_set_enum (changeset, key, eval-&gt;value);</td></tr>
+<tr class="codeline" data-linenumber="778"><td class="num" id="LN778">778</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="779"><td class="num" id="LN779">779</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span> == <span class='macro'>GDK_TYPE_RGBA<span class='macro_popup'>(gdk_rgba_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="780"><td class="num" id="LN780">780</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="781"><td class="num" id="LN781">781</td><td class="line"> GdkRGBA *color;</td></tr>
+<tr class="codeline" data-linenumber="782"><td class="num" id="LN782">782</td><td class="line"> <span class='keyword'>char</span> str[16];</td></tr>
+<tr class="codeline" data-linenumber="783"><td class="num" id="LN783">783</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="784"><td class="num" id="LN784">784</td><td class="line"> color = g_value_get_boxed (value);</td></tr>
+<tr class="codeline" data-linenumber="785"><td class="num" id="LN785">785</td><td class="line"> <span class='keyword'>if</span> (!color)</td></tr>
+<tr class="codeline" data-linenumber="786"><td class="num" id="LN786">786</td><td class="line"> <span class='keyword'>goto</span> cleanup;</td></tr>
+<tr class="codeline" data-linenumber="787"><td class="num" id="LN787">787</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="788"><td class="num" id="LN788">788</td><td class="line"> g_snprintf (str, <span class='keyword'>sizeof</span> (str),</td></tr>
+<tr class="codeline" data-linenumber="789"><td class="num" id="LN789">789</td><td class="line"> <span class='string_literal'>"#%04X%04X%04X"</span>,</td></tr>
+<tr class="codeline" data-linenumber="790"><td class="num" id="LN790">790</td><td class="line"> (guint) (color-&gt;red * 65535),</td></tr>
+<tr class="codeline" data-linenumber="791"><td class="num" id="LN791">791</td><td class="line"> (guint) (color-&gt;green * 65535),</td></tr>
+<tr class="codeline" data-linenumber="792"><td class="num" id="LN792">792</td><td class="line"> (guint) (color-&gt;blue * 65535));</td></tr>
+<tr class="codeline" data-linenumber="793"><td class="num" id="LN793">793</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="794"><td class="num" id="LN794">794</td><td class="line"> g_settings_set_string (changeset, key, str);</td></tr>
+<tr class="codeline" data-linenumber="795"><td class="num" id="LN795">795</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="796"><td class="num" id="LN796">796</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span> == <span class='macro'>PANGO_TYPE_FONT_DESCRIPTION<span class='macro_popup'>(pango_font_description_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="797"><td class="num" id="LN797">797</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="798"><td class="num" id="LN798">798</td><td class="line"> PangoFontDescription *font_desc;</td></tr>
+<tr class="codeline" data-linenumber="799"><td class="num" id="LN799">799</td><td class="line"> <span class='keyword'>char</span> *font;</td></tr>
+<tr class="codeline" data-linenumber="800"><td class="num" id="LN800">800</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="801"><td class="num" id="LN801">801</td><td class="line"> font_desc = g_value_get_boxed (value);</td></tr>
+<tr class="codeline" data-linenumber="802"><td class="num" id="LN802">802</td><td class="line"> <span class='keyword'>if</span> (!font_desc)</td></tr>
+<tr class="codeline" data-linenumber="803"><td class="num" id="LN803">803</td><td class="line"> <span class='keyword'>goto</span> cleanup;</td></tr>
+<tr class="codeline" data-linenumber="804"><td class="num" id="LN804">804</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="805"><td class="num" id="LN805">805</td><td class="line"> font = pango_font_description_to_string (font_desc);</td></tr>
+<tr class="codeline" data-linenumber="806"><td class="num" id="LN806">806</td><td class="line"> g_settings_set_string (changeset, key, font);</td></tr>
+<tr class="codeline" data-linenumber="807"><td class="num" id="LN807">807</td><td class="line"> g_free (font);</td></tr>
+<tr class="codeline" data-linenumber="808"><td class="num" id="LN808">808</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="809"><td class="num" id="LN809">809</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_DOUBLE (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[13])); gboolean __r<br>; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="810"><td class="num" id="LN810">810</td><td class="line"> g_settings_set_double (changeset, key, g_value_get_double (value));</td></tr>
+<tr class="codeline" data-linenumber="811"><td class="num" id="LN811">811</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_INT (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[3])); gboolean __r<br>; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="812"><td class="num" id="LN812">812</td><td class="line"> g_settings_set_int (changeset, key, g_value_get_int (value));</td></tr>
+<tr class="codeline" data-linenumber="813"><td class="num" id="LN813">813</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_VALUE_ARRAY (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[18]) GCC warning "Deprecated pre-processor symbol"<br>
+); gboolean __r; if (!__inst) __r = (0); else if (__inst-&gt;<br>g_class &amp;&amp; __inst-&gt;g_class-&gt;g_type == __t) __r =<br> (!(0)); else __r = g_type_check_instance_is_a (__inst, __t);<br> __r; })))) GCC warning "Deprecated pre-processor symbol"
+</span></span> &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="814"><td class="num" id="LN814">814</td><td class="line"> <span class='macro'>G_PARAM_SPEC_VALUE_TYPE (G_PARAM_SPEC_VALUE_ARRAY (pspec)-&gt;element_spec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((((((GParamSpecValueArray*) (void *) g_type_check_instance_cast<br> ((GTypeInstance*) ((pspec)), ((g_param_spec_types[18]) GCC warning<br> "Deprecated pre-processor symbol"
+))))) GCC warning "Deprecated pre-processor symbol"<br>
+-&gt;element_spec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;<br>value_type)</span></span> == <span class='macro'>GDK_TYPE_RGBA<span class='macro_popup'>(gdk_rgba_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="815"><td class="num" id="LN815">815</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="816"><td class="num" id="LN816">816</td><td class="line"> GValueArray *array;</td></tr>
+<tr class="codeline" data-linenumber="817"><td class="num" id="LN817">817</td><td class="line"> GString *string;</td></tr>
+<tr class="codeline" data-linenumber="818"><td class="num" id="LN818">818</td><td class="line"> guint n_colors, i;</td></tr>
+<tr class="codeline" data-linenumber="819"><td class="num" id="LN819">819</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="820"><td class="num" id="LN820">820</td><td class="line"> <span class='comment'>/* We need to do this ourselves, because the gtk_color_selection_palette_to_string</span></td></tr>
+<tr class="codeline" data-linenumber="821"><td class="num" id="LN821">821</td><td class="line"> <span class='comment'>* does not carry all the bytes, and xterm's palette is messed up...</span></td></tr>
+<tr class="codeline" data-linenumber="822"><td class="num" id="LN822">822</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="823"><td class="num" id="LN823">823</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="824"><td class="num" id="LN824">824</td><td class="line"> array = g_value_get_boxed (value);</td></tr>
+<tr class="codeline" data-linenumber="825"><td class="num" id="LN825">825</td><td class="line"> <span class='keyword'>if</span> (!array)</td></tr>
+<tr class="codeline" data-linenumber="826"><td class="num" id="LN826">826</td><td class="line"> <span class='keyword'>goto</span> cleanup;</td></tr>
+<tr class="codeline" data-linenumber="827"><td class="num" id="LN827">827</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="828"><td class="num" id="LN828">828</td><td class="line"> n_colors = array-&gt;n_values;</td></tr>
+<tr class="codeline" data-linenumber="829"><td class="num" id="LN829">829</td><td class="line"> string = g_string_sized_new (n_colors * (1 <span class='comment'>/* # */</span> + 3 * 4) + n_colors <span class='comment'>/* : separators and terminating \0 */</span>);</td></tr>
+<tr class="codeline" data-linenumber="830"><td class="num" id="LN830">830</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; n_colors; ++i)</td></tr>
+<tr class="codeline" data-linenumber="831"><td class="num" id="LN831">831</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="832"><td class="num" id="LN832">832</td><td class="line"> GdkRGBA *color;</td></tr>
+<tr class="codeline" data-linenumber="833"><td class="num" id="LN833">833</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="834"><td class="num" id="LN834">834</td><td class="line"> <span class='keyword'>if</span> (i &gt; 0)</td></tr>
+<tr class="codeline" data-linenumber="835"><td class="num" id="LN835">835</td><td class="line"> <span class='macro'>g_string_append_c (string, ':')<span class='macro_popup'>g_string_append_c_inline (string, ':')</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="836"><td class="num" id="LN836">836</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="837"><td class="num" id="LN837">837</td><td class="line"> color = g_value_get_boxed (g_value_array_get_nth (array, i));</td></tr>
+<tr class="codeline" data-linenumber="838"><td class="num" id="LN838">838</td><td class="line"> <span class='keyword'>if</span> (!color)</td></tr>
+<tr class="codeline" data-linenumber="839"><td class="num" id="LN839">839</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="840"><td class="num" id="LN840">840</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="841"><td class="num" id="LN841">841</td><td class="line"> g_string_append_printf (string,</td></tr>
+<tr class="codeline" data-linenumber="842"><td class="num" id="LN842">842</td><td class="line"> <span class='string_literal'>"#%04X%04X%04X"</span>,</td></tr>
+<tr class="codeline" data-linenumber="843"><td class="num" id="LN843">843</td><td class="line"> (guint) (color-&gt;red * 65535),</td></tr>
+<tr class="codeline" data-linenumber="844"><td class="num" id="LN844">844</td><td class="line"> (guint) (color-&gt;green * 65535),</td></tr>
+<tr class="codeline" data-linenumber="845"><td class="num" id="LN845">845</td><td class="line"> (guint) (color-&gt;blue * 65535));</td></tr>
+<tr class="codeline" data-linenumber="846"><td class="num" id="LN846">846</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="847"><td class="num" id="LN847">847</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="848"><td class="num" id="LN848">848</td><td class="line"> g_settings_set_string (changeset, key, string-&gt;str);</td></tr>
+<tr class="codeline" data-linenumber="849"><td class="num" id="LN849">849</td><td class="line"> <span class='macro'>g_string_free (string, TRUE)<span class='macro_popup'>(__builtin_constant_p ((!(0))) ? (((!(0))) ? (g_string_free) (<br>(string), ((!(0)))) : g_string_free_and_steal (string)) : (g_string_free<br>) ((string), ((!(0)))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="850"><td class="num" id="LN850">850</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="851"><td class="num" id="LN851">851</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="852"><td class="num" id="LN852">852</td><td class="line"> g_printerr (<span class='string_literal'>"Unhandled value type %s of pspec %s\n"</span>, g_type_name (<span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span>), pspec-&gt;name);</td></tr>
+<tr class="codeline" data-linenumber="853"><td class="num" id="LN853">853</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="854"><td class="num" id="LN854">854</td><td class="line">cleanup:</td></tr>
+<tr class="codeline" data-linenumber="855"><td class="num" id="LN855">855</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="856"><td class="num" id="LN856">856</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="857"><td class="num" id="LN857">857</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="858"><td class="num" id="LN858">858</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="859"><td class="num" id="LN859">859</td><td class="line">terminal_profile_save (TerminalProfile *profile)</td></tr>
+<tr class="codeline" data-linenumber="860"><td class="num" id="LN860">860</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="861"><td class="num" id="LN861">861</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="862"><td class="num" id="LN862">862</td><td class="line"> GSettings *changeset;</td></tr>
+<tr class="codeline" data-linenumber="863"><td class="num" id="LN863">863</td><td class="line"> GSList *l;</td></tr>
+<tr class="codeline" data-linenumber="864"><td class="num" id="LN864">864</td><td class="line"> gchar *concat;</td></tr>
+<tr class="codeline" data-linenumber="865"><td class="num" id="LN865">865</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="866"><td class="num" id="LN866">866</td><td class="line"> priv-&gt;save_idle_id = 0;</td></tr>
+<tr class="codeline" data-linenumber="867"><td class="num" id="LN867">867</td><td class="line"> concat = g_strconcat (<span class='macro'>CONF_PROFILE_PREFIX<span class='macro_popup'>"/org/mate/terminal/profiles/"</span></span>, priv-&gt;profile_dir,<span class='string_literal'>"/"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="868"><td class="num" id="LN868">868</td><td class="line"> changeset = g_settings_new_with_path (<span class='macro'>CONF_PROFILE_SCHEMA<span class='macro_popup'>"org.mate.terminal" ".profile"</span></span>, concat);</td></tr>
+<tr class="codeline" data-linenumber="869"><td class="num" id="LN869">869</td><td class="line"> g_free (concat);</td></tr>
+<tr class="codeline" data-linenumber="870"><td class="num" id="LN870">870</td><td class="line"> g_settings_delay (changeset);</td></tr>
+<tr class="codeline" data-linenumber="871"><td class="num" id="LN871">871</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="872"><td class="num" id="LN872">872</td><td class="line"> <span class='keyword'>for</span> (l = priv-&gt;dirty_pspecs; l != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; l = l-&gt;next)</td></tr>
+<tr class="codeline" data-linenumber="873"><td class="num" id="LN873">873</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="874"><td class="num" id="LN874">874</td><td class="line"> GParamSpec *pspec = (GParamSpec *) l-&gt;data;</td></tr>
+<tr class="codeline" data-linenumber="875"><td class="num" id="LN875">875</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="876"><td class="num" id="LN876">876</td><td class="line"> <span class='keyword'>if</span> (pspec-&gt;owner_type != <span class='macro'>TERMINAL_TYPE_PROFILE<span class='macro_popup'>(terminal_profile_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="877"><td class="num" id="LN877">877</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="878"><td class="num" id="LN878">878</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="879"><td class="num" id="LN879">879</td><td class="line"> <span class='keyword'>if</span> ((pspec-&gt;flags &amp; G_PARAM_WRITABLE) == 0)</td></tr>
+<tr class="codeline" data-linenumber="880"><td class="num" id="LN880">880</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="881"><td class="num" id="LN881">881</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="882"><td class="num" id="LN882">882</td><td class="line"> terminal_profile_gsettings_changeset_add (profile, changeset, pspec);</td></tr>
+<tr class="codeline" data-linenumber="883"><td class="num" id="LN883">883</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="884"><td class="num" id="LN884">884</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="885"><td class="num" id="LN885">885</td><td class="line"> g_slist_free (priv-&gt;dirty_pspecs);</td></tr>
+<tr class="codeline" data-linenumber="886"><td class="num" id="LN886">886</td><td class="line"> priv-&gt;dirty_pspecs = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="887"><td class="num" id="LN887">887</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="888"><td class="num" id="LN888">888</td><td class="line"> g_settings_apply (changeset);</td></tr>
+<tr class="codeline" data-linenumber="889"><td class="num" id="LN889">889</td><td class="line"> g_object_unref (changeset);</td></tr>
+<tr class="codeline" data-linenumber="890"><td class="num" id="LN890">890</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="891"><td class="num" id="LN891">891</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="892"><td class="num" id="LN892">892</td><td class="line"><span class='keyword'>static</span> gboolean</td></tr>
+<tr class="codeline" data-linenumber="893"><td class="num" id="LN893">893</td><td class="line">terminal_profile_save_idle_cb (TerminalProfile *profile)</td></tr>
+<tr class="codeline" data-linenumber="894"><td class="num" id="LN894">894</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="895"><td class="num" id="LN895">895</td><td class="line"> terminal_profile_save (profile);</td></tr>
+<tr class="codeline" data-linenumber="896"><td class="num" id="LN896">896</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="897"><td class="num" id="LN897">897</td><td class="line"> <span class='comment'>/* don't run again */</span></td></tr>
+<tr class="codeline" data-linenumber="898"><td class="num" id="LN898">898</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="899"><td class="num" id="LN899">899</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="900"><td class="num" id="LN900">900</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="901"><td class="num" id="LN901">901</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="902"><td class="num" id="LN902">902</td><td class="line">terminal_profile_schedule_save (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="903"><td class="num" id="LN903">903</td><td class="line"> GParamSpec *pspec)</td></tr>
+<tr class="codeline" data-linenumber="904"><td class="num" id="LN904">904</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="905"><td class="num" id="LN905">905</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="906"><td class="num" id="LN906">906</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="907"><td class="num" id="LN907">907</td><td class="line"> <span class='macro'>g_assert (pspec != NULL)<span class='macro_popup'>do { if (pspec != ((void*)0)) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-profile.c", 907, ((const char*) (__func__<br>)), "pspec != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="908"><td class="num" id="LN908">908</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="909"><td class="num" id="LN909">909</td><td class="line"> <span class='keyword'>if</span> (!g_slist_find (priv-&gt;dirty_pspecs, pspec))</td></tr>
+<tr class="codeline" data-linenumber="910"><td class="num" id="LN910">910</td><td class="line"> priv-&gt;dirty_pspecs = g_slist_prepend (priv-&gt;dirty_pspecs, pspec);</td></tr>
+<tr class="codeline" data-linenumber="911"><td class="num" id="LN911">911</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="912"><td class="num" id="LN912">912</td><td class="line"> <span class='keyword'>if</span> (priv-&gt;save_idle_id != 0)</td></tr>
+<tr class="codeline" data-linenumber="913"><td class="num" id="LN913">913</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="914"><td class="num" id="LN914">914</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="915"><td class="num" id="LN915">915</td><td class="line"> priv-&gt;save_idle_id = g_idle_add ((GSourceFunc) terminal_profile_save_idle_cb, profile);</td></tr>
+<tr class="codeline" data-linenumber="916"><td class="num" id="LN916">916</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="917"><td class="num" id="LN917">917</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="918"><td class="num" id="LN918">918</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="919"><td class="num" id="LN919">919</td><td class="line">terminal_profile_init (TerminalProfile *profile)</td></tr>
+<tr class="codeline" data-linenumber="920"><td class="num" id="LN920">920</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="921"><td class="num" id="LN921">921</td><td class="line"> TerminalProfilePrivate *priv;</td></tr>
+<tr class="codeline" data-linenumber="922"><td class="num" id="LN922">922</td><td class="line"> GObjectClass *object_class;</td></tr>
+<tr class="codeline" data-linenumber="923"><td class="num" id="LN923">923</td><td class="line"> GParamSpec **pspecs;</td></tr>
+<tr class="codeline" data-linenumber="924"><td class="num" id="LN924">924</td><td class="line"> guint n_pspecs, i;</td></tr>
+<tr class="codeline" data-linenumber="925"><td class="num" id="LN925">925</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="926"><td class="num" id="LN926">926</td><td class="line"> priv = profile-&gt;priv = terminal_profile_get_instance_private (profile);</td></tr>
+<tr class="codeline" data-linenumber="927"><td class="num" id="LN927">927</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="928"><td class="num" id="LN928">928</td><td class="line"> priv-&gt;gsettings_notification_pspec = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="929"><td class="num" id="LN929">929</td><td class="line"> priv-&gt;locked = <span class='macro'>g_new0 (gboolean, LAST_PROP)<span class='macro_popup'>((gboolean *) g_malloc0_n ((LAST_PROP), sizeof (gboolean)))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="930"><td class="num" id="LN930">930</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="931"><td class="num" id="LN931">931</td><td class="line"> priv-&gt;properties = g_value_array_new (LAST_PROP);</td></tr>
+<tr class="codeline" data-linenumber="932"><td class="num" id="LN932">932</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; LAST_PROP; ++i)</td></tr>
+<tr class="codeline" data-linenumber="933"><td class="num" id="LN933">933</td><td class="line"> g_value_array_append (priv-&gt;properties, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="934"><td class="num" id="LN934">934</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="935"><td class="num" id="LN935">935</td><td class="line"> pspecs = g_object_class_list_properties (<span class='macro'>G_OBJECT_CLASS (TERMINAL_PROFILE_GET_CLASS (profile))<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((((((TerminalProfileClass*) (((GTypeInstance*) ((profile)<br>))-&gt;g_class)))))), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, &amp;n_pspecs);</td></tr>
+<tr class="codeline" data-linenumber="936"><td class="num" id="LN936">936</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; n_pspecs; ++i)</td></tr>
+<tr class="codeline" data-linenumber="937"><td class="num" id="LN937">937</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="938"><td class="num" id="LN938">938</td><td class="line"> GParamSpec *pspec = pspecs[i];</td></tr>
+<tr class="codeline" data-linenumber="939"><td class="num" id="LN939">939</td><td class="line"> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="940"><td class="num" id="LN940">940</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="941"><td class="num" id="LN941">941</td><td class="line"> <span class='keyword'>if</span> (pspec-&gt;owner_type != <span class='macro'>TERMINAL_TYPE_PROFILE<span class='macro_popup'>(terminal_profile_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="942"><td class="num" id="LN942">942</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="943"><td class="num" id="LN943">943</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="944"><td class="num" id="LN944">944</td><td class="line"> <span class='macro'>g_assert (pspec-&gt;param_id &lt; LAST_PROP)<span class='macro_popup'>do { if (pspec-&gt;param_id &lt; LAST_PROP) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-profile.c", 944, ((const char*) (__func__<br>)), "pspec-&gt;param_id &lt; LAST_PROP"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="945"><td class="num" id="LN945">945</td><td class="line"> value = g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id);</td></tr>
+<tr class="codeline" data-linenumber="946"><td class="num" id="LN946">946</td><td class="line"> g_value_init (value, pspec-&gt;value_type);</td></tr>
+<tr class="codeline" data-linenumber="947"><td class="num" id="LN947">947</td><td class="line"> g_param_value_set_default (pspec, value);</td></tr>
+<tr class="codeline" data-linenumber="948"><td class="num" id="LN948">948</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="949"><td class="num" id="LN949">949</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="950"><td class="num" id="LN950">950</td><td class="line"> g_free (pspecs);</td></tr>
+<tr class="codeline" data-linenumber="951"><td class="num" id="LN951">951</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="952"><td class="num" id="LN952">952</td><td class="line"> <span class='comment'>/* A few properties don't have defaults via the param spec; set them explicitly */</span></td></tr>
+<tr class="codeline" data-linenumber="953"><td class="num" id="LN953">953</td><td class="line"> object_class = <span class='macro'>G_OBJECT_CLASS (TERMINAL_PROFILE_GET_CLASS (profile))<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((((((TerminalProfileClass*) (((GTypeInstance*) ((profile)<br>))-&gt;g_class)))))), (((GType) ((20) &lt;&lt; (2))))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="954"><td class="num" id="LN954">954</td><td class="line"> terminal_profile_reset_property_internal (profile, g_object_class_find_property (object_class, <span class='macro'>TERMINAL_PROFILE_FOREGROUND_COLOR<span class='macro_popup'>"foreground-color"</span></span>), <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="955"><td class="num" id="LN955">955</td><td class="line"> terminal_profile_reset_property_internal (profile, g_object_class_find_property (object_class, <span class='macro'>TERMINAL_PROFILE_BOLD_COLOR<span class='macro_popup'>"bold-color"</span></span>), <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="956"><td class="num" id="LN956">956</td><td class="line"> terminal_profile_reset_property_internal (profile, g_object_class_find_property (object_class, <span class='macro'>TERMINAL_PROFILE_BACKGROUND_COLOR<span class='macro_popup'>"background-color"</span></span>), <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="957"><td class="num" id="LN957">957</td><td class="line"> terminal_profile_reset_property_internal (profile, g_object_class_find_property (object_class, <span class='macro'>TERMINAL_PROFILE_FONT<span class='macro_popup'>"font"</span></span>), <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="958"><td class="num" id="LN958">958</td><td class="line"> terminal_profile_reset_property_internal (profile, g_object_class_find_property (object_class, <span class='macro'>TERMINAL_PROFILE_PALETTE<span class='macro_popup'>"palette"</span></span>), <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="959"><td class="num" id="LN959">959</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="960"><td class="num" id="LN960">960</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="961"><td class="num" id="LN961">961</td><td class="line"><span class='keyword'>static</span> GObject *</td></tr>
+<tr class="codeline" data-linenumber="962"><td class="num" id="LN962">962</td><td class="line">terminal_profile_constructor (GType type,</td></tr>
+<tr class="codeline" data-linenumber="963"><td class="num" id="LN963">963</td><td class="line"> guint n_construct_properties,</td></tr>
+<tr class="codeline" data-linenumber="964"><td class="num" id="LN964">964</td><td class="line"> GObjectConstructParam *construct_params)</td></tr>
+<tr class="codeline" data-linenumber="965"><td class="num" id="LN965">965</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="966"><td class="num" id="LN966">966</td><td class="line"> GObject *object;</td></tr>
+<tr class="codeline" data-linenumber="967"><td class="num" id="LN967">967</td><td class="line"> TerminalProfile *profile;</td></tr>
+<tr class="codeline" data-linenumber="968"><td class="num" id="LN968">968</td><td class="line"> TerminalProfilePrivate *priv;</td></tr>
+<tr class="codeline" data-linenumber="969"><td class="num" id="LN969">969</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *name;</td></tr>
+<tr class="codeline" data-linenumber="970"><td class="num" id="LN970">970</td><td class="line"> GParamSpec **pspecs;</td></tr>
+<tr class="codeline" data-linenumber="971"><td class="num" id="LN971">971</td><td class="line"> guint n_pspecs, i;</td></tr>
+<tr class="codeline" data-linenumber="972"><td class="num" id="LN972">972</td><td class="line"> gchar *concat;</td></tr>
+<tr class="codeline" data-linenumber="973"><td class="num" id="LN973">973</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="974"><td class="num" id="LN974">974</td><td class="line"> object = <span class='macro'>G_OBJECT_CLASS (terminal_profile_parent_class)<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((terminal_profile_parent_class)), (((GType) ((20) &lt;&lt;<br> (2))))))))</span></span>-&gt;constructor</td></tr>
+<tr class="codeline" data-linenumber="975"><td class="num" id="LN975">975</td><td class="line"> (type, n_construct_properties, construct_params);</td></tr>
+<tr class="codeline" data-linenumber="976"><td class="num" id="LN976">976</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="977"><td class="num" id="LN977">977</td><td class="line"> profile = <span class='macro'>TERMINAL_PROFILE (object)<span class='macro_popup'>((((TerminalProfile*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((object)), ((terminal_profile_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="978"><td class="num" id="LN978">978</td><td class="line"> priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="979"><td class="num" id="LN979">979</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="980"><td class="num" id="LN980">980</td><td class="line"> name = g_value_get_string (g_value_array_get_nth (priv-&gt;properties, PROP_NAME));</td></tr>
+<tr class="codeline" data-linenumber="981"><td class="num" id="LN981">981</td><td class="line"> <span class='macro'>g_assert (name != NULL)<span class='macro_popup'>do { if (name != ((void*)0)) ; else g_assertion_message_expr (<br>((gchar*) 0), "terminal-profile.c", 981, ((const char*) (__func__<br>)), "name != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="982"><td class="num" id="LN982">982</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="983"><td class="num" id="LN983">983</td><td class="line"> concat = g_strconcat (<span class='macro'>CONF_PROFILE_PREFIX<span class='macro_popup'>"/org/mate/terminal/profiles/"</span></span>, name, <span class='string_literal'>"/"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="984"><td class="num" id="LN984">984</td><td class="line"> priv-&gt;settings = g_settings_new_with_path (<span class='macro'>CONF_PROFILE_SCHEMA<span class='macro_popup'>"org.mate.terminal" ".profile"</span></span>, concat);</td></tr>
+<tr class="codeline" data-linenumber="985"><td class="num" id="LN985">985</td><td class="line"> <span class='macro'>g_assert (priv-&gt;settings != NULL)<span class='macro_popup'>do { if (priv-&gt;settings != ((void*)0)) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-profile.c", 985, ((const char*) (__func__<br>)), "priv-&gt;settings != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="986"><td class="num" id="LN986">986</td><td class="line"> g_free (concat);</td></tr>
+<tr class="codeline" data-linenumber="987"><td class="num" id="LN987">987</td><td class="line"> concat = g_strconcat(<span class='string_literal'>"changed::"</span>, priv-&gt;profile_dir, <span class='string_literal'>"/"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="988"><td class="num" id="LN988">988</td><td class="line"> <span class='macro'>g_signal_connect (priv-&gt;settings,<span class='macro_popup'>g_signal_connect_data ((priv-&gt;settings), (concat), (((GCallback<br>) (terminal_profile_gsettings_notify_cb))), (profile), ((void<br>*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="989"><td class="num" id="LN989">989</td><td class="line"> <span class='macro'>concat,<span class='macro_popup'>g_signal_connect_data ((priv-&gt;settings), (concat), (((GCallback<br>) (terminal_profile_gsettings_notify_cb))), (profile), ((void<br>*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="990"><td class="num" id="LN990">990</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_profile_gsettings_notify_cb),<span class='macro_popup'>g_signal_connect_data ((priv-&gt;settings), (concat), (((GCallback<br>) (terminal_profile_gsettings_notify_cb))), (profile), ((void<br>*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="991"><td class="num" id="LN991">991</td><td class="line"> <span class='macro'>profile)<span class='macro_popup'>g_signal_connect_data ((priv-&gt;settings), (concat), (((GCallback<br>) (terminal_profile_gsettings_notify_cb))), (profile), ((void<br>*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="992"><td class="num" id="LN992">992</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="993"><td class="num" id="LN993">993</td><td class="line"> g_free (concat);</td></tr>
+<tr class="codeline" data-linenumber="994"><td class="num" id="LN994">994</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="995"><td class="num" id="LN995">995</td><td class="line"> <span class='comment'>/* Now load those properties from GSettings that were not set as construction params */</span></td></tr>
+<tr class="codeline" data-linenumber="996"><td class="num" id="LN996">996</td><td class="line"> pspecs = g_object_class_list_properties (<span class='macro'>G_OBJECT_CLASS (TERMINAL_PROFILE_GET_CLASS (profile))<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((((((TerminalProfileClass*) (((GTypeInstance*) ((profile)<br>))-&gt;g_class)))))), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, &amp;n_pspecs);</td></tr>
+<tr class="codeline" data-linenumber="997"><td class="num" id="LN997">997</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; n_pspecs; ++i)</td></tr>
+<tr class="codeline" data-linenumber="998"><td class="num" id="LN998">998</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="999"><td class="num" id="LN999">999</td><td class="line"> GParamSpec *pspec = pspecs[i];</td></tr>
+<tr class="codeline" data-linenumber="1000"><td class="num" id="LN1000">1000</td><td class="line"> guint j;</td></tr>
+<tr class="codeline" data-linenumber="1001"><td class="num" id="LN1001">1001</td><td class="line"> gboolean is_construct = <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1002"><td class="num" id="LN1002">1002</td><td class="line"> <span class='keyword'>char</span> *key;</td></tr>
+<tr class="codeline" data-linenumber="1003"><td class="num" id="LN1003">1003</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1004"><td class="num" id="LN1004">1004</td><td class="line"> <span class='keyword'>if</span> (pspec-&gt;owner_type != <span class='macro'>TERMINAL_TYPE_PROFILE<span class='macro_popup'>(terminal_profile_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1005"><td class="num" id="LN1005">1005</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="1006"><td class="num" id="LN1006">1006</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1007"><td class="num" id="LN1007">1007</td><td class="line"> <span class='keyword'>if</span> ((pspec-&gt;flags &amp; G_PARAM_WRITABLE) == 0 ||</td></tr>
+<tr class="codeline" data-linenumber="1008"><td class="num" id="LN1008">1008</td><td class="line"> (pspec-&gt;flags &amp; G_PARAM_CONSTRUCT_ONLY) != 0)</td></tr>
+<tr class="codeline" data-linenumber="1009"><td class="num" id="LN1009">1009</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="1010"><td class="num" id="LN1010">1010</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1011"><td class="num" id="LN1011">1011</td><td class="line"> <span class='keyword'>for</span> (j = 0; j &lt; n_construct_properties; ++j)</td></tr>
+<tr class="codeline" data-linenumber="1012"><td class="num" id="LN1012">1012</td><td class="line"> <span class='keyword'>if</span> (pspec == construct_params[j].pspec)</td></tr>
+<tr class="codeline" data-linenumber="1013"><td class="num" id="LN1013">1013</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1014"><td class="num" id="LN1014">1014</td><td class="line"> is_construct = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1015"><td class="num" id="LN1015">1015</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1016"><td class="num" id="LN1016">1016</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1017"><td class="num" id="LN1017">1017</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1018"><td class="num" id="LN1018">1018</td><td class="line"> <span class='keyword'>if</span> (is_construct)</td></tr>
+<tr class="codeline" data-linenumber="1019"><td class="num" id="LN1019">1019</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="1020"><td class="num" id="LN1020">1020</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1021"><td class="num" id="LN1021">1021</td><td class="line"> key = g_param_spec_get_qdata (pspec, gsettings_key_quark);</td></tr>
+<tr class="codeline" data-linenumber="1022"><td class="num" id="LN1022">1022</td><td class="line"> <span class='keyword'>if</span> (!key)</td></tr>
+<tr class="codeline" data-linenumber="1023"><td class="num" id="LN1023">1023</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="1024"><td class="num" id="LN1024">1024</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1025"><td class="num" id="LN1025">1025</td><td class="line"> terminal_profile_gsettings_notify_cb (priv-&gt;settings, key, profile);</td></tr>
+<tr class="codeline" data-linenumber="1026"><td class="num" id="LN1026">1026</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1027"><td class="num" id="LN1027">1027</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1028"><td class="num" id="LN1028">1028</td><td class="line"> g_free (pspecs);</td></tr>
+<tr class="codeline" data-linenumber="1029"><td class="num" id="LN1029">1029</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1030"><td class="num" id="LN1030">1030</td><td class="line"> <span class='keyword'>return</span> object;</td></tr>
+<tr class="codeline" data-linenumber="1031"><td class="num" id="LN1031">1031</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1032"><td class="num" id="LN1032">1032</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1033"><td class="num" id="LN1033">1033</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1034"><td class="num" id="LN1034">1034</td><td class="line">terminal_profile_finalize (GObject *object)</td></tr>
+<tr class="codeline" data-linenumber="1035"><td class="num" id="LN1035">1035</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1036"><td class="num" id="LN1036">1036</td><td class="line"> TerminalProfile *profile = <span class='macro'>TERMINAL_PROFILE (object)<span class='macro_popup'>((((TerminalProfile*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((object)), ((terminal_profile_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1037"><td class="num" id="LN1037">1037</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1038"><td class="num" id="LN1038">1038</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1039"><td class="num" id="LN1039">1039</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (priv-&gt;settings,<span class='macro_popup'>g_signal_handlers_disconnect_matched ((priv-&gt;settings), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_profile_gsettings_notify_cb))), (<br>profile))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1040"><td class="num" id="LN1040">1040</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_profile_gsettings_notify_cb),<span class='macro_popup'>g_signal_handlers_disconnect_matched ((priv-&gt;settings), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_profile_gsettings_notify_cb))), (<br>profile))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1041"><td class="num" id="LN1041">1041</td><td class="line"> <span class='macro'>profile)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((priv-&gt;settings), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_profile_gsettings_notify_cb))), (<br>profile))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1042"><td class="num" id="LN1042">1042</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1043"><td class="num" id="LN1043">1043</td><td class="line"> <span class='keyword'>if</span> (priv-&gt;save_idle_id)</td></tr>
+<tr class="codeline" data-linenumber="1044"><td class="num" id="LN1044">1044</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1045"><td class="num" id="LN1045">1045</td><td class="line"> g_source_remove (priv-&gt;save_idle_id);</td></tr>
+<tr class="codeline" data-linenumber="1046"><td class="num" id="LN1046">1046</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1047"><td class="num" id="LN1047">1047</td><td class="line"> <span class='comment'>/* Save now */</span></td></tr>
+<tr class="codeline" data-linenumber="1048"><td class="num" id="LN1048">1048</td><td class="line"> terminal_profile_save (profile);</td></tr>
+<tr class="codeline" data-linenumber="1049"><td class="num" id="LN1049">1049</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1050"><td class="num" id="LN1050">1050</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1051"><td class="num" id="LN1051">1051</td><td class="line"> _terminal_profile_forget (profile);</td></tr>
+<tr class="codeline" data-linenumber="1052"><td class="num" id="LN1052">1052</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1053"><td class="num" id="LN1053">1053</td><td class="line"> g_object_unref (priv-&gt;settings);</td></tr>
+<tr class="codeline" data-linenumber="1054"><td class="num" id="LN1054">1054</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1055"><td class="num" id="LN1055">1055</td><td class="line"> g_free (priv-&gt;profile_dir);</td></tr>
+<tr class="codeline" data-linenumber="1056"><td class="num" id="LN1056">1056</td><td class="line"> g_free (priv-&gt;locked);</td></tr>
+<tr class="codeline" data-linenumber="1057"><td class="num" id="LN1057">1057</td><td class="line"> g_value_array_free (priv-&gt;properties);</td></tr>
+<tr class="codeline" data-linenumber="1058"><td class="num" id="LN1058">1058</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1059"><td class="num" id="LN1059">1059</td><td class="line"> <span class='macro'>G_OBJECT_CLASS (terminal_profile_parent_class)<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((terminal_profile_parent_class)), (((GType) ((20) &lt;&lt;<br> (2))))))))</span></span>-&gt;finalize (object);</td></tr>
+<tr class="codeline" data-linenumber="1060"><td class="num" id="LN1060">1060</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1061"><td class="num" id="LN1061">1061</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1062"><td class="num" id="LN1062">1062</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1063"><td class="num" id="LN1063">1063</td><td class="line">terminal_profile_get_property (GObject *object,</td></tr>
+<tr class="codeline" data-linenumber="1064"><td class="num" id="LN1064">1064</td><td class="line"> guint prop_id,</td></tr>
+<tr class="codeline" data-linenumber="1065"><td class="num" id="LN1065">1065</td><td class="line"> GValue *value,</td></tr>
+<tr class="codeline" data-linenumber="1066"><td class="num" id="LN1066">1066</td><td class="line"> GParamSpec *pspec)</td></tr>
+<tr class="codeline" data-linenumber="1067"><td class="num" id="LN1067">1067</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1068"><td class="num" id="LN1068">1068</td><td class="line"> TerminalProfile *profile = <span class='macro'>TERMINAL_PROFILE (object)<span class='macro_popup'>((((TerminalProfile*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((object)), ((terminal_profile_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1069"><td class="num" id="LN1069">1069</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1070"><td class="num" id="LN1070">1070</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1071"><td class="num" id="LN1071">1071</td><td class="line"> <span class='keyword'>if</span> (prop_id == 0 || prop_id &gt;= LAST_PROP)</td></tr>
+<tr class="codeline" data-linenumber="1072"><td class="num" id="LN1072">1072</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1073"><td class="num" id="LN1073">1073</td><td class="line"> <span class='macro'>G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec)<span class='macro_popup'>do { GObject *_glib__object = (GObject*) ((object)); GParamSpec<br> *_glib__pspec = (GParamSpec*) ((pspec)); guint _glib__property_id<br> = ((prop_id)); g_warning ("%s:%d: invalid %s id %u for \"%s\" of type '%s' in '%s'"<br>, "terminal-profile.c", 1073, ("property"), _glib__property_id<br>, _glib__pspec-&gt;name, g_type_name ((((((GTypeClass*) (((GTypeInstance<br>*) (_glib__pspec))-&gt;g_class))-&gt;g_type)))), (g_type_name<br> ((((((GTypeClass*) (((GTypeInstance*) (_glib__object))-&gt;g_class<br>))-&gt;g_type)))))); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1074"><td class="num" id="LN1074">1074</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1075"><td class="num" id="LN1075">1075</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1076"><td class="num" id="LN1076">1076</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1077"><td class="num" id="LN1077">1077</td><td class="line"> <span class='comment'>/* Note: When adding things here, do the same in get_prop_value_from_prop_name! */</span></td></tr>
+<tr class="codeline" data-linenumber="1078"><td class="num" id="LN1078">1078</td><td class="line"> <span class='keyword'>switch</span> (prop_id)</td></tr>
+<tr class="codeline" data-linenumber="1079"><td class="num" id="LN1079">1079</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1080"><td class="num" id="LN1080">1080</td><td class="line"> <span class='keyword'>case</span> PROP_BACKGROUND_IMAGE:</td></tr>
+<tr class="codeline" data-linenumber="1081"><td class="num" id="LN1081">1081</td><td class="line"> ensure_pixbuf_property (profile, PROP_BACKGROUND_IMAGE_FILE, PROP_BACKGROUND_IMAGE, &amp;priv-&gt;background_load_failed);</td></tr>
+<tr class="codeline" data-linenumber="1082"><td class="num" id="LN1082">1082</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1083"><td class="num" id="LN1083">1083</td><td class="line"> <span class='keyword'>default</span>:</td></tr>
+<tr class="codeline" data-linenumber="1084"><td class="num" id="LN1084">1084</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1085"><td class="num" id="LN1085">1085</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1086"><td class="num" id="LN1086">1086</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1087"><td class="num" id="LN1087">1087</td><td class="line"> g_value_copy (g_value_array_get_nth (priv-&gt;properties, prop_id), value);</td></tr>
+<tr class="codeline" data-linenumber="1088"><td class="num" id="LN1088">1088</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1089"><td class="num" id="LN1089">1089</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1090"><td class="num" id="LN1090">1090</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1091"><td class="num" id="LN1091">1091</td><td class="line">terminal_profile_set_property (GObject *object,</td></tr>
+<tr class="codeline" data-linenumber="1092"><td class="num" id="LN1092">1092</td><td class="line"> guint prop_id,</td></tr>
+<tr class="codeline" data-linenumber="1093"><td class="num" id="LN1093">1093</td><td class="line"> <span class='keyword'>const</span> GValue *value,</td></tr>
+<tr class="codeline" data-linenumber="1094"><td class="num" id="LN1094">1094</td><td class="line"> GParamSpec *pspec)</td></tr>
+<tr class="codeline" data-linenumber="1095"><td class="num" id="LN1095">1095</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1096"><td class="num" id="LN1096">1096</td><td class="line"> TerminalProfile *profile = <span class='macro'>TERMINAL_PROFILE (object)<span class='macro_popup'>((((TerminalProfile*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((object)), ((terminal_profile_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1097"><td class="num" id="LN1097">1097</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1098"><td class="num" id="LN1098">1098</td><td class="line"> GValue *prop_value;</td></tr>
+<tr class="codeline" data-linenumber="1099"><td class="num" id="LN1099">1099</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1100"><td class="num" id="LN1100">1100</td><td class="line"> <span class='keyword'>if</span> (prop_id == 0 || prop_id &gt;= LAST_PROP)</td></tr>
+<tr class="codeline" data-linenumber="1101"><td class="num" id="LN1101">1101</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1102"><td class="num" id="LN1102">1102</td><td class="line"> <span class='macro'>G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec)<span class='macro_popup'>do { GObject *_glib__object = (GObject*) ((object)); GParamSpec<br> *_glib__pspec = (GParamSpec*) ((pspec)); guint _glib__property_id<br> = ((prop_id)); g_warning ("%s:%d: invalid %s id %u for \"%s\" of type '%s' in '%s'"<br>, "terminal-profile.c", 1102, ("property"), _glib__property_id<br>, _glib__pspec-&gt;name, g_type_name ((((((GTypeClass*) (((GTypeInstance<br>*) (_glib__pspec))-&gt;g_class))-&gt;g_type)))), (g_type_name<br> ((((((GTypeClass*) (((GTypeInstance*) (_glib__object))-&gt;g_class<br>))-&gt;g_type)))))); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1103"><td class="num" id="LN1103">1103</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1104"><td class="num" id="LN1104">1104</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1105"><td class="num" id="LN1105">1105</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1106"><td class="num" id="LN1106">1106</td><td class="line"> prop_value = g_value_array_get_nth (priv-&gt;properties, prop_id);</td></tr>
+<tr class="codeline" data-linenumber="1107"><td class="num" id="LN1107">1107</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1108"><td class="num" id="LN1108">1108</td><td class="line"> <span class='comment'>/* Preprocessing */</span></td></tr>
+<tr class="codeline" data-linenumber="1109"><td class="num" id="LN1109">1109</td><td class="line"> <span class='keyword'>switch</span> (prop_id)</td></tr>
+<tr class="codeline" data-linenumber="1110"><td class="num" id="LN1110">1110</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1111"><td class="num" id="LN1111">1111</td><td class="line"><span class='directive'>#if 0</span></td></tr>
+<tr class="codeline" data-linenumber="1112"><td class="num" id="LN1112">1112</td><td class="line"> <span class='keyword'>case</span> PROP_FONT:</td></tr>
+<tr class="codeline" data-linenumber="1113"><td class="num" id="LN1113">1113</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1114"><td class="num" id="LN1114">1114</td><td class="line"> PangoFontDescription *font_desc, *new_font_desc;</td></tr>
+<tr class="codeline" data-linenumber="1115"><td class="num" id="LN1115">1115</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1116"><td class="num" id="LN1116">1116</td><td class="line"> font_desc = g_value_get_boxed (prop_value);</td></tr>
+<tr class="codeline" data-linenumber="1117"><td class="num" id="LN1117">1117</td><td class="line"> new_font_desc = g_value_get_boxed (value);</td></tr>
+<tr class="codeline" data-linenumber="1118"><td class="num" id="LN1118">1118</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1119"><td class="num" id="LN1119">1119</td><td class="line"> <span class='keyword'>if</span> (font_desc &amp;&amp; new_font_desc)</td></tr>
+<tr class="codeline" data-linenumber="1120"><td class="num" id="LN1120">1120</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1121"><td class="num" id="LN1121">1121</td><td class="line"> <span class='comment'>/* Merge in case the new string isn't complete enough to load a font */</span></td></tr>
+<tr class="codeline" data-linenumber="1122"><td class="num" id="LN1122">1122</td><td class="line"> pango_font_description_merge (font_desc, new_font_desc, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1123"><td class="num" id="LN1123">1123</td><td class="line"> pango_font_description_free (new_font_desc);</td></tr>
+<tr class="codeline" data-linenumber="1124"><td class="num" id="LN1124">1124</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1125"><td class="num" id="LN1125">1125</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1126"><td class="num" id="LN1126">1126</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1127"><td class="num" id="LN1127">1127</td><td class="line"> <span class='comment'>/* fall-through */</span></td></tr>
+<tr class="codeline" data-linenumber="1128"><td class="num" id="LN1128">1128</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1129"><td class="num" id="LN1129">1129</td><td class="line"><span class='directive'>#endif</span></td></tr>
+<tr class="codeline" data-linenumber="1130"><td class="num" id="LN1130">1130</td><td class="line"> <span class='keyword'>default</span>:</td></tr>
+<tr class="codeline" data-linenumber="1131"><td class="num" id="LN1131">1131</td><td class="line"> g_value_copy (value, prop_value);</td></tr>
+<tr class="codeline" data-linenumber="1132"><td class="num" id="LN1132">1132</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1133"><td class="num" id="LN1133">1133</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1134"><td class="num" id="LN1134">1134</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1135"><td class="num" id="LN1135">1135</td><td class="line"> <span class='comment'>/* Postprocessing */</span></td></tr>
+<tr class="codeline" data-linenumber="1136"><td class="num" id="LN1136">1136</td><td class="line"> <span class='keyword'>switch</span> (prop_id)</td></tr>
+<tr class="codeline" data-linenumber="1137"><td class="num" id="LN1137">1137</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1138"><td class="num" id="LN1138">1138</td><td class="line"> <span class='keyword'>case</span> PROP_NAME:</td></tr>
+<tr class="codeline" data-linenumber="1139"><td class="num" id="LN1139">1139</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1140"><td class="num" id="LN1140">1140</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *name = g_value_get_string (value);</td></tr>
+<tr class="codeline" data-linenumber="1141"><td class="num" id="LN1141">1141</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1142"><td class="num" id="LN1142">1142</td><td class="line"> <span class='macro'>g_assert (name != NULL)<span class='macro_popup'>do { if (name != ((void*)0)) ; else g_assertion_message_expr (<br>((gchar*) 0), "terminal-profile.c", 1142, ((const char*) (__func__<br>)), "name != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1143"><td class="num" id="LN1143">1143</td><td class="line"> priv-&gt;profile_dir = <span class='macro'>g_strdup (name)<span class='macro_popup'>g_strdup_inline (name)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1144"><td class="num" id="LN1144">1144</td><td class="line"> <span class='keyword'>if</span> (priv-&gt;settings != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>) {</td></tr>
+<tr class="codeline" data-linenumber="1145"><td class="num" id="LN1145">1145</td><td class="line"> gchar *concat;</td></tr>
+<tr class="codeline" data-linenumber="1146"><td class="num" id="LN1146">1146</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (priv-&gt;settings,<span class='macro_popup'>g_signal_handlers_disconnect_matched ((priv-&gt;settings), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_profile_gsettings_notify_cb))), (<br>profile))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1147"><td class="num" id="LN1147">1147</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_profile_gsettings_notify_cb),<span class='macro_popup'>g_signal_handlers_disconnect_matched ((priv-&gt;settings), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_profile_gsettings_notify_cb))), (<br>profile))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1148"><td class="num" id="LN1148">1148</td><td class="line"> <span class='macro'>profile)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((priv-&gt;settings), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_profile_gsettings_notify_cb))), (<br>profile))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1149"><td class="num" id="LN1149">1149</td><td class="line"> g_object_unref (priv-&gt;settings);</td></tr>
+<tr class="codeline" data-linenumber="1150"><td class="num" id="LN1150">1150</td><td class="line"> concat= g_strconcat (<span class='macro'>CONF_PROFILE_PREFIX<span class='macro_popup'>"/org/mate/terminal/profiles/"</span></span>, priv-&gt;profile_dir, <span class='string_literal'>"/"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1151"><td class="num" id="LN1151">1151</td><td class="line"> priv-&gt;settings = g_settings_new_with_path (<span class='macro'>CONF_PROFILE_SCHEMA<span class='macro_popup'>"org.mate.terminal" ".profile"</span></span>, concat);</td></tr>
+<tr class="codeline" data-linenumber="1152"><td class="num" id="LN1152">1152</td><td class="line"> g_free (concat);</td></tr>
+<tr class="codeline" data-linenumber="1153"><td class="num" id="LN1153">1153</td><td class="line"> concat = g_strconcat(<span class='string_literal'>"changed::"</span>, priv-&gt;profile_dir, <span class='string_literal'>"/"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1154"><td class="num" id="LN1154">1154</td><td class="line"> <span class='macro'>g_signal_connect (priv-&gt;settings,<span class='macro_popup'>g_signal_connect_data ((priv-&gt;settings), (concat), (((GCallback<br>) (terminal_profile_gsettings_notify_cb))), (profile), ((void<br>*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1155"><td class="num" id="LN1155">1155</td><td class="line"> <span class='macro'>concat,<span class='macro_popup'>g_signal_connect_data ((priv-&gt;settings), (concat), (((GCallback<br>) (terminal_profile_gsettings_notify_cb))), (profile), ((void<br>*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1156"><td class="num" id="LN1156">1156</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_profile_gsettings_notify_cb),<span class='macro_popup'>g_signal_connect_data ((priv-&gt;settings), (concat), (((GCallback<br>) (terminal_profile_gsettings_notify_cb))), (profile), ((void<br>*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1157"><td class="num" id="LN1157">1157</td><td class="line"> <span class='macro'>profile)<span class='macro_popup'>g_signal_connect_data ((priv-&gt;settings), (concat), (((GCallback<br>) (terminal_profile_gsettings_notify_cb))), (profile), ((void<br>*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1158"><td class="num" id="LN1158">1158</td><td class="line"> g_free (concat);</td></tr>
+<tr class="codeline" data-linenumber="1159"><td class="num" id="LN1159">1159</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1160"><td class="num" id="LN1160">1160</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1161"><td class="num" id="LN1161">1161</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1162"><td class="num" id="LN1162">1162</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1163"><td class="num" id="LN1163">1163</td><td class="line"> <span class='keyword'>case</span> PROP_BACKGROUND_IMAGE_FILE:</td></tr>
+<tr class="codeline" data-linenumber="1164"><td class="num" id="LN1164">1164</td><td class="line"> <span class='comment'>/* Clear the cached image */</span></td></tr>
+<tr class="codeline" data-linenumber="1165"><td class="num" id="LN1165">1165</td><td class="line"> g_value_set_object (g_value_array_get_nth (priv-&gt;properties, PROP_BACKGROUND_IMAGE), <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1166"><td class="num" id="LN1166">1166</td><td class="line"> priv-&gt;background_load_failed = <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1167"><td class="num" id="LN1167">1167</td><td class="line"> g_object_notify (object, <span class='macro'>TERMINAL_PROFILE_BACKGROUND_IMAGE<span class='macro_popup'>"background-image"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1168"><td class="num" id="LN1168">1168</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1169"><td class="num" id="LN1169">1169</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1170"><td class="num" id="LN1170">1170</td><td class="line"> <span class='keyword'>default</span>:</td></tr>
+<tr class="codeline" data-linenumber="1171"><td class="num" id="LN1171">1171</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1172"><td class="num" id="LN1172">1172</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1173"><td class="num" id="LN1173">1173</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1174"><td class="num" id="LN1174">1174</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1175"><td class="num" id="LN1175">1175</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1176"><td class="num" id="LN1176">1176</td><td class="line">terminal_profile_notify (GObject *object,</td></tr>
+<tr class="codeline" data-linenumber="1177"><td class="num" id="LN1177">1177</td><td class="line"> GParamSpec *pspec)</td></tr>
+<tr class="codeline" data-linenumber="1178"><td class="num" id="LN1178">1178</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1179"><td class="num" id="LN1179">1179</td><td class="line"> TerminalProfilePrivate *priv = <span class='macro'>TERMINAL_PROFILE (object)<span class='macro_popup'>((((TerminalProfile*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((object)), ((terminal_profile_get_type ()))))))</span></span>-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1180"><td class="num" id="LN1180">1180</td><td class="line"> <span class='keyword'>void</span> (* notify) (GObject *, GParamSpec *) = <span class='macro'>G_OBJECT_CLASS (terminal_profile_parent_class)<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((terminal_profile_parent_class)), (((GType) ((20) &lt;&lt;<br> (2))))))))</span></span>-&gt;notify;</td></tr>
+<tr class="codeline" data-linenumber="1181"><td class="num" id="LN1181">1181</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1182"><td class="num" id="LN1182">1182</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_PROFILE,<span class='macro_popup'>do { if (0) g_printerr("Property notification for prop %s\n",<br> pspec-&gt;name); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1183"><td class="num" id="LN1183">1183</td><td class="line"> <span class='string_literal'><span class='macro'>"Property notification for prop %s\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("Property notification for prop %s\n",<br> pspec-&gt;name); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1184"><td class="num" id="LN1184">1184</td><td class="line"> <span class='macro'>pspec-&gt;name)<span class='macro_popup'>do { if (0) g_printerr("Property notification for prop %s\n",<br> pspec-&gt;name); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1185"><td class="num" id="LN1185">1185</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1186"><td class="num" id="LN1186">1186</td><td class="line"> <span class='keyword'>if</span> (notify)</td></tr>
+<tr class="codeline" data-linenumber="1187"><td class="num" id="LN1187">1187</td><td class="line"> notify (object, pspec);</td></tr>
+<tr class="codeline" data-linenumber="1188"><td class="num" id="LN1188">1188</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1189"><td class="num" id="LN1189">1189</td><td class="line"> <span class='keyword'>if</span> (pspec-&gt;owner_type == <span class='macro'>TERMINAL_TYPE_PROFILE<span class='macro_popup'>(terminal_profile_get_type ())</span></span> &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="1190"><td class="num" id="LN1190">1190</td><td class="line"> (pspec-&gt;flags &amp; G_PARAM_WRITABLE) &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="1191"><td class="num" id="LN1191">1191</td><td class="line"> g_param_spec_get_qdata (pspec, gsettings_key_quark) != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span> &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="1192"><td class="num" id="LN1192">1192</td><td class="line"> pspec != priv-&gt;gsettings_notification_pspec)</td></tr>
+<tr class="codeline" data-linenumber="1193"><td class="num" id="LN1193">1193</td><td class="line"> terminal_profile_schedule_save (<span class='macro'>TERMINAL_PROFILE (object)<span class='macro_popup'>((((TerminalProfile*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((object)), ((terminal_profile_get_type ()))))))</span></span>, pspec);</td></tr>
+<tr class="codeline" data-linenumber="1194"><td class="num" id="LN1194">1194</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1195"><td class="num" id="LN1195">1195</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1196"><td class="num" id="LN1196">1196</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1197"><td class="num" id="LN1197">1197</td><td class="line">terminal_profile_class_init (TerminalProfileClass *klass)</td></tr>
+<tr class="codeline" data-linenumber="1198"><td class="num" id="LN1198">1198</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1199"><td class="num" id="LN1199">1199</td><td class="line"> GObjectClass *object_class = <span class='macro'>G_OBJECT_CLASS (klass)<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((klass)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1200"><td class="num" id="LN1200">1200</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1201"><td class="num" id="LN1201">1201</td><td class="line"> gsettings_key_quark = g_quark_from_static_string (<span class='string_literal'>"GT::GSettingsKey"</span>);</td></tr>
+<tr class="codeline" data-linenumber="1202"><td class="num" id="LN1202">1202</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1203"><td class="num" id="LN1203">1203</td><td class="line"> object_class-&gt;constructor = terminal_profile_constructor;</td></tr>
+<tr class="codeline" data-linenumber="1204"><td class="num" id="LN1204">1204</td><td class="line"> object_class-&gt;finalize = terminal_profile_finalize;</td></tr>
+<tr class="codeline" data-linenumber="1205"><td class="num" id="LN1205">1205</td><td class="line"> object_class-&gt;get_property = terminal_profile_get_property;</td></tr>
+<tr class="codeline" data-linenumber="1206"><td class="num" id="LN1206">1206</td><td class="line"> object_class-&gt;set_property = terminal_profile_set_property;</td></tr>
+<tr class="codeline" data-linenumber="1207"><td class="num" id="LN1207">1207</td><td class="line"> object_class-&gt;notify = terminal_profile_notify;</td></tr>
+<tr class="codeline" data-linenumber="1208"><td class="num" id="LN1208">1208</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1209"><td class="num" id="LN1209">1209</td><td class="line"> signals[FORGOTTEN] =</td></tr>
+<tr class="codeline" data-linenumber="1210"><td class="num" id="LN1210">1210</td><td class="line"> g_signal_new (<span class='string_literal'>"forgotten"</span>,</td></tr>
+<tr class="codeline" data-linenumber="1211"><td class="num" id="LN1211">1211</td><td class="line"> <span class='macro'>G_OBJECT_CLASS_TYPE (object_class)<span class='macro_popup'>((((GTypeClass*) (object_class))-&gt;g_type))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1212"><td class="num" id="LN1212">1212</td><td class="line"> G_SIGNAL_RUN_LAST,</td></tr>
+<tr class="codeline" data-linenumber="1213"><td class="num" id="LN1213">1213</td><td class="line"> <span class='macro'>G_STRUCT_OFFSET (TerminalProfileClass, forgotten)<span class='macro_popup'>((glong) __builtin_offsetof(TerminalProfileClass, forgotten))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1214"><td class="num" id="LN1214">1214</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1215"><td class="num" id="LN1215">1215</td><td class="line"> g_cclosure_marshal_VOID__VOID,</td></tr>
+<tr class="codeline" data-linenumber="1216"><td class="num" id="LN1216">1216</td><td class="line"> <span class='macro'>G_TYPE_NONE<span class='macro_popup'>((GType) ((1) &lt;&lt; (2)))</span></span>, 0);</td></tr>
+<tr class="codeline" data-linenumber="1217"><td class="num" id="LN1217">1217</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1218"><td class="num" id="LN1218">1218</td><td class="line"> <span class='comment'>/* gsettings_key -&gt; pspec hash */</span></td></tr>
+<tr class="codeline" data-linenumber="1219"><td class="num" id="LN1219">1219</td><td class="line"> klass-&gt;gsettings_keys = g_hash_table_new (g_str_hash, g_str_equal);</td></tr>
+<tr class="codeline" data-linenumber="1220"><td class="num" id="LN1220">1220</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1221"><td class="num" id="LN1221">1221</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PSPEC_STATIC<span class='macro_popup'>(G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)</span></span> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)</span></td></tr>
+<tr class="codeline" data-linenumber="1222"><td class="num" id="LN1222">1222</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1223"><td class="num" id="LN1223">1223</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY(propId, propSpec, propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = propSpec; g_object_class_install_property<br> (object_class, propId, pspec); g_param_spec_set_qdata (pspec<br>, gsettings_key_quark, (gpointer) propGSettings); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) propGSettings, pspec);<br>}</span></span> \</span></td></tr>
+<tr class="codeline" data-linenumber="1224"><td class="num" id="LN1224">1224</td><td class="line"><span class='directive'>{\</span></td></tr>
+<tr class="codeline" data-linenumber="1225"><td class="num" id="LN1225">1225</td><td class="line"> <span class='directive'>GParamSpec *pspec = propSpec;\</span></td></tr>
+<tr class="codeline" data-linenumber="1226"><td class="num" id="LN1226">1226</td><td class="line"> <span class='directive'>g_object_class_install_property (object_class, propId, pspec);\</span></td></tr>
+<tr class="codeline" data-linenumber="1227"><td class="num" id="LN1227">1227</td><td class="line"> <span class='directive'>g_param_spec_set_qdata (pspec, gsettings_key_quark, (gpointer) propGSettings);\</span></td></tr>
+<tr class="codeline" data-linenumber="1228"><td class="num" id="LN1228">1228</td><td class="line"> <span class='directive'>g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) propGSettings, pspec);\</span></td></tr>
+<tr class="codeline" data-linenumber="1229"><td class="num" id="LN1229">1229</td><td class="line"><span class='directive'>}</span></td></tr>
+<tr class="codeline" data-linenumber="1230"><td class="num" id="LN1230">1230</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1231"><td class="num" id="LN1231">1231</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY_OUTER(propId, propSpec)<span class='macro_popup'>{ GParamSpec *pspec = propSpec; g_object_class_install_property<br> (object_class, propId, pspec);}</span></span> \</span></td></tr>
+<tr class="codeline" data-linenumber="1232"><td class="num" id="LN1232">1232</td><td class="line"><span class='directive'>{\</span></td></tr>
+<tr class="codeline" data-linenumber="1233"><td class="num" id="LN1233">1233</td><td class="line"> <span class='directive'>GParamSpec *pspec = propSpec;\</span></td></tr>
+<tr class="codeline" data-linenumber="1234"><td class="num" id="LN1234">1234</td><td class="line"> <span class='directive'>g_object_class_install_property (object_class, propId, pspec);\</span></td></tr>
+<tr class="codeline" data-linenumber="1235"><td class="num" id="LN1235">1235</td><td class="line"><span class='directive'>}</span></td></tr>
+<tr class="codeline" data-linenumber="1236"><td class="num" id="LN1236">1236</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1237"><td class="num" id="LN1237">1237</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN(prop, propDefault, propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean (TERMINAL_PROFILE_prop<br>, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_prop, pspec); g_param_spec_set_qdata (pspec<br>, gsettings_key_quark, (gpointer) propGSettings); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) propGSettings, pspec);<br>}</span></span> \</span></td></tr>
+<tr class="codeline" data-linenumber="1238"><td class="num" id="LN1238">1238</td><td class="line"> <span class='directive'><span class='macro'>TERMINAL_PROFILE_PROPERTY (PROP_##prop,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1239"><td class="num" id="LN1239">1239</td><td class="line"> <span class='directive'><span class='macro'>g_param_spec_boolean (TERMINAL_PROFILE_##prop, NULL, NULL,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1240"><td class="num" id="LN1240">1240</td><td class="line"> <span class='directive'><span class='macro'>propDefault,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1241"><td class="num" id="LN1241">1241</td><td class="line"> <span class='directive'><span class='macro'>G_PARAM_READWRITE | TERMINAL_PROFILE_PSPEC_STATIC),\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1242"><td class="num" id="LN1242">1242</td><td class="line"> <span class='directive'><span class='macro'>propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1243"><td class="num" id="LN1243">1243</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1244"><td class="num" id="LN1244">1244</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOXED(prop, propType, propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boxed (TERMINAL_PROFILE_prop<br>, ((void*)0), ((void*)0), propType, G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_prop, pspec); g_param_spec_set_qdata (pspec<br>, gsettings_key_quark, (gpointer) propGSettings); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) propGSettings, pspec);<br>}</span></span>\</span></td></tr>
+<tr class="codeline" data-linenumber="1245"><td class="num" id="LN1245">1245</td><td class="line"> <span class='directive'><span class='macro'>TERMINAL_PROFILE_PROPERTY (PROP_##prop,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boxed (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propType, G_PARAM_READWRITE | (<br>G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1246"><td class="num" id="LN1246">1246</td><td class="line"> <span class='directive'><span class='macro'>g_param_spec_boxed (TERMINAL_PROFILE_##prop, NULL, NULL,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boxed (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propType, G_PARAM_READWRITE | (<br>G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1247"><td class="num" id="LN1247">1247</td><td class="line"> <span class='directive'><span class='macro'>propType,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boxed (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propType, G_PARAM_READWRITE | (<br>G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1248"><td class="num" id="LN1248">1248</td><td class="line"> <span class='directive'><span class='macro'>G_PARAM_READWRITE | TERMINAL_PROFILE_PSPEC_STATIC),\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boxed (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propType, G_PARAM_READWRITE | (<br>G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1249"><td class="num" id="LN1249">1249</td><td class="line"> <span class='directive'><span class='macro'>propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boxed (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propType, G_PARAM_READWRITE | (<br>G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1250"><td class="num" id="LN1250">1250</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1251"><td class="num" id="LN1251">1251</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY_DOUBLE(prop, propMin, propMax, propDefault, propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_double (TERMINAL_PROFILE_prop<br>, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_prop,<br> pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark, (<br>gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span>\</span></td></tr>
+<tr class="codeline" data-linenumber="1252"><td class="num" id="LN1252">1252</td><td class="line"> <span class='directive'><span class='macro'>TERMINAL_PROFILE_PROPERTY (PROP_##prop,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_double (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1253"><td class="num" id="LN1253">1253</td><td class="line"> <span class='directive'><span class='macro'>g_param_spec_double (TERMINAL_PROFILE_##prop, NULL, NULL,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_double (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1254"><td class="num" id="LN1254">1254</td><td class="line"> <span class='directive'><span class='macro'>propMin, propMax, propDefault,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_double (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1255"><td class="num" id="LN1255">1255</td><td class="line"> <span class='directive'><span class='macro'>G_PARAM_READWRITE | TERMINAL_PROFILE_PSPEC_STATIC),\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_double (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1256"><td class="num" id="LN1256">1256</td><td class="line"> <span class='directive'><span class='macro'>propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_double (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1257"><td class="num" id="LN1257">1257</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1258"><td class="num" id="LN1258">1258</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY_ENUM(prop, propType, propDefault, propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum (TERMINAL_PROFILE_prop<br>, ((void*)0), ((void*)0), propType, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_prop,<br> pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark, (<br>gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span>\</span></td></tr>
+<tr class="codeline" data-linenumber="1259"><td class="num" id="LN1259">1259</td><td class="line"> <span class='directive'><span class='macro'>TERMINAL_PROFILE_PROPERTY (PROP_##prop,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum (TERMINAL_PROFILE_##prop<br>, ((void*)0), ((void*)0), propType, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1260"><td class="num" id="LN1260">1260</td><td class="line"> <span class='directive'><span class='macro'>g_param_spec_enum (TERMINAL_PROFILE_##prop, NULL, NULL,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum (TERMINAL_PROFILE_##prop<br>, ((void*)0), ((void*)0), propType, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1261"><td class="num" id="LN1261">1261</td><td class="line"> <span class='directive'><span class='macro'>propType, propDefault,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum (TERMINAL_PROFILE_##prop<br>, ((void*)0), ((void*)0), propType, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1262"><td class="num" id="LN1262">1262</td><td class="line"> <span class='directive'><span class='macro'>G_PARAM_READWRITE | TERMINAL_PROFILE_PSPEC_STATIC),\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum (TERMINAL_PROFILE_##prop<br>, ((void*)0), ((void*)0), propType, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1263"><td class="num" id="LN1263">1263</td><td class="line"> <span class='directive'><span class='macro'>propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum (TERMINAL_PROFILE_##prop<br>, ((void*)0), ((void*)0), propType, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1264"><td class="num" id="LN1264">1264</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1265"><td class="num" id="LN1265">1265</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY_INT(prop, propMin, propMax, propDefault, propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_int (TERMINAL_PROFILE_prop<br>, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_prop,<br> pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark, (<br>gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span>\</span></td></tr>
+<tr class="codeline" data-linenumber="1266"><td class="num" id="LN1266">1266</td><td class="line"> <span class='directive'><span class='macro'>TERMINAL_PROFILE_PROPERTY (PROP_##prop,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_int (TERMINAL_PROFILE_##prop<br>, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1267"><td class="num" id="LN1267">1267</td><td class="line"> <span class='directive'><span class='macro'>g_param_spec_int (TERMINAL_PROFILE_##prop, NULL, NULL,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_int (TERMINAL_PROFILE_##prop<br>, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1268"><td class="num" id="LN1268">1268</td><td class="line"> <span class='directive'><span class='macro'>propMin, propMax, propDefault,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_int (TERMINAL_PROFILE_##prop<br>, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1269"><td class="num" id="LN1269">1269</td><td class="line"> <span class='directive'><span class='macro'>G_PARAM_READWRITE | TERMINAL_PROFILE_PSPEC_STATIC),\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_int (TERMINAL_PROFILE_##prop<br>, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1270"><td class="num" id="LN1270">1270</td><td class="line"> <span class='directive'><span class='macro'>propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_int (TERMINAL_PROFILE_##prop<br>, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1271"><td class="num" id="LN1271">1271</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1272"><td class="num" id="LN1272">1272</td><td class="line"> <span class='comment'>/* these are all read-only */</span></td></tr>
+<tr class="codeline" data-linenumber="1273"><td class="num" id="LN1273">1273</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY_OBJECT(prop, propType)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_object (TERMINAL_PROFILE_prop<br>, ((void*)0), ((void*)0), propType, G_PARAM_READABLE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_prop, pspec);}</span></span>\</span></td></tr>
+<tr class="codeline" data-linenumber="1274"><td class="num" id="LN1274">1274</td><td class="line"> <span class='directive'><span class='macro'>TERMINAL_PROFILE_PROPERTY_OUTER (PROP_##prop,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_object (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propType, G_PARAM_READABLE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_##prop, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1275"><td class="num" id="LN1275">1275</td><td class="line"> <span class='directive'><span class='macro'>g_param_spec_object (TERMINAL_PROFILE_##prop, NULL, NULL,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_object (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propType, G_PARAM_READABLE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_##prop, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1276"><td class="num" id="LN1276">1276</td><td class="line"> <span class='directive'><span class='macro'>propType,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_object (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propType, G_PARAM_READABLE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_##prop, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1277"><td class="num" id="LN1277">1277</td><td class="line"> <span class='directive'><span class='macro'>G_PARAM_READABLE | TERMINAL_PROFILE_PSPEC_STATIC))<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_object (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propType, G_PARAM_READABLE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_##prop, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1278"><td class="num" id="LN1278">1278</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1279"><td class="num" id="LN1279">1279</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY_STRING(prop, propDefault, propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_prop<br>, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_prop, pspec); g_param_spec_set_qdata (pspec<br>, gsettings_key_quark, (gpointer) propGSettings); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) propGSettings, pspec);<br>}</span></span>\</span></td></tr>
+<tr class="codeline" data-linenumber="1280"><td class="num" id="LN1280">1280</td><td class="line"> <span class='directive'><span class='macro'>TERMINAL_PROFILE_PROPERTY (PROP_##prop,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1281"><td class="num" id="LN1281">1281</td><td class="line"> <span class='directive'><span class='macro'>g_param_spec_string (TERMINAL_PROFILE_##prop, NULL, NULL,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1282"><td class="num" id="LN1282">1282</td><td class="line"> <span class='directive'><span class='macro'>propDefault,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1283"><td class="num" id="LN1283">1283</td><td class="line"> <span class='directive'><span class='macro'>G_PARAM_READWRITE | TERMINAL_PROFILE_PSPEC_STATIC),\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1284"><td class="num" id="LN1284">1284</td><td class="line"> <span class='directive'><span class='macro'>propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1285"><td class="num" id="LN1285">1285</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1286"><td class="num" id="LN1286">1286</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY_STRING_CO(prop, propDefault)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_prop<br>, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_prop,<br> pspec);}</span></span>\</span></td></tr>
+<tr class="codeline" data-linenumber="1287"><td class="num" id="LN1287">1287</td><td class="line"> <span class='directive'><span class='macro'>TERMINAL_PROFILE_PROPERTY_OUTER (PROP_##prop,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE |<br> G_PARAM_CONSTRUCT_ONLY | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1288"><td class="num" id="LN1288">1288</td><td class="line"> <span class='directive'><span class='macro'>g_param_spec_string (TERMINAL_PROFILE_##prop, NULL, NULL,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE |<br> G_PARAM_CONSTRUCT_ONLY | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1289"><td class="num" id="LN1289">1289</td><td class="line"> <span class='directive'><span class='macro'>propDefault,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE |<br> G_PARAM_CONSTRUCT_ONLY | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1290"><td class="num" id="LN1290">1290</td><td class="line"> <span class='directive'><span class='macro'>G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | TERMINAL_PROFILE_PSPEC_STATIC))<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE |<br> G_PARAM_CONSTRUCT_ONLY | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1291"><td class="num" id="LN1291">1291</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1292"><td class="num" id="LN1292">1292</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY_VALUE_ARRAY_BOXED(prop, propElementName, propElementType, propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_value_array (TERMINAL_PROFILE_prop<br>, ((void*)0), ((void*)0), g_param_spec_boxed (propElementName<br>, ((void*)0), ((void*)0), propElementType, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_prop, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span>\</span></td></tr>
+<tr class="codeline" data-linenumber="1293"><td class="num" id="LN1293">1293</td><td class="line"> <span class='directive'><span class='macro'>TERMINAL_PROFILE_PROPERTY (PROP_##prop,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_value_array (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), g_param_spec_boxed (propElementName<br>, ((void*)0), ((void*)0), propElementType, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1294"><td class="num" id="LN1294">1294</td><td class="line"> <span class='directive'><span class='macro'>g_param_spec_value_array (TERMINAL_PROFILE_##prop, NULL, NULL,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_value_array (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), g_param_spec_boxed (propElementName<br>, ((void*)0), ((void*)0), propElementType, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1295"><td class="num" id="LN1295">1295</td><td class="line"> <span class='directive'><span class='macro'>g_param_spec_boxed (propElementName, NULL, NULL,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_value_array (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), g_param_spec_boxed (propElementName<br>, ((void*)0), ((void*)0), propElementType, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1296"><td class="num" id="LN1296">1296</td><td class="line"> <span class='directive'><span class='macro'>propElementType, \<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_value_array (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), g_param_spec_boxed (propElementName<br>, ((void*)0), ((void*)0), propElementType, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1297"><td class="num" id="LN1297">1297</td><td class="line"> <span class='directive'><span class='macro'>G_PARAM_READWRITE | TERMINAL_PROFILE_PSPEC_STATIC),\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_value_array (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), g_param_spec_boxed (propElementName<br>, ((void*)0), ((void*)0), propElementType, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1298"><td class="num" id="LN1298">1298</td><td class="line"> <span class='directive'><span class='macro'>G_PARAM_READWRITE | TERMINAL_PROFILE_PSPEC_STATIC),\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_value_array (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), g_param_spec_boxed (propElementName<br>, ((void*)0), ((void*)0), propElementType, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1299"><td class="num" id="LN1299">1299</td><td class="line"> <span class='directive'><span class='macro'>propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_value_array (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), g_param_spec_boxed (propElementName<br>, ((void*)0), ((void*)0), propElementType, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1300"><td class="num" id="LN1300">1300</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1301"><td class="num" id="LN1301">1301</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (ALLOW_BOLD, DEFAULT_ALLOW_BOLD, KEY_ALLOW_BOLD)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("allow-bold", ((void<br>*)0), ((void*)0), ((!(0))), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_ALLOW_BOLD, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "allow-bold"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "allow-bold", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1302"><td class="num" id="LN1302">1302</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (BOLD_COLOR_SAME_AS_FG, DEFAULT_BOLD_COLOR_SAME_AS_FG, KEY_BOLD_COLOR_SAME_AS_FG)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("bold-color-same-as-fg"<br>, ((void*)0), ((void*)0), ((!(0))), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_BOLD_COLOR_SAME_AS_FG, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "bold-color-same-as-fg"<br>); g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "bold-color-same-as-fg"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1303"><td class="num" id="LN1303">1303</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (DEFAULT_SHOW_MENUBAR, DEFAULT_DEFAULT_SHOW_MENUBAR, KEY_DEFAULT_SHOW_MENUBAR)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("default-show-menubar"<br>, ((void*)0), ((void*)0), ((!(0))), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_DEFAULT_SHOW_MENUBAR, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "default-show-menubar"<br>); g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "default-show-menubar"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1304"><td class="num" id="LN1304">1304</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (LOGIN_SHELL, DEFAULT_LOGIN_SHELL, KEY_LOGIN_SHELL)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("login-shell", ((<br>void*)0), ((void*)0), ((0)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_LOGIN_SHELL, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "login-shell"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "login-shell", pspec);<br>}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1305"><td class="num" id="LN1305">1305</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (SCROLL_BACKGROUND, DEFAULT_SCROLL_BACKGROUND, KEY_SCROLL_BACKGROUND)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("scroll-background"<br>, ((void*)0), ((void*)0), ((!(0))), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_SCROLL_BACKGROUND, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "scroll-background")<br>; g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "scroll-background"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1306"><td class="num" id="LN1306">1306</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (SCROLLBACK_UNLIMITED, DEFAULT_SCROLLBACK_UNLIMITED, KEY_SCROLLBACK_UNLIMITED)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("scrollback-unlimited"<br>, ((void*)0), ((void*)0), ((0)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_SCROLLBACK_UNLIMITED, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "scrollback-unlimited"<br>); g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "scrollback-unlimited"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1307"><td class="num" id="LN1307">1307</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (SCROLL_ON_KEYSTROKE, DEFAULT_SCROLL_ON_KEYSTROKE, KEY_SCROLL_ON_KEYSTROKE)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("scroll-on-keystroke"<br>, ((void*)0), ((void*)0), ((!(0))), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_SCROLL_ON_KEYSTROKE, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "scroll-on-keystroke"<br>); g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "scroll-on-keystroke"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1308"><td class="num" id="LN1308">1308</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (SCROLL_ON_OUTPUT, DEFAULT_SCROLL_ON_OUTPUT, KEY_SCROLL_ON_OUTPUT)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("scroll-on-output"<br>, ((void*)0), ((void*)0), ((0)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_SCROLL_ON_OUTPUT, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "scroll-on-output");<br> g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "scroll-on-output"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1309"><td class="num" id="LN1309">1309</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (SILENT_BELL, DEFAULT_SILENT_BELL, KEY_SILENT_BELL)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("silent-bell", ((<br>void*)0), ((void*)0), ((0)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_SILENT_BELL, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "silent-bell"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "silent-bell", pspec);<br>}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1310"><td class="num" id="LN1310">1310</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (COPY_SELECTION, DEFAULT_COPY_SELECTION, KEY_COPY_SELECTION)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("copy-selection",<br> ((void*)0), ((void*)0), ((0)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_COPY_SELECTION, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "copy-selection"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "copy-selection", pspec<br>);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1311"><td class="num" id="LN1311">1311</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (USE_CUSTOM_COMMAND, DEFAULT_USE_CUSTOM_COMMAND, KEY_USE_CUSTOM_COMMAND)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("use-custom-command"<br>, ((void*)0), ((void*)0), ((0)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_USE_CUSTOM_COMMAND, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "use-custom-command"<br>); g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "use-custom-command"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1312"><td class="num" id="LN1312">1312</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (USE_CUSTOM_DEFAULT_SIZE, DEFAULT_USE_CUSTOM_DEFAULT_SIZE, KEY_USE_CUSTOM_DEFAULT_SIZE)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("use-custom-default-size"<br>, ((void*)0), ((void*)0), ((0)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_USE_CUSTOM_DEFAULT_SIZE, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "use-custom-default-size"<br>); g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "use-custom-default-size"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1313"><td class="num" id="LN1313">1313</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (USE_SKEY, DEFAULT_USE_SKEY, KEY_USE_SKEY)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("use-skey", ((void<br>*)0), ((void*)0), ((!(0))), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_USE_SKEY, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "use-skey"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "use-skey", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1314"><td class="num" id="LN1314">1314</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (USE_URLS, DEFAULT_USE_URLS, KEY_USE_URLS)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("use-urls", ((void<br>*)0), ((void*)0), ((!(0))), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_USE_URLS, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "use-urls"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "use-urls", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1315"><td class="num" id="LN1315">1315</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (USE_SYSTEM_FONT, DEFAULT_USE_SYSTEM_FONT, KEY_USE_SYSTEM_FONT)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("use-system-font"<br>, ((void*)0), ((void*)0), ((!(0))), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_USE_SYSTEM_FONT, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "use-system-font"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "use-system-font", pspec<br>);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1316"><td class="num" id="LN1316">1316</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (USE_THEME_COLORS, DEFAULT_USE_THEME_COLORS, KEY_USE_THEME_COLORS)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("use-theme-colors"<br>, ((void*)0), ((void*)0), ((!(0))), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_USE_THEME_COLORS, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "use-theme-colors");<br> g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "use-theme-colors"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1317"><td class="num" id="LN1317">1317</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1318"><td class="num" id="LN1318">1318</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOXED (BACKGROUND_COLOR, GDK_TYPE_RGBA, KEY_BACKGROUND_COLOR)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boxed ("background-color",<br> ((void*)0), ((void*)0), (gdk_rgba_get_type ()), G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_BACKGROUND_COLOR<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) "background-color"); g_hash_table_insert (klass-&gt;<br>gsettings_keys, (gpointer) "background-color", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1319"><td class="num" id="LN1319">1319</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOXED (BOLD_COLOR, GDK_TYPE_RGBA, KEY_BOLD_COLOR)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boxed ("bold-color", ((void<br>*)0), ((void*)0), (gdk_rgba_get_type ()), G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_BOLD_COLOR<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) "bold-color"); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) "bold-color", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1320"><td class="num" id="LN1320">1320</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOXED (FONT, PANGO_TYPE_FONT_DESCRIPTION, KEY_FONT)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boxed ("font", ((void*)0),<br> ((void*)0), (pango_font_description_get_type ()), G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_FONT,<br> pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark, (<br>gpointer) "font"); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) "font", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1321"><td class="num" id="LN1321">1321</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOXED (FOREGROUND_COLOR, GDK_TYPE_RGBA, KEY_FOREGROUND_COLOR)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boxed ("foreground-color",<br> ((void*)0), ((void*)0), (gdk_rgba_get_type ()), G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_FOREGROUND_COLOR<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) "foreground-color"); g_hash_table_insert (klass-&gt;<br>gsettings_keys, (gpointer) "foreground-color", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1322"><td class="num" id="LN1322">1322</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1323"><td class="num" id="LN1323">1323</td><td class="line"> <span class='comment'>/* 0.0 = normal bg, 1.0 = all black bg, 0.5 = half darkened */</span></td></tr>
+<tr class="codeline" data-linenumber="1324"><td class="num" id="LN1324">1324</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_DOUBLE (BACKGROUND_DARKNESS, 0.0, 1.0, DEFAULT_BACKGROUND_DARKNESS, KEY_BACKGROUND_DARKNESS)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_double ("background-darkness"<br>, ((void*)0), ((void*)0), 0.0, 1.0, (0.5), G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_BACKGROUND_DARKNESS<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) "background-darkness"); g_hash_table_insert (klass<br>-&gt;gsettings_keys, (gpointer) "background-darkness", pspec)<br>;}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1325"><td class="num" id="LN1325">1325</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1326"><td class="num" id="LN1326">1326</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_ENUM (BACKGROUND_TYPE, TERMINAL_TYPE_BACKGROUND_TYPE, DEFAULT_BACKGROUND_TYPE, KEY_BACKGROUND_TYPE)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum ("background-type", (<br>(void*)0), ((void*)0), (terminal_background_type_get_type ())<br>, (TERMINAL_BACKGROUND_SOLID), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_BACKGROUND_TYPE, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "background-type"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "background-type", pspec<br>);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1327"><td class="num" id="LN1327">1327</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_ENUM (BACKSPACE_BINDING, VTE_TYPE_ERASE_BINDING, DEFAULT_BACKSPACE_BINDING, KEY_BACKSPACE_BINDING)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum ("backspace-binding",<br> ((void*)0), ((void*)0), (vte_erase_binding_get_type ()), (VTE_ERASE_ASCII_DELETE<br>), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_BACKSPACE_BINDING, pspec); g_param_spec_set_qdata (pspec<br>, gsettings_key_quark, (gpointer) "backspace-binding"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "backspace-binding", pspec<br>);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1328"><td class="num" id="LN1328">1328</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_ENUM (CURSOR_BLINK_MODE, VTE_TYPE_CURSOR_BLINK_MODE, DEFAULT_CURSOR_BLINK_MODE, KEY_CURSOR_BLINK_MODE)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum ("cursor-blink-mode",<br> ((void*)0), ((void*)0), (vte_cursor_blink_mode_get_type ()),<br> (VTE_CURSOR_BLINK_SYSTEM), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_CURSOR_BLINK_MODE, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "cursor-blink-mode")<br>; g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "cursor-blink-mode"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1329"><td class="num" id="LN1329">1329</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_ENUM (CURSOR_SHAPE, VTE_TYPE_CURSOR_SHAPE, DEFAULT_CURSOR_SHAPE, KEY_CURSOR_SHAPE)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum ("cursor-shape", ((void<br>*)0), ((void*)0), (vte_cursor_shape_get_type ()), (VTE_CURSOR_SHAPE_BLOCK<br>), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_CURSOR_SHAPE, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) "cursor-shape"); g_hash_table_insert (klass-&gt;<br>gsettings_keys, (gpointer) "cursor-shape", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1330"><td class="num" id="LN1330">1330</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_ENUM (DELETE_BINDING, VTE_TYPE_ERASE_BINDING, DEFAULT_DELETE_BINDING, KEY_DELETE_BINDING)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum ("delete-binding", ((<br>void*)0), ((void*)0), (vte_erase_binding_get_type ()), (VTE_ERASE_DELETE_SEQUENCE<br>), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_DELETE_BINDING, pspec); g_param_spec_set_qdata (pspec,<br> gsettings_key_quark, (gpointer) "delete-binding"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "delete-binding", pspec<br>);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1331"><td class="num" id="LN1331">1331</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_ENUM (EXIT_ACTION, TERMINAL_TYPE_EXIT_ACTION, DEFAULT_EXIT_ACTION, KEY_EXIT_ACTION)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum ("exit-action", ((void<br>*)0), ((void*)0), (terminal_exit_action_get_type ()), (TERMINAL_EXIT_CLOSE<br>), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_EXIT_ACTION, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) "exit-action"); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) "exit-action", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1332"><td class="num" id="LN1332">1332</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_ENUM (SCROLLBAR_POSITION, TERMINAL_TYPE_SCROLLBAR_POSITION, DEFAULT_SCROLLBAR_POSITION, KEY_SCROLLBAR_POSITION)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum ("scrollbar-position"<br>, ((void*)0), ((void*)0), (terminal_scrollbar_position_get_type<br> ()), (TERMINAL_SCROLLBAR_RIGHT), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_SCROLLBAR_POSITION, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "scrollbar-position"<br>); g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "scrollbar-position"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1333"><td class="num" id="LN1333">1333</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_ENUM (TITLE_MODE, TERMINAL_TYPE_TITLE_MODE, DEFAULT_TITLE_MODE, KEY_TITLE_MODE)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum ("title-mode", ((void<br>*)0), ((void*)0), (terminal_title_mode_get_type ()), (TERMINAL_TITLE_REPLACE<br>), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_TITLE_MODE, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) "title-mode"); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) "title-mode", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1334"><td class="num" id="LN1334">1334</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1335"><td class="num" id="LN1335">1335</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_INT (DEFAULT_SIZE_COLUMNS, 1, 1024, DEFAULT_DEFAULT_SIZE_COLUMNS, KEY_DEFAULT_SIZE_COLUMNS)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_int ("default-size-columns"<br>, ((void*)0), ((void*)0), 1, 1024, (80), G_PARAM_READWRITE | (<br>G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_DEFAULT_SIZE_COLUMNS<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) "default-size-columns"); g_hash_table_insert (klass<br>-&gt;gsettings_keys, (gpointer) "default-size-columns", pspec<br>);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1336"><td class="num" id="LN1336">1336</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_INT (DEFAULT_SIZE_ROWS, 1, 1024, DEFAULT_DEFAULT_SIZE_ROWS, KEY_DEFAULT_SIZE_ROWS)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_int ("default-size-rows", (<br>(void*)0), ((void*)0), 1, 1024, (24), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_DEFAULT_SIZE_ROWS, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "default-size-rows")<br>; g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "default-size-rows"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1337"><td class="num" id="LN1337">1337</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_INT (SCROLLBACK_LINES, 1, G_MAXINT, DEFAULT_SCROLLBACK_LINES, KEY_SCROLLBACK_LINES)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_int ("scrollback-lines", (<br>(void*)0), ((void*)0), 1, 2147483647, (512), G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_SCROLLBACK_LINES<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) "scrollback-lines"); g_hash_table_insert (klass-&gt;<br>gsettings_keys, (gpointer) "scrollback-lines", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1338"><td class="num" id="LN1338">1338</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1339"><td class="num" id="LN1339">1339</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_OBJECT (BACKGROUND_IMAGE, GDK_TYPE_PIXBUF)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_object ("background-image"<br>, ((void*)0), ((void*)0), (gdk_pixbuf_get_type ()), G_PARAM_READABLE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_BACKGROUND_IMAGE<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1340"><td class="num" id="LN1340">1340</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1341"><td class="num" id="LN1341">1341</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_STRING_CO (NAME, DEFAULT_NAME)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string ("name", ((void*)0)<br>, ((void*)0), (((void*)0)), G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_NAME,<br> pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1342"><td class="num" id="LN1342">1342</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1343"><td class="num" id="LN1343">1343</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_STRING (BACKGROUND_IMAGE_FILE, DEFAULT_BACKGROUND_IMAGE_FILE, KEY_BACKGROUND_IMAGE_FILE)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string ("background-image-file"<br>, ((void*)0), ((void*)0), (""), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_BACKGROUND_IMAGE_FILE, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "background-image");<br> g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "background-image"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1344"><td class="num" id="LN1344">1344</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_STRING (CUSTOM_COMMAND, DEFAULT_CUSTOM_COMMAND, KEY_CUSTOM_COMMAND)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string ("custom-command", (<br>(void*)0), ((void*)0), (""), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_CUSTOM_COMMAND, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "custom-command"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "custom-command", pspec<br>);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1345"><td class="num" id="LN1345">1345</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_STRING (TITLE, _(DEFAULT_TITLE), KEY_TITLE)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string ("title", ((void*)0<br>), ((void*)0), gettext ((("Terminal"))), G_PARAM_READWRITE | (<br>G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_TITLE<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) "title"); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) "title", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1346"><td class="num" id="LN1346">1346</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_STRING (VISIBLE_NAME, _(DEFAULT_VISIBLE_NAME), KEY_VISIBLE_NAME)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string ("visible-name", ((<br>void*)0), ((void*)0), gettext ((("Unnamed"))), G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_VISIBLE_NAME<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) "visible-name"); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) "visible-name", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1347"><td class="num" id="LN1347">1347</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_STRING (WORD_CHARS, DEFAULT_WORD_CHARS, KEY_WORD_CHARS)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string ("word-chars", ((void<br>*)0), ((void*)0), ("-A-Za-z0-9,./?%&amp;#:_=+@~"), G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_WORD_CHARS<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) "word-chars"); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) "word-chars", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1348"><td class="num" id="LN1348">1348</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1349"><td class="num" id="LN1349">1349</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_VALUE_ARRAY_BOXED (PALETTE, <span class='string_literal'>"palette-color"</span>, GDK_TYPE_RGBA, KEY_PALETTE)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_value_array ("palette", ((<br>void*)0), ((void*)0), g_param_spec_boxed ("palette-color", ((<br>void*)0), ((void*)0), (gdk_rgba_get_type ()), G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_PALETTE, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) "palette"); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) "palette", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1350"><td class="num" id="LN1350">1350</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1351"><td class="num" id="LN1351">1351</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1352"><td class="num" id="LN1352">1352</td><td class="line"><span class='comment'>/* Semi-Public API */</span></td></tr>
+<tr class="codeline" data-linenumber="1353"><td class="num" id="LN1353">1353</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1354"><td class="num" id="LN1354">1354</td><td class="line">TerminalProfile*</td></tr>
+<tr class="codeline" data-linenumber="1355"><td class="num" id="LN1355">1355</td><td class="line">_terminal_profile_new (<span class='keyword'>const</span> <span class='keyword'>char</span> *name)</td></tr>
+<tr class="codeline" data-linenumber="1356"><td class="num" id="LN1356">1356</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1357"><td class="num" id="LN1357">1357</td><td class="line"> <span class='keyword'>return</span> g_object_new (<span class='macro'>TERMINAL_TYPE_PROFILE<span class='macro_popup'>(terminal_profile_get_type ())</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1358"><td class="num" id="LN1358">1358</td><td class="line"> <span class='string_literal'>"name"</span>, name,</td></tr>
+<tr class="codeline" data-linenumber="1359"><td class="num" id="LN1359">1359</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1360"><td class="num" id="LN1360">1360</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1361"><td class="num" id="LN1361">1361</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1362"><td class="num" id="LN1362">1362</td><td class="line"><span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1363"><td class="num" id="LN1363">1363</td><td class="line">_terminal_profile_forget (TerminalProfile *profile)</td></tr>
+<tr class="codeline" data-linenumber="1364"><td class="num" id="LN1364">1364</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1365"><td class="num" id="LN1365">1365</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1366"><td class="num" id="LN1366">1366</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1367"><td class="num" id="LN1367">1367</td><td class="line"> <span class='keyword'>if</span> (!priv-&gt;forgotten)</td></tr>
+<tr class="codeline" data-linenumber="1368"><td class="num" id="LN1368">1368</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1369"><td class="num" id="LN1369">1369</td><td class="line"> priv-&gt;forgotten = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1370"><td class="num" id="LN1370">1370</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1371"><td class="num" id="LN1371">1371</td><td class="line"> g_signal_emit (<span class='macro'>G_OBJECT (profile)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((profile)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, signals[FORGOTTEN], 0);</td></tr>
+<tr class="codeline" data-linenumber="1372"><td class="num" id="LN1372">1372</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1373"><td class="num" id="LN1373">1373</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1374"><td class="num" id="LN1374">1374</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1375"><td class="num" id="LN1375">1375</td><td class="line">gboolean</td></tr>
+<tr class="codeline" data-linenumber="1376"><td class="num" id="LN1376">1376</td><td class="line">_terminal_profile_get_forgotten (TerminalProfile *profile)</td></tr>
+<tr class="codeline" data-linenumber="1377"><td class="num" id="LN1377">1377</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1378"><td class="num" id="LN1378">1378</td><td class="line"> <span class='keyword'>return</span> profile-&gt;priv-&gt;forgotten;</td></tr>
+<tr class="codeline" data-linenumber="1379"><td class="num" id="LN1379">1379</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1380"><td class="num" id="LN1380">1380</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1381"><td class="num" id="LN1381">1381</td><td class="line">TerminalProfile *</td></tr>
+<tr class="codeline" data-linenumber="1382"><td class="num" id="LN1382">1382</td><td class="line">_terminal_profile_clone (TerminalProfile *base_profile,</td></tr>
+<tr class="codeline" data-linenumber="1383"><td class="num" id="LN1383">1383</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *visible_name)</td></tr>
+<tr class="codeline" data-linenumber="1384"><td class="num" id="LN1384">1384</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1385"><td class="num" id="LN1385">1385</td><td class="line"> TerminalApp *app = terminal_app_get ();</td></tr>
+<tr class="codeline" data-linenumber="1386"><td class="num" id="LN1386">1386</td><td class="line"> GObject *base_object = <span class='macro'>G_OBJECT (base_profile)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((base_profile)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1387"><td class="num" id="LN1387">1387</td><td class="line"> TerminalProfilePrivate *new_priv;</td></tr>
+<tr class="codeline" data-linenumber="1388"><td class="num" id="LN1388">1388</td><td class="line"> <span class='keyword'>char</span> profile_name[32];</td></tr>
+<tr class="codeline" data-linenumber="1389"><td class="num" id="LN1389">1389</td><td class="line"> GParameter *params;</td></tr>
+<tr class="codeline" data-linenumber="1390"><td class="num" id="LN1390">1390</td><td class="line"> GParamSpec **pspecs;</td></tr>
+<tr class="codeline" data-linenumber="1391"><td class="num" id="LN1391">1391</td><td class="line"> guint n_pspecs, i, n_params, profile_num;</td></tr>
+<tr class="codeline" data-linenumber="1392"><td class="num" id="LN1392">1392</td><td class="line"> TerminalProfile *new_profile;</td></tr>
+<tr class="codeline" data-linenumber="1393"><td class="num" id="LN1393">1393</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1394"><td class="num" id="LN1394">1394</td><td class="line"> <span class='macro'>g_object_ref (base_profile)<span class='macro_popup'>((__typeof__ (base_profile)) (g_object_ref) (base_profile))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1395"><td class="num" id="LN1395">1395</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1396"><td class="num" id="LN1396">1396</td><td class="line"> profile_num = 0;</td></tr>
+<tr class="codeline" data-linenumber="1397"><td class="num" id="LN1397">1397</td><td class="line"> <span class='keyword'>do</span></td></tr>
+<tr class="codeline" data-linenumber="1398"><td class="num" id="LN1398">1398</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1399"><td class="num" id="LN1399">1399</td><td class="line"> g_snprintf (profile_name, <span class='keyword'>sizeof</span> (profile_name), <span class='string_literal'>"profile%u"</span>, profile_num++);</td></tr>
+<tr class="codeline" data-linenumber="1400"><td class="num" id="LN1400">1400</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1401"><td class="num" id="LN1401">1401</td><td class="line"> <span class='keyword'>while</span> (terminal_app_get_profile_by_name (app, profile_name) != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1402"><td class="num" id="LN1402">1402</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1403"><td class="num" id="LN1403">1403</td><td class="line"> <span class='comment'>/* Now we have an unused profile name */</span></td></tr>
+<tr class="codeline" data-linenumber="1404"><td class="num" id="LN1404">1404</td><td class="line"> pspecs = g_object_class_list_properties (<span class='macro'>G_OBJECT_CLASS (TERMINAL_PROFILE_GET_CLASS (base_profile))<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((((((TerminalProfileClass*) (((GTypeInstance*) ((base_profile<br>)))-&gt;g_class)))))), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, &amp;n_pspecs);</td></tr>
+<tr class="codeline" data-linenumber="1405"><td class="num" id="LN1405">1405</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1406"><td class="num" id="LN1406">1406</td><td class="line"> params = <span class='macro'>g_newa (GParameter, n_pspecs)<span class='macro_popup'>((GParameter*) __builtin_alloca (sizeof (GParameter) * (gsize<br>) (n_pspecs)))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1407"><td class="num" id="LN1407">1407</td><td class="line"> n_params = 0;</td></tr>
+<tr class="codeline" data-linenumber="1408"><td class="num" id="LN1408">1408</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1409"><td class="num" id="LN1409">1409</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; n_pspecs; ++i)</td></tr>
+<tr class="codeline" data-linenumber="1410"><td class="num" id="LN1410">1410</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1411"><td class="num" id="LN1411">1411</td><td class="line"> GParamSpec *pspec = pspecs[i];</td></tr>
+<tr class="codeline" data-linenumber="1412"><td class="num" id="LN1412">1412</td><td class="line"> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="1413"><td class="num" id="LN1413">1413</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1414"><td class="num" id="LN1414">1414</td><td class="line"> <span class='keyword'>if</span> (pspec-&gt;owner_type != <span class='macro'>TERMINAL_TYPE_PROFILE<span class='macro_popup'>(terminal_profile_get_type ())</span></span> ||</td></tr>
+<tr class="codeline" data-linenumber="1415"><td class="num" id="LN1415">1415</td><td class="line"> (pspec-&gt;flags &amp; G_PARAM_WRITABLE) == 0)</td></tr>
+<tr class="codeline" data-linenumber="1416"><td class="num" id="LN1416">1416</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="1417"><td class="num" id="LN1417">1417</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1418"><td class="num" id="LN1418">1418</td><td class="line"> params[n_params].name = pspec-&gt;name;</td></tr>
+<tr class="codeline" data-linenumber="1419"><td class="num" id="LN1419">1419</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1420"><td class="num" id="LN1420">1420</td><td class="line"> value = &amp;params[n_params].value;</td></tr>
+<tr class="codeline" data-linenumber="1421"><td class="num" id="LN1421">1421</td><td class="line"> <span class='macro'>G_VALUE_TYPE (value)<span class='macro_popup'>(((GValue*) (value))-&gt;g_type)</span></span> = 0;</td></tr>
+<tr class="codeline" data-linenumber="1422"><td class="num" id="LN1422">1422</td><td class="line"> g_value_init (value, <span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1423"><td class="num" id="LN1423">1423</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1424"><td class="num" id="LN1424">1424</td><td class="line"> <span class='keyword'>if</span> (pspec-&gt;name == <span class='macro'>I_(TERMINAL_PROFILE_NAME)<span class='macro_popup'>g_intern_static_string ("name")</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1425"><td class="num" id="LN1425">1425</td><td class="line"> g_value_set_static_string (value, profile_name);</td></tr>
+<tr class="codeline" data-linenumber="1426"><td class="num" id="LN1426">1426</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (pspec-&gt;name == <span class='macro'>I_(TERMINAL_PROFILE_VISIBLE_NAME)<span class='macro_popup'>g_intern_static_string ("visible-name")</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1427"><td class="num" id="LN1427">1427</td><td class="line"> g_value_set_static_string (value, visible_name);</td></tr>
+<tr class="codeline" data-linenumber="1428"><td class="num" id="LN1428">1428</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="1429"><td class="num" id="LN1429">1429</td><td class="line"> g_object_get_property (base_object, pspec-&gt;name, value);</td></tr>
+<tr class="codeline" data-linenumber="1430"><td class="num" id="LN1430">1430</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1431"><td class="num" id="LN1431">1431</td><td class="line"> ++n_params;</td></tr>
+<tr class="codeline" data-linenumber="1432"><td class="num" id="LN1432">1432</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1433"><td class="num" id="LN1433">1433</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1434"><td class="num" id="LN1434">1434</td><td class="line"> new_profile = g_object_newv (<span class='macro'>TERMINAL_TYPE_PROFILE<span class='macro_popup'>(terminal_profile_get_type ())</span></span>, n_params, params);</td></tr>
+<tr class="codeline" data-linenumber="1435"><td class="num" id="LN1435">1435</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1436"><td class="num" id="LN1436">1436</td><td class="line"> g_object_unref (base_profile);</td></tr>
+<tr class="codeline" data-linenumber="1437"><td class="num" id="LN1437">1437</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1438"><td class="num" id="LN1438">1438</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; n_params; ++i)</td></tr>
+<tr class="codeline" data-linenumber="1439"><td class="num" id="LN1439">1439</td><td class="line"> g_value_unset (&amp;params[i].value);</td></tr>
+<tr class="codeline" data-linenumber="1440"><td class="num" id="LN1440">1440</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1441"><td class="num" id="LN1441">1441</td><td class="line"> <span class='comment'>/* Flush the new profile to GSettings */</span></td></tr>
+<tr class="codeline" data-linenumber="1442"><td class="num" id="LN1442">1442</td><td class="line"> new_priv = new_profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1443"><td class="num" id="LN1443">1443</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1444"><td class="num" id="LN1444">1444</td><td class="line"> g_slist_free (new_priv-&gt;dirty_pspecs);</td></tr>
+<tr class="codeline" data-linenumber="1445"><td class="num" id="LN1445">1445</td><td class="line"> new_priv-&gt;dirty_pspecs = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1446"><td class="num" id="LN1446">1446</td><td class="line"> <span class='keyword'>if</span> (new_priv-&gt;save_idle_id != 0)</td></tr>
+<tr class="codeline" data-linenumber="1447"><td class="num" id="LN1447">1447</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1448"><td class="num" id="LN1448">1448</td><td class="line"> g_source_remove (new_priv-&gt;save_idle_id);</td></tr>
+<tr class="codeline" data-linenumber="1449"><td class="num" id="LN1449">1449</td><td class="line"> new_priv-&gt;save_idle_id = 0;</td></tr>
+<tr class="codeline" data-linenumber="1450"><td class="num" id="LN1450">1450</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1451"><td class="num" id="LN1451">1451</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1452"><td class="num" id="LN1452">1452</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; n_pspecs; ++i)</td></tr>
+<tr class="codeline" data-linenumber="1453"><td class="num" id="LN1453">1453</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1454"><td class="num" id="LN1454">1454</td><td class="line"> GParamSpec *pspec = pspecs[i];</td></tr>
+<tr class="codeline" data-linenumber="1455"><td class="num" id="LN1455">1455</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1456"><td class="num" id="LN1456">1456</td><td class="line"> <span class='keyword'>if</span> (pspec-&gt;owner_type != <span class='macro'>TERMINAL_TYPE_PROFILE<span class='macro_popup'>(terminal_profile_get_type ())</span></span> ||</td></tr>
+<tr class="codeline" data-linenumber="1457"><td class="num" id="LN1457">1457</td><td class="line"> (pspec-&gt;flags &amp; G_PARAM_WRITABLE) == 0)</td></tr>
+<tr class="codeline" data-linenumber="1458"><td class="num" id="LN1458">1458</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="1459"><td class="num" id="LN1459">1459</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1460"><td class="num" id="LN1460">1460</td><td class="line"> new_priv-&gt;dirty_pspecs = g_slist_prepend (new_priv-&gt;dirty_pspecs, pspec);</td></tr>
+<tr class="codeline" data-linenumber="1461"><td class="num" id="LN1461">1461</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1462"><td class="num" id="LN1462">1462</td><td class="line"> g_free (pspecs);</td></tr>
+<tr class="codeline" data-linenumber="1463"><td class="num" id="LN1463">1463</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1464"><td class="num" id="LN1464">1464</td><td class="line"> terminal_profile_save (new_profile);</td></tr>
+<tr class="codeline" data-linenumber="1465"><td class="num" id="LN1465">1465</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1466"><td class="num" id="LN1466">1466</td><td class="line"> <span class='keyword'>return</span> new_profile;</td></tr>
+<tr class="codeline" data-linenumber="1467"><td class="num" id="LN1467">1467</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1468"><td class="num" id="LN1468">1468</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1469"><td class="num" id="LN1469">1469</td><td class="line"><span class='comment'>/* Public API */</span></td></tr>
+<tr class="codeline" data-linenumber="1470"><td class="num" id="LN1470">1470</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1471"><td class="num" id="LN1471">1471</td><td class="line">gboolean</td></tr>
+<tr class="codeline" data-linenumber="1472"><td class="num" id="LN1472">1472</td><td class="line">terminal_profile_get_property_boolean (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1473"><td class="num" id="LN1473">1473</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="1474"><td class="num" id="LN1474">1474</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1475"><td class="num" id="LN1475">1475</td><td class="line"> <span class='keyword'>const</span> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="1476"><td class="num" id="LN1476">1476</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1477"><td class="num" id="LN1477">1477</td><td class="line"> value = get_prop_value_from_prop_name (profile, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="1478"><td class="num" id="LN1478">1478</td><td class="line"> <span class='macro'>g_return_val_if_fail (value != NULL &amp;&amp; G_VALUE_HOLDS_BOOLEAN (value), FALSE)<span class='macro_popup'>do { if ((value != ((void*)0) &amp;&amp; (((__extension__ ({ const<br> GValue *__val = (const GValue*) ((value)); GType __t = (((GType<br>) ((5) &lt;&lt; (2)))); gboolean __r; if (!__val) __r = (0); else<br> if (__val-&gt;g_type == __t) __r = (!(0)); else __r = g_type_check_value_holds<br> (__val, __t); __r; })))))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "value != NULL &amp;&amp; G_VALUE_HOLDS_BOOLEAN (value)"<br>); return ((0)); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1479"><td class="num" id="LN1479">1479</td><td class="line"> <span class='keyword'>if</span> (!value || !<span class='macro'>G_VALUE_HOLDS_BOOLEAN (value)<span class='macro_popup'>(((__extension__ ({ const GValue *__val = (const GValue*) ((value<br>)); GType __t = (((GType) ((5) &lt;&lt; (2)))); gboolean __r;<br> if (!__val) __r = (0); else if (__val-&gt;g_type == __t) __r<br> = (!(0)); else __r = g_type_check_value_holds (__val, __t); __r<br>; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1480"><td class="num" id="LN1480">1480</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1481"><td class="num" id="LN1481">1481</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1482"><td class="num" id="LN1482">1482</td><td class="line"> <span class='keyword'>return</span> g_value_get_boolean (value);</td></tr>
+<tr class="codeline" data-linenumber="1483"><td class="num" id="LN1483">1483</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1484"><td class="num" id="LN1484">1484</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1485"><td class="num" id="LN1485">1485</td><td class="line">gconstpointer</td></tr>
+<tr class="codeline" data-linenumber="1486"><td class="num" id="LN1486">1486</td><td class="line">terminal_profile_get_property_boxed (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1487"><td class="num" id="LN1487">1487</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="1488"><td class="num" id="LN1488">1488</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1489"><td class="num" id="LN1489">1489</td><td class="line"> <span class='keyword'>const</span> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="1490"><td class="num" id="LN1490">1490</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1491"><td class="num" id="LN1491">1491</td><td class="line"> value = get_prop_value_from_prop_name (profile, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="1492"><td class="num" id="LN1492">1492</td><td class="line"> <span class='macro'>g_return_val_if_fail (value != NULL &amp;&amp; G_VALUE_HOLDS_BOXED (value), NULL)<span class='macro_popup'>do { if ((value != ((void*)0) &amp;&amp; (((__extension__ ({ const<br> GValue *__val = (const GValue*) ((value)); GType __t = (((GType<br>) ((18) &lt;&lt; (2)))); gboolean __r; if (!__val) __r = (0);<br> else if (__val-&gt;g_type == __t) __r = (!(0)); else __r = g_type_check_value_holds<br> (__val, __t); __r; })))))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "value != NULL &amp;&amp; G_VALUE_HOLDS_BOXED (value)"<br>); return (((void*)0)); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1493"><td class="num" id="LN1493">1493</td><td class="line"> <span class='keyword'>if</span> (!value || !<span class='macro'>G_VALUE_HOLDS_BOXED (value)<span class='macro_popup'>(((__extension__ ({ const GValue *__val = (const GValue*) ((value<br>)); GType __t = (((GType) ((18) &lt;&lt; (2)))); gboolean __r<br>; if (!__val) __r = (0); else if (__val-&gt;g_type == __t) __r<br> = (!(0)); else __r = g_type_check_value_holds (__val, __t); __r<br>; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1494"><td class="num" id="LN1494">1494</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1495"><td class="num" id="LN1495">1495</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1496"><td class="num" id="LN1496">1496</td><td class="line"> <span class='keyword'>return</span> g_value_get_boxed (value);</td></tr>
+<tr class="codeline" data-linenumber="1497"><td class="num" id="LN1497">1497</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1498"><td class="num" id="LN1498">1498</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1499"><td class="num" id="LN1499">1499</td><td class="line"><span class='keyword'>double</span></td></tr>
+<tr class="codeline" data-linenumber="1500"><td class="num" id="LN1500">1500</td><td class="line">terminal_profile_get_property_double (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1501"><td class="num" id="LN1501">1501</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="1502"><td class="num" id="LN1502">1502</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1503"><td class="num" id="LN1503">1503</td><td class="line"> <span class='keyword'>const</span> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="1504"><td class="num" id="LN1504">1504</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1505"><td class="num" id="LN1505">1505</td><td class="line"> value = get_prop_value_from_prop_name (profile, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="1506"><td class="num" id="LN1506">1506</td><td class="line"> <span class='macro'>g_return_val_if_fail (value != NULL &amp;&amp; G_VALUE_HOLDS_DOUBLE (value), 0.0)<span class='macro_popup'>do { if ((value != ((void*)0) &amp;&amp; (((__extension__ ({ const<br> GValue *__val = (const GValue*) ((value)); GType __t = (((GType<br>) ((15) &lt;&lt; (2)))); gboolean __r; if (!__val) __r = (0);<br> else if (__val-&gt;g_type == __t) __r = (!(0)); else __r = g_type_check_value_holds<br> (__val, __t); __r; })))))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "value != NULL &amp;&amp; G_VALUE_HOLDS_DOUBLE (value)"<br>); return (0.0); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1507"><td class="num" id="LN1507">1507</td><td class="line"> <span class='keyword'>if</span> (!value || !<span class='macro'>G_VALUE_HOLDS_DOUBLE (value)<span class='macro_popup'>(((__extension__ ({ const GValue *__val = (const GValue*) ((value<br>)); GType __t = (((GType) ((15) &lt;&lt; (2)))); gboolean __r<br>; if (!__val) __r = (0); else if (__val-&gt;g_type == __t) __r<br> = (!(0)); else __r = g_type_check_value_holds (__val, __t); __r<br>; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1508"><td class="num" id="LN1508">1508</td><td class="line"> <span class='keyword'>return</span> 0.0;</td></tr>
+<tr class="codeline" data-linenumber="1509"><td class="num" id="LN1509">1509</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1510"><td class="num" id="LN1510">1510</td><td class="line"> <span class='keyword'>return</span> g_value_get_double (value);</td></tr>
+<tr class="codeline" data-linenumber="1511"><td class="num" id="LN1511">1511</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1512"><td class="num" id="LN1512">1512</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1513"><td class="num" id="LN1513">1513</td><td class="line"><span class='keyword'>int</span></td></tr>
+<tr class="codeline" data-linenumber="1514"><td class="num" id="LN1514">1514</td><td class="line">terminal_profile_get_property_enum (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1515"><td class="num" id="LN1515">1515</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="1516"><td class="num" id="LN1516">1516</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1517"><td class="num" id="LN1517">1517</td><td class="line"> <span class='keyword'>const</span> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="1518"><td class="num" id="LN1518">1518</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1519"><td class="num" id="LN1519">1519</td><td class="line"> value = get_prop_value_from_prop_name (profile, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="1520"><td class="num" id="LN1520">1520</td><td class="line"> <span class='macro'>g_return_val_if_fail (value != NULL &amp;&amp; G_VALUE_HOLDS_ENUM (value), 0)<span class='macro_popup'>do { if ((value != ((void*)0) &amp;&amp; (((__extension__ ({ const<br> GValue *__val = (const GValue*) ((value)); GType __t = (((GType<br>) ((12) &lt;&lt; (2)))); gboolean __r; if (!__val) __r = (0);<br> else if (__val-&gt;g_type == __t) __r = (!(0)); else __r = g_type_check_value_holds<br> (__val, __t); __r; })))))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "value != NULL &amp;&amp; G_VALUE_HOLDS_ENUM (value)"<br>); return (0); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1521"><td class="num" id="LN1521">1521</td><td class="line"> <span class='keyword'>if</span> (!value || !<span class='macro'>G_VALUE_HOLDS_ENUM (value)<span class='macro_popup'>(((__extension__ ({ const GValue *__val = (const GValue*) ((value<br>)); GType __t = (((GType) ((12) &lt;&lt; (2)))); gboolean __r<br>; if (!__val) __r = (0); else if (__val-&gt;g_type == __t) __r<br> = (!(0)); else __r = g_type_check_value_holds (__val, __t); __r<br>; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1522"><td class="num" id="LN1522">1522</td><td class="line"> <span class='keyword'>return</span> 0;</td></tr>
+<tr class="codeline" data-linenumber="1523"><td class="num" id="LN1523">1523</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1524"><td class="num" id="LN1524">1524</td><td class="line"> <span class='keyword'>return</span> g_value_get_enum (value);</td></tr>
+<tr class="codeline" data-linenumber="1525"><td class="num" id="LN1525">1525</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1526"><td class="num" id="LN1526">1526</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1527"><td class="num" id="LN1527">1527</td><td class="line"><span class='keyword'>int</span></td></tr>
+<tr class="codeline" data-linenumber="1528"><td class="num" id="LN1528">1528</td><td class="line">terminal_profile_get_property_int (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1529"><td class="num" id="LN1529">1529</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="1530"><td class="num" id="LN1530">1530</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1531"><td class="num" id="LN1531">1531</td><td class="line"> <span class='keyword'>const</span> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="1532"><td class="num" id="LN1532">1532</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1533"><td class="num" id="LN1533">1533</td><td class="line"> value = get_prop_value_from_prop_name (profile, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="1534"><td class="num" id="LN1534">1534</td><td class="line"> <span class='macro'>g_return_val_if_fail (value != NULL &amp;&amp; G_VALUE_HOLDS_INT (value), 0)<span class='macro_popup'>do { if ((value != ((void*)0) &amp;&amp; (((__extension__ ({ const<br> GValue *__val = (const GValue*) ((value)); GType __t = (((GType<br>) ((6) &lt;&lt; (2)))); gboolean __r; if (!__val) __r = (0); else<br> if (__val-&gt;g_type == __t) __r = (!(0)); else __r = g_type_check_value_holds<br> (__val, __t); __r; })))))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "value != NULL &amp;&amp; G_VALUE_HOLDS_INT (value)"<br>); return (0); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1535"><td class="num" id="LN1535">1535</td><td class="line"> <span class='keyword'>if</span> (!value || !<span class='macro'>G_VALUE_HOLDS_INT (value)<span class='macro_popup'>(((__extension__ ({ const GValue *__val = (const GValue*) ((value<br>)); GType __t = (((GType) ((6) &lt;&lt; (2)))); gboolean __r;<br> if (!__val) __r = (0); else if (__val-&gt;g_type == __t) __r<br> = (!(0)); else __r = g_type_check_value_holds (__val, __t); __r<br>; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1536"><td class="num" id="LN1536">1536</td><td class="line"> <span class='keyword'>return</span> 0;</td></tr>
+<tr class="codeline" data-linenumber="1537"><td class="num" id="LN1537">1537</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1538"><td class="num" id="LN1538">1538</td><td class="line"> <span class='keyword'>return</span> g_value_get_int (value);</td></tr>
+<tr class="codeline" data-linenumber="1539"><td class="num" id="LN1539">1539</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1540"><td class="num" id="LN1540">1540</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1541"><td class="num" id="LN1541">1541</td><td class="line">gpointer</td></tr>
+<tr class="codeline" data-linenumber="1542"><td class="num" id="LN1542">1542</td><td class="line">terminal_profile_get_property_object (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1543"><td class="num" id="LN1543">1543</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="1544"><td class="num" id="LN1544">1544</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1545"><td class="num" id="LN1545">1545</td><td class="line"> <span class='keyword'>const</span> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="1546"><td class="num" id="LN1546">1546</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1547"><td class="num" id="LN1547">1547</td><td class="line"> value = get_prop_value_from_prop_name (profile, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="1548"><td class="num" id="LN1548">1548</td><td class="line"> <span class='macro'>g_return_val_if_fail (value != NULL &amp;&amp; G_VALUE_HOLDS_OBJECT (value), NULL)<span class='macro_popup'>do { if ((value != ((void*)0) &amp;&amp; (((__extension__ ({ const<br> GValue *__val = (const GValue*) ((value)); GType __t = (((GType<br>) ((20) &lt;&lt; (2)))); gboolean __r; if (!__val) __r = (0);<br> else if (__val-&gt;g_type == __t) __r = (!(0)); else __r = g_type_check_value_holds<br> (__val, __t); __r; })))))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "value != NULL &amp;&amp; G_VALUE_HOLDS_OBJECT (value)"<br>); return (((void*)0)); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1549"><td class="num" id="LN1549">1549</td><td class="line"> <span class='keyword'>if</span> (!value || !<span class='macro'>G_VALUE_HOLDS_OBJECT (value)<span class='macro_popup'>(((__extension__ ({ const GValue *__val = (const GValue*) ((value<br>)); GType __t = (((GType) ((20) &lt;&lt; (2)))); gboolean __r<br>; if (!__val) __r = (0); else if (__val-&gt;g_type == __t) __r<br> = (!(0)); else __r = g_type_check_value_holds (__val, __t); __r<br>; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1550"><td class="num" id="LN1550">1550</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1551"><td class="num" id="LN1551">1551</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1552"><td class="num" id="LN1552">1552</td><td class="line"> <span class='keyword'>return</span> g_value_get_object (value);</td></tr>
+<tr class="codeline" data-linenumber="1553"><td class="num" id="LN1553">1553</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1554"><td class="num" id="LN1554">1554</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1555"><td class="num" id="LN1555">1555</td><td class="line"><span class='keyword'>const</span> <span class='keyword'>char</span>*</td></tr>
+<tr class="codeline" data-linenumber="1556"><td class="num" id="LN1556">1556</td><td class="line">terminal_profile_get_property_string (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1557"><td class="num" id="LN1557">1557</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="1558"><td class="num" id="LN1558">1558</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1559"><td class="num" id="LN1559">1559</td><td class="line"> <span class='keyword'>const</span> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="1560"><td class="num" id="LN1560">1560</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1561"><td class="num" id="LN1561">1561</td><td class="line"> value = get_prop_value_from_prop_name (profile, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="1562"><td class="num" id="LN1562">1562</td><td class="line"> <span class='macro'>g_return_val_if_fail (value != NULL &amp;&amp; G_VALUE_HOLDS_STRING (value), NULL)<span class='macro_popup'>do { if ((value != ((void*)0) &amp;&amp; (((__extension__ ({ const<br> GValue *__val = (const GValue*) ((value)); GType __t = (((GType<br>) ((16) &lt;&lt; (2)))); gboolean __r; if (!__val) __r = (0);<br> else if (__val-&gt;g_type == __t) __r = (!(0)); else __r = g_type_check_value_holds<br> (__val, __t); __r; })))))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "value != NULL &amp;&amp; G_VALUE_HOLDS_STRING (value)"<br>); return (((void*)0)); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1563"><td class="num" id="LN1563">1563</td><td class="line"> <span class='keyword'>if</span> (!value || !<span class='macro'>G_VALUE_HOLDS_STRING (value)<span class='macro_popup'>(((__extension__ ({ const GValue *__val = (const GValue*) ((value<br>)); GType __t = (((GType) ((16) &lt;&lt; (2)))); gboolean __r<br>; if (!__val) __r = (0); else if (__val-&gt;g_type == __t) __r<br> = (!(0)); else __r = g_type_check_value_holds (__val, __t); __r<br>; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1564"><td class="num" id="LN1564">1564</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1565"><td class="num" id="LN1565">1565</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1566"><td class="num" id="LN1566">1566</td><td class="line"> <span class='keyword'>return</span> g_value_get_string (value);</td></tr>
+<tr class="codeline" data-linenumber="1567"><td class="num" id="LN1567">1567</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1568"><td class="num" id="LN1568">1568</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1569"><td class="num" id="LN1569">1569</td><td class="line">gboolean</td></tr>
+<tr class="codeline" data-linenumber="1570"><td class="num" id="LN1570">1570</td><td class="line">terminal_profile_property_locked (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1571"><td class="num" id="LN1571">1571</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="1572"><td class="num" id="LN1572">1572</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1573"><td class="num" id="LN1573">1573</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1574"><td class="num" id="LN1574">1574</td><td class="line"> GParamSpec *pspec;</td></tr>
+<tr class="codeline" data-linenumber="1575"><td class="num" id="LN1575">1575</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1576"><td class="num" id="LN1576">1576</td><td class="line"> pspec = get_pspec_from_name (profile, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="1577"><td class="num" id="LN1577">1577</td><td class="line"> <span class='macro'>g_return_val_if_fail (pspec != NULL, FALSE)<span class='macro_popup'>do { if ((pspec != ((void*)0))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "pspec != NULL");<br> return ((0)); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1578"><td class="num" id="LN1578">1578</td><td class="line"> <span class='keyword'>if</span> (!pspec)</td></tr>
+<tr class="codeline" data-linenumber="1579"><td class="num" id="LN1579">1579</td><td class="line"> <span class='keyword'>return</span> <span class="mrange"><span class='macro'>FALSE<span class='macro_popup'>(0)</span></span></span>;</td></tr>
+<tr><td class="num"></td><td class="line"><div id="EndPath" class="msg msgEvent" style="margin-left:24ex">This statement is never executed</div></td></tr>
+<tr class="codeline" data-linenumber="1580"><td class="num" id="LN1580">1580</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1581"><td class="num" id="LN1581">1581</td><td class="line"> <span class='keyword'>return</span> priv-&gt;locked[pspec-&gt;param_id];</td></tr>
+<tr class="codeline" data-linenumber="1582"><td class="num" id="LN1582">1582</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1583"><td class="num" id="LN1583">1583</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1584"><td class="num" id="LN1584">1584</td><td class="line"><span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1585"><td class="num" id="LN1585">1585</td><td class="line">terminal_profile_reset_property (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1586"><td class="num" id="LN1586">1586</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="1587"><td class="num" id="LN1587">1587</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1588"><td class="num" id="LN1588">1588</td><td class="line"> GParamSpec *pspec;</td></tr>
+<tr class="codeline" data-linenumber="1589"><td class="num" id="LN1589">1589</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1590"><td class="num" id="LN1590">1590</td><td class="line"> pspec = get_pspec_from_name (profile, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="1591"><td class="num" id="LN1591">1591</td><td class="line"> <span class='macro'>g_return_if_fail (pspec != NULL)<span class='macro_popup'>do { if ((pspec != ((void*)0))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "pspec != NULL");<br> return; } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1592"><td class="num" id="LN1592">1592</td><td class="line"> <span class='keyword'>if</span> (!pspec ||</td></tr>
+<tr class="codeline" data-linenumber="1593"><td class="num" id="LN1593">1593</td><td class="line"> (pspec-&gt;flags &amp; G_PARAM_WRITABLE) == 0)</td></tr>
+<tr class="codeline" data-linenumber="1594"><td class="num" id="LN1594">1594</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1595"><td class="num" id="LN1595">1595</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1596"><td class="num" id="LN1596">1596</td><td class="line"> terminal_profile_reset_property_internal (profile, pspec, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1597"><td class="num" id="LN1597">1597</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1598"><td class="num" id="LN1598">1598</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1599"><td class="num" id="LN1599">1599</td><td class="line">gboolean</td></tr>
+<tr class="codeline" data-linenumber="1600"><td class="num" id="LN1600">1600</td><td class="line">terminal_profile_get_palette (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1601"><td class="num" id="LN1601">1601</td><td class="line"> GdkRGBA *colors,</td></tr>
+<tr class="codeline" data-linenumber="1602"><td class="num" id="LN1602">1602</td><td class="line"> guint *n_colors)</td></tr>
+<tr class="codeline" data-linenumber="1603"><td class="num" id="LN1603">1603</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1604"><td class="num" id="LN1604">1604</td><td class="line"> TerminalProfilePrivate *priv;</td></tr>
+<tr class="codeline" data-linenumber="1605"><td class="num" id="LN1605">1605</td><td class="line"> GValueArray *array;</td></tr>
+<tr class="codeline" data-linenumber="1606"><td class="num" id="LN1606">1606</td><td class="line"> guint i, n;</td></tr>
+<tr class="codeline" data-linenumber="1607"><td class="num" id="LN1607">1607</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1608"><td class="num" id="LN1608">1608</td><td class="line"> <span class='macro'>g_return_val_if_fail (TERMINAL_IS_PROFILE (profile), FALSE)<span class='macro_popup'>do { if (((((__extension__ ({ GTypeInstance *__inst = (GTypeInstance<br>*) ((profile)); GType __t = ((terminal_profile_get_type ()));<br> gboolean __r; if (!__inst) __r = (0); else if (__inst-&gt;g_class<br> &amp;&amp; __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)<br>); else __r = g_type_check_instance_is_a (__inst, __t); __r; }<br>)))))) { } else { g_return_if_fail_warning (((gchar*) 0), ((const<br> char*) (__func__)), "TERMINAL_IS_PROFILE (profile)"); return<br> ((0)); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1609"><td class="num" id="LN1609">1609</td><td class="line"> <span class='macro'>g_return_val_if_fail (colors != NULL &amp;&amp; n_colors != NULL, FALSE)<span class='macro_popup'>do { if ((colors != ((void*)0) &amp;&amp; n_colors != ((void*<br>)0))) { } else { g_return_if_fail_warning (((gchar*) 0), ((const<br> char*) (__func__)), "colors != NULL &amp;&amp; n_colors != NULL"<br>); return ((0)); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1610"><td class="num" id="LN1610">1610</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1611"><td class="num" id="LN1611">1611</td><td class="line"> priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1612"><td class="num" id="LN1612">1612</td><td class="line"> array = g_value_get_boxed (g_value_array_get_nth (priv-&gt;properties, PROP_PALETTE));</td></tr>
+<tr class="codeline" data-linenumber="1613"><td class="num" id="LN1613">1613</td><td class="line"> <span class='keyword'>if</span> (!array)</td></tr>
+<tr class="codeline" data-linenumber="1614"><td class="num" id="LN1614">1614</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1615"><td class="num" id="LN1615">1615</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1616"><td class="num" id="LN1616">1616</td><td class="line"> n = <span class='macro'>MIN (array-&gt;n_values, *n_colors)<span class='macro_popup'>(((array-&gt;n_values) &lt; (*n_colors)) ? (array-&gt;n_values<br>) : (*n_colors))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1617"><td class="num" id="LN1617">1617</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; n; ++i)</td></tr>
+<tr class="codeline" data-linenumber="1618"><td class="num" id="LN1618">1618</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1619"><td class="num" id="LN1619">1619</td><td class="line"> GdkRGBA *color = g_value_get_boxed (g_value_array_get_nth (array, i));</td></tr>
+<tr class="codeline" data-linenumber="1620"><td class="num" id="LN1620">1620</td><td class="line"> <span class='keyword'>if</span> (!color)</td></tr>
+<tr class="codeline" data-linenumber="1621"><td class="num" id="LN1621">1621</td><td class="line"> <span class='keyword'>continue</span>; <span class='comment'>/* shouldn't happen!! */</span></td></tr>
+<tr class="codeline" data-linenumber="1622"><td class="num" id="LN1622">1622</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1623"><td class="num" id="LN1623">1623</td><td class="line"> colors[i] = *color;</td></tr>
+<tr class="codeline" data-linenumber="1624"><td class="num" id="LN1624">1624</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1625"><td class="num" id="LN1625">1625</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1626"><td class="num" id="LN1626">1626</td><td class="line"> *n_colors = n;</td></tr>
+<tr class="codeline" data-linenumber="1627"><td class="num" id="LN1627">1627</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1628"><td class="num" id="LN1628">1628</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1629"><td class="num" id="LN1629">1629</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1630"><td class="num" id="LN1630">1630</td><td class="line">gboolean</td></tr>
+<tr class="codeline" data-linenumber="1631"><td class="num" id="LN1631">1631</td><td class="line">terminal_profile_get_palette_is_builtin (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1632"><td class="num" id="LN1632">1632</td><td class="line"> guint *n)</td></tr>
+<tr class="codeline" data-linenumber="1633"><td class="num" id="LN1633">1633</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1634"><td class="num" id="LN1634">1634</td><td class="line"> GdkRGBA colors[<span class='macro'>TERMINAL_PALETTE_SIZE<span class='macro_popup'>16</span></span>];</td></tr>
+<tr class="codeline" data-linenumber="1635"><td class="num" id="LN1635">1635</td><td class="line"> guint n_colors;</td></tr>
+<tr class="codeline" data-linenumber="1636"><td class="num" id="LN1636">1636</td><td class="line"> guint i;</td></tr>
+<tr class="codeline" data-linenumber="1637"><td class="num" id="LN1637">1637</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1638"><td class="num" id="LN1638">1638</td><td class="line"> n_colors = <span class='macro'>G_N_ELEMENTS (colors)<span class='macro_popup'>(sizeof (colors) / sizeof ((colors)[0]))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1639"><td class="num" id="LN1639">1639</td><td class="line"> <span class='keyword'>if</span> (!terminal_profile_get_palette (profile, colors, &amp;n_colors) ||</td></tr>
+<tr class="codeline" data-linenumber="1640"><td class="num" id="LN1640">1640</td><td class="line"> n_colors != <span class='macro'>TERMINAL_PALETTE_SIZE<span class='macro_popup'>16</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1641"><td class="num" id="LN1641">1641</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1642"><td class="num" id="LN1642">1642</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1643"><td class="num" id="LN1643">1643</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; <span class='macro'>TERMINAL_PALETTE_N_BUILTINS<span class='macro_popup'>5</span></span>; ++i)</td></tr>
+<tr class="codeline" data-linenumber="1644"><td class="num" id="LN1644">1644</td><td class="line"> <span class='keyword'>if</span> (palette_cmp (colors, terminal_palettes[i]))</td></tr>
+<tr class="codeline" data-linenumber="1645"><td class="num" id="LN1645">1645</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1646"><td class="num" id="LN1646">1646</td><td class="line"> *n = i;</td></tr>
+<tr class="codeline" data-linenumber="1647"><td class="num" id="LN1647">1647</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1648"><td class="num" id="LN1648">1648</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1649"><td class="num" id="LN1649">1649</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1650"><td class="num" id="LN1650">1650</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1651"><td class="num" id="LN1651">1651</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1652"><td class="num" id="LN1652">1652</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1653"><td class="num" id="LN1653">1653</td><td class="line"><span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1654"><td class="num" id="LN1654">1654</td><td class="line">terminal_profile_set_palette_builtin (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1655"><td class="num" id="LN1655">1655</td><td class="line"> guint n)</td></tr>
+<tr class="codeline" data-linenumber="1656"><td class="num" id="LN1656">1656</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1657"><td class="num" id="LN1657">1657</td><td class="line"> GValue value = { 0, };</td></tr>
+<tr class="codeline" data-linenumber="1658"><td class="num" id="LN1658">1658</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1659"><td class="num" id="LN1659">1659</td><td class="line"> <span class='macro'>g_return_if_fail (n &lt; TERMINAL_PALETTE_N_BUILTINS)<span class='macro_popup'>do { if ((n &lt; 5)) { } else { g_return_if_fail_warning (((gchar<br>*) 0), ((const char*) (__func__)), "n &lt; TERMINAL_PALETTE_N_BUILTINS"<br>); return; } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1660"><td class="num" id="LN1660">1660</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1661"><td class="num" id="LN1661">1661</td><td class="line"> g_value_init (&amp;value, <span class='macro'>G_TYPE_VALUE_ARRAY<span class='macro_popup'>(g_value_array_get_type ()) GCC warning "Deprecated pre-processor symbol: replace with \"(g_array_get_type ())\""<br>
+</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1662"><td class="num" id="LN1662">1662</td><td class="line"> set_value_from_palette (&amp;value, terminal_palettes[n], <span class='macro'>TERMINAL_PALETTE_SIZE<span class='macro_popup'>16</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1663"><td class="num" id="LN1663">1663</td><td class="line"> g_object_set_property (<span class='macro'>G_OBJECT (profile)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((profile)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, <span class='macro'>TERMINAL_PROFILE_PALETTE<span class='macro_popup'>"palette"</span></span>, &amp;value);</td></tr>
+<tr class="codeline" data-linenumber="1664"><td class="num" id="LN1664">1664</td><td class="line"> g_value_unset (&amp;value);</td></tr>
+<tr class="codeline" data-linenumber="1665"><td class="num" id="LN1665">1665</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1666"><td class="num" id="LN1666">1666</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1667"><td class="num" id="LN1667">1667</td><td class="line">gboolean</td></tr>
+<tr class="codeline" data-linenumber="1668"><td class="num" id="LN1668">1668</td><td class="line">terminal_profile_modify_palette_entry (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1669"><td class="num" id="LN1669">1669</td><td class="line"> guint i,</td></tr>
+<tr class="codeline" data-linenumber="1670"><td class="num" id="LN1670">1670</td><td class="line"> <span class='keyword'>const</span> GdkRGBA *color)</td></tr>
+<tr class="codeline" data-linenumber="1671"><td class="num" id="LN1671">1671</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1672"><td class="num" id="LN1672">1672</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1673"><td class="num" id="LN1673">1673</td><td class="line"> GValueArray *array;</td></tr>
+<tr class="codeline" data-linenumber="1674"><td class="num" id="LN1674">1674</td><td class="line"> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="1675"><td class="num" id="LN1675">1675</td><td class="line"> GdkRGBA *old_color;</td></tr>
+<tr class="codeline" data-linenumber="1676"><td class="num" id="LN1676">1676</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1677"><td class="num" id="LN1677">1677</td><td class="line"> array = g_value_get_boxed (g_value_array_get_nth (priv-&gt;properties, PROP_PALETTE));</td></tr>
+<tr class="codeline" data-linenumber="1678"><td class="num" id="LN1678">1678</td><td class="line"> <span class='keyword'>if</span> (!array ||</td></tr>
+<tr class="codeline" data-linenumber="1679"><td class="num" id="LN1679">1679</td><td class="line"> i &gt;= array-&gt;n_values)</td></tr>
+<tr class="codeline" data-linenumber="1680"><td class="num" id="LN1680">1680</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1681"><td class="num" id="LN1681">1681</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1682"><td class="num" id="LN1682">1682</td><td class="line"> value = g_value_array_get_nth (array, i);</td></tr>
+<tr class="codeline" data-linenumber="1683"><td class="num" id="LN1683">1683</td><td class="line"> old_color = g_value_get_boxed (value);</td></tr>
+<tr class="codeline" data-linenumber="1684"><td class="num" id="LN1684">1684</td><td class="line"> <span class='keyword'>if</span> (!old_color ||</td></tr>
+<tr class="codeline" data-linenumber="1685"><td class="num" id="LN1685">1685</td><td class="line"> !rgba_equal (old_color, color))</td></tr>
+<tr class="codeline" data-linenumber="1686"><td class="num" id="LN1686">1686</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1687"><td class="num" id="LN1687">1687</td><td class="line"> g_value_set_boxed (value, color);</td></tr>
+<tr class="codeline" data-linenumber="1688"><td class="num" id="LN1688">1688</td><td class="line"> g_object_notify (<span class='macro'>G_OBJECT (profile)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((profile)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, <span class='macro'>TERMINAL_PROFILE_PALETTE<span class='macro_popup'>"palette"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1689"><td class="num" id="LN1689">1689</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1690"><td class="num" id="LN1690">1690</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1691"><td class="num" id="LN1691">1691</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1692"><td class="num" id="LN1692">1692</td><td class="line">}</td></tr>
+</table></body></html>
diff --git a/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-cbf846.html b/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-cbf846.html
new file mode 100644
index 0000000..674157b
--- /dev/null
+++ b/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-cbf846.html
@@ -0,0 +1,1021 @@
+<!doctype html>
+<html>
+<head>
+<title>md4.c</title>
+
+<style type="text/css">
+body { color:#000000; background-color:#ffffff }
+body { font-family:Helvetica, sans-serif; font-size:10pt }
+h1 { font-size:14pt }
+.FileName { margin-top: 5px; margin-bottom: 5px; display: inline; }
+.FileNav { margin-left: 5px; margin-right: 5px; display: inline; }
+.FileNav a { text-decoration:none; font-size: larger; }
+.divider { margin-top: 30px; margin-bottom: 30px; height: 15px; }
+.divider { background-color: gray; }
+.code { border-collapse:collapse; width:100%; }
+.code { font-family: "Monospace", monospace; font-size:10pt }
+.code { line-height: 1.2em }
+.comment { color: green; font-style: oblique }
+.keyword { color: blue }
+.string_literal { color: red }
+.directive { color: darkmagenta }
+
+/* Macros and variables could have pop-up notes hidden by default.
+ - Macro pop-up: expansion of the macro
+ - Variable pop-up: value (table) of the variable */
+.macro_popup, .variable_popup { display: none; }
+
+/* Pop-up appears on mouse-hover event. */
+.macro:hover .macro_popup, .variable:hover .variable_popup {
+ display: block;
+ padding: 2px;
+ -webkit-border-radius:5px;
+ -webkit-box-shadow:1px 1px 7px #000;
+ border-radius:5px;
+ box-shadow:1px 1px 7px #000;
+ position: absolute;
+ top: -1em;
+ left:10em;
+ z-index: 1
+}
+
+.macro_popup {
+ border: 2px solid red;
+ background-color:#FFF0F0;
+ font-weight: normal;
+}
+
+.variable_popup {
+ border: 2px solid blue;
+ background-color:#F0F0FF;
+ font-weight: bold;
+ font-family: Helvetica, sans-serif;
+ font-size: 9pt;
+}
+
+/* Pop-up notes needs a relative position as a base where they pops up. */
+.macro, .variable {
+ background-color: PaleGoldenRod;
+ position: relative;
+}
+.macro { color: DarkMagenta; }
+
+#tooltiphint {
+ position: fixed;
+ width: 50em;
+ margin-left: -25em;
+ left: 50%;
+ padding: 10px;
+ border: 1px solid #b0b0b0;
+ border-radius: 2px;
+ box-shadow: 1px 1px 7px black;
+ background-color: #c0c0c0;
+ z-index: 2;
+}
+
+.num { width:2.5em; padding-right:2ex; background-color:#eeeeee }
+.num { text-align:right; font-size:8pt }
+.num { color:#444444 }
+.line { padding-left: 1ex; border-left: 3px solid #ccc }
+.line { white-space: pre }
+.msg { -webkit-box-shadow:1px 1px 7px #000 }
+.msg { box-shadow:1px 1px 7px #000 }
+.msg { -webkit-border-radius:5px }
+.msg { border-radius:5px }
+.msg { font-family:Helvetica, sans-serif; font-size:8pt }
+.msg { float:left }
+.msg { position:relative }
+.msg { padding:0.25em 1ex 0.25em 1ex }
+.msg { margin-top:10px; margin-bottom:10px }
+.msg { font-weight:bold }
+.msg { max-width:60em; word-wrap: break-word; white-space: pre-wrap }
+.msgT { padding:0x; spacing:0x }
+.msgEvent { background-color:#fff8b4; color:#000000 }
+.msgControl { background-color:#bbbbbb; color:#000000 }
+.msgNote { background-color:#ddeeff; color:#000000 }
+.mrange { background-color:#dfddf3 }
+.mrange { border-bottom:1px solid #6F9DBE }
+.PathIndex { font-weight: bold; padding:0px 5px; margin-right:5px; }
+.PathIndex { -webkit-border-radius:8px }
+.PathIndex { border-radius:8px }
+.PathIndexEvent { background-color:#bfba87 }
+.PathIndexControl { background-color:#8c8c8c }
+.PathIndexPopUp { background-color: #879abc; }
+.PathNav a { text-decoration:none; font-size: larger }
+.CodeInsertionHint { font-weight: bold; background-color: #10dd10 }
+.CodeRemovalHint { background-color:#de1010 }
+.CodeRemovalHint { border-bottom:1px solid #6F9DBE }
+.msg.selected{ background-color:orange !important; }
+
+table.simpletable {
+ padding: 5px;
+ font-size:12pt;
+ margin:20px;
+ border-collapse: collapse; border-spacing: 0px;
+}
+td.rowname {
+ text-align: right;
+ vertical-align: top;
+ font-weight: bold;
+ color:#444444;
+ padding-right:2ex;
+}
+
+/* Hidden text. */
+input.spoilerhider + label {
+ cursor: pointer;
+ text-decoration: underline;
+ display: block;
+}
+input.spoilerhider {
+ display: none;
+}
+input.spoilerhider ~ .spoiler {
+ overflow: hidden;
+ margin: 10px auto 0;
+ height: 0;
+ opacity: 0;
+}
+input.spoilerhider:checked + label + .spoiler{
+ height: auto;
+ opacity: 1;
+}
+</style>
+</head>
+<body>
+<!-- BUGDESC Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119 -->
+
+<!-- BUGTYPE Potential insecure memory buffer bounds restriction in call 'strcpy' -->
+
+<!-- BUGCATEGORY Security -->
+
+<!-- BUGFILE /rootdir/src/skey/md4.c -->
+
+<!-- FILENAME md4.c -->
+
+<!-- FUNCTIONNAME MD4Keycrunch -->
+
+<!-- ISSUEHASHCONTENTOFLINEINCONTEXT cbf8462432c3934cd88bba41ecd5f748 -->
+
+<!-- BUGLINE 274 -->
+
+<!-- BUGCOLUMN 2 -->
+
+<!-- BUGPATHLENGTH 1 -->
+
+<!-- BUGMETAEND -->
+<!-- REPORTHEADER -->
+<h3>Bug Summary</h3>
+<table class="simpletable">
+<tr><td class="rowname">File:</td><td>skey/md4.c</td></tr>
+<tr><td class="rowname">Warning:</td><td><a href="#EndPath">line 274, column 2</a><br />Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119</td></tr>
+
+</table>
+<!-- REPORTSUMMARYEXTRA -->
+<h3>Annotated Source Code</h3>
+<p>Press <a href="#" onclick="toggleHelp(); return false;">'?'</a>
+ to see keyboard shortcuts</p>
+<input type="checkbox" class="spoilerhider" id="showinvocation" />
+<label for="showinvocation" >Show analyzer invocation</label>
+<div class="spoiler">clang -cc1 -cc1 -triple x86_64-redhat-linux-gnu -analyze -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name md4.c -analyzer-checker=core -analyzer-checker=apiModeling -analyzer-checker=unix -analyzer-checker=deadcode -analyzer-checker=security.insecureAPI.UncheckedReturn -analyzer-checker=security.insecureAPI.getpw -analyzer-checker=security.insecureAPI.gets -analyzer-checker=security.insecureAPI.mktemp -analyzer-checker=security.insecureAPI.mkstemp -analyzer-checker=security.insecureAPI.vfork -analyzer-checker=nullability.NullPassedToNonnull -analyzer-checker=nullability.NullReturnedFromNonnull -analyzer-output plist -w -setup-static-analyzer -mrelocation-model pic -pic-level 2 -fhalf-no-semantic-interposition -mframe-pointer=all -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -tune-cpu generic -debugger-tuning=gdb -fcoverage-compilation-dir=/rootdir/src/skey -resource-dir /usr/bin/../lib/clang/17 -D HAVE_CONFIG_H -I . -I ../.. -I ./.. -D G_DISABLE_SINGLE_INCLUDES -I /usr/include/dconf -I /usr/include/vte-2.91 -I /usr/include/pango-1.0 -I /usr/include/gtk-3.0 -I /usr/include/gdk-pixbuf-2.0 -I /usr/include/cairo -I /usr/include/dbus-1.0 -I /usr/lib64/dbus-1.0/include -I /usr/include/atk-1.0 -I /usr/include/harfbuzz -I /usr/include/freetype2 -I /usr/include/glib-2.0 -I /usr/lib64/glib-2.0/include -I /usr/include/cloudproviders -I /usr/include/at-spi2-atk/2.0 -I /usr/include/at-spi-2.0 -I /usr/include/blkid -I /usr/include/gio-unix-2.0 -I /usr/include/pixman-1 -I /usr/include/libmount -I /usr/include/libxml2 -I /usr/include/fribidi -I /usr/include/libpng16 -I /usr/include/sysprof-6 -D PIC -internal-isystem /usr/bin/../lib/clang/17/include -internal-isystem /usr/local/include -internal-isystem /usr/bin/../lib/gcc/x86_64-redhat-linux/13/../../../../x86_64-redhat-linux/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -Wno-unused-parameter -fdebug-compilation-dir=/rootdir/src/skey -ferror-limit 19 -fgnuc-version=4.2.1 -analyzer-checker deadcode.DeadStores -analyzer-checker alpha.deadcode.UnreachableCode -analyzer-checker alpha.core.CastSize -analyzer-checker alpha.core.CastToStruct -analyzer-checker alpha.core.IdenticalExpr -analyzer-checker alpha.core.SizeofPtr -analyzer-checker alpha.security.ArrayBoundV2 -analyzer-checker alpha.security.MallocOverflow -analyzer-checker alpha.security.ReturnPtrRange -analyzer-checker alpha.unix.SimpleStream -analyzer-checker alpha.unix.cstring.BufferOverlap -analyzer-checker alpha.unix.cstring.NotNullTerminated -analyzer-checker alpha.unix.cstring.OutOfBounds -analyzer-checker alpha.core.FixedAddr -analyzer-checker security.insecureAPI.strcpy -analyzer-output=html -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /rootdir/html-report/2024-02-18-131424-5067-1 -x c md4.c
+</div>
+<div id='tooltiphint' hidden="true">
+ <p>Keyboard shortcuts: </p>
+ <ul>
+ <li>Use 'j/k' keys for keyboard navigation</li>
+ <li>Use 'Shift+S' to show/hide relevant lines</li>
+ <li>Use '?' to toggle this window</li>
+ </ul>
+ <a href="#" onclick="toggleHelp(); return false;">Close</a>
+</div>
+<script type='text/javascript'>
+var relevant_lines = {"1": {"274": 1}};
+
+var filterCounterexample = function (hide) {
+ var tables = document.getElementsByClassName("code");
+ for (var t=0; t<tables.length; t++) {
+ var table = tables[t];
+ var file_id = table.getAttribute("data-fileid");
+ var lines_in_fid = relevant_lines[file_id];
+ if (!lines_in_fid) {
+ lines_in_fid = {};
+ }
+ var lines = table.getElementsByClassName("codeline");
+ for (var i=0; i<lines.length; i++) {
+ var el = lines[i];
+ var lineNo = el.getAttribute("data-linenumber");
+ if (!lines_in_fid[lineNo]) {
+ if (hide) {
+ el.setAttribute("hidden", "");
+ } else {
+ el.removeAttribute("hidden");
+ }
+ }
+ }
+ }
+}
+
+window.addEventListener("keydown", function (event) {
+ if (event.defaultPrevented) {
+ return;
+ }
+ // SHIFT + S
+ if (event.shiftKey && event.keyCode == 83) {
+ var checked = document.getElementsByName("showCounterexample")[0].checked;
+ filterCounterexample(!checked);
+ document.getElementsByName("showCounterexample")[0].click();
+ } else {
+ return;
+ }
+ event.preventDefault();
+}, true);
+
+document.addEventListener("DOMContentLoaded", function() {
+ document.querySelector('input[name="showCounterexample"]').onchange=
+ function (event) {
+ filterCounterexample(this.checked);
+ };
+});
+</script>
+
+<form>
+ <input type="checkbox" name="showCounterexample" id="showCounterexample" />
+ <label for="showCounterexample">
+ Show only relevant lines
+ </label>
+ <input type="checkbox" name="showArrows"
+ id="showArrows" style="margin-left: 10px" />
+ <label for="showArrows">
+ Show control flow arrows
+ </label>
+</form>
+
+<script type='text/javascript'>
+// Return range of numbers from a range [lower, upper).
+function range(lower, upper) {
+ var array = [];
+ for (var i = lower; i <= upper; ++i) {
+ array.push(i);
+ }
+ return array;
+}
+
+var getRelatedArrowIndices = function(pathId) {
+ // HTML numeration of events is a bit different than it is in the path.
+ // Everything is rotated one step to the right, so the last element
+ // (error diagnostic) has index 0.
+ if (pathId == 0) {
+ // arrowIndices has at least 2 elements
+ pathId = arrowIndices.length - 1;
+ }
+
+ return range(arrowIndices[pathId], arrowIndices[pathId - 1]);
+}
+
+var highlightArrowsForSelectedEvent = function() {
+ const selectedNum = findNum();
+ const arrowIndicesToHighlight = getRelatedArrowIndices(selectedNum);
+ arrowIndicesToHighlight.forEach((index) => {
+ var arrow = document.querySelector("#arrow" + index);
+ if(arrow) {
+ classListAdd(arrow, "selected")
+ }
+ });
+}
+
+var getAbsoluteBoundingRect = function(element) {
+ const relative = element.getBoundingClientRect();
+ return {
+ left: relative.left + window.pageXOffset,
+ right: relative.right + window.pageXOffset,
+ top: relative.top + window.pageYOffset,
+ bottom: relative.bottom + window.pageYOffset,
+ height: relative.height,
+ width: relative.width
+ };
+}
+
+var drawArrow = function(index) {
+ // This function is based on the great answer from SO:
+ // https://stackoverflow.com/a/39575674/11582326
+ var start = document.querySelector("#start" + index);
+ var end = document.querySelector("#end" + index);
+ var arrow = document.querySelector("#arrow" + index);
+
+ var startRect = getAbsoluteBoundingRect(start);
+ var endRect = getAbsoluteBoundingRect(end);
+
+ // It is an arrow from a token to itself, no need to visualize it.
+ if (startRect.top == endRect.top &&
+ startRect.left == endRect.left)
+ return;
+
+ // Each arrow is a very simple Bézier curve, with two nodes and
+ // two handles. So, we need to calculate four points in the window:
+ // * start node
+ var posStart = { x: 0, y: 0 };
+ // * end node
+ var posEnd = { x: 0, y: 0 };
+ // * handle for the start node
+ var startHandle = { x: 0, y: 0 };
+ // * handle for the end node
+ var endHandle = { x: 0, y: 0 };
+ // One can visualize it as follows:
+ //
+ // start handle
+ // /
+ // X"""_.-""""X
+ // .' \
+ // / start node
+ // |
+ // |
+ // | end node
+ // \ /
+ // `->X
+ // X-'
+ // \
+ // end handle
+ //
+ // NOTE: (0, 0) is the top left corner of the window.
+
+ // We have 3 similar, but still different scenarios to cover:
+ //
+ // 1. Two tokens on different lines.
+ // -xxx
+ // /
+ // \
+ // -> xxx
+ // In this situation, we draw arrow on the left curving to the left.
+ // 2. Two tokens on the same line, and the destination is on the right.
+ // ____
+ // / \
+ // / V
+ // xxx xxx
+ // In this situation, we draw arrow above curving upwards.
+ // 3. Two tokens on the same line, and the destination is on the left.
+ // xxx xxx
+ // ^ /
+ // \____/
+ // In this situation, we draw arrow below curving downwards.
+ const onDifferentLines = startRect.top <= endRect.top - 5 ||
+ startRect.top >= endRect.top + 5;
+ const leftToRight = startRect.left < endRect.left;
+
+ // NOTE: various magic constants are chosen empirically for
+ // better positioning and look
+ if (onDifferentLines) {
+ // Case #1
+ const topToBottom = startRect.top < endRect.top;
+ posStart.x = startRect.left - 1;
+ // We don't want to start it at the top left corner of the token,
+ // it doesn't feel like this is where the arrow comes from.
+ // For this reason, we start it in the middle of the left side
+ // of the token.
+ posStart.y = startRect.top + startRect.height / 2;
+
+ // End node has arrow head and we give it a bit more space.
+ posEnd.x = endRect.left - 4;
+ posEnd.y = endRect.top;
+
+ // Utility object with x and y offsets for handles.
+ var curvature = {
+ // We want bottom-to-top arrow to curve a bit more, so it doesn't
+ // overlap much with top-to-bottom curves (much more frequent).
+ x: topToBottom ? 15 : 25,
+ y: Math.min((posEnd.y - posStart.y) / 3, 10)
+ }
+
+ // When destination is on the different line, we can make a
+ // curvier arrow because we have space for it.
+ // So, instead of using
+ //
+ // startHandle.x = posStart.x - curvature.x
+ // endHandle.x = posEnd.x - curvature.x
+ //
+ // We use the leftmost of these two values for both handles.
+ startHandle.x = Math.min(posStart.x, posEnd.x) - curvature.x;
+ endHandle.x = startHandle.x;
+
+ // Curving downwards from the start node...
+ startHandle.y = posStart.y + curvature.y;
+ // ... and upwards from the end node.
+ endHandle.y = posEnd.y - curvature.y;
+
+ } else if (leftToRight) {
+ // Case #2
+ // Starting from the top right corner...
+ posStart.x = startRect.right - 1;
+ posStart.y = startRect.top;
+
+ // ...and ending at the top left corner of the end token.
+ posEnd.x = endRect.left + 1;
+ posEnd.y = endRect.top - 1;
+
+ // Utility object with x and y offsets for handles.
+ var curvature = {
+ x: Math.min((posEnd.x - posStart.x) / 3, 15),
+ y: 5
+ }
+
+ // Curving to the right...
+ startHandle.x = posStart.x + curvature.x;
+ // ... and upwards from the start node.
+ startHandle.y = posStart.y - curvature.y;
+
+ // And to the left...
+ endHandle.x = posEnd.x - curvature.x;
+ // ... and upwards from the end node.
+ endHandle.y = posEnd.y - curvature.y;
+
+ } else {
+ // Case #3
+ // Starting from the bottom right corner...
+ posStart.x = startRect.right;
+ posStart.y = startRect.bottom;
+
+ // ...and ending also at the bottom right corner, but of the end token.
+ posEnd.x = endRect.right - 1;
+ posEnd.y = endRect.bottom + 1;
+
+ // Utility object with x and y offsets for handles.
+ var curvature = {
+ x: Math.min((posStart.x - posEnd.x) / 3, 15),
+ y: 5
+ }
+
+ // Curving to the left...
+ startHandle.x = posStart.x - curvature.x;
+ // ... and downwards from the start node.
+ startHandle.y = posStart.y + curvature.y;
+
+ // And to the right...
+ endHandle.x = posEnd.x + curvature.x;
+ // ... and downwards from the end node.
+ endHandle.y = posEnd.y + curvature.y;
+ }
+
+ // Put it all together into a path.
+ // More information on the format:
+ // https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths
+ var pathStr = "M" + posStart.x + "," + posStart.y + " " +
+ "C" + startHandle.x + "," + startHandle.y + " " +
+ endHandle.x + "," + endHandle.y + " " +
+ posEnd.x + "," + posEnd.y;
+
+ arrow.setAttribute("d", pathStr);
+};
+
+var drawArrows = function() {
+ const numOfArrows = document.querySelectorAll("path[id^=arrow]").length;
+ for (var i = 0; i < numOfArrows; ++i) {
+ drawArrow(i);
+ }
+}
+
+var toggleArrows = function(event) {
+ const arrows = document.querySelector("#arrows");
+ if (event.target.checked) {
+ arrows.setAttribute("visibility", "visible");
+ } else {
+ arrows.setAttribute("visibility", "hidden");
+ }
+}
+
+window.addEventListener("resize", drawArrows);
+document.addEventListener("DOMContentLoaded", function() {
+ // Whenever we show invocation, locations change, i.e. we
+ // need to redraw arrows.
+ document
+ .querySelector('input[id="showinvocation"]')
+ .addEventListener("click", drawArrows);
+ // Hiding irrelevant lines also should cause arrow rerender.
+ document
+ .querySelector('input[name="showCounterexample"]')
+ .addEventListener("change", drawArrows);
+ document
+ .querySelector('input[name="showArrows"]')
+ .addEventListener("change", toggleArrows);
+ drawArrows();
+ // Default highlighting for the last event.
+ highlightArrowsForSelectedEvent();
+});
+</script>
+
+<script type='text/javascript'>
+var digitMatcher = new RegExp("[0-9]+");
+
+var querySelectorAllArray = function(selector) {
+ return Array.prototype.slice.call(
+ document.querySelectorAll(selector));
+}
+
+document.addEventListener("DOMContentLoaded", function() {
+ querySelectorAllArray(".PathNav > a").forEach(
+ function(currentValue, currentIndex) {
+ var hrefValue = currentValue.getAttribute("href");
+ currentValue.onclick = function() {
+ scrollTo(document.querySelector(hrefValue));
+ return false;
+ };
+ });
+});
+
+var findNum = function() {
+ var s = document.querySelector(".msg.selected");
+ if (!s || s.id == "EndPath") {
+ return 0;
+ }
+ var out = parseInt(digitMatcher.exec(s.id)[0]);
+ return out;
+};
+
+var classListAdd = function(el, theClass) {
+ if(!el.className.baseVal)
+ el.className += " " + theClass;
+ else
+ el.className.baseVal += " " + theClass;
+};
+
+var classListRemove = function(el, theClass) {
+ var className = (!el.className.baseVal) ?
+ el.className : el.className.baseVal;
+ className = className.replace(" " + theClass, "");
+ if(!el.className.baseVal)
+ el.className = className;
+ else
+ el.className.baseVal = className;
+};
+
+var scrollTo = function(el) {
+ querySelectorAllArray(".selected").forEach(function(s) {
+ classListRemove(s, "selected");
+ });
+ classListAdd(el, "selected");
+ window.scrollBy(0, el.getBoundingClientRect().top -
+ (window.innerHeight / 2));
+ highlightArrowsForSelectedEvent();
+};
+
+var move = function(num, up, numItems) {
+ if (num == 1 && up || num == numItems - 1 && !up) {
+ return 0;
+ } else if (num == 0 && up) {
+ return numItems - 1;
+ } else if (num == 0 && !up) {
+ return 1 % numItems;
+ }
+ return up ? num - 1 : num + 1;
+}
+
+var numToId = function(num) {
+ if (num == 0) {
+ return document.getElementById("EndPath")
+ }
+ return document.getElementById("Path" + num);
+};
+
+var navigateTo = function(up) {
+ var numItems = document.querySelectorAll(
+ ".line > .msgEvent, .line > .msgControl").length;
+ var currentSelected = findNum();
+ var newSelected = move(currentSelected, up, numItems);
+ var newEl = numToId(newSelected, numItems);
+
+ // Scroll element into center.
+ scrollTo(newEl);
+};
+
+window.addEventListener("keydown", function (event) {
+ if (event.defaultPrevented) {
+ return;
+ }
+ // key 'j'
+ if (event.keyCode == 74) {
+ navigateTo(/*up=*/false);
+ // key 'k'
+ } else if (event.keyCode == 75) {
+ navigateTo(/*up=*/true);
+ } else {
+ return;
+ }
+ event.preventDefault();
+}, true);
+</script>
+
+<script type='text/javascript'>
+
+var toggleHelp = function() {
+ var hint = document.querySelector("#tooltiphint");
+ var attributeName = "hidden";
+ if (hint.hasAttribute(attributeName)) {
+ hint.removeAttribute(attributeName);
+ } else {
+ hint.setAttribute("hidden", "true");
+ }
+};
+window.addEventListener("keydown", function (event) {
+ if (event.defaultPrevented) {
+ return;
+ }
+ if (event.key == "?") {
+ toggleHelp();
+ } else {
+ return;
+ }
+ event.preventDefault();
+});
+</script>
+
+<style type="text/css">
+ svg {
+ position:absolute;
+ top:0;
+ left:0;
+ height:100%;
+ width:100%;
+ pointer-events: none;
+ overflow: visible
+ }
+ .arrow {
+ stroke-opacity: 0.2;
+ stroke-width: 1;
+ marker-end: url(#arrowhead);
+ }
+
+ .arrow.selected {
+ stroke-opacity: 0.6;
+ stroke-width: 2;
+ marker-end: url(#arrowheadSelected);
+ }
+
+ .arrowhead {
+ orient: auto;
+ stroke: none;
+ opacity: 0.6;
+ fill: blue;
+ }
+</style>
+<svg xmlns="http://www.w3.org/2000/svg">
+ <defs>
+ <marker id="arrowheadSelected" class="arrowhead" opacity="0.6"
+ viewBox="0 0 10 10" refX="3" refY="5"
+ markerWidth="4" markerHeight="4">
+ <path d="M 0 0 L 10 5 L 0 10 z" />
+ </marker>
+ <marker id="arrowhead" class="arrowhead" opacity="0.2"
+ viewBox="0 0 10 10" refX="3" refY="5"
+ markerWidth="4" markerHeight="4">
+ <path d="M 0 0 L 10 5 L 0 10 z" />
+ </marker>
+ </defs>
+ <g id="arrows" fill="none" stroke="blue" visibility="hidden">
+
+ </g>
+</svg>
+<script type='text/javascript'>
+const arrowIndices = [ 0,0 ]
+</script>
+<table class="code" data-fileid="1">
+<tr class="codeline" data-linenumber="1"><td class="num" id="LN1">1</td><td class="line"><span class='comment'>/*</span></td></tr>
+<tr class="codeline" data-linenumber="2"><td class="num" id="LN2">2</td><td class="line"> <span class='comment'>* Copyright (C) 2001 Nikos Mavroyanopoulos</span></td></tr>
+<tr class="codeline" data-linenumber="3"><td class="num" id="LN3">3</td><td class="line"> <span class='comment'>* Copyright (C) 2012-2021 MATE Developers</span></td></tr>
+<tr class="codeline" data-linenumber="4"><td class="num" id="LN4">4</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="5"><td class="num" id="LN5">5</td><td class="line"> <span class='comment'>* This library is free software; you can redistribute it and/or modify it</span></td></tr>
+<tr class="codeline" data-linenumber="6"><td class="num" id="LN6">6</td><td class="line"> <span class='comment'>* under the terms of the GNU Library General Public License as published</span></td></tr>
+<tr class="codeline" data-linenumber="7"><td class="num" id="LN7">7</td><td class="line"> <span class='comment'>* by the Free Software Foundation; either version 3 of the License, or</span></td></tr>
+<tr class="codeline" data-linenumber="8"><td class="num" id="LN8">8</td><td class="line"> <span class='comment'>* (at your option) any later version.</span></td></tr>
+<tr class="codeline" data-linenumber="9"><td class="num" id="LN9">9</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="10"><td class="num" id="LN10">10</td><td class="line"> <span class='comment'>* This library is distributed in the hope that it will be useful,</span></td></tr>
+<tr class="codeline" data-linenumber="11"><td class="num" id="LN11">11</td><td class="line"> <span class='comment'>* but WITHOUT ANY WARRANTY; without even the implied warranty of</span></td></tr>
+<tr class="codeline" data-linenumber="12"><td class="num" id="LN12">12</td><td class="line"> <span class='comment'>* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</span></td></tr>
+<tr class="codeline" data-linenumber="13"><td class="num" id="LN13">13</td><td class="line"> <span class='comment'>* Library General Public License for more details.</span></td></tr>
+<tr class="codeline" data-linenumber="14"><td class="num" id="LN14">14</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="15"><td class="num" id="LN15">15</td><td class="line"> <span class='comment'>* You should have received a copy of the GNU Library General Public</span></td></tr>
+<tr class="codeline" data-linenumber="16"><td class="num" id="LN16">16</td><td class="line"> <span class='comment'>* License along with this library; if not, write to the</span></td></tr>
+<tr class="codeline" data-linenumber="17"><td class="num" id="LN17">17</td><td class="line"> <span class='comment'>* Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,</span></td></tr>
+<tr class="codeline" data-linenumber="18"><td class="num" id="LN18">18</td><td class="line"> <span class='comment'>* Boston, MA 02110-1301, USA.</span></td></tr>
+<tr class="codeline" data-linenumber="19"><td class="num" id="LN19">19</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="20"><td class="num" id="LN20">20</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="21"><td class="num" id="LN21">21</td><td class="line"><span class='comment'>/*</span></td></tr>
+<tr class="codeline" data-linenumber="22"><td class="num" id="LN22">22</td><td class="line"> <span class='comment'>* The algorithm is due to Ron Rivest. This code is based on code</span></td></tr>
+<tr class="codeline" data-linenumber="23"><td class="num" id="LN23">23</td><td class="line"> <span class='comment'>* written by Colin Plumb in 1993.</span></td></tr>
+<tr class="codeline" data-linenumber="24"><td class="num" id="LN24">24</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="25"><td class="num" id="LN25">25</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="26"><td class="num" id="LN26">26</td><td class="line"><span class='directive'>#include &lt;string.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="27"><td class="num" id="LN27">27</td><td class="line"><span class='directive'>#include &lt;stdlib.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="28"><td class="num" id="LN28">28</td><td class="line"><span class='directive'>#include "config.h"</span></td></tr>
+<tr class="codeline" data-linenumber="29"><td class="num" id="LN29">29</td><td class="line"><span class='directive'>#include "skey.h"</span></td></tr>
+<tr class="codeline" data-linenumber="30"><td class="num" id="LN30">30</td><td class="line"><span class='directive'>#include "skeyutil.h"</span></td></tr>
+<tr class="codeline" data-linenumber="31"><td class="num" id="LN31">31</td><td class="line"><span class='directive'>#include "md4.h"</span></td></tr>
+<tr class="codeline" data-linenumber="32"><td class="num" id="LN32">32</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="33"><td class="num" id="LN33">33</td><td class="line"><span class='directive'>#ifndef WORDS_BIGENDIAN</span></td></tr>
+<tr class="codeline" data-linenumber="34"><td class="num" id="LN34">34</td><td class="line"><span class='directive'>#define byteReverse(buf, len) /* Nothing */</span></td></tr>
+<tr class="codeline" data-linenumber="35"><td class="num" id="LN35">35</td><td class="line"><span class='directive'>#else</span></td></tr>
+<tr class="codeline" data-linenumber="36"><td class="num" id="LN36">36</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> byteReverse(<span class='keyword'>unsigned</span> <span class='keyword'>char</span> *buf, <span class='keyword'>unsigned</span> longs);</td></tr>
+<tr class="codeline" data-linenumber="37"><td class="num" id="LN37">37</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="38"><td class="num" id="LN38">38</td><td class="line"><span class='comment'>/*</span></td></tr>
+<tr class="codeline" data-linenumber="39"><td class="num" id="LN39">39</td><td class="line"> <span class='comment'>* Note: this code is harmless on little-endian machines.</span></td></tr>
+<tr class="codeline" data-linenumber="40"><td class="num" id="LN40">40</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="41"><td class="num" id="LN41">41</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> byteReverse(<span class='keyword'>unsigned</span> <span class='keyword'>char</span> *buf, <span class='keyword'>unsigned</span> longs)</td></tr>
+<tr class="codeline" data-linenumber="42"><td class="num" id="LN42">42</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="43"><td class="num" id="LN43">43</td><td class="line"> guint32 t;</td></tr>
+<tr class="codeline" data-linenumber="44"><td class="num" id="LN44">44</td><td class="line"> <span class='keyword'>do</span></td></tr>
+<tr class="codeline" data-linenumber="45"><td class="num" id="LN45">45</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="46"><td class="num" id="LN46">46</td><td class="line"> t = (guint32) ((<span class='keyword'>unsigned</span>) buf[3] &lt;&lt; 8 | buf[2]) &lt;&lt; 16 |</td></tr>
+<tr class="codeline" data-linenumber="47"><td class="num" id="LN47">47</td><td class="line"> ((<span class='keyword'>unsigned</span>) buf[1] &lt;&lt; 8 | buf[0]);</td></tr>
+<tr class="codeline" data-linenumber="48"><td class="num" id="LN48">48</td><td class="line"> *(guint32 *) buf = t;</td></tr>
+<tr class="codeline" data-linenumber="49"><td class="num" id="LN49">49</td><td class="line"> buf += 4;</td></tr>
+<tr class="codeline" data-linenumber="50"><td class="num" id="LN50">50</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="51"><td class="num" id="LN51">51</td><td class="line"> <span class='keyword'>while</span> (--longs);</td></tr>
+<tr class="codeline" data-linenumber="52"><td class="num" id="LN52">52</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="53"><td class="num" id="LN53">53</td><td class="line"><span class='directive'>#endif</span></td></tr>
+<tr class="codeline" data-linenumber="54"><td class="num" id="LN54">54</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="55"><td class="num" id="LN55">55</td><td class="line"><span class='directive'>#define <span class='macro'>rotl32(x,n)<span class='macro_popup'>(((x) &lt;&lt; ((guint32)(n))) | ((x) &gt;&gt; (32 - (guint32<br>)(n))))</span></span> (((x) &lt;&lt; ((guint32)(n))) | ((x) &gt;&gt; (32 - (guint32)(n))))</span></td></tr>
+<tr class="codeline" data-linenumber="56"><td class="num" id="LN56">56</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="57"><td class="num" id="LN57">57</td><td class="line"><span class='comment'>/*</span></td></tr>
+<tr class="codeline" data-linenumber="58"><td class="num" id="LN58">58</td><td class="line"> <span class='comment'>* Start MD4 accumulation. Set bit count to 0 and buffer to mysterious</span></td></tr>
+<tr class="codeline" data-linenumber="59"><td class="num" id="LN59">59</td><td class="line"> <span class='comment'>* initialization constants.</span></td></tr>
+<tr class="codeline" data-linenumber="60"><td class="num" id="LN60">60</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="61"><td class="num" id="LN61">61</td><td class="line"><span class='keyword'>void</span> MD4Init(MD4_CTX *ctx)</td></tr>
+<tr class="codeline" data-linenumber="62"><td class="num" id="LN62">62</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="63"><td class="num" id="LN63">63</td><td class="line"> ctx-&gt;buf[0] = 0x67452301;</td></tr>
+<tr class="codeline" data-linenumber="64"><td class="num" id="LN64">64</td><td class="line"> ctx-&gt;buf[1] = 0xefcdab89;</td></tr>
+<tr class="codeline" data-linenumber="65"><td class="num" id="LN65">65</td><td class="line"> ctx-&gt;buf[2] = 0x98badcfe;</td></tr>
+<tr class="codeline" data-linenumber="66"><td class="num" id="LN66">66</td><td class="line"> ctx-&gt;buf[3] = 0x10325476;</td></tr>
+<tr class="codeline" data-linenumber="67"><td class="num" id="LN67">67</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="68"><td class="num" id="LN68">68</td><td class="line"> ctx-&gt;bits[0] = 0;</td></tr>
+<tr class="codeline" data-linenumber="69"><td class="num" id="LN69">69</td><td class="line"> ctx-&gt;bits[1] = 0;</td></tr>
+<tr class="codeline" data-linenumber="70"><td class="num" id="LN70">70</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="71"><td class="num" id="LN71">71</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="72"><td class="num" id="LN72">72</td><td class="line"><span class='comment'>/*</span></td></tr>
+<tr class="codeline" data-linenumber="73"><td class="num" id="LN73">73</td><td class="line"> <span class='comment'>* Update context to reflect the concatenation of another buffer full</span></td></tr>
+<tr class="codeline" data-linenumber="74"><td class="num" id="LN74">74</td><td class="line"> <span class='comment'>* of bytes.</span></td></tr>
+<tr class="codeline" data-linenumber="75"><td class="num" id="LN75">75</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="76"><td class="num" id="LN76">76</td><td class="line"><span class='keyword'>void</span> MD4Update(MD4_CTX *ctx, <span class='keyword'>unsigned</span> <span class='keyword'>char</span> <span class='keyword'>const</span> *buf,</td></tr>
+<tr class="codeline" data-linenumber="77"><td class="num" id="LN77">77</td><td class="line"> <span class='keyword'>unsigned</span> len)</td></tr>
+<tr class="codeline" data-linenumber="78"><td class="num" id="LN78">78</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="79"><td class="num" id="LN79">79</td><td class="line"> <span class='keyword'>register</span> guint32 t;</td></tr>
+<tr class="codeline" data-linenumber="80"><td class="num" id="LN80">80</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="81"><td class="num" id="LN81">81</td><td class="line"> <span class='comment'>/* Update bitcount */</span></td></tr>
+<tr class="codeline" data-linenumber="82"><td class="num" id="LN82">82</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="83"><td class="num" id="LN83">83</td><td class="line"> t = ctx-&gt;bits[0];</td></tr>
+<tr class="codeline" data-linenumber="84"><td class="num" id="LN84">84</td><td class="line"> <span class='keyword'>if</span> ((ctx-&gt;bits[0] = t + ((guint32) len &lt;&lt; 3)) &lt; t)</td></tr>
+<tr class="codeline" data-linenumber="85"><td class="num" id="LN85">85</td><td class="line"> ctx-&gt;bits[1]++; <span class='comment'>/* Carry from low to high */</span></td></tr>
+<tr class="codeline" data-linenumber="86"><td class="num" id="LN86">86</td><td class="line"> ctx-&gt;bits[1] += len &gt;&gt; 29;</td></tr>
+<tr class="codeline" data-linenumber="87"><td class="num" id="LN87">87</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="88"><td class="num" id="LN88">88</td><td class="line"> t = (t &gt;&gt; 3) &amp; 0x3f; <span class='comment'>/* Bytes already in shsInfo-&gt;data */</span></td></tr>
+<tr class="codeline" data-linenumber="89"><td class="num" id="LN89">89</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="90"><td class="num" id="LN90">90</td><td class="line"> <span class='comment'>/* Handle any leading odd-sized chunks */</span></td></tr>
+<tr class="codeline" data-linenumber="91"><td class="num" id="LN91">91</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="92"><td class="num" id="LN92">92</td><td class="line"> <span class='keyword'>if</span> (t)</td></tr>
+<tr class="codeline" data-linenumber="93"><td class="num" id="LN93">93</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="94"><td class="num" id="LN94">94</td><td class="line"> <span class='keyword'>unsigned</span> <span class='keyword'>char</span> *p = (<span class='keyword'>unsigned</span> <span class='keyword'>char</span> *) ctx-&gt;in + t;</td></tr>
+<tr class="codeline" data-linenumber="95"><td class="num" id="LN95">95</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="96"><td class="num" id="LN96">96</td><td class="line"> t = 64 - t;</td></tr>
+<tr class="codeline" data-linenumber="97"><td class="num" id="LN97">97</td><td class="line"> <span class='keyword'>if</span> (len &lt; t)</td></tr>
+<tr class="codeline" data-linenumber="98"><td class="num" id="LN98">98</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="99"><td class="num" id="LN99">99</td><td class="line"> memcpy(p, buf, len);</td></tr>
+<tr class="codeline" data-linenumber="100"><td class="num" id="LN100">100</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="101"><td class="num" id="LN101">101</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="102"><td class="num" id="LN102">102</td><td class="line"> memcpy(p, buf, t);</td></tr>
+<tr class="codeline" data-linenumber="103"><td class="num" id="LN103">103</td><td class="line"> byteReverse(ctx-&gt;in, 16);</td></tr>
+<tr class="codeline" data-linenumber="104"><td class="num" id="LN104">104</td><td class="line"> MD4Transform(ctx-&gt;buf, (guint32 *) ctx-&gt;in);</td></tr>
+<tr class="codeline" data-linenumber="105"><td class="num" id="LN105">105</td><td class="line"> buf += t;</td></tr>
+<tr class="codeline" data-linenumber="106"><td class="num" id="LN106">106</td><td class="line"> len -= t;</td></tr>
+<tr class="codeline" data-linenumber="107"><td class="num" id="LN107">107</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="108"><td class="num" id="LN108">108</td><td class="line"> <span class='comment'>/* Process data in 64-byte chunks */</span></td></tr>
+<tr class="codeline" data-linenumber="109"><td class="num" id="LN109">109</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="110"><td class="num" id="LN110">110</td><td class="line"> <span class='keyword'>while</span> (len &gt;= 64)</td></tr>
+<tr class="codeline" data-linenumber="111"><td class="num" id="LN111">111</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="112"><td class="num" id="LN112">112</td><td class="line"> memcpy(ctx-&gt;in, buf, 64);</td></tr>
+<tr class="codeline" data-linenumber="113"><td class="num" id="LN113">113</td><td class="line"> byteReverse(ctx-&gt;in, 16);</td></tr>
+<tr class="codeline" data-linenumber="114"><td class="num" id="LN114">114</td><td class="line"> MD4Transform(ctx-&gt;buf, (guint32 *) ctx-&gt;in);</td></tr>
+<tr class="codeline" data-linenumber="115"><td class="num" id="LN115">115</td><td class="line"> buf += 64;</td></tr>
+<tr class="codeline" data-linenumber="116"><td class="num" id="LN116">116</td><td class="line"> len -= 64;</td></tr>
+<tr class="codeline" data-linenumber="117"><td class="num" id="LN117">117</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="118"><td class="num" id="LN118">118</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="119"><td class="num" id="LN119">119</td><td class="line"> <span class='comment'>/* Handle any remaining bytes of data. */</span></td></tr>
+<tr class="codeline" data-linenumber="120"><td class="num" id="LN120">120</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="121"><td class="num" id="LN121">121</td><td class="line"> memcpy(ctx-&gt;in, buf, len);</td></tr>
+<tr class="codeline" data-linenumber="122"><td class="num" id="LN122">122</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="123"><td class="num" id="LN123">123</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="124"><td class="num" id="LN124">124</td><td class="line"><span class='comment'>/*</span></td></tr>
+<tr class="codeline" data-linenumber="125"><td class="num" id="LN125">125</td><td class="line"> <span class='comment'>* Final wrapup - pad to 64-byte boundary with the bit pattern</span></td></tr>
+<tr class="codeline" data-linenumber="126"><td class="num" id="LN126">126</td><td class="line"> <span class='comment'>* 1 0* (64-bit count of bits processed, MSB-first)</span></td></tr>
+<tr class="codeline" data-linenumber="127"><td class="num" id="LN127">127</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="128"><td class="num" id="LN128">128</td><td class="line"><span class='keyword'>void</span> MD4Final(<span class='keyword'>unsigned</span> <span class='keyword'>char</span>* digest, MD4_CTX *ctx)</td></tr>
+<tr class="codeline" data-linenumber="129"><td class="num" id="LN129">129</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="130"><td class="num" id="LN130">130</td><td class="line"> <span class='keyword'>unsigned</span> <span class='keyword'>int</span> count;</td></tr>
+<tr class="codeline" data-linenumber="131"><td class="num" id="LN131">131</td><td class="line"> <span class='keyword'>unsigned</span> <span class='keyword'>char</span> *p;</td></tr>
+<tr class="codeline" data-linenumber="132"><td class="num" id="LN132">132</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="133"><td class="num" id="LN133">133</td><td class="line"> <span class='comment'>/* Compute number of bytes mod 64 */</span></td></tr>
+<tr class="codeline" data-linenumber="134"><td class="num" id="LN134">134</td><td class="line"> count = (ctx-&gt;bits[0] &gt;&gt; 3) &amp; 0x3F;</td></tr>
+<tr class="codeline" data-linenumber="135"><td class="num" id="LN135">135</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="136"><td class="num" id="LN136">136</td><td class="line"> <span class='comment'>/* Set the first char of padding to 0x80. This is safe since there is</span></td></tr>
+<tr class="codeline" data-linenumber="137"><td class="num" id="LN137">137</td><td class="line"> <span class='comment'>always at least one byte free */</span></td></tr>
+<tr class="codeline" data-linenumber="138"><td class="num" id="LN138">138</td><td class="line"> p = ctx-&gt;in + count;</td></tr>
+<tr class="codeline" data-linenumber="139"><td class="num" id="LN139">139</td><td class="line"> *p++ = 0x80;</td></tr>
+<tr class="codeline" data-linenumber="140"><td class="num" id="LN140">140</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="141"><td class="num" id="LN141">141</td><td class="line"> <span class='comment'>/* Bytes of padding needed to make 64 bytes */</span></td></tr>
+<tr class="codeline" data-linenumber="142"><td class="num" id="LN142">142</td><td class="line"> count = 64 - 1 - count;</td></tr>
+<tr class="codeline" data-linenumber="143"><td class="num" id="LN143">143</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="144"><td class="num" id="LN144">144</td><td class="line"> <span class='comment'>/* Pad out to 56 mod 64 */</span></td></tr>
+<tr class="codeline" data-linenumber="145"><td class="num" id="LN145">145</td><td class="line"> <span class='keyword'>if</span> (count &lt; 8)</td></tr>
+<tr class="codeline" data-linenumber="146"><td class="num" id="LN146">146</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="147"><td class="num" id="LN147">147</td><td class="line"> <span class='comment'>/* Two lots of padding: Pad the first block to 64 bytes */</span></td></tr>
+<tr class="codeline" data-linenumber="148"><td class="num" id="LN148">148</td><td class="line"> memset(p, 0, count);</td></tr>
+<tr class="codeline" data-linenumber="149"><td class="num" id="LN149">149</td><td class="line"> byteReverse(ctx-&gt;in, 16);</td></tr>
+<tr class="codeline" data-linenumber="150"><td class="num" id="LN150">150</td><td class="line"> MD4Transform(ctx-&gt;buf, (guint32 *) ctx-&gt;in);</td></tr>
+<tr class="codeline" data-linenumber="151"><td class="num" id="LN151">151</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="152"><td class="num" id="LN152">152</td><td class="line"> <span class='comment'>/* Now fill the next block with 56 bytes */</span></td></tr>
+<tr class="codeline" data-linenumber="153"><td class="num" id="LN153">153</td><td class="line"> memset(ctx-&gt;in, 0, 56);</td></tr>
+<tr class="codeline" data-linenumber="154"><td class="num" id="LN154">154</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="155"><td class="num" id="LN155">155</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="156"><td class="num" id="LN156">156</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="157"><td class="num" id="LN157">157</td><td class="line"> <span class='comment'>/* Pad block to 56 bytes */</span></td></tr>
+<tr class="codeline" data-linenumber="158"><td class="num" id="LN158">158</td><td class="line"> memset(p, 0, count - 8);</td></tr>
+<tr class="codeline" data-linenumber="159"><td class="num" id="LN159">159</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="160"><td class="num" id="LN160">160</td><td class="line"> byteReverse(ctx-&gt;in, 14);</td></tr>
+<tr class="codeline" data-linenumber="161"><td class="num" id="LN161">161</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="162"><td class="num" id="LN162">162</td><td class="line"> <span class='comment'>/* Append length in bits and transform */</span></td></tr>
+<tr class="codeline" data-linenumber="163"><td class="num" id="LN163">163</td><td class="line"> ((guint32 *) ctx-&gt;in)[14] = ctx-&gt;bits[0];</td></tr>
+<tr class="codeline" data-linenumber="164"><td class="num" id="LN164">164</td><td class="line"> ((guint32 *) ctx-&gt;in)[15] = ctx-&gt;bits[1];</td></tr>
+<tr class="codeline" data-linenumber="165"><td class="num" id="LN165">165</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="166"><td class="num" id="LN166">166</td><td class="line"> MD4Transform(ctx-&gt;buf, (guint32 *) ctx-&gt;in);</td></tr>
+<tr class="codeline" data-linenumber="167"><td class="num" id="LN167">167</td><td class="line"> byteReverse((<span class='keyword'>unsigned</span> <span class='keyword'>char</span> *) ctx-&gt;buf, 4);</td></tr>
+<tr class="codeline" data-linenumber="168"><td class="num" id="LN168">168</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="169"><td class="num" id="LN169">169</td><td class="line"> <span class='keyword'>if</span> (digest!=<span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="170"><td class="num" id="LN170">170</td><td class="line"> memcpy(digest, ctx-&gt;buf, 16);</td></tr>
+<tr class="codeline" data-linenumber="171"><td class="num" id="LN171">171</td><td class="line"> memset(ctx, 0, <span class='keyword'>sizeof</span>(*ctx)); <span class='comment'>/* In case it's sensitive */</span></td></tr>
+<tr class="codeline" data-linenumber="172"><td class="num" id="LN172">172</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="173"><td class="num" id="LN173">173</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="174"><td class="num" id="LN174">174</td><td class="line"><span class='comment'>/* The three core functions */</span></td></tr>
+<tr class="codeline" data-linenumber="175"><td class="num" id="LN175">175</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="176"><td class="num" id="LN176">176</td><td class="line"><span class='directive'>#define <span class='macro'>F(x, y, z)<span class='macro_popup'>(((x) &amp; (y)) | ((~x) &amp; (z)))</span></span> (((x) &amp; (y)) | ((~x) &amp; (z)))</span></td></tr>
+<tr class="codeline" data-linenumber="177"><td class="num" id="LN177">177</td><td class="line"><span class='directive'>#define <span class='macro'>G(x, y, z)<span class='macro_popup'>(((x) &amp; (y)) | ((x) &amp; (z)) | ((y) &amp; (z)))</span></span> (((x) &amp; (y)) | ((x) &amp; (z)) | ((y) &amp; (z)))</span></td></tr>
+<tr class="codeline" data-linenumber="178"><td class="num" id="LN178">178</td><td class="line"><span class='directive'>#define <span class='macro'>H(x, y, z)<span class='macro_popup'>((x) ^ (y) ^ (z))</span></span> ((x) ^ (y) ^ (z))</span></td></tr>
+<tr class="codeline" data-linenumber="179"><td class="num" id="LN179">179</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="180"><td class="num" id="LN180">180</td><td class="line"><span class='directive'>#define <span class='macro'>FF(a, b, c, d, x, s)<span class='macro_popup'>{ (a) += ((((b)) &amp; ((c))) | ((~(b)) &amp; ((d)))) + (x); (<br>a) = ((((a)) &lt;&lt; ((guint32)((s)))) | (((a)) &gt;&gt; (32<br> - (guint32)((s))))); }</span></span> { \</span></td></tr>
+<tr class="codeline" data-linenumber="181"><td class="num" id="LN181">181</td><td class="line"> <span class='directive'>(a) += <span class='macro'>F ((b), (c), (d))<span class='macro_popup'>((((b)) &amp; ((c))) | ((~(b)) &amp; ((d))))</span></span> + (x); \</span></td></tr>
+<tr class="codeline" data-linenumber="182"><td class="num" id="LN182">182</td><td class="line"> <span class='directive'>(a) = <span class='macro'>rotl32 ((a), (s))<span class='macro_popup'>((((a)) &lt;&lt; ((guint32)((s)))) | (((a)) &gt;&gt; (32 - (guint32<br>)((s)))))</span></span>; \</span></td></tr>
+<tr class="codeline" data-linenumber="183"><td class="num" id="LN183">183</td><td class="line"> <span class='directive'>}</span></td></tr>
+<tr class="codeline" data-linenumber="184"><td class="num" id="LN184">184</td><td class="line"><span class='directive'>#define <span class='macro'>GG(a, b, c, d, x, s)<span class='macro_popup'>{ (a) += ((((b)) &amp; ((c))) | (((b)) &amp; ((d))) | (((c)) &amp;<br> ((d)))) + (x) + (guint32)0x5a827999; (a) = ((((a)) &lt;&lt; (<br>(guint32)((s)))) | (((a)) &gt;&gt; (32 - (guint32)((s))))); }</span></span> { \</span></td></tr>
+<tr class="codeline" data-linenumber="185"><td class="num" id="LN185">185</td><td class="line"> <span class='directive'>(a) += <span class='macro'>G ((b), (c), (d))<span class='macro_popup'>((((b)) &amp; ((c))) | (((b)) &amp; ((d))) | (((c)) &amp; ((d<br>))))</span></span> + (x) + (guint32)0x5a827999; \</span></td></tr>
+<tr class="codeline" data-linenumber="186"><td class="num" id="LN186">186</td><td class="line"> <span class='directive'>(a) = <span class='macro'>rotl32 ((a), (s))<span class='macro_popup'>((((a)) &lt;&lt; ((guint32)((s)))) | (((a)) &gt;&gt; (32 - (guint32<br>)((s)))))</span></span>; \</span></td></tr>
+<tr class="codeline" data-linenumber="187"><td class="num" id="LN187">187</td><td class="line"> <span class='directive'>}</span></td></tr>
+<tr class="codeline" data-linenumber="188"><td class="num" id="LN188">188</td><td class="line"><span class='directive'>#define <span class='macro'>HH(a, b, c, d, x, s)<span class='macro_popup'>{ (a) += (((b)) ^ ((c)) ^ ((d))) + (x) + (guint32)0x6ed9eba1;<br> (a) = ((((a)) &lt;&lt; ((guint32)((s)))) | (((a)) &gt;&gt; (<br>32 - (guint32)((s))))); }</span></span> { \</span></td></tr>
+<tr class="codeline" data-linenumber="189"><td class="num" id="LN189">189</td><td class="line"> <span class='directive'>(a) += <span class='macro'>H ((b), (c), (d))<span class='macro_popup'>(((b)) ^ ((c)) ^ ((d)))</span></span> + (x) + (guint32)0x6ed9eba1; \</span></td></tr>
+<tr class="codeline" data-linenumber="190"><td class="num" id="LN190">190</td><td class="line"> <span class='directive'>(a) = <span class='macro'>rotl32 ((a), (s))<span class='macro_popup'>((((a)) &lt;&lt; ((guint32)((s)))) | (((a)) &gt;&gt; (32 - (guint32<br>)((s)))))</span></span>; \</span></td></tr>
+<tr class="codeline" data-linenumber="191"><td class="num" id="LN191">191</td><td class="line"> <span class='directive'>}</span></td></tr>
+<tr class="codeline" data-linenumber="192"><td class="num" id="LN192">192</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="193"><td class="num" id="LN193">193</td><td class="line"><span class='comment'>/*</span></td></tr>
+<tr class="codeline" data-linenumber="194"><td class="num" id="LN194">194</td><td class="line"> <span class='comment'>* The core of the MD4 algorithm</span></td></tr>
+<tr class="codeline" data-linenumber="195"><td class="num" id="LN195">195</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="196"><td class="num" id="LN196">196</td><td class="line"><span class='keyword'>void</span> MD4Transform(guint32 buf[4], guint32 <span class='keyword'>const</span> in[16])</td></tr>
+<tr class="codeline" data-linenumber="197"><td class="num" id="LN197">197</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="198"><td class="num" id="LN198">198</td><td class="line"> <span class='keyword'>register</span> guint32 a, b, c, d;</td></tr>
+<tr class="codeline" data-linenumber="199"><td class="num" id="LN199">199</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="200"><td class="num" id="LN200">200</td><td class="line"> a = buf[0];</td></tr>
+<tr class="codeline" data-linenumber="201"><td class="num" id="LN201">201</td><td class="line"> b = buf[1];</td></tr>
+<tr class="codeline" data-linenumber="202"><td class="num" id="LN202">202</td><td class="line"> c = buf[2];</td></tr>
+<tr class="codeline" data-linenumber="203"><td class="num" id="LN203">203</td><td class="line"> d = buf[3];</td></tr>
+<tr class="codeline" data-linenumber="204"><td class="num" id="LN204">204</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="205"><td class="num" id="LN205">205</td><td class="line"> <span class='macro'>FF(a, b, c, d, in[0], 3)<span class='macro_popup'>{ (a) += ((((b)) &amp; ((c))) | ((~(b)) &amp; ((d)))) + (in[0<br>]); (a) = ((((a)) &lt;&lt; ((guint32)((3)))) | (((a)) &gt;&gt;<br> (32 - (guint32)((3))))); }</span></span>; <span class='comment'>/* 1 */</span></td></tr>
+<tr class="codeline" data-linenumber="206"><td class="num" id="LN206">206</td><td class="line"> <span class='macro'>FF(d, a, b, c, in[1], 7)<span class='macro_popup'>{ (d) += ((((a)) &amp; ((b))) | ((~(a)) &amp; ((c)))) + (in[1<br>]); (d) = ((((d)) &lt;&lt; ((guint32)((7)))) | (((d)) &gt;&gt;<br> (32 - (guint32)((7))))); }</span></span>; <span class='comment'>/* 2 */</span></td></tr>
+<tr class="codeline" data-linenumber="207"><td class="num" id="LN207">207</td><td class="line"> <span class='macro'>FF(c, d, a, b, in[2], 11)<span class='macro_popup'>{ (c) += ((((d)) &amp; ((a))) | ((~(d)) &amp; ((b)))) + (in[2<br>]); (c) = ((((c)) &lt;&lt; ((guint32)((11)))) | (((c)) &gt;&gt;<br> (32 - (guint32)((11))))); }</span></span>; <span class='comment'>/* 3 */</span></td></tr>
+<tr class="codeline" data-linenumber="208"><td class="num" id="LN208">208</td><td class="line"> <span class='macro'>FF(b, c, d, a, in[3], 19)<span class='macro_popup'>{ (b) += ((((c)) &amp; ((d))) | ((~(c)) &amp; ((a)))) + (in[3<br>]); (b) = ((((b)) &lt;&lt; ((guint32)((19)))) | (((b)) &gt;&gt;<br> (32 - (guint32)((19))))); }</span></span>; <span class='comment'>/* 4 */</span></td></tr>
+<tr class="codeline" data-linenumber="209"><td class="num" id="LN209">209</td><td class="line"> <span class='macro'>FF(a, b, c, d, in[4], 3)<span class='macro_popup'>{ (a) += ((((b)) &amp; ((c))) | ((~(b)) &amp; ((d)))) + (in[4<br>]); (a) = ((((a)) &lt;&lt; ((guint32)((3)))) | (((a)) &gt;&gt;<br> (32 - (guint32)((3))))); }</span></span>; <span class='comment'>/* 5 */</span></td></tr>
+<tr class="codeline" data-linenumber="210"><td class="num" id="LN210">210</td><td class="line"> <span class='macro'>FF(d, a, b, c, in[5], 7)<span class='macro_popup'>{ (d) += ((((a)) &amp; ((b))) | ((~(a)) &amp; ((c)))) + (in[5<br>]); (d) = ((((d)) &lt;&lt; ((guint32)((7)))) | (((d)) &gt;&gt;<br> (32 - (guint32)((7))))); }</span></span>; <span class='comment'>/* 6 */</span></td></tr>
+<tr class="codeline" data-linenumber="211"><td class="num" id="LN211">211</td><td class="line"> <span class='macro'>FF(c, d, a, b, in[6], 11)<span class='macro_popup'>{ (c) += ((((d)) &amp; ((a))) | ((~(d)) &amp; ((b)))) + (in[6<br>]); (c) = ((((c)) &lt;&lt; ((guint32)((11)))) | (((c)) &gt;&gt;<br> (32 - (guint32)((11))))); }</span></span>; <span class='comment'>/* 7 */</span></td></tr>
+<tr class="codeline" data-linenumber="212"><td class="num" id="LN212">212</td><td class="line"> <span class='macro'>FF(b, c, d, a, in[7], 19)<span class='macro_popup'>{ (b) += ((((c)) &amp; ((d))) | ((~(c)) &amp; ((a)))) + (in[7<br>]); (b) = ((((b)) &lt;&lt; ((guint32)((19)))) | (((b)) &gt;&gt;<br> (32 - (guint32)((19))))); }</span></span>; <span class='comment'>/* 8 */</span></td></tr>
+<tr class="codeline" data-linenumber="213"><td class="num" id="LN213">213</td><td class="line"> <span class='macro'>FF(a, b, c, d, in[8], 3)<span class='macro_popup'>{ (a) += ((((b)) &amp; ((c))) | ((~(b)) &amp; ((d)))) + (in[8<br>]); (a) = ((((a)) &lt;&lt; ((guint32)((3)))) | (((a)) &gt;&gt;<br> (32 - (guint32)((3))))); }</span></span>; <span class='comment'>/* 9 */</span></td></tr>
+<tr class="codeline" data-linenumber="214"><td class="num" id="LN214">214</td><td class="line"> <span class='macro'>FF(d, a, b, c, in[9], 7)<span class='macro_popup'>{ (d) += ((((a)) &amp; ((b))) | ((~(a)) &amp; ((c)))) + (in[9<br>]); (d) = ((((d)) &lt;&lt; ((guint32)((7)))) | (((d)) &gt;&gt;<br> (32 - (guint32)((7))))); }</span></span>; <span class='comment'>/* 10 */</span></td></tr>
+<tr class="codeline" data-linenumber="215"><td class="num" id="LN215">215</td><td class="line"> <span class='macro'>FF(c, d, a, b, in[10], 11)<span class='macro_popup'>{ (c) += ((((d)) &amp; ((a))) | ((~(d)) &amp; ((b)))) + (in[10<br>]); (c) = ((((c)) &lt;&lt; ((guint32)((11)))) | (((c)) &gt;&gt;<br> (32 - (guint32)((11))))); }</span></span>; <span class='comment'>/* 11 */</span></td></tr>
+<tr class="codeline" data-linenumber="216"><td class="num" id="LN216">216</td><td class="line"> <span class='macro'>FF(b, c, d, a, in[11], 19)<span class='macro_popup'>{ (b) += ((((c)) &amp; ((d))) | ((~(c)) &amp; ((a)))) + (in[11<br>]); (b) = ((((b)) &lt;&lt; ((guint32)((19)))) | (((b)) &gt;&gt;<br> (32 - (guint32)((19))))); }</span></span>; <span class='comment'>/* 12 */</span></td></tr>
+<tr class="codeline" data-linenumber="217"><td class="num" id="LN217">217</td><td class="line"> <span class='macro'>FF(a, b, c, d, in[12], 3)<span class='macro_popup'>{ (a) += ((((b)) &amp; ((c))) | ((~(b)) &amp; ((d)))) + (in[12<br>]); (a) = ((((a)) &lt;&lt; ((guint32)((3)))) | (((a)) &gt;&gt;<br> (32 - (guint32)((3))))); }</span></span>; <span class='comment'>/* 13 */</span></td></tr>
+<tr class="codeline" data-linenumber="218"><td class="num" id="LN218">218</td><td class="line"> <span class='macro'>FF(d, a, b, c, in[13], 7)<span class='macro_popup'>{ (d) += ((((a)) &amp; ((b))) | ((~(a)) &amp; ((c)))) + (in[13<br>]); (d) = ((((d)) &lt;&lt; ((guint32)((7)))) | (((d)) &gt;&gt;<br> (32 - (guint32)((7))))); }</span></span>; <span class='comment'>/* 14 */</span></td></tr>
+<tr class="codeline" data-linenumber="219"><td class="num" id="LN219">219</td><td class="line"> <span class='macro'>FF(c, d, a, b, in[14], 11)<span class='macro_popup'>{ (c) += ((((d)) &amp; ((a))) | ((~(d)) &amp; ((b)))) + (in[14<br>]); (c) = ((((c)) &lt;&lt; ((guint32)((11)))) | (((c)) &gt;&gt;<br> (32 - (guint32)((11))))); }</span></span>; <span class='comment'>/* 15 */</span></td></tr>
+<tr class="codeline" data-linenumber="220"><td class="num" id="LN220">220</td><td class="line"> <span class='macro'>FF(b, c, d, a, in[15], 19)<span class='macro_popup'>{ (b) += ((((c)) &amp; ((d))) | ((~(c)) &amp; ((a)))) + (in[15<br>]); (b) = ((((b)) &lt;&lt; ((guint32)((19)))) | (((b)) &gt;&gt;<br> (32 - (guint32)((19))))); }</span></span>; <span class='comment'>/* 16 */</span></td></tr>
+<tr class="codeline" data-linenumber="221"><td class="num" id="LN221">221</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="222"><td class="num" id="LN222">222</td><td class="line"> <span class='macro'>GG(a, b, c, d, in[0], 3)<span class='macro_popup'>{ (a) += ((((b)) &amp; ((c))) | (((b)) &amp; ((d))) | (((c)) &amp;<br> ((d)))) + (in[0]) + (guint32)0x5a827999; (a) = ((((a)) &lt;&lt;<br> ((guint32)((3)))) | (((a)) &gt;&gt; (32 - (guint32)((3)))));<br> }</span></span>; <span class='comment'>/* 17 */</span></td></tr>
+<tr class="codeline" data-linenumber="223"><td class="num" id="LN223">223</td><td class="line"> <span class='macro'>GG(d, a, b, c, in[4], 5)<span class='macro_popup'>{ (d) += ((((a)) &amp; ((b))) | (((a)) &amp; ((c))) | (((b)) &amp;<br> ((c)))) + (in[4]) + (guint32)0x5a827999; (d) = ((((d)) &lt;&lt;<br> ((guint32)((5)))) | (((d)) &gt;&gt; (32 - (guint32)((5)))));<br> }</span></span>; <span class='comment'>/* 18 */</span></td></tr>
+<tr class="codeline" data-linenumber="224"><td class="num" id="LN224">224</td><td class="line"> <span class='macro'>GG(c, d, a, b, in[8], 9)<span class='macro_popup'>{ (c) += ((((d)) &amp; ((a))) | (((d)) &amp; ((b))) | (((a)) &amp;<br> ((b)))) + (in[8]) + (guint32)0x5a827999; (c) = ((((c)) &lt;&lt;<br> ((guint32)((9)))) | (((c)) &gt;&gt; (32 - (guint32)((9)))));<br> }</span></span>; <span class='comment'>/* 19 */</span></td></tr>
+<tr class="codeline" data-linenumber="225"><td class="num" id="LN225">225</td><td class="line"> <span class='macro'>GG(b, c, d, a, in[12], 13)<span class='macro_popup'>{ (b) += ((((c)) &amp; ((d))) | (((c)) &amp; ((a))) | (((d)) &amp;<br> ((a)))) + (in[12]) + (guint32)0x5a827999; (b) = ((((b)) &lt;&lt;<br> ((guint32)((13)))) | (((b)) &gt;&gt; (32 - (guint32)((13))))<br>); }</span></span>; <span class='comment'>/* 20 */</span></td></tr>
+<tr class="codeline" data-linenumber="226"><td class="num" id="LN226">226</td><td class="line"> <span class='macro'>GG(a, b, c, d, in[1], 3)<span class='macro_popup'>{ (a) += ((((b)) &amp; ((c))) | (((b)) &amp; ((d))) | (((c)) &amp;<br> ((d)))) + (in[1]) + (guint32)0x5a827999; (a) = ((((a)) &lt;&lt;<br> ((guint32)((3)))) | (((a)) &gt;&gt; (32 - (guint32)((3)))));<br> }</span></span>; <span class='comment'>/* 21 */</span></td></tr>
+<tr class="codeline" data-linenumber="227"><td class="num" id="LN227">227</td><td class="line"> <span class='macro'>GG(d, a, b, c, in[5], 5)<span class='macro_popup'>{ (d) += ((((a)) &amp; ((b))) | (((a)) &amp; ((c))) | (((b)) &amp;<br> ((c)))) + (in[5]) + (guint32)0x5a827999; (d) = ((((d)) &lt;&lt;<br> ((guint32)((5)))) | (((d)) &gt;&gt; (32 - (guint32)((5)))));<br> }</span></span>; <span class='comment'>/* 22 */</span></td></tr>
+<tr class="codeline" data-linenumber="228"><td class="num" id="LN228">228</td><td class="line"> <span class='macro'>GG(c, d, a, b, in[9], 9)<span class='macro_popup'>{ (c) += ((((d)) &amp; ((a))) | (((d)) &amp; ((b))) | (((a)) &amp;<br> ((b)))) + (in[9]) + (guint32)0x5a827999; (c) = ((((c)) &lt;&lt;<br> ((guint32)((9)))) | (((c)) &gt;&gt; (32 - (guint32)((9)))));<br> }</span></span>; <span class='comment'>/* 23 */</span></td></tr>
+<tr class="codeline" data-linenumber="229"><td class="num" id="LN229">229</td><td class="line"> <span class='macro'>GG(b, c, d, a, in[13], 13)<span class='macro_popup'>{ (b) += ((((c)) &amp; ((d))) | (((c)) &amp; ((a))) | (((d)) &amp;<br> ((a)))) + (in[13]) + (guint32)0x5a827999; (b) = ((((b)) &lt;&lt;<br> ((guint32)((13)))) | (((b)) &gt;&gt; (32 - (guint32)((13))))<br>); }</span></span>; <span class='comment'>/* 24 */</span></td></tr>
+<tr class="codeline" data-linenumber="230"><td class="num" id="LN230">230</td><td class="line"> <span class='macro'>GG(a, b, c, d, in[2], 3)<span class='macro_popup'>{ (a) += ((((b)) &amp; ((c))) | (((b)) &amp; ((d))) | (((c)) &amp;<br> ((d)))) + (in[2]) + (guint32)0x5a827999; (a) = ((((a)) &lt;&lt;<br> ((guint32)((3)))) | (((a)) &gt;&gt; (32 - (guint32)((3)))));<br> }</span></span>; <span class='comment'>/* 25 */</span></td></tr>
+<tr class="codeline" data-linenumber="231"><td class="num" id="LN231">231</td><td class="line"> <span class='macro'>GG(d, a, b, c, in[6], 5)<span class='macro_popup'>{ (d) += ((((a)) &amp; ((b))) | (((a)) &amp; ((c))) | (((b)) &amp;<br> ((c)))) + (in[6]) + (guint32)0x5a827999; (d) = ((((d)) &lt;&lt;<br> ((guint32)((5)))) | (((d)) &gt;&gt; (32 - (guint32)((5)))));<br> }</span></span>; <span class='comment'>/* 26 */</span></td></tr>
+<tr class="codeline" data-linenumber="232"><td class="num" id="LN232">232</td><td class="line"> <span class='macro'>GG(c, d, a, b, in[10], 9)<span class='macro_popup'>{ (c) += ((((d)) &amp; ((a))) | (((d)) &amp; ((b))) | (((a)) &amp;<br> ((b)))) + (in[10]) + (guint32)0x5a827999; (c) = ((((c)) &lt;&lt;<br> ((guint32)((9)))) | (((c)) &gt;&gt; (32 - (guint32)((9)))));<br> }</span></span>; <span class='comment'>/* 27 */</span></td></tr>
+<tr class="codeline" data-linenumber="233"><td class="num" id="LN233">233</td><td class="line"> <span class='macro'>GG(b, c, d, a, in[14], 13)<span class='macro_popup'>{ (b) += ((((c)) &amp; ((d))) | (((c)) &amp; ((a))) | (((d)) &amp;<br> ((a)))) + (in[14]) + (guint32)0x5a827999; (b) = ((((b)) &lt;&lt;<br> ((guint32)((13)))) | (((b)) &gt;&gt; (32 - (guint32)((13))))<br>); }</span></span>; <span class='comment'>/* 28 */</span></td></tr>
+<tr class="codeline" data-linenumber="234"><td class="num" id="LN234">234</td><td class="line"> <span class='macro'>GG(a, b, c, d, in[3], 3)<span class='macro_popup'>{ (a) += ((((b)) &amp; ((c))) | (((b)) &amp; ((d))) | (((c)) &amp;<br> ((d)))) + (in[3]) + (guint32)0x5a827999; (a) = ((((a)) &lt;&lt;<br> ((guint32)((3)))) | (((a)) &gt;&gt; (32 - (guint32)((3)))));<br> }</span></span>; <span class='comment'>/* 29 */</span></td></tr>
+<tr class="codeline" data-linenumber="235"><td class="num" id="LN235">235</td><td class="line"> <span class='macro'>GG(d, a, b, c, in[7], 5)<span class='macro_popup'>{ (d) += ((((a)) &amp; ((b))) | (((a)) &amp; ((c))) | (((b)) &amp;<br> ((c)))) + (in[7]) + (guint32)0x5a827999; (d) = ((((d)) &lt;&lt;<br> ((guint32)((5)))) | (((d)) &gt;&gt; (32 - (guint32)((5)))));<br> }</span></span>; <span class='comment'>/* 30 */</span></td></tr>
+<tr class="codeline" data-linenumber="236"><td class="num" id="LN236">236</td><td class="line"> <span class='macro'>GG(c, d, a, b, in[11], 9)<span class='macro_popup'>{ (c) += ((((d)) &amp; ((a))) | (((d)) &amp; ((b))) | (((a)) &amp;<br> ((b)))) + (in[11]) + (guint32)0x5a827999; (c) = ((((c)) &lt;&lt;<br> ((guint32)((9)))) | (((c)) &gt;&gt; (32 - (guint32)((9)))));<br> }</span></span>; <span class='comment'>/* 31 */</span></td></tr>
+<tr class="codeline" data-linenumber="237"><td class="num" id="LN237">237</td><td class="line"> <span class='macro'>GG(b, c, d, a, in[15], 13)<span class='macro_popup'>{ (b) += ((((c)) &amp; ((d))) | (((c)) &amp; ((a))) | (((d)) &amp;<br> ((a)))) + (in[15]) + (guint32)0x5a827999; (b) = ((((b)) &lt;&lt;<br> ((guint32)((13)))) | (((b)) &gt;&gt; (32 - (guint32)((13))))<br>); }</span></span>; <span class='comment'>/* 32 */</span></td></tr>
+<tr class="codeline" data-linenumber="238"><td class="num" id="LN238">238</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="239"><td class="num" id="LN239">239</td><td class="line"> <span class='macro'>HH(a, b, c, d, in[0], 3)<span class='macro_popup'>{ (a) += (((b)) ^ ((c)) ^ ((d))) + (in[0]) + (guint32)0x6ed9eba1<br>; (a) = ((((a)) &lt;&lt; ((guint32)((3)))) | (((a)) &gt;&gt; (<br>32 - (guint32)((3))))); }</span></span>; <span class='comment'>/* 33 */</span></td></tr>
+<tr class="codeline" data-linenumber="240"><td class="num" id="LN240">240</td><td class="line"> <span class='macro'>HH(d, a, b, c, in[8], 9)<span class='macro_popup'>{ (d) += (((a)) ^ ((b)) ^ ((c))) + (in[8]) + (guint32)0x6ed9eba1<br>; (d) = ((((d)) &lt;&lt; ((guint32)((9)))) | (((d)) &gt;&gt; (<br>32 - (guint32)((9))))); }</span></span>; <span class='comment'>/* 34 */</span></td></tr>
+<tr class="codeline" data-linenumber="241"><td class="num" id="LN241">241</td><td class="line"> <span class='macro'>HH(c, d, a, b, in[4], 11)<span class='macro_popup'>{ (c) += (((d)) ^ ((a)) ^ ((b))) + (in[4]) + (guint32)0x6ed9eba1<br>; (c) = ((((c)) &lt;&lt; ((guint32)((11)))) | (((c)) &gt;&gt;<br> (32 - (guint32)((11))))); }</span></span>; <span class='comment'>/* 35 */</span></td></tr>
+<tr class="codeline" data-linenumber="242"><td class="num" id="LN242">242</td><td class="line"> <span class='macro'>HH(b, c, d, a, in[12], 15)<span class='macro_popup'>{ (b) += (((c)) ^ ((d)) ^ ((a))) + (in[12]) + (guint32)0x6ed9eba1<br>; (b) = ((((b)) &lt;&lt; ((guint32)((15)))) | (((b)) &gt;&gt;<br> (32 - (guint32)((15))))); }</span></span>; <span class='comment'>/* 36 */</span></td></tr>
+<tr class="codeline" data-linenumber="243"><td class="num" id="LN243">243</td><td class="line"> <span class='macro'>HH(a, b, c, d, in[2], 3)<span class='macro_popup'>{ (a) += (((b)) ^ ((c)) ^ ((d))) + (in[2]) + (guint32)0x6ed9eba1<br>; (a) = ((((a)) &lt;&lt; ((guint32)((3)))) | (((a)) &gt;&gt; (<br>32 - (guint32)((3))))); }</span></span>; <span class='comment'>/* 37 */</span></td></tr>
+<tr class="codeline" data-linenumber="244"><td class="num" id="LN244">244</td><td class="line"> <span class='macro'>HH(d, a, b, c, in[10], 9)<span class='macro_popup'>{ (d) += (((a)) ^ ((b)) ^ ((c))) + (in[10]) + (guint32)0x6ed9eba1<br>; (d) = ((((d)) &lt;&lt; ((guint32)((9)))) | (((d)) &gt;&gt; (<br>32 - (guint32)((9))))); }</span></span>; <span class='comment'>/* 38 */</span></td></tr>
+<tr class="codeline" data-linenumber="245"><td class="num" id="LN245">245</td><td class="line"> <span class='macro'>HH(c, d, a, b, in[6], 11)<span class='macro_popup'>{ (c) += (((d)) ^ ((a)) ^ ((b))) + (in[6]) + (guint32)0x6ed9eba1<br>; (c) = ((((c)) &lt;&lt; ((guint32)((11)))) | (((c)) &gt;&gt;<br> (32 - (guint32)((11))))); }</span></span>; <span class='comment'>/* 39 */</span></td></tr>
+<tr class="codeline" data-linenumber="246"><td class="num" id="LN246">246</td><td class="line"> <span class='macro'>HH(b, c, d, a, in[14], 15)<span class='macro_popup'>{ (b) += (((c)) ^ ((d)) ^ ((a))) + (in[14]) + (guint32)0x6ed9eba1<br>; (b) = ((((b)) &lt;&lt; ((guint32)((15)))) | (((b)) &gt;&gt;<br> (32 - (guint32)((15))))); }</span></span>; <span class='comment'>/* 40 */</span></td></tr>
+<tr class="codeline" data-linenumber="247"><td class="num" id="LN247">247</td><td class="line"> <span class='macro'>HH(a, b, c, d, in[1], 3)<span class='macro_popup'>{ (a) += (((b)) ^ ((c)) ^ ((d))) + (in[1]) + (guint32)0x6ed9eba1<br>; (a) = ((((a)) &lt;&lt; ((guint32)((3)))) | (((a)) &gt;&gt; (<br>32 - (guint32)((3))))); }</span></span>; <span class='comment'>/* 41 */</span></td></tr>
+<tr class="codeline" data-linenumber="248"><td class="num" id="LN248">248</td><td class="line"> <span class='macro'>HH(d, a, b, c, in[9], 9)<span class='macro_popup'>{ (d) += (((a)) ^ ((b)) ^ ((c))) + (in[9]) + (guint32)0x6ed9eba1<br>; (d) = ((((d)) &lt;&lt; ((guint32)((9)))) | (((d)) &gt;&gt; (<br>32 - (guint32)((9))))); }</span></span>; <span class='comment'>/* 42 */</span></td></tr>
+<tr class="codeline" data-linenumber="249"><td class="num" id="LN249">249</td><td class="line"> <span class='macro'>HH(c, d, a, b, in[5], 11)<span class='macro_popup'>{ (c) += (((d)) ^ ((a)) ^ ((b))) + (in[5]) + (guint32)0x6ed9eba1<br>; (c) = ((((c)) &lt;&lt; ((guint32)((11)))) | (((c)) &gt;&gt;<br> (32 - (guint32)((11))))); }</span></span>; <span class='comment'>/* 43 */</span></td></tr>
+<tr class="codeline" data-linenumber="250"><td class="num" id="LN250">250</td><td class="line"> <span class='macro'>HH(b, c, d, a, in[13], 15)<span class='macro_popup'>{ (b) += (((c)) ^ ((d)) ^ ((a))) + (in[13]) + (guint32)0x6ed9eba1<br>; (b) = ((((b)) &lt;&lt; ((guint32)((15)))) | (((b)) &gt;&gt;<br> (32 - (guint32)((15))))); }</span></span>; <span class='comment'>/* 44 */</span></td></tr>
+<tr class="codeline" data-linenumber="251"><td class="num" id="LN251">251</td><td class="line"> <span class='macro'>HH(a, b, c, d, in[3], 3)<span class='macro_popup'>{ (a) += (((b)) ^ ((c)) ^ ((d))) + (in[3]) + (guint32)0x6ed9eba1<br>; (a) = ((((a)) &lt;&lt; ((guint32)((3)))) | (((a)) &gt;&gt; (<br>32 - (guint32)((3))))); }</span></span>; <span class='comment'>/* 45 */</span></td></tr>
+<tr class="codeline" data-linenumber="252"><td class="num" id="LN252">252</td><td class="line"> <span class='macro'>HH(d, a, b, c, in[11], 9)<span class='macro_popup'>{ (d) += (((a)) ^ ((b)) ^ ((c))) + (in[11]) + (guint32)0x6ed9eba1<br>; (d) = ((((d)) &lt;&lt; ((guint32)((9)))) | (((d)) &gt;&gt; (<br>32 - (guint32)((9))))); }</span></span>; <span class='comment'>/* 46 */</span></td></tr>
+<tr class="codeline" data-linenumber="253"><td class="num" id="LN253">253</td><td class="line"> <span class='macro'>HH(c, d, a, b, in[7], 11)<span class='macro_popup'>{ (c) += (((d)) ^ ((a)) ^ ((b))) + (in[7]) + (guint32)0x6ed9eba1<br>; (c) = ((((c)) &lt;&lt; ((guint32)((11)))) | (((c)) &gt;&gt;<br> (32 - (guint32)((11))))); }</span></span>; <span class='comment'>/* 47 */</span></td></tr>
+<tr class="codeline" data-linenumber="254"><td class="num" id="LN254">254</td><td class="line"> <span class='macro'>HH(b, c, d, a, in[15], 15)<span class='macro_popup'>{ (b) += (((c)) ^ ((d)) ^ ((a))) + (in[15]) + (guint32)0x6ed9eba1<br>; (b) = ((((b)) &lt;&lt; ((guint32)((15)))) | (((b)) &gt;&gt;<br> (32 - (guint32)((15))))); }</span></span>; <span class='comment'>/* 48 */</span></td></tr>
+<tr class="codeline" data-linenumber="255"><td class="num" id="LN255">255</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="256"><td class="num" id="LN256">256</td><td class="line"> buf[0] += a;</td></tr>
+<tr class="codeline" data-linenumber="257"><td class="num" id="LN257">257</td><td class="line"> buf[1] += b;</td></tr>
+<tr class="codeline" data-linenumber="258"><td class="num" id="LN258">258</td><td class="line"> buf[2] += c;</td></tr>
+<tr class="codeline" data-linenumber="259"><td class="num" id="LN259">259</td><td class="line"> buf[3] += d;</td></tr>
+<tr class="codeline" data-linenumber="260"><td class="num" id="LN260">260</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="261"><td class="num" id="LN261">261</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="262"><td class="num" id="LN262">262</td><td class="line"><span class='keyword'>int</span> MD4Keycrunch( <span class='keyword'>char</span> *result, <span class='keyword'>const</span> <span class='keyword'>char</span> *seed, <span class='keyword'>const</span> <span class='keyword'>char</span> *passphrase)</td></tr>
+<tr class="codeline" data-linenumber="263"><td class="num" id="LN263">263</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="264"><td class="num" id="LN264">264</td><td class="line"> <span class='keyword'>int</span> len;</td></tr>
+<tr class="codeline" data-linenumber="265"><td class="num" id="LN265">265</td><td class="line"> <span class='keyword'>char</span> *buf;</td></tr>
+<tr class="codeline" data-linenumber="266"><td class="num" id="LN266">266</td><td class="line"> MD4_CTX md;</td></tr>
+<tr class="codeline" data-linenumber="267"><td class="num" id="LN267">267</td><td class="line"> guint32 results[4];</td></tr>
+<tr class="codeline" data-linenumber="268"><td class="num" id="LN268">268</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="269"><td class="num" id="LN269">269</td><td class="line"> len = strlen(seed) + strlen(passphrase);</td></tr>
+<tr class="codeline" data-linenumber="270"><td class="num" id="LN270">270</td><td class="line"> buf = (<span class='keyword'>char</span> *)malloc(len+1);</td></tr>
+<tr class="codeline" data-linenumber="271"><td class="num" id="LN271">271</td><td class="line"> <span class='keyword'>if</span> (buf == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="272"><td class="num" id="LN272">272</td><td class="line"> <span class='keyword'>return</span> -1;</td></tr>
+<tr class="codeline" data-linenumber="273"><td class="num" id="LN273">273</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="274"><td class="num" id="LN274">274</td><td class="line"> <span class="mrange">strcpy</span>(buf, seed);</td></tr>
+<tr><td class="num"></td><td class="line"><div id="EndPath" class="msg msgEvent" style="margin-left:9ex; max-width:52em">Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119</div></td></tr>
+<tr class="codeline" data-linenumber="275"><td class="num" id="LN275">275</td><td class="line"> skey_lowcase(buf);</td></tr>
+<tr class="codeline" data-linenumber="276"><td class="num" id="LN276">276</td><td class="line"> strcat(buf, passphrase);</td></tr>
+<tr class="codeline" data-linenumber="277"><td class="num" id="LN277">277</td><td class="line"> skey_sevenbit(buf);</td></tr>
+<tr class="codeline" data-linenumber="278"><td class="num" id="LN278">278</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="279"><td class="num" id="LN279">279</td><td class="line"> MD4Init(&amp;md);</td></tr>
+<tr class="codeline" data-linenumber="280"><td class="num" id="LN280">280</td><td class="line"> MD4Update(&amp;md, (<span class='keyword'>unsigned</span> <span class='keyword'>char</span> *)buf, len);</td></tr>
+<tr class="codeline" data-linenumber="281"><td class="num" id="LN281">281</td><td class="line"> MD4Final((<span class='keyword'>unsigned</span> <span class='keyword'>char</span> *)results, &amp;md);</td></tr>
+<tr class="codeline" data-linenumber="282"><td class="num" id="LN282">282</td><td class="line"> free(buf);</td></tr>
+<tr class="codeline" data-linenumber="283"><td class="num" id="LN283">283</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="284"><td class="num" id="LN284">284</td><td class="line"> results[0] ^= results[2];</td></tr>
+<tr class="codeline" data-linenumber="285"><td class="num" id="LN285">285</td><td class="line"> results[1] ^= results[3];</td></tr>
+<tr class="codeline" data-linenumber="286"><td class="num" id="LN286">286</td><td class="line"> memcpy((<span class='keyword'>void</span> *)result, (<span class='keyword'>void</span> *)results, <span class='macro'>SKEY_SIZE<span class='macro_popup'>8</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="287"><td class="num" id="LN287">287</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="288"><td class="num" id="LN288">288</td><td class="line"> <span class='keyword'>return</span> 0;</td></tr>
+<tr class="codeline" data-linenumber="289"><td class="num" id="LN289">289</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="290"><td class="num" id="LN290">290</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="291"><td class="num" id="LN291">291</td><td class="line"><span class='keyword'>void</span> MD4SKey(<span class='keyword'>char</span> *x)</td></tr>
+<tr class="codeline" data-linenumber="292"><td class="num" id="LN292">292</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="293"><td class="num" id="LN293">293</td><td class="line"> MD4_CTX md;</td></tr>
+<tr class="codeline" data-linenumber="294"><td class="num" id="LN294">294</td><td class="line"> guint32 results[4];</td></tr>
+<tr class="codeline" data-linenumber="295"><td class="num" id="LN295">295</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="296"><td class="num" id="LN296">296</td><td class="line"> MD4Init(&amp;md);</td></tr>
+<tr class="codeline" data-linenumber="297"><td class="num" id="LN297">297</td><td class="line"> MD4Update(&amp;md, (<span class='keyword'>unsigned</span> <span class='keyword'>char</span> *)x, <span class='macro'>SKEY_SIZE<span class='macro_popup'>8</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="298"><td class="num" id="LN298">298</td><td class="line"> MD4Final((<span class='keyword'>unsigned</span> <span class='keyword'>char</span> *)results, &amp;md);</td></tr>
+<tr class="codeline" data-linenumber="299"><td class="num" id="LN299">299</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="300"><td class="num" id="LN300">300</td><td class="line"> results[0] ^= results[2];</td></tr>
+<tr class="codeline" data-linenumber="301"><td class="num" id="LN301">301</td><td class="line"> results[1] ^= results[3];</td></tr>
+<tr class="codeline" data-linenumber="302"><td class="num" id="LN302">302</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="303"><td class="num" id="LN303">303</td><td class="line"> memcpy((<span class='keyword'>void</span> *)x, (<span class='keyword'>void</span> *)results, <span class='macro'>SKEY_SIZE<span class='macro_popup'>8</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="304"><td class="num" id="LN304">304</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="305"><td class="num" id="LN305">305</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="306"><td class="num" id="LN306">306</td><td class="line"><span class='directive'>#ifdef MD4_MAIN</span></td></tr>
+<tr class="codeline" data-linenumber="307"><td class="num" id="LN307">307</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="308"><td class="num" id="LN308">308</td><td class="line"><span class='directive'>#include &lt;stdio.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="309"><td class="num" id="LN309">309</td><td class="line"><span class='directive'>#include &lt;unistd.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="310"><td class="num" id="LN310">310</td><td class="line"><span class='directive'>#include &lt;stdlib.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="311"><td class="num" id="LN311">311</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="312"><td class="num" id="LN312">312</td><td class="line"><span class='keyword'>int</span> main(<span class='keyword'>int</span> argc, <span class='keyword'>char</span> *argv[])</td></tr>
+<tr class="codeline" data-linenumber="313"><td class="num" id="LN313">313</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="314"><td class="num" id="LN314">314</td><td class="line"> MD4_CTX *md4;</td></tr>
+<tr class="codeline" data-linenumber="315"><td class="num" id="LN315">315</td><td class="line"> <span class='keyword'>unsigned</span> <span class='keyword'>char</span> digest[16];</td></tr>
+<tr class="codeline" data-linenumber="316"><td class="num" id="LN316">316</td><td class="line"> <span class='keyword'>unsigned</span> <span class='keyword'>char</span> data[1024];</td></tr>
+<tr class="codeline" data-linenumber="317"><td class="num" id="LN317">317</td><td class="line"> <span class='keyword'>int</span> i, r;</td></tr>
+<tr class="codeline" data-linenumber="318"><td class="num" id="LN318">318</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="319"><td class="num" id="LN319">319</td><td class="line"> memset(digest, 0, 16);</td></tr>
+<tr class="codeline" data-linenumber="320"><td class="num" id="LN320">320</td><td class="line"> printf(<span class='string_literal'>"MD4 digest algorithm. End with Ctrl-D:\n"</span>);</td></tr>
+<tr class="codeline" data-linenumber="321"><td class="num" id="LN321">321</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="322"><td class="num" id="LN322">322</td><td class="line"> md4 = (MD4_CTX *)malloc(<span class='keyword'>sizeof</span>(MD4_CTX));</td></tr>
+<tr class="codeline" data-linenumber="323"><td class="num" id="LN323">323</td><td class="line"> MD4Init(md4);</td></tr>
+<tr class="codeline" data-linenumber="324"><td class="num" id="LN324">324</td><td class="line"> <span class='keyword'>do</span></td></tr>
+<tr class="codeline" data-linenumber="325"><td class="num" id="LN325">325</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="326"><td class="num" id="LN326">326</td><td class="line"> r = read(0, data, <span class='keyword'>sizeof</span> data);</td></tr>
+<tr class="codeline" data-linenumber="327"><td class="num" id="LN327">327</td><td class="line"> MD4Update(md4, data, r);</td></tr>
+<tr class="codeline" data-linenumber="328"><td class="num" id="LN328">328</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="329"><td class="num" id="LN329">329</td><td class="line"> <span class='keyword'>while</span> (r);</td></tr>
+<tr class="codeline" data-linenumber="330"><td class="num" id="LN330">330</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="331"><td class="num" id="LN331">331</td><td class="line"> MD4Final(digest, md4);</td></tr>
+<tr class="codeline" data-linenumber="332"><td class="num" id="LN332">332</td><td class="line"> printf(<span class='string_literal'>"MD4 Digest is: "</span>);</td></tr>
+<tr class="codeline" data-linenumber="333"><td class="num" id="LN333">333</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; 16; i++)</td></tr>
+<tr class="codeline" data-linenumber="334"><td class="num" id="LN334">334</td><td class="line"> printf(<span class='string_literal'>"%02X"</span>, digest[i]);</td></tr>
+<tr class="codeline" data-linenumber="335"><td class="num" id="LN335">335</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="336"><td class="num" id="LN336">336</td><td class="line"> printf(<span class='string_literal'>"\n"</span>);</td></tr>
+<tr class="codeline" data-linenumber="337"><td class="num" id="LN337">337</td><td class="line"> free(md4);</td></tr>
+<tr class="codeline" data-linenumber="338"><td class="num" id="LN338">338</td><td class="line"> <span class='keyword'>return</span> 0;</td></tr>
+<tr class="codeline" data-linenumber="339"><td class="num" id="LN339">339</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="340"><td class="num" id="LN340">340</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="341"><td class="num" id="LN341">341</td><td class="line"><span class='directive'>#endif</span></td></tr>
+</table></body></html>
diff --git a/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-cf3974.html b/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-cf3974.html
new file mode 100644
index 0000000..05fcd7a
--- /dev/null
+++ b/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-cf3974.html
@@ -0,0 +1,2089 @@
+<!doctype html>
+<html>
+<head>
+<title>eggsmclient-xsmp.c</title>
+
+<style type="text/css">
+body { color:#000000; background-color:#ffffff }
+body { font-family:Helvetica, sans-serif; font-size:10pt }
+h1 { font-size:14pt }
+.FileName { margin-top: 5px; margin-bottom: 5px; display: inline; }
+.FileNav { margin-left: 5px; margin-right: 5px; display: inline; }
+.FileNav a { text-decoration:none; font-size: larger; }
+.divider { margin-top: 30px; margin-bottom: 30px; height: 15px; }
+.divider { background-color: gray; }
+.code { border-collapse:collapse; width:100%; }
+.code { font-family: "Monospace", monospace; font-size:10pt }
+.code { line-height: 1.2em }
+.comment { color: green; font-style: oblique }
+.keyword { color: blue }
+.string_literal { color: red }
+.directive { color: darkmagenta }
+
+/* Macros and variables could have pop-up notes hidden by default.
+ - Macro pop-up: expansion of the macro
+ - Variable pop-up: value (table) of the variable */
+.macro_popup, .variable_popup { display: none; }
+
+/* Pop-up appears on mouse-hover event. */
+.macro:hover .macro_popup, .variable:hover .variable_popup {
+ display: block;
+ padding: 2px;
+ -webkit-border-radius:5px;
+ -webkit-box-shadow:1px 1px 7px #000;
+ border-radius:5px;
+ box-shadow:1px 1px 7px #000;
+ position: absolute;
+ top: -1em;
+ left:10em;
+ z-index: 1
+}
+
+.macro_popup {
+ border: 2px solid red;
+ background-color:#FFF0F0;
+ font-weight: normal;
+}
+
+.variable_popup {
+ border: 2px solid blue;
+ background-color:#F0F0FF;
+ font-weight: bold;
+ font-family: Helvetica, sans-serif;
+ font-size: 9pt;
+}
+
+/* Pop-up notes needs a relative position as a base where they pops up. */
+.macro, .variable {
+ background-color: PaleGoldenRod;
+ position: relative;
+}
+.macro { color: DarkMagenta; }
+
+#tooltiphint {
+ position: fixed;
+ width: 50em;
+ margin-left: -25em;
+ left: 50%;
+ padding: 10px;
+ border: 1px solid #b0b0b0;
+ border-radius: 2px;
+ box-shadow: 1px 1px 7px black;
+ background-color: #c0c0c0;
+ z-index: 2;
+}
+
+.num { width:2.5em; padding-right:2ex; background-color:#eeeeee }
+.num { text-align:right; font-size:8pt }
+.num { color:#444444 }
+.line { padding-left: 1ex; border-left: 3px solid #ccc }
+.line { white-space: pre }
+.msg { -webkit-box-shadow:1px 1px 7px #000 }
+.msg { box-shadow:1px 1px 7px #000 }
+.msg { -webkit-border-radius:5px }
+.msg { border-radius:5px }
+.msg { font-family:Helvetica, sans-serif; font-size:8pt }
+.msg { float:left }
+.msg { position:relative }
+.msg { padding:0.25em 1ex 0.25em 1ex }
+.msg { margin-top:10px; margin-bottom:10px }
+.msg { font-weight:bold }
+.msg { max-width:60em; word-wrap: break-word; white-space: pre-wrap }
+.msgT { padding:0x; spacing:0x }
+.msgEvent { background-color:#fff8b4; color:#000000 }
+.msgControl { background-color:#bbbbbb; color:#000000 }
+.msgNote { background-color:#ddeeff; color:#000000 }
+.mrange { background-color:#dfddf3 }
+.mrange { border-bottom:1px solid #6F9DBE }
+.PathIndex { font-weight: bold; padding:0px 5px; margin-right:5px; }
+.PathIndex { -webkit-border-radius:8px }
+.PathIndex { border-radius:8px }
+.PathIndexEvent { background-color:#bfba87 }
+.PathIndexControl { background-color:#8c8c8c }
+.PathIndexPopUp { background-color: #879abc; }
+.PathNav a { text-decoration:none; font-size: larger }
+.CodeInsertionHint { font-weight: bold; background-color: #10dd10 }
+.CodeRemovalHint { background-color:#de1010 }
+.CodeRemovalHint { border-bottom:1px solid #6F9DBE }
+.msg.selected{ background-color:orange !important; }
+
+table.simpletable {
+ padding: 5px;
+ font-size:12pt;
+ margin:20px;
+ border-collapse: collapse; border-spacing: 0px;
+}
+td.rowname {
+ text-align: right;
+ vertical-align: top;
+ font-weight: bold;
+ color:#444444;
+ padding-right:2ex;
+}
+
+/* Hidden text. */
+input.spoilerhider + label {
+ cursor: pointer;
+ text-decoration: underline;
+ display: block;
+}
+input.spoilerhider {
+ display: none;
+}
+input.spoilerhider ~ .spoiler {
+ overflow: hidden;
+ margin: 10px auto 0;
+ height: 0;
+ opacity: 0;
+}
+input.spoilerhider:checked + label + .spoiler{
+ height: auto;
+ opacity: 1;
+}
+</style>
+</head>
+<body>
+<!-- BUGDESC Casting a non-structure type to a structure type and accessing a field can lead to memory access errors or data corruption -->
+
+<!-- BUGTYPE Cast from non-struct type to struct type -->
+
+<!-- BUGCATEGORY Logic error -->
+
+<!-- BUGFILE /rootdir/src/mate-submodules/libegg/eggsmclient-xsmp.c -->
+
+<!-- FILENAME eggsmclient-xsmp.c -->
+
+<!-- FUNCTIONNAME ptrarray_prop -->
+
+<!-- ISSUEHASHCONTENTOFLINEINCONTEXT cf3974848df4dca833dffd0d8abcacb0 -->
+
+<!-- BUGLINE 1232 -->
+
+<!-- BUGCOLUMN 18 -->
+
+<!-- BUGPATHLENGTH 1 -->
+
+<!-- BUGMETAEND -->
+<!-- REPORTHEADER -->
+<h3>Bug Summary</h3>
+<table class="simpletable">
+<tr><td class="rowname">File:</td><td>mate-submodules/libegg/eggsmclient-xsmp.c</td></tr>
+<tr><td class="rowname">Warning:</td><td><a href="#EndPath">line 1232, column 18</a><br />Casting a non-structure type to a structure type and accessing a field can lead to memory access errors or data corruption</td></tr>
+
+</table>
+<!-- REPORTSUMMARYEXTRA -->
+<h3>Annotated Source Code</h3>
+<p>Press <a href="#" onclick="toggleHelp(); return false;">'?'</a>
+ to see keyboard shortcuts</p>
+<input type="checkbox" class="spoilerhider" id="showinvocation" />
+<label for="showinvocation" >Show analyzer invocation</label>
+<div class="spoiler">clang -cc1 -cc1 -triple x86_64-redhat-linux-gnu -analyze -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name eggsmclient-xsmp.c -analyzer-checker=core -analyzer-checker=apiModeling -analyzer-checker=unix -analyzer-checker=deadcode -analyzer-checker=security.insecureAPI.UncheckedReturn -analyzer-checker=security.insecureAPI.getpw -analyzer-checker=security.insecureAPI.gets -analyzer-checker=security.insecureAPI.mktemp -analyzer-checker=security.insecureAPI.mkstemp -analyzer-checker=security.insecureAPI.vfork -analyzer-checker=nullability.NullPassedToNonnull -analyzer-checker=nullability.NullReturnedFromNonnull -analyzer-output plist -w -setup-static-analyzer -mrelocation-model pic -pic-level 2 -fhalf-no-semantic-interposition -mframe-pointer=all -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -tune-cpu generic -debugger-tuning=gdb -fcoverage-compilation-dir=/rootdir/src/mate-submodules/libegg -resource-dir /usr/bin/../lib/clang/17 -D HAVE_CONFIG_H -I . -I ../../.. -I /usr/include/gtk-3.0 -I /usr/include/pango-1.0 -I /usr/include/gdk-pixbuf-2.0 -I /usr/include/cairo -I /usr/include/dbus-1.0 -I /usr/lib64/dbus-1.0/include -I /usr/include/atk-1.0 -I /usr/include/harfbuzz -I /usr/include/freetype2 -I /usr/include/glib-2.0 -I /usr/lib64/glib-2.0/include -I /usr/include/at-spi2-atk/2.0 -I /usr/include/cloudproviders -I /usr/include/blkid -I /usr/include/at-spi-2.0 -I /usr/include/gio-unix-2.0 -I /usr/include/libmount -I /usr/include/pixman-1 -I /usr/include/libxml2 -I /usr/include/fribidi -I /usr/include/sysprof-6 -I /usr/include/libpng16 -D EGG_SM_CLIENT_BACKEND_XSMP -D G_LOG_DOMAIN="EggSMClient" -I /usr/include/gtk-3.0 -I /usr/include/pango-1.0 -I /usr/include/gdk-pixbuf-2.0 -I /usr/include/cairo -I /usr/include/dbus-1.0 -I /usr/lib64/dbus-1.0/include -I /usr/include/atk-1.0 -I /usr/include/harfbuzz -I /usr/include/freetype2 -I /usr/include/glib-2.0 -I /usr/lib64/glib-2.0/include -I /usr/include/at-spi2-atk/2.0 -I /usr/include/cloudproviders -I /usr/include/blkid -I /usr/include/at-spi-2.0 -I /usr/include/gio-unix-2.0 -I /usr/include/libmount -I /usr/include/pixman-1 -I /usr/include/libxml2 -I /usr/include/fribidi -I /usr/include/sysprof-6 -I /usr/include/libpng16 -D PIC -internal-isystem /usr/bin/../lib/clang/17/include -internal-isystem /usr/local/include -internal-isystem /usr/bin/../lib/gcc/x86_64-redhat-linux/13/../../../../x86_64-redhat-linux/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -Wno-unused-parameter -fdebug-compilation-dir=/rootdir/src/mate-submodules/libegg -ferror-limit 19 -fgnuc-version=4.2.1 -analyzer-checker deadcode.DeadStores -analyzer-checker alpha.deadcode.UnreachableCode -analyzer-checker alpha.core.CastSize -analyzer-checker alpha.core.CastToStruct -analyzer-checker alpha.core.IdenticalExpr -analyzer-checker alpha.core.SizeofPtr -analyzer-checker alpha.security.ArrayBoundV2 -analyzer-checker alpha.security.MallocOverflow -analyzer-checker alpha.security.ReturnPtrRange -analyzer-checker alpha.unix.SimpleStream -analyzer-checker alpha.unix.cstring.BufferOverlap -analyzer-checker alpha.unix.cstring.NotNullTerminated -analyzer-checker alpha.unix.cstring.OutOfBounds -analyzer-checker alpha.core.FixedAddr -analyzer-checker security.insecureAPI.strcpy -analyzer-output=html -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /rootdir/html-report/2024-02-18-131424-5067-1 -x c eggsmclient-xsmp.c
+</div>
+<div id='tooltiphint' hidden="true">
+ <p>Keyboard shortcuts: </p>
+ <ul>
+ <li>Use 'j/k' keys for keyboard navigation</li>
+ <li>Use 'Shift+S' to show/hide relevant lines</li>
+ <li>Use '?' to toggle this window</li>
+ </ul>
+ <a href="#" onclick="toggleHelp(); return false;">Close</a>
+</div>
+<script type='text/javascript'>
+var relevant_lines = {"1": {"1232": 1}};
+
+var filterCounterexample = function (hide) {
+ var tables = document.getElementsByClassName("code");
+ for (var t=0; t<tables.length; t++) {
+ var table = tables[t];
+ var file_id = table.getAttribute("data-fileid");
+ var lines_in_fid = relevant_lines[file_id];
+ if (!lines_in_fid) {
+ lines_in_fid = {};
+ }
+ var lines = table.getElementsByClassName("codeline");
+ for (var i=0; i<lines.length; i++) {
+ var el = lines[i];
+ var lineNo = el.getAttribute("data-linenumber");
+ if (!lines_in_fid[lineNo]) {
+ if (hide) {
+ el.setAttribute("hidden", "");
+ } else {
+ el.removeAttribute("hidden");
+ }
+ }
+ }
+ }
+}
+
+window.addEventListener("keydown", function (event) {
+ if (event.defaultPrevented) {
+ return;
+ }
+ // SHIFT + S
+ if (event.shiftKey && event.keyCode == 83) {
+ var checked = document.getElementsByName("showCounterexample")[0].checked;
+ filterCounterexample(!checked);
+ document.getElementsByName("showCounterexample")[0].click();
+ } else {
+ return;
+ }
+ event.preventDefault();
+}, true);
+
+document.addEventListener("DOMContentLoaded", function() {
+ document.querySelector('input[name="showCounterexample"]').onchange=
+ function (event) {
+ filterCounterexample(this.checked);
+ };
+});
+</script>
+
+<form>
+ <input type="checkbox" name="showCounterexample" id="showCounterexample" />
+ <label for="showCounterexample">
+ Show only relevant lines
+ </label>
+ <input type="checkbox" name="showArrows"
+ id="showArrows" style="margin-left: 10px" />
+ <label for="showArrows">
+ Show control flow arrows
+ </label>
+</form>
+
+<script type='text/javascript'>
+// Return range of numbers from a range [lower, upper).
+function range(lower, upper) {
+ var array = [];
+ for (var i = lower; i <= upper; ++i) {
+ array.push(i);
+ }
+ return array;
+}
+
+var getRelatedArrowIndices = function(pathId) {
+ // HTML numeration of events is a bit different than it is in the path.
+ // Everything is rotated one step to the right, so the last element
+ // (error diagnostic) has index 0.
+ if (pathId == 0) {
+ // arrowIndices has at least 2 elements
+ pathId = arrowIndices.length - 1;
+ }
+
+ return range(arrowIndices[pathId], arrowIndices[pathId - 1]);
+}
+
+var highlightArrowsForSelectedEvent = function() {
+ const selectedNum = findNum();
+ const arrowIndicesToHighlight = getRelatedArrowIndices(selectedNum);
+ arrowIndicesToHighlight.forEach((index) => {
+ var arrow = document.querySelector("#arrow" + index);
+ if(arrow) {
+ classListAdd(arrow, "selected")
+ }
+ });
+}
+
+var getAbsoluteBoundingRect = function(element) {
+ const relative = element.getBoundingClientRect();
+ return {
+ left: relative.left + window.pageXOffset,
+ right: relative.right + window.pageXOffset,
+ top: relative.top + window.pageYOffset,
+ bottom: relative.bottom + window.pageYOffset,
+ height: relative.height,
+ width: relative.width
+ };
+}
+
+var drawArrow = function(index) {
+ // This function is based on the great answer from SO:
+ // https://stackoverflow.com/a/39575674/11582326
+ var start = document.querySelector("#start" + index);
+ var end = document.querySelector("#end" + index);
+ var arrow = document.querySelector("#arrow" + index);
+
+ var startRect = getAbsoluteBoundingRect(start);
+ var endRect = getAbsoluteBoundingRect(end);
+
+ // It is an arrow from a token to itself, no need to visualize it.
+ if (startRect.top == endRect.top &&
+ startRect.left == endRect.left)
+ return;
+
+ // Each arrow is a very simple Bézier curve, with two nodes and
+ // two handles. So, we need to calculate four points in the window:
+ // * start node
+ var posStart = { x: 0, y: 0 };
+ // * end node
+ var posEnd = { x: 0, y: 0 };
+ // * handle for the start node
+ var startHandle = { x: 0, y: 0 };
+ // * handle for the end node
+ var endHandle = { x: 0, y: 0 };
+ // One can visualize it as follows:
+ //
+ // start handle
+ // /
+ // X"""_.-""""X
+ // .' \
+ // / start node
+ // |
+ // |
+ // | end node
+ // \ /
+ // `->X
+ // X-'
+ // \
+ // end handle
+ //
+ // NOTE: (0, 0) is the top left corner of the window.
+
+ // We have 3 similar, but still different scenarios to cover:
+ //
+ // 1. Two tokens on different lines.
+ // -xxx
+ // /
+ // \
+ // -> xxx
+ // In this situation, we draw arrow on the left curving to the left.
+ // 2. Two tokens on the same line, and the destination is on the right.
+ // ____
+ // / \
+ // / V
+ // xxx xxx
+ // In this situation, we draw arrow above curving upwards.
+ // 3. Two tokens on the same line, and the destination is on the left.
+ // xxx xxx
+ // ^ /
+ // \____/
+ // In this situation, we draw arrow below curving downwards.
+ const onDifferentLines = startRect.top <= endRect.top - 5 ||
+ startRect.top >= endRect.top + 5;
+ const leftToRight = startRect.left < endRect.left;
+
+ // NOTE: various magic constants are chosen empirically for
+ // better positioning and look
+ if (onDifferentLines) {
+ // Case #1
+ const topToBottom = startRect.top < endRect.top;
+ posStart.x = startRect.left - 1;
+ // We don't want to start it at the top left corner of the token,
+ // it doesn't feel like this is where the arrow comes from.
+ // For this reason, we start it in the middle of the left side
+ // of the token.
+ posStart.y = startRect.top + startRect.height / 2;
+
+ // End node has arrow head and we give it a bit more space.
+ posEnd.x = endRect.left - 4;
+ posEnd.y = endRect.top;
+
+ // Utility object with x and y offsets for handles.
+ var curvature = {
+ // We want bottom-to-top arrow to curve a bit more, so it doesn't
+ // overlap much with top-to-bottom curves (much more frequent).
+ x: topToBottom ? 15 : 25,
+ y: Math.min((posEnd.y - posStart.y) / 3, 10)
+ }
+
+ // When destination is on the different line, we can make a
+ // curvier arrow because we have space for it.
+ // So, instead of using
+ //
+ // startHandle.x = posStart.x - curvature.x
+ // endHandle.x = posEnd.x - curvature.x
+ //
+ // We use the leftmost of these two values for both handles.
+ startHandle.x = Math.min(posStart.x, posEnd.x) - curvature.x;
+ endHandle.x = startHandle.x;
+
+ // Curving downwards from the start node...
+ startHandle.y = posStart.y + curvature.y;
+ // ... and upwards from the end node.
+ endHandle.y = posEnd.y - curvature.y;
+
+ } else if (leftToRight) {
+ // Case #2
+ // Starting from the top right corner...
+ posStart.x = startRect.right - 1;
+ posStart.y = startRect.top;
+
+ // ...and ending at the top left corner of the end token.
+ posEnd.x = endRect.left + 1;
+ posEnd.y = endRect.top - 1;
+
+ // Utility object with x and y offsets for handles.
+ var curvature = {
+ x: Math.min((posEnd.x - posStart.x) / 3, 15),
+ y: 5
+ }
+
+ // Curving to the right...
+ startHandle.x = posStart.x + curvature.x;
+ // ... and upwards from the start node.
+ startHandle.y = posStart.y - curvature.y;
+
+ // And to the left...
+ endHandle.x = posEnd.x - curvature.x;
+ // ... and upwards from the end node.
+ endHandle.y = posEnd.y - curvature.y;
+
+ } else {
+ // Case #3
+ // Starting from the bottom right corner...
+ posStart.x = startRect.right;
+ posStart.y = startRect.bottom;
+
+ // ...and ending also at the bottom right corner, but of the end token.
+ posEnd.x = endRect.right - 1;
+ posEnd.y = endRect.bottom + 1;
+
+ // Utility object with x and y offsets for handles.
+ var curvature = {
+ x: Math.min((posStart.x - posEnd.x) / 3, 15),
+ y: 5
+ }
+
+ // Curving to the left...
+ startHandle.x = posStart.x - curvature.x;
+ // ... and downwards from the start node.
+ startHandle.y = posStart.y + curvature.y;
+
+ // And to the right...
+ endHandle.x = posEnd.x + curvature.x;
+ // ... and downwards from the end node.
+ endHandle.y = posEnd.y + curvature.y;
+ }
+
+ // Put it all together into a path.
+ // More information on the format:
+ // https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths
+ var pathStr = "M" + posStart.x + "," + posStart.y + " " +
+ "C" + startHandle.x + "," + startHandle.y + " " +
+ endHandle.x + "," + endHandle.y + " " +
+ posEnd.x + "," + posEnd.y;
+
+ arrow.setAttribute("d", pathStr);
+};
+
+var drawArrows = function() {
+ const numOfArrows = document.querySelectorAll("path[id^=arrow]").length;
+ for (var i = 0; i < numOfArrows; ++i) {
+ drawArrow(i);
+ }
+}
+
+var toggleArrows = function(event) {
+ const arrows = document.querySelector("#arrows");
+ if (event.target.checked) {
+ arrows.setAttribute("visibility", "visible");
+ } else {
+ arrows.setAttribute("visibility", "hidden");
+ }
+}
+
+window.addEventListener("resize", drawArrows);
+document.addEventListener("DOMContentLoaded", function() {
+ // Whenever we show invocation, locations change, i.e. we
+ // need to redraw arrows.
+ document
+ .querySelector('input[id="showinvocation"]')
+ .addEventListener("click", drawArrows);
+ // Hiding irrelevant lines also should cause arrow rerender.
+ document
+ .querySelector('input[name="showCounterexample"]')
+ .addEventListener("change", drawArrows);
+ document
+ .querySelector('input[name="showArrows"]')
+ .addEventListener("change", toggleArrows);
+ drawArrows();
+ // Default highlighting for the last event.
+ highlightArrowsForSelectedEvent();
+});
+</script>
+
+<script type='text/javascript'>
+var digitMatcher = new RegExp("[0-9]+");
+
+var querySelectorAllArray = function(selector) {
+ return Array.prototype.slice.call(
+ document.querySelectorAll(selector));
+}
+
+document.addEventListener("DOMContentLoaded", function() {
+ querySelectorAllArray(".PathNav > a").forEach(
+ function(currentValue, currentIndex) {
+ var hrefValue = currentValue.getAttribute("href");
+ currentValue.onclick = function() {
+ scrollTo(document.querySelector(hrefValue));
+ return false;
+ };
+ });
+});
+
+var findNum = function() {
+ var s = document.querySelector(".msg.selected");
+ if (!s || s.id == "EndPath") {
+ return 0;
+ }
+ var out = parseInt(digitMatcher.exec(s.id)[0]);
+ return out;
+};
+
+var classListAdd = function(el, theClass) {
+ if(!el.className.baseVal)
+ el.className += " " + theClass;
+ else
+ el.className.baseVal += " " + theClass;
+};
+
+var classListRemove = function(el, theClass) {
+ var className = (!el.className.baseVal) ?
+ el.className : el.className.baseVal;
+ className = className.replace(" " + theClass, "");
+ if(!el.className.baseVal)
+ el.className = className;
+ else
+ el.className.baseVal = className;
+};
+
+var scrollTo = function(el) {
+ querySelectorAllArray(".selected").forEach(function(s) {
+ classListRemove(s, "selected");
+ });
+ classListAdd(el, "selected");
+ window.scrollBy(0, el.getBoundingClientRect().top -
+ (window.innerHeight / 2));
+ highlightArrowsForSelectedEvent();
+};
+
+var move = function(num, up, numItems) {
+ if (num == 1 && up || num == numItems - 1 && !up) {
+ return 0;
+ } else if (num == 0 && up) {
+ return numItems - 1;
+ } else if (num == 0 && !up) {
+ return 1 % numItems;
+ }
+ return up ? num - 1 : num + 1;
+}
+
+var numToId = function(num) {
+ if (num == 0) {
+ return document.getElementById("EndPath")
+ }
+ return document.getElementById("Path" + num);
+};
+
+var navigateTo = function(up) {
+ var numItems = document.querySelectorAll(
+ ".line > .msgEvent, .line > .msgControl").length;
+ var currentSelected = findNum();
+ var newSelected = move(currentSelected, up, numItems);
+ var newEl = numToId(newSelected, numItems);
+
+ // Scroll element into center.
+ scrollTo(newEl);
+};
+
+window.addEventListener("keydown", function (event) {
+ if (event.defaultPrevented) {
+ return;
+ }
+ // key 'j'
+ if (event.keyCode == 74) {
+ navigateTo(/*up=*/false);
+ // key 'k'
+ } else if (event.keyCode == 75) {
+ navigateTo(/*up=*/true);
+ } else {
+ return;
+ }
+ event.preventDefault();
+}, true);
+</script>
+
+<script type='text/javascript'>
+
+var toggleHelp = function() {
+ var hint = document.querySelector("#tooltiphint");
+ var attributeName = "hidden";
+ if (hint.hasAttribute(attributeName)) {
+ hint.removeAttribute(attributeName);
+ } else {
+ hint.setAttribute("hidden", "true");
+ }
+};
+window.addEventListener("keydown", function (event) {
+ if (event.defaultPrevented) {
+ return;
+ }
+ if (event.key == "?") {
+ toggleHelp();
+ } else {
+ return;
+ }
+ event.preventDefault();
+});
+</script>
+
+<style type="text/css">
+ svg {
+ position:absolute;
+ top:0;
+ left:0;
+ height:100%;
+ width:100%;
+ pointer-events: none;
+ overflow: visible
+ }
+ .arrow {
+ stroke-opacity: 0.2;
+ stroke-width: 1;
+ marker-end: url(#arrowhead);
+ }
+
+ .arrow.selected {
+ stroke-opacity: 0.6;
+ stroke-width: 2;
+ marker-end: url(#arrowheadSelected);
+ }
+
+ .arrowhead {
+ orient: auto;
+ stroke: none;
+ opacity: 0.6;
+ fill: blue;
+ }
+</style>
+<svg xmlns="http://www.w3.org/2000/svg">
+ <defs>
+ <marker id="arrowheadSelected" class="arrowhead" opacity="0.6"
+ viewBox="0 0 10 10" refX="3" refY="5"
+ markerWidth="4" markerHeight="4">
+ <path d="M 0 0 L 10 5 L 0 10 z" />
+ </marker>
+ <marker id="arrowhead" class="arrowhead" opacity="0.2"
+ viewBox="0 0 10 10" refX="3" refY="5"
+ markerWidth="4" markerHeight="4">
+ <path d="M 0 0 L 10 5 L 0 10 z" />
+ </marker>
+ </defs>
+ <g id="arrows" fill="none" stroke="blue" visibility="hidden">
+
+ </g>
+</svg>
+<script type='text/javascript'>
+const arrowIndices = [ 0,0 ]
+</script>
+<table class="code" data-fileid="1">
+<tr class="codeline" data-linenumber="1"><td class="num" id="LN1">1</td><td class="line"><span class='comment'>/*</span></td></tr>
+<tr class="codeline" data-linenumber="2"><td class="num" id="LN2">2</td><td class="line"> <span class='comment'>* Copyright (C) 2007 Novell, Inc.</span></td></tr>
+<tr class="codeline" data-linenumber="3"><td class="num" id="LN3">3</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="4"><td class="num" id="LN4">4</td><td class="line"> <span class='comment'>* Inspired by various other pieces of code including GsmClient (C)</span></td></tr>
+<tr class="codeline" data-linenumber="5"><td class="num" id="LN5">5</td><td class="line"> <span class='comment'>* 2001 Havoc Pennington, MateClient (C) 1998 Carsten Schaar, and twm</span></td></tr>
+<tr class="codeline" data-linenumber="6"><td class="num" id="LN6">6</td><td class="line"> <span class='comment'>* session code (C) 1998 The Open Group.</span></td></tr>
+<tr class="codeline" data-linenumber="7"><td class="num" id="LN7">7</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="8"><td class="num" id="LN8">8</td><td class="line"> <span class='comment'>* This library is free software; you can redistribute it and/or</span></td></tr>
+<tr class="codeline" data-linenumber="9"><td class="num" id="LN9">9</td><td class="line"> <span class='comment'>* modify it under the terms of the GNU Library General Public</span></td></tr>
+<tr class="codeline" data-linenumber="10"><td class="num" id="LN10">10</td><td class="line"> <span class='comment'>* License as published by the Free Software Foundation; either</span></td></tr>
+<tr class="codeline" data-linenumber="11"><td class="num" id="LN11">11</td><td class="line"> <span class='comment'>* version 2 of the License, or (at your option) any later version.</span></td></tr>
+<tr class="codeline" data-linenumber="12"><td class="num" id="LN12">12</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="13"><td class="num" id="LN13">13</td><td class="line"> <span class='comment'>* This library is distributed in the hope that it will be useful,</span></td></tr>
+<tr class="codeline" data-linenumber="14"><td class="num" id="LN14">14</td><td class="line"> <span class='comment'>* but WITHOUT ANY WARRANTY; without even the implied warranty of</span></td></tr>
+<tr class="codeline" data-linenumber="15"><td class="num" id="LN15">15</td><td class="line"> <span class='comment'>* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</span></td></tr>
+<tr class="codeline" data-linenumber="16"><td class="num" id="LN16">16</td><td class="line"> <span class='comment'>* Library General Public License for more details.</span></td></tr>
+<tr class="codeline" data-linenumber="17"><td class="num" id="LN17">17</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="18"><td class="num" id="LN18">18</td><td class="line"> <span class='comment'>* You should have received a copy of the GNU Library General Public</span></td></tr>
+<tr class="codeline" data-linenumber="19"><td class="num" id="LN19">19</td><td class="line"> <span class='comment'>* License along with this library; if not, write to the</span></td></tr>
+<tr class="codeline" data-linenumber="20"><td class="num" id="LN20">20</td><td class="line"> <span class='comment'>* Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,</span></td></tr>
+<tr class="codeline" data-linenumber="21"><td class="num" id="LN21">21</td><td class="line"> <span class='comment'>* Boston, MA 02110-1301, USA.</span></td></tr>
+<tr class="codeline" data-linenumber="22"><td class="num" id="LN22">22</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="23"><td class="num" id="LN23">23</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="24"><td class="num" id="LN24">24</td><td class="line"><span class='directive'>#include "config.h"</span></td></tr>
+<tr class="codeline" data-linenumber="25"><td class="num" id="LN25">25</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="26"><td class="num" id="LN26">26</td><td class="line"><span class='directive'>#include "eggsmclient.h"</span></td></tr>
+<tr class="codeline" data-linenumber="27"><td class="num" id="LN27">27</td><td class="line"><span class='directive'>#include "eggsmclient-private.h"</span></td></tr>
+<tr class="codeline" data-linenumber="28"><td class="num" id="LN28">28</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="29"><td class="num" id="LN29">29</td><td class="line"><span class='directive'>#include "eggdesktopfile.h"</span></td></tr>
+<tr class="codeline" data-linenumber="30"><td class="num" id="LN30">30</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="31"><td class="num" id="LN31">31</td><td class="line"><span class='directive'>#include &lt;<span class='macro'>errno<span class='macro_popup'>(*__errno_location ())</span></span>.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="32"><td class="num" id="LN32">32</td><td class="line"><span class='directive'>#include &lt;fcntl.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="33"><td class="num" id="LN33">33</td><td class="line"><span class='directive'>#include &lt;stdlib.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="34"><td class="num" id="LN34">34</td><td class="line"><span class='directive'>#include &lt;string.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="35"><td class="num" id="LN35">35</td><td class="line"><span class='directive'>#include &lt;unistd.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="36"><td class="num" id="LN36">36</td><td class="line"><span class='directive'>#include &lt;X11/SM/SMlib.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="37"><td class="num" id="LN37">37</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="38"><td class="num" id="LN38">38</td><td class="line"><span class='directive'>#include &lt;gtk/gtk.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="39"><td class="num" id="LN39">39</td><td class="line"><span class='directive'>#include &lt;gdk/gdk.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="40"><td class="num" id="LN40">40</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="41"><td class="num" id="LN41">41</td><td class="line"><span class='directive'>#ifdef GDK_WINDOWING_X11</span></td></tr>
+<tr class="codeline" data-linenumber="42"><td class="num" id="LN42">42</td><td class="line"><span class='directive'>#include &lt;gdk/gdkx.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="43"><td class="num" id="LN43">43</td><td class="line"><span class='directive'>#endif</span></td></tr>
+<tr class="codeline" data-linenumber="44"><td class="num" id="LN44">44</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="45"><td class="num" id="LN45">45</td><td class="line"><span class='directive'>#define <span class='macro'>EGG_TYPE_SM_CLIENT_XSMP<span class='macro_popup'>(egg_sm_client_xsmp_get_type ())</span></span> (egg_sm_client_xsmp_get_type ())</span></td></tr>
+<tr class="codeline" data-linenumber="46"><td class="num" id="LN46">46</td><td class="line"><span class='directive'>#define <span class='macro'>EGG_SM_CLIENT_XSMP(obj)<span class='macro_popup'>((((EggSMClientXSMP*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((obj)), ((egg_sm_client_xsmp_get_type ()))))))</span></span> (<span class='macro'>G_TYPE_CHECK_INSTANCE_CAST ((obj), EGG_TYPE_SM_CLIENT_XSMP, EggSMClientXSMP)<span class='macro_popup'>(((EggSMClientXSMP*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((obj)), ((egg_sm_client_xsmp_get_type ())))))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="47"><td class="num" id="LN47">47</td><td class="line"><span class='directive'>#define <span class='macro'>EGG_SM_CLIENT_XSMP_CLASS(klass)<span class='macro_popup'>((((EggSMClientXSMPClass*) (void *) g_type_check_class_cast (<br>(GTypeClass*) ((klass)), ((egg_sm_client_xsmp_get_type ()))))<br>))</span></span> (<span class='macro'>G_TYPE_CHECK_CLASS_CAST ((klass), EGG_TYPE_SM_CLIENT_XSMP, EggSMClientXSMPClass)<span class='macro_popup'>(((EggSMClientXSMPClass*) (void *) g_type_check_class_cast ((<br>GTypeClass*) ((klass)), ((egg_sm_client_xsmp_get_type ())))))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="48"><td class="num" id="LN48">48</td><td class="line"><span class='directive'>#define <span class='macro'>EGG_IS_SM_CLIENT_XSMP(obj)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(obj)); GType __t = ((egg_sm_client_xsmp_get_type ())); gboolean<br> __r; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span> (<span class='macro'>G_TYPE_CHECK_INSTANCE_TYPE ((obj), EGG_TYPE_SM_CLIENT_XSMP)<span class='macro_popup'>((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(obj)); GType __t = ((egg_sm_client_xsmp_get_type ())); gboolean<br> __r; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; })))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="49"><td class="num" id="LN49">49</td><td class="line"><span class='directive'>#define <span class='macro'>EGG_IS_SM_CLIENT_XSMP_CLASS(klass)<span class='macro_popup'>(((__extension__ ({ GTypeClass *__class = (GTypeClass*) ((klass<br>)); GType __t = ((egg_sm_client_xsmp_get_type ())); gboolean __r<br>; if (!__class) __r = (0); else if (__class-&gt;g_type == __t<br>) __r = (!(0)); else __r = g_type_check_class_is_a (__class, __t<br>); __r; }))))</span></span> (<span class='macro'>G_TYPE_CHECK_CLASS_TYPE ((klass), EGG_TYPE_SM_CLIENT_XSMP)<span class='macro_popup'>((__extension__ ({ GTypeClass *__class = (GTypeClass*) ((klass<br>)); GType __t = ((egg_sm_client_xsmp_get_type ())); gboolean __r<br>; if (!__class) __r = (0); else if (__class-&gt;g_type == __t<br>) __r = (!(0)); else __r = g_type_check_class_is_a (__class, __t<br>); __r; })))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="50"><td class="num" id="LN50">50</td><td class="line"><span class='directive'>#define <span class='macro'>EGG_SM_CLIENT_XSMP_GET_CLASS(obj)<span class='macro_popup'>((((EggSMClientXSMPClass*) (((GTypeInstance*) ((obj)))-&gt;g_class<br>))))</span></span> (<span class='macro'>G_TYPE_INSTANCE_GET_CLASS ((obj), EGG_TYPE_SM_CLIENT_XSMP, EggSMClientXSMPClass)<span class='macro_popup'>(((EggSMClientXSMPClass*) (((GTypeInstance*) ((obj)))-&gt;g_class<br>)))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="51"><td class="num" id="LN51">51</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="52"><td class="num" id="LN52">52</td><td class="line"><span class='keyword'>typedef</span> <span class='keyword'>struct</span> _EggSMClientXSMP EggSMClientXSMP;</td></tr>
+<tr class="codeline" data-linenumber="53"><td class="num" id="LN53">53</td><td class="line"><span class='keyword'>typedef</span> <span class='keyword'>struct</span> _EggSMClientXSMPClass EggSMClientXSMPClass;</td></tr>
+<tr class="codeline" data-linenumber="54"><td class="num" id="LN54">54</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="55"><td class="num" id="LN55">55</td><td class="line"><span class='comment'>/* These mostly correspond to the similarly-named states in section</span></td></tr>
+<tr class="codeline" data-linenumber="56"><td class="num" id="LN56">56</td><td class="line"> <span class='comment'>* 9.1 of the XSMP spec. Some of the states there aren't represented</span></td></tr>
+<tr class="codeline" data-linenumber="57"><td class="num" id="LN57">57</td><td class="line"> <span class='comment'>* here, because we don't need them. SHUTDOWN_CANCELLED is slightly</span></td></tr>
+<tr class="codeline" data-linenumber="58"><td class="num" id="LN58">58</td><td class="line"> <span class='comment'>* different from the spec; we use it when the client is IDLE after a</span></td></tr>
+<tr class="codeline" data-linenumber="59"><td class="num" id="LN59">59</td><td class="line"> <span class='comment'>* ShutdownCancelled message, but the application is still interacting</span></td></tr>
+<tr class="codeline" data-linenumber="60"><td class="num" id="LN60">60</td><td class="line"> <span class='comment'>* and doesn't know the shutdown has been cancelled yet.</span></td></tr>
+<tr class="codeline" data-linenumber="61"><td class="num" id="LN61">61</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="62"><td class="num" id="LN62">62</td><td class="line"><span class='keyword'>typedef</span> <span class='keyword'>enum</span></td></tr>
+<tr class="codeline" data-linenumber="63"><td class="num" id="LN63">63</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="64"><td class="num" id="LN64">64</td><td class="line"> XSMP_STATE_IDLE,</td></tr>
+<tr class="codeline" data-linenumber="65"><td class="num" id="LN65">65</td><td class="line"> XSMP_STATE_SAVE_YOURSELF,</td></tr>
+<tr class="codeline" data-linenumber="66"><td class="num" id="LN66">66</td><td class="line"> XSMP_STATE_INTERACT_REQUEST,</td></tr>
+<tr class="codeline" data-linenumber="67"><td class="num" id="LN67">67</td><td class="line"> XSMP_STATE_INTERACT,</td></tr>
+<tr class="codeline" data-linenumber="68"><td class="num" id="LN68">68</td><td class="line"> XSMP_STATE_SAVE_YOURSELF_DONE,</td></tr>
+<tr class="codeline" data-linenumber="69"><td class="num" id="LN69">69</td><td class="line"> XSMP_STATE_SHUTDOWN_CANCELLED,</td></tr>
+<tr class="codeline" data-linenumber="70"><td class="num" id="LN70">70</td><td class="line"> XSMP_STATE_CONNECTION_CLOSED</td></tr>
+<tr class="codeline" data-linenumber="71"><td class="num" id="LN71">71</td><td class="line">} EggSMClientXSMPState;</td></tr>
+<tr class="codeline" data-linenumber="72"><td class="num" id="LN72">72</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="73"><td class="num" id="LN73">73</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>const</span> <span class='keyword'>char</span> *state_names[] =</td></tr>
+<tr class="codeline" data-linenumber="74"><td class="num" id="LN74">74</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="75"><td class="num" id="LN75">75</td><td class="line"> <span class='string_literal'>"idle"</span>,</td></tr>
+<tr class="codeline" data-linenumber="76"><td class="num" id="LN76">76</td><td class="line"> <span class='string_literal'>"save-yourself"</span>,</td></tr>
+<tr class="codeline" data-linenumber="77"><td class="num" id="LN77">77</td><td class="line"> <span class='string_literal'>"interact-request"</span>,</td></tr>
+<tr class="codeline" data-linenumber="78"><td class="num" id="LN78">78</td><td class="line"> <span class='string_literal'>"interact"</span>,</td></tr>
+<tr class="codeline" data-linenumber="79"><td class="num" id="LN79">79</td><td class="line"> <span class='string_literal'>"save-yourself-done"</span>,</td></tr>
+<tr class="codeline" data-linenumber="80"><td class="num" id="LN80">80</td><td class="line"> <span class='string_literal'>"shutdown-cancelled"</span>,</td></tr>
+<tr class="codeline" data-linenumber="81"><td class="num" id="LN81">81</td><td class="line"> <span class='string_literal'>"connection-closed"</span></td></tr>
+<tr class="codeline" data-linenumber="82"><td class="num" id="LN82">82</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="83"><td class="num" id="LN83">83</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="84"><td class="num" id="LN84">84</td><td class="line"><span class='directive'>#define <span class='macro'>EGG_SM_CLIENT_XSMP_STATE(xsmp)<span class='macro_popup'>(state_names[(xsmp)-&gt;state])</span></span> (state_names[(xsmp)-&gt;state])</span></td></tr>
+<tr class="codeline" data-linenumber="85"><td class="num" id="LN85">85</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="86"><td class="num" id="LN86">86</td><td class="line"><span class='keyword'>struct</span> _EggSMClientXSMP</td></tr>
+<tr class="codeline" data-linenumber="87"><td class="num" id="LN87">87</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="88"><td class="num" id="LN88">88</td><td class="line"> EggSMClient parent;</td></tr>
+<tr class="codeline" data-linenumber="89"><td class="num" id="LN89">89</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="90"><td class="num" id="LN90">90</td><td class="line"> SmcConn connection;</td></tr>
+<tr class="codeline" data-linenumber="91"><td class="num" id="LN91">91</td><td class="line"> <span class='keyword'>char</span> *client_id;</td></tr>
+<tr class="codeline" data-linenumber="92"><td class="num" id="LN92">92</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="93"><td class="num" id="LN93">93</td><td class="line"> EggSMClientXSMPState state;</td></tr>
+<tr class="codeline" data-linenumber="94"><td class="num" id="LN94">94</td><td class="line"> <span class='keyword'>char</span> **restart_command;</td></tr>
+<tr class="codeline" data-linenumber="95"><td class="num" id="LN95">95</td><td class="line"> gboolean set_restart_command;</td></tr>
+<tr class="codeline" data-linenumber="96"><td class="num" id="LN96">96</td><td class="line"> <span class='keyword'>int</span> restart_style;</td></tr>
+<tr class="codeline" data-linenumber="97"><td class="num" id="LN97">97</td><td class="line"> <span class='keyword'>char</span> **discard_command;</td></tr>
+<tr class="codeline" data-linenumber="98"><td class="num" id="LN98">98</td><td class="line"> gboolean set_discard_command;</td></tr>
+<tr class="codeline" data-linenumber="99"><td class="num" id="LN99">99</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="100"><td class="num" id="LN100">100</td><td class="line"> guint idle;</td></tr>
+<tr class="codeline" data-linenumber="101"><td class="num" id="LN101">101</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="102"><td class="num" id="LN102">102</td><td class="line"> <span class='comment'>/* Current SaveYourself state */</span></td></tr>
+<tr class="codeline" data-linenumber="103"><td class="num" id="LN103">103</td><td class="line"> guint expecting_initial_save_yourself : 1;</td></tr>
+<tr class="codeline" data-linenumber="104"><td class="num" id="LN104">104</td><td class="line"> guint need_save_state : 1;</td></tr>
+<tr class="codeline" data-linenumber="105"><td class="num" id="LN105">105</td><td class="line"> guint need_quit_requested : 1;</td></tr>
+<tr class="codeline" data-linenumber="106"><td class="num" id="LN106">106</td><td class="line"> guint interact_errors : 1;</td></tr>
+<tr class="codeline" data-linenumber="107"><td class="num" id="LN107">107</td><td class="line"> guint shutting_down : 1;</td></tr>
+<tr class="codeline" data-linenumber="108"><td class="num" id="LN108">108</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="109"><td class="num" id="LN109">109</td><td class="line"> <span class='comment'>/* Todo list */</span></td></tr>
+<tr class="codeline" data-linenumber="110"><td class="num" id="LN110">110</td><td class="line"> guint waiting_to_set_initial_properties : 1;</td></tr>
+<tr class="codeline" data-linenumber="111"><td class="num" id="LN111">111</td><td class="line"> guint waiting_to_emit_quit : 1;</td></tr>
+<tr class="codeline" data-linenumber="112"><td class="num" id="LN112">112</td><td class="line"> guint waiting_to_emit_quit_cancelled : 1;</td></tr>
+<tr class="codeline" data-linenumber="113"><td class="num" id="LN113">113</td><td class="line"> guint waiting_to_save_myself : 1;</td></tr>
+<tr class="codeline" data-linenumber="114"><td class="num" id="LN114">114</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="115"><td class="num" id="LN115">115</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="116"><td class="num" id="LN116">116</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="117"><td class="num" id="LN117">117</td><td class="line"><span class='keyword'>struct</span> _EggSMClientXSMPClass</td></tr>
+<tr class="codeline" data-linenumber="118"><td class="num" id="LN118">118</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="119"><td class="num" id="LN119">119</td><td class="line"> EggSMClientClass parent_class;</td></tr>
+<tr class="codeline" data-linenumber="120"><td class="num" id="LN120">120</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="121"><td class="num" id="LN121">121</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="122"><td class="num" id="LN122">122</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="123"><td class="num" id="LN123">123</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> sm_client_xsmp_startup (EggSMClient *client,</td></tr>
+<tr class="codeline" data-linenumber="124"><td class="num" id="LN124">124</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *client_id);</td></tr>
+<tr class="codeline" data-linenumber="125"><td class="num" id="LN125">125</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> sm_client_xsmp_set_restart_command (EggSMClient *client,</td></tr>
+<tr class="codeline" data-linenumber="126"><td class="num" id="LN126">126</td><td class="line"> <span class='keyword'>int</span> argc,</td></tr>
+<tr class="codeline" data-linenumber="127"><td class="num" id="LN127">127</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> **argv);</td></tr>
+<tr class="codeline" data-linenumber="128"><td class="num" id="LN128">128</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> sm_client_xsmp_set_discard_command (EggSMClient *client,</td></tr>
+<tr class="codeline" data-linenumber="129"><td class="num" id="LN129">129</td><td class="line"> <span class='keyword'>int</span> argc,</td></tr>
+<tr class="codeline" data-linenumber="130"><td class="num" id="LN130">130</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> **argv);</td></tr>
+<tr class="codeline" data-linenumber="131"><td class="num" id="LN131">131</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> sm_client_xsmp_will_quit (EggSMClient *client,</td></tr>
+<tr class="codeline" data-linenumber="132"><td class="num" id="LN132">132</td><td class="line"> gboolean will_quit);</td></tr>
+<tr class="codeline" data-linenumber="133"><td class="num" id="LN133">133</td><td class="line"><span class='keyword'>static</span> gboolean sm_client_xsmp_end_session (EggSMClient *client,</td></tr>
+<tr class="codeline" data-linenumber="134"><td class="num" id="LN134">134</td><td class="line"> EggSMClientEndStyle style,</td></tr>
+<tr class="codeline" data-linenumber="135"><td class="num" id="LN135">135</td><td class="line"> gboolean request_confirmation);</td></tr>
+<tr class="codeline" data-linenumber="136"><td class="num" id="LN136">136</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="137"><td class="num" id="LN137">137</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> xsmp_save_yourself (SmcConn smc_conn,</td></tr>
+<tr class="codeline" data-linenumber="138"><td class="num" id="LN138">138</td><td class="line"> SmPointer client_data,</td></tr>
+<tr class="codeline" data-linenumber="139"><td class="num" id="LN139">139</td><td class="line"> <span class='keyword'>int</span> save_style,</td></tr>
+<tr class="codeline" data-linenumber="140"><td class="num" id="LN140">140</td><td class="line"> <span class='macro'>Bool<span class='macro_popup'>int</span></span> shutdown,</td></tr>
+<tr class="codeline" data-linenumber="141"><td class="num" id="LN141">141</td><td class="line"> <span class='keyword'>int</span> interact_style,</td></tr>
+<tr class="codeline" data-linenumber="142"><td class="num" id="LN142">142</td><td class="line"> <span class='macro'>Bool<span class='macro_popup'>int</span></span> fast);</td></tr>
+<tr class="codeline" data-linenumber="143"><td class="num" id="LN143">143</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> xsmp_die (SmcConn smc_conn,</td></tr>
+<tr class="codeline" data-linenumber="144"><td class="num" id="LN144">144</td><td class="line"> SmPointer client_data);</td></tr>
+<tr class="codeline" data-linenumber="145"><td class="num" id="LN145">145</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> xsmp_save_complete (SmcConn smc_conn,</td></tr>
+<tr class="codeline" data-linenumber="146"><td class="num" id="LN146">146</td><td class="line"> SmPointer client_data);</td></tr>
+<tr class="codeline" data-linenumber="147"><td class="num" id="LN147">147</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> xsmp_shutdown_cancelled (SmcConn smc_conn,</td></tr>
+<tr class="codeline" data-linenumber="148"><td class="num" id="LN148">148</td><td class="line"> SmPointer client_data);</td></tr>
+<tr class="codeline" data-linenumber="149"><td class="num" id="LN149">149</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> xsmp_interact (SmcConn smc_conn,</td></tr>
+<tr class="codeline" data-linenumber="150"><td class="num" id="LN150">150</td><td class="line"> SmPointer client_data);</td></tr>
+<tr class="codeline" data-linenumber="151"><td class="num" id="LN151">151</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="152"><td class="num" id="LN152">152</td><td class="line"><span class='keyword'>static</span> SmProp *array_prop (<span class='keyword'>const</span> <span class='keyword'>char</span> *name,</td></tr>
+<tr class="codeline" data-linenumber="153"><td class="num" id="LN153">153</td><td class="line"> ...);</td></tr>
+<tr class="codeline" data-linenumber="154"><td class="num" id="LN154">154</td><td class="line"><span class='keyword'>static</span> SmProp *ptrarray_prop (<span class='keyword'>const</span> <span class='keyword'>char</span> *name,</td></tr>
+<tr class="codeline" data-linenumber="155"><td class="num" id="LN155">155</td><td class="line"> GPtrArray *values);</td></tr>
+<tr class="codeline" data-linenumber="156"><td class="num" id="LN156">156</td><td class="line"><span class='keyword'>static</span> SmProp *string_prop (<span class='keyword'>const</span> <span class='keyword'>char</span> *name,</td></tr>
+<tr class="codeline" data-linenumber="157"><td class="num" id="LN157">157</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *value);</td></tr>
+<tr class="codeline" data-linenumber="158"><td class="num" id="LN158">158</td><td class="line"><span class='keyword'>static</span> SmProp *card8_prop (<span class='keyword'>const</span> <span class='keyword'>char</span> *name,</td></tr>
+<tr class="codeline" data-linenumber="159"><td class="num" id="LN159">159</td><td class="line"> <span class='keyword'>unsigned</span> <span class='keyword'>char</span> value);</td></tr>
+<tr class="codeline" data-linenumber="160"><td class="num" id="LN160">160</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="161"><td class="num" id="LN161">161</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> set_properties (EggSMClientXSMP *xsmp, ...);</td></tr>
+<tr class="codeline" data-linenumber="162"><td class="num" id="LN162">162</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> delete_properties (EggSMClientXSMP *xsmp, ...);</td></tr>
+<tr class="codeline" data-linenumber="163"><td class="num" id="LN163">163</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="164"><td class="num" id="LN164">164</td><td class="line"><span class='keyword'>static</span> GPtrArray *generate_command (<span class='keyword'>char</span> **restart_command,</td></tr>
+<tr class="codeline" data-linenumber="165"><td class="num" id="LN165">165</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *client_id,</td></tr>
+<tr class="codeline" data-linenumber="166"><td class="num" id="LN166">166</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *state_file);</td></tr>
+<tr class="codeline" data-linenumber="167"><td class="num" id="LN167">167</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="168"><td class="num" id="LN168">168</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> save_state (EggSMClientXSMP *xsmp);</td></tr>
+<tr class="codeline" data-linenumber="169"><td class="num" id="LN169">169</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> do_save_yourself (EggSMClientXSMP *xsmp);</td></tr>
+<tr class="codeline" data-linenumber="170"><td class="num" id="LN170">170</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> update_pending_events (EggSMClientXSMP *xsmp);</td></tr>
+<tr class="codeline" data-linenumber="171"><td class="num" id="LN171">171</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="172"><td class="num" id="LN172">172</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> ice_init (<span class='keyword'>void</span>);</td></tr>
+<tr class="codeline" data-linenumber="173"><td class="num" id="LN173">173</td><td class="line"><span class='keyword'>static</span> gboolean process_ice_messages (IceConn ice_conn);</td></tr>
+<tr class="codeline" data-linenumber="174"><td class="num" id="LN174">174</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> smc_error_handler (SmcConn smc_conn,</td></tr>
+<tr class="codeline" data-linenumber="175"><td class="num" id="LN175">175</td><td class="line"> <span class='macro'>Bool<span class='macro_popup'>int</span></span> swap,</td></tr>
+<tr class="codeline" data-linenumber="176"><td class="num" id="LN176">176</td><td class="line"> <span class='keyword'>int</span> offending_minor_opcode,</td></tr>
+<tr class="codeline" data-linenumber="177"><td class="num" id="LN177">177</td><td class="line"> <span class='keyword'>unsigned</span> <span class='keyword'>long</span> offending_sequence,</td></tr>
+<tr class="codeline" data-linenumber="178"><td class="num" id="LN178">178</td><td class="line"> <span class='keyword'>int</span> error_class,</td></tr>
+<tr class="codeline" data-linenumber="179"><td class="num" id="LN179">179</td><td class="line"> <span class='keyword'>int</span> severity,</td></tr>
+<tr class="codeline" data-linenumber="180"><td class="num" id="LN180">180</td><td class="line"> SmPointer values);</td></tr>
+<tr class="codeline" data-linenumber="181"><td class="num" id="LN181">181</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="182"><td class="num" id="LN182">182</td><td class="line"><span class='macro'>G_DEFINE_TYPE (EggSMClientXSMP, egg_sm_client_xsmp, EGG_TYPE_SM_CLIENT)<span class='macro_popup'>static void egg_sm_client_xsmp_init (EggSMClientXSMP *self); static<br> void egg_sm_client_xsmp_class_init (EggSMClientXSMPClass *klass<br>); static GType egg_sm_client_xsmp_get_type_once (void); static<br> gpointer egg_sm_client_xsmp_parent_class = ((void*)0); static<br> gint EggSMClientXSMP_private_offset; static void egg_sm_client_xsmp_class_intern_init<br> (gpointer klass) { egg_sm_client_xsmp_parent_class = g_type_class_peek_parent<br> (klass); if (EggSMClientXSMP_private_offset != 0) g_type_class_adjust_private_offset<br> (klass, &amp;EggSMClientXSMP_private_offset); egg_sm_client_xsmp_class_init<br> ((EggSMClientXSMPClass*) klass); } __attribute__ ((__unused__<br>)) static inline gpointer egg_sm_client_xsmp_get_instance_private<br> (EggSMClientXSMP *self) { return (((gpointer) ((guint8*) (self<br>) + (glong) (EggSMClientXSMP_private_offset)))); } GType egg_sm_client_xsmp_get_type<br> (void) { static gsize static_g_define_type_id = 0; if ((__extension__<br> ({ _Static_assert (sizeof *(&amp;static_g_define_type_id) ==<br> sizeof (gpointer), "Expression evaluates to false"); (void) (<br>0 ? (gpointer) *(&amp;static_g_define_type_id) : ((void*)0));<br> (!(__extension__ ({ _Static_assert (sizeof *(&amp;static_g_define_type_id<br>) == sizeof (gpointer), "Expression evaluates to false"); __typeof__<br> (*(&amp;static_g_define_type_id)) gapg_temp_newval; __typeof__<br> ((&amp;static_g_define_type_id)) gapg_temp_atomic = (&amp;static_g_define_type_id<br>); __atomic_load (gapg_temp_atomic, &amp;gapg_temp_newval, 5)<br>; gapg_temp_newval; })) &amp;&amp; g_once_init_enter (&amp;static_g_define_type_id<br>)); }))) { GType g_define_type_id = egg_sm_client_xsmp_get_type_once<br> (); (__extension__ ({ _Static_assert (sizeof *(&amp;static_g_define_type_id<br>) == sizeof (gpointer), "Expression evaluates to false"); 0 ?<br> (void) (*(&amp;static_g_define_type_id) = (g_define_type_id)<br>) : (void) 0; g_once_init_leave ((&amp;static_g_define_type_id<br>), (gsize) (g_define_type_id)); })); } return static_g_define_type_id<br>; } __attribute__ ((__noinline__)) static GType egg_sm_client_xsmp_get_type_once<br> (void) { GType g_define_type_id = g_type_register_static_simple<br> ((egg_sm_client_get_type ()), g_intern_static_string ("EggSMClientXSMP"<br>), sizeof (EggSMClientXSMPClass), (GClassInitFunc)(void (*)(void<br>)) egg_sm_client_xsmp_class_intern_init, sizeof (EggSMClientXSMP<br>), (GInstanceInitFunc)(void (*)(void)) egg_sm_client_xsmp_init<br>, (GTypeFlags) 0); { {{};} } return g_define_type_id; }</span></span></td></tr>
+<tr class="codeline" data-linenumber="183"><td class="num" id="LN183">183</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="184"><td class="num" id="LN184">184</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="185"><td class="num" id="LN185">185</td><td class="line">egg_sm_client_xsmp_init (EggSMClientXSMP *xsmp)</td></tr>
+<tr class="codeline" data-linenumber="186"><td class="num" id="LN186">186</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="187"><td class="num" id="LN187">187</td><td class="line"> xsmp-&gt;state = XSMP_STATE_CONNECTION_CLOSED;</td></tr>
+<tr class="codeline" data-linenumber="188"><td class="num" id="LN188">188</td><td class="line"> xsmp-&gt;connection = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="189"><td class="num" id="LN189">189</td><td class="line"> xsmp-&gt;restart_style = <span class='macro'>SmRestartIfRunning<span class='macro_popup'>0</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="190"><td class="num" id="LN190">190</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="191"><td class="num" id="LN191">191</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="192"><td class="num" id="LN192">192</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="193"><td class="num" id="LN193">193</td><td class="line">egg_sm_client_xsmp_class_init (EggSMClientXSMPClass *klass)</td></tr>
+<tr class="codeline" data-linenumber="194"><td class="num" id="LN194">194</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="195"><td class="num" id="LN195">195</td><td class="line"> EggSMClientClass *sm_client_class = EGG_SM_CLIENT_CLASS (klass);</td></tr>
+<tr class="codeline" data-linenumber="196"><td class="num" id="LN196">196</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="197"><td class="num" id="LN197">197</td><td class="line"> sm_client_class-&gt;startup = sm_client_xsmp_startup;</td></tr>
+<tr class="codeline" data-linenumber="198"><td class="num" id="LN198">198</td><td class="line"> sm_client_class-&gt;set_restart_command = sm_client_xsmp_set_restart_command;</td></tr>
+<tr class="codeline" data-linenumber="199"><td class="num" id="LN199">199</td><td class="line"> sm_client_class-&gt;set_discard_command = sm_client_xsmp_set_discard_command;</td></tr>
+<tr class="codeline" data-linenumber="200"><td class="num" id="LN200">200</td><td class="line"> sm_client_class-&gt;will_quit = sm_client_xsmp_will_quit;</td></tr>
+<tr class="codeline" data-linenumber="201"><td class="num" id="LN201">201</td><td class="line"> sm_client_class-&gt;end_session = sm_client_xsmp_end_session;</td></tr>
+<tr class="codeline" data-linenumber="202"><td class="num" id="LN202">202</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="203"><td class="num" id="LN203">203</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="204"><td class="num" id="LN204">204</td><td class="line">EggSMClient *</td></tr>
+<tr class="codeline" data-linenumber="205"><td class="num" id="LN205">205</td><td class="line">egg_sm_client_xsmp_new (<span class='keyword'>void</span>)</td></tr>
+<tr class="codeline" data-linenumber="206"><td class="num" id="LN206">206</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="207"><td class="num" id="LN207">207</td><td class="line"> <span class='keyword'>if</span> (!g_getenv (<span class='string_literal'>"SESSION_MANAGER"</span>))</td></tr>
+<tr class="codeline" data-linenumber="208"><td class="num" id="LN208">208</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="209"><td class="num" id="LN209">209</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="210"><td class="num" id="LN210">210</td><td class="line"> <span class='keyword'>return</span> g_object_new (<span class='macro'>EGG_TYPE_SM_CLIENT_XSMP<span class='macro_popup'>(egg_sm_client_xsmp_get_type ())</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="211"><td class="num" id="LN211">211</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="212"><td class="num" id="LN212">212</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="213"><td class="num" id="LN213">213</td><td class="line"><span class='keyword'>static</span> gboolean</td></tr>
+<tr class="codeline" data-linenumber="214"><td class="num" id="LN214">214</td><td class="line">sm_client_xsmp_set_initial_properties (gpointer user_data)</td></tr>
+<tr class="codeline" data-linenumber="215"><td class="num" id="LN215">215</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="216"><td class="num" id="LN216">216</td><td class="line"> EggSMClientXSMP *xsmp = user_data;</td></tr>
+<tr class="codeline" data-linenumber="217"><td class="num" id="LN217">217</td><td class="line"> EggDesktopFile *desktop_file;</td></tr>
+<tr class="codeline" data-linenumber="218"><td class="num" id="LN218">218</td><td class="line"> GPtrArray *clone, *restart;</td></tr>
+<tr class="codeline" data-linenumber="219"><td class="num" id="LN219">219</td><td class="line"> <span class='keyword'>char</span> pid_str[64];</td></tr>
+<tr class="codeline" data-linenumber="220"><td class="num" id="LN220">220</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="221"><td class="num" id="LN221">221</td><td class="line"> <span class='keyword'>if</span> (xsmp-&gt;idle)</td></tr>
+<tr class="codeline" data-linenumber="222"><td class="num" id="LN222">222</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="223"><td class="num" id="LN223">223</td><td class="line"> g_source_remove (xsmp-&gt;idle);</td></tr>
+<tr class="codeline" data-linenumber="224"><td class="num" id="LN224">224</td><td class="line"> xsmp-&gt;idle = 0;</td></tr>
+<tr class="codeline" data-linenumber="225"><td class="num" id="LN225">225</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="226"><td class="num" id="LN226">226</td><td class="line"> xsmp-&gt;waiting_to_set_initial_properties = <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="227"><td class="num" id="LN227">227</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="228"><td class="num" id="LN228">228</td><td class="line"> <span class='keyword'>if</span> (egg_sm_client_get_mode () == EGG_SM_CLIENT_MODE_NO_RESTART)</td></tr>
+<tr class="codeline" data-linenumber="229"><td class="num" id="LN229">229</td><td class="line"> xsmp-&gt;restart_style = <span class='macro'>SmRestartNever<span class='macro_popup'>3</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="230"><td class="num" id="LN230">230</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="231"><td class="num" id="LN231">231</td><td class="line"> <span class='comment'>/* Parse info out of desktop file */</span></td></tr>
+<tr class="codeline" data-linenumber="232"><td class="num" id="LN232">232</td><td class="line"> desktop_file = egg_get_desktop_file ();</td></tr>
+<tr class="codeline" data-linenumber="233"><td class="num" id="LN233">233</td><td class="line"> <span class='keyword'>if</span> (desktop_file)</td></tr>
+<tr class="codeline" data-linenumber="234"><td class="num" id="LN234">234</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="235"><td class="num" id="LN235">235</td><td class="line"> GError *err = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="236"><td class="num" id="LN236">236</td><td class="line"> <span class='keyword'>char</span> **argv;</td></tr>
+<tr class="codeline" data-linenumber="237"><td class="num" id="LN237">237</td><td class="line"> <span class='keyword'>int</span> argc;</td></tr>
+<tr class="codeline" data-linenumber="238"><td class="num" id="LN238">238</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="239"><td class="num" id="LN239">239</td><td class="line"> <span class='keyword'>if</span> (xsmp-&gt;restart_style == <span class='macro'>SmRestartIfRunning<span class='macro_popup'>0</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="240"><td class="num" id="LN240">240</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="241"><td class="num" id="LN241">241</td><td class="line"> <span class='keyword'>if</span> (egg_desktop_file_get_boolean (desktop_file,</td></tr>
+<tr class="codeline" data-linenumber="242"><td class="num" id="LN242">242</td><td class="line"> <span class='string_literal'>"X-MATE-AutoRestart"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="243"><td class="num" id="LN243">243</td><td class="line"> xsmp-&gt;restart_style = <span class='macro'>SmRestartImmediately<span class='macro_popup'>2</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="244"><td class="num" id="LN244">244</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="245"><td class="num" id="LN245">245</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="246"><td class="num" id="LN246">246</td><td class="line"> <span class='keyword'>if</span> (!xsmp-&gt;set_restart_command)</td></tr>
+<tr class="codeline" data-linenumber="247"><td class="num" id="LN247">247</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="248"><td class="num" id="LN248">248</td><td class="line"> <span class='keyword'>char</span> *cmdline;</td></tr>
+<tr class="codeline" data-linenumber="249"><td class="num" id="LN249">249</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="250"><td class="num" id="LN250">250</td><td class="line"> cmdline = egg_desktop_file_parse_exec (desktop_file, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, &amp;err);</td></tr>
+<tr class="codeline" data-linenumber="251"><td class="num" id="LN251">251</td><td class="line"> <span class='keyword'>if</span> (cmdline &amp;&amp; g_shell_parse_argv (cmdline, &amp;argc, &amp;argv, &amp;err))</td></tr>
+<tr class="codeline" data-linenumber="252"><td class="num" id="LN252">252</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="253"><td class="num" id="LN253">253</td><td class="line"> egg_sm_client_set_restart_command (EGG_SM_CLIENT (xsmp),</td></tr>
+<tr class="codeline" data-linenumber="254"><td class="num" id="LN254">254</td><td class="line"> argc, (<span class='keyword'>const</span> <span class='keyword'>char</span> **)argv);</td></tr>
+<tr class="codeline" data-linenumber="255"><td class="num" id="LN255">255</td><td class="line"> g_strfreev (argv);</td></tr>
+<tr class="codeline" data-linenumber="256"><td class="num" id="LN256">256</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="257"><td class="num" id="LN257">257</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="258"><td class="num" id="LN258">258</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="259"><td class="num" id="LN259">259</td><td class="line"> g_warning (<span class='string_literal'>"Could not parse Exec line in desktop file: %s"</span>,</td></tr>
+<tr class="codeline" data-linenumber="260"><td class="num" id="LN260">260</td><td class="line"> err-&gt;message);</td></tr>
+<tr class="codeline" data-linenumber="261"><td class="num" id="LN261">261</td><td class="line"> g_error_free (err);</td></tr>
+<tr class="codeline" data-linenumber="262"><td class="num" id="LN262">262</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="263"><td class="num" id="LN263">263</td><td class="line"> g_free (cmdline);</td></tr>
+<tr class="codeline" data-linenumber="264"><td class="num" id="LN264">264</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="265"><td class="num" id="LN265">265</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="266"><td class="num" id="LN266">266</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="267"><td class="num" id="LN267">267</td><td class="line"> <span class='keyword'>if</span> (!xsmp-&gt;set_restart_command)</td></tr>
+<tr class="codeline" data-linenumber="268"><td class="num" id="LN268">268</td><td class="line"> xsmp-&gt;restart_command = g_strsplit (g_get_prgname (), <span class='string_literal'>" "</span>, -1);</td></tr>
+<tr class="codeline" data-linenumber="269"><td class="num" id="LN269">269</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="270"><td class="num" id="LN270">270</td><td class="line"> clone = generate_command (xsmp-&gt;restart_command, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="271"><td class="num" id="LN271">271</td><td class="line"> restart = generate_command (xsmp-&gt;restart_command, xsmp-&gt;client_id, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="272"><td class="num" id="LN272">272</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="273"><td class="num" id="LN273">273</td><td class="line"> g_debug (<span class='string_literal'>"Setting initial properties"</span>);</td></tr>
+<tr class="codeline" data-linenumber="274"><td class="num" id="LN274">274</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="275"><td class="num" id="LN275">275</td><td class="line"> <span class='comment'>/* Program, CloneCommand, RestartCommand, and UserID are required.</span></td></tr>
+<tr class="codeline" data-linenumber="276"><td class="num" id="LN276">276</td><td class="line"> <span class='comment'>* ProcessID isn't required, but the SM may be able to do something</span></td></tr>
+<tr class="codeline" data-linenumber="277"><td class="num" id="LN277">277</td><td class="line"> <span class='comment'>* useful with it.</span></td></tr>
+<tr class="codeline" data-linenumber="278"><td class="num" id="LN278">278</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="279"><td class="num" id="LN279">279</td><td class="line"> g_snprintf (pid_str, <span class='keyword'>sizeof</span> (pid_str), <span class='string_literal'>"%lu"</span>, (gulong) getpid ());</td></tr>
+<tr class="codeline" data-linenumber="280"><td class="num" id="LN280">280</td><td class="line"> set_properties (xsmp,</td></tr>
+<tr class="codeline" data-linenumber="281"><td class="num" id="LN281">281</td><td class="line"> string_prop (<span class='macro'>SmProgram<span class='macro_popup'>"Program"</span></span>, g_get_prgname ()),</td></tr>
+<tr class="codeline" data-linenumber="282"><td class="num" id="LN282">282</td><td class="line"> ptrarray_prop (<span class='macro'>SmCloneCommand<span class='macro_popup'>"CloneCommand"</span></span>, clone),</td></tr>
+<tr class="codeline" data-linenumber="283"><td class="num" id="LN283">283</td><td class="line"> ptrarray_prop (<span class='macro'>SmRestartCommand<span class='macro_popup'>"RestartCommand"</span></span>, restart),</td></tr>
+<tr class="codeline" data-linenumber="284"><td class="num" id="LN284">284</td><td class="line"> string_prop (<span class='macro'>SmUserID<span class='macro_popup'>"UserID"</span></span>, g_get_user_name ()),</td></tr>
+<tr class="codeline" data-linenumber="285"><td class="num" id="LN285">285</td><td class="line"> string_prop (<span class='macro'>SmProcessID<span class='macro_popup'>"ProcessID"</span></span>, pid_str),</td></tr>
+<tr class="codeline" data-linenumber="286"><td class="num" id="LN286">286</td><td class="line"> card8_prop (<span class='macro'>SmRestartStyleHint<span class='macro_popup'>"RestartStyleHint"</span></span>, xsmp-&gt;restart_style),</td></tr>
+<tr class="codeline" data-linenumber="287"><td class="num" id="LN287">287</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="288"><td class="num" id="LN288">288</td><td class="line"> g_ptr_array_free (clone, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="289"><td class="num" id="LN289">289</td><td class="line"> g_ptr_array_free (restart, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="290"><td class="num" id="LN290">290</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="291"><td class="num" id="LN291">291</td><td class="line"> <span class='keyword'>if</span> (desktop_file)</td></tr>
+<tr class="codeline" data-linenumber="292"><td class="num" id="LN292">292</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="293"><td class="num" id="LN293">293</td><td class="line"> set_properties (xsmp,</td></tr>
+<tr class="codeline" data-linenumber="294"><td class="num" id="LN294">294</td><td class="line"> string_prop (<span class='string_literal'>"_GSM_DesktopFile"</span>, egg_desktop_file_get_source (desktop_file)),</td></tr>
+<tr class="codeline" data-linenumber="295"><td class="num" id="LN295">295</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="296"><td class="num" id="LN296">296</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="297"><td class="num" id="LN297">297</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="298"><td class="num" id="LN298">298</td><td class="line"> update_pending_events (xsmp);</td></tr>
+<tr class="codeline" data-linenumber="299"><td class="num" id="LN299">299</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="300"><td class="num" id="LN300">300</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="301"><td class="num" id="LN301">301</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="302"><td class="num" id="LN302">302</td><td class="line"><span class='comment'>/* This gets called from two different places: xsmp_die() (when the</span></td></tr>
+<tr class="codeline" data-linenumber="303"><td class="num" id="LN303">303</td><td class="line"> <span class='comment'>* server asks us to disconnect) and process_ice_messages() (when the</span></td></tr>
+<tr class="codeline" data-linenumber="304"><td class="num" id="LN304">304</td><td class="line"> <span class='comment'>* server disconnects unexpectedly).</span></td></tr>
+<tr class="codeline" data-linenumber="305"><td class="num" id="LN305">305</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="306"><td class="num" id="LN306">306</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="307"><td class="num" id="LN307">307</td><td class="line">sm_client_xsmp_disconnect (EggSMClientXSMP *xsmp)</td></tr>
+<tr class="codeline" data-linenumber="308"><td class="num" id="LN308">308</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="309"><td class="num" id="LN309">309</td><td class="line"> SmcConn connection;</td></tr>
+<tr class="codeline" data-linenumber="310"><td class="num" id="LN310">310</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="311"><td class="num" id="LN311">311</td><td class="line"> <span class='keyword'>if</span> (!xsmp-&gt;connection)</td></tr>
+<tr class="codeline" data-linenumber="312"><td class="num" id="LN312">312</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="313"><td class="num" id="LN313">313</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="314"><td class="num" id="LN314">314</td><td class="line"> g_debug (<span class='string_literal'>"Disconnecting"</span>);</td></tr>
+<tr class="codeline" data-linenumber="315"><td class="num" id="LN315">315</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="316"><td class="num" id="LN316">316</td><td class="line"> connection = xsmp-&gt;connection;</td></tr>
+<tr class="codeline" data-linenumber="317"><td class="num" id="LN317">317</td><td class="line"> xsmp-&gt;connection = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="318"><td class="num" id="LN318">318</td><td class="line"> SmcCloseConnection (connection, 0, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="319"><td class="num" id="LN319">319</td><td class="line"> xsmp-&gt;state = XSMP_STATE_CONNECTION_CLOSED;</td></tr>
+<tr class="codeline" data-linenumber="320"><td class="num" id="LN320">320</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="321"><td class="num" id="LN321">321</td><td class="line"> xsmp-&gt;waiting_to_save_myself = <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="322"><td class="num" id="LN322">322</td><td class="line"> update_pending_events (xsmp);</td></tr>
+<tr class="codeline" data-linenumber="323"><td class="num" id="LN323">323</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="324"><td class="num" id="LN324">324</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="325"><td class="num" id="LN325">325</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="326"><td class="num" id="LN326">326</td><td class="line">sm_client_xsmp_startup (EggSMClient *client,</td></tr>
+<tr class="codeline" data-linenumber="327"><td class="num" id="LN327">327</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *client_id)</td></tr>
+<tr class="codeline" data-linenumber="328"><td class="num" id="LN328">328</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="329"><td class="num" id="LN329">329</td><td class="line"> EggSMClientXSMP *xsmp = (EggSMClientXSMP *)client;</td></tr>
+<tr class="codeline" data-linenumber="330"><td class="num" id="LN330">330</td><td class="line"> SmcCallbacks callbacks;</td></tr>
+<tr class="codeline" data-linenumber="331"><td class="num" id="LN331">331</td><td class="line"> <span class='keyword'>char</span> *ret_client_id;</td></tr>
+<tr class="codeline" data-linenumber="332"><td class="num" id="LN332">332</td><td class="line"> <span class='keyword'>char</span> error_string_ret[256];</td></tr>
+<tr class="codeline" data-linenumber="333"><td class="num" id="LN333">333</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="334"><td class="num" id="LN334">334</td><td class="line"> xsmp-&gt;client_id = <span class='macro'>g_strdup (client_id)<span class='macro_popup'>g_strdup_inline (client_id)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="335"><td class="num" id="LN335">335</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="336"><td class="num" id="LN336">336</td><td class="line"> ice_init ();</td></tr>
+<tr class="codeline" data-linenumber="337"><td class="num" id="LN337">337</td><td class="line"> SmcSetErrorHandler (smc_error_handler);</td></tr>
+<tr class="codeline" data-linenumber="338"><td class="num" id="LN338">338</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="339"><td class="num" id="LN339">339</td><td class="line"> callbacks.save_yourself.callback = xsmp_save_yourself;</td></tr>
+<tr class="codeline" data-linenumber="340"><td class="num" id="LN340">340</td><td class="line"> callbacks.die.callback = xsmp_die;</td></tr>
+<tr class="codeline" data-linenumber="341"><td class="num" id="LN341">341</td><td class="line"> callbacks.save_complete.callback = xsmp_save_complete;</td></tr>
+<tr class="codeline" data-linenumber="342"><td class="num" id="LN342">342</td><td class="line"> callbacks.shutdown_cancelled.callback = xsmp_shutdown_cancelled;</td></tr>
+<tr class="codeline" data-linenumber="343"><td class="num" id="LN343">343</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="344"><td class="num" id="LN344">344</td><td class="line"> callbacks.save_yourself.client_data = xsmp;</td></tr>
+<tr class="codeline" data-linenumber="345"><td class="num" id="LN345">345</td><td class="line"> callbacks.die.client_data = xsmp;</td></tr>
+<tr class="codeline" data-linenumber="346"><td class="num" id="LN346">346</td><td class="line"> callbacks.save_complete.client_data = xsmp;</td></tr>
+<tr class="codeline" data-linenumber="347"><td class="num" id="LN347">347</td><td class="line"> callbacks.shutdown_cancelled.client_data = xsmp;</td></tr>
+<tr class="codeline" data-linenumber="348"><td class="num" id="LN348">348</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="349"><td class="num" id="LN349">349</td><td class="line"> client_id = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="350"><td class="num" id="LN350">350</td><td class="line"> error_string_ret[0] = '\0';</td></tr>
+<tr class="codeline" data-linenumber="351"><td class="num" id="LN351">351</td><td class="line"> xsmp-&gt;connection =</td></tr>
+<tr class="codeline" data-linenumber="352"><td class="num" id="LN352">352</td><td class="line"> SmcOpenConnection (<span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, xsmp, <span class='macro'>SmProtoMajor<span class='macro_popup'>1</span></span>, <span class='macro'>SmProtoMinor<span class='macro_popup'>0</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="353"><td class="num" id="LN353">353</td><td class="line"> <span class='macro'>SmcSaveYourselfProcMask<span class='macro_popup'>(1L &lt;&lt; 0)</span></span> | <span class='macro'>SmcDieProcMask<span class='macro_popup'>(1L &lt;&lt; 1)</span></span> |</td></tr>
+<tr class="codeline" data-linenumber="354"><td class="num" id="LN354">354</td><td class="line"> <span class='macro'>SmcSaveCompleteProcMask<span class='macro_popup'>(1L &lt;&lt; 2)</span></span> |</td></tr>
+<tr class="codeline" data-linenumber="355"><td class="num" id="LN355">355</td><td class="line"> <span class='macro'>SmcShutdownCancelledProcMask<span class='macro_popup'>(1L &lt;&lt; 3)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="356"><td class="num" id="LN356">356</td><td class="line"> &amp;callbacks,</td></tr>
+<tr class="codeline" data-linenumber="357"><td class="num" id="LN357">357</td><td class="line"> xsmp-&gt;client_id, &amp;ret_client_id,</td></tr>
+<tr class="codeline" data-linenumber="358"><td class="num" id="LN358">358</td><td class="line"> <span class='keyword'>sizeof</span> (error_string_ret), error_string_ret);</td></tr>
+<tr class="codeline" data-linenumber="359"><td class="num" id="LN359">359</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="360"><td class="num" id="LN360">360</td><td class="line"> <span class='keyword'>if</span> (!xsmp-&gt;connection)</td></tr>
+<tr class="codeline" data-linenumber="361"><td class="num" id="LN361">361</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="362"><td class="num" id="LN362">362</td><td class="line"> g_warning (<span class='string_literal'>"Failed to connect to the session manager: %s\n"</span>,</td></tr>
+<tr class="codeline" data-linenumber="363"><td class="num" id="LN363">363</td><td class="line"> error_string_ret[0] ?</td></tr>
+<tr class="codeline" data-linenumber="364"><td class="num" id="LN364">364</td><td class="line"> error_string_ret : <span class='string_literal'>"no error message given"</span>);</td></tr>
+<tr class="codeline" data-linenumber="365"><td class="num" id="LN365">365</td><td class="line"> xsmp-&gt;state = XSMP_STATE_CONNECTION_CLOSED;</td></tr>
+<tr class="codeline" data-linenumber="366"><td class="num" id="LN366">366</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="367"><td class="num" id="LN367">367</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="368"><td class="num" id="LN368">368</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="369"><td class="num" id="LN369">369</td><td class="line"> <span class='comment'>/* We expect a pointless initial SaveYourself if either (a) we</span></td></tr>
+<tr class="codeline" data-linenumber="370"><td class="num" id="LN370">370</td><td class="line"> <span class='comment'>* didn't have an initial client ID, or (b) we DID have an initial</span></td></tr>
+<tr class="codeline" data-linenumber="371"><td class="num" id="LN371">371</td><td class="line"> <span class='comment'>* client ID, but the server rejected it and gave us a new one.</span></td></tr>
+<tr class="codeline" data-linenumber="372"><td class="num" id="LN372">372</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="373"><td class="num" id="LN373">373</td><td class="line"> <span class='keyword'>if</span> (!xsmp-&gt;client_id ||</td></tr>
+<tr class="codeline" data-linenumber="374"><td class="num" id="LN374">374</td><td class="line"> (ret_client_id &amp;&amp; strcmp (xsmp-&gt;client_id, ret_client_id) != 0))</td></tr>
+<tr class="codeline" data-linenumber="375"><td class="num" id="LN375">375</td><td class="line"> xsmp-&gt;expecting_initial_save_yourself = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="376"><td class="num" id="LN376">376</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="377"><td class="num" id="LN377">377</td><td class="line"> <span class='keyword'>if</span> (ret_client_id)</td></tr>
+<tr class="codeline" data-linenumber="378"><td class="num" id="LN378">378</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="379"><td class="num" id="LN379">379</td><td class="line"> g_free (xsmp-&gt;client_id);</td></tr>
+<tr class="codeline" data-linenumber="380"><td class="num" id="LN380">380</td><td class="line"> xsmp-&gt;client_id = <span class='macro'>g_strdup (ret_client_id)<span class='macro_popup'>g_strdup_inline (ret_client_id)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="381"><td class="num" id="LN381">381</td><td class="line"> free (ret_client_id);</td></tr>
+<tr class="codeline" data-linenumber="382"><td class="num" id="LN382">382</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="383"><td class="num" id="LN383">383</td><td class="line"><span class='directive'>#ifdef GDK_WINDOWING_X11</span></td></tr>
+<tr class="codeline" data-linenumber="384"><td class="num" id="LN384">384</td><td class="line"> <span class='keyword'>if</span> (<span class='macro'>GDK_IS_X11_DISPLAY (gdk_display_get_default ())<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(gdk_display_get_default ())); GType __t = ((gdk_x11_display_get_type<br>())); gboolean __r; if (!__inst) __r = (0); else if (__inst-&gt;<br>g_class &amp;&amp; __inst-&gt;g_class-&gt;g_type == __t) __r =<br> (!(0)); else __r = g_type_check_instance_is_a (__inst, __t);<br> __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="385"><td class="num" id="LN385">385</td><td class="line"> gdk_x11_set_sm_client_id (xsmp-&gt;client_id);</td></tr>
+<tr class="codeline" data-linenumber="386"><td class="num" id="LN386">386</td><td class="line"><span class='directive'>#endif</span></td></tr>
+<tr class="codeline" data-linenumber="387"><td class="num" id="LN387">387</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="388"><td class="num" id="LN388">388</td><td class="line"> g_debug (<span class='string_literal'>"Got client ID \"%s\""</span>, xsmp-&gt;client_id);</td></tr>
+<tr class="codeline" data-linenumber="389"><td class="num" id="LN389">389</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="390"><td class="num" id="LN390">390</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="391"><td class="num" id="LN391">391</td><td class="line"> xsmp-&gt;state = XSMP_STATE_IDLE;</td></tr>
+<tr class="codeline" data-linenumber="392"><td class="num" id="LN392">392</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="393"><td class="num" id="LN393">393</td><td class="line"> <span class='comment'>/* Do not set the initial properties until we reach the main loop,</span></td></tr>
+<tr class="codeline" data-linenumber="394"><td class="num" id="LN394">394</td><td class="line"> <span class='comment'>* so that the application has a chance to call</span></td></tr>
+<tr class="codeline" data-linenumber="395"><td class="num" id="LN395">395</td><td class="line"> <span class='comment'>* egg_set_desktop_file(). (This may also help the session manager</span></td></tr>
+<tr class="codeline" data-linenumber="396"><td class="num" id="LN396">396</td><td class="line"> <span class='comment'>* have a better idea of when the application is fully up and</span></td></tr>
+<tr class="codeline" data-linenumber="397"><td class="num" id="LN397">397</td><td class="line"> <span class='comment'>* running.)</span></td></tr>
+<tr class="codeline" data-linenumber="398"><td class="num" id="LN398">398</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="399"><td class="num" id="LN399">399</td><td class="line"> xsmp-&gt;waiting_to_set_initial_properties = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="400"><td class="num" id="LN400">400</td><td class="line"> xsmp-&gt;idle = g_idle_add (sm_client_xsmp_set_initial_properties, client);</td></tr>
+<tr class="codeline" data-linenumber="401"><td class="num" id="LN401">401</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="402"><td class="num" id="LN402">402</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="403"><td class="num" id="LN403">403</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="404"><td class="num" id="LN404">404</td><td class="line">sm_client_xsmp_set_restart_command (EggSMClient *client,</td></tr>
+<tr class="codeline" data-linenumber="405"><td class="num" id="LN405">405</td><td class="line"> <span class='keyword'>int</span> argc,</td></tr>
+<tr class="codeline" data-linenumber="406"><td class="num" id="LN406">406</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> **argv)</td></tr>
+<tr class="codeline" data-linenumber="407"><td class="num" id="LN407">407</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="408"><td class="num" id="LN408">408</td><td class="line"> EggSMClientXSMP *xsmp = (EggSMClientXSMP *)client;</td></tr>
+<tr class="codeline" data-linenumber="409"><td class="num" id="LN409">409</td><td class="line"> <span class='keyword'>int</span> i;</td></tr>
+<tr class="codeline" data-linenumber="410"><td class="num" id="LN410">410</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="411"><td class="num" id="LN411">411</td><td class="line"> g_strfreev (xsmp-&gt;restart_command);</td></tr>
+<tr class="codeline" data-linenumber="412"><td class="num" id="LN412">412</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="413"><td class="num" id="LN413">413</td><td class="line"> xsmp-&gt;restart_command = <span class='macro'>g_new (<span class='keyword'>char</span> *, argc + 1)<span class='macro_popup'>((char * *) g_malloc_n ((argc + 1), sizeof (char *)))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="414"><td class="num" id="LN414">414</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; argc; i++)</td></tr>
+<tr class="codeline" data-linenumber="415"><td class="num" id="LN415">415</td><td class="line"> xsmp-&gt;restart_command[i] = <span class='macro'>g_strdup (argv[i])<span class='macro_popup'>g_strdup_inline (argv[i])</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="416"><td class="num" id="LN416">416</td><td class="line"> xsmp-&gt;restart_command[i] = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="417"><td class="num" id="LN417">417</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="418"><td class="num" id="LN418">418</td><td class="line"> xsmp-&gt;set_restart_command = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="419"><td class="num" id="LN419">419</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="420"><td class="num" id="LN420">420</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="421"><td class="num" id="LN421">421</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="422"><td class="num" id="LN422">422</td><td class="line">sm_client_xsmp_set_discard_command (EggSMClient *client,</td></tr>
+<tr class="codeline" data-linenumber="423"><td class="num" id="LN423">423</td><td class="line"> <span class='keyword'>int</span> argc,</td></tr>
+<tr class="codeline" data-linenumber="424"><td class="num" id="LN424">424</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> **argv)</td></tr>
+<tr class="codeline" data-linenumber="425"><td class="num" id="LN425">425</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="426"><td class="num" id="LN426">426</td><td class="line"> EggSMClientXSMP *xsmp = (EggSMClientXSMP *)client;</td></tr>
+<tr class="codeline" data-linenumber="427"><td class="num" id="LN427">427</td><td class="line"> <span class='keyword'>int</span> i;</td></tr>
+<tr class="codeline" data-linenumber="428"><td class="num" id="LN428">428</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="429"><td class="num" id="LN429">429</td><td class="line"> g_strfreev (xsmp-&gt;discard_command);</td></tr>
+<tr class="codeline" data-linenumber="430"><td class="num" id="LN430">430</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="431"><td class="num" id="LN431">431</td><td class="line"> xsmp-&gt;discard_command = <span class='macro'>g_new (<span class='keyword'>char</span> *, argc + 1)<span class='macro_popup'>((char * *) g_malloc_n ((argc + 1), sizeof (char *)))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="432"><td class="num" id="LN432">432</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; argc; i++)</td></tr>
+<tr class="codeline" data-linenumber="433"><td class="num" id="LN433">433</td><td class="line"> xsmp-&gt;discard_command[i] = <span class='macro'>g_strdup (argv[i])<span class='macro_popup'>g_strdup_inline (argv[i])</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="434"><td class="num" id="LN434">434</td><td class="line"> xsmp-&gt;discard_command[i] = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="435"><td class="num" id="LN435">435</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="436"><td class="num" id="LN436">436</td><td class="line"> xsmp-&gt;set_discard_command = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="437"><td class="num" id="LN437">437</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="438"><td class="num" id="LN438">438</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="439"><td class="num" id="LN439">439</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="440"><td class="num" id="LN440">440</td><td class="line">sm_client_xsmp_will_quit (EggSMClient *client,</td></tr>
+<tr class="codeline" data-linenumber="441"><td class="num" id="LN441">441</td><td class="line"> gboolean will_quit)</td></tr>
+<tr class="codeline" data-linenumber="442"><td class="num" id="LN442">442</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="443"><td class="num" id="LN443">443</td><td class="line"> EggSMClientXSMP *xsmp = (EggSMClientXSMP *)client;</td></tr>
+<tr class="codeline" data-linenumber="444"><td class="num" id="LN444">444</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="445"><td class="num" id="LN445">445</td><td class="line"> <span class='keyword'>if</span> (xsmp-&gt;state == XSMP_STATE_CONNECTION_CLOSED)</td></tr>
+<tr class="codeline" data-linenumber="446"><td class="num" id="LN446">446</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="447"><td class="num" id="LN447">447</td><td class="line"> <span class='comment'>/* The session manager has already exited! Schedule a quit</span></td></tr>
+<tr class="codeline" data-linenumber="448"><td class="num" id="LN448">448</td><td class="line"> <span class='comment'>* signal.</span></td></tr>
+<tr class="codeline" data-linenumber="449"><td class="num" id="LN449">449</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="450"><td class="num" id="LN450">450</td><td class="line"> xsmp-&gt;waiting_to_emit_quit = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="451"><td class="num" id="LN451">451</td><td class="line"> update_pending_events (xsmp);</td></tr>
+<tr class="codeline" data-linenumber="452"><td class="num" id="LN452">452</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="453"><td class="num" id="LN453">453</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="454"><td class="num" id="LN454">454</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (xsmp-&gt;state == XSMP_STATE_SHUTDOWN_CANCELLED)</td></tr>
+<tr class="codeline" data-linenumber="455"><td class="num" id="LN455">455</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="456"><td class="num" id="LN456">456</td><td class="line"> <span class='comment'>/* We received a ShutdownCancelled message while the application</span></td></tr>
+<tr class="codeline" data-linenumber="457"><td class="num" id="LN457">457</td><td class="line"> <span class='comment'>* was interacting; Schedule a quit_cancelled signal.</span></td></tr>
+<tr class="codeline" data-linenumber="458"><td class="num" id="LN458">458</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="459"><td class="num" id="LN459">459</td><td class="line"> xsmp-&gt;waiting_to_emit_quit_cancelled = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="460"><td class="num" id="LN460">460</td><td class="line"> update_pending_events (xsmp);</td></tr>
+<tr class="codeline" data-linenumber="461"><td class="num" id="LN461">461</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="462"><td class="num" id="LN462">462</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="463"><td class="num" id="LN463">463</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="464"><td class="num" id="LN464">464</td><td class="line"> <span class='macro'>g_return_if_fail (xsmp-&gt;state == XSMP_STATE_INTERACT)<span class='macro_popup'>do { if ((xsmp-&gt;state == XSMP_STATE_INTERACT)) { } else { g_return_if_fail_warning<br> ("EggSMClient", ((const char*) (__func__)), "xsmp-&gt;state == XSMP_STATE_INTERACT"<br>); return; } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="465"><td class="num" id="LN465">465</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="466"><td class="num" id="LN466">466</td><td class="line"> g_debug (<span class='string_literal'>"Sending InteractDone(%s)"</span>, will_quit ? <span class='string_literal'>"False"</span> : <span class='string_literal'>"True"</span>);</td></tr>
+<tr class="codeline" data-linenumber="467"><td class="num" id="LN467">467</td><td class="line"> SmcInteractDone (xsmp-&gt;connection, !will_quit);</td></tr>
+<tr class="codeline" data-linenumber="468"><td class="num" id="LN468">468</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="469"><td class="num" id="LN469">469</td><td class="line"> <span class='keyword'>if</span> (will_quit &amp;&amp; xsmp-&gt;need_save_state)</td></tr>
+<tr class="codeline" data-linenumber="470"><td class="num" id="LN470">470</td><td class="line"> save_state (xsmp);</td></tr>
+<tr class="codeline" data-linenumber="471"><td class="num" id="LN471">471</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="472"><td class="num" id="LN472">472</td><td class="line"> g_debug (<span class='string_literal'>"Sending SaveYourselfDone(%s)"</span>, will_quit ? <span class='string_literal'>"True"</span> : <span class='string_literal'>"False"</span>);</td></tr>
+<tr class="codeline" data-linenumber="473"><td class="num" id="LN473">473</td><td class="line"> SmcSaveYourselfDone (xsmp-&gt;connection, will_quit);</td></tr>
+<tr class="codeline" data-linenumber="474"><td class="num" id="LN474">474</td><td class="line"> xsmp-&gt;state = XSMP_STATE_SAVE_YOURSELF_DONE;</td></tr>
+<tr class="codeline" data-linenumber="475"><td class="num" id="LN475">475</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="476"><td class="num" id="LN476">476</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="477"><td class="num" id="LN477">477</td><td class="line"><span class='keyword'>static</span> gboolean</td></tr>
+<tr class="codeline" data-linenumber="478"><td class="num" id="LN478">478</td><td class="line">sm_client_xsmp_end_session (EggSMClient *client,</td></tr>
+<tr class="codeline" data-linenumber="479"><td class="num" id="LN479">479</td><td class="line"> EggSMClientEndStyle style,</td></tr>
+<tr class="codeline" data-linenumber="480"><td class="num" id="LN480">480</td><td class="line"> gboolean request_confirmation)</td></tr>
+<tr class="codeline" data-linenumber="481"><td class="num" id="LN481">481</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="482"><td class="num" id="LN482">482</td><td class="line"> EggSMClientXSMP *xsmp = (EggSMClientXSMP *)client;</td></tr>
+<tr class="codeline" data-linenumber="483"><td class="num" id="LN483">483</td><td class="line"> <span class='keyword'>int</span> save_type;</td></tr>
+<tr class="codeline" data-linenumber="484"><td class="num" id="LN484">484</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="485"><td class="num" id="LN485">485</td><td class="line"> <span class='comment'>/* To end the session via XSMP, we have to send a</span></td></tr>
+<tr class="codeline" data-linenumber="486"><td class="num" id="LN486">486</td><td class="line"> <span class='comment'>* SaveYourselfRequest. We aren't allowed to do that if anything</span></td></tr>
+<tr class="codeline" data-linenumber="487"><td class="num" id="LN487">487</td><td class="line"> <span class='comment'>* else is going on, but we don't want to expose this fact to the</span></td></tr>
+<tr class="codeline" data-linenumber="488"><td class="num" id="LN488">488</td><td class="line"> <span class='comment'>* application. So we do our best to patch things up here...</span></td></tr>
+<tr class="codeline" data-linenumber="489"><td class="num" id="LN489">489</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="490"><td class="num" id="LN490">490</td><td class="line"> <span class='comment'>* In the worst case, this method might block for some length of</span></td></tr>
+<tr class="codeline" data-linenumber="491"><td class="num" id="LN491">491</td><td class="line"> <span class='comment'>* time in process_ice_messages, but the only time that code path is</span></td></tr>
+<tr class="codeline" data-linenumber="492"><td class="num" id="LN492">492</td><td class="line"> <span class='comment'>* honestly likely to get hit is if the application tries to end the</span></td></tr>
+<tr class="codeline" data-linenumber="493"><td class="num" id="LN493">493</td><td class="line"> <span class='comment'>* session as the very first thing it does, in which case it</span></td></tr>
+<tr class="codeline" data-linenumber="494"><td class="num" id="LN494">494</td><td class="line"> <span class='comment'>* probably won't actually block anyway. It's not worth gunking up</span></td></tr>
+<tr class="codeline" data-linenumber="495"><td class="num" id="LN495">495</td><td class="line"> <span class='comment'>* the API to try to deal nicely with the other 0.01% of cases where</span></td></tr>
+<tr class="codeline" data-linenumber="496"><td class="num" id="LN496">496</td><td class="line"> <span class='comment'>* this happens.</span></td></tr>
+<tr class="codeline" data-linenumber="497"><td class="num" id="LN497">497</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="498"><td class="num" id="LN498">498</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="499"><td class="num" id="LN499">499</td><td class="line"> <span class='keyword'>while</span> (xsmp-&gt;state != XSMP_STATE_IDLE ||</td></tr>
+<tr class="codeline" data-linenumber="500"><td class="num" id="LN500">500</td><td class="line"> xsmp-&gt;expecting_initial_save_yourself)</td></tr>
+<tr class="codeline" data-linenumber="501"><td class="num" id="LN501">501</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="502"><td class="num" id="LN502">502</td><td class="line"> <span class='comment'>/* If we're already shutting down, we don't need to do anything. */</span></td></tr>
+<tr class="codeline" data-linenumber="503"><td class="num" id="LN503">503</td><td class="line"> <span class='keyword'>if</span> (xsmp-&gt;shutting_down)</td></tr>
+<tr class="codeline" data-linenumber="504"><td class="num" id="LN504">504</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="505"><td class="num" id="LN505">505</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="506"><td class="num" id="LN506">506</td><td class="line"> <span class='keyword'>switch</span> (xsmp-&gt;state)</td></tr>
+<tr class="codeline" data-linenumber="507"><td class="num" id="LN507">507</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="508"><td class="num" id="LN508">508</td><td class="line"> <span class='keyword'>case</span> XSMP_STATE_CONNECTION_CLOSED:</td></tr>
+<tr class="codeline" data-linenumber="509"><td class="num" id="LN509">509</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="510"><td class="num" id="LN510">510</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="511"><td class="num" id="LN511">511</td><td class="line"> <span class='keyword'>case</span> XSMP_STATE_SAVE_YOURSELF:</td></tr>
+<tr class="codeline" data-linenumber="512"><td class="num" id="LN512">512</td><td class="line"> <span class='comment'>/* Trying to log out from the save_state callback? Whatever.</span></td></tr>
+<tr class="codeline" data-linenumber="513"><td class="num" id="LN513">513</td><td class="line"> <span class='comment'>* Abort the save_state.</span></td></tr>
+<tr class="codeline" data-linenumber="514"><td class="num" id="LN514">514</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="515"><td class="num" id="LN515">515</td><td class="line"> SmcSaveYourselfDone (xsmp-&gt;connection, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="516"><td class="num" id="LN516">516</td><td class="line"> xsmp-&gt;state = XSMP_STATE_SAVE_YOURSELF_DONE;</td></tr>
+<tr class="codeline" data-linenumber="517"><td class="num" id="LN517">517</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="518"><td class="num" id="LN518">518</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="519"><td class="num" id="LN519">519</td><td class="line"> <span class='keyword'>case</span> XSMP_STATE_INTERACT_REQUEST:</td></tr>
+<tr class="codeline" data-linenumber="520"><td class="num" id="LN520">520</td><td class="line"> <span class='keyword'>case</span> XSMP_STATE_INTERACT:</td></tr>
+<tr class="codeline" data-linenumber="521"><td class="num" id="LN521">521</td><td class="line"> <span class='keyword'>case</span> XSMP_STATE_SHUTDOWN_CANCELLED:</td></tr>
+<tr class="codeline" data-linenumber="522"><td class="num" id="LN522">522</td><td class="line"> <span class='comment'>/* Already in a shutdown-related state, just ignore</span></td></tr>
+<tr class="codeline" data-linenumber="523"><td class="num" id="LN523">523</td><td class="line"> <span class='comment'>* the new shutdown request...</span></td></tr>
+<tr class="codeline" data-linenumber="524"><td class="num" id="LN524">524</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="525"><td class="num" id="LN525">525</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="526"><td class="num" id="LN526">526</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="527"><td class="num" id="LN527">527</td><td class="line"> <span class='keyword'>case</span> XSMP_STATE_IDLE:</td></tr>
+<tr class="codeline" data-linenumber="528"><td class="num" id="LN528">528</td><td class="line"> <span class='keyword'>if</span> (xsmp-&gt;waiting_to_set_initial_properties)</td></tr>
+<tr class="codeline" data-linenumber="529"><td class="num" id="LN529">529</td><td class="line"> sm_client_xsmp_set_initial_properties (xsmp);</td></tr>
+<tr class="codeline" data-linenumber="530"><td class="num" id="LN530">530</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="531"><td class="num" id="LN531">531</td><td class="line"> <span class='keyword'>if</span> (!xsmp-&gt;expecting_initial_save_yourself)</td></tr>
+<tr class="codeline" data-linenumber="532"><td class="num" id="LN532">532</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="533"><td class="num" id="LN533">533</td><td class="line"> <span class='comment'>/* else fall through */</span></td></tr>
+<tr class="codeline" data-linenumber="534"><td class="num" id="LN534">534</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="535"><td class="num" id="LN535">535</td><td class="line"> <span class='keyword'>case</span> XSMP_STATE_SAVE_YOURSELF_DONE:</td></tr>
+<tr class="codeline" data-linenumber="536"><td class="num" id="LN536">536</td><td class="line"> <span class='comment'>/* We need to wait for some response from the server.*/</span></td></tr>
+<tr class="codeline" data-linenumber="537"><td class="num" id="LN537">537</td><td class="line"> process_ice_messages (SmcGetIceConnection (xsmp-&gt;connection));</td></tr>
+<tr class="codeline" data-linenumber="538"><td class="num" id="LN538">538</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="539"><td class="num" id="LN539">539</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="540"><td class="num" id="LN540">540</td><td class="line"> <span class='keyword'>default</span>:</td></tr>
+<tr class="codeline" data-linenumber="541"><td class="num" id="LN541">541</td><td class="line"> <span class='comment'>/* Hm... shouldn't happen */</span></td></tr>
+<tr class="codeline" data-linenumber="542"><td class="num" id="LN542">542</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="543"><td class="num" id="LN543">543</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="544"><td class="num" id="LN544">544</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="545"><td class="num" id="LN545">545</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="546"><td class="num" id="LN546">546</td><td class="line"> <span class='comment'>/* xfce4-session will do the wrong thing if we pass SmSaveGlobal and</span></td></tr>
+<tr class="codeline" data-linenumber="547"><td class="num" id="LN547">547</td><td class="line"> <span class='comment'>* the user chooses to save the session. But mate-session will do</span></td></tr>
+<tr class="codeline" data-linenumber="548"><td class="num" id="LN548">548</td><td class="line"> <span class='comment'>* the wrong thing if we pass SmSaveBoth and the user chooses NOT to</span></td></tr>
+<tr class="codeline" data-linenumber="549"><td class="num" id="LN549">549</td><td class="line"> <span class='comment'>* save the session... Sigh.</span></td></tr>
+<tr class="codeline" data-linenumber="550"><td class="num" id="LN550">550</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="551"><td class="num" id="LN551">551</td><td class="line"> <span class='keyword'>if</span> (!strcmp (SmcVendor (xsmp-&gt;connection), <span class='string_literal'>"xfce4-session"</span>))</td></tr>
+<tr class="codeline" data-linenumber="552"><td class="num" id="LN552">552</td><td class="line"> save_type = <span class='macro'>SmSaveBoth<span class='macro_popup'>2</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="553"><td class="num" id="LN553">553</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="554"><td class="num" id="LN554">554</td><td class="line"> save_type = <span class='macro'>SmSaveGlobal<span class='macro_popup'>0</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="555"><td class="num" id="LN555">555</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="556"><td class="num" id="LN556">556</td><td class="line"> g_debug (<span class='string_literal'>"Sending SaveYourselfRequest(SmSaveGlobal, Shutdown, SmInteractStyleAny, %sFast)"</span>, request_confirmation ? <span class='string_literal'>"!"</span> : <span class='string_literal'>""</span>);</td></tr>
+<tr class="codeline" data-linenumber="557"><td class="num" id="LN557">557</td><td class="line"> SmcRequestSaveYourself (xsmp-&gt;connection,</td></tr>
+<tr class="codeline" data-linenumber="558"><td class="num" id="LN558">558</td><td class="line"> save_type,</td></tr>
+<tr class="codeline" data-linenumber="559"><td class="num" id="LN559">559</td><td class="line"> <span class='macro'>True<span class='macro_popup'>1</span></span>, <span class='comment'>/* shutdown */</span></td></tr>
+<tr class="codeline" data-linenumber="560"><td class="num" id="LN560">560</td><td class="line"> <span class='macro'>SmInteractStyleAny<span class='macro_popup'>2</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="561"><td class="num" id="LN561">561</td><td class="line"> !request_confirmation, <span class='comment'>/* fast */</span></td></tr>
+<tr class="codeline" data-linenumber="562"><td class="num" id="LN562">562</td><td class="line"> <span class='macro'>True<span class='macro_popup'>1</span></span> <span class='comment'>/* global */</span>);</td></tr>
+<tr class="codeline" data-linenumber="563"><td class="num" id="LN563">563</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="564"><td class="num" id="LN564">564</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="565"><td class="num" id="LN565">565</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="566"><td class="num" id="LN566">566</td><td class="line"><span class='keyword'>static</span> gboolean</td></tr>
+<tr class="codeline" data-linenumber="567"><td class="num" id="LN567">567</td><td class="line">idle_do_pending_events (gpointer data)</td></tr>
+<tr class="codeline" data-linenumber="568"><td class="num" id="LN568">568</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="569"><td class="num" id="LN569">569</td><td class="line"> EggSMClientXSMP *xsmp = data;</td></tr>
+<tr class="codeline" data-linenumber="570"><td class="num" id="LN570">570</td><td class="line"> EggSMClient *client = data;</td></tr>
+<tr class="codeline" data-linenumber="571"><td class="num" id="LN571">571</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="572"><td class="num" id="LN572">572</td><td class="line"> xsmp-&gt;idle = 0;</td></tr>
+<tr class="codeline" data-linenumber="573"><td class="num" id="LN573">573</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="574"><td class="num" id="LN574">574</td><td class="line"> <span class='keyword'>if</span> (xsmp-&gt;waiting_to_emit_quit)</td></tr>
+<tr class="codeline" data-linenumber="575"><td class="num" id="LN575">575</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="576"><td class="num" id="LN576">576</td><td class="line"> xsmp-&gt;waiting_to_emit_quit = <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="577"><td class="num" id="LN577">577</td><td class="line"> egg_sm_client_quit (client);</td></tr>
+<tr class="codeline" data-linenumber="578"><td class="num" id="LN578">578</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="579"><td class="num" id="LN579">579</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="580"><td class="num" id="LN580">580</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="581"><td class="num" id="LN581">581</td><td class="line"> <span class='keyword'>if</span> (xsmp-&gt;waiting_to_emit_quit_cancelled)</td></tr>
+<tr class="codeline" data-linenumber="582"><td class="num" id="LN582">582</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="583"><td class="num" id="LN583">583</td><td class="line"> xsmp-&gt;waiting_to_emit_quit_cancelled = <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="584"><td class="num" id="LN584">584</td><td class="line"> egg_sm_client_quit_cancelled (client);</td></tr>
+<tr class="codeline" data-linenumber="585"><td class="num" id="LN585">585</td><td class="line"> xsmp-&gt;state = XSMP_STATE_IDLE;</td></tr>
+<tr class="codeline" data-linenumber="586"><td class="num" id="LN586">586</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="587"><td class="num" id="LN587">587</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="588"><td class="num" id="LN588">588</td><td class="line"> <span class='keyword'>if</span> (xsmp-&gt;waiting_to_save_myself)</td></tr>
+<tr class="codeline" data-linenumber="589"><td class="num" id="LN589">589</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="590"><td class="num" id="LN590">590</td><td class="line"> xsmp-&gt;waiting_to_save_myself = <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="591"><td class="num" id="LN591">591</td><td class="line"> do_save_yourself (xsmp);</td></tr>
+<tr class="codeline" data-linenumber="592"><td class="num" id="LN592">592</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="593"><td class="num" id="LN593">593</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="594"><td class="num" id="LN594">594</td><td class="line">out:</td></tr>
+<tr class="codeline" data-linenumber="595"><td class="num" id="LN595">595</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="596"><td class="num" id="LN596">596</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="597"><td class="num" id="LN597">597</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="598"><td class="num" id="LN598">598</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="599"><td class="num" id="LN599">599</td><td class="line">update_pending_events (EggSMClientXSMP *xsmp)</td></tr>
+<tr class="codeline" data-linenumber="600"><td class="num" id="LN600">600</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="601"><td class="num" id="LN601">601</td><td class="line"> gboolean want_idle =</td></tr>
+<tr class="codeline" data-linenumber="602"><td class="num" id="LN602">602</td><td class="line"> xsmp-&gt;waiting_to_emit_quit ||</td></tr>
+<tr class="codeline" data-linenumber="603"><td class="num" id="LN603">603</td><td class="line"> xsmp-&gt;waiting_to_emit_quit_cancelled ||</td></tr>
+<tr class="codeline" data-linenumber="604"><td class="num" id="LN604">604</td><td class="line"> xsmp-&gt;waiting_to_save_myself;</td></tr>
+<tr class="codeline" data-linenumber="605"><td class="num" id="LN605">605</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="606"><td class="num" id="LN606">606</td><td class="line"> <span class='keyword'>if</span> (want_idle)</td></tr>
+<tr class="codeline" data-linenumber="607"><td class="num" id="LN607">607</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="608"><td class="num" id="LN608">608</td><td class="line"> <span class='keyword'>if</span> (xsmp-&gt;idle == 0)</td></tr>
+<tr class="codeline" data-linenumber="609"><td class="num" id="LN609">609</td><td class="line"> xsmp-&gt;idle = g_idle_add (idle_do_pending_events, xsmp);</td></tr>
+<tr class="codeline" data-linenumber="610"><td class="num" id="LN610">610</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="611"><td class="num" id="LN611">611</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="612"><td class="num" id="LN612">612</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="613"><td class="num" id="LN613">613</td><td class="line"> <span class='keyword'>if</span> (xsmp-&gt;idle != 0)</td></tr>
+<tr class="codeline" data-linenumber="614"><td class="num" id="LN614">614</td><td class="line"> g_source_remove (xsmp-&gt;idle);</td></tr>
+<tr class="codeline" data-linenumber="615"><td class="num" id="LN615">615</td><td class="line"> xsmp-&gt;idle = 0;</td></tr>
+<tr class="codeline" data-linenumber="616"><td class="num" id="LN616">616</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="617"><td class="num" id="LN617">617</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="618"><td class="num" id="LN618">618</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="619"><td class="num" id="LN619">619</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="620"><td class="num" id="LN620">620</td><td class="line">fix_broken_state (EggSMClientXSMP *xsmp, <span class='keyword'>const</span> <span class='keyword'>char</span> *message,</td></tr>
+<tr class="codeline" data-linenumber="621"><td class="num" id="LN621">621</td><td class="line"> gboolean send_interact_done,</td></tr>
+<tr class="codeline" data-linenumber="622"><td class="num" id="LN622">622</td><td class="line"> gboolean send_save_yourself_done)</td></tr>
+<tr class="codeline" data-linenumber="623"><td class="num" id="LN623">623</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="624"><td class="num" id="LN624">624</td><td class="line"> g_warning (<span class='string_literal'>"Received XSMP %s message in state %s: client or server error"</span>,</td></tr>
+<tr class="codeline" data-linenumber="625"><td class="num" id="LN625">625</td><td class="line"> message, <span class='macro'>EGG_SM_CLIENT_XSMP_STATE (xsmp)<span class='macro_popup'>(state_names[(xsmp)-&gt;state])</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="626"><td class="num" id="LN626">626</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="627"><td class="num" id="LN627">627</td><td class="line"> <span class='comment'>/* Forget any pending SaveYourself plans we had */</span></td></tr>
+<tr class="codeline" data-linenumber="628"><td class="num" id="LN628">628</td><td class="line"> xsmp-&gt;waiting_to_save_myself = <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="629"><td class="num" id="LN629">629</td><td class="line"> update_pending_events (xsmp);</td></tr>
+<tr class="codeline" data-linenumber="630"><td class="num" id="LN630">630</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="631"><td class="num" id="LN631">631</td><td class="line"> <span class='keyword'>if</span> (send_interact_done)</td></tr>
+<tr class="codeline" data-linenumber="632"><td class="num" id="LN632">632</td><td class="line"> SmcInteractDone (xsmp-&gt;connection, <span class='macro'>False<span class='macro_popup'>0</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="633"><td class="num" id="LN633">633</td><td class="line"> <span class='keyword'>if</span> (send_save_yourself_done)</td></tr>
+<tr class="codeline" data-linenumber="634"><td class="num" id="LN634">634</td><td class="line"> SmcSaveYourselfDone (xsmp-&gt;connection, <span class='macro'>True<span class='macro_popup'>1</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="635"><td class="num" id="LN635">635</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="636"><td class="num" id="LN636">636</td><td class="line"> xsmp-&gt;state = send_save_yourself_done ? XSMP_STATE_SAVE_YOURSELF_DONE : XSMP_STATE_IDLE;</td></tr>
+<tr class="codeline" data-linenumber="637"><td class="num" id="LN637">637</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="638"><td class="num" id="LN638">638</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="639"><td class="num" id="LN639">639</td><td class="line"><span class='comment'>/* SM callbacks */</span></td></tr>
+<tr class="codeline" data-linenumber="640"><td class="num" id="LN640">640</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="641"><td class="num" id="LN641">641</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="642"><td class="num" id="LN642">642</td><td class="line">xsmp_save_yourself (SmcConn smc_conn,</td></tr>
+<tr class="codeline" data-linenumber="643"><td class="num" id="LN643">643</td><td class="line"> SmPointer client_data,</td></tr>
+<tr class="codeline" data-linenumber="644"><td class="num" id="LN644">644</td><td class="line"> <span class='keyword'>int</span> save_type,</td></tr>
+<tr class="codeline" data-linenumber="645"><td class="num" id="LN645">645</td><td class="line"> <span class='macro'>Bool<span class='macro_popup'>int</span></span> shutdown,</td></tr>
+<tr class="codeline" data-linenumber="646"><td class="num" id="LN646">646</td><td class="line"> <span class='keyword'>int</span> interact_style,</td></tr>
+<tr class="codeline" data-linenumber="647"><td class="num" id="LN647">647</td><td class="line"> <span class='macro'>Bool<span class='macro_popup'>int</span></span> fast)</td></tr>
+<tr class="codeline" data-linenumber="648"><td class="num" id="LN648">648</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="649"><td class="num" id="LN649">649</td><td class="line"> EggSMClientXSMP *xsmp = client_data;</td></tr>
+<tr class="codeline" data-linenumber="650"><td class="num" id="LN650">650</td><td class="line"> gboolean wants_quit_requested;</td></tr>
+<tr class="codeline" data-linenumber="651"><td class="num" id="LN651">651</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="652"><td class="num" id="LN652">652</td><td class="line"> g_debug (<span class='string_literal'>"Received SaveYourself(%s, %s, %s, %s) in state %s"</span>,</td></tr>
+<tr class="codeline" data-linenumber="653"><td class="num" id="LN653">653</td><td class="line"> save_type == <span class='macro'>SmSaveLocal<span class='macro_popup'>1</span></span> ? <span class='string_literal'>"SmSaveLocal"</span> :</td></tr>
+<tr class="codeline" data-linenumber="654"><td class="num" id="LN654">654</td><td class="line"> save_type == <span class='macro'>SmSaveGlobal<span class='macro_popup'>0</span></span> ? <span class='string_literal'>"SmSaveGlobal"</span> : <span class='string_literal'>"SmSaveBoth"</span>,</td></tr>
+<tr class="codeline" data-linenumber="655"><td class="num" id="LN655">655</td><td class="line"> shutdown ? <span class='string_literal'>"Shutdown"</span> : <span class='string_literal'>"!Shutdown"</span>,</td></tr>
+<tr class="codeline" data-linenumber="656"><td class="num" id="LN656">656</td><td class="line"> interact_style == <span class='macro'>SmInteractStyleAny<span class='macro_popup'>2</span></span> ? <span class='string_literal'>"SmInteractStyleAny"</span> :</td></tr>
+<tr class="codeline" data-linenumber="657"><td class="num" id="LN657">657</td><td class="line"> interact_style == <span class='macro'>SmInteractStyleErrors<span class='macro_popup'>1</span></span> ? <span class='string_literal'>"SmInteractStyleErrors"</span> :</td></tr>
+<tr class="codeline" data-linenumber="658"><td class="num" id="LN658">658</td><td class="line"> <span class='string_literal'>"SmInteractStyleNone"</span>, fast ? <span class='string_literal'>"Fast"</span> : <span class='string_literal'>"!Fast"</span>,</td></tr>
+<tr class="codeline" data-linenumber="659"><td class="num" id="LN659">659</td><td class="line"> <span class='macro'>EGG_SM_CLIENT_XSMP_STATE (xsmp)<span class='macro_popup'>(state_names[(xsmp)-&gt;state])</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="660"><td class="num" id="LN660">660</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="661"><td class="num" id="LN661">661</td><td class="line"> <span class='keyword'>if</span> (xsmp-&gt;state != XSMP_STATE_IDLE &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="662"><td class="num" id="LN662">662</td><td class="line"> xsmp-&gt;state != XSMP_STATE_SHUTDOWN_CANCELLED)</td></tr>
+<tr class="codeline" data-linenumber="663"><td class="num" id="LN663">663</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="664"><td class="num" id="LN664">664</td><td class="line"> fix_broken_state (xsmp, <span class='string_literal'>"SaveYourself"</span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="665"><td class="num" id="LN665">665</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="666"><td class="num" id="LN666">666</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="667"><td class="num" id="LN667">667</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="668"><td class="num" id="LN668">668</td><td class="line"> <span class='keyword'>if</span> (xsmp-&gt;waiting_to_set_initial_properties)</td></tr>
+<tr class="codeline" data-linenumber="669"><td class="num" id="LN669">669</td><td class="line"> sm_client_xsmp_set_initial_properties (xsmp);</td></tr>
+<tr class="codeline" data-linenumber="670"><td class="num" id="LN670">670</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="671"><td class="num" id="LN671">671</td><td class="line"> <span class='comment'>/* If this is the initial SaveYourself, ignore it; we've already set</span></td></tr>
+<tr class="codeline" data-linenumber="672"><td class="num" id="LN672">672</td><td class="line"> <span class='comment'>* properties and there's no reason to actually save state too.</span></td></tr>
+<tr class="codeline" data-linenumber="673"><td class="num" id="LN673">673</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="674"><td class="num" id="LN674">674</td><td class="line"> <span class='keyword'>if</span> (xsmp-&gt;expecting_initial_save_yourself)</td></tr>
+<tr class="codeline" data-linenumber="675"><td class="num" id="LN675">675</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="676"><td class="num" id="LN676">676</td><td class="line"> xsmp-&gt;expecting_initial_save_yourself = <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="677"><td class="num" id="LN677">677</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="678"><td class="num" id="LN678">678</td><td class="line"> <span class='keyword'>if</span> (save_type == <span class='macro'>SmSaveLocal<span class='macro_popup'>1</span></span> &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="679"><td class="num" id="LN679">679</td><td class="line"> interact_style == <span class='macro'>SmInteractStyleNone<span class='macro_popup'>0</span></span> &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="680"><td class="num" id="LN680">680</td><td class="line"> !shutdown &amp;&amp; !fast)</td></tr>
+<tr class="codeline" data-linenumber="681"><td class="num" id="LN681">681</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="682"><td class="num" id="LN682">682</td><td class="line"> g_debug (<span class='string_literal'>"Sending SaveYourselfDone(True) for initial SaveYourself"</span>);</td></tr>
+<tr class="codeline" data-linenumber="683"><td class="num" id="LN683">683</td><td class="line"> SmcSaveYourselfDone (xsmp-&gt;connection, <span class='macro'>True<span class='macro_popup'>1</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="684"><td class="num" id="LN684">684</td><td class="line"> <span class='comment'>/* As explained in the comment at the end of</span></td></tr>
+<tr class="codeline" data-linenumber="685"><td class="num" id="LN685">685</td><td class="line"> <span class='comment'>* do_save_yourself(), SAVE_YOURSELF_DONE is the correct</span></td></tr>
+<tr class="codeline" data-linenumber="686"><td class="num" id="LN686">686</td><td class="line"> <span class='comment'>* state here, not IDLE.</span></td></tr>
+<tr class="codeline" data-linenumber="687"><td class="num" id="LN687">687</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="688"><td class="num" id="LN688">688</td><td class="line"> xsmp-&gt;state = XSMP_STATE_SAVE_YOURSELF_DONE;</td></tr>
+<tr class="codeline" data-linenumber="689"><td class="num" id="LN689">689</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="690"><td class="num" id="LN690">690</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="691"><td class="num" id="LN691">691</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="692"><td class="num" id="LN692">692</td><td class="line"> g_warning (<span class='string_literal'>"First SaveYourself was not the expected one!"</span>);</td></tr>
+<tr class="codeline" data-linenumber="693"><td class="num" id="LN693">693</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="694"><td class="num" id="LN694">694</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="695"><td class="num" id="LN695">695</td><td class="line"> <span class='comment'>/* Even ignoring the "fast" flag completely, there are still 18</span></td></tr>
+<tr class="codeline" data-linenumber="696"><td class="num" id="LN696">696</td><td class="line"> <span class='comment'>* different combinations of save_type, shutdown and interact_style.</span></td></tr>
+<tr class="codeline" data-linenumber="697"><td class="num" id="LN697">697</td><td class="line"> <span class='comment'>* We interpret them as follows:</span></td></tr>
+<tr class="codeline" data-linenumber="698"><td class="num" id="LN698">698</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="699"><td class="num" id="LN699">699</td><td class="line"> <span class='comment'>* Type Shutdown Interact Interpretation</span></td></tr>
+<tr class="codeline" data-linenumber="700"><td class="num" id="LN700">700</td><td class="line"> <span class='comment'>* G F A/E/N do nothing (1)</span></td></tr>
+<tr class="codeline" data-linenumber="701"><td class="num" id="LN701">701</td><td class="line"> <span class='comment'>* G T N do nothing (1)*</span></td></tr>
+<tr class="codeline" data-linenumber="702"><td class="num" id="LN702">702</td><td class="line"> <span class='comment'>* G T A/E quit_requested (2)</span></td></tr>
+<tr class="codeline" data-linenumber="703"><td class="num" id="LN703">703</td><td class="line"> <span class='comment'>* L/B F A/E/N save_state (3)</span></td></tr>
+<tr class="codeline" data-linenumber="704"><td class="num" id="LN704">704</td><td class="line"> <span class='comment'>* L/B T N save_state (3)*</span></td></tr>
+<tr class="codeline" data-linenumber="705"><td class="num" id="LN705">705</td><td class="line"> <span class='comment'>* L/B T A/E quit_requested, then save_state (4)</span></td></tr>
+<tr class="codeline" data-linenumber="706"><td class="num" id="LN706">706</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="707"><td class="num" id="LN707">707</td><td class="line"> <span class='comment'>* 1. Do nothing, because the SM asked us to do something</span></td></tr>
+<tr class="codeline" data-linenumber="708"><td class="num" id="LN708">708</td><td class="line"> <span class='comment'>* uninteresting (save open files, but then don't quit</span></td></tr>
+<tr class="codeline" data-linenumber="709"><td class="num" id="LN709">709</td><td class="line"> <span class='comment'>* afterward) or rude (save open files without asking the user</span></td></tr>
+<tr class="codeline" data-linenumber="710"><td class="num" id="LN710">710</td><td class="line"> <span class='comment'>* for confirmation).</span></td></tr>
+<tr class="codeline" data-linenumber="711"><td class="num" id="LN711">711</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="712"><td class="num" id="LN712">712</td><td class="line"> <span class='comment'>* 2. Request interaction and then emit ::quit_requested. This</span></td></tr>
+<tr class="codeline" data-linenumber="713"><td class="num" id="LN713">713</td><td class="line"> <span class='comment'>* perhaps isn't quite correct for the SmInteractStyleErrors</span></td></tr>
+<tr class="codeline" data-linenumber="714"><td class="num" id="LN714">714</td><td class="line"> <span class='comment'>* case, but we don't care.</span></td></tr>
+<tr class="codeline" data-linenumber="715"><td class="num" id="LN715">715</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="716"><td class="num" id="LN716">716</td><td class="line"> <span class='comment'>* 3. Emit ::save_state. The SmSaveBoth SaveYourselfs in these</span></td></tr>
+<tr class="codeline" data-linenumber="717"><td class="num" id="LN717">717</td><td class="line"> <span class='comment'>* rows essentially get demoted to SmSaveLocal, because their</span></td></tr>
+<tr class="codeline" data-linenumber="718"><td class="num" id="LN718">718</td><td class="line"> <span class='comment'>* Global halves correspond to "do nothing".</span></td></tr>
+<tr class="codeline" data-linenumber="719"><td class="num" id="LN719">719</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="720"><td class="num" id="LN720">720</td><td class="line"> <span class='comment'>* 4. Request interaction, emit ::quit_requested, and then emit</span></td></tr>
+<tr class="codeline" data-linenumber="721"><td class="num" id="LN721">721</td><td class="line"> <span class='comment'>* ::save_state after interacting. This is the SmSaveBoth</span></td></tr>
+<tr class="codeline" data-linenumber="722"><td class="num" id="LN722">722</td><td class="line"> <span class='comment'>* equivalent of #2, but we also promote SmSaveLocal shutdown</span></td></tr>
+<tr class="codeline" data-linenumber="723"><td class="num" id="LN723">723</td><td class="line"> <span class='comment'>* SaveYourselfs to SmSaveBoth here, because we want to give</span></td></tr>
+<tr class="codeline" data-linenumber="724"><td class="num" id="LN724">724</td><td class="line"> <span class='comment'>* the user a chance to save open files before quitting.</span></td></tr>
+<tr class="codeline" data-linenumber="725"><td class="num" id="LN725">725</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="726"><td class="num" id="LN726">726</td><td class="line"> <span class='comment'>* (* It would be nice if we could do something useful when the</span></td></tr>
+<tr class="codeline" data-linenumber="727"><td class="num" id="LN727">727</td><td class="line"> <span class='comment'>* session manager sends a SaveYourself with shutdown True and</span></td></tr>
+<tr class="codeline" data-linenumber="728"><td class="num" id="LN728">728</td><td class="line"> <span class='comment'>* SmInteractStyleNone. But we can't, so we just pretend it didn't</span></td></tr>
+<tr class="codeline" data-linenumber="729"><td class="num" id="LN729">729</td><td class="line"> <span class='comment'>* even tell us it was shutting down. The docs for ::quit mention</span></td></tr>
+<tr class="codeline" data-linenumber="730"><td class="num" id="LN730">730</td><td class="line"> <span class='comment'>* that it might not always be preceded by ::quit_requested.)</span></td></tr>
+<tr class="codeline" data-linenumber="731"><td class="num" id="LN731">731</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="732"><td class="num" id="LN732">732</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="733"><td class="num" id="LN733">733</td><td class="line"> <span class='comment'>/* As an optimization, we don't actually request interaction and</span></td></tr>
+<tr class="codeline" data-linenumber="734"><td class="num" id="LN734">734</td><td class="line"> <span class='comment'>* emit ::quit_requested if the application isn't listening to the</span></td></tr>
+<tr class="codeline" data-linenumber="735"><td class="num" id="LN735">735</td><td class="line"> <span class='comment'>* signal.</span></td></tr>
+<tr class="codeline" data-linenumber="736"><td class="num" id="LN736">736</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="737"><td class="num" id="LN737">737</td><td class="line"> wants_quit_requested = g_signal_has_handler_pending (xsmp, g_signal_lookup (<span class='string_literal'>"quit_requested"</span>, <span class='macro'>EGG_TYPE_SM_CLIENT<span class='macro_popup'>(egg_sm_client_get_type ())</span></span>), 0, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="738"><td class="num" id="LN738">738</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="739"><td class="num" id="LN739">739</td><td class="line"> xsmp-&gt;need_save_state = (save_type != <span class='macro'>SmSaveGlobal<span class='macro_popup'>0</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="740"><td class="num" id="LN740">740</td><td class="line"> xsmp-&gt;need_quit_requested = (shutdown &amp;&amp; wants_quit_requested &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="741"><td class="num" id="LN741">741</td><td class="line"> interact_style != <span class='macro'>SmInteractStyleNone<span class='macro_popup'>0</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="742"><td class="num" id="LN742">742</td><td class="line"> xsmp-&gt;interact_errors = (interact_style == <span class='macro'>SmInteractStyleErrors<span class='macro_popup'>1</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="743"><td class="num" id="LN743">743</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="744"><td class="num" id="LN744">744</td><td class="line"> xsmp-&gt;shutting_down = shutdown;</td></tr>
+<tr class="codeline" data-linenumber="745"><td class="num" id="LN745">745</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="746"><td class="num" id="LN746">746</td><td class="line"> do_save_yourself (xsmp);</td></tr>
+<tr class="codeline" data-linenumber="747"><td class="num" id="LN747">747</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="748"><td class="num" id="LN748">748</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="749"><td class="num" id="LN749">749</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="750"><td class="num" id="LN750">750</td><td class="line">do_save_yourself (EggSMClientXSMP *xsmp)</td></tr>
+<tr class="codeline" data-linenumber="751"><td class="num" id="LN751">751</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="752"><td class="num" id="LN752">752</td><td class="line"> <span class='keyword'>if</span> (xsmp-&gt;state == XSMP_STATE_SHUTDOWN_CANCELLED)</td></tr>
+<tr class="codeline" data-linenumber="753"><td class="num" id="LN753">753</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="754"><td class="num" id="LN754">754</td><td class="line"> <span class='comment'>/* The SM cancelled a previous SaveYourself, but we haven't yet</span></td></tr>
+<tr class="codeline" data-linenumber="755"><td class="num" id="LN755">755</td><td class="line"> <span class='comment'>* had a chance to tell the application, so we can't start</span></td></tr>
+<tr class="codeline" data-linenumber="756"><td class="num" id="LN756">756</td><td class="line"> <span class='comment'>* processing this SaveYourself yet.</span></td></tr>
+<tr class="codeline" data-linenumber="757"><td class="num" id="LN757">757</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="758"><td class="num" id="LN758">758</td><td class="line"> xsmp-&gt;waiting_to_save_myself = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="759"><td class="num" id="LN759">759</td><td class="line"> update_pending_events (xsmp);</td></tr>
+<tr class="codeline" data-linenumber="760"><td class="num" id="LN760">760</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="761"><td class="num" id="LN761">761</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="762"><td class="num" id="LN762">762</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="763"><td class="num" id="LN763">763</td><td class="line"> <span class='keyword'>if</span> (xsmp-&gt;need_quit_requested)</td></tr>
+<tr class="codeline" data-linenumber="764"><td class="num" id="LN764">764</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="765"><td class="num" id="LN765">765</td><td class="line"> xsmp-&gt;state = XSMP_STATE_INTERACT_REQUEST;</td></tr>
+<tr class="codeline" data-linenumber="766"><td class="num" id="LN766">766</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="767"><td class="num" id="LN767">767</td><td class="line"> g_debug (<span class='string_literal'>"Sending InteractRequest(%s)"</span>,</td></tr>
+<tr class="codeline" data-linenumber="768"><td class="num" id="LN768">768</td><td class="line"> xsmp-&gt;interact_errors ? <span class='string_literal'>"Error"</span> : <span class='string_literal'>"Normal"</span>);</td></tr>
+<tr class="codeline" data-linenumber="769"><td class="num" id="LN769">769</td><td class="line"> SmcInteractRequest (xsmp-&gt;connection,</td></tr>
+<tr class="codeline" data-linenumber="770"><td class="num" id="LN770">770</td><td class="line"> xsmp-&gt;interact_errors ? <span class='macro'>SmDialogError<span class='macro_popup'>0</span></span> : <span class='macro'>SmDialogNormal<span class='macro_popup'>1</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="771"><td class="num" id="LN771">771</td><td class="line"> xsmp_interact,</td></tr>
+<tr class="codeline" data-linenumber="772"><td class="num" id="LN772">772</td><td class="line"> xsmp);</td></tr>
+<tr class="codeline" data-linenumber="773"><td class="num" id="LN773">773</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="774"><td class="num" id="LN774">774</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="775"><td class="num" id="LN775">775</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="776"><td class="num" id="LN776">776</td><td class="line"> <span class='keyword'>if</span> (xsmp-&gt;need_save_state)</td></tr>
+<tr class="codeline" data-linenumber="777"><td class="num" id="LN777">777</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="778"><td class="num" id="LN778">778</td><td class="line"> save_state (xsmp);</td></tr>
+<tr class="codeline" data-linenumber="779"><td class="num" id="LN779">779</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="780"><td class="num" id="LN780">780</td><td class="line"> <span class='comment'>/* Though unlikely, the client could have been disconnected</span></td></tr>
+<tr class="codeline" data-linenumber="781"><td class="num" id="LN781">781</td><td class="line"> <span class='comment'>* while the application was saving its state.</span></td></tr>
+<tr class="codeline" data-linenumber="782"><td class="num" id="LN782">782</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="783"><td class="num" id="LN783">783</td><td class="line"> <span class='keyword'>if</span> (!xsmp-&gt;connection)</td></tr>
+<tr class="codeline" data-linenumber="784"><td class="num" id="LN784">784</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="785"><td class="num" id="LN785">785</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="786"><td class="num" id="LN786">786</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="787"><td class="num" id="LN787">787</td><td class="line"> g_debug (<span class='string_literal'>"Sending SaveYourselfDone(True)"</span>);</td></tr>
+<tr class="codeline" data-linenumber="788"><td class="num" id="LN788">788</td><td class="line"> SmcSaveYourselfDone (xsmp-&gt;connection, <span class='macro'>True<span class='macro_popup'>1</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="789"><td class="num" id="LN789">789</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="790"><td class="num" id="LN790">790</td><td class="line"> <span class='comment'>/* The client state diagram in the XSMP spec says that after a</span></td></tr>
+<tr class="codeline" data-linenumber="791"><td class="num" id="LN791">791</td><td class="line"> <span class='comment'>* non-shutdown SaveYourself, we go directly back to "idle". But</span></td></tr>
+<tr class="codeline" data-linenumber="792"><td class="num" id="LN792">792</td><td class="line"> <span class='comment'>* everything else in both the XSMP spec and the libSM docs</span></td></tr>
+<tr class="codeline" data-linenumber="793"><td class="num" id="LN793">793</td><td class="line"> <span class='comment'>* disagrees.</span></td></tr>
+<tr class="codeline" data-linenumber="794"><td class="num" id="LN794">794</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="795"><td class="num" id="LN795">795</td><td class="line"> xsmp-&gt;state = XSMP_STATE_SAVE_YOURSELF_DONE;</td></tr>
+<tr class="codeline" data-linenumber="796"><td class="num" id="LN796">796</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="797"><td class="num" id="LN797">797</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="798"><td class="num" id="LN798">798</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="799"><td class="num" id="LN799">799</td><td class="line">save_state (EggSMClientXSMP *xsmp)</td></tr>
+<tr class="codeline" data-linenumber="800"><td class="num" id="LN800">800</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="801"><td class="num" id="LN801">801</td><td class="line"> GKeyFile *state_file;</td></tr>
+<tr class="codeline" data-linenumber="802"><td class="num" id="LN802">802</td><td class="line"> <span class='keyword'>char</span> *state_file_path, *data;</td></tr>
+<tr class="codeline" data-linenumber="803"><td class="num" id="LN803">803</td><td class="line"> EggDesktopFile *desktop_file;</td></tr>
+<tr class="codeline" data-linenumber="804"><td class="num" id="LN804">804</td><td class="line"> GPtrArray *restart, *discard;</td></tr>
+<tr class="codeline" data-linenumber="805"><td class="num" id="LN805">805</td><td class="line"> <span class='keyword'>int</span> offset, fd;</td></tr>
+<tr class="codeline" data-linenumber="806"><td class="num" id="LN806">806</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="807"><td class="num" id="LN807">807</td><td class="line"> <span class='comment'>/* We set xsmp-&gt;state before emitting save_state, but our caller is</span></td></tr>
+<tr class="codeline" data-linenumber="808"><td class="num" id="LN808">808</td><td class="line"> <span class='comment'>* responsible for setting it back afterward.</span></td></tr>
+<tr class="codeline" data-linenumber="809"><td class="num" id="LN809">809</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="810"><td class="num" id="LN810">810</td><td class="line"> xsmp-&gt;state = XSMP_STATE_SAVE_YOURSELF;</td></tr>
+<tr class="codeline" data-linenumber="811"><td class="num" id="LN811">811</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="812"><td class="num" id="LN812">812</td><td class="line"> state_file = egg_sm_client_save_state ((EggSMClient *)xsmp);</td></tr>
+<tr class="codeline" data-linenumber="813"><td class="num" id="LN813">813</td><td class="line"> <span class='keyword'>if</span> (!state_file)</td></tr>
+<tr class="codeline" data-linenumber="814"><td class="num" id="LN814">814</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="815"><td class="num" id="LN815">815</td><td class="line"> restart = generate_command (xsmp-&gt;restart_command, xsmp-&gt;client_id, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="816"><td class="num" id="LN816">816</td><td class="line"> set_properties (xsmp,</td></tr>
+<tr class="codeline" data-linenumber="817"><td class="num" id="LN817">817</td><td class="line"> ptrarray_prop (<span class='macro'>SmRestartCommand<span class='macro_popup'>"RestartCommand"</span></span>, restart),</td></tr>
+<tr class="codeline" data-linenumber="818"><td class="num" id="LN818">818</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="819"><td class="num" id="LN819">819</td><td class="line"> g_ptr_array_free (restart, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="820"><td class="num" id="LN820">820</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="821"><td class="num" id="LN821">821</td><td class="line"> <span class='keyword'>if</span> (xsmp-&gt;set_discard_command)</td></tr>
+<tr class="codeline" data-linenumber="822"><td class="num" id="LN822">822</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="823"><td class="num" id="LN823">823</td><td class="line"> discard = generate_command (xsmp-&gt;discard_command, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="824"><td class="num" id="LN824">824</td><td class="line"> set_properties (xsmp,</td></tr>
+<tr class="codeline" data-linenumber="825"><td class="num" id="LN825">825</td><td class="line"> ptrarray_prop (<span class='macro'>SmDiscardCommand<span class='macro_popup'>"DiscardCommand"</span></span>, discard),</td></tr>
+<tr class="codeline" data-linenumber="826"><td class="num" id="LN826">826</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="827"><td class="num" id="LN827">827</td><td class="line"> g_ptr_array_free (discard, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="828"><td class="num" id="LN828">828</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="829"><td class="num" id="LN829">829</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="830"><td class="num" id="LN830">830</td><td class="line"> delete_properties (xsmp, <span class='macro'>SmDiscardCommand<span class='macro_popup'>"DiscardCommand"</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="831"><td class="num" id="LN831">831</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="832"><td class="num" id="LN832">832</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="833"><td class="num" id="LN833">833</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="834"><td class="num" id="LN834">834</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="835"><td class="num" id="LN835">835</td><td class="line"> desktop_file = egg_get_desktop_file ();</td></tr>
+<tr class="codeline" data-linenumber="836"><td class="num" id="LN836">836</td><td class="line"> <span class='keyword'>if</span> (desktop_file)</td></tr>
+<tr class="codeline" data-linenumber="837"><td class="num" id="LN837">837</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="838"><td class="num" id="LN838">838</td><td class="line"> GKeyFile *merged_file;</td></tr>
+<tr class="codeline" data-linenumber="839"><td class="num" id="LN839">839</td><td class="line"> <span class='keyword'>char</span> *desktop_file_path;</td></tr>
+<tr class="codeline" data-linenumber="840"><td class="num" id="LN840">840</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="841"><td class="num" id="LN841">841</td><td class="line"> merged_file = g_key_file_new ();</td></tr>
+<tr class="codeline" data-linenumber="842"><td class="num" id="LN842">842</td><td class="line"> desktop_file_path =</td></tr>
+<tr class="codeline" data-linenumber="843"><td class="num" id="LN843">843</td><td class="line"> g_filename_from_uri (egg_desktop_file_get_source (desktop_file),</td></tr>
+<tr class="codeline" data-linenumber="844"><td class="num" id="LN844">844</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="845"><td class="num" id="LN845">845</td><td class="line"> <span class='keyword'>if</span> (desktop_file_path &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="846"><td class="num" id="LN846">846</td><td class="line"> g_key_file_load_from_file (merged_file, desktop_file_path,</td></tr>
+<tr class="codeline" data-linenumber="847"><td class="num" id="LN847">847</td><td class="line"> G_KEY_FILE_KEEP_COMMENTS |</td></tr>
+<tr class="codeline" data-linenumber="848"><td class="num" id="LN848">848</td><td class="line"> G_KEY_FILE_KEEP_TRANSLATIONS, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="849"><td class="num" id="LN849">849</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="850"><td class="num" id="LN850">850</td><td class="line"> guint g, k, i;</td></tr>
+<tr class="codeline" data-linenumber="851"><td class="num" id="LN851">851</td><td class="line"> <span class='keyword'>char</span> **groups, **keys, *value, *exec;</td></tr>
+<tr class="codeline" data-linenumber="852"><td class="num" id="LN852">852</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="853"><td class="num" id="LN853">853</td><td class="line"> groups = g_key_file_get_groups (state_file, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="854"><td class="num" id="LN854">854</td><td class="line"> <span class='keyword'>for</span> (g = 0; groups[g]; g++)</td></tr>
+<tr class="codeline" data-linenumber="855"><td class="num" id="LN855">855</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="856"><td class="num" id="LN856">856</td><td class="line"> keys = g_key_file_get_keys (state_file, groups[g], <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="857"><td class="num" id="LN857">857</td><td class="line"> <span class='keyword'>for</span> (k = 0; keys[k]; k++)</td></tr>
+<tr class="codeline" data-linenumber="858"><td class="num" id="LN858">858</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="859"><td class="num" id="LN859">859</td><td class="line"> value = g_key_file_get_value (state_file, groups[g],</td></tr>
+<tr class="codeline" data-linenumber="860"><td class="num" id="LN860">860</td><td class="line"> keys[k], <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="861"><td class="num" id="LN861">861</td><td class="line"> <span class='keyword'>if</span> (value)</td></tr>
+<tr class="codeline" data-linenumber="862"><td class="num" id="LN862">862</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="863"><td class="num" id="LN863">863</td><td class="line"> g_key_file_set_value (merged_file, groups[g],</td></tr>
+<tr class="codeline" data-linenumber="864"><td class="num" id="LN864">864</td><td class="line"> keys[k], value);</td></tr>
+<tr class="codeline" data-linenumber="865"><td class="num" id="LN865">865</td><td class="line"> g_free (value);</td></tr>
+<tr class="codeline" data-linenumber="866"><td class="num" id="LN866">866</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="867"><td class="num" id="LN867">867</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="868"><td class="num" id="LN868">868</td><td class="line"> g_strfreev (keys);</td></tr>
+<tr class="codeline" data-linenumber="869"><td class="num" id="LN869">869</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="870"><td class="num" id="LN870">870</td><td class="line"> g_strfreev (groups);</td></tr>
+<tr class="codeline" data-linenumber="871"><td class="num" id="LN871">871</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="872"><td class="num" id="LN872">872</td><td class="line"> g_key_file_free (state_file);</td></tr>
+<tr class="codeline" data-linenumber="873"><td class="num" id="LN873">873</td><td class="line"> state_file = merged_file;</td></tr>
+<tr class="codeline" data-linenumber="874"><td class="num" id="LN874">874</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="875"><td class="num" id="LN875">875</td><td class="line"> <span class='comment'>/* Update Exec key using "--sm-client-state-file %k" */</span></td></tr>
+<tr class="codeline" data-linenumber="876"><td class="num" id="LN876">876</td><td class="line"> restart = generate_command (xsmp-&gt;restart_command,</td></tr>
+<tr class="codeline" data-linenumber="877"><td class="num" id="LN877">877</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='string_literal'>"%k"</span>);</td></tr>
+<tr class="codeline" data-linenumber="878"><td class="num" id="LN878">878</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; restart-&gt;len; i++)</td></tr>
+<tr class="codeline" data-linenumber="879"><td class="num" id="LN879">879</td><td class="line"> restart-&gt;pdata[i] = g_shell_quote (restart-&gt;pdata[i]);</td></tr>
+<tr class="codeline" data-linenumber="880"><td class="num" id="LN880">880</td><td class="line"> g_ptr_array_add (restart, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="881"><td class="num" id="LN881">881</td><td class="line"> exec = g_strjoinv (<span class='string_literal'>" "</span>, (<span class='keyword'>char</span> **)restart-&gt;pdata);</td></tr>
+<tr class="codeline" data-linenumber="882"><td class="num" id="LN882">882</td><td class="line"> g_strfreev ((<span class='keyword'>char</span> **)restart-&gt;pdata);</td></tr>
+<tr class="codeline" data-linenumber="883"><td class="num" id="LN883">883</td><td class="line"> g_ptr_array_free (restart, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="884"><td class="num" id="LN884">884</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="885"><td class="num" id="LN885">885</td><td class="line"> g_key_file_set_string (state_file, <span class='macro'>EGG_DESKTOP_FILE_GROUP<span class='macro_popup'>"Desktop Entry"</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="886"><td class="num" id="LN886">886</td><td class="line"> <span class='macro'>EGG_DESKTOP_FILE_KEY_EXEC<span class='macro_popup'>"Exec"</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="887"><td class="num" id="LN887">887</td><td class="line"> exec);</td></tr>
+<tr class="codeline" data-linenumber="888"><td class="num" id="LN888">888</td><td class="line"> g_free (exec);</td></tr>
+<tr class="codeline" data-linenumber="889"><td class="num" id="LN889">889</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="890"><td class="num" id="LN890">890</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="891"><td class="num" id="LN891">891</td><td class="line"> desktop_file = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="892"><td class="num" id="LN892">892</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="893"><td class="num" id="LN893">893</td><td class="line"> g_free (desktop_file_path);</td></tr>
+<tr class="codeline" data-linenumber="894"><td class="num" id="LN894">894</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="895"><td class="num" id="LN895">895</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="896"><td class="num" id="LN896">896</td><td class="line"> <span class='comment'>/* Now write state_file to disk. (We can't use mktemp(), because</span></td></tr>
+<tr class="codeline" data-linenumber="897"><td class="num" id="LN897">897</td><td class="line"> <span class='comment'>* that requires the filename to end with "XXXXXX", and we want</span></td></tr>
+<tr class="codeline" data-linenumber="898"><td class="num" id="LN898">898</td><td class="line"> <span class='comment'>* it to end with ".desktop".)</span></td></tr>
+<tr class="codeline" data-linenumber="899"><td class="num" id="LN899">899</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="900"><td class="num" id="LN900">900</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="901"><td class="num" id="LN901">901</td><td class="line"> data = g_key_file_to_data (state_file, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="902"><td class="num" id="LN902">902</td><td class="line"> g_key_file_free (state_file);</td></tr>
+<tr class="codeline" data-linenumber="903"><td class="num" id="LN903">903</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="904"><td class="num" id="LN904">904</td><td class="line"> offset = 0;</td></tr>
+<tr class="codeline" data-linenumber="905"><td class="num" id="LN905">905</td><td class="line"> <span class='keyword'>while</span> (1)</td></tr>
+<tr class="codeline" data-linenumber="906"><td class="num" id="LN906">906</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="907"><td class="num" id="LN907">907</td><td class="line"> state_file_path = g_strdup_printf (<span class='string_literal'>"%s%csession-state%c%s-%ld.%s"</span>,</td></tr>
+<tr class="codeline" data-linenumber="908"><td class="num" id="LN908">908</td><td class="line"> g_get_user_config_dir (),</td></tr>
+<tr class="codeline" data-linenumber="909"><td class="num" id="LN909">909</td><td class="line"> <span class='macro'>G_DIR_SEPARATOR<span class='macro_popup'>'/'</span></span>, <span class='macro'>G_DIR_SEPARATOR<span class='macro_popup'>'/'</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="910"><td class="num" id="LN910">910</td><td class="line"> g_get_prgname (),</td></tr>
+<tr class="codeline" data-linenumber="911"><td class="num" id="LN911">911</td><td class="line"> (<span class='keyword'>long</span>)time (<span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>) + offset,</td></tr>
+<tr class="codeline" data-linenumber="912"><td class="num" id="LN912">912</td><td class="line"> desktop_file ? <span class='string_literal'>"desktop"</span> : <span class='string_literal'>"state"</span>);</td></tr>
+<tr class="codeline" data-linenumber="913"><td class="num" id="LN913">913</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="914"><td class="num" id="LN914">914</td><td class="line"> fd = open (state_file_path, <span class='macro'>O_WRONLY<span class='macro_popup'>01</span></span> | <span class='macro'>O_CREAT<span class='macro_popup'>0100</span></span> | <span class='macro'>O_EXCL<span class='macro_popup'>0200</span></span>, 0644);</td></tr>
+<tr class="codeline" data-linenumber="915"><td class="num" id="LN915">915</td><td class="line"> <span class='keyword'>if</span> (fd == -1)</td></tr>
+<tr class="codeline" data-linenumber="916"><td class="num" id="LN916">916</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="917"><td class="num" id="LN917">917</td><td class="line"> <span class='keyword'>if</span> (<span class='macro'>errno<span class='macro_popup'>(*__errno_location ())</span></span> == <span class='macro'>EEXIST<span class='macro_popup'>17</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="918"><td class="num" id="LN918">918</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="919"><td class="num" id="LN919">919</td><td class="line"> offset++;</td></tr>
+<tr class="codeline" data-linenumber="920"><td class="num" id="LN920">920</td><td class="line"> g_free (state_file_path);</td></tr>
+<tr class="codeline" data-linenumber="921"><td class="num" id="LN921">921</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="922"><td class="num" id="LN922">922</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="923"><td class="num" id="LN923">923</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>errno<span class='macro_popup'>(*__errno_location ())</span></span> == <span class='macro'>ENOTDIR<span class='macro_popup'>20</span></span> || <span class='macro'>errno<span class='macro_popup'>(*__errno_location ())</span></span> == <span class='macro'>ENOENT<span class='macro_popup'>2</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="924"><td class="num" id="LN924">924</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="925"><td class="num" id="LN925">925</td><td class="line"> <span class='keyword'>char</span> *sep = strrchr (state_file_path, <span class='macro'>G_DIR_SEPARATOR<span class='macro_popup'>'/'</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="926"><td class="num" id="LN926">926</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="927"><td class="num" id="LN927">927</td><td class="line"> *sep = '\0';</td></tr>
+<tr class="codeline" data-linenumber="928"><td class="num" id="LN928">928</td><td class="line"> <span class='keyword'>if</span> (g_mkdir_with_parents (state_file_path, 0755) != 0)</td></tr>
+<tr class="codeline" data-linenumber="929"><td class="num" id="LN929">929</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="930"><td class="num" id="LN930">930</td><td class="line"> g_warning (<span class='string_literal'>"Could not create directory '%s'"</span>,</td></tr>
+<tr class="codeline" data-linenumber="931"><td class="num" id="LN931">931</td><td class="line"> state_file_path);</td></tr>
+<tr class="codeline" data-linenumber="932"><td class="num" id="LN932">932</td><td class="line"> g_free (state_file_path);</td></tr>
+<tr class="codeline" data-linenumber="933"><td class="num" id="LN933">933</td><td class="line"> state_file_path = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="934"><td class="num" id="LN934">934</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="935"><td class="num" id="LN935">935</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="936"><td class="num" id="LN936">936</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="937"><td class="num" id="LN937">937</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="938"><td class="num" id="LN938">938</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="939"><td class="num" id="LN939">939</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="940"><td class="num" id="LN940">940</td><td class="line"> g_warning (<span class='string_literal'>"Could not create file '%s': %s"</span>,</td></tr>
+<tr class="codeline" data-linenumber="941"><td class="num" id="LN941">941</td><td class="line"> state_file_path, g_strerror (<span class='macro'>errno<span class='macro_popup'>(*__errno_location ())</span></span>));</td></tr>
+<tr class="codeline" data-linenumber="942"><td class="num" id="LN942">942</td><td class="line"> g_free (state_file_path);</td></tr>
+<tr class="codeline" data-linenumber="943"><td class="num" id="LN943">943</td><td class="line"> state_file_path = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="944"><td class="num" id="LN944">944</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="945"><td class="num" id="LN945">945</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="946"><td class="num" id="LN946">946</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="947"><td class="num" id="LN947">947</td><td class="line"> close (fd);</td></tr>
+<tr class="codeline" data-linenumber="948"><td class="num" id="LN948">948</td><td class="line"> g_file_set_contents (state_file_path, data, -1, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="949"><td class="num" id="LN949">949</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="950"><td class="num" id="LN950">950</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="951"><td class="num" id="LN951">951</td><td class="line"> g_free (data);</td></tr>
+<tr class="codeline" data-linenumber="952"><td class="num" id="LN952">952</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="953"><td class="num" id="LN953">953</td><td class="line"> restart = generate_command (xsmp-&gt;restart_command, xsmp-&gt;client_id,</td></tr>
+<tr class="codeline" data-linenumber="954"><td class="num" id="LN954">954</td><td class="line"> state_file_path);</td></tr>
+<tr class="codeline" data-linenumber="955"><td class="num" id="LN955">955</td><td class="line"> set_properties (xsmp,</td></tr>
+<tr class="codeline" data-linenumber="956"><td class="num" id="LN956">956</td><td class="line"> ptrarray_prop (<span class='macro'>SmRestartCommand<span class='macro_popup'>"RestartCommand"</span></span>, restart),</td></tr>
+<tr class="codeline" data-linenumber="957"><td class="num" id="LN957">957</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="958"><td class="num" id="LN958">958</td><td class="line"> g_ptr_array_free (restart, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="959"><td class="num" id="LN959">959</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="960"><td class="num" id="LN960">960</td><td class="line"> <span class='keyword'>if</span> (state_file_path)</td></tr>
+<tr class="codeline" data-linenumber="961"><td class="num" id="LN961">961</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="962"><td class="num" id="LN962">962</td><td class="line"> set_properties (xsmp,</td></tr>
+<tr class="codeline" data-linenumber="963"><td class="num" id="LN963">963</td><td class="line"> array_prop (<span class='macro'>SmDiscardCommand<span class='macro_popup'>"DiscardCommand"</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="964"><td class="num" id="LN964">964</td><td class="line"> <span class='string_literal'>"/bin/rm"</span>, <span class='string_literal'>"-rf"</span>, state_file_path,</td></tr>
+<tr class="codeline" data-linenumber="965"><td class="num" id="LN965">965</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>),</td></tr>
+<tr class="codeline" data-linenumber="966"><td class="num" id="LN966">966</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="967"><td class="num" id="LN967">967</td><td class="line"> g_free (state_file_path);</td></tr>
+<tr class="codeline" data-linenumber="968"><td class="num" id="LN968">968</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="969"><td class="num" id="LN969">969</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="970"><td class="num" id="LN970">970</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="971"><td class="num" id="LN971">971</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="972"><td class="num" id="LN972">972</td><td class="line">xsmp_interact (SmcConn smc_conn,</td></tr>
+<tr class="codeline" data-linenumber="973"><td class="num" id="LN973">973</td><td class="line"> SmPointer client_data)</td></tr>
+<tr class="codeline" data-linenumber="974"><td class="num" id="LN974">974</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="975"><td class="num" id="LN975">975</td><td class="line"> EggSMClientXSMP *xsmp = client_data;</td></tr>
+<tr class="codeline" data-linenumber="976"><td class="num" id="LN976">976</td><td class="line"> EggSMClient *client = client_data;</td></tr>
+<tr class="codeline" data-linenumber="977"><td class="num" id="LN977">977</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="978"><td class="num" id="LN978">978</td><td class="line"> g_debug (<span class='string_literal'>"Received Interact message in state %s"</span>,</td></tr>
+<tr class="codeline" data-linenumber="979"><td class="num" id="LN979">979</td><td class="line"> <span class='macro'>EGG_SM_CLIENT_XSMP_STATE (xsmp)<span class='macro_popup'>(state_names[(xsmp)-&gt;state])</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="980"><td class="num" id="LN980">980</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="981"><td class="num" id="LN981">981</td><td class="line"> <span class='keyword'>if</span> (xsmp-&gt;state != XSMP_STATE_INTERACT_REQUEST)</td></tr>
+<tr class="codeline" data-linenumber="982"><td class="num" id="LN982">982</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="983"><td class="num" id="LN983">983</td><td class="line"> fix_broken_state (xsmp, <span class='string_literal'>"Interact"</span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="984"><td class="num" id="LN984">984</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="985"><td class="num" id="LN985">985</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="986"><td class="num" id="LN986">986</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="987"><td class="num" id="LN987">987</td><td class="line"> xsmp-&gt;state = XSMP_STATE_INTERACT;</td></tr>
+<tr class="codeline" data-linenumber="988"><td class="num" id="LN988">988</td><td class="line"> egg_sm_client_quit_requested (client);</td></tr>
+<tr class="codeline" data-linenumber="989"><td class="num" id="LN989">989</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="990"><td class="num" id="LN990">990</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="991"><td class="num" id="LN991">991</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="992"><td class="num" id="LN992">992</td><td class="line">xsmp_die (SmcConn smc_conn,</td></tr>
+<tr class="codeline" data-linenumber="993"><td class="num" id="LN993">993</td><td class="line"> SmPointer client_data)</td></tr>
+<tr class="codeline" data-linenumber="994"><td class="num" id="LN994">994</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="995"><td class="num" id="LN995">995</td><td class="line"> EggSMClientXSMP *xsmp = client_data;</td></tr>
+<tr class="codeline" data-linenumber="996"><td class="num" id="LN996">996</td><td class="line"> EggSMClient *client = client_data;</td></tr>
+<tr class="codeline" data-linenumber="997"><td class="num" id="LN997">997</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="998"><td class="num" id="LN998">998</td><td class="line"> g_debug (<span class='string_literal'>"Received Die message in state %s"</span>,</td></tr>
+<tr class="codeline" data-linenumber="999"><td class="num" id="LN999">999</td><td class="line"> <span class='macro'>EGG_SM_CLIENT_XSMP_STATE (xsmp)<span class='macro_popup'>(state_names[(xsmp)-&gt;state])</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1000"><td class="num" id="LN1000">1000</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1001"><td class="num" id="LN1001">1001</td><td class="line"> sm_client_xsmp_disconnect (xsmp);</td></tr>
+<tr class="codeline" data-linenumber="1002"><td class="num" id="LN1002">1002</td><td class="line"> egg_sm_client_quit (client);</td></tr>
+<tr class="codeline" data-linenumber="1003"><td class="num" id="LN1003">1003</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1004"><td class="num" id="LN1004">1004</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1005"><td class="num" id="LN1005">1005</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1006"><td class="num" id="LN1006">1006</td><td class="line">xsmp_save_complete (SmcConn smc_conn,</td></tr>
+<tr class="codeline" data-linenumber="1007"><td class="num" id="LN1007">1007</td><td class="line"> SmPointer client_data)</td></tr>
+<tr class="codeline" data-linenumber="1008"><td class="num" id="LN1008">1008</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1009"><td class="num" id="LN1009">1009</td><td class="line"> EggSMClientXSMP *xsmp = client_data;</td></tr>
+<tr class="codeline" data-linenumber="1010"><td class="num" id="LN1010">1010</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1011"><td class="num" id="LN1011">1011</td><td class="line"> g_debug (<span class='string_literal'>"Received SaveComplete message in state %s"</span>,</td></tr>
+<tr class="codeline" data-linenumber="1012"><td class="num" id="LN1012">1012</td><td class="line"> <span class='macro'>EGG_SM_CLIENT_XSMP_STATE (xsmp)<span class='macro_popup'>(state_names[(xsmp)-&gt;state])</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1013"><td class="num" id="LN1013">1013</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1014"><td class="num" id="LN1014">1014</td><td class="line"> <span class='keyword'>if</span> (xsmp-&gt;state == XSMP_STATE_SAVE_YOURSELF_DONE)</td></tr>
+<tr class="codeline" data-linenumber="1015"><td class="num" id="LN1015">1015</td><td class="line"> xsmp-&gt;state = XSMP_STATE_IDLE;</td></tr>
+<tr class="codeline" data-linenumber="1016"><td class="num" id="LN1016">1016</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="1017"><td class="num" id="LN1017">1017</td><td class="line"> fix_broken_state (xsmp, <span class='string_literal'>"SaveComplete"</span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1018"><td class="num" id="LN1018">1018</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1019"><td class="num" id="LN1019">1019</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1020"><td class="num" id="LN1020">1020</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1021"><td class="num" id="LN1021">1021</td><td class="line">xsmp_shutdown_cancelled (SmcConn smc_conn,</td></tr>
+<tr class="codeline" data-linenumber="1022"><td class="num" id="LN1022">1022</td><td class="line"> SmPointer client_data)</td></tr>
+<tr class="codeline" data-linenumber="1023"><td class="num" id="LN1023">1023</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1024"><td class="num" id="LN1024">1024</td><td class="line"> EggSMClientXSMP *xsmp = client_data;</td></tr>
+<tr class="codeline" data-linenumber="1025"><td class="num" id="LN1025">1025</td><td class="line"> EggSMClient *client = client_data;</td></tr>
+<tr class="codeline" data-linenumber="1026"><td class="num" id="LN1026">1026</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1027"><td class="num" id="LN1027">1027</td><td class="line"> g_debug (<span class='string_literal'>"Received ShutdownCancelled message in state %s"</span>,</td></tr>
+<tr class="codeline" data-linenumber="1028"><td class="num" id="LN1028">1028</td><td class="line"> <span class='macro'>EGG_SM_CLIENT_XSMP_STATE (xsmp)<span class='macro_popup'>(state_names[(xsmp)-&gt;state])</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1029"><td class="num" id="LN1029">1029</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1030"><td class="num" id="LN1030">1030</td><td class="line"> xsmp-&gt;shutting_down = <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1031"><td class="num" id="LN1031">1031</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1032"><td class="num" id="LN1032">1032</td><td class="line"> <span class='keyword'>if</span> (xsmp-&gt;state == XSMP_STATE_SAVE_YOURSELF_DONE)</td></tr>
+<tr class="codeline" data-linenumber="1033"><td class="num" id="LN1033">1033</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1034"><td class="num" id="LN1034">1034</td><td class="line"> <span class='comment'>/* We've finished interacting and now the SM has agreed to</span></td></tr>
+<tr class="codeline" data-linenumber="1035"><td class="num" id="LN1035">1035</td><td class="line"> <span class='comment'>* cancel the shutdown.</span></td></tr>
+<tr class="codeline" data-linenumber="1036"><td class="num" id="LN1036">1036</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="1037"><td class="num" id="LN1037">1037</td><td class="line"> xsmp-&gt;state = XSMP_STATE_IDLE;</td></tr>
+<tr class="codeline" data-linenumber="1038"><td class="num" id="LN1038">1038</td><td class="line"> egg_sm_client_quit_cancelled (client);</td></tr>
+<tr class="codeline" data-linenumber="1039"><td class="num" id="LN1039">1039</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1040"><td class="num" id="LN1040">1040</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (xsmp-&gt;state == XSMP_STATE_SHUTDOWN_CANCELLED)</td></tr>
+<tr class="codeline" data-linenumber="1041"><td class="num" id="LN1041">1041</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1042"><td class="num" id="LN1042">1042</td><td class="line"> <span class='comment'>/* Hm... ok, so we got a shutdown SaveYourself, which got</span></td></tr>
+<tr class="codeline" data-linenumber="1043"><td class="num" id="LN1043">1043</td><td class="line"> <span class='comment'>* cancelled, but the application was still interacting, so we</span></td></tr>
+<tr class="codeline" data-linenumber="1044"><td class="num" id="LN1044">1044</td><td class="line"> <span class='comment'>* didn't tell it yet, and then *another* SaveYourself arrived,</span></td></tr>
+<tr class="codeline" data-linenumber="1045"><td class="num" id="LN1045">1045</td><td class="line"> <span class='comment'>* which we must still be waiting to tell the app about, except</span></td></tr>
+<tr class="codeline" data-linenumber="1046"><td class="num" id="LN1046">1046</td><td class="line"> <span class='comment'>* that now that SaveYourself has been cancelled too! Dizzy yet?</span></td></tr>
+<tr class="codeline" data-linenumber="1047"><td class="num" id="LN1047">1047</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="1048"><td class="num" id="LN1048">1048</td><td class="line"> xsmp-&gt;waiting_to_save_myself = <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1049"><td class="num" id="LN1049">1049</td><td class="line"> update_pending_events (xsmp);</td></tr>
+<tr class="codeline" data-linenumber="1050"><td class="num" id="LN1050">1050</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1051"><td class="num" id="LN1051">1051</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="1052"><td class="num" id="LN1052">1052</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1053"><td class="num" id="LN1053">1053</td><td class="line"> g_debug (<span class='string_literal'>"Sending SaveYourselfDone(False)"</span>);</td></tr>
+<tr class="codeline" data-linenumber="1054"><td class="num" id="LN1054">1054</td><td class="line"> SmcSaveYourselfDone (xsmp-&gt;connection, <span class='macro'>False<span class='macro_popup'>0</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1055"><td class="num" id="LN1055">1055</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1056"><td class="num" id="LN1056">1056</td><td class="line"> <span class='keyword'>if</span> (xsmp-&gt;state == XSMP_STATE_INTERACT)</td></tr>
+<tr class="codeline" data-linenumber="1057"><td class="num" id="LN1057">1057</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1058"><td class="num" id="LN1058">1058</td><td class="line"> <span class='comment'>/* The application is currently interacting, so we can't</span></td></tr>
+<tr class="codeline" data-linenumber="1059"><td class="num" id="LN1059">1059</td><td class="line"> <span class='comment'>* tell it about the cancellation yet; we will wait until</span></td></tr>
+<tr class="codeline" data-linenumber="1060"><td class="num" id="LN1060">1060</td><td class="line"> <span class='comment'>* after it calls egg_sm_client_will_quit().</span></td></tr>
+<tr class="codeline" data-linenumber="1061"><td class="num" id="LN1061">1061</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="1062"><td class="num" id="LN1062">1062</td><td class="line"> xsmp-&gt;state = XSMP_STATE_SHUTDOWN_CANCELLED;</td></tr>
+<tr class="codeline" data-linenumber="1063"><td class="num" id="LN1063">1063</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1064"><td class="num" id="LN1064">1064</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="1065"><td class="num" id="LN1065">1065</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1066"><td class="num" id="LN1066">1066</td><td class="line"> <span class='comment'>/* The shutdown was cancelled before the application got a</span></td></tr>
+<tr class="codeline" data-linenumber="1067"><td class="num" id="LN1067">1067</td><td class="line"> <span class='comment'>* chance to interact.</span></td></tr>
+<tr class="codeline" data-linenumber="1068"><td class="num" id="LN1068">1068</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="1069"><td class="num" id="LN1069">1069</td><td class="line"> xsmp-&gt;state = XSMP_STATE_IDLE;</td></tr>
+<tr class="codeline" data-linenumber="1070"><td class="num" id="LN1070">1070</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1071"><td class="num" id="LN1071">1071</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1072"><td class="num" id="LN1072">1072</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1073"><td class="num" id="LN1073">1073</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1074"><td class="num" id="LN1074">1074</td><td class="line"><span class='comment'>/* Utilities */</span></td></tr>
+<tr class="codeline" data-linenumber="1075"><td class="num" id="LN1075">1075</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1076"><td class="num" id="LN1076">1076</td><td class="line"><span class='comment'>/* Create a restart/clone/Exec command based on @restart_command.</span></td></tr>
+<tr class="codeline" data-linenumber="1077"><td class="num" id="LN1077">1077</td><td class="line"> <span class='comment'>* If @client_id is non-%NULL, add "--sm-client-id @client_id".</span></td></tr>
+<tr class="codeline" data-linenumber="1078"><td class="num" id="LN1078">1078</td><td class="line"> <span class='comment'>* If @state_file is non-%NULL, add "--sm-client-state-file @state_file".</span></td></tr>
+<tr class="codeline" data-linenumber="1079"><td class="num" id="LN1079">1079</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="1080"><td class="num" id="LN1080">1080</td><td class="line"> <span class='comment'>* None of the input strings are g_strdup()ed; the caller must keep</span></td></tr>
+<tr class="codeline" data-linenumber="1081"><td class="num" id="LN1081">1081</td><td class="line"> <span class='comment'>* them around until it is done with the returned GPtrArray, and must</span></td></tr>
+<tr class="codeline" data-linenumber="1082"><td class="num" id="LN1082">1082</td><td class="line"> <span class='comment'>* then free the array, but not its contents.</span></td></tr>
+<tr class="codeline" data-linenumber="1083"><td class="num" id="LN1083">1083</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="1084"><td class="num" id="LN1084">1084</td><td class="line"><span class='keyword'>static</span> GPtrArray *</td></tr>
+<tr class="codeline" data-linenumber="1085"><td class="num" id="LN1085">1085</td><td class="line">generate_command (<span class='keyword'>char</span> **restart_command, <span class='keyword'>const</span> <span class='keyword'>char</span> *client_id,</td></tr>
+<tr class="codeline" data-linenumber="1086"><td class="num" id="LN1086">1086</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *state_file)</td></tr>
+<tr class="codeline" data-linenumber="1087"><td class="num" id="LN1087">1087</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1088"><td class="num" id="LN1088">1088</td><td class="line"> GPtrArray *cmd;</td></tr>
+<tr class="codeline" data-linenumber="1089"><td class="num" id="LN1089">1089</td><td class="line"> <span class='keyword'>int</span> i;</td></tr>
+<tr class="codeline" data-linenumber="1090"><td class="num" id="LN1090">1090</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1091"><td class="num" id="LN1091">1091</td><td class="line"> cmd = g_ptr_array_new ();</td></tr>
+<tr class="codeline" data-linenumber="1092"><td class="num" id="LN1092">1092</td><td class="line"> g_ptr_array_add (cmd, restart_command[0]);</td></tr>
+<tr class="codeline" data-linenumber="1093"><td class="num" id="LN1093">1093</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1094"><td class="num" id="LN1094">1094</td><td class="line"> <span class='keyword'>if</span> (client_id)</td></tr>
+<tr class="codeline" data-linenumber="1095"><td class="num" id="LN1095">1095</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1096"><td class="num" id="LN1096">1096</td><td class="line"> g_ptr_array_add (cmd, (<span class='keyword'>char</span> *)<span class='string_literal'>"--sm-client-id"</span>);</td></tr>
+<tr class="codeline" data-linenumber="1097"><td class="num" id="LN1097">1097</td><td class="line"> g_ptr_array_add (cmd, (<span class='keyword'>char</span> *)client_id);</td></tr>
+<tr class="codeline" data-linenumber="1098"><td class="num" id="LN1098">1098</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1099"><td class="num" id="LN1099">1099</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1100"><td class="num" id="LN1100">1100</td><td class="line"> <span class='keyword'>if</span> (state_file)</td></tr>
+<tr class="codeline" data-linenumber="1101"><td class="num" id="LN1101">1101</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1102"><td class="num" id="LN1102">1102</td><td class="line"> g_ptr_array_add (cmd, (<span class='keyword'>char</span> *)<span class='string_literal'>"--sm-client-state-file"</span>);</td></tr>
+<tr class="codeline" data-linenumber="1103"><td class="num" id="LN1103">1103</td><td class="line"> g_ptr_array_add (cmd, (<span class='keyword'>char</span> *)state_file);</td></tr>
+<tr class="codeline" data-linenumber="1104"><td class="num" id="LN1104">1104</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1105"><td class="num" id="LN1105">1105</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1106"><td class="num" id="LN1106">1106</td><td class="line"> <span class='keyword'>for</span> (i = 1; restart_command[i]; i++)</td></tr>
+<tr class="codeline" data-linenumber="1107"><td class="num" id="LN1107">1107</td><td class="line"> g_ptr_array_add (cmd, restart_command[i]);</td></tr>
+<tr class="codeline" data-linenumber="1108"><td class="num" id="LN1108">1108</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1109"><td class="num" id="LN1109">1109</td><td class="line"> <span class='keyword'>return</span> cmd;</td></tr>
+<tr class="codeline" data-linenumber="1110"><td class="num" id="LN1110">1110</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1111"><td class="num" id="LN1111">1111</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1112"><td class="num" id="LN1112">1112</td><td class="line"><span class='comment'>/* Takes a NULL-terminated list of SmProp * values, created by</span></td></tr>
+<tr class="codeline" data-linenumber="1113"><td class="num" id="LN1113">1113</td><td class="line"> <span class='comment'>* array_prop, ptrarray_prop, string_prop, card8_prop, sets them, and</span></td></tr>
+<tr class="codeline" data-linenumber="1114"><td class="num" id="LN1114">1114</td><td class="line"> <span class='comment'>* frees them.</span></td></tr>
+<tr class="codeline" data-linenumber="1115"><td class="num" id="LN1115">1115</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="1116"><td class="num" id="LN1116">1116</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1117"><td class="num" id="LN1117">1117</td><td class="line">set_properties (EggSMClientXSMP *xsmp, ...)</td></tr>
+<tr class="codeline" data-linenumber="1118"><td class="num" id="LN1118">1118</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1119"><td class="num" id="LN1119">1119</td><td class="line"> GPtrArray *props;</td></tr>
+<tr class="codeline" data-linenumber="1120"><td class="num" id="LN1120">1120</td><td class="line"> SmProp *prop;</td></tr>
+<tr class="codeline" data-linenumber="1121"><td class="num" id="LN1121">1121</td><td class="line"> va_list ap;</td></tr>
+<tr class="codeline" data-linenumber="1122"><td class="num" id="LN1122">1122</td><td class="line"> guint i;</td></tr>
+<tr class="codeline" data-linenumber="1123"><td class="num" id="LN1123">1123</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1124"><td class="num" id="LN1124">1124</td><td class="line"> props = g_ptr_array_new ();</td></tr>
+<tr class="codeline" data-linenumber="1125"><td class="num" id="LN1125">1125</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1126"><td class="num" id="LN1126">1126</td><td class="line"> <span class='macro'>va_start (ap, xsmp)<span class='macro_popup'>__builtin_va_start(ap, xsmp)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1127"><td class="num" id="LN1127">1127</td><td class="line"> <span class='keyword'>while</span> ((prop = <span class='macro'>va_arg (ap, SmProp *)<span class='macro_popup'>__builtin_va_arg(ap, SmProp *)</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="1128"><td class="num" id="LN1128">1128</td><td class="line"> g_ptr_array_add (props, prop);</td></tr>
+<tr class="codeline" data-linenumber="1129"><td class="num" id="LN1129">1129</td><td class="line"> <span class='macro'>va_end (ap)<span class='macro_popup'>__builtin_va_end(ap)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1130"><td class="num" id="LN1130">1130</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1131"><td class="num" id="LN1131">1131</td><td class="line"> <span class='keyword'>if</span> (xsmp-&gt;connection)</td></tr>
+<tr class="codeline" data-linenumber="1132"><td class="num" id="LN1132">1132</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1133"><td class="num" id="LN1133">1133</td><td class="line"> SmcSetProperties (xsmp-&gt;connection, props-&gt;len,</td></tr>
+<tr class="codeline" data-linenumber="1134"><td class="num" id="LN1134">1134</td><td class="line"> (SmProp **)props-&gt;pdata);</td></tr>
+<tr class="codeline" data-linenumber="1135"><td class="num" id="LN1135">1135</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1136"><td class="num" id="LN1136">1136</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1137"><td class="num" id="LN1137">1137</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; props-&gt;len; i++)</td></tr>
+<tr class="codeline" data-linenumber="1138"><td class="num" id="LN1138">1138</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1139"><td class="num" id="LN1139">1139</td><td class="line"> prop = props-&gt;pdata[i];</td></tr>
+<tr class="codeline" data-linenumber="1140"><td class="num" id="LN1140">1140</td><td class="line"> g_free (prop-&gt;vals);</td></tr>
+<tr class="codeline" data-linenumber="1141"><td class="num" id="LN1141">1141</td><td class="line"> g_free (prop);</td></tr>
+<tr class="codeline" data-linenumber="1142"><td class="num" id="LN1142">1142</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1143"><td class="num" id="LN1143">1143</td><td class="line"> g_ptr_array_free (props, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1144"><td class="num" id="LN1144">1144</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1145"><td class="num" id="LN1145">1145</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1146"><td class="num" id="LN1146">1146</td><td class="line"><span class='comment'>/* Takes a NULL-terminated list of property names and deletes them. */</span></td></tr>
+<tr class="codeline" data-linenumber="1147"><td class="num" id="LN1147">1147</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1148"><td class="num" id="LN1148">1148</td><td class="line">delete_properties (EggSMClientXSMP *xsmp, ...)</td></tr>
+<tr class="codeline" data-linenumber="1149"><td class="num" id="LN1149">1149</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1150"><td class="num" id="LN1150">1150</td><td class="line"> GPtrArray *props;</td></tr>
+<tr class="codeline" data-linenumber="1151"><td class="num" id="LN1151">1151</td><td class="line"> <span class='keyword'>char</span> *prop;</td></tr>
+<tr class="codeline" data-linenumber="1152"><td class="num" id="LN1152">1152</td><td class="line"> va_list ap;</td></tr>
+<tr class="codeline" data-linenumber="1153"><td class="num" id="LN1153">1153</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1154"><td class="num" id="LN1154">1154</td><td class="line"> <span class='keyword'>if</span> (!xsmp-&gt;connection)</td></tr>
+<tr class="codeline" data-linenumber="1155"><td class="num" id="LN1155">1155</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1156"><td class="num" id="LN1156">1156</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1157"><td class="num" id="LN1157">1157</td><td class="line"> props = g_ptr_array_new ();</td></tr>
+<tr class="codeline" data-linenumber="1158"><td class="num" id="LN1158">1158</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1159"><td class="num" id="LN1159">1159</td><td class="line"> <span class='macro'>va_start (ap, xsmp)<span class='macro_popup'>__builtin_va_start(ap, xsmp)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1160"><td class="num" id="LN1160">1160</td><td class="line"> <span class='keyword'>while</span> ((prop = <span class='macro'>va_arg (ap, <span class='keyword'>char</span> *)<span class='macro_popup'>__builtin_va_arg(ap, char *)</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="1161"><td class="num" id="LN1161">1161</td><td class="line"> g_ptr_array_add (props, prop);</td></tr>
+<tr class="codeline" data-linenumber="1162"><td class="num" id="LN1162">1162</td><td class="line"> <span class='macro'>va_end (ap)<span class='macro_popup'>__builtin_va_end(ap)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1163"><td class="num" id="LN1163">1163</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1164"><td class="num" id="LN1164">1164</td><td class="line"> SmcDeleteProperties (xsmp-&gt;connection, props-&gt;len,</td></tr>
+<tr class="codeline" data-linenumber="1165"><td class="num" id="LN1165">1165</td><td class="line"> (<span class='keyword'>char</span> **)props-&gt;pdata);</td></tr>
+<tr class="codeline" data-linenumber="1166"><td class="num" id="LN1166">1166</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1167"><td class="num" id="LN1167">1167</td><td class="line"> g_ptr_array_free (props, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1168"><td class="num" id="LN1168">1168</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1169"><td class="num" id="LN1169">1169</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1170"><td class="num" id="LN1170">1170</td><td class="line"><span class='comment'>/* Takes an array of strings and creates a LISTofARRAY8 property. The</span></td></tr>
+<tr class="codeline" data-linenumber="1171"><td class="num" id="LN1171">1171</td><td class="line"> <span class='comment'>* strings are neither dupped nor freed; they need to remain valid</span></td></tr>
+<tr class="codeline" data-linenumber="1172"><td class="num" id="LN1172">1172</td><td class="line"> <span class='comment'>* until you're done with the SmProp.</span></td></tr>
+<tr class="codeline" data-linenumber="1173"><td class="num" id="LN1173">1173</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="1174"><td class="num" id="LN1174">1174</td><td class="line"><span class='keyword'>static</span> SmProp *</td></tr>
+<tr class="codeline" data-linenumber="1175"><td class="num" id="LN1175">1175</td><td class="line">array_prop (<span class='keyword'>const</span> <span class='keyword'>char</span> *name, ...)</td></tr>
+<tr class="codeline" data-linenumber="1176"><td class="num" id="LN1176">1176</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1177"><td class="num" id="LN1177">1177</td><td class="line"> SmProp *prop;</td></tr>
+<tr class="codeline" data-linenumber="1178"><td class="num" id="LN1178">1178</td><td class="line"> SmPropValue pv;</td></tr>
+<tr class="codeline" data-linenumber="1179"><td class="num" id="LN1179">1179</td><td class="line"> GArray *vals;</td></tr>
+<tr class="codeline" data-linenumber="1180"><td class="num" id="LN1180">1180</td><td class="line"> <span class='keyword'>char</span> *value;</td></tr>
+<tr class="codeline" data-linenumber="1181"><td class="num" id="LN1181">1181</td><td class="line"> va_list ap;</td></tr>
+<tr class="codeline" data-linenumber="1182"><td class="num" id="LN1182">1182</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1183"><td class="num" id="LN1183">1183</td><td class="line"> prop = <span class='macro'>g_new (SmProp, 1)<span class='macro_popup'>((SmProp *) g_malloc_n ((1), sizeof (SmProp)))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1184"><td class="num" id="LN1184">1184</td><td class="line"> prop-&gt;name = (<span class='keyword'>char</span> *)name;</td></tr>
+<tr class="codeline" data-linenumber="1185"><td class="num" id="LN1185">1185</td><td class="line"> prop-&gt;type = (<span class='keyword'>char</span> *)<span class='macro'>SmLISTofARRAY8<span class='macro_popup'>"LISTofARRAY8"</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1186"><td class="num" id="LN1186">1186</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1187"><td class="num" id="LN1187">1187</td><td class="line"> vals = g_array_new (<span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='keyword'>sizeof</span> (SmPropValue));</td></tr>
+<tr class="codeline" data-linenumber="1188"><td class="num" id="LN1188">1188</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1189"><td class="num" id="LN1189">1189</td><td class="line"> <span class='macro'>va_start (ap, name)<span class='macro_popup'>__builtin_va_start(ap, name)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1190"><td class="num" id="LN1190">1190</td><td class="line"> <span class='keyword'>while</span> ((value = <span class='macro'>va_arg (ap, <span class='keyword'>char</span> *)<span class='macro_popup'>__builtin_va_arg(ap, char *)</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="1191"><td class="num" id="LN1191">1191</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1192"><td class="num" id="LN1192">1192</td><td class="line"> pv.length = strlen (value);</td></tr>
+<tr class="codeline" data-linenumber="1193"><td class="num" id="LN1193">1193</td><td class="line"> pv.value = value;</td></tr>
+<tr class="codeline" data-linenumber="1194"><td class="num" id="LN1194">1194</td><td class="line"> <span class='macro'>g_array_append_val (vals, pv)<span class='macro_popup'>g_array_append_vals (vals, &amp;(pv), 1)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1195"><td class="num" id="LN1195">1195</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1196"><td class="num" id="LN1196">1196</td><td class="line"> <span class='macro'>va_end (ap)<span class='macro_popup'>__builtin_va_end(ap)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1197"><td class="num" id="LN1197">1197</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1198"><td class="num" id="LN1198">1198</td><td class="line"> prop-&gt;num_vals = vals-&gt;len;</td></tr>
+<tr class="codeline" data-linenumber="1199"><td class="num" id="LN1199">1199</td><td class="line"> prop-&gt;vals = (SmPropValue *)vals-&gt;data;</td></tr>
+<tr class="codeline" data-linenumber="1200"><td class="num" id="LN1200">1200</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1201"><td class="num" id="LN1201">1201</td><td class="line"> g_array_free (vals, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1202"><td class="num" id="LN1202">1202</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1203"><td class="num" id="LN1203">1203</td><td class="line"> <span class='keyword'>return</span> prop;</td></tr>
+<tr class="codeline" data-linenumber="1204"><td class="num" id="LN1204">1204</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1205"><td class="num" id="LN1205">1205</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1206"><td class="num" id="LN1206">1206</td><td class="line"><span class='comment'>/* Takes a GPtrArray of strings and creates a LISTofARRAY8 property.</span></td></tr>
+<tr class="codeline" data-linenumber="1207"><td class="num" id="LN1207">1207</td><td class="line"> <span class='comment'>* The array contents are neither dupped nor freed; they need to</span></td></tr>
+<tr class="codeline" data-linenumber="1208"><td class="num" id="LN1208">1208</td><td class="line"> <span class='comment'>* remain valid until you're done with the SmProp.</span></td></tr>
+<tr class="codeline" data-linenumber="1209"><td class="num" id="LN1209">1209</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="1210"><td class="num" id="LN1210">1210</td><td class="line"><span class='keyword'>static</span> SmProp *</td></tr>
+<tr class="codeline" data-linenumber="1211"><td class="num" id="LN1211">1211</td><td class="line">ptrarray_prop (<span class='keyword'>const</span> <span class='keyword'>char</span> *name, GPtrArray *values)</td></tr>
+<tr class="codeline" data-linenumber="1212"><td class="num" id="LN1212">1212</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1213"><td class="num" id="LN1213">1213</td><td class="line"> SmProp *prop;</td></tr>
+<tr class="codeline" data-linenumber="1214"><td class="num" id="LN1214">1214</td><td class="line"> SmPropValue pv;</td></tr>
+<tr class="codeline" data-linenumber="1215"><td class="num" id="LN1215">1215</td><td class="line"> GArray *vals;</td></tr>
+<tr class="codeline" data-linenumber="1216"><td class="num" id="LN1216">1216</td><td class="line"> guint i;</td></tr>
+<tr class="codeline" data-linenumber="1217"><td class="num" id="LN1217">1217</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1218"><td class="num" id="LN1218">1218</td><td class="line"> prop = <span class='macro'>g_new (SmProp, 1)<span class='macro_popup'>((SmProp *) g_malloc_n ((1), sizeof (SmProp)))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1219"><td class="num" id="LN1219">1219</td><td class="line"> prop-&gt;name = (<span class='keyword'>char</span> *)name;</td></tr>
+<tr class="codeline" data-linenumber="1220"><td class="num" id="LN1220">1220</td><td class="line"> prop-&gt;type = (<span class='keyword'>char</span> *)<span class='macro'>SmLISTofARRAY8<span class='macro_popup'>"LISTofARRAY8"</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1221"><td class="num" id="LN1221">1221</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1222"><td class="num" id="LN1222">1222</td><td class="line"> vals = g_array_new (<span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='keyword'>sizeof</span> (SmPropValue));</td></tr>
+<tr class="codeline" data-linenumber="1223"><td class="num" id="LN1223">1223</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1224"><td class="num" id="LN1224">1224</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; values-&gt;len; i++)</td></tr>
+<tr class="codeline" data-linenumber="1225"><td class="num" id="LN1225">1225</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1226"><td class="num" id="LN1226">1226</td><td class="line"> pv.length = strlen (values-&gt;pdata[i]);</td></tr>
+<tr class="codeline" data-linenumber="1227"><td class="num" id="LN1227">1227</td><td class="line"> pv.value = values-&gt;pdata[i];</td></tr>
+<tr class="codeline" data-linenumber="1228"><td class="num" id="LN1228">1228</td><td class="line"> <span class='macro'>g_array_append_val (vals, pv)<span class='macro_popup'>g_array_append_vals (vals, &amp;(pv), 1)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1229"><td class="num" id="LN1229">1229</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1230"><td class="num" id="LN1230">1230</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1231"><td class="num" id="LN1231">1231</td><td class="line"> prop-&gt;num_vals = vals-&gt;len;</td></tr>
+<tr class="codeline" data-linenumber="1232"><td class="num" id="LN1232">1232</td><td class="line"> prop-&gt;vals = <span class="mrange"><span class="mrange">(SmPropValue *)vals-&gt;data</span></span>;</td></tr>
+<tr><td class="num"></td><td class="line"><div id="EndPath" class="msg msgEvent" style="margin-left:18ex; max-width:31em">Casting a non-structure type to a structure type and accessing a field can lead to memory access errors or data corruption</div></td></tr>
+<tr class="codeline" data-linenumber="1233"><td class="num" id="LN1233">1233</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1234"><td class="num" id="LN1234">1234</td><td class="line"> g_array_free (vals, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1235"><td class="num" id="LN1235">1235</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1236"><td class="num" id="LN1236">1236</td><td class="line"> <span class='keyword'>return</span> prop;</td></tr>
+<tr class="codeline" data-linenumber="1237"><td class="num" id="LN1237">1237</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1238"><td class="num" id="LN1238">1238</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1239"><td class="num" id="LN1239">1239</td><td class="line"><span class='comment'>/* Takes a string and creates an ARRAY8 property. The string is</span></td></tr>
+<tr class="codeline" data-linenumber="1240"><td class="num" id="LN1240">1240</td><td class="line"> <span class='comment'>* neither dupped nor freed; it needs to remain valid until you're</span></td></tr>
+<tr class="codeline" data-linenumber="1241"><td class="num" id="LN1241">1241</td><td class="line"> <span class='comment'>* done with the SmProp.</span></td></tr>
+<tr class="codeline" data-linenumber="1242"><td class="num" id="LN1242">1242</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="1243"><td class="num" id="LN1243">1243</td><td class="line"><span class='keyword'>static</span> SmProp *</td></tr>
+<tr class="codeline" data-linenumber="1244"><td class="num" id="LN1244">1244</td><td class="line">string_prop (<span class='keyword'>const</span> <span class='keyword'>char</span> *name, <span class='keyword'>const</span> <span class='keyword'>char</span> *value)</td></tr>
+<tr class="codeline" data-linenumber="1245"><td class="num" id="LN1245">1245</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1246"><td class="num" id="LN1246">1246</td><td class="line"> SmProp *prop;</td></tr>
+<tr class="codeline" data-linenumber="1247"><td class="num" id="LN1247">1247</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1248"><td class="num" id="LN1248">1248</td><td class="line"> prop = <span class='macro'>g_new (SmProp, 1)<span class='macro_popup'>((SmProp *) g_malloc_n ((1), sizeof (SmProp)))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1249"><td class="num" id="LN1249">1249</td><td class="line"> prop-&gt;name = (<span class='keyword'>char</span> *)name;</td></tr>
+<tr class="codeline" data-linenumber="1250"><td class="num" id="LN1250">1250</td><td class="line"> prop-&gt;type = (<span class='keyword'>char</span> *)<span class='macro'>SmARRAY8<span class='macro_popup'>"ARRAY8"</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1251"><td class="num" id="LN1251">1251</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1252"><td class="num" id="LN1252">1252</td><td class="line"> prop-&gt;num_vals = 1;</td></tr>
+<tr class="codeline" data-linenumber="1253"><td class="num" id="LN1253">1253</td><td class="line"> prop-&gt;vals = <span class='macro'>g_new (SmPropValue, 1)<span class='macro_popup'>((SmPropValue *) g_malloc_n ((1), sizeof (SmPropValue)))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1254"><td class="num" id="LN1254">1254</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1255"><td class="num" id="LN1255">1255</td><td class="line"> prop-&gt;vals[0].length = strlen (value);</td></tr>
+<tr class="codeline" data-linenumber="1256"><td class="num" id="LN1256">1256</td><td class="line"> prop-&gt;vals[0].value = (<span class='keyword'>char</span> *)value;</td></tr>
+<tr class="codeline" data-linenumber="1257"><td class="num" id="LN1257">1257</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1258"><td class="num" id="LN1258">1258</td><td class="line"> <span class='keyword'>return</span> prop;</td></tr>
+<tr class="codeline" data-linenumber="1259"><td class="num" id="LN1259">1259</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1260"><td class="num" id="LN1260">1260</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1261"><td class="num" id="LN1261">1261</td><td class="line"><span class='comment'>/* Takes a char and creates a CARD8 property. */</span></td></tr>
+<tr class="codeline" data-linenumber="1262"><td class="num" id="LN1262">1262</td><td class="line"><span class='keyword'>static</span> SmProp *</td></tr>
+<tr class="codeline" data-linenumber="1263"><td class="num" id="LN1263">1263</td><td class="line">card8_prop (<span class='keyword'>const</span> <span class='keyword'>char</span> *name, <span class='keyword'>unsigned</span> <span class='keyword'>char</span> value)</td></tr>
+<tr class="codeline" data-linenumber="1264"><td class="num" id="LN1264">1264</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1265"><td class="num" id="LN1265">1265</td><td class="line"> SmProp *prop;</td></tr>
+<tr class="codeline" data-linenumber="1266"><td class="num" id="LN1266">1266</td><td class="line"> <span class='keyword'>char</span> *card8val;</td></tr>
+<tr class="codeline" data-linenumber="1267"><td class="num" id="LN1267">1267</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1268"><td class="num" id="LN1268">1268</td><td class="line"> <span class='comment'>/* To avoid having to allocate and free prop-&gt;vals[0], we cheat and</span></td></tr>
+<tr class="codeline" data-linenumber="1269"><td class="num" id="LN1269">1269</td><td class="line"> <span class='comment'>* make vals a 2-element-long array and then use the second element</span></td></tr>
+<tr class="codeline" data-linenumber="1270"><td class="num" id="LN1270">1270</td><td class="line"> <span class='comment'>* to store value.</span></td></tr>
+<tr class="codeline" data-linenumber="1271"><td class="num" id="LN1271">1271</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="1272"><td class="num" id="LN1272">1272</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1273"><td class="num" id="LN1273">1273</td><td class="line"> prop = <span class='macro'>g_new (SmProp, 1)<span class='macro_popup'>((SmProp *) g_malloc_n ((1), sizeof (SmProp)))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1274"><td class="num" id="LN1274">1274</td><td class="line"> prop-&gt;name = (<span class='keyword'>char</span> *)name;</td></tr>
+<tr class="codeline" data-linenumber="1275"><td class="num" id="LN1275">1275</td><td class="line"> prop-&gt;type = (<span class='keyword'>char</span> *)<span class='macro'>SmCARD8<span class='macro_popup'>"CARD8"</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1276"><td class="num" id="LN1276">1276</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1277"><td class="num" id="LN1277">1277</td><td class="line"> prop-&gt;num_vals = 1;</td></tr>
+<tr class="codeline" data-linenumber="1278"><td class="num" id="LN1278">1278</td><td class="line"> prop-&gt;vals = <span class='macro'>g_new (SmPropValue, 2)<span class='macro_popup'>((SmPropValue *) g_malloc_n ((2), sizeof (SmPropValue)))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1279"><td class="num" id="LN1279">1279</td><td class="line"> card8val = (<span class='keyword'>char</span> *)(&amp;prop-&gt;vals[1]);</td></tr>
+<tr class="codeline" data-linenumber="1280"><td class="num" id="LN1280">1280</td><td class="line"> card8val[0] = value;</td></tr>
+<tr class="codeline" data-linenumber="1281"><td class="num" id="LN1281">1281</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1282"><td class="num" id="LN1282">1282</td><td class="line"> prop-&gt;vals[0].length = 1;</td></tr>
+<tr class="codeline" data-linenumber="1283"><td class="num" id="LN1283">1283</td><td class="line"> prop-&gt;vals[0].value = card8val;</td></tr>
+<tr class="codeline" data-linenumber="1284"><td class="num" id="LN1284">1284</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1285"><td class="num" id="LN1285">1285</td><td class="line"> <span class='keyword'>return</span> prop;</td></tr>
+<tr class="codeline" data-linenumber="1286"><td class="num" id="LN1286">1286</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1287"><td class="num" id="LN1287">1287</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1288"><td class="num" id="LN1288">1288</td><td class="line"><span class='comment'>/* ICE code. This makes no effort to play nice with anyone else trying</span></td></tr>
+<tr class="codeline" data-linenumber="1289"><td class="num" id="LN1289">1289</td><td class="line"> <span class='comment'>* to use libICE. Fortunately, no one uses libICE for anything other</span></td></tr>
+<tr class="codeline" data-linenumber="1290"><td class="num" id="LN1290">1290</td><td class="line"> <span class='comment'>* than SM. (DCOP uses ICE, but it has its own private copy of</span></td></tr>
+<tr class="codeline" data-linenumber="1291"><td class="num" id="LN1291">1291</td><td class="line"> <span class='comment'>* libICE.)</span></td></tr>
+<tr class="codeline" data-linenumber="1292"><td class="num" id="LN1292">1292</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="1293"><td class="num" id="LN1293">1293</td><td class="line"> <span class='comment'>* When this moves to gtk, it will need to be cleverer, to avoid</span></td></tr>
+<tr class="codeline" data-linenumber="1294"><td class="num" id="LN1294">1294</td><td class="line"> <span class='comment'>* tripping over old apps that use MateClient or that use libSM</span></td></tr>
+<tr class="codeline" data-linenumber="1295"><td class="num" id="LN1295">1295</td><td class="line"> <span class='comment'>* directly.</span></td></tr>
+<tr class="codeline" data-linenumber="1296"><td class="num" id="LN1296">1296</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="1297"><td class="num" id="LN1297">1297</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1298"><td class="num" id="LN1298">1298</td><td class="line"><span class='directive'>#include &lt;X11/ICE/ICElib.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="1299"><td class="num" id="LN1299">1299</td><td class="line"><span class='directive'>#include &lt;fcntl.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="1300"><td class="num" id="LN1300">1300</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1301"><td class="num" id="LN1301">1301</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> ice_error_handler (IceConn ice_conn,</td></tr>
+<tr class="codeline" data-linenumber="1302"><td class="num" id="LN1302">1302</td><td class="line"> <span class='macro'>Bool<span class='macro_popup'>int</span></span> swap,</td></tr>
+<tr class="codeline" data-linenumber="1303"><td class="num" id="LN1303">1303</td><td class="line"> <span class='keyword'>int</span> offending_minor_opcode,</td></tr>
+<tr class="codeline" data-linenumber="1304"><td class="num" id="LN1304">1304</td><td class="line"> <span class='keyword'>unsigned</span> <span class='keyword'>long</span> offending_sequence,</td></tr>
+<tr class="codeline" data-linenumber="1305"><td class="num" id="LN1305">1305</td><td class="line"> <span class='keyword'>int</span> error_class,</td></tr>
+<tr class="codeline" data-linenumber="1306"><td class="num" id="LN1306">1306</td><td class="line"> <span class='keyword'>int</span> severity,</td></tr>
+<tr class="codeline" data-linenumber="1307"><td class="num" id="LN1307">1307</td><td class="line"> IcePointer values);</td></tr>
+<tr class="codeline" data-linenumber="1308"><td class="num" id="LN1308">1308</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> ice_io_error_handler (IceConn ice_conn);</td></tr>
+<tr class="codeline" data-linenumber="1309"><td class="num" id="LN1309">1309</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> ice_connection_watch (IceConn ice_conn,</td></tr>
+<tr class="codeline" data-linenumber="1310"><td class="num" id="LN1310">1310</td><td class="line"> IcePointer client_data,</td></tr>
+<tr class="codeline" data-linenumber="1311"><td class="num" id="LN1311">1311</td><td class="line"> <span class='macro'>Bool<span class='macro_popup'>int</span></span> opening,</td></tr>
+<tr class="codeline" data-linenumber="1312"><td class="num" id="LN1312">1312</td><td class="line"> IcePointer *watch_data);</td></tr>
+<tr class="codeline" data-linenumber="1313"><td class="num" id="LN1313">1313</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1314"><td class="num" id="LN1314">1314</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1315"><td class="num" id="LN1315">1315</td><td class="line">ice_init (<span class='keyword'>void</span>)</td></tr>
+<tr class="codeline" data-linenumber="1316"><td class="num" id="LN1316">1316</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1317"><td class="num" id="LN1317">1317</td><td class="line"> IceSetIOErrorHandler (ice_io_error_handler);</td></tr>
+<tr class="codeline" data-linenumber="1318"><td class="num" id="LN1318">1318</td><td class="line"> IceSetErrorHandler (ice_error_handler);</td></tr>
+<tr class="codeline" data-linenumber="1319"><td class="num" id="LN1319">1319</td><td class="line"> IceAddConnectionWatch (ice_connection_watch, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1320"><td class="num" id="LN1320">1320</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1321"><td class="num" id="LN1321">1321</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1322"><td class="num" id="LN1322">1322</td><td class="line"><span class='keyword'>static</span> gboolean</td></tr>
+<tr class="codeline" data-linenumber="1323"><td class="num" id="LN1323">1323</td><td class="line">process_ice_messages (IceConn ice_conn)</td></tr>
+<tr class="codeline" data-linenumber="1324"><td class="num" id="LN1324">1324</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1325"><td class="num" id="LN1325">1325</td><td class="line"> IceProcessMessagesStatus status;</td></tr>
+<tr class="codeline" data-linenumber="1326"><td class="num" id="LN1326">1326</td><td class="line"> status = IceProcessMessages (ice_conn, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1327"><td class="num" id="LN1327">1327</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1328"><td class="num" id="LN1328">1328</td><td class="line"> <span class='keyword'>switch</span> (status)</td></tr>
+<tr class="codeline" data-linenumber="1329"><td class="num" id="LN1329">1329</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1330"><td class="num" id="LN1330">1330</td><td class="line"> <span class='keyword'>case</span> IceProcessMessagesSuccess:</td></tr>
+<tr class="codeline" data-linenumber="1331"><td class="num" id="LN1331">1331</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1332"><td class="num" id="LN1332">1332</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1333"><td class="num" id="LN1333">1333</td><td class="line"> <span class='keyword'>case</span> IceProcessMessagesIOError:</td></tr>
+<tr class="codeline" data-linenumber="1334"><td class="num" id="LN1334">1334</td><td class="line"> sm_client_xsmp_disconnect (IceGetConnectionContext (ice_conn));</td></tr>
+<tr class="codeline" data-linenumber="1335"><td class="num" id="LN1335">1335</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1336"><td class="num" id="LN1336">1336</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1337"><td class="num" id="LN1337">1337</td><td class="line"> <span class='keyword'>case</span> IceProcessMessagesConnectionClosed:</td></tr>
+<tr class="codeline" data-linenumber="1338"><td class="num" id="LN1338">1338</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1339"><td class="num" id="LN1339">1339</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1340"><td class="num" id="LN1340">1340</td><td class="line"> <span class='keyword'>default</span>:</td></tr>
+<tr class="codeline" data-linenumber="1341"><td class="num" id="LN1341">1341</td><td class="line"> <span class='macro'>g_assert_not_reached ()<span class='macro_popup'>do { g_assertion_message_expr ("EggSMClient", "eggsmclient-xsmp.c"<br>, 1341, ((const char*) (__func__)), ((void*)0)); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1342"><td class="num" id="LN1342">1342</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1343"><td class="num" id="LN1343">1343</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1344"><td class="num" id="LN1344">1344</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1345"><td class="num" id="LN1345">1345</td><td class="line"><span class='keyword'>static</span> gboolean</td></tr>
+<tr class="codeline" data-linenumber="1346"><td class="num" id="LN1346">1346</td><td class="line">ice_iochannel_watch (GIOChannel *channel,</td></tr>
+<tr class="codeline" data-linenumber="1347"><td class="num" id="LN1347">1347</td><td class="line"> GIOCondition condition,</td></tr>
+<tr class="codeline" data-linenumber="1348"><td class="num" id="LN1348">1348</td><td class="line"> gpointer client_data)</td></tr>
+<tr class="codeline" data-linenumber="1349"><td class="num" id="LN1349">1349</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1350"><td class="num" id="LN1350">1350</td><td class="line"> <span class='keyword'>return</span> process_ice_messages (client_data);</td></tr>
+<tr class="codeline" data-linenumber="1351"><td class="num" id="LN1351">1351</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1352"><td class="num" id="LN1352">1352</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1353"><td class="num" id="LN1353">1353</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1354"><td class="num" id="LN1354">1354</td><td class="line">ice_connection_watch (IceConn ice_conn,</td></tr>
+<tr class="codeline" data-linenumber="1355"><td class="num" id="LN1355">1355</td><td class="line"> IcePointer client_data,</td></tr>
+<tr class="codeline" data-linenumber="1356"><td class="num" id="LN1356">1356</td><td class="line"> <span class='macro'>Bool<span class='macro_popup'>int</span></span> opening,</td></tr>
+<tr class="codeline" data-linenumber="1357"><td class="num" id="LN1357">1357</td><td class="line"> IcePointer *watch_data)</td></tr>
+<tr class="codeline" data-linenumber="1358"><td class="num" id="LN1358">1358</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1359"><td class="num" id="LN1359">1359</td><td class="line"> guint watch_id;</td></tr>
+<tr class="codeline" data-linenumber="1360"><td class="num" id="LN1360">1360</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1361"><td class="num" id="LN1361">1361</td><td class="line"> <span class='keyword'>if</span> (opening)</td></tr>
+<tr class="codeline" data-linenumber="1362"><td class="num" id="LN1362">1362</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1363"><td class="num" id="LN1363">1363</td><td class="line"> GIOChannel *channel;</td></tr>
+<tr class="codeline" data-linenumber="1364"><td class="num" id="LN1364">1364</td><td class="line"> <span class='keyword'>int</span> fd = IceConnectionNumber (ice_conn);</td></tr>
+<tr class="codeline" data-linenumber="1365"><td class="num" id="LN1365">1365</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1366"><td class="num" id="LN1366">1366</td><td class="line"> fcntl (fd, <span class='macro'>F_SETFD<span class='macro_popup'>2</span></span>, fcntl (fd, <span class='macro'>F_GETFD<span class='macro_popup'>1</span></span>, 0) | <span class='macro'>FD_CLOEXEC<span class='macro_popup'>1</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1367"><td class="num" id="LN1367">1367</td><td class="line"> channel = g_io_channel_unix_new (fd);</td></tr>
+<tr class="codeline" data-linenumber="1368"><td class="num" id="LN1368">1368</td><td class="line"> watch_id = g_io_add_watch (channel, G_IO_IN | G_IO_ERR,</td></tr>
+<tr class="codeline" data-linenumber="1369"><td class="num" id="LN1369">1369</td><td class="line"> ice_iochannel_watch, ice_conn);</td></tr>
+<tr class="codeline" data-linenumber="1370"><td class="num" id="LN1370">1370</td><td class="line"> g_io_channel_unref (channel);</td></tr>
+<tr class="codeline" data-linenumber="1371"><td class="num" id="LN1371">1371</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1372"><td class="num" id="LN1372">1372</td><td class="line"> *watch_data = <span class='macro'>GUINT_TO_POINTER (watch_id)<span class='macro_popup'>((gpointer) (gulong) (watch_id))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1373"><td class="num" id="LN1373">1373</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1374"><td class="num" id="LN1374">1374</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="1375"><td class="num" id="LN1375">1375</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1376"><td class="num" id="LN1376">1376</td><td class="line"> watch_id = <span class='macro'>GPOINTER_TO_UINT (*watch_data)<span class='macro_popup'>((guint) (gulong) (*watch_data))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1377"><td class="num" id="LN1377">1377</td><td class="line"> g_source_remove (watch_id);</td></tr>
+<tr class="codeline" data-linenumber="1378"><td class="num" id="LN1378">1378</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1379"><td class="num" id="LN1379">1379</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1380"><td class="num" id="LN1380">1380</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1381"><td class="num" id="LN1381">1381</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1382"><td class="num" id="LN1382">1382</td><td class="line">ice_error_handler (IceConn ice_conn,</td></tr>
+<tr class="codeline" data-linenumber="1383"><td class="num" id="LN1383">1383</td><td class="line"> <span class='macro'>Bool<span class='macro_popup'>int</span></span> swap,</td></tr>
+<tr class="codeline" data-linenumber="1384"><td class="num" id="LN1384">1384</td><td class="line"> <span class='keyword'>int</span> offending_minor_opcode,</td></tr>
+<tr class="codeline" data-linenumber="1385"><td class="num" id="LN1385">1385</td><td class="line"> <span class='keyword'>unsigned</span> <span class='keyword'>long</span> offending_sequence,</td></tr>
+<tr class="codeline" data-linenumber="1386"><td class="num" id="LN1386">1386</td><td class="line"> <span class='keyword'>int</span> error_class,</td></tr>
+<tr class="codeline" data-linenumber="1387"><td class="num" id="LN1387">1387</td><td class="line"> <span class='keyword'>int</span> severity,</td></tr>
+<tr class="codeline" data-linenumber="1388"><td class="num" id="LN1388">1388</td><td class="line"> IcePointer values)</td></tr>
+<tr class="codeline" data-linenumber="1389"><td class="num" id="LN1389">1389</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1390"><td class="num" id="LN1390">1390</td><td class="line"> <span class='comment'>/* Do nothing */</span></td></tr>
+<tr class="codeline" data-linenumber="1391"><td class="num" id="LN1391">1391</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1392"><td class="num" id="LN1392">1392</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1393"><td class="num" id="LN1393">1393</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1394"><td class="num" id="LN1394">1394</td><td class="line">ice_io_error_handler (IceConn ice_conn)</td></tr>
+<tr class="codeline" data-linenumber="1395"><td class="num" id="LN1395">1395</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1396"><td class="num" id="LN1396">1396</td><td class="line"> <span class='comment'>/* Do nothing */</span></td></tr>
+<tr class="codeline" data-linenumber="1397"><td class="num" id="LN1397">1397</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1398"><td class="num" id="LN1398">1398</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1399"><td class="num" id="LN1399">1399</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1400"><td class="num" id="LN1400">1400</td><td class="line">smc_error_handler (SmcConn smc_conn,</td></tr>
+<tr class="codeline" data-linenumber="1401"><td class="num" id="LN1401">1401</td><td class="line"> <span class='macro'>Bool<span class='macro_popup'>int</span></span> swap,</td></tr>
+<tr class="codeline" data-linenumber="1402"><td class="num" id="LN1402">1402</td><td class="line"> <span class='keyword'>int</span> offending_minor_opcode,</td></tr>
+<tr class="codeline" data-linenumber="1403"><td class="num" id="LN1403">1403</td><td class="line"> <span class='keyword'>unsigned</span> <span class='keyword'>long</span> offending_sequence,</td></tr>
+<tr class="codeline" data-linenumber="1404"><td class="num" id="LN1404">1404</td><td class="line"> <span class='keyword'>int</span> error_class,</td></tr>
+<tr class="codeline" data-linenumber="1405"><td class="num" id="LN1405">1405</td><td class="line"> <span class='keyword'>int</span> severity,</td></tr>
+<tr class="codeline" data-linenumber="1406"><td class="num" id="LN1406">1406</td><td class="line"> SmPointer values)</td></tr>
+<tr class="codeline" data-linenumber="1407"><td class="num" id="LN1407">1407</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1408"><td class="num" id="LN1408">1408</td><td class="line"> <span class='comment'>/* Do nothing */</span></td></tr>
+<tr class="codeline" data-linenumber="1409"><td class="num" id="LN1409">1409</td><td class="line">}</td></tr>
+</table></body></html>
diff --git a/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-d040d4.html b/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-d040d4.html
new file mode 100644
index 0000000..5bbac82
--- /dev/null
+++ b/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-d040d4.html
@@ -0,0 +1,2840 @@
+<!doctype html>
+<html>
+<head>
+<title>terminal-app.c</title>
+
+<style type="text/css">
+body { color:#000000; background-color:#ffffff }
+body { font-family:Helvetica, sans-serif; font-size:10pt }
+h1 { font-size:14pt }
+.FileName { margin-top: 5px; margin-bottom: 5px; display: inline; }
+.FileNav { margin-left: 5px; margin-right: 5px; display: inline; }
+.FileNav a { text-decoration:none; font-size: larger; }
+.divider { margin-top: 30px; margin-bottom: 30px; height: 15px; }
+.divider { background-color: gray; }
+.code { border-collapse:collapse; width:100%; }
+.code { font-family: "Monospace", monospace; font-size:10pt }
+.code { line-height: 1.2em }
+.comment { color: green; font-style: oblique }
+.keyword { color: blue }
+.string_literal { color: red }
+.directive { color: darkmagenta }
+
+/* Macros and variables could have pop-up notes hidden by default.
+ - Macro pop-up: expansion of the macro
+ - Variable pop-up: value (table) of the variable */
+.macro_popup, .variable_popup { display: none; }
+
+/* Pop-up appears on mouse-hover event. */
+.macro:hover .macro_popup, .variable:hover .variable_popup {
+ display: block;
+ padding: 2px;
+ -webkit-border-radius:5px;
+ -webkit-box-shadow:1px 1px 7px #000;
+ border-radius:5px;
+ box-shadow:1px 1px 7px #000;
+ position: absolute;
+ top: -1em;
+ left:10em;
+ z-index: 1
+}
+
+.macro_popup {
+ border: 2px solid red;
+ background-color:#FFF0F0;
+ font-weight: normal;
+}
+
+.variable_popup {
+ border: 2px solid blue;
+ background-color:#F0F0FF;
+ font-weight: bold;
+ font-family: Helvetica, sans-serif;
+ font-size: 9pt;
+}
+
+/* Pop-up notes needs a relative position as a base where they pops up. */
+.macro, .variable {
+ background-color: PaleGoldenRod;
+ position: relative;
+}
+.macro { color: DarkMagenta; }
+
+#tooltiphint {
+ position: fixed;
+ width: 50em;
+ margin-left: -25em;
+ left: 50%;
+ padding: 10px;
+ border: 1px solid #b0b0b0;
+ border-radius: 2px;
+ box-shadow: 1px 1px 7px black;
+ background-color: #c0c0c0;
+ z-index: 2;
+}
+
+.num { width:2.5em; padding-right:2ex; background-color:#eeeeee }
+.num { text-align:right; font-size:8pt }
+.num { color:#444444 }
+.line { padding-left: 1ex; border-left: 3px solid #ccc }
+.line { white-space: pre }
+.msg { -webkit-box-shadow:1px 1px 7px #000 }
+.msg { box-shadow:1px 1px 7px #000 }
+.msg { -webkit-border-radius:5px }
+.msg { border-radius:5px }
+.msg { font-family:Helvetica, sans-serif; font-size:8pt }
+.msg { float:left }
+.msg { position:relative }
+.msg { padding:0.25em 1ex 0.25em 1ex }
+.msg { margin-top:10px; margin-bottom:10px }
+.msg { font-weight:bold }
+.msg { max-width:60em; word-wrap: break-word; white-space: pre-wrap }
+.msgT { padding:0x; spacing:0x }
+.msgEvent { background-color:#fff8b4; color:#000000 }
+.msgControl { background-color:#bbbbbb; color:#000000 }
+.msgNote { background-color:#ddeeff; color:#000000 }
+.mrange { background-color:#dfddf3 }
+.mrange { border-bottom:1px solid #6F9DBE }
+.PathIndex { font-weight: bold; padding:0px 5px; margin-right:5px; }
+.PathIndex { -webkit-border-radius:8px }
+.PathIndex { border-radius:8px }
+.PathIndexEvent { background-color:#bfba87 }
+.PathIndexControl { background-color:#8c8c8c }
+.PathIndexPopUp { background-color: #879abc; }
+.PathNav a { text-decoration:none; font-size: larger }
+.CodeInsertionHint { font-weight: bold; background-color: #10dd10 }
+.CodeRemovalHint { background-color:#de1010 }
+.CodeRemovalHint { border-bottom:1px solid #6F9DBE }
+.msg.selected{ background-color:orange !important; }
+
+table.simpletable {
+ padding: 5px;
+ font-size:12pt;
+ margin:20px;
+ border-collapse: collapse; border-spacing: 0px;
+}
+td.rowname {
+ text-align: right;
+ vertical-align: top;
+ font-weight: bold;
+ color:#444444;
+ padding-right:2ex;
+}
+
+/* Hidden text. */
+input.spoilerhider + label {
+ cursor: pointer;
+ text-decoration: underline;
+ display: block;
+}
+input.spoilerhider {
+ display: none;
+}
+input.spoilerhider ~ .spoiler {
+ overflow: hidden;
+ margin: 10px auto 0;
+ height: 0;
+ opacity: 0;
+}
+input.spoilerhider:checked + label + .spoiler{
+ height: auto;
+ opacity: 1;
+}
+</style>
+</head>
+<body>
+<!-- BUGDESC Casting a non-structure type to a structure type and accessing a field can lead to memory access errors or data corruption -->
+
+<!-- BUGTYPE Cast from non-struct type to struct type -->
+
+<!-- BUGCATEGORY Logic error -->
+
+<!-- BUGFILE /rootdir/src/terminal-app.c -->
+
+<!-- FILENAME terminal-app.c -->
+
+<!-- FUNCTIONNAME terminal_app_encoding_list_notify_cb -->
+
+<!-- ISSUEHASHCONTENTOFLINEINCONTEXT d040d4bb7de0ebbb0d0d46ac406c9a7e -->
+
+<!-- BUGLINE 999 -->
+
+<!-- BUGCOLUMN 37 -->
+
+<!-- BUGPATHLENGTH 1 -->
+
+<!-- BUGMETAEND -->
+<!-- REPORTHEADER -->
+<h3>Bug Summary</h3>
+<table class="simpletable">
+<tr><td class="rowname">File:</td><td>terminal-app.c</td></tr>
+<tr><td class="rowname">Warning:</td><td><a href="#EndPath">line 999, column 37</a><br />Casting a non-structure type to a structure type and accessing a field can lead to memory access errors or data corruption</td></tr>
+
+</table>
+<!-- REPORTSUMMARYEXTRA -->
+<h3>Annotated Source Code</h3>
+<p>Press <a href="#" onclick="toggleHelp(); return false;">'?'</a>
+ to see keyboard shortcuts</p>
+<input type="checkbox" class="spoilerhider" id="showinvocation" />
+<label for="showinvocation" >Show analyzer invocation</label>
+<div class="spoiler">clang -cc1 -cc1 -triple x86_64-redhat-linux-gnu -analyze -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name terminal-app.c -analyzer-checker=core -analyzer-checker=apiModeling -analyzer-checker=unix -analyzer-checker=deadcode -analyzer-checker=security.insecureAPI.UncheckedReturn -analyzer-checker=security.insecureAPI.getpw -analyzer-checker=security.insecureAPI.gets -analyzer-checker=security.insecureAPI.mktemp -analyzer-checker=security.insecureAPI.mkstemp -analyzer-checker=security.insecureAPI.vfork -analyzer-checker=nullability.NullPassedToNonnull -analyzer-checker=nullability.NullReturnedFromNonnull -analyzer-output plist -w -setup-static-analyzer -mrelocation-model static -mframe-pointer=all -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -tune-cpu generic -debugger-tuning=gdb -fcoverage-compilation-dir=/rootdir/src -resource-dir /usr/bin/../lib/clang/17 -D HAVE_CONFIG_H -I . -I .. -I ../src/mate-submodules/libegg -D TERMINAL_COMPILATION -D TERMINAL_RESOURCES_PATH_PREFIX="/org/mate/terminal" -D TERM_DATADIR="/usr/local/share" -D TERM_LOCALEDIR="/usr/local/share/locale" -D TERM_PKGDATADIR="/usr/local/share/mate-terminal" -D TERM_HELPDIR="/usr/local/share/help" -D SN_API_NOT_YET_FROZEN -D GDK_MULTIHEAD_SAFE -D G_DISABLE_SINGLE_INCLUDES -D PANGO_DISABLE_SINGLE_INCLUDES -D ATK_DISABLE_SINGLE_INCLUDES -D GDK_DISABLE_SINGLE_INCLUDES -D GDK_PIXBUF_DISABLE_SINGLE_INCLUDES -D GTK_DISABLE_SINGLE_INCLUDES -I /usr/include/dconf -I /usr/include/vte-2.91 -I /usr/include/pango-1.0 -I /usr/include/gtk-3.0 -I /usr/include/gdk-pixbuf-2.0 -I /usr/include/cairo -I /usr/include/dbus-1.0 -I /usr/lib64/dbus-1.0/include -I /usr/include/atk-1.0 -I /usr/include/harfbuzz -I /usr/include/freetype2 -I /usr/include/glib-2.0 -I /usr/lib64/glib-2.0/include -I /usr/include/cloudproviders -I /usr/include/at-spi2-atk/2.0 -I /usr/include/at-spi-2.0 -I /usr/include/blkid -I /usr/include/gio-unix-2.0 -I /usr/include/pixman-1 -I /usr/include/libmount -I /usr/include/libxml2 -I /usr/include/fribidi -I /usr/include/libpng16 -I /usr/include/sysprof-6 -internal-isystem /usr/bin/../lib/clang/17/include -internal-isystem /usr/local/include -internal-isystem /usr/bin/../lib/gcc/x86_64-redhat-linux/13/../../../../x86_64-redhat-linux/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -Wno-unused-parameter -fdebug-compilation-dir=/rootdir/src -ferror-limit 19 -fgnuc-version=4.2.1 -analyzer-checker deadcode.DeadStores -analyzer-checker alpha.deadcode.UnreachableCode -analyzer-checker alpha.core.CastSize -analyzer-checker alpha.core.CastToStruct -analyzer-checker alpha.core.IdenticalExpr -analyzer-checker alpha.core.SizeofPtr -analyzer-checker alpha.security.ArrayBoundV2 -analyzer-checker alpha.security.MallocOverflow -analyzer-checker alpha.security.ReturnPtrRange -analyzer-checker alpha.unix.SimpleStream -analyzer-checker alpha.unix.cstring.BufferOverlap -analyzer-checker alpha.unix.cstring.NotNullTerminated -analyzer-checker alpha.unix.cstring.OutOfBounds -analyzer-checker alpha.core.FixedAddr -analyzer-checker security.insecureAPI.strcpy -analyzer-output=html -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /rootdir/html-report/2024-02-18-131424-5067-1 -x c terminal-app.c
+</div>
+<div id='tooltiphint' hidden="true">
+ <p>Keyboard shortcuts: </p>
+ <ul>
+ <li>Use 'j/k' keys for keyboard navigation</li>
+ <li>Use 'Shift+S' to show/hide relevant lines</li>
+ <li>Use '?' to toggle this window</li>
+ </ul>
+ <a href="#" onclick="toggleHelp(); return false;">Close</a>
+</div>
+<script type='text/javascript'>
+var relevant_lines = {"1": {"999": 1}};
+
+var filterCounterexample = function (hide) {
+ var tables = document.getElementsByClassName("code");
+ for (var t=0; t<tables.length; t++) {
+ var table = tables[t];
+ var file_id = table.getAttribute("data-fileid");
+ var lines_in_fid = relevant_lines[file_id];
+ if (!lines_in_fid) {
+ lines_in_fid = {};
+ }
+ var lines = table.getElementsByClassName("codeline");
+ for (var i=0; i<lines.length; i++) {
+ var el = lines[i];
+ var lineNo = el.getAttribute("data-linenumber");
+ if (!lines_in_fid[lineNo]) {
+ if (hide) {
+ el.setAttribute("hidden", "");
+ } else {
+ el.removeAttribute("hidden");
+ }
+ }
+ }
+ }
+}
+
+window.addEventListener("keydown", function (event) {
+ if (event.defaultPrevented) {
+ return;
+ }
+ // SHIFT + S
+ if (event.shiftKey && event.keyCode == 83) {
+ var checked = document.getElementsByName("showCounterexample")[0].checked;
+ filterCounterexample(!checked);
+ document.getElementsByName("showCounterexample")[0].click();
+ } else {
+ return;
+ }
+ event.preventDefault();
+}, true);
+
+document.addEventListener("DOMContentLoaded", function() {
+ document.querySelector('input[name="showCounterexample"]').onchange=
+ function (event) {
+ filterCounterexample(this.checked);
+ };
+});
+</script>
+
+<form>
+ <input type="checkbox" name="showCounterexample" id="showCounterexample" />
+ <label for="showCounterexample">
+ Show only relevant lines
+ </label>
+ <input type="checkbox" name="showArrows"
+ id="showArrows" style="margin-left: 10px" />
+ <label for="showArrows">
+ Show control flow arrows
+ </label>
+</form>
+
+<script type='text/javascript'>
+// Return range of numbers from a range [lower, upper).
+function range(lower, upper) {
+ var array = [];
+ for (var i = lower; i <= upper; ++i) {
+ array.push(i);
+ }
+ return array;
+}
+
+var getRelatedArrowIndices = function(pathId) {
+ // HTML numeration of events is a bit different than it is in the path.
+ // Everything is rotated one step to the right, so the last element
+ // (error diagnostic) has index 0.
+ if (pathId == 0) {
+ // arrowIndices has at least 2 elements
+ pathId = arrowIndices.length - 1;
+ }
+
+ return range(arrowIndices[pathId], arrowIndices[pathId - 1]);
+}
+
+var highlightArrowsForSelectedEvent = function() {
+ const selectedNum = findNum();
+ const arrowIndicesToHighlight = getRelatedArrowIndices(selectedNum);
+ arrowIndicesToHighlight.forEach((index) => {
+ var arrow = document.querySelector("#arrow" + index);
+ if(arrow) {
+ classListAdd(arrow, "selected")
+ }
+ });
+}
+
+var getAbsoluteBoundingRect = function(element) {
+ const relative = element.getBoundingClientRect();
+ return {
+ left: relative.left + window.pageXOffset,
+ right: relative.right + window.pageXOffset,
+ top: relative.top + window.pageYOffset,
+ bottom: relative.bottom + window.pageYOffset,
+ height: relative.height,
+ width: relative.width
+ };
+}
+
+var drawArrow = function(index) {
+ // This function is based on the great answer from SO:
+ // https://stackoverflow.com/a/39575674/11582326
+ var start = document.querySelector("#start" + index);
+ var end = document.querySelector("#end" + index);
+ var arrow = document.querySelector("#arrow" + index);
+
+ var startRect = getAbsoluteBoundingRect(start);
+ var endRect = getAbsoluteBoundingRect(end);
+
+ // It is an arrow from a token to itself, no need to visualize it.
+ if (startRect.top == endRect.top &&
+ startRect.left == endRect.left)
+ return;
+
+ // Each arrow is a very simple Bézier curve, with two nodes and
+ // two handles. So, we need to calculate four points in the window:
+ // * start node
+ var posStart = { x: 0, y: 0 };
+ // * end node
+ var posEnd = { x: 0, y: 0 };
+ // * handle for the start node
+ var startHandle = { x: 0, y: 0 };
+ // * handle for the end node
+ var endHandle = { x: 0, y: 0 };
+ // One can visualize it as follows:
+ //
+ // start handle
+ // /
+ // X"""_.-""""X
+ // .' \
+ // / start node
+ // |
+ // |
+ // | end node
+ // \ /
+ // `->X
+ // X-'
+ // \
+ // end handle
+ //
+ // NOTE: (0, 0) is the top left corner of the window.
+
+ // We have 3 similar, but still different scenarios to cover:
+ //
+ // 1. Two tokens on different lines.
+ // -xxx
+ // /
+ // \
+ // -> xxx
+ // In this situation, we draw arrow on the left curving to the left.
+ // 2. Two tokens on the same line, and the destination is on the right.
+ // ____
+ // / \
+ // / V
+ // xxx xxx
+ // In this situation, we draw arrow above curving upwards.
+ // 3. Two tokens on the same line, and the destination is on the left.
+ // xxx xxx
+ // ^ /
+ // \____/
+ // In this situation, we draw arrow below curving downwards.
+ const onDifferentLines = startRect.top <= endRect.top - 5 ||
+ startRect.top >= endRect.top + 5;
+ const leftToRight = startRect.left < endRect.left;
+
+ // NOTE: various magic constants are chosen empirically for
+ // better positioning and look
+ if (onDifferentLines) {
+ // Case #1
+ const topToBottom = startRect.top < endRect.top;
+ posStart.x = startRect.left - 1;
+ // We don't want to start it at the top left corner of the token,
+ // it doesn't feel like this is where the arrow comes from.
+ // For this reason, we start it in the middle of the left side
+ // of the token.
+ posStart.y = startRect.top + startRect.height / 2;
+
+ // End node has arrow head and we give it a bit more space.
+ posEnd.x = endRect.left - 4;
+ posEnd.y = endRect.top;
+
+ // Utility object with x and y offsets for handles.
+ var curvature = {
+ // We want bottom-to-top arrow to curve a bit more, so it doesn't
+ // overlap much with top-to-bottom curves (much more frequent).
+ x: topToBottom ? 15 : 25,
+ y: Math.min((posEnd.y - posStart.y) / 3, 10)
+ }
+
+ // When destination is on the different line, we can make a
+ // curvier arrow because we have space for it.
+ // So, instead of using
+ //
+ // startHandle.x = posStart.x - curvature.x
+ // endHandle.x = posEnd.x - curvature.x
+ //
+ // We use the leftmost of these two values for both handles.
+ startHandle.x = Math.min(posStart.x, posEnd.x) - curvature.x;
+ endHandle.x = startHandle.x;
+
+ // Curving downwards from the start node...
+ startHandle.y = posStart.y + curvature.y;
+ // ... and upwards from the end node.
+ endHandle.y = posEnd.y - curvature.y;
+
+ } else if (leftToRight) {
+ // Case #2
+ // Starting from the top right corner...
+ posStart.x = startRect.right - 1;
+ posStart.y = startRect.top;
+
+ // ...and ending at the top left corner of the end token.
+ posEnd.x = endRect.left + 1;
+ posEnd.y = endRect.top - 1;
+
+ // Utility object with x and y offsets for handles.
+ var curvature = {
+ x: Math.min((posEnd.x - posStart.x) / 3, 15),
+ y: 5
+ }
+
+ // Curving to the right...
+ startHandle.x = posStart.x + curvature.x;
+ // ... and upwards from the start node.
+ startHandle.y = posStart.y - curvature.y;
+
+ // And to the left...
+ endHandle.x = posEnd.x - curvature.x;
+ // ... and upwards from the end node.
+ endHandle.y = posEnd.y - curvature.y;
+
+ } else {
+ // Case #3
+ // Starting from the bottom right corner...
+ posStart.x = startRect.right;
+ posStart.y = startRect.bottom;
+
+ // ...and ending also at the bottom right corner, but of the end token.
+ posEnd.x = endRect.right - 1;
+ posEnd.y = endRect.bottom + 1;
+
+ // Utility object with x and y offsets for handles.
+ var curvature = {
+ x: Math.min((posStart.x - posEnd.x) / 3, 15),
+ y: 5
+ }
+
+ // Curving to the left...
+ startHandle.x = posStart.x - curvature.x;
+ // ... and downwards from the start node.
+ startHandle.y = posStart.y + curvature.y;
+
+ // And to the right...
+ endHandle.x = posEnd.x + curvature.x;
+ // ... and downwards from the end node.
+ endHandle.y = posEnd.y + curvature.y;
+ }
+
+ // Put it all together into a path.
+ // More information on the format:
+ // https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths
+ var pathStr = "M" + posStart.x + "," + posStart.y + " " +
+ "C" + startHandle.x + "," + startHandle.y + " " +
+ endHandle.x + "," + endHandle.y + " " +
+ posEnd.x + "," + posEnd.y;
+
+ arrow.setAttribute("d", pathStr);
+};
+
+var drawArrows = function() {
+ const numOfArrows = document.querySelectorAll("path[id^=arrow]").length;
+ for (var i = 0; i < numOfArrows; ++i) {
+ drawArrow(i);
+ }
+}
+
+var toggleArrows = function(event) {
+ const arrows = document.querySelector("#arrows");
+ if (event.target.checked) {
+ arrows.setAttribute("visibility", "visible");
+ } else {
+ arrows.setAttribute("visibility", "hidden");
+ }
+}
+
+window.addEventListener("resize", drawArrows);
+document.addEventListener("DOMContentLoaded", function() {
+ // Whenever we show invocation, locations change, i.e. we
+ // need to redraw arrows.
+ document
+ .querySelector('input[id="showinvocation"]')
+ .addEventListener("click", drawArrows);
+ // Hiding irrelevant lines also should cause arrow rerender.
+ document
+ .querySelector('input[name="showCounterexample"]')
+ .addEventListener("change", drawArrows);
+ document
+ .querySelector('input[name="showArrows"]')
+ .addEventListener("change", toggleArrows);
+ drawArrows();
+ // Default highlighting for the last event.
+ highlightArrowsForSelectedEvent();
+});
+</script>
+
+<script type='text/javascript'>
+var digitMatcher = new RegExp("[0-9]+");
+
+var querySelectorAllArray = function(selector) {
+ return Array.prototype.slice.call(
+ document.querySelectorAll(selector));
+}
+
+document.addEventListener("DOMContentLoaded", function() {
+ querySelectorAllArray(".PathNav > a").forEach(
+ function(currentValue, currentIndex) {
+ var hrefValue = currentValue.getAttribute("href");
+ currentValue.onclick = function() {
+ scrollTo(document.querySelector(hrefValue));
+ return false;
+ };
+ });
+});
+
+var findNum = function() {
+ var s = document.querySelector(".msg.selected");
+ if (!s || s.id == "EndPath") {
+ return 0;
+ }
+ var out = parseInt(digitMatcher.exec(s.id)[0]);
+ return out;
+};
+
+var classListAdd = function(el, theClass) {
+ if(!el.className.baseVal)
+ el.className += " " + theClass;
+ else
+ el.className.baseVal += " " + theClass;
+};
+
+var classListRemove = function(el, theClass) {
+ var className = (!el.className.baseVal) ?
+ el.className : el.className.baseVal;
+ className = className.replace(" " + theClass, "");
+ if(!el.className.baseVal)
+ el.className = className;
+ else
+ el.className.baseVal = className;
+};
+
+var scrollTo = function(el) {
+ querySelectorAllArray(".selected").forEach(function(s) {
+ classListRemove(s, "selected");
+ });
+ classListAdd(el, "selected");
+ window.scrollBy(0, el.getBoundingClientRect().top -
+ (window.innerHeight / 2));
+ highlightArrowsForSelectedEvent();
+};
+
+var move = function(num, up, numItems) {
+ if (num == 1 && up || num == numItems - 1 && !up) {
+ return 0;
+ } else if (num == 0 && up) {
+ return numItems - 1;
+ } else if (num == 0 && !up) {
+ return 1 % numItems;
+ }
+ return up ? num - 1 : num + 1;
+}
+
+var numToId = function(num) {
+ if (num == 0) {
+ return document.getElementById("EndPath")
+ }
+ return document.getElementById("Path" + num);
+};
+
+var navigateTo = function(up) {
+ var numItems = document.querySelectorAll(
+ ".line > .msgEvent, .line > .msgControl").length;
+ var currentSelected = findNum();
+ var newSelected = move(currentSelected, up, numItems);
+ var newEl = numToId(newSelected, numItems);
+
+ // Scroll element into center.
+ scrollTo(newEl);
+};
+
+window.addEventListener("keydown", function (event) {
+ if (event.defaultPrevented) {
+ return;
+ }
+ // key 'j'
+ if (event.keyCode == 74) {
+ navigateTo(/*up=*/false);
+ // key 'k'
+ } else if (event.keyCode == 75) {
+ navigateTo(/*up=*/true);
+ } else {
+ return;
+ }
+ event.preventDefault();
+}, true);
+</script>
+
+<script type='text/javascript'>
+
+var toggleHelp = function() {
+ var hint = document.querySelector("#tooltiphint");
+ var attributeName = "hidden";
+ if (hint.hasAttribute(attributeName)) {
+ hint.removeAttribute(attributeName);
+ } else {
+ hint.setAttribute("hidden", "true");
+ }
+};
+window.addEventListener("keydown", function (event) {
+ if (event.defaultPrevented) {
+ return;
+ }
+ if (event.key == "?") {
+ toggleHelp();
+ } else {
+ return;
+ }
+ event.preventDefault();
+});
+</script>
+
+<style type="text/css">
+ svg {
+ position:absolute;
+ top:0;
+ left:0;
+ height:100%;
+ width:100%;
+ pointer-events: none;
+ overflow: visible
+ }
+ .arrow {
+ stroke-opacity: 0.2;
+ stroke-width: 1;
+ marker-end: url(#arrowhead);
+ }
+
+ .arrow.selected {
+ stroke-opacity: 0.6;
+ stroke-width: 2;
+ marker-end: url(#arrowheadSelected);
+ }
+
+ .arrowhead {
+ orient: auto;
+ stroke: none;
+ opacity: 0.6;
+ fill: blue;
+ }
+</style>
+<svg xmlns="http://www.w3.org/2000/svg">
+ <defs>
+ <marker id="arrowheadSelected" class="arrowhead" opacity="0.6"
+ viewBox="0 0 10 10" refX="3" refY="5"
+ markerWidth="4" markerHeight="4">
+ <path d="M 0 0 L 10 5 L 0 10 z" />
+ </marker>
+ <marker id="arrowhead" class="arrowhead" opacity="0.2"
+ viewBox="0 0 10 10" refX="3" refY="5"
+ markerWidth="4" markerHeight="4">
+ <path d="M 0 0 L 10 5 L 0 10 z" />
+ </marker>
+ </defs>
+ <g id="arrows" fill="none" stroke="blue" visibility="hidden">
+
+ </g>
+</svg>
+<script type='text/javascript'>
+const arrowIndices = [ 0,0 ]
+</script>
+<table class="code" data-fileid="1">
+<tr class="codeline" data-linenumber="1"><td class="num" id="LN1">1</td><td class="line"><span class='comment'>/*</span></td></tr>
+<tr class="codeline" data-linenumber="2"><td class="num" id="LN2">2</td><td class="line"> <span class='comment'>* Copyright © 2001, 2002 Havoc Pennington</span></td></tr>
+<tr class="codeline" data-linenumber="3"><td class="num" id="LN3">3</td><td class="line"> <span class='comment'>* Copyright © 2002 Red Hat, Inc.</span></td></tr>
+<tr class="codeline" data-linenumber="4"><td class="num" id="LN4">4</td><td class="line"> <span class='comment'>* Copyright © 2002 Sun Microsystems</span></td></tr>
+<tr class="codeline" data-linenumber="5"><td class="num" id="LN5">5</td><td class="line"> <span class='comment'>* Copyright © 2003 Mariano Suarez-Alvarez</span></td></tr>
+<tr class="codeline" data-linenumber="6"><td class="num" id="LN6">6</td><td class="line"> <span class='comment'>* Copyright © 2008 Christian Persch</span></td></tr>
+<tr class="codeline" data-linenumber="7"><td class="num" id="LN7">7</td><td class="line"> <span class='comment'>* Copyright (C) 2012-2021 MATE Developers</span></td></tr>
+<tr class="codeline" data-linenumber="8"><td class="num" id="LN8">8</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="9"><td class="num" id="LN9">9</td><td class="line"> <span class='comment'>* Mate-terminal is free software; you can redistribute it and/or modify</span></td></tr>
+<tr class="codeline" data-linenumber="10"><td class="num" id="LN10">10</td><td class="line"> <span class='comment'>* it under the terms of the GNU General Public License as published by</span></td></tr>
+<tr class="codeline" data-linenumber="11"><td class="num" id="LN11">11</td><td class="line"> <span class='comment'>* the Free Software Foundation; either version 3 of the License, or</span></td></tr>
+<tr class="codeline" data-linenumber="12"><td class="num" id="LN12">12</td><td class="line"> <span class='comment'>* (at your option) any later version.</span></td></tr>
+<tr class="codeline" data-linenumber="13"><td class="num" id="LN13">13</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="14"><td class="num" id="LN14">14</td><td class="line"> <span class='comment'>* Mate-terminal is distributed in the hope that it will be useful,</span></td></tr>
+<tr class="codeline" data-linenumber="15"><td class="num" id="LN15">15</td><td class="line"> <span class='comment'>* but WITHOUT ANY WARRANTY; without even the implied warranty of</span></td></tr>
+<tr class="codeline" data-linenumber="16"><td class="num" id="LN16">16</td><td class="line"> <span class='comment'>* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></td></tr>
+<tr class="codeline" data-linenumber="17"><td class="num" id="LN17">17</td><td class="line"> <span class='comment'>* GNU General Public License for more details.</span></td></tr>
+<tr class="codeline" data-linenumber="18"><td class="num" id="LN18">18</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="19"><td class="num" id="LN19">19</td><td class="line"> <span class='comment'>* You should have received a copy of the GNU General Public License</span></td></tr>
+<tr class="codeline" data-linenumber="20"><td class="num" id="LN20">20</td><td class="line"> <span class='comment'>* along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.</span></td></tr>
+<tr class="codeline" data-linenumber="21"><td class="num" id="LN21">21</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="22"><td class="num" id="LN22">22</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="23"><td class="num" id="LN23">23</td><td class="line"><span class='directive'>#include &lt;config.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="24"><td class="num" id="LN24">24</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="25"><td class="num" id="LN25">25</td><td class="line"><span class='directive'>#include &lt;<span class='macro'>errno<span class='macro_popup'>(*__errno_location ())</span></span>.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="26"><td class="num" id="LN26">26</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="27"><td class="num" id="LN27">27</td><td class="line"><span class='directive'>#include &lt;glib.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="28"><td class="num" id="LN28">28</td><td class="line"><span class='directive'>#include &lt;dconf.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="29"><td class="num" id="LN29">29</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="30"><td class="num" id="LN30">30</td><td class="line"><span class='directive'>#include "terminal-intl.h"</span></td></tr>
+<tr class="codeline" data-linenumber="31"><td class="num" id="LN31">31</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="32"><td class="num" id="LN32">32</td><td class="line"><span class='directive'>#include "terminal-debug.h"</span></td></tr>
+<tr class="codeline" data-linenumber="33"><td class="num" id="LN33">33</td><td class="line"><span class='directive'>#include "terminal-app.h"</span></td></tr>
+<tr class="codeline" data-linenumber="34"><td class="num" id="LN34">34</td><td class="line"><span class='directive'>#include "terminal-accels.h"</span></td></tr>
+<tr class="codeline" data-linenumber="35"><td class="num" id="LN35">35</td><td class="line"><span class='directive'>#include "terminal-screen.h"</span></td></tr>
+<tr class="codeline" data-linenumber="36"><td class="num" id="LN36">36</td><td class="line"><span class='directive'>#include "terminal-screen-container.h"</span></td></tr>
+<tr class="codeline" data-linenumber="37"><td class="num" id="LN37">37</td><td class="line"><span class='directive'>#include "terminal-window.h"</span></td></tr>
+<tr class="codeline" data-linenumber="38"><td class="num" id="LN38">38</td><td class="line"><span class='directive'>#include "terminal-util.h"</span></td></tr>
+<tr class="codeline" data-linenumber="39"><td class="num" id="LN39">39</td><td class="line"><span class='directive'>#include "profile-editor.h"</span></td></tr>
+<tr class="codeline" data-linenumber="40"><td class="num" id="LN40">40</td><td class="line"><span class='directive'>#include "terminal-encoding.h"</span></td></tr>
+<tr class="codeline" data-linenumber="41"><td class="num" id="LN41">41</td><td class="line"><span class='directive'>#include &lt;string.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="42"><td class="num" id="LN42">42</td><td class="line"><span class='directive'>#include &lt;stdlib.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="43"><td class="num" id="LN43">43</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="44"><td class="num" id="LN44">44</td><td class="line"><span class='directive'>#ifdef <span class='macro'>HAVE_SMCLIENT<span class='macro_popup'>1</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="45"><td class="num" id="LN45">45</td><td class="line"><span class='directive'>#include "eggsmclient.h"</span></td></tr>
+<tr class="codeline" data-linenumber="46"><td class="num" id="LN46">46</td><td class="line"><span class='directive'>#include "eggdesktopfile.h"</span></td></tr>
+<tr class="codeline" data-linenumber="47"><td class="num" id="LN47">47</td><td class="line"><span class='directive'>#endif /* HAVE_SMCLIENT */</span></td></tr>
+<tr class="codeline" data-linenumber="48"><td class="num" id="LN48">48</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="49"><td class="num" id="LN49">49</td><td class="line"><span class='directive'>#define <span class='macro'>FALLBACK_PROFILE_ID<span class='macro_popup'>"default"</span></span> "default"</span></td></tr>
+<tr class="codeline" data-linenumber="50"><td class="num" id="LN50">50</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="51"><td class="num" id="LN51">51</td><td class="line"><span class='comment'>/* Settings storage works as follows:</span></td></tr>
+<tr class="codeline" data-linenumber="52"><td class="num" id="LN52">52</td><td class="line"> <span class='comment'>* /apps/mate-terminal/global/</span></td></tr>
+<tr class="codeline" data-linenumber="53"><td class="num" id="LN53">53</td><td class="line"> <span class='comment'>* /apps/mate-terminal/profiles/Foo/</span></td></tr>
+<tr class="codeline" data-linenumber="54"><td class="num" id="LN54">54</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="55"><td class="num" id="LN55">55</td><td class="line"> <span class='comment'>* It's somewhat tricky to manage the profiles/ dir since we need to track</span></td></tr>
+<tr class="codeline" data-linenumber="56"><td class="num" id="LN56">56</td><td class="line"> <span class='comment'>* the list of profiles, but GSettings doesn't have a concept of notifying that</span></td></tr>
+<tr class="codeline" data-linenumber="57"><td class="num" id="LN57">57</td><td class="line"> <span class='comment'>* a directory has appeared or disappeared.</span></td></tr>
+<tr class="codeline" data-linenumber="58"><td class="num" id="LN58">58</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="59"><td class="num" id="LN59">59</td><td class="line"> <span class='comment'>* Session state is stored entirely in the RestartCommand command line.</span></td></tr>
+<tr class="codeline" data-linenumber="60"><td class="num" id="LN60">60</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="61"><td class="num" id="LN61">61</td><td class="line"> <span class='comment'>* The number one rule: all stored information is EITHER per-session,</span></td></tr>
+<tr class="codeline" data-linenumber="62"><td class="num" id="LN62">62</td><td class="line"> <span class='comment'>* per-profile, or set from a command line option. THERE CAN BE NO</span></td></tr>
+<tr class="codeline" data-linenumber="63"><td class="num" id="LN63">63</td><td class="line"> <span class='comment'>* OVERLAP. The UI and implementation totally break if you overlap</span></td></tr>
+<tr class="codeline" data-linenumber="64"><td class="num" id="LN64">64</td><td class="line"> <span class='comment'>* these categories. See mate-terminal 1.x for why.</span></td></tr>
+<tr class="codeline" data-linenumber="65"><td class="num" id="LN65">65</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="66"><td class="num" id="LN66">66</td><td class="line"> <span class='comment'>* Don't use this code as an example of how to use GSettings - it's hugely</span></td></tr>
+<tr class="codeline" data-linenumber="67"><td class="num" id="LN67">67</td><td class="line"> <span class='comment'>* overcomplicated due to the profiles stuff. Most apps should not</span></td></tr>
+<tr class="codeline" data-linenumber="68"><td class="num" id="LN68">68</td><td class="line"> <span class='comment'>* have to do scary things of this nature, and should not have</span></td></tr>
+<tr class="codeline" data-linenumber="69"><td class="num" id="LN69">69</td><td class="line"> <span class='comment'>* a profiles feature.</span></td></tr>
+<tr class="codeline" data-linenumber="70"><td class="num" id="LN70">70</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="71"><td class="num" id="LN71">71</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="72"><td class="num" id="LN72">72</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="73"><td class="num" id="LN73">73</td><td class="line">GSettings *settings_global;</td></tr>
+<tr class="codeline" data-linenumber="74"><td class="num" id="LN74">74</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="75"><td class="num" id="LN75">75</td><td class="line"><span class='keyword'>struct</span> _TerminalAppClass</td></tr>
+<tr class="codeline" data-linenumber="76"><td class="num" id="LN76">76</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="77"><td class="num" id="LN77">77</td><td class="line"> GObjectClass parent_class;</td></tr>
+<tr class="codeline" data-linenumber="78"><td class="num" id="LN78">78</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="79"><td class="num" id="LN79">79</td><td class="line"> <span class='keyword'>void</span> (* quit) (TerminalApp *app);</td></tr>
+<tr class="codeline" data-linenumber="80"><td class="num" id="LN80">80</td><td class="line"> <span class='keyword'>void</span> (* profile_list_changed) (TerminalApp *app);</td></tr>
+<tr class="codeline" data-linenumber="81"><td class="num" id="LN81">81</td><td class="line"> <span class='keyword'>void</span> (* encoding_list_changed) (TerminalApp *app);</td></tr>
+<tr class="codeline" data-linenumber="82"><td class="num" id="LN82">82</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="83"><td class="num" id="LN83">83</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="84"><td class="num" id="LN84">84</td><td class="line"><span class='keyword'>struct</span> _TerminalApp</td></tr>
+<tr class="codeline" data-linenumber="85"><td class="num" id="LN85">85</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="86"><td class="num" id="LN86">86</td><td class="line"> GObject parent_instance;</td></tr>
+<tr class="codeline" data-linenumber="87"><td class="num" id="LN87">87</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="88"><td class="num" id="LN88">88</td><td class="line"> GList *windows;</td></tr>
+<tr class="codeline" data-linenumber="89"><td class="num" id="LN89">89</td><td class="line"> GtkWidget *new_profile_dialog;</td></tr>
+<tr class="codeline" data-linenumber="90"><td class="num" id="LN90">90</td><td class="line"> GtkWidget *manage_profiles_dialog;</td></tr>
+<tr class="codeline" data-linenumber="91"><td class="num" id="LN91">91</td><td class="line"> GtkWidget *manage_profiles_list;</td></tr>
+<tr class="codeline" data-linenumber="92"><td class="num" id="LN92">92</td><td class="line"> GtkWidget *manage_profiles_new_button;</td></tr>
+<tr class="codeline" data-linenumber="93"><td class="num" id="LN93">93</td><td class="line"> GtkWidget *manage_profiles_edit_button;</td></tr>
+<tr class="codeline" data-linenumber="94"><td class="num" id="LN94">94</td><td class="line"> GtkWidget *manage_profiles_delete_button;</td></tr>
+<tr class="codeline" data-linenumber="95"><td class="num" id="LN95">95</td><td class="line"> GtkWidget *manage_profiles_default_menu;</td></tr>
+<tr class="codeline" data-linenumber="96"><td class="num" id="LN96">96</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="97"><td class="num" id="LN97">97</td><td class="line"> GSettings *settings_font;</td></tr>
+<tr class="codeline" data-linenumber="98"><td class="num" id="LN98">98</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="99"><td class="num" id="LN99">99</td><td class="line"> GHashTable *profiles;</td></tr>
+<tr class="codeline" data-linenumber="100"><td class="num" id="LN100">100</td><td class="line"> <span class='keyword'>char</span>* default_profile_id;</td></tr>
+<tr class="codeline" data-linenumber="101"><td class="num" id="LN101">101</td><td class="line"> TerminalProfile *default_profile;</td></tr>
+<tr class="codeline" data-linenumber="102"><td class="num" id="LN102">102</td><td class="line"> gboolean default_profile_locked;</td></tr>
+<tr class="codeline" data-linenumber="103"><td class="num" id="LN103">103</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="104"><td class="num" id="LN104">104</td><td class="line"> GHashTable *encodings;</td></tr>
+<tr class="codeline" data-linenumber="105"><td class="num" id="LN105">105</td><td class="line"> gboolean encodings_locked;</td></tr>
+<tr class="codeline" data-linenumber="106"><td class="num" id="LN106">106</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="107"><td class="num" id="LN107">107</td><td class="line"> PangoFontDescription *system_font_desc;</td></tr>
+<tr class="codeline" data-linenumber="108"><td class="num" id="LN108">108</td><td class="line"> gboolean enable_mnemonics;</td></tr>
+<tr class="codeline" data-linenumber="109"><td class="num" id="LN109">109</td><td class="line"> gboolean enable_menu_accels;</td></tr>
+<tr class="codeline" data-linenumber="110"><td class="num" id="LN110">110</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="111"><td class="num" id="LN111">111</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="112"><td class="num" id="LN112">112</td><td class="line"><span class='keyword'>enum</span></td></tr>
+<tr class="codeline" data-linenumber="113"><td class="num" id="LN113">113</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="114"><td class="num" id="LN114">114</td><td class="line"> PROP_0,</td></tr>
+<tr class="codeline" data-linenumber="115"><td class="num" id="LN115">115</td><td class="line"> PROP_DEFAULT_PROFILE,</td></tr>
+<tr class="codeline" data-linenumber="116"><td class="num" id="LN116">116</td><td class="line"> PROP_ENABLE_MENU_BAR_ACCEL,</td></tr>
+<tr class="codeline" data-linenumber="117"><td class="num" id="LN117">117</td><td class="line"> PROP_ENABLE_MNEMONICS,</td></tr>
+<tr class="codeline" data-linenumber="118"><td class="num" id="LN118">118</td><td class="line"> PROP_SYSTEM_FONT,</td></tr>
+<tr class="codeline" data-linenumber="119"><td class="num" id="LN119">119</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="120"><td class="num" id="LN120">120</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="121"><td class="num" id="LN121">121</td><td class="line"><span class='keyword'>enum</span></td></tr>
+<tr class="codeline" data-linenumber="122"><td class="num" id="LN122">122</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="123"><td class="num" id="LN123">123</td><td class="line"> QUIT,</td></tr>
+<tr class="codeline" data-linenumber="124"><td class="num" id="LN124">124</td><td class="line"> PROFILE_LIST_CHANGED,</td></tr>
+<tr class="codeline" data-linenumber="125"><td class="num" id="LN125">125</td><td class="line"> ENCODING_LIST_CHANGED,</td></tr>
+<tr class="codeline" data-linenumber="126"><td class="num" id="LN126">126</td><td class="line"> LAST_SIGNAL</td></tr>
+<tr class="codeline" data-linenumber="127"><td class="num" id="LN127">127</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="128"><td class="num" id="LN128">128</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="129"><td class="num" id="LN129">129</td><td class="line"><span class='keyword'>static</span> guint signals[LAST_SIGNAL] = { 0 };</td></tr>
+<tr class="codeline" data-linenumber="130"><td class="num" id="LN130">130</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="131"><td class="num" id="LN131">131</td><td class="line"><span class='keyword'>enum</span></td></tr>
+<tr class="codeline" data-linenumber="132"><td class="num" id="LN132">132</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="133"><td class="num" id="LN133">133</td><td class="line"> COL_PROFILE,</td></tr>
+<tr class="codeline" data-linenumber="134"><td class="num" id="LN134">134</td><td class="line"> NUM_COLUMNS</td></tr>
+<tr class="codeline" data-linenumber="135"><td class="num" id="LN135">135</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="136"><td class="num" id="LN136">136</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="137"><td class="num" id="LN137">137</td><td class="line"><span class='keyword'>enum</span></td></tr>
+<tr class="codeline" data-linenumber="138"><td class="num" id="LN138">138</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="139"><td class="num" id="LN139">139</td><td class="line"> SOURCE_DEFAULT = 0,</td></tr>
+<tr class="codeline" data-linenumber="140"><td class="num" id="LN140">140</td><td class="line"> SOURCE_SESSION = 1</td></tr>
+<tr class="codeline" data-linenumber="141"><td class="num" id="LN141">141</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="142"><td class="num" id="LN142">142</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="143"><td class="num" id="LN143">143</td><td class="line"><span class='keyword'>static</span> TerminalApp *global_app = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="144"><td class="num" id="LN144">144</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="145"><td class="num" id="LN145">145</td><td class="line"><span class='directive'>#define <span class='macro'>MONOSPACE_FONT_SCHEMA<span class='macro_popup'>"org.mate.interface"</span></span> "org.mate.interface"</span></td></tr>
+<tr class="codeline" data-linenumber="146"><td class="num" id="LN146">146</td><td class="line"><span class='directive'>#define <span class='macro'>MONOSPACE_FONT_KEY<span class='macro_popup'>"monospace-font-name"</span></span> "monospace-font-name"</span></td></tr>
+<tr class="codeline" data-linenumber="147"><td class="num" id="LN147">147</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_MONOSPACE_FONT<span class='macro_popup'>("Monospace 10")</span></span> ("Monospace 10")</span></td></tr>
+<tr class="codeline" data-linenumber="148"><td class="num" id="LN148">148</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="149"><td class="num" id="LN149">149</td><td class="line"><span class='directive'>#define <span class='macro'>ENABLE_MNEMONICS_KEY<span class='macro_popup'>"use-mnemonics"</span></span> "use-mnemonics"</span></td></tr>
+<tr class="codeline" data-linenumber="150"><td class="num" id="LN150">150</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_ENABLE_MNEMONICS<span class='macro_popup'>((!(0)))</span></span> (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="151"><td class="num" id="LN151">151</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="152"><td class="num" id="LN152">152</td><td class="line"><span class='directive'>#define <span class='macro'>ENABLE_MENU_BAR_ACCEL_KEY<span class='macro_popup'>"use-menu-accelerators"</span></span> "use-menu-accelerators"</span></td></tr>
+<tr class="codeline" data-linenumber="153"><td class="num" id="LN153">153</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_ENABLE_MENU_BAR_ACCEL<span class='macro_popup'>((!(0)))</span></span> (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="154"><td class="num" id="LN154">154</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="155"><td class="num" id="LN155">155</td><td class="line"><span class='directive'>#define <span class='macro'>PROFILE_LIST_KEY<span class='macro_popup'>"profile-list"</span></span> "profile-list"</span></td></tr>
+<tr class="codeline" data-linenumber="156"><td class="num" id="LN156">156</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_PROFILE_KEY<span class='macro_popup'>"default-profile"</span></span> "default-profile"</span></td></tr>
+<tr class="codeline" data-linenumber="157"><td class="num" id="LN157">157</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="158"><td class="num" id="LN158">158</td><td class="line"><span class='directive'>#define <span class='macro'>ENCODING_LIST_KEY<span class='macro_popup'>"active-encodings"</span></span> "active-encodings"</span></td></tr>
+<tr class="codeline" data-linenumber="159"><td class="num" id="LN159">159</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="160"><td class="num" id="LN160">160</td><td class="line"><span class='comment'>/* two following functions were copied from libmate-desktop to get rid</span></td></tr>
+<tr class="codeline" data-linenumber="161"><td class="num" id="LN161">161</td><td class="line"> <span class='comment'>* of dependency on it</span></td></tr>
+<tr class="codeline" data-linenumber="162"><td class="num" id="LN162">162</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="163"><td class="num" id="LN163">163</td><td class="line"> <span class='comment'>* FIXME: I suspect there's no need for excessive copies, we might use</span></td></tr>
+<tr class="codeline" data-linenumber="164"><td class="num" id="LN164">164</td><td class="line"> <span class='comment'>* existing profile list to form GVariant's and write them to GSettings</span></td></tr>
+<tr class="codeline" data-linenumber="165"><td class="num" id="LN165">165</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="166"><td class="num" id="LN166">166</td><td class="line"><span class='keyword'>static</span> gboolean</td></tr>
+<tr class="codeline" data-linenumber="167"><td class="num" id="LN167">167</td><td class="line">gsettings_append_strv (GSettings *settings,</td></tr>
+<tr class="codeline" data-linenumber="168"><td class="num" id="LN168">168</td><td class="line"> <span class='keyword'>const</span> gchar *key,</td></tr>
+<tr class="codeline" data-linenumber="169"><td class="num" id="LN169">169</td><td class="line"> <span class='keyword'>const</span> gchar *value)</td></tr>
+<tr class="codeline" data-linenumber="170"><td class="num" id="LN170">170</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="171"><td class="num" id="LN171">171</td><td class="line"> gchar **old;</td></tr>
+<tr class="codeline" data-linenumber="172"><td class="num" id="LN172">172</td><td class="line"> gchar **new;</td></tr>
+<tr class="codeline" data-linenumber="173"><td class="num" id="LN173">173</td><td class="line"> gint size;</td></tr>
+<tr class="codeline" data-linenumber="174"><td class="num" id="LN174">174</td><td class="line"> gboolean retval;</td></tr>
+<tr class="codeline" data-linenumber="175"><td class="num" id="LN175">175</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="176"><td class="num" id="LN176">176</td><td class="line"> old = g_settings_get_strv (settings, key);</td></tr>
+<tr class="codeline" data-linenumber="177"><td class="num" id="LN177">177</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="178"><td class="num" id="LN178">178</td><td class="line"> <span class='keyword'>for</span> (size = 0; old[size] != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; size++);</td></tr>
+<tr class="codeline" data-linenumber="179"><td class="num" id="LN179">179</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="180"><td class="num" id="LN180">180</td><td class="line"> size += 1; <span class='comment'>/* appended value */</span></td></tr>
+<tr class="codeline" data-linenumber="181"><td class="num" id="LN181">181</td><td class="line"> size += 1; <span class='comment'>/* NULL */</span></td></tr>
+<tr class="codeline" data-linenumber="182"><td class="num" id="LN182">182</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="183"><td class="num" id="LN183">183</td><td class="line"> new = g_realloc_n (old, size, <span class='keyword'>sizeof</span> (gchar *));</td></tr>
+<tr class="codeline" data-linenumber="184"><td class="num" id="LN184">184</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="185"><td class="num" id="LN185">185</td><td class="line"> new[size - 2] = <span class='macro'>g_strdup (value)<span class='macro_popup'>g_strdup_inline (value)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="186"><td class="num" id="LN186">186</td><td class="line"> new[size - 1] = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="187"><td class="num" id="LN187">187</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="188"><td class="num" id="LN188">188</td><td class="line"> retval = g_settings_set_strv (settings, key,</td></tr>
+<tr class="codeline" data-linenumber="189"><td class="num" id="LN189">189</td><td class="line"> (<span class='keyword'>const</span> gchar **) new);</td></tr>
+<tr class="codeline" data-linenumber="190"><td class="num" id="LN190">190</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="191"><td class="num" id="LN191">191</td><td class="line"> g_strfreev (new);</td></tr>
+<tr class="codeline" data-linenumber="192"><td class="num" id="LN192">192</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="193"><td class="num" id="LN193">193</td><td class="line"> <span class='keyword'>return</span> retval;</td></tr>
+<tr class="codeline" data-linenumber="194"><td class="num" id="LN194">194</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="195"><td class="num" id="LN195">195</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="196"><td class="num" id="LN196">196</td><td class="line"><span class='keyword'>static</span> gboolean</td></tr>
+<tr class="codeline" data-linenumber="197"><td class="num" id="LN197">197</td><td class="line">gsettings_remove_all_from_strv (GSettings *settings,</td></tr>
+<tr class="codeline" data-linenumber="198"><td class="num" id="LN198">198</td><td class="line"> <span class='keyword'>const</span> gchar *key,</td></tr>
+<tr class="codeline" data-linenumber="199"><td class="num" id="LN199">199</td><td class="line"> <span class='keyword'>const</span> gchar *value)</td></tr>
+<tr class="codeline" data-linenumber="200"><td class="num" id="LN200">200</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="201"><td class="num" id="LN201">201</td><td class="line"> GArray *array;</td></tr>
+<tr class="codeline" data-linenumber="202"><td class="num" id="LN202">202</td><td class="line"> gchar **old;</td></tr>
+<tr class="codeline" data-linenumber="203"><td class="num" id="LN203">203</td><td class="line"> gint i;</td></tr>
+<tr class="codeline" data-linenumber="204"><td class="num" id="LN204">204</td><td class="line"> gboolean retval;</td></tr>
+<tr class="codeline" data-linenumber="205"><td class="num" id="LN205">205</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="206"><td class="num" id="LN206">206</td><td class="line"> old = g_settings_get_strv (settings, key);</td></tr>
+<tr class="codeline" data-linenumber="207"><td class="num" id="LN207">207</td><td class="line"> array = g_array_new (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>, <span class='keyword'>sizeof</span> (gchar *));</td></tr>
+<tr class="codeline" data-linenumber="208"><td class="num" id="LN208">208</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="209"><td class="num" id="LN209">209</td><td class="line"> <span class='keyword'>for</span> (i = 0; old[i] != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; i++) {</td></tr>
+<tr class="codeline" data-linenumber="210"><td class="num" id="LN210">210</td><td class="line"> <span class='keyword'>if</span> (g_strcmp0 (old[i], value) != 0)</td></tr>
+<tr class="codeline" data-linenumber="211"><td class="num" id="LN211">211</td><td class="line"> array = <span class='macro'>g_array_append_val (array, old[i])<span class='macro_popup'>g_array_append_vals (array, &amp;(old[i]), 1)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="212"><td class="num" id="LN212">212</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="213"><td class="num" id="LN213">213</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="214"><td class="num" id="LN214">214</td><td class="line"> retval = g_settings_set_strv (settings, key,</td></tr>
+<tr class="codeline" data-linenumber="215"><td class="num" id="LN215">215</td><td class="line"> (<span class='keyword'>const</span> gchar **) array-&gt;data);</td></tr>
+<tr class="codeline" data-linenumber="216"><td class="num" id="LN216">216</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="217"><td class="num" id="LN217">217</td><td class="line"> g_strfreev (old);</td></tr>
+<tr class="codeline" data-linenumber="218"><td class="num" id="LN218">218</td><td class="line"> g_array_free (array, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="219"><td class="num" id="LN219">219</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="220"><td class="num" id="LN220">220</td><td class="line"> <span class='keyword'>return</span> retval;</td></tr>
+<tr class="codeline" data-linenumber="221"><td class="num" id="LN221">221</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="222"><td class="num" id="LN222">222</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="223"><td class="num" id="LN223">223</td><td class="line"><span class='comment'>/* Helper functions */</span></td></tr>
+<tr class="codeline" data-linenumber="224"><td class="num" id="LN224">224</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="225"><td class="num" id="LN225">225</td><td class="line"><span class='keyword'>static</span> GdkScreen*</td></tr>
+<tr class="codeline" data-linenumber="226"><td class="num" id="LN226">226</td><td class="line">terminal_app_get_screen_by_display_name (<span class='keyword'>const</span> <span class='keyword'>char</span> *display_name)</td></tr>
+<tr class="codeline" data-linenumber="227"><td class="num" id="LN227">227</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="228"><td class="num" id="LN228">228</td><td class="line"> GdkDisplay *display = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="229"><td class="num" id="LN229">229</td><td class="line"> GdkScreen *screen = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="230"><td class="num" id="LN230">230</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="231"><td class="num" id="LN231">231</td><td class="line"> <span class='keyword'>if</span> (display_name == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="232"><td class="num" id="LN232">232</td><td class="line"> display = gdk_display_get_default ();</td></tr>
+<tr class="codeline" data-linenumber="233"><td class="num" id="LN233">233</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="234"><td class="num" id="LN234">234</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="235"><td class="num" id="LN235">235</td><td class="line"> GSList *displays, *l;</td></tr>
+<tr class="codeline" data-linenumber="236"><td class="num" id="LN236">236</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *period;</td></tr>
+<tr class="codeline" data-linenumber="237"><td class="num" id="LN237">237</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="238"><td class="num" id="LN238">238</td><td class="line"> period = strrchr (display_name, '.');</td></tr>
+<tr class="codeline" data-linenumber="239"><td class="num" id="LN239">239</td><td class="line"> displays = gdk_display_manager_list_displays (gdk_display_manager_get ());</td></tr>
+<tr class="codeline" data-linenumber="240"><td class="num" id="LN240">240</td><td class="line"> <span class='keyword'>for</span> (l = displays; l != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; l = l-&gt;next)</td></tr>
+<tr class="codeline" data-linenumber="241"><td class="num" id="LN241">241</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="242"><td class="num" id="LN242">242</td><td class="line"> GdkDisplay *disp = l-&gt;data;</td></tr>
+<tr class="codeline" data-linenumber="243"><td class="num" id="LN243">243</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="244"><td class="num" id="LN244">244</td><td class="line"> <span class='comment'>/* compare without the screen number part, if present */</span></td></tr>
+<tr class="codeline" data-linenumber="245"><td class="num" id="LN245">245</td><td class="line"> <span class='keyword'>if</span> ((period &amp;&amp; strncmp (gdk_display_get_name (disp), display_name, period - display_name) == 0) ||</td></tr>
+<tr class="codeline" data-linenumber="246"><td class="num" id="LN246">246</td><td class="line"> (period == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span> &amp;&amp; strcmp (gdk_display_get_name (disp), display_name) == 0))</td></tr>
+<tr class="codeline" data-linenumber="247"><td class="num" id="LN247">247</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="248"><td class="num" id="LN248">248</td><td class="line"> display = disp;</td></tr>
+<tr class="codeline" data-linenumber="249"><td class="num" id="LN249">249</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="250"><td class="num" id="LN250">250</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="251"><td class="num" id="LN251">251</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="252"><td class="num" id="LN252">252</td><td class="line"> g_slist_free (displays);</td></tr>
+<tr class="codeline" data-linenumber="253"><td class="num" id="LN253">253</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="254"><td class="num" id="LN254">254</td><td class="line"> <span class='keyword'>if</span> (display == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="255"><td class="num" id="LN255">255</td><td class="line"> display = gdk_display_open (display_name); <span class='comment'>/* FIXME we never close displays */</span></td></tr>
+<tr class="codeline" data-linenumber="256"><td class="num" id="LN256">256</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="257"><td class="num" id="LN257">257</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="258"><td class="num" id="LN258">258</td><td class="line"> <span class='keyword'>if</span> (display == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="259"><td class="num" id="LN259">259</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="260"><td class="num" id="LN260">260</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="261"><td class="num" id="LN261">261</td><td class="line"> screen = gdk_display_get_default_screen (display);</td></tr>
+<tr class="codeline" data-linenumber="262"><td class="num" id="LN262">262</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="263"><td class="num" id="LN263">263</td><td class="line"> <span class='keyword'>return</span> screen;</td></tr>
+<tr class="codeline" data-linenumber="264"><td class="num" id="LN264">264</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="265"><td class="num" id="LN265">265</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="266"><td class="num" id="LN266">266</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>int</span></td></tr>
+<tr class="codeline" data-linenumber="267"><td class="num" id="LN267">267</td><td class="line">terminal_app_get_workspace_for_window (TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="268"><td class="num" id="LN268">268</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="269"><td class="num" id="LN269">269</td><td class="line"> <span class='keyword'>int</span> ret = -1;</td></tr>
+<tr class="codeline" data-linenumber="270"><td class="num" id="LN270">270</td><td class="line"> guchar *data = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="271"><td class="num" id="LN271">271</td><td class="line"> GdkAtom atom;</td></tr>
+<tr class="codeline" data-linenumber="272"><td class="num" id="LN272">272</td><td class="line"> GdkAtom cardinal_atom;</td></tr>
+<tr class="codeline" data-linenumber="273"><td class="num" id="LN273">273</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="274"><td class="num" id="LN274">274</td><td class="line"> atom = gdk_atom_intern_static_string (<span class='string_literal'>"_NET_WM_DESKTOP"</span>);</td></tr>
+<tr class="codeline" data-linenumber="275"><td class="num" id="LN275">275</td><td class="line"> cardinal_atom = gdk_atom_intern_static_string (<span class='string_literal'>"CARDINAL"</span>);</td></tr>
+<tr class="codeline" data-linenumber="276"><td class="num" id="LN276">276</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="277"><td class="num" id="LN277">277</td><td class="line"> gdk_property_get (gtk_widget_get_window(<span class='macro'>GTK_WIDGET(window)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_widget_get_type ()))))))</span></span>),</td></tr>
+<tr class="codeline" data-linenumber="278"><td class="num" id="LN278">278</td><td class="line"> atom, cardinal_atom, 0, 8, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="279"><td class="num" id="LN279">279</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, &amp;data);</td></tr>
+<tr class="codeline" data-linenumber="280"><td class="num" id="LN280">280</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="281"><td class="num" id="LN281">281</td><td class="line"> <span class='keyword'>if</span> (data)</td></tr>
+<tr class="codeline" data-linenumber="282"><td class="num" id="LN282">282</td><td class="line"> ret = *(<span class='keyword'>int</span> *)data;</td></tr>
+<tr class="codeline" data-linenumber="283"><td class="num" id="LN283">283</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="284"><td class="num" id="LN284">284</td><td class="line"> g_free (data);</td></tr>
+<tr class="codeline" data-linenumber="285"><td class="num" id="LN285">285</td><td class="line"> <span class='keyword'>return</span> ret;</td></tr>
+<tr class="codeline" data-linenumber="286"><td class="num" id="LN286">286</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="287"><td class="num" id="LN287">287</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="288"><td class="num" id="LN288">288</td><td class="line"><span class='comment'>/* Menubar mnemonics settings handling */</span></td></tr>
+<tr class="codeline" data-linenumber="289"><td class="num" id="LN289">289</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="290"><td class="num" id="LN290">290</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>int</span></td></tr>
+<tr class="codeline" data-linenumber="291"><td class="num" id="LN291">291</td><td class="line">profiles_alphabetic_cmp (gconstpointer pa,</td></tr>
+<tr class="codeline" data-linenumber="292"><td class="num" id="LN292">292</td><td class="line"> gconstpointer pb)</td></tr>
+<tr class="codeline" data-linenumber="293"><td class="num" id="LN293">293</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="294"><td class="num" id="LN294">294</td><td class="line"> TerminalProfile *a = (TerminalProfile *) pa;</td></tr>
+<tr class="codeline" data-linenumber="295"><td class="num" id="LN295">295</td><td class="line"> TerminalProfile *b = (TerminalProfile *) pb;</td></tr>
+<tr class="codeline" data-linenumber="296"><td class="num" id="LN296">296</td><td class="line"> <span class='keyword'>int</span> result;</td></tr>
+<tr class="codeline" data-linenumber="297"><td class="num" id="LN297">297</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="298"><td class="num" id="LN298">298</td><td class="line"> result = g_utf8_collate (terminal_profile_get_property_string (a, <span class='macro'>TERMINAL_PROFILE_VISIBLE_NAME<span class='macro_popup'>"visible-name"</span></span>),</td></tr>
+<tr class="codeline" data-linenumber="299"><td class="num" id="LN299">299</td><td class="line"> terminal_profile_get_property_string (b, <span class='macro'>TERMINAL_PROFILE_VISIBLE_NAME<span class='macro_popup'>"visible-name"</span></span>));</td></tr>
+<tr class="codeline" data-linenumber="300"><td class="num" id="LN300">300</td><td class="line"> <span class='keyword'>if</span> (result == 0)</td></tr>
+<tr class="codeline" data-linenumber="301"><td class="num" id="LN301">301</td><td class="line"> result = strcmp (terminal_profile_get_property_string (a, <span class='macro'>TERMINAL_PROFILE_NAME<span class='macro_popup'>"name"</span></span>),</td></tr>
+<tr class="codeline" data-linenumber="302"><td class="num" id="LN302">302</td><td class="line"> terminal_profile_get_property_string (b, <span class='macro'>TERMINAL_PROFILE_NAME<span class='macro_popup'>"name"</span></span>));</td></tr>
+<tr class="codeline" data-linenumber="303"><td class="num" id="LN303">303</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="304"><td class="num" id="LN304">304</td><td class="line"> <span class='keyword'>return</span> result;</td></tr>
+<tr class="codeline" data-linenumber="305"><td class="num" id="LN305">305</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="306"><td class="num" id="LN306">306</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="307"><td class="num" id="LN307">307</td><td class="line"><span class='keyword'>typedef</span> <span class='keyword'>struct</span></td></tr>
+<tr class="codeline" data-linenumber="308"><td class="num" id="LN308">308</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="309"><td class="num" id="LN309">309</td><td class="line"> TerminalProfile *result;</td></tr>
+<tr class="codeline" data-linenumber="310"><td class="num" id="LN310">310</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *target;</td></tr>
+<tr class="codeline" data-linenumber="311"><td class="num" id="LN311">311</td><td class="line">} LookupInfo;</td></tr>
+<tr class="codeline" data-linenumber="312"><td class="num" id="LN312">312</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="313"><td class="num" id="LN313">313</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="314"><td class="num" id="LN314">314</td><td class="line">profiles_lookup_by_visible_name_foreach (gpointer key,</td></tr>
+<tr class="codeline" data-linenumber="315"><td class="num" id="LN315">315</td><td class="line"> gpointer value,</td></tr>
+<tr class="codeline" data-linenumber="316"><td class="num" id="LN316">316</td><td class="line"> gpointer data)</td></tr>
+<tr class="codeline" data-linenumber="317"><td class="num" id="LN317">317</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="318"><td class="num" id="LN318">318</td><td class="line"> LookupInfo *info = data;</td></tr>
+<tr class="codeline" data-linenumber="319"><td class="num" id="LN319">319</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *name;</td></tr>
+<tr class="codeline" data-linenumber="320"><td class="num" id="LN320">320</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="321"><td class="num" id="LN321">321</td><td class="line"> name = terminal_profile_get_property_string (value, <span class='macro'>TERMINAL_PROFILE_VISIBLE_NAME<span class='macro_popup'>"visible-name"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="322"><td class="num" id="LN322">322</td><td class="line"> <span class='keyword'>if</span> (name &amp;&amp; strcmp (info-&gt;target, name) == 0)</td></tr>
+<tr class="codeline" data-linenumber="323"><td class="num" id="LN323">323</td><td class="line"> info-&gt;result = value;</td></tr>
+<tr class="codeline" data-linenumber="324"><td class="num" id="LN324">324</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="325"><td class="num" id="LN325">325</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="326"><td class="num" id="LN326">326</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="327"><td class="num" id="LN327">327</td><td class="line">terminal_window_destroyed (TerminalWindow *window,</td></tr>
+<tr class="codeline" data-linenumber="328"><td class="num" id="LN328">328</td><td class="line"> TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="329"><td class="num" id="LN329">329</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="330"><td class="num" id="LN330">330</td><td class="line"> app-&gt;windows = g_list_remove (app-&gt;windows, window);</td></tr>
+<tr class="codeline" data-linenumber="331"><td class="num" id="LN331">331</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="332"><td class="num" id="LN332">332</td><td class="line"> <span class='keyword'>if</span> (app-&gt;windows == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="333"><td class="num" id="LN333">333</td><td class="line"> g_signal_emit (app, signals[QUIT], 0);</td></tr>
+<tr class="codeline" data-linenumber="334"><td class="num" id="LN334">334</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="335"><td class="num" id="LN335">335</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="336"><td class="num" id="LN336">336</td><td class="line"><span class='keyword'>static</span> TerminalProfile *</td></tr>
+<tr class="codeline" data-linenumber="337"><td class="num" id="LN337">337</td><td class="line">terminal_app_create_profile (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="338"><td class="num" id="LN338">338</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *name)</td></tr>
+<tr class="codeline" data-linenumber="339"><td class="num" id="LN339">339</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="340"><td class="num" id="LN340">340</td><td class="line"> TerminalProfile *profile;</td></tr>
+<tr class="codeline" data-linenumber="341"><td class="num" id="LN341">341</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="342"><td class="num" id="LN342">342</td><td class="line"> <span class='macro'>g_assert (terminal_app_get_profile_by_name (app, name) == NULL)<span class='macro_popup'>do { if (terminal_app_get_profile_by_name (app, name) == ((void<br>*)0)) ; else g_assertion_message_expr (((gchar*) 0), "terminal-app.c"<br>, 342, ((const char*) (__func__)), "terminal_app_get_profile_by_name (app, name) == NULL"<br>); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="343"><td class="num" id="LN343">343</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="344"><td class="num" id="LN344">344</td><td class="line"> profile = _terminal_profile_new (name);</td></tr>
+<tr class="codeline" data-linenumber="345"><td class="num" id="LN345">345</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="346"><td class="num" id="LN346">346</td><td class="line"> g_hash_table_insert (app-&gt;profiles,</td></tr>
+<tr class="codeline" data-linenumber="347"><td class="num" id="LN347">347</td><td class="line"> <span class='macro'>g_strdup (terminal_profile_get_property_string (profile, TERMINAL_PROFILE_NAME))<span class='macro_popup'>g_strdup_inline (terminal_profile_get_property_string (profile<br>, "name"))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="348"><td class="num" id="LN348">348</td><td class="line"> profile <span class='comment'>/* adopts the refcount */</span>);</td></tr>
+<tr class="codeline" data-linenumber="349"><td class="num" id="LN349">349</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="350"><td class="num" id="LN350">350</td><td class="line"> <span class='keyword'>if</span> (app-&gt;default_profile == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span> &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="351"><td class="num" id="LN351">351</td><td class="line"> app-&gt;default_profile_id != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span> &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="352"><td class="num" id="LN352">352</td><td class="line"> strcmp (app-&gt;default_profile_id,</td></tr>
+<tr class="codeline" data-linenumber="353"><td class="num" id="LN353">353</td><td class="line"> terminal_profile_get_property_string (profile, <span class='macro'>TERMINAL_PROFILE_NAME<span class='macro_popup'>"name"</span></span>)) == 0)</td></tr>
+<tr class="codeline" data-linenumber="354"><td class="num" id="LN354">354</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="355"><td class="num" id="LN355">355</td><td class="line"> <span class='comment'>/* We are the default profile */</span></td></tr>
+<tr class="codeline" data-linenumber="356"><td class="num" id="LN356">356</td><td class="line"> app-&gt;default_profile = profile;</td></tr>
+<tr class="codeline" data-linenumber="357"><td class="num" id="LN357">357</td><td class="line"> g_object_notify (<span class='macro'>G_OBJECT (app)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, <span class='macro'>TERMINAL_APP_DEFAULT_PROFILE<span class='macro_popup'>"default-profile"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="358"><td class="num" id="LN358">358</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="359"><td class="num" id="LN359">359</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="360"><td class="num" id="LN360">360</td><td class="line"> <span class='keyword'>return</span> profile;</td></tr>
+<tr class="codeline" data-linenumber="361"><td class="num" id="LN361">361</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="362"><td class="num" id="LN362">362</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="363"><td class="num" id="LN363">363</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="364"><td class="num" id="LN364">364</td><td class="line">terminal_app_delete_profile (TerminalProfile *profile)</td></tr>
+<tr class="codeline" data-linenumber="365"><td class="num" id="LN365">365</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="366"><td class="num" id="LN366">366</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *profile_name;</td></tr>
+<tr class="codeline" data-linenumber="367"><td class="num" id="LN367">367</td><td class="line"> <span class='keyword'>char</span> *profile_dir;</td></tr>
+<tr class="codeline" data-linenumber="368"><td class="num" id="LN368">368</td><td class="line"> GError *error = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="369"><td class="num" id="LN369">369</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="370"><td class="num" id="LN370">370</td><td class="line"> profile_name = terminal_profile_get_property_string (profile, <span class='macro'>TERMINAL_PROFILE_NAME<span class='macro_popup'>"name"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="371"><td class="num" id="LN371">371</td><td class="line"> profile_dir = g_strconcat (<span class='macro'>CONF_PROFILE_PREFIX<span class='macro_popup'>"/org/mate/terminal/profiles/"</span></span>, profile_name, <span class='string_literal'>"/"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="372"><td class="num" id="LN372">372</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="373"><td class="num" id="LN373">373</td><td class="line"> gsettings_remove_all_from_strv (settings_global, <span class='macro'>PROFILE_LIST_KEY<span class='macro_popup'>"profile-list"</span></span>, profile_name);</td></tr>
+<tr class="codeline" data-linenumber="374"><td class="num" id="LN374">374</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="375"><td class="num" id="LN375">375</td><td class="line"> <span class='comment'>/* And remove the profile directory */</span></td></tr>
+<tr class="codeline" data-linenumber="376"><td class="num" id="LN376">376</td><td class="line"> DConfClient *client = dconf_client_new ();</td></tr>
+<tr class="codeline" data-linenumber="377"><td class="num" id="LN377">377</td><td class="line"> <span class='keyword'>if</span> (!dconf_client_write_sync (client, profile_dir, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, &amp;error))</td></tr>
+<tr class="codeline" data-linenumber="378"><td class="num" id="LN378">378</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="379"><td class="num" id="LN379">379</td><td class="line"> g_warning (<span class='string_literal'>"Failed to recursively unset %s: %s\n"</span>, profile_dir, error-&gt;message);</td></tr>
+<tr class="codeline" data-linenumber="380"><td class="num" id="LN380">380</td><td class="line"> g_error_free (error);</td></tr>
+<tr class="codeline" data-linenumber="381"><td class="num" id="LN381">381</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="382"><td class="num" id="LN382">382</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="383"><td class="num" id="LN383">383</td><td class="line"> g_object_unref (client);</td></tr>
+<tr class="codeline" data-linenumber="384"><td class="num" id="LN384">384</td><td class="line"> g_free (profile_dir);</td></tr>
+<tr class="codeline" data-linenumber="385"><td class="num" id="LN385">385</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="386"><td class="num" id="LN386">386</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="387"><td class="num" id="LN387">387</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="388"><td class="num" id="LN388">388</td><td class="line">terminal_app_profile_cell_data_func (GtkTreeViewColumn *tree_column,</td></tr>
+<tr class="codeline" data-linenumber="389"><td class="num" id="LN389">389</td><td class="line"> GtkCellRenderer *cell,</td></tr>
+<tr class="codeline" data-linenumber="390"><td class="num" id="LN390">390</td><td class="line"> GtkTreeModel *tree_model,</td></tr>
+<tr class="codeline" data-linenumber="391"><td class="num" id="LN391">391</td><td class="line"> GtkTreeIter *iter,</td></tr>
+<tr class="codeline" data-linenumber="392"><td class="num" id="LN392">392</td><td class="line"> gpointer data)</td></tr>
+<tr class="codeline" data-linenumber="393"><td class="num" id="LN393">393</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="394"><td class="num" id="LN394">394</td><td class="line"> TerminalProfile *profile;</td></tr>
+<tr class="codeline" data-linenumber="395"><td class="num" id="LN395">395</td><td class="line"> GValue value = { 0, };</td></tr>
+<tr class="codeline" data-linenumber="396"><td class="num" id="LN396">396</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="397"><td class="num" id="LN397">397</td><td class="line"> gtk_tree_model_get (tree_model, iter, (<span class='keyword'>int</span>) COL_PROFILE, &amp;profile, (<span class='keyword'>int</span>) -1);</td></tr>
+<tr class="codeline" data-linenumber="398"><td class="num" id="LN398">398</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="399"><td class="num" id="LN399">399</td><td class="line"> g_value_init (&amp;value, <span class='macro'>G_TYPE_STRING<span class='macro_popup'>((GType) ((16) &lt;&lt; (2)))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="400"><td class="num" id="LN400">400</td><td class="line"> g_object_get_property (<span class='macro'>G_OBJECT (profile)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((profile)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, <span class='string_literal'>"visible-name"</span>, &amp;value);</td></tr>
+<tr class="codeline" data-linenumber="401"><td class="num" id="LN401">401</td><td class="line"> g_object_set_property (<span class='macro'>G_OBJECT (cell)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((cell)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, <span class='string_literal'>"text"</span>, &amp;value);</td></tr>
+<tr class="codeline" data-linenumber="402"><td class="num" id="LN402">402</td><td class="line"> g_value_unset (&amp;value);</td></tr>
+<tr class="codeline" data-linenumber="403"><td class="num" id="LN403">403</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="404"><td class="num" id="LN404">404</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="405"><td class="num" id="LN405">405</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>int</span></td></tr>
+<tr class="codeline" data-linenumber="406"><td class="num" id="LN406">406</td><td class="line">terminal_app_profile_sort_func (GtkTreeModel *model,</td></tr>
+<tr class="codeline" data-linenumber="407"><td class="num" id="LN407">407</td><td class="line"> GtkTreeIter *a,</td></tr>
+<tr class="codeline" data-linenumber="408"><td class="num" id="LN408">408</td><td class="line"> GtkTreeIter *b,</td></tr>
+<tr class="codeline" data-linenumber="409"><td class="num" id="LN409">409</td><td class="line"> gpointer user_data)</td></tr>
+<tr class="codeline" data-linenumber="410"><td class="num" id="LN410">410</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="411"><td class="num" id="LN411">411</td><td class="line"> TerminalProfile *profile_a, *profile_b;</td></tr>
+<tr class="codeline" data-linenumber="412"><td class="num" id="LN412">412</td><td class="line"> <span class='keyword'>int</span> retval;</td></tr>
+<tr class="codeline" data-linenumber="413"><td class="num" id="LN413">413</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="414"><td class="num" id="LN414">414</td><td class="line"> gtk_tree_model_get (model, a, (<span class='keyword'>int</span>) COL_PROFILE, &amp;profile_a, (<span class='keyword'>int</span>) -1);</td></tr>
+<tr class="codeline" data-linenumber="415"><td class="num" id="LN415">415</td><td class="line"> gtk_tree_model_get (model, b, (<span class='keyword'>int</span>) COL_PROFILE, &amp;profile_b, (<span class='keyword'>int</span>) -1);</td></tr>
+<tr class="codeline" data-linenumber="416"><td class="num" id="LN416">416</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="417"><td class="num" id="LN417">417</td><td class="line"> retval = profiles_alphabetic_cmp (profile_a, profile_b);</td></tr>
+<tr class="codeline" data-linenumber="418"><td class="num" id="LN418">418</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="419"><td class="num" id="LN419">419</td><td class="line"> g_object_unref (profile_a);</td></tr>
+<tr class="codeline" data-linenumber="420"><td class="num" id="LN420">420</td><td class="line"> g_object_unref (profile_b);</td></tr>
+<tr class="codeline" data-linenumber="421"><td class="num" id="LN421">421</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="422"><td class="num" id="LN422">422</td><td class="line"> <span class='keyword'>return</span> retval;</td></tr>
+<tr class="codeline" data-linenumber="423"><td class="num" id="LN423">423</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="424"><td class="num" id="LN424">424</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="425"><td class="num" id="LN425">425</td><td class="line"><span class='keyword'>static</span> <span class='comment'>/* ref */</span> GtkTreeModel *</td></tr>
+<tr class="codeline" data-linenumber="426"><td class="num" id="LN426">426</td><td class="line">terminal_app_get_profile_liststore (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="427"><td class="num" id="LN427">427</td><td class="line"> TerminalProfile *selected_profile,</td></tr>
+<tr class="codeline" data-linenumber="428"><td class="num" id="LN428">428</td><td class="line"> GtkTreeIter *selected_profile_iter,</td></tr>
+<tr class="codeline" data-linenumber="429"><td class="num" id="LN429">429</td><td class="line"> gboolean *selected_profile_iter_set)</td></tr>
+<tr class="codeline" data-linenumber="430"><td class="num" id="LN430">430</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="431"><td class="num" id="LN431">431</td><td class="line"> GtkListStore *store;</td></tr>
+<tr class="codeline" data-linenumber="432"><td class="num" id="LN432">432</td><td class="line"> GtkTreeIter iter;</td></tr>
+<tr class="codeline" data-linenumber="433"><td class="num" id="LN433">433</td><td class="line"> GList *profiles, *l;</td></tr>
+<tr class="codeline" data-linenumber="434"><td class="num" id="LN434">434</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="435"><td class="num" id="LN435">435</td><td class="line"> store = gtk_list_store_new (NUM_COLUMNS, <span class='macro'>TERMINAL_TYPE_PROFILE<span class='macro_popup'>(terminal_profile_get_type ())</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="436"><td class="num" id="LN436">436</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="437"><td class="num" id="LN437">437</td><td class="line"> *selected_profile_iter_set = <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="438"><td class="num" id="LN438">438</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="439"><td class="num" id="LN439">439</td><td class="line"> <span class='keyword'>if</span> (selected_profile &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="440"><td class="num" id="LN440">440</td><td class="line"> _terminal_profile_get_forgotten (selected_profile))</td></tr>
+<tr class="codeline" data-linenumber="441"><td class="num" id="LN441">441</td><td class="line"> selected_profile = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="442"><td class="num" id="LN442">442</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="443"><td class="num" id="LN443">443</td><td class="line"> profiles = terminal_app_get_profile_list (app);</td></tr>
+<tr class="codeline" data-linenumber="444"><td class="num" id="LN444">444</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="445"><td class="num" id="LN445">445</td><td class="line"> <span class='keyword'>for</span> (l = profiles; l != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; l = l-&gt;next)</td></tr>
+<tr class="codeline" data-linenumber="446"><td class="num" id="LN446">446</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="447"><td class="num" id="LN447">447</td><td class="line"> TerminalProfile *profile = <span class='macro'>TERMINAL_PROFILE (l-&gt;data)<span class='macro_popup'>((((TerminalProfile*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((l-&gt;data)), ((terminal_profile_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="448"><td class="num" id="LN448">448</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="449"><td class="num" id="LN449">449</td><td class="line"> gtk_list_store_insert_with_values (store, &amp;iter, 0,</td></tr>
+<tr class="codeline" data-linenumber="450"><td class="num" id="LN450">450</td><td class="line"> (<span class='keyword'>int</span>) COL_PROFILE, profile,</td></tr>
+<tr class="codeline" data-linenumber="451"><td class="num" id="LN451">451</td><td class="line"> (<span class='keyword'>int</span>) -1);</td></tr>
+<tr class="codeline" data-linenumber="452"><td class="num" id="LN452">452</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="453"><td class="num" id="LN453">453</td><td class="line"> <span class='keyword'>if</span> (selected_profile_iter &amp;&amp; profile == selected_profile)</td></tr>
+<tr class="codeline" data-linenumber="454"><td class="num" id="LN454">454</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="455"><td class="num" id="LN455">455</td><td class="line"> *selected_profile_iter = iter;</td></tr>
+<tr class="codeline" data-linenumber="456"><td class="num" id="LN456">456</td><td class="line"> *selected_profile_iter_set = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="457"><td class="num" id="LN457">457</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="458"><td class="num" id="LN458">458</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="459"><td class="num" id="LN459">459</td><td class="line"> g_list_free (profiles);</td></tr>
+<tr class="codeline" data-linenumber="460"><td class="num" id="LN460">460</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="461"><td class="num" id="LN461">461</td><td class="line"> <span class='comment'>/* Now turn on sorting */</span></td></tr>
+<tr class="codeline" data-linenumber="462"><td class="num" id="LN462">462</td><td class="line"> gtk_tree_sortable_set_sort_func (<span class='macro'>GTK_TREE_SORTABLE (store)<span class='macro_popup'>((((GtkTreeSortable*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((store)), ((gtk_tree_sortable_get_type ()))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="463"><td class="num" id="LN463">463</td><td class="line"> COL_PROFILE,</td></tr>
+<tr class="codeline" data-linenumber="464"><td class="num" id="LN464">464</td><td class="line"> terminal_app_profile_sort_func,</td></tr>
+<tr class="codeline" data-linenumber="465"><td class="num" id="LN465">465</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="466"><td class="num" id="LN466">466</td><td class="line"> gtk_tree_sortable_set_sort_column_id (<span class='macro'>GTK_TREE_SORTABLE (store)<span class='macro_popup'>((((GtkTreeSortable*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((store)), ((gtk_tree_sortable_get_type ()))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="467"><td class="num" id="LN467">467</td><td class="line"> COL_PROFILE, GTK_SORT_ASCENDING);</td></tr>
+<tr class="codeline" data-linenumber="468"><td class="num" id="LN468">468</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="469"><td class="num" id="LN469">469</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>GTK_TREE_MODEL (store)<span class='macro_popup'>((((GtkTreeModel*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((store)), ((gtk_tree_model_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="470"><td class="num" id="LN470">470</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="471"><td class="num" id="LN471">471</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="472"><td class="num" id="LN472">472</td><td class="line"><span class='keyword'>static</span> <span class='comment'>/* ref */</span> TerminalProfile*</td></tr>
+<tr class="codeline" data-linenumber="473"><td class="num" id="LN473">473</td><td class="line">profile_combo_box_get_selected (GtkWidget *widget)</td></tr>
+<tr class="codeline" data-linenumber="474"><td class="num" id="LN474">474</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="475"><td class="num" id="LN475">475</td><td class="line"> GtkComboBox *combo = <span class='macro'>GTK_COMBO_BOX (widget)<span class='macro_popup'>((((GtkComboBox*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((widget)), ((gtk_combo_box_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="476"><td class="num" id="LN476">476</td><td class="line"> TerminalProfile *profile = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="477"><td class="num" id="LN477">477</td><td class="line"> GtkTreeIter iter;</td></tr>
+<tr class="codeline" data-linenumber="478"><td class="num" id="LN478">478</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="479"><td class="num" id="LN479">479</td><td class="line"> <span class='keyword'>if</span> (gtk_combo_box_get_active_iter (combo, &amp;iter))</td></tr>
+<tr class="codeline" data-linenumber="480"><td class="num" id="LN480">480</td><td class="line"> gtk_tree_model_get (gtk_combo_box_get_model (combo), &amp;iter,</td></tr>
+<tr class="codeline" data-linenumber="481"><td class="num" id="LN481">481</td><td class="line"> (<span class='keyword'>int</span>) COL_PROFILE, &amp;profile, (<span class='keyword'>int</span>) -1);</td></tr>
+<tr class="codeline" data-linenumber="482"><td class="num" id="LN482">482</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="483"><td class="num" id="LN483">483</td><td class="line"> <span class='keyword'>return</span> profile;</td></tr>
+<tr class="codeline" data-linenumber="484"><td class="num" id="LN484">484</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="485"><td class="num" id="LN485">485</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="486"><td class="num" id="LN486">486</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="487"><td class="num" id="LN487">487</td><td class="line">profile_combo_box_refill (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="488"><td class="num" id="LN488">488</td><td class="line"> GtkWidget *widget)</td></tr>
+<tr class="codeline" data-linenumber="489"><td class="num" id="LN489">489</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="490"><td class="num" id="LN490">490</td><td class="line"> GtkComboBox *combo = <span class='macro'>GTK_COMBO_BOX (widget)<span class='macro_popup'>((((GtkComboBox*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((widget)), ((gtk_combo_box_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="491"><td class="num" id="LN491">491</td><td class="line"> GtkTreeIter iter;</td></tr>
+<tr class="codeline" data-linenumber="492"><td class="num" id="LN492">492</td><td class="line"> gboolean iter_set;</td></tr>
+<tr class="codeline" data-linenumber="493"><td class="num" id="LN493">493</td><td class="line"> TerminalProfile *selected_profile;</td></tr>
+<tr class="codeline" data-linenumber="494"><td class="num" id="LN494">494</td><td class="line"> GtkTreeModel *model;</td></tr>
+<tr class="codeline" data-linenumber="495"><td class="num" id="LN495">495</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="496"><td class="num" id="LN496">496</td><td class="line"> selected_profile = profile_combo_box_get_selected (widget);</td></tr>
+<tr class="codeline" data-linenumber="497"><td class="num" id="LN497">497</td><td class="line"> <span class='keyword'>if</span> (!selected_profile)</td></tr>
+<tr class="codeline" data-linenumber="498"><td class="num" id="LN498">498</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="499"><td class="num" id="LN499">499</td><td class="line"> selected_profile = terminal_app_get_default_profile (app);</td></tr>
+<tr class="codeline" data-linenumber="500"><td class="num" id="LN500">500</td><td class="line"> <span class='keyword'>if</span> (selected_profile)</td></tr>
+<tr class="codeline" data-linenumber="501"><td class="num" id="LN501">501</td><td class="line"> <span class='macro'>g_object_ref (selected_profile)<span class='macro_popup'>((__typeof__ (selected_profile)) (g_object_ref) (selected_profile<br>))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="502"><td class="num" id="LN502">502</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="503"><td class="num" id="LN503">503</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="504"><td class="num" id="LN504">504</td><td class="line"> model = terminal_app_get_profile_liststore (app,</td></tr>
+<tr class="codeline" data-linenumber="505"><td class="num" id="LN505">505</td><td class="line"> selected_profile,</td></tr>
+<tr class="codeline" data-linenumber="506"><td class="num" id="LN506">506</td><td class="line"> &amp;iter,</td></tr>
+<tr class="codeline" data-linenumber="507"><td class="num" id="LN507">507</td><td class="line"> &amp;iter_set);</td></tr>
+<tr class="codeline" data-linenumber="508"><td class="num" id="LN508">508</td><td class="line"> gtk_combo_box_set_model (combo, model);</td></tr>
+<tr class="codeline" data-linenumber="509"><td class="num" id="LN509">509</td><td class="line"> g_object_unref (model);</td></tr>
+<tr class="codeline" data-linenumber="510"><td class="num" id="LN510">510</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="511"><td class="num" id="LN511">511</td><td class="line"> <span class='keyword'>if</span> (iter_set)</td></tr>
+<tr class="codeline" data-linenumber="512"><td class="num" id="LN512">512</td><td class="line"> gtk_combo_box_set_active_iter (combo, &amp;iter);</td></tr>
+<tr class="codeline" data-linenumber="513"><td class="num" id="LN513">513</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="514"><td class="num" id="LN514">514</td><td class="line"> <span class='keyword'>if</span> (selected_profile)</td></tr>
+<tr class="codeline" data-linenumber="515"><td class="num" id="LN515">515</td><td class="line"> g_object_unref (selected_profile);</td></tr>
+<tr class="codeline" data-linenumber="516"><td class="num" id="LN516">516</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="517"><td class="num" id="LN517">517</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="518"><td class="num" id="LN518">518</td><td class="line"><span class='keyword'>static</span> GtkWidget*</td></tr>
+<tr class="codeline" data-linenumber="519"><td class="num" id="LN519">519</td><td class="line">profile_combo_box_new (TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="520"><td class="num" id="LN520">520</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="521"><td class="num" id="LN521">521</td><td class="line"> GtkWidget *combo;</td></tr>
+<tr class="codeline" data-linenumber="522"><td class="num" id="LN522">522</td><td class="line"> GtkCellRenderer *renderer;</td></tr>
+<tr class="codeline" data-linenumber="523"><td class="num" id="LN523">523</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="524"><td class="num" id="LN524">524</td><td class="line"> combo = gtk_combo_box_new ();</td></tr>
+<tr class="codeline" data-linenumber="525"><td class="num" id="LN525">525</td><td class="line"> terminal_util_set_atk_name_description (combo, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>_(<span class='string_literal'>"Click button to choose profile"</span>)<span class='macro_popup'>gettext ("Click button to choose profile")</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="526"><td class="num" id="LN526">526</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="527"><td class="num" id="LN527">527</td><td class="line"> renderer = gtk_cell_renderer_text_new ();</td></tr>
+<tr class="codeline" data-linenumber="528"><td class="num" id="LN528">528</td><td class="line"> gtk_cell_layout_pack_start (<span class='macro'>GTK_CELL_LAYOUT (combo)<span class='macro_popup'>((((GtkCellLayout*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((combo)), ((gtk_cell_layout_get_type ()))))))</span></span>, renderer, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="529"><td class="num" id="LN529">529</td><td class="line"> gtk_cell_layout_set_cell_data_func (<span class='macro'>GTK_CELL_LAYOUT (combo)<span class='macro_popup'>((((GtkCellLayout*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((combo)), ((gtk_cell_layout_get_type ()))))))</span></span>, renderer,</td></tr>
+<tr class="codeline" data-linenumber="530"><td class="num" id="LN530">530</td><td class="line"> (GtkCellLayoutDataFunc) terminal_app_profile_cell_data_func,</td></tr>
+<tr class="codeline" data-linenumber="531"><td class="num" id="LN531">531</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="532"><td class="num" id="LN532">532</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="533"><td class="num" id="LN533">533</td><td class="line"> profile_combo_box_refill (app, combo);</td></tr>
+<tr class="codeline" data-linenumber="534"><td class="num" id="LN534">534</td><td class="line"> <span class='macro'>g_signal_connect (app, <span class='string_literal'>"profile-list-changed"</span>,<span class='macro_popup'>g_signal_connect_data ((app), ("profile-list-changed"), (((GCallback<br>) (profile_combo_box_refill))), (combo), ((void*)0), (GConnectFlags<br>) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="535"><td class="num" id="LN535">535</td><td class="line"> <span class='macro'>G_CALLBACK (profile_combo_box_refill), combo)<span class='macro_popup'>g_signal_connect_data ((app), ("profile-list-changed"), (((GCallback<br>) (profile_combo_box_refill))), (combo), ((void*)0), (GConnectFlags<br>) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="536"><td class="num" id="LN536">536</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="537"><td class="num" id="LN537">537</td><td class="line"> gtk_widget_show (combo);</td></tr>
+<tr class="codeline" data-linenumber="538"><td class="num" id="LN538">538</td><td class="line"> <span class='keyword'>return</span> combo;</td></tr>
+<tr class="codeline" data-linenumber="539"><td class="num" id="LN539">539</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="540"><td class="num" id="LN540">540</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="541"><td class="num" id="LN541">541</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="542"><td class="num" id="LN542">542</td><td class="line">profile_combo_box_changed_cb (GtkWidget *widget,</td></tr>
+<tr class="codeline" data-linenumber="543"><td class="num" id="LN543">543</td><td class="line"> TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="544"><td class="num" id="LN544">544</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="545"><td class="num" id="LN545">545</td><td class="line"> TerminalProfile *profile;</td></tr>
+<tr class="codeline" data-linenumber="546"><td class="num" id="LN546">546</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="547"><td class="num" id="LN547">547</td><td class="line"> profile = profile_combo_box_get_selected (widget);</td></tr>
+<tr class="codeline" data-linenumber="548"><td class="num" id="LN548">548</td><td class="line"> <span class='keyword'>if</span> (!profile)</td></tr>
+<tr class="codeline" data-linenumber="549"><td class="num" id="LN549">549</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="550"><td class="num" id="LN550">550</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="551"><td class="num" id="LN551">551</td><td class="line"> g_settings_set_string (settings_global, <span class='macro'>DEFAULT_PROFILE_KEY<span class='macro_popup'>"default-profile"</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="552"><td class="num" id="LN552">552</td><td class="line"> terminal_profile_get_property_string (profile, <span class='macro'>TERMINAL_PROFILE_NAME<span class='macro_popup'>"name"</span></span>));</td></tr>
+<tr class="codeline" data-linenumber="553"><td class="num" id="LN553">553</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="554"><td class="num" id="LN554">554</td><td class="line"> <span class='comment'>/* Even though the GSettings change notification does this, it happens too late.</span></td></tr>
+<tr class="codeline" data-linenumber="555"><td class="num" id="LN555">555</td><td class="line"> <span class='comment'>* In some cases, the default profile changes twice in quick succession,</span></td></tr>
+<tr class="codeline" data-linenumber="556"><td class="num" id="LN556">556</td><td class="line"> <span class='comment'>* and update_default_profile must be called in sync with those changes.</span></td></tr>
+<tr class="codeline" data-linenumber="557"><td class="num" id="LN557">557</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="558"><td class="num" id="LN558">558</td><td class="line"> app-&gt;default_profile = profile;</td></tr>
+<tr class="codeline" data-linenumber="559"><td class="num" id="LN559">559</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="560"><td class="num" id="LN560">560</td><td class="line"> g_object_notify (<span class='macro'>G_OBJECT (app)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, <span class='macro'>TERMINAL_APP_DEFAULT_PROFILE<span class='macro_popup'>"default-profile"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="561"><td class="num" id="LN561">561</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="562"><td class="num" id="LN562">562</td><td class="line"> g_object_unref (profile);</td></tr>
+<tr class="codeline" data-linenumber="563"><td class="num" id="LN563">563</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="564"><td class="num" id="LN564">564</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="565"><td class="num" id="LN565">565</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="566"><td class="num" id="LN566">566</td><td class="line">profile_list_treeview_refill (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="567"><td class="num" id="LN567">567</td><td class="line"> GtkWidget *widget)</td></tr>
+<tr class="codeline" data-linenumber="568"><td class="num" id="LN568">568</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="569"><td class="num" id="LN569">569</td><td class="line"> GtkTreeView *tree_view = <span class='macro'>GTK_TREE_VIEW (widget)<span class='macro_popup'>((((GtkTreeView*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((widget)), ((gtk_tree_view_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="570"><td class="num" id="LN570">570</td><td class="line"> GtkTreeIter iter;</td></tr>
+<tr class="codeline" data-linenumber="571"><td class="num" id="LN571">571</td><td class="line"> gboolean iter_set;</td></tr>
+<tr class="codeline" data-linenumber="572"><td class="num" id="LN572">572</td><td class="line"> GtkTreeSelection *selection;</td></tr>
+<tr class="codeline" data-linenumber="573"><td class="num" id="LN573">573</td><td class="line"> GtkTreeModel *model;</td></tr>
+<tr class="codeline" data-linenumber="574"><td class="num" id="LN574">574</td><td class="line"> TerminalProfile *selected_profile = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="575"><td class="num" id="LN575">575</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="576"><td class="num" id="LN576">576</td><td class="line"> model = gtk_tree_view_get_model (tree_view);</td></tr>
+<tr class="codeline" data-linenumber="577"><td class="num" id="LN577">577</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="578"><td class="num" id="LN578">578</td><td class="line"> selection = gtk_tree_view_get_selection (tree_view);</td></tr>
+<tr class="codeline" data-linenumber="579"><td class="num" id="LN579">579</td><td class="line"> <span class='keyword'>if</span> (gtk_tree_selection_get_selected (selection, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, &amp;iter))</td></tr>
+<tr class="codeline" data-linenumber="580"><td class="num" id="LN580">580</td><td class="line"> gtk_tree_model_get (model, &amp;iter, (<span class='keyword'>int</span>) COL_PROFILE, &amp;selected_profile, (<span class='keyword'>int</span>) -1);</td></tr>
+<tr class="codeline" data-linenumber="581"><td class="num" id="LN581">581</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="582"><td class="num" id="LN582">582</td><td class="line"> model = terminal_app_get_profile_liststore (terminal_app_get (),</td></tr>
+<tr class="codeline" data-linenumber="583"><td class="num" id="LN583">583</td><td class="line"> selected_profile,</td></tr>
+<tr class="codeline" data-linenumber="584"><td class="num" id="LN584">584</td><td class="line"> &amp;iter,</td></tr>
+<tr class="codeline" data-linenumber="585"><td class="num" id="LN585">585</td><td class="line"> &amp;iter_set);</td></tr>
+<tr class="codeline" data-linenumber="586"><td class="num" id="LN586">586</td><td class="line"> gtk_tree_view_set_model (tree_view, model);</td></tr>
+<tr class="codeline" data-linenumber="587"><td class="num" id="LN587">587</td><td class="line"> g_object_unref (model);</td></tr>
+<tr class="codeline" data-linenumber="588"><td class="num" id="LN588">588</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="589"><td class="num" id="LN589">589</td><td class="line"> <span class='keyword'>if</span> (!iter_set)</td></tr>
+<tr class="codeline" data-linenumber="590"><td class="num" id="LN590">590</td><td class="line"> iter_set = gtk_tree_model_get_iter_first (model, &amp;iter);</td></tr>
+<tr class="codeline" data-linenumber="591"><td class="num" id="LN591">591</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="592"><td class="num" id="LN592">592</td><td class="line"> <span class='keyword'>if</span> (iter_set)</td></tr>
+<tr class="codeline" data-linenumber="593"><td class="num" id="LN593">593</td><td class="line"> gtk_tree_selection_select_iter (selection, &amp;iter);</td></tr>
+<tr class="codeline" data-linenumber="594"><td class="num" id="LN594">594</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="595"><td class="num" id="LN595">595</td><td class="line"> <span class='keyword'>if</span> (selected_profile)</td></tr>
+<tr class="codeline" data-linenumber="596"><td class="num" id="LN596">596</td><td class="line"> g_object_unref (selected_profile);</td></tr>
+<tr class="codeline" data-linenumber="597"><td class="num" id="LN597">597</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="598"><td class="num" id="LN598">598</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="599"><td class="num" id="LN599">599</td><td class="line"><span class='keyword'>static</span> GtkWidget*</td></tr>
+<tr class="codeline" data-linenumber="600"><td class="num" id="LN600">600</td><td class="line">profile_list_treeview_create (TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="601"><td class="num" id="LN601">601</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="602"><td class="num" id="LN602">602</td><td class="line"> GtkWidget *tree_view;</td></tr>
+<tr class="codeline" data-linenumber="603"><td class="num" id="LN603">603</td><td class="line"> GtkTreeSelection *selection;</td></tr>
+<tr class="codeline" data-linenumber="604"><td class="num" id="LN604">604</td><td class="line"> GtkCellRenderer *renderer;</td></tr>
+<tr class="codeline" data-linenumber="605"><td class="num" id="LN605">605</td><td class="line"> GtkTreeViewColumn *column;</td></tr>
+<tr class="codeline" data-linenumber="606"><td class="num" id="LN606">606</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="607"><td class="num" id="LN607">607</td><td class="line"> tree_view = gtk_tree_view_new ();</td></tr>
+<tr class="codeline" data-linenumber="608"><td class="num" id="LN608">608</td><td class="line"> terminal_util_set_atk_name_description (tree_view, <span class='macro'>_(<span class='string_literal'>"Profile list"</span>)<span class='macro_popup'>gettext ("Profile list")</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="609"><td class="num" id="LN609">609</td><td class="line"> gtk_tree_view_set_headers_visible (<span class='macro'>GTK_TREE_VIEW (tree_view)<span class='macro_popup'>((((GtkTreeView*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((tree_view)), ((gtk_tree_view_get_type ()))))))</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="610"><td class="num" id="LN610">610</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="611"><td class="num" id="LN611">611</td><td class="line"> selection = gtk_tree_view_get_selection (<span class='macro'>GTK_TREE_VIEW (tree_view)<span class='macro_popup'>((((GtkTreeView*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((tree_view)), ((gtk_tree_view_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="612"><td class="num" id="LN612">612</td><td class="line"> gtk_tree_selection_set_mode (<span class='macro'>GTK_TREE_SELECTION (selection)<span class='macro_popup'>((((GtkTreeSelection*) (void *) g_type_check_instance_cast ((<br>GTypeInstance*) ((selection)), ((gtk_tree_selection_get_type (<br>)))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="613"><td class="num" id="LN613">613</td><td class="line"> GTK_SELECTION_BROWSE);</td></tr>
+<tr class="codeline" data-linenumber="614"><td class="num" id="LN614">614</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="615"><td class="num" id="LN615">615</td><td class="line"> column = gtk_tree_view_column_new ();</td></tr>
+<tr class="codeline" data-linenumber="616"><td class="num" id="LN616">616</td><td class="line"> renderer = gtk_cell_renderer_text_new ();</td></tr>
+<tr class="codeline" data-linenumber="617"><td class="num" id="LN617">617</td><td class="line"> gtk_cell_layout_pack_start (<span class='macro'>GTK_CELL_LAYOUT (column)<span class='macro_popup'>((((GtkCellLayout*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((column)), ((gtk_cell_layout_get_type ()))))))</span></span>, renderer, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="618"><td class="num" id="LN618">618</td><td class="line"> gtk_cell_layout_set_cell_data_func (<span class='macro'>GTK_CELL_LAYOUT (column)<span class='macro_popup'>((((GtkCellLayout*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((column)), ((gtk_cell_layout_get_type ()))))))</span></span>, renderer,</td></tr>
+<tr class="codeline" data-linenumber="619"><td class="num" id="LN619">619</td><td class="line"> (GtkCellLayoutDataFunc) terminal_app_profile_cell_data_func,</td></tr>
+<tr class="codeline" data-linenumber="620"><td class="num" id="LN620">620</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="621"><td class="num" id="LN621">621</td><td class="line"> gtk_tree_view_append_column (<span class='macro'>GTK_TREE_VIEW (tree_view)<span class='macro_popup'>((((GtkTreeView*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((tree_view)), ((gtk_tree_view_get_type ()))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="622"><td class="num" id="LN622">622</td><td class="line"> <span class='macro'>GTK_TREE_VIEW_COLUMN (column)<span class='macro_popup'>((((GtkTreeViewColumn*) (void *) g_type_check_instance_cast (<br>(GTypeInstance*) ((column)), ((gtk_tree_view_column_get_type (<br>)))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="623"><td class="num" id="LN623">623</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="624"><td class="num" id="LN624">624</td><td class="line"> <span class='keyword'>return</span> tree_view;</td></tr>
+<tr class="codeline" data-linenumber="625"><td class="num" id="LN625">625</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="626"><td class="num" id="LN626">626</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="627"><td class="num" id="LN627">627</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="628"><td class="num" id="LN628">628</td><td class="line">profile_list_delete_confirm_response_cb (GtkWidget *dialog,</td></tr>
+<tr class="codeline" data-linenumber="629"><td class="num" id="LN629">629</td><td class="line"> <span class='keyword'>int</span> response)</td></tr>
+<tr class="codeline" data-linenumber="630"><td class="num" id="LN630">630</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="631"><td class="num" id="LN631">631</td><td class="line"> TerminalProfile *profile;</td></tr>
+<tr class="codeline" data-linenumber="632"><td class="num" id="LN632">632</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="633"><td class="num" id="LN633">633</td><td class="line"> profile = <span class='macro'>TERMINAL_PROFILE (g_object_get_data (G_OBJECT (dialog), <span class='string_literal'>"profile"</span>))<span class='macro_popup'>((((TerminalProfile*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((g_object_get_data (((((GObject*) (void *) g_type_check_instance_cast<br> ((GTypeInstance*) ((dialog)), (((GType) ((20) &lt;&lt; (2)))<br>))))), "profile"))), ((terminal_profile_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="634"><td class="num" id="LN634">634</td><td class="line"> <span class='macro'>g_assert (profile != NULL)<span class='macro_popup'>do { if (profile != ((void*)0)) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-app.c", 634, ((const char*) (__func__<br>)), "profile != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="635"><td class="num" id="LN635">635</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="636"><td class="num" id="LN636">636</td><td class="line"> <span class='keyword'>if</span> (response == GTK_RESPONSE_ACCEPT)</td></tr>
+<tr class="codeline" data-linenumber="637"><td class="num" id="LN637">637</td><td class="line"> terminal_app_delete_profile (profile);</td></tr>
+<tr class="codeline" data-linenumber="638"><td class="num" id="LN638">638</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="639"><td class="num" id="LN639">639</td><td class="line"> gtk_widget_destroy (dialog);</td></tr>
+<tr class="codeline" data-linenumber="640"><td class="num" id="LN640">640</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="641"><td class="num" id="LN641">641</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="642"><td class="num" id="LN642">642</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="643"><td class="num" id="LN643">643</td><td class="line">mate_dialog_add_button (GtkDialog *dialog,</td></tr>
+<tr class="codeline" data-linenumber="644"><td class="num" id="LN644">644</td><td class="line"> <span class='keyword'>const</span> gchar *button_text,</td></tr>
+<tr class="codeline" data-linenumber="645"><td class="num" id="LN645">645</td><td class="line"> <span class='keyword'>const</span> gchar *icon_name,</td></tr>
+<tr class="codeline" data-linenumber="646"><td class="num" id="LN646">646</td><td class="line"> gint response_id)</td></tr>
+<tr class="codeline" data-linenumber="647"><td class="num" id="LN647">647</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="648"><td class="num" id="LN648">648</td><td class="line"> GtkWidget *button;</td></tr>
+<tr class="codeline" data-linenumber="649"><td class="num" id="LN649">649</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="650"><td class="num" id="LN650">650</td><td class="line"> button = gtk_button_new_with_mnemonic (button_text);</td></tr>
+<tr class="codeline" data-linenumber="651"><td class="num" id="LN651">651</td><td class="line"> gtk_button_set_image (<span class='macro'>GTK_BUTTON (button)<span class='macro_popup'>((((GtkButton*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((button)), ((gtk_button_get_type ()))))))</span></span>, gtk_image_new_from_icon_name (icon_name, GTK_ICON_SIZE_BUTTON));</td></tr>
+<tr class="codeline" data-linenumber="652"><td class="num" id="LN652">652</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="653"><td class="num" id="LN653">653</td><td class="line"> gtk_button_set_use_underline (<span class='macro'>GTK_BUTTON (button)<span class='macro_popup'>((((GtkButton*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((button)), ((gtk_button_get_type ()))))))</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="654"><td class="num" id="LN654">654</td><td class="line"> gtk_style_context_add_class (gtk_widget_get_style_context (button), <span class='string_literal'>"text-button"</span>);</td></tr>
+<tr class="codeline" data-linenumber="655"><td class="num" id="LN655">655</td><td class="line"> gtk_widget_set_can_default (button, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="656"><td class="num" id="LN656">656</td><td class="line"> gtk_widget_show (button);</td></tr>
+<tr class="codeline" data-linenumber="657"><td class="num" id="LN657">657</td><td class="line"> gtk_dialog_add_action_widget (<span class='macro'>GTK_DIALOG (dialog)<span class='macro_popup'>((((GtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((dialog)), ((gtk_dialog_get_type ()))))))</span></span>, button, response_id);</td></tr>
+<tr class="codeline" data-linenumber="658"><td class="num" id="LN658">658</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="659"><td class="num" id="LN659">659</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="660"><td class="num" id="LN660">660</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="661"><td class="num" id="LN661">661</td><td class="line">profile_list_delete_button_clicked_cb (GtkWidget *button,</td></tr>
+<tr class="codeline" data-linenumber="662"><td class="num" id="LN662">662</td><td class="line"> GtkWidget *widget)</td></tr>
+<tr class="codeline" data-linenumber="663"><td class="num" id="LN663">663</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="664"><td class="num" id="LN664">664</td><td class="line"> GtkTreeView *tree_view = <span class='macro'>GTK_TREE_VIEW (widget)<span class='macro_popup'>((((GtkTreeView*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((widget)), ((gtk_tree_view_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="665"><td class="num" id="LN665">665</td><td class="line"> GtkTreeSelection *selection;</td></tr>
+<tr class="codeline" data-linenumber="666"><td class="num" id="LN666">666</td><td class="line"> GtkWidget *dialog;</td></tr>
+<tr class="codeline" data-linenumber="667"><td class="num" id="LN667">667</td><td class="line"> GtkTreeIter iter;</td></tr>
+<tr class="codeline" data-linenumber="668"><td class="num" id="LN668">668</td><td class="line"> GtkTreeModel *model;</td></tr>
+<tr class="codeline" data-linenumber="669"><td class="num" id="LN669">669</td><td class="line"> TerminalProfile *selected_profile;</td></tr>
+<tr class="codeline" data-linenumber="670"><td class="num" id="LN670">670</td><td class="line"> GtkWidget *transient_parent;</td></tr>
+<tr class="codeline" data-linenumber="671"><td class="num" id="LN671">671</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="672"><td class="num" id="LN672">672</td><td class="line"> model = gtk_tree_view_get_model (tree_view);</td></tr>
+<tr class="codeline" data-linenumber="673"><td class="num" id="LN673">673</td><td class="line"> selection = gtk_tree_view_get_selection (tree_view);</td></tr>
+<tr class="codeline" data-linenumber="674"><td class="num" id="LN674">674</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="675"><td class="num" id="LN675">675</td><td class="line"> <span class='keyword'>if</span> (!gtk_tree_selection_get_selected (selection, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, &amp;iter))</td></tr>
+<tr class="codeline" data-linenumber="676"><td class="num" id="LN676">676</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="677"><td class="num" id="LN677">677</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="678"><td class="num" id="LN678">678</td><td class="line"> gtk_tree_model_get (model, &amp;iter, (<span class='keyword'>int</span>) COL_PROFILE, &amp;selected_profile, (<span class='keyword'>int</span>) -1);</td></tr>
+<tr class="codeline" data-linenumber="679"><td class="num" id="LN679">679</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="680"><td class="num" id="LN680">680</td><td class="line"> transient_parent = gtk_widget_get_toplevel (widget);</td></tr>
+<tr class="codeline" data-linenumber="681"><td class="num" id="LN681">681</td><td class="line"> dialog = gtk_message_dialog_new (<span class='macro'>GTK_WINDOW (transient_parent)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((transient_parent)), ((gtk_window_get_type ()))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="682"><td class="num" id="LN682">682</td><td class="line"> GTK_DIALOG_DESTROY_WITH_PARENT,</td></tr>
+<tr class="codeline" data-linenumber="683"><td class="num" id="LN683">683</td><td class="line"> GTK_MESSAGE_QUESTION,</td></tr>
+<tr class="codeline" data-linenumber="684"><td class="num" id="LN684">684</td><td class="line"> GTK_BUTTONS_NONE,</td></tr>
+<tr class="codeline" data-linenumber="685"><td class="num" id="LN685">685</td><td class="line"> <span class='macro'>_(<span class='string_literal'>"Delete profile “%s”?"</span>)<span class='macro_popup'>gettext ("Delete profile “%s”?")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="686"><td class="num" id="LN686">686</td><td class="line"> terminal_profile_get_property_string (selected_profile, <span class='macro'>TERMINAL_PROFILE_VISIBLE_NAME<span class='macro_popup'>"visible-name"</span></span>));</td></tr>
+<tr class="codeline" data-linenumber="687"><td class="num" id="LN687">687</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="688"><td class="num" id="LN688">688</td><td class="line"> mate_dialog_add_button (<span class='macro'>GTK_DIALOG (dialog)<span class='macro_popup'>((((GtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((dialog)), ((gtk_dialog_get_type ()))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="689"><td class="num" id="LN689">689</td><td class="line"> <span class='macro'>_(<span class='string_literal'>"_Cancel"</span>)<span class='macro_popup'>gettext ("_Cancel")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="690"><td class="num" id="LN690">690</td><td class="line"> <span class='string_literal'>"process-stop"</span>,</td></tr>
+<tr class="codeline" data-linenumber="691"><td class="num" id="LN691">691</td><td class="line"> GTK_RESPONSE_REJECT);</td></tr>
+<tr class="codeline" data-linenumber="692"><td class="num" id="LN692">692</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="693"><td class="num" id="LN693">693</td><td class="line"> mate_dialog_add_button (<span class='macro'>GTK_DIALOG (dialog)<span class='macro_popup'>((((GtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((dialog)), ((gtk_dialog_get_type ()))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="694"><td class="num" id="LN694">694</td><td class="line"> <span class='macro'>_(<span class='string_literal'>"_Delete"</span>)<span class='macro_popup'>gettext ("_Delete")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="695"><td class="num" id="LN695">695</td><td class="line"> <span class='string_literal'>"edit-delete"</span>,</td></tr>
+<tr class="codeline" data-linenumber="696"><td class="num" id="LN696">696</td><td class="line"> GTK_RESPONSE_ACCEPT);</td></tr>
+<tr class="codeline" data-linenumber="697"><td class="num" id="LN697">697</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="698"><td class="num" id="LN698">698</td><td class="line"> gtk_dialog_set_default_response (<span class='macro'>GTK_DIALOG (dialog)<span class='macro_popup'>((((GtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((dialog)), ((gtk_dialog_get_type ()))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="699"><td class="num" id="LN699">699</td><td class="line"> GTK_RESPONSE_ACCEPT);</td></tr>
+<tr class="codeline" data-linenumber="700"><td class="num" id="LN700">700</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="701"><td class="num" id="LN701">701</td><td class="line"> gtk_window_set_title (<span class='macro'>GTK_WINDOW (dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((dialog)), ((gtk_window_get_type ()))))))</span></span>, <span class='macro'>_(<span class='string_literal'>"Delete Profile"</span>)<span class='macro_popup'>gettext ("Delete Profile")</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="702"><td class="num" id="LN702">702</td><td class="line"> gtk_window_set_resizable (<span class='macro'>GTK_WINDOW (dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((dialog)), ((gtk_window_get_type ()))))))</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="703"><td class="num" id="LN703">703</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="704"><td class="num" id="LN704">704</td><td class="line"> <span class='comment'>/* Transfer refcount of |selected_profile|, so no unref below */</span></td></tr>
+<tr class="codeline" data-linenumber="705"><td class="num" id="LN705">705</td><td class="line"> g_object_set_data_full (<span class='macro'>G_OBJECT (dialog)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((dialog)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, <span class='string_literal'>"profile"</span>, selected_profile, g_object_unref);</td></tr>
+<tr class="codeline" data-linenumber="706"><td class="num" id="LN706">706</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="707"><td class="num" id="LN707">707</td><td class="line"> <span class='macro'>g_signal_connect (dialog, <span class='string_literal'>"response"</span>,<span class='macro_popup'>g_signal_connect_data ((dialog), ("response"), (((GCallback) (<br>profile_list_delete_confirm_response_cb))), (((void*)0)), ((void<br>*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="708"><td class="num" id="LN708">708</td><td class="line"> <span class='macro'>G_CALLBACK (profile_list_delete_confirm_response_cb),<span class='macro_popup'>g_signal_connect_data ((dialog), ("response"), (((GCallback) (<br>profile_list_delete_confirm_response_cb))), (((void*)0)), ((void<br>*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="709"><td class="num" id="LN709">709</td><td class="line"> <span class='macro'>NULL)<span class='macro_popup'>g_signal_connect_data ((dialog), ("response"), (((GCallback) (<br>profile_list_delete_confirm_response_cb))), (((void*)0)), ((void<br>*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="710"><td class="num" id="LN710">710</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="711"><td class="num" id="LN711">711</td><td class="line"> gtk_window_present (<span class='macro'>GTK_WINDOW (dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((dialog)), ((gtk_window_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="712"><td class="num" id="LN712">712</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="713"><td class="num" id="LN713">713</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="714"><td class="num" id="LN714">714</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="715"><td class="num" id="LN715">715</td><td class="line">profile_list_new_button_clicked_cb (GtkWidget *button,</td></tr>
+<tr class="codeline" data-linenumber="716"><td class="num" id="LN716">716</td><td class="line"> gpointer data)</td></tr>
+<tr class="codeline" data-linenumber="717"><td class="num" id="LN717">717</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="718"><td class="num" id="LN718">718</td><td class="line"> TerminalApp *app;</td></tr>
+<tr class="codeline" data-linenumber="719"><td class="num" id="LN719">719</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="720"><td class="num" id="LN720">720</td><td class="line"> app = terminal_app_get ();</td></tr>
+<tr class="codeline" data-linenumber="721"><td class="num" id="LN721">721</td><td class="line"> terminal_app_new_profile (app, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>GTK_WINDOW (app-&gt;manage_profiles_dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;manage_profiles_dialog)), ((gtk_window_get_type (<br>)))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="722"><td class="num" id="LN722">722</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="723"><td class="num" id="LN723">723</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="724"><td class="num" id="LN724">724</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="725"><td class="num" id="LN725">725</td><td class="line">profile_list_edit_button_clicked_cb (GtkWidget *button,</td></tr>
+<tr class="codeline" data-linenumber="726"><td class="num" id="LN726">726</td><td class="line"> GtkWidget *widget)</td></tr>
+<tr class="codeline" data-linenumber="727"><td class="num" id="LN727">727</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="728"><td class="num" id="LN728">728</td><td class="line"> GtkTreeView *tree_view = <span class='macro'>GTK_TREE_VIEW (widget)<span class='macro_popup'>((((GtkTreeView*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((widget)), ((gtk_tree_view_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="729"><td class="num" id="LN729">729</td><td class="line"> GtkTreeSelection *selection;</td></tr>
+<tr class="codeline" data-linenumber="730"><td class="num" id="LN730">730</td><td class="line"> GtkTreeIter iter;</td></tr>
+<tr class="codeline" data-linenumber="731"><td class="num" id="LN731">731</td><td class="line"> GtkTreeModel *model;</td></tr>
+<tr class="codeline" data-linenumber="732"><td class="num" id="LN732">732</td><td class="line"> TerminalProfile *selected_profile;</td></tr>
+<tr class="codeline" data-linenumber="733"><td class="num" id="LN733">733</td><td class="line"> TerminalApp *app;</td></tr>
+<tr class="codeline" data-linenumber="734"><td class="num" id="LN734">734</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="735"><td class="num" id="LN735">735</td><td class="line"> app = terminal_app_get ();</td></tr>
+<tr class="codeline" data-linenumber="736"><td class="num" id="LN736">736</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="737"><td class="num" id="LN737">737</td><td class="line"> model = gtk_tree_view_get_model (tree_view);</td></tr>
+<tr class="codeline" data-linenumber="738"><td class="num" id="LN738">738</td><td class="line"> selection = gtk_tree_view_get_selection (tree_view);</td></tr>
+<tr class="codeline" data-linenumber="739"><td class="num" id="LN739">739</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="740"><td class="num" id="LN740">740</td><td class="line"> <span class='keyword'>if</span> (!gtk_tree_selection_get_selected (selection, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, &amp;iter))</td></tr>
+<tr class="codeline" data-linenumber="741"><td class="num" id="LN741">741</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="742"><td class="num" id="LN742">742</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="743"><td class="num" id="LN743">743</td><td class="line"> gtk_tree_model_get (model, &amp;iter, (<span class='keyword'>int</span>) COL_PROFILE, &amp;selected_profile, (<span class='keyword'>int</span>) -1);</td></tr>
+<tr class="codeline" data-linenumber="744"><td class="num" id="LN744">744</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="745"><td class="num" id="LN745">745</td><td class="line"> terminal_app_edit_profile (app, selected_profile,</td></tr>
+<tr class="codeline" data-linenumber="746"><td class="num" id="LN746">746</td><td class="line"> <span class='macro'>GTK_WINDOW (app-&gt;manage_profiles_dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;manage_profiles_dialog)), ((gtk_window_get_type (<br>)))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="747"><td class="num" id="LN747">747</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="748"><td class="num" id="LN748">748</td><td class="line"> g_object_unref (selected_profile);</td></tr>
+<tr class="codeline" data-linenumber="749"><td class="num" id="LN749">749</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="750"><td class="num" id="LN750">750</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="751"><td class="num" id="LN751">751</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="752"><td class="num" id="LN752">752</td><td class="line">profile_list_row_activated_cb (GtkTreeView *tree_view,</td></tr>
+<tr class="codeline" data-linenumber="753"><td class="num" id="LN753">753</td><td class="line"> GtkTreePath *path,</td></tr>
+<tr class="codeline" data-linenumber="754"><td class="num" id="LN754">754</td><td class="line"> GtkTreeViewColumn *column,</td></tr>
+<tr class="codeline" data-linenumber="755"><td class="num" id="LN755">755</td><td class="line"> gpointer data)</td></tr>
+<tr class="codeline" data-linenumber="756"><td class="num" id="LN756">756</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="757"><td class="num" id="LN757">757</td><td class="line"> GtkTreeIter iter;</td></tr>
+<tr class="codeline" data-linenumber="758"><td class="num" id="LN758">758</td><td class="line"> GtkTreeModel *model;</td></tr>
+<tr class="codeline" data-linenumber="759"><td class="num" id="LN759">759</td><td class="line"> TerminalProfile *selected_profile;</td></tr>
+<tr class="codeline" data-linenumber="760"><td class="num" id="LN760">760</td><td class="line"> TerminalApp *app;</td></tr>
+<tr class="codeline" data-linenumber="761"><td class="num" id="LN761">761</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="762"><td class="num" id="LN762">762</td><td class="line"> app = terminal_app_get ();</td></tr>
+<tr class="codeline" data-linenumber="763"><td class="num" id="LN763">763</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="764"><td class="num" id="LN764">764</td><td class="line"> model = gtk_tree_view_get_model (tree_view);</td></tr>
+<tr class="codeline" data-linenumber="765"><td class="num" id="LN765">765</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="766"><td class="num" id="LN766">766</td><td class="line"> <span class='keyword'>if</span> (!gtk_tree_model_get_iter (model, &amp;iter, path))</td></tr>
+<tr class="codeline" data-linenumber="767"><td class="num" id="LN767">767</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="768"><td class="num" id="LN768">768</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="769"><td class="num" id="LN769">769</td><td class="line"> gtk_tree_model_get (model, &amp;iter, (<span class='keyword'>int</span>) COL_PROFILE, &amp;selected_profile, (<span class='keyword'>int</span>) -1);</td></tr>
+<tr class="codeline" data-linenumber="770"><td class="num" id="LN770">770</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="771"><td class="num" id="LN771">771</td><td class="line"> terminal_app_edit_profile (app, selected_profile,</td></tr>
+<tr class="codeline" data-linenumber="772"><td class="num" id="LN772">772</td><td class="line"> <span class='macro'>GTK_WINDOW (app-&gt;manage_profiles_dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;manage_profiles_dialog)), ((gtk_window_get_type (<br>)))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="773"><td class="num" id="LN773">773</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="774"><td class="num" id="LN774">774</td><td class="line"> g_object_unref (selected_profile);</td></tr>
+<tr class="codeline" data-linenumber="775"><td class="num" id="LN775">775</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="776"><td class="num" id="LN776">776</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="777"><td class="num" id="LN777">777</td><td class="line"><span class='keyword'>static</span> GList*</td></tr>
+<tr class="codeline" data-linenumber="778"><td class="num" id="LN778">778</td><td class="line">find_profile_link (GList *profiles,</td></tr>
+<tr class="codeline" data-linenumber="779"><td class="num" id="LN779">779</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *name)</td></tr>
+<tr class="codeline" data-linenumber="780"><td class="num" id="LN780">780</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="781"><td class="num" id="LN781">781</td><td class="line"> GList *l;</td></tr>
+<tr class="codeline" data-linenumber="782"><td class="num" id="LN782">782</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="783"><td class="num" id="LN783">783</td><td class="line"> <span class='keyword'>for</span> (l = profiles; l != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; l = l-&gt;next)</td></tr>
+<tr class="codeline" data-linenumber="784"><td class="num" id="LN784">784</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="785"><td class="num" id="LN785">785</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *profile_name;</td></tr>
+<tr class="codeline" data-linenumber="786"><td class="num" id="LN786">786</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="787"><td class="num" id="LN787">787</td><td class="line"> profile_name = terminal_profile_get_property_string (<span class='macro'>TERMINAL_PROFILE (l-&gt;data)<span class='macro_popup'>((((TerminalProfile*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((l-&gt;data)), ((terminal_profile_get_type ()))))))</span></span>, <span class='macro'>TERMINAL_PROFILE_NAME<span class='macro_popup'>"name"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="788"><td class="num" id="LN788">788</td><td class="line"> <span class='keyword'>if</span> (profile_name &amp;&amp; strcmp (profile_name, name) == 0)</td></tr>
+<tr class="codeline" data-linenumber="789"><td class="num" id="LN789">789</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="790"><td class="num" id="LN790">790</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="791"><td class="num" id="LN791">791</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="792"><td class="num" id="LN792">792</td><td class="line"> <span class='keyword'>return</span> l;</td></tr>
+<tr class="codeline" data-linenumber="793"><td class="num" id="LN793">793</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="794"><td class="num" id="LN794">794</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="795"><td class="num" id="LN795">795</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="796"><td class="num" id="LN796">796</td><td class="line">terminal_app_profile_list_notify_cb (GSettings *settings,</td></tr>
+<tr class="codeline" data-linenumber="797"><td class="num" id="LN797">797</td><td class="line"> <span class='keyword'>const</span> gchar *key,</td></tr>
+<tr class="codeline" data-linenumber="798"><td class="num" id="LN798">798</td><td class="line"> gpointer user_data)</td></tr>
+<tr class="codeline" data-linenumber="799"><td class="num" id="LN799">799</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="800"><td class="num" id="LN800">800</td><td class="line"> TerminalApp *app = <span class='macro'>TERMINAL_APP (user_data)<span class='macro_popup'>((((TerminalApp*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((user_data)), ((terminal_app_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="801"><td class="num" id="LN801">801</td><td class="line"> GObject *object = <span class='macro'>G_OBJECT (app)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="802"><td class="num" id="LN802">802</td><td class="line"> GVariant *val;</td></tr>
+<tr class="codeline" data-linenumber="803"><td class="num" id="LN803">803</td><td class="line"> <span class='keyword'>const</span> gchar **value_list;</td></tr>
+<tr class="codeline" data-linenumber="804"><td class="num" id="LN804">804</td><td class="line"> <span class='keyword'>int</span> i;</td></tr>
+<tr class="codeline" data-linenumber="805"><td class="num" id="LN805">805</td><td class="line"> GList *profiles_to_delete, *l;</td></tr>
+<tr class="codeline" data-linenumber="806"><td class="num" id="LN806">806</td><td class="line"> gboolean need_new_default;</td></tr>
+<tr class="codeline" data-linenumber="807"><td class="num" id="LN807">807</td><td class="line"> TerminalProfile *fallback;</td></tr>
+<tr class="codeline" data-linenumber="808"><td class="num" id="LN808">808</td><td class="line"> guint count;</td></tr>
+<tr class="codeline" data-linenumber="809"><td class="num" id="LN809">809</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="810"><td class="num" id="LN810">810</td><td class="line"> g_object_freeze_notify (object);</td></tr>
+<tr class="codeline" data-linenumber="811"><td class="num" id="LN811">811</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="812"><td class="num" id="LN812">812</td><td class="line"> profiles_to_delete = terminal_app_get_profile_list (app);</td></tr>
+<tr class="codeline" data-linenumber="813"><td class="num" id="LN813">813</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="814"><td class="num" id="LN814">814</td><td class="line"> val = g_settings_get_value (settings, key);</td></tr>
+<tr class="codeline" data-linenumber="815"><td class="num" id="LN815">815</td><td class="line"> <span class='keyword'>if</span> (val == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span> ||</td></tr>
+<tr class="codeline" data-linenumber="816"><td class="num" id="LN816">816</td><td class="line"> (!g_variant_is_of_type (val, <span class='macro'>G_VARIANT_TYPE_STRING_ARRAY<span class='macro_popup'>((const GVariantType *) "as")</span></span>) &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="817"><td class="num" id="LN817">817</td><td class="line"> !g_variant_is_of_type (val, <span class='macro'>G_VARIANT_TYPE_STRING<span class='macro_popup'>((const GVariantType *) "s")</span></span>)))</td></tr>
+<tr class="codeline" data-linenumber="818"><td class="num" id="LN818">818</td><td class="line"> <span class='keyword'>goto</span> ensure_one_profile;</td></tr>
+<tr class="codeline" data-linenumber="819"><td class="num" id="LN819">819</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="820"><td class="num" id="LN820">820</td><td class="line"> value_list = g_variant_get_strv (val, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="821"><td class="num" id="LN821">821</td><td class="line"> <span class='keyword'>if</span> (value_list == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="822"><td class="num" id="LN822">822</td><td class="line"> <span class='keyword'>goto</span> ensure_one_profile;</td></tr>
+<tr class="codeline" data-linenumber="823"><td class="num" id="LN823">823</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="824"><td class="num" id="LN824">824</td><td class="line"> <span class='comment'>/* Add any new ones */</span></td></tr>
+<tr class="codeline" data-linenumber="825"><td class="num" id="LN825">825</td><td class="line"> <span class='keyword'>for</span> (i = 0; value_list[i] != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; ++i)</td></tr>
+<tr class="codeline" data-linenumber="826"><td class="num" id="LN826">826</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="827"><td class="num" id="LN827">827</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *profile_name = value_list[i];</td></tr>
+<tr class="codeline" data-linenumber="828"><td class="num" id="LN828">828</td><td class="line"> GList *link;</td></tr>
+<tr class="codeline" data-linenumber="829"><td class="num" id="LN829">829</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="830"><td class="num" id="LN830">830</td><td class="line"> <span class='keyword'>if</span> (!profile_name)</td></tr>
+<tr class="codeline" data-linenumber="831"><td class="num" id="LN831">831</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="832"><td class="num" id="LN832">832</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="833"><td class="num" id="LN833">833</td><td class="line"> link = find_profile_link (profiles_to_delete, profile_name);</td></tr>
+<tr class="codeline" data-linenumber="834"><td class="num" id="LN834">834</td><td class="line"> <span class='keyword'>if</span> (link)</td></tr>
+<tr class="codeline" data-linenumber="835"><td class="num" id="LN835">835</td><td class="line"> <span class='comment'>/* make profiles_to_delete point to profiles we didn't find in the list */</span></td></tr>
+<tr class="codeline" data-linenumber="836"><td class="num" id="LN836">836</td><td class="line"> profiles_to_delete = g_list_delete_link (profiles_to_delete, link);</td></tr>
+<tr class="codeline" data-linenumber="837"><td class="num" id="LN837">837</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="838"><td class="num" id="LN838">838</td><td class="line"> terminal_app_create_profile (app, profile_name);</td></tr>
+<tr class="codeline" data-linenumber="839"><td class="num" id="LN839">839</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="840"><td class="num" id="LN840">840</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="841"><td class="num" id="LN841">841</td><td class="line"> g_free (value_list);</td></tr>
+<tr class="codeline" data-linenumber="842"><td class="num" id="LN842">842</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="843"><td class="num" id="LN843">843</td><td class="line">ensure_one_profile:</td></tr>
+<tr class="codeline" data-linenumber="844"><td class="num" id="LN844">844</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="845"><td class="num" id="LN845">845</td><td class="line"> <span class='keyword'>if</span> (val != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="846"><td class="num" id="LN846">846</td><td class="line"> g_variant_unref (val);</td></tr>
+<tr class="codeline" data-linenumber="847"><td class="num" id="LN847">847</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="848"><td class="num" id="LN848">848</td><td class="line"> fallback = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="849"><td class="num" id="LN849">849</td><td class="line"> count = g_hash_table_size (app-&gt;profiles);</td></tr>
+<tr class="codeline" data-linenumber="850"><td class="num" id="LN850">850</td><td class="line"> <span class='keyword'>if</span> (count == 0 || count &lt;= g_list_length (profiles_to_delete))</td></tr>
+<tr class="codeline" data-linenumber="851"><td class="num" id="LN851">851</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="852"><td class="num" id="LN852">852</td><td class="line"> <span class='comment'>/* We are going to run out, so create the fallback</span></td></tr>
+<tr class="codeline" data-linenumber="853"><td class="num" id="LN853">853</td><td class="line"> <span class='comment'>* to be sure we always have one. Must be done</span></td></tr>
+<tr class="codeline" data-linenumber="854"><td class="num" id="LN854">854</td><td class="line"> <span class='comment'>* here before we emit "forgotten" signals so that</span></td></tr>
+<tr class="codeline" data-linenumber="855"><td class="num" id="LN855">855</td><td class="line"> <span class='comment'>* screens have a profile to fall back to.</span></td></tr>
+<tr class="codeline" data-linenumber="856"><td class="num" id="LN856">856</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="857"><td class="num" id="LN857">857</td><td class="line"> <span class='comment'>* If the profile with the FALLBACK_ID already exists,</span></td></tr>
+<tr class="codeline" data-linenumber="858"><td class="num" id="LN858">858</td><td class="line"> <span class='comment'>* we aren't allowed to delete it, unless at least one</span></td></tr>
+<tr class="codeline" data-linenumber="859"><td class="num" id="LN859">859</td><td class="line"> <span class='comment'>* other profile will still exist. And if you delete</span></td></tr>
+<tr class="codeline" data-linenumber="860"><td class="num" id="LN860">860</td><td class="line"> <span class='comment'>* all profiles, the FALLBACK_ID profile returns as</span></td></tr>
+<tr class="codeline" data-linenumber="861"><td class="num" id="LN861">861</td><td class="line"> <span class='comment'>* the living dead.</span></td></tr>
+<tr class="codeline" data-linenumber="862"><td class="num" id="LN862">862</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="863"><td class="num" id="LN863">863</td><td class="line"> fallback = terminal_app_get_profile_by_name (app, <span class='macro'>FALLBACK_PROFILE_ID<span class='macro_popup'>"default"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="864"><td class="num" id="LN864">864</td><td class="line"> <span class='keyword'>if</span> (fallback == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="865"><td class="num" id="LN865">865</td><td class="line"> fallback = terminal_app_create_profile (app, <span class='macro'>FALLBACK_PROFILE_ID<span class='macro_popup'>"default"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="866"><td class="num" id="LN866">866</td><td class="line"> <span class='macro'>g_assert (fallback != NULL)<span class='macro_popup'>do { if (fallback != ((void*)0)) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-app.c", 866, ((const char*) (__func__<br>)), "fallback != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="867"><td class="num" id="LN867">867</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="868"><td class="num" id="LN868">868</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="869"><td class="num" id="LN869">869</td><td class="line"> <span class='comment'>/* Forget no-longer-existing profiles */</span></td></tr>
+<tr class="codeline" data-linenumber="870"><td class="num" id="LN870">870</td><td class="line"> need_new_default = <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="871"><td class="num" id="LN871">871</td><td class="line"> <span class='keyword'>for</span> (l = profiles_to_delete; l != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; l = l-&gt;next)</td></tr>
+<tr class="codeline" data-linenumber="872"><td class="num" id="LN872">872</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="873"><td class="num" id="LN873">873</td><td class="line"> TerminalProfile *profile = <span class='macro'>TERMINAL_PROFILE (l-&gt;data)<span class='macro_popup'>((((TerminalProfile*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((l-&gt;data)), ((terminal_profile_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="874"><td class="num" id="LN874">874</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *name;</td></tr>
+<tr class="codeline" data-linenumber="875"><td class="num" id="LN875">875</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="876"><td class="num" id="LN876">876</td><td class="line"> name = terminal_profile_get_property_string (profile, <span class='macro'>TERMINAL_PROFILE_NAME<span class='macro_popup'>"name"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="877"><td class="num" id="LN877">877</td><td class="line"> <span class='keyword'>if</span> (strcmp (name, <span class='macro'>FALLBACK_PROFILE_ID<span class='macro_popup'>"default"</span></span>) == 0)</td></tr>
+<tr class="codeline" data-linenumber="878"><td class="num" id="LN878">878</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="879"><td class="num" id="LN879">879</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="880"><td class="num" id="LN880">880</td><td class="line"> <span class='keyword'>if</span> (profile == app-&gt;default_profile)</td></tr>
+<tr class="codeline" data-linenumber="881"><td class="num" id="LN881">881</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="882"><td class="num" id="LN882">882</td><td class="line"> app-&gt;default_profile = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="883"><td class="num" id="LN883">883</td><td class="line"> need_new_default = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="884"><td class="num" id="LN884">884</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="885"><td class="num" id="LN885">885</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="886"><td class="num" id="LN886">886</td><td class="line"> _terminal_profile_forget (profile);</td></tr>
+<tr class="codeline" data-linenumber="887"><td class="num" id="LN887">887</td><td class="line"> g_hash_table_remove (app-&gt;profiles, name);</td></tr>
+<tr class="codeline" data-linenumber="888"><td class="num" id="LN888">888</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="889"><td class="num" id="LN889">889</td><td class="line"> <span class='comment'>/* |profile| possibly isn't dead yet since the profiles dialogue's tree model holds a ref too... */</span></td></tr>
+<tr class="codeline" data-linenumber="890"><td class="num" id="LN890">890</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="891"><td class="num" id="LN891">891</td><td class="line"> g_list_free (profiles_to_delete);</td></tr>
+<tr class="codeline" data-linenumber="892"><td class="num" id="LN892">892</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="893"><td class="num" id="LN893">893</td><td class="line"> <span class='keyword'>if</span> (need_new_default)</td></tr>
+<tr class="codeline" data-linenumber="894"><td class="num" id="LN894">894</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="895"><td class="num" id="LN895">895</td><td class="line"> TerminalProfile *new_default;</td></tr>
+<tr class="codeline" data-linenumber="896"><td class="num" id="LN896">896</td><td class="line"> TerminalProfile **new_default_ptr = &amp;new_default;</td></tr>
+<tr class="codeline" data-linenumber="897"><td class="num" id="LN897">897</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="898"><td class="num" id="LN898">898</td><td class="line"> new_default = terminal_app_get_profile_by_name (app, <span class='macro'>FALLBACK_PROFILE_ID<span class='macro_popup'>"default"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="899"><td class="num" id="LN899">899</td><td class="line"> <span class='keyword'>if</span> (new_default == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="900"><td class="num" id="LN900">900</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="901"><td class="num" id="LN901">901</td><td class="line"> GHashTableIter iter;</td></tr>
+<tr class="codeline" data-linenumber="902"><td class="num" id="LN902">902</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="903"><td class="num" id="LN903">903</td><td class="line"> g_hash_table_iter_init (&amp;iter, app-&gt;profiles);</td></tr>
+<tr class="codeline" data-linenumber="904"><td class="num" id="LN904">904</td><td class="line"> <span class='keyword'>if</span> (!g_hash_table_iter_next (&amp;iter, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, (gpointer *) new_default_ptr))</td></tr>
+<tr class="codeline" data-linenumber="905"><td class="num" id="LN905">905</td><td class="line"> <span class='comment'>/* shouldn't really happen ever, but just to be safe */</span></td></tr>
+<tr class="codeline" data-linenumber="906"><td class="num" id="LN906">906</td><td class="line"> new_default = terminal_app_create_profile (app, <span class='macro'>FALLBACK_PROFILE_ID<span class='macro_popup'>"default"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="907"><td class="num" id="LN907">907</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="908"><td class="num" id="LN908">908</td><td class="line"> <span class='macro'>g_assert (new_default != NULL)<span class='macro_popup'>do { if (new_default != ((void*)0)) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-app.c", 908, ((const char*) (__func__<br>)), "new_default != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="909"><td class="num" id="LN909">909</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="910"><td class="num" id="LN910">910</td><td class="line"> app-&gt;default_profile = new_default;</td></tr>
+<tr class="codeline" data-linenumber="911"><td class="num" id="LN911">911</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="912"><td class="num" id="LN912">912</td><td class="line"> g_object_notify (object, <span class='macro'>TERMINAL_APP_DEFAULT_PROFILE<span class='macro_popup'>"default-profile"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="913"><td class="num" id="LN913">913</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="914"><td class="num" id="LN914">914</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="915"><td class="num" id="LN915">915</td><td class="line"> <span class='macro'>g_assert (g_hash_table_size (app-&gt;profiles) &gt; 0)<span class='macro_popup'>do { if (g_hash_table_size (app-&gt;profiles) &gt; 0) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-app.c", 915, ((const char*) (__func__<br>)), "g_hash_table_size (app-&gt;profiles) &gt; 0"); } while (<br>0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="916"><td class="num" id="LN916">916</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="917"><td class="num" id="LN917">917</td><td class="line"> g_signal_emit (app, signals[PROFILE_LIST_CHANGED], 0);</td></tr>
+<tr class="codeline" data-linenumber="918"><td class="num" id="LN918">918</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="919"><td class="num" id="LN919">919</td><td class="line"> g_object_thaw_notify (object);</td></tr>
+<tr class="codeline" data-linenumber="920"><td class="num" id="LN920">920</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="921"><td class="num" id="LN921">921</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="922"><td class="num" id="LN922">922</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="923"><td class="num" id="LN923">923</td><td class="line">terminal_app_default_profile_notify_cb (GSettings *settings,</td></tr>
+<tr class="codeline" data-linenumber="924"><td class="num" id="LN924">924</td><td class="line"> <span class='keyword'>const</span> gchar *key,</td></tr>
+<tr class="codeline" data-linenumber="925"><td class="num" id="LN925">925</td><td class="line"> gpointer user_data)</td></tr>
+<tr class="codeline" data-linenumber="926"><td class="num" id="LN926">926</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="927"><td class="num" id="LN927">927</td><td class="line"> TerminalApp *app = <span class='macro'>TERMINAL_APP (user_data)<span class='macro_popup'>((((TerminalApp*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((user_data)), ((terminal_app_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="928"><td class="num" id="LN928">928</td><td class="line"> GVariant *val;</td></tr>
+<tr class="codeline" data-linenumber="929"><td class="num" id="LN929">929</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *name = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="930"><td class="num" id="LN930">930</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="931"><td class="num" id="LN931">931</td><td class="line"> app-&gt;default_profile_locked = !g_settings_is_writable (settings, key);</td></tr>
+<tr class="codeline" data-linenumber="932"><td class="num" id="LN932">932</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="933"><td class="num" id="LN933">933</td><td class="line"> val = g_settings_get_value (settings, key);</td></tr>
+<tr class="codeline" data-linenumber="934"><td class="num" id="LN934">934</td><td class="line"> <span class='keyword'>if</span> (val != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span> &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="935"><td class="num" id="LN935">935</td><td class="line"> g_variant_is_of_type (val, <span class='macro'>G_VARIANT_TYPE_STRING<span class='macro_popup'>((const GVariantType *) "s")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="936"><td class="num" id="LN936">936</td><td class="line"> name = g_variant_get_string (val, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="937"><td class="num" id="LN937">937</td><td class="line"> <span class='keyword'>if</span> (!name || !name[0])</td></tr>
+<tr class="codeline" data-linenumber="938"><td class="num" id="LN938">938</td><td class="line"> name = <span class='macro'>FALLBACK_PROFILE_ID<span class='macro_popup'>"default"</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="939"><td class="num" id="LN939">939</td><td class="line"> <span class='macro'>g_assert (name != NULL)<span class='macro_popup'>do { if (name != ((void*)0)) ; else g_assertion_message_expr (<br>((gchar*) 0), "terminal-app.c", 939, ((const char*) (__func__<br>)), "name != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="940"><td class="num" id="LN940">940</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="941"><td class="num" id="LN941">941</td><td class="line"> g_free (app-&gt;default_profile_id);</td></tr>
+<tr class="codeline" data-linenumber="942"><td class="num" id="LN942">942</td><td class="line"> app-&gt;default_profile_id = <span class='macro'>g_strdup (name)<span class='macro_popup'>g_strdup_inline (name)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="943"><td class="num" id="LN943">943</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="944"><td class="num" id="LN944">944</td><td class="line"> app-&gt;default_profile = terminal_app_get_profile_by_name (app, name);</td></tr>
+<tr class="codeline" data-linenumber="945"><td class="num" id="LN945">945</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="946"><td class="num" id="LN946">946</td><td class="line"> g_object_notify (<span class='macro'>G_OBJECT (app)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, <span class='macro'>TERMINAL_APP_DEFAULT_PROFILE<span class='macro_popup'>"default-profile"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="947"><td class="num" id="LN947">947</td><td class="line"> g_variant_unref (val);</td></tr>
+<tr class="codeline" data-linenumber="948"><td class="num" id="LN948">948</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="949"><td class="num" id="LN949">949</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="950"><td class="num" id="LN950">950</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>int</span></td></tr>
+<tr class="codeline" data-linenumber="951"><td class="num" id="LN951">951</td><td class="line">compare_encodings (TerminalEncoding *a,</td></tr>
+<tr class="codeline" data-linenumber="952"><td class="num" id="LN952">952</td><td class="line"> TerminalEncoding *b)</td></tr>
+<tr class="codeline" data-linenumber="953"><td class="num" id="LN953">953</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="954"><td class="num" id="LN954">954</td><td class="line"> <span class='keyword'>return</span> g_utf8_collate (a-&gt;name, b-&gt;name);</td></tr>
+<tr class="codeline" data-linenumber="955"><td class="num" id="LN955">955</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="956"><td class="num" id="LN956">956</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="957"><td class="num" id="LN957">957</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="958"><td class="num" id="LN958">958</td><td class="line">encoding_mark_active (gpointer key,</td></tr>
+<tr class="codeline" data-linenumber="959"><td class="num" id="LN959">959</td><td class="line"> gpointer value,</td></tr>
+<tr class="codeline" data-linenumber="960"><td class="num" id="LN960">960</td><td class="line"> gpointer data)</td></tr>
+<tr class="codeline" data-linenumber="961"><td class="num" id="LN961">961</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="962"><td class="num" id="LN962">962</td><td class="line"> TerminalEncoding *encoding = (TerminalEncoding *) value;</td></tr>
+<tr class="codeline" data-linenumber="963"><td class="num" id="LN963">963</td><td class="line"> guint active = <span class='macro'>GPOINTER_TO_UINT (data)<span class='macro_popup'>((guint) (gulong) (data))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="964"><td class="num" id="LN964">964</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="965"><td class="num" id="LN965">965</td><td class="line"> encoding-&gt;is_active = active;</td></tr>
+<tr class="codeline" data-linenumber="966"><td class="num" id="LN966">966</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="967"><td class="num" id="LN967">967</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="968"><td class="num" id="LN968">968</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="969"><td class="num" id="LN969">969</td><td class="line">terminal_app_encoding_list_notify_cb (GSettings *settings,</td></tr>
+<tr class="codeline" data-linenumber="970"><td class="num" id="LN970">970</td><td class="line"> <span class='keyword'>const</span> gchar *key,</td></tr>
+<tr class="codeline" data-linenumber="971"><td class="num" id="LN971">971</td><td class="line"> gpointer user_data)</td></tr>
+<tr class="codeline" data-linenumber="972"><td class="num" id="LN972">972</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="973"><td class="num" id="LN973">973</td><td class="line"> TerminalApp *app = <span class='macro'>TERMINAL_APP (user_data)<span class='macro_popup'>((((TerminalApp*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((user_data)), ((terminal_app_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="974"><td class="num" id="LN974">974</td><td class="line"> GVariant *val;</td></tr>
+<tr class="codeline" data-linenumber="975"><td class="num" id="LN975">975</td><td class="line"> <span class='keyword'>const</span> gchar **strings;</td></tr>
+<tr class="codeline" data-linenumber="976"><td class="num" id="LN976">976</td><td class="line"> <span class='keyword'>int</span> i;</td></tr>
+<tr class="codeline" data-linenumber="977"><td class="num" id="LN977">977</td><td class="line"> TerminalEncoding *encoding;</td></tr>
+<tr class="codeline" data-linenumber="978"><td class="num" id="LN978">978</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *charset;</td></tr>
+<tr class="codeline" data-linenumber="979"><td class="num" id="LN979">979</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="980"><td class="num" id="LN980">980</td><td class="line"> app-&gt;encodings_locked = !g_settings_is_writable (settings, key);</td></tr>
+<tr class="codeline" data-linenumber="981"><td class="num" id="LN981">981</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="982"><td class="num" id="LN982">982</td><td class="line"> <span class='comment'>/* Mark all as non-active, then re-enable the active ones */</span></td></tr>
+<tr class="codeline" data-linenumber="983"><td class="num" id="LN983">983</td><td class="line"> g_hash_table_foreach (app-&gt;encodings, (GHFunc) encoding_mark_active, <span class='macro'>GUINT_TO_POINTER (FALSE)<span class='macro_popup'>((gpointer) (gulong) ((0)))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="984"><td class="num" id="LN984">984</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="985"><td class="num" id="LN985">985</td><td class="line"> <span class='comment'>/* First add the locale's charset */</span></td></tr>
+<tr class="codeline" data-linenumber="986"><td class="num" id="LN986">986</td><td class="line"> encoding = g_hash_table_lookup (app-&gt;encodings, <span class='string_literal'>"current"</span>);</td></tr>
+<tr class="codeline" data-linenumber="987"><td class="num" id="LN987">987</td><td class="line"> <span class='macro'>g_assert (encoding)<span class='macro_popup'>do { if (encoding) ; else g_assertion_message_expr (((gchar*)<br> 0), "terminal-app.c", 987, ((const char*) (__func__)), "encoding"<br>); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="988"><td class="num" id="LN988">988</td><td class="line"> <span class='keyword'>if</span> (terminal_encoding_is_valid (encoding))</td></tr>
+<tr class="codeline" data-linenumber="989"><td class="num" id="LN989">989</td><td class="line"> encoding-&gt;is_active = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="990"><td class="num" id="LN990">990</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="991"><td class="num" id="LN991">991</td><td class="line"> <span class='comment'>/* Also always make UTF-8 available */</span></td></tr>
+<tr class="codeline" data-linenumber="992"><td class="num" id="LN992">992</td><td class="line"> encoding = g_hash_table_lookup (app-&gt;encodings, <span class='string_literal'>"UTF-8"</span>);</td></tr>
+<tr class="codeline" data-linenumber="993"><td class="num" id="LN993">993</td><td class="line"> <span class='macro'>g_assert (encoding)<span class='macro_popup'>do { if (encoding) ; else g_assertion_message_expr (((gchar*)<br> 0), "terminal-app.c", 993, ((const char*) (__func__)), "encoding"<br>); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="994"><td class="num" id="LN994">994</td><td class="line"> <span class='keyword'>if</span> (terminal_encoding_is_valid (encoding))</td></tr>
+<tr class="codeline" data-linenumber="995"><td class="num" id="LN995">995</td><td class="line"> encoding-&gt;is_active = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="996"><td class="num" id="LN996">996</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="997"><td class="num" id="LN997">997</td><td class="line"> val = g_settings_get_value (settings, key);</td></tr>
+<tr class="codeline" data-linenumber="998"><td class="num" id="LN998">998</td><td class="line"> <span class='keyword'>if</span> (val != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span> &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="999"><td class="num" id="LN999">999</td><td class="line"> g_variant_is_of_type (val, <span class="mrange"><span class="mrange"><span class='macro'>G_VARIANT_TYPE_STRING_ARRAY<span class='macro_popup'>((const GVariantType *) "as")</span></span></span></span>))</td></tr>
+<tr><td class="num"></td><td class="line"><div id="EndPath" class="msg msgEvent" style="margin-left:44ex; max-width:31em">Casting a non-structure type to a structure type and accessing a field can lead to memory access errors or data corruption</div></td></tr>
+<tr class="codeline" data-linenumber="1000"><td class="num" id="LN1000">1000</td><td class="line"> strings = g_variant_get_strv (val, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1001"><td class="num" id="LN1001">1001</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="1002"><td class="num" id="LN1002">1002</td><td class="line"> strings = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1003"><td class="num" id="LN1003">1003</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1004"><td class="num" id="LN1004">1004</td><td class="line"> <span class='keyword'>if</span> (strings != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1005"><td class="num" id="LN1005">1005</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1006"><td class="num" id="LN1006">1006</td><td class="line"> <span class='keyword'>for</span> (i = 0; strings[i] != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; ++i)</td></tr>
+<tr class="codeline" data-linenumber="1007"><td class="num" id="LN1007">1007</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1008"><td class="num" id="LN1008">1008</td><td class="line"> charset = strings[i];</td></tr>
+<tr class="codeline" data-linenumber="1009"><td class="num" id="LN1009">1009</td><td class="line"> <span class='keyword'>if</span> (!charset)</td></tr>
+<tr class="codeline" data-linenumber="1010"><td class="num" id="LN1010">1010</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="1011"><td class="num" id="LN1011">1011</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1012"><td class="num" id="LN1012">1012</td><td class="line"> encoding = terminal_app_ensure_encoding (app, charset);</td></tr>
+<tr class="codeline" data-linenumber="1013"><td class="num" id="LN1013">1013</td><td class="line"> <span class='keyword'>if</span> (!terminal_encoding_is_valid (encoding))</td></tr>
+<tr class="codeline" data-linenumber="1014"><td class="num" id="LN1014">1014</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="1015"><td class="num" id="LN1015">1015</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1016"><td class="num" id="LN1016">1016</td><td class="line"> encoding-&gt;is_active = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1017"><td class="num" id="LN1017">1017</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1018"><td class="num" id="LN1018">1018</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1019"><td class="num" id="LN1019">1019</td><td class="line"> g_free (strings);</td></tr>
+<tr class="codeline" data-linenumber="1020"><td class="num" id="LN1020">1020</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1021"><td class="num" id="LN1021">1021</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1022"><td class="num" id="LN1022">1022</td><td class="line"> g_signal_emit (app, signals[ENCODING_LIST_CHANGED], 0);</td></tr>
+<tr class="codeline" data-linenumber="1023"><td class="num" id="LN1023">1023</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1024"><td class="num" id="LN1024">1024</td><td class="line"> <span class='keyword'>if</span> (val != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1025"><td class="num" id="LN1025">1025</td><td class="line"> g_variant_unref (val);</td></tr>
+<tr class="codeline" data-linenumber="1026"><td class="num" id="LN1026">1026</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1027"><td class="num" id="LN1027">1027</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1028"><td class="num" id="LN1028">1028</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1029"><td class="num" id="LN1029">1029</td><td class="line">terminal_app_system_font_notify_cb (GSettings *settings,</td></tr>
+<tr class="codeline" data-linenumber="1030"><td class="num" id="LN1030">1030</td><td class="line"> <span class='keyword'>const</span> gchar *key,</td></tr>
+<tr class="codeline" data-linenumber="1031"><td class="num" id="LN1031">1031</td><td class="line"> gpointer user_data)</td></tr>
+<tr class="codeline" data-linenumber="1032"><td class="num" id="LN1032">1032</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1033"><td class="num" id="LN1033">1033</td><td class="line"> TerminalApp *app = <span class='macro'>TERMINAL_APP (user_data)<span class='macro_popup'>((((TerminalApp*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((user_data)), ((terminal_app_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1034"><td class="num" id="LN1034">1034</td><td class="line"> GVariant *val;</td></tr>
+<tr class="codeline" data-linenumber="1035"><td class="num" id="LN1035">1035</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *font = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1036"><td class="num" id="LN1036">1036</td><td class="line"> PangoFontDescription *font_desc;</td></tr>
+<tr class="codeline" data-linenumber="1037"><td class="num" id="LN1037">1037</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1038"><td class="num" id="LN1038">1038</td><td class="line"> <span class='keyword'>if</span> (strcmp (key, <span class='macro'>MONOSPACE_FONT_KEY<span class='macro_popup'>"monospace-font-name"</span></span>) != 0)</td></tr>
+<tr class="codeline" data-linenumber="1039"><td class="num" id="LN1039">1039</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1040"><td class="num" id="LN1040">1040</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1041"><td class="num" id="LN1041">1041</td><td class="line"> val = g_settings_get_value (settings, key);</td></tr>
+<tr class="codeline" data-linenumber="1042"><td class="num" id="LN1042">1042</td><td class="line"> <span class='keyword'>if</span> (val &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="1043"><td class="num" id="LN1043">1043</td><td class="line"> g_variant_is_of_type (val, <span class='macro'>G_VARIANT_TYPE_STRING<span class='macro_popup'>((const GVariantType *) "s")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="1044"><td class="num" id="LN1044">1044</td><td class="line"> font = g_variant_get_string (val, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1045"><td class="num" id="LN1045">1045</td><td class="line"> <span class='keyword'>if</span> (!font)</td></tr>
+<tr class="codeline" data-linenumber="1046"><td class="num" id="LN1046">1046</td><td class="line"> font = <span class='macro'>DEFAULT_MONOSPACE_FONT<span class='macro_popup'>("Monospace 10")</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1047"><td class="num" id="LN1047">1047</td><td class="line"> <span class='macro'>g_assert (font != NULL)<span class='macro_popup'>do { if (font != ((void*)0)) ; else g_assertion_message_expr (<br>((gchar*) 0), "terminal-app.c", 1047, ((const char*) (__func__<br>)), "font != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1048"><td class="num" id="LN1048">1048</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1049"><td class="num" id="LN1049">1049</td><td class="line"> <span class='keyword'>if</span> (font &amp;&amp; (strlen (font) == 0)) <span class='comment'>/* empty string */</span></td></tr>
+<tr class="codeline" data-linenumber="1050"><td class="num" id="LN1050">1050</td><td class="line"> font = <span class='macro'>DEFAULT_MONOSPACE_FONT<span class='macro_popup'>("Monospace 10")</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1051"><td class="num" id="LN1051">1051</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1052"><td class="num" id="LN1052">1052</td><td class="line"> font_desc = pango_font_description_from_string (font);</td></tr>
+<tr class="codeline" data-linenumber="1053"><td class="num" id="LN1053">1053</td><td class="line"> <span class='keyword'>if</span> (app-&gt;system_font_desc &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="1054"><td class="num" id="LN1054">1054</td><td class="line"> pango_font_description_equal (app-&gt;system_font_desc, font_desc))</td></tr>
+<tr class="codeline" data-linenumber="1055"><td class="num" id="LN1055">1055</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1056"><td class="num" id="LN1056">1056</td><td class="line"> pango_font_description_free (font_desc);</td></tr>
+<tr class="codeline" data-linenumber="1057"><td class="num" id="LN1057">1057</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1058"><td class="num" id="LN1058">1058</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1059"><td class="num" id="LN1059">1059</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1060"><td class="num" id="LN1060">1060</td><td class="line"> <span class='keyword'>if</span> (app-&gt;system_font_desc)</td></tr>
+<tr class="codeline" data-linenumber="1061"><td class="num" id="LN1061">1061</td><td class="line"> pango_font_description_free (app-&gt;system_font_desc);</td></tr>
+<tr class="codeline" data-linenumber="1062"><td class="num" id="LN1062">1062</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1063"><td class="num" id="LN1063">1063</td><td class="line"> app-&gt;system_font_desc = font_desc;</td></tr>
+<tr class="codeline" data-linenumber="1064"><td class="num" id="LN1064">1064</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1065"><td class="num" id="LN1065">1065</td><td class="line"> g_object_notify (<span class='macro'>G_OBJECT (app)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, <span class='macro'>TERMINAL_APP_SYSTEM_FONT<span class='macro_popup'>"system-font"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1066"><td class="num" id="LN1066">1066</td><td class="line"> g_variant_unref (val);</td></tr>
+<tr class="codeline" data-linenumber="1067"><td class="num" id="LN1067">1067</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1068"><td class="num" id="LN1068">1068</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1069"><td class="num" id="LN1069">1069</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1070"><td class="num" id="LN1070">1070</td><td class="line">terminal_app_enable_mnemonics_notify_cb (GSettings *settings,</td></tr>
+<tr class="codeline" data-linenumber="1071"><td class="num" id="LN1071">1071</td><td class="line"> <span class='keyword'>const</span> gchar *key,</td></tr>
+<tr class="codeline" data-linenumber="1072"><td class="num" id="LN1072">1072</td><td class="line"> gpointer user_data)</td></tr>
+<tr class="codeline" data-linenumber="1073"><td class="num" id="LN1073">1073</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1074"><td class="num" id="LN1074">1074</td><td class="line"> TerminalApp *app = <span class='macro'>TERMINAL_APP (user_data)<span class='macro_popup'>((((TerminalApp*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((user_data)), ((terminal_app_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1075"><td class="num" id="LN1075">1075</td><td class="line"> gboolean enable;</td></tr>
+<tr class="codeline" data-linenumber="1076"><td class="num" id="LN1076">1076</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1077"><td class="num" id="LN1077">1077</td><td class="line"> enable = g_settings_get_boolean (settings, key);</td></tr>
+<tr class="codeline" data-linenumber="1078"><td class="num" id="LN1078">1078</td><td class="line"> <span class='keyword'>if</span> (enable == app-&gt;enable_mnemonics)</td></tr>
+<tr class="codeline" data-linenumber="1079"><td class="num" id="LN1079">1079</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1080"><td class="num" id="LN1080">1080</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1081"><td class="num" id="LN1081">1081</td><td class="line"> app-&gt;enable_mnemonics = enable;</td></tr>
+<tr class="codeline" data-linenumber="1082"><td class="num" id="LN1082">1082</td><td class="line"> g_object_notify (<span class='macro'>G_OBJECT (app)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, <span class='macro'>TERMINAL_APP_ENABLE_MNEMONICS<span class='macro_popup'>"enable-mnemonics"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1083"><td class="num" id="LN1083">1083</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1084"><td class="num" id="LN1084">1084</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1085"><td class="num" id="LN1085">1085</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1086"><td class="num" id="LN1086">1086</td><td class="line">terminal_app_enable_menu_accels_notify_cb (GSettings *settings,</td></tr>
+<tr class="codeline" data-linenumber="1087"><td class="num" id="LN1087">1087</td><td class="line"> <span class='keyword'>const</span> gchar *key,</td></tr>
+<tr class="codeline" data-linenumber="1088"><td class="num" id="LN1088">1088</td><td class="line"> gpointer user_data)</td></tr>
+<tr class="codeline" data-linenumber="1089"><td class="num" id="LN1089">1089</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1090"><td class="num" id="LN1090">1090</td><td class="line"> TerminalApp *app = <span class='macro'>TERMINAL_APP (user_data)<span class='macro_popup'>((((TerminalApp*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((user_data)), ((terminal_app_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1091"><td class="num" id="LN1091">1091</td><td class="line"> gboolean enable;</td></tr>
+<tr class="codeline" data-linenumber="1092"><td class="num" id="LN1092">1092</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1093"><td class="num" id="LN1093">1093</td><td class="line"> enable = g_settings_get_boolean (settings, key);</td></tr>
+<tr class="codeline" data-linenumber="1094"><td class="num" id="LN1094">1094</td><td class="line"> <span class='keyword'>if</span> (enable == app-&gt;enable_menu_accels)</td></tr>
+<tr class="codeline" data-linenumber="1095"><td class="num" id="LN1095">1095</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1096"><td class="num" id="LN1096">1096</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1097"><td class="num" id="LN1097">1097</td><td class="line"> app-&gt;enable_menu_accels = enable;</td></tr>
+<tr class="codeline" data-linenumber="1098"><td class="num" id="LN1098">1098</td><td class="line"> g_object_notify (<span class='macro'>G_OBJECT (app)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, <span class='macro'>TERMINAL_APP_ENABLE_MENU_BAR_ACCEL<span class='macro_popup'>"enable-menu-accels"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1099"><td class="num" id="LN1099">1099</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1100"><td class="num" id="LN1100">1100</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1101"><td class="num" id="LN1101">1101</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1102"><td class="num" id="LN1102">1102</td><td class="line">new_profile_response_cb (GtkWidget *new_profile_dialog,</td></tr>
+<tr class="codeline" data-linenumber="1103"><td class="num" id="LN1103">1103</td><td class="line"> <span class='keyword'>int</span> response_id,</td></tr>
+<tr class="codeline" data-linenumber="1104"><td class="num" id="LN1104">1104</td><td class="line"> TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="1105"><td class="num" id="LN1105">1105</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1106"><td class="num" id="LN1106">1106</td><td class="line"> <span class='keyword'>if</span> (response_id == GTK_RESPONSE_ACCEPT)</td></tr>
+<tr class="codeline" data-linenumber="1107"><td class="num" id="LN1107">1107</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1108"><td class="num" id="LN1108">1108</td><td class="line"> GtkWidget *name_entry;</td></tr>
+<tr class="codeline" data-linenumber="1109"><td class="num" id="LN1109">1109</td><td class="line"> <span class='keyword'>char</span> *name;</td></tr>
+<tr class="codeline" data-linenumber="1110"><td class="num" id="LN1110">1110</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *new_profile_name;</td></tr>
+<tr class="codeline" data-linenumber="1111"><td class="num" id="LN1111">1111</td><td class="line"> GtkWidget *base_option_menu;</td></tr>
+<tr class="codeline" data-linenumber="1112"><td class="num" id="LN1112">1112</td><td class="line"> TerminalProfile *base_profile = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1113"><td class="num" id="LN1113">1113</td><td class="line"> TerminalProfile *new_profile;</td></tr>
+<tr class="codeline" data-linenumber="1114"><td class="num" id="LN1114">1114</td><td class="line"> GList *profiles;</td></tr>
+<tr class="codeline" data-linenumber="1115"><td class="num" id="LN1115">1115</td><td class="line"> GList *tmp;</td></tr>
+<tr class="codeline" data-linenumber="1116"><td class="num" id="LN1116">1116</td><td class="line"> GtkWindow *transient_parent;</td></tr>
+<tr class="codeline" data-linenumber="1117"><td class="num" id="LN1117">1117</td><td class="line"> GtkWidget *confirm_dialog;</td></tr>
+<tr class="codeline" data-linenumber="1118"><td class="num" id="LN1118">1118</td><td class="line"> gint retval;</td></tr>
+<tr class="codeline" data-linenumber="1119"><td class="num" id="LN1119">1119</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1120"><td class="num" id="LN1120">1120</td><td class="line"> base_option_menu = g_object_get_data (<span class='macro'>G_OBJECT (new_profile_dialog)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((new_profile_dialog)), (((GType) ((20) &lt;&lt; (2)))))))<br>)</span></span>, <span class='string_literal'>"base_option_menu"</span>);</td></tr>
+<tr class="codeline" data-linenumber="1121"><td class="num" id="LN1121">1121</td><td class="line"> base_profile = profile_combo_box_get_selected (base_option_menu);</td></tr>
+<tr class="codeline" data-linenumber="1122"><td class="num" id="LN1122">1122</td><td class="line"> <span class='keyword'>if</span> (!base_profile)</td></tr>
+<tr class="codeline" data-linenumber="1123"><td class="num" id="LN1123">1123</td><td class="line"> base_profile = terminal_app_get_default_profile (app);</td></tr>
+<tr class="codeline" data-linenumber="1124"><td class="num" id="LN1124">1124</td><td class="line"> <span class='keyword'>if</span> (!base_profile)</td></tr>
+<tr class="codeline" data-linenumber="1125"><td class="num" id="LN1125">1125</td><td class="line"> <span class='keyword'>return</span>; <span class='comment'>/* shouldn't happen ever though */</span></td></tr>
+<tr class="codeline" data-linenumber="1126"><td class="num" id="LN1126">1126</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1127"><td class="num" id="LN1127">1127</td><td class="line"> name_entry = g_object_get_data (<span class='macro'>G_OBJECT (new_profile_dialog)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((new_profile_dialog)), (((GType) ((20) &lt;&lt; (2)))))))<br>)</span></span>, <span class='string_literal'>"name_entry"</span>);</td></tr>
+<tr class="codeline" data-linenumber="1128"><td class="num" id="LN1128">1128</td><td class="line"> name = gtk_editable_get_chars (<span class='macro'>GTK_EDITABLE (name_entry)<span class='macro_popup'>((((GtkEditable*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((name_entry)), ((gtk_editable_get_type ()))))))</span></span>, 0, -1);</td></tr>
+<tr class="codeline" data-linenumber="1129"><td class="num" id="LN1129">1129</td><td class="line"> <span class='macro'>g_strstrip (name)<span class='macro_popup'>g_strchomp (g_strchug (name))</span></span>; <span class='comment'>/* name will be non empty after stripping */</span></td></tr>
+<tr class="codeline" data-linenumber="1130"><td class="num" id="LN1130">1130</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1131"><td class="num" id="LN1131">1131</td><td class="line"> profiles = terminal_app_get_profile_list (app);</td></tr>
+<tr class="codeline" data-linenumber="1132"><td class="num" id="LN1132">1132</td><td class="line"> <span class='keyword'>for</span> (tmp = profiles; tmp != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; tmp = tmp-&gt;next)</td></tr>
+<tr class="codeline" data-linenumber="1133"><td class="num" id="LN1133">1133</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1134"><td class="num" id="LN1134">1134</td><td class="line"> TerminalProfile *profile = tmp-&gt;data;</td></tr>
+<tr class="codeline" data-linenumber="1135"><td class="num" id="LN1135">1135</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *visible_name;</td></tr>
+<tr class="codeline" data-linenumber="1136"><td class="num" id="LN1136">1136</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1137"><td class="num" id="LN1137">1137</td><td class="line"> visible_name = terminal_profile_get_property_string (profile, <span class='macro'>TERMINAL_PROFILE_VISIBLE_NAME<span class='macro_popup'>"visible-name"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1138"><td class="num" id="LN1138">1138</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1139"><td class="num" id="LN1139">1139</td><td class="line"> <span class='keyword'>if</span> (visible_name &amp;&amp; strcmp (name, visible_name) == 0)</td></tr>
+<tr class="codeline" data-linenumber="1140"><td class="num" id="LN1140">1140</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1141"><td class="num" id="LN1141">1141</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1142"><td class="num" id="LN1142">1142</td><td class="line"> <span class='keyword'>if</span> (tmp)</td></tr>
+<tr class="codeline" data-linenumber="1143"><td class="num" id="LN1143">1143</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1144"><td class="num" id="LN1144">1144</td><td class="line"> confirm_dialog = gtk_message_dialog_new (<span class='macro'>GTK_WINDOW (new_profile_dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((new_profile_dialog)), ((gtk_window_get_type ()))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1145"><td class="num" id="LN1145">1145</td><td class="line"> GTK_DIALOG_DESTROY_WITH_PARENT,</td></tr>
+<tr class="codeline" data-linenumber="1146"><td class="num" id="LN1146">1146</td><td class="line"> GTK_MESSAGE_QUESTION,</td></tr>
+<tr class="codeline" data-linenumber="1147"><td class="num" id="LN1147">1147</td><td class="line"> GTK_BUTTONS_YES_NO,</td></tr>
+<tr class="codeline" data-linenumber="1148"><td class="num" id="LN1148">1148</td><td class="line"> <span class='macro'>_(<span class='string_literal'>"You already have a profile called “%s”. Do you want to create another profile with the same name?"</span>)<span class='macro_popup'>gettext ("You already have a profile called “%s”. Do you want to create another profile with the same name?"<br>)</span></span>, name);</td></tr>
+<tr class="codeline" data-linenumber="1149"><td class="num" id="LN1149">1149</td><td class="line"> <span class='comment'>/* Alternative button order was set automatically by GtkMessageDialog */</span></td></tr>
+<tr class="codeline" data-linenumber="1150"><td class="num" id="LN1150">1150</td><td class="line"> retval = gtk_dialog_run (<span class='macro'>GTK_DIALOG (confirm_dialog)<span class='macro_popup'>((((GtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((confirm_dialog)), ((gtk_dialog_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1151"><td class="num" id="LN1151">1151</td><td class="line"> gtk_widget_destroy (confirm_dialog);</td></tr>
+<tr class="codeline" data-linenumber="1152"><td class="num" id="LN1152">1152</td><td class="line"> <span class='keyword'>if</span> (retval == GTK_RESPONSE_NO)</td></tr>
+<tr class="codeline" data-linenumber="1153"><td class="num" id="LN1153">1153</td><td class="line"> <span class='keyword'>goto</span> cleanup;</td></tr>
+<tr class="codeline" data-linenumber="1154"><td class="num" id="LN1154">1154</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1155"><td class="num" id="LN1155">1155</td><td class="line"> g_list_free (profiles);</td></tr>
+<tr class="codeline" data-linenumber="1156"><td class="num" id="LN1156">1156</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1157"><td class="num" id="LN1157">1157</td><td class="line"> transient_parent = gtk_window_get_transient_for (<span class='macro'>GTK_WINDOW (new_profile_dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((new_profile_dialog)), ((gtk_window_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1158"><td class="num" id="LN1158">1158</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1159"><td class="num" id="LN1159">1159</td><td class="line"> new_profile = _terminal_profile_clone (base_profile, name);</td></tr>
+<tr class="codeline" data-linenumber="1160"><td class="num" id="LN1160">1160</td><td class="line"> new_profile_name = terminal_profile_get_property_string (new_profile, <span class='macro'>TERMINAL_PROFILE_NAME<span class='macro_popup'>"name"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1161"><td class="num" id="LN1161">1161</td><td class="line"> g_hash_table_insert (app-&gt;profiles,</td></tr>
+<tr class="codeline" data-linenumber="1162"><td class="num" id="LN1162">1162</td><td class="line"> <span class='macro'>g_strdup (new_profile_name)<span class='macro_popup'>g_strdup_inline (new_profile_name)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1163"><td class="num" id="LN1163">1163</td><td class="line"> new_profile <span class='comment'>/* adopts the refcount */</span>);</td></tr>
+<tr class="codeline" data-linenumber="1164"><td class="num" id="LN1164">1164</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1165"><td class="num" id="LN1165">1165</td><td class="line"> <span class='comment'>/* And now save the new profile name to GSettings */</span></td></tr>
+<tr class="codeline" data-linenumber="1166"><td class="num" id="LN1166">1166</td><td class="line"> gsettings_append_strv (settings_global,</td></tr>
+<tr class="codeline" data-linenumber="1167"><td class="num" id="LN1167">1167</td><td class="line"> <span class='macro'>PROFILE_LIST_KEY<span class='macro_popup'>"profile-list"</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1168"><td class="num" id="LN1168">1168</td><td class="line"> new_profile_name);</td></tr>
+<tr class="codeline" data-linenumber="1169"><td class="num" id="LN1169">1169</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1170"><td class="num" id="LN1170">1170</td><td class="line"> terminal_profile_edit (new_profile, transient_parent, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1171"><td class="num" id="LN1171">1171</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1172"><td class="num" id="LN1172">1172</td><td class="line">cleanup:</td></tr>
+<tr class="codeline" data-linenumber="1173"><td class="num" id="LN1173">1173</td><td class="line"> g_free (name);</td></tr>
+<tr class="codeline" data-linenumber="1174"><td class="num" id="LN1174">1174</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1175"><td class="num" id="LN1175">1175</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1176"><td class="num" id="LN1176">1176</td><td class="line"> gtk_widget_destroy (new_profile_dialog);</td></tr>
+<tr class="codeline" data-linenumber="1177"><td class="num" id="LN1177">1177</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1178"><td class="num" id="LN1178">1178</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1179"><td class="num" id="LN1179">1179</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1180"><td class="num" id="LN1180">1180</td><td class="line">new_profile_dialog_destroy_cb (GtkWidget *new_profile_dialog,</td></tr>
+<tr class="codeline" data-linenumber="1181"><td class="num" id="LN1181">1181</td><td class="line"> TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="1182"><td class="num" id="LN1182">1182</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1183"><td class="num" id="LN1183">1183</td><td class="line"> GtkWidget *combo;</td></tr>
+<tr class="codeline" data-linenumber="1184"><td class="num" id="LN1184">1184</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1185"><td class="num" id="LN1185">1185</td><td class="line"> combo = g_object_get_data (<span class='macro'>G_OBJECT (new_profile_dialog)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((new_profile_dialog)), (((GType) ((20) &lt;&lt; (2)))))))<br>)</span></span>, <span class='string_literal'>"base_option_menu"</span>);</td></tr>
+<tr class="codeline" data-linenumber="1186"><td class="num" id="LN1186">1186</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (app, G_CALLBACK (profile_combo_box_refill), combo)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((app), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (profile_combo_box_refill))), (combo))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1187"><td class="num" id="LN1187">1187</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1188"><td class="num" id="LN1188">1188</td><td class="line"> app-&gt;new_profile_dialog = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1189"><td class="num" id="LN1189">1189</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1190"><td class="num" id="LN1190">1190</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1191"><td class="num" id="LN1191">1191</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1192"><td class="num" id="LN1192">1192</td><td class="line">new_profile_name_entry_changed_cb (GtkEntry *entry,</td></tr>
+<tr class="codeline" data-linenumber="1193"><td class="num" id="LN1193">1193</td><td class="line"> GtkDialog *dialog)</td></tr>
+<tr class="codeline" data-linenumber="1194"><td class="num" id="LN1194">1194</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1195"><td class="num" id="LN1195">1195</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *name;</td></tr>
+<tr class="codeline" data-linenumber="1196"><td class="num" id="LN1196">1196</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1197"><td class="num" id="LN1197">1197</td><td class="line"> name = gtk_entry_get_text (entry);</td></tr>
+<tr class="codeline" data-linenumber="1198"><td class="num" id="LN1198">1198</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1199"><td class="num" id="LN1199">1199</td><td class="line"> <span class='comment'>/* make the create button sensitive only if something other than space has been set */</span></td></tr>
+<tr class="codeline" data-linenumber="1200"><td class="num" id="LN1200">1200</td><td class="line"> <span class='keyword'>while</span> (*name != '\0' &amp;&amp; <span class='macro'>g_ascii_isspace (*name)<span class='macro_popup'>((g_ascii_table[(guchar) (*name)] &amp; G_ASCII_SPACE) != 0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1201"><td class="num" id="LN1201">1201</td><td class="line"> ++name;</td></tr>
+<tr class="codeline" data-linenumber="1202"><td class="num" id="LN1202">1202</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1203"><td class="num" id="LN1203">1203</td><td class="line"> gtk_dialog_set_response_sensitive (dialog, GTK_RESPONSE_ACCEPT, name[0] != '\0');</td></tr>
+<tr class="codeline" data-linenumber="1204"><td class="num" id="LN1204">1204</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1205"><td class="num" id="LN1205">1205</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1206"><td class="num" id="LN1206">1206</td><td class="line"><span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1207"><td class="num" id="LN1207">1207</td><td class="line">terminal_app_new_profile (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="1208"><td class="num" id="LN1208">1208</td><td class="line"> TerminalProfile *default_base_profile,</td></tr>
+<tr class="codeline" data-linenumber="1209"><td class="num" id="LN1209">1209</td><td class="line"> GtkWindow *transient_parent)</td></tr>
+<tr class="codeline" data-linenumber="1210"><td class="num" id="LN1210">1210</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1211"><td class="num" id="LN1211">1211</td><td class="line"> <span class='keyword'>if</span> (app-&gt;new_profile_dialog == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1212"><td class="num" id="LN1212">1212</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1213"><td class="num" id="LN1213">1213</td><td class="line"> GtkWidget *create_button, *grid, *name_label, *name_entry, *base_label, *combo;</td></tr>
+<tr class="codeline" data-linenumber="1214"><td class="num" id="LN1214">1214</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1215"><td class="num" id="LN1215">1215</td><td class="line"> <span class='keyword'>if</span> (!terminal_util_load_builder_resource (<span class='macro'>TERMINAL_RESOURCES_PATH_PREFIX<span class='macro_popup'>"/org/mate/terminal"</span></span> <span class='macro'>G_DIR_SEPARATOR_S<span class='macro_popup'>"/"</span></span> <span class='string_literal'>"ui/profile-new-dialog.ui"</span>,</td></tr>
+<tr class="codeline" data-linenumber="1216"><td class="num" id="LN1216">1216</td><td class="line"> <span class='string_literal'>"new-profile-dialog"</span>, &amp;app-&gt;new_profile_dialog,</td></tr>
+<tr class="codeline" data-linenumber="1217"><td class="num" id="LN1217">1217</td><td class="line"> <span class='string_literal'>"new-profile-create-button"</span>, &amp;create_button,</td></tr>
+<tr class="codeline" data-linenumber="1218"><td class="num" id="LN1218">1218</td><td class="line"> <span class='string_literal'>"new-profile-grid"</span>, &amp;grid,</td></tr>
+<tr class="codeline" data-linenumber="1219"><td class="num" id="LN1219">1219</td><td class="line"> <span class='string_literal'>"new-profile-name-label"</span>, &amp;name_label,</td></tr>
+<tr class="codeline" data-linenumber="1220"><td class="num" id="LN1220">1220</td><td class="line"> <span class='string_literal'>"new-profile-name-entry"</span>, &amp;name_entry,</td></tr>
+<tr class="codeline" data-linenumber="1221"><td class="num" id="LN1221">1221</td><td class="line"> <span class='string_literal'>"new-profile-base-label"</span>, &amp;base_label,</td></tr>
+<tr class="codeline" data-linenumber="1222"><td class="num" id="LN1222">1222</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="1223"><td class="num" id="LN1223">1223</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1224"><td class="num" id="LN1224">1224</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1225"><td class="num" id="LN1225">1225</td><td class="line"> <span class='macro'>g_signal_connect (G_OBJECT (app-&gt;new_profile_dialog), <span class='string_literal'>"response"</span>, G_CALLBACK (new_profile_response_cb), app)<span class='macro_popup'>g_signal_connect_data ((((((GObject*) (void *) g_type_check_instance_cast<br> ((GTypeInstance*) ((app-&gt;new_profile_dialog)), (((GType) (<br>(20) &lt;&lt; (2))))))))), ("response"), (((GCallback) (new_profile_response_cb<br>))), (app), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1226"><td class="num" id="LN1226">1226</td><td class="line"> <span class='macro'>g_signal_connect (app-&gt;new_profile_dialog, <span class='string_literal'>"destroy"</span>, G_CALLBACK (new_profile_dialog_destroy_cb), app)<span class='macro_popup'>g_signal_connect_data ((app-&gt;new_profile_dialog), ("destroy"<br>), (((GCallback) (new_profile_dialog_destroy_cb))), (app), ((<br>void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1227"><td class="num" id="LN1227">1227</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1228"><td class="num" id="LN1228">1228</td><td class="line"> g_object_set_data (<span class='macro'>G_OBJECT (app-&gt;new_profile_dialog)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;new_profile_dialog)), (((GType) ((20) &lt;&lt; (<br>2))))))))</span></span>, <span class='string_literal'>"create_button"</span>, create_button);</td></tr>
+<tr class="codeline" data-linenumber="1229"><td class="num" id="LN1229">1229</td><td class="line"> gtk_widget_set_sensitive (create_button, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1230"><td class="num" id="LN1230">1230</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1231"><td class="num" id="LN1231">1231</td><td class="line"> <span class='comment'>/* the name entry */</span></td></tr>
+<tr class="codeline" data-linenumber="1232"><td class="num" id="LN1232">1232</td><td class="line"> g_object_set_data (<span class='macro'>G_OBJECT (app-&gt;new_profile_dialog)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;new_profile_dialog)), (((GType) ((20) &lt;&lt; (<br>2))))))))</span></span>, <span class='string_literal'>"name_entry"</span>, name_entry);</td></tr>
+<tr class="codeline" data-linenumber="1233"><td class="num" id="LN1233">1233</td><td class="line"> <span class='macro'>g_signal_connect (name_entry, <span class='string_literal'>"changed"</span>, G_CALLBACK (new_profile_name_entry_changed_cb), app-&gt;new_profile_dialog)<span class='macro_popup'>g_signal_connect_data ((name_entry), ("changed"), (((GCallback<br>) (new_profile_name_entry_changed_cb))), (app-&gt;new_profile_dialog<br>), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1234"><td class="num" id="LN1234">1234</td><td class="line"> gtk_entry_set_activates_default (<span class='macro'>GTK_ENTRY (name_entry)<span class='macro_popup'>((((GtkEntry*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((name_entry)), ((gtk_entry_get_type ()))))))</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1235"><td class="num" id="LN1235">1235</td><td class="line"> gtk_widget_grab_focus (name_entry);</td></tr>
+<tr class="codeline" data-linenumber="1236"><td class="num" id="LN1236">1236</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1237"><td class="num" id="LN1237">1237</td><td class="line"> gtk_label_set_mnemonic_widget (<span class='macro'>GTK_LABEL (name_label)<span class='macro_popup'>((((GtkLabel*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((name_label)), ((gtk_label_get_type ()))))))</span></span>, name_entry);</td></tr>
+<tr class="codeline" data-linenumber="1238"><td class="num" id="LN1238">1238</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1239"><td class="num" id="LN1239">1239</td><td class="line"> <span class='comment'>/* the base profile option menu */</span></td></tr>
+<tr class="codeline" data-linenumber="1240"><td class="num" id="LN1240">1240</td><td class="line"> combo = profile_combo_box_new (app);</td></tr>
+<tr class="codeline" data-linenumber="1241"><td class="num" id="LN1241">1241</td><td class="line"> gtk_grid_attach (<span class='macro'>GTK_GRID (grid)<span class='macro_popup'>((((GtkGrid*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((grid)), ((gtk_grid_get_type ()))))))</span></span>, combo, 2, 1, 1, 1);</td></tr>
+<tr class="codeline" data-linenumber="1242"><td class="num" id="LN1242">1242</td><td class="line"> g_object_set_data (<span class='macro'>G_OBJECT (app-&gt;new_profile_dialog)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;new_profile_dialog)), (((GType) ((20) &lt;&lt; (<br>2))))))))</span></span>, <span class='string_literal'>"base_option_menu"</span>, combo);</td></tr>
+<tr class="codeline" data-linenumber="1243"><td class="num" id="LN1243">1243</td><td class="line"> terminal_util_set_atk_name_description (combo, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>_(<span class='string_literal'>"Choose base profile"</span>)<span class='macro_popup'>gettext ("Choose base profile")</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1244"><td class="num" id="LN1244">1244</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1245"><td class="num" id="LN1245">1245</td><td class="line"> gtk_label_set_mnemonic_widget (<span class='macro'>GTK_LABEL (base_label)<span class='macro_popup'>((((GtkLabel*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((base_label)), ((gtk_label_get_type ()))))))</span></span>, combo);</td></tr>
+<tr class="codeline" data-linenumber="1246"><td class="num" id="LN1246">1246</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1247"><td class="num" id="LN1247">1247</td><td class="line"> gtk_dialog_set_default_response (<span class='macro'>GTK_DIALOG (app-&gt;new_profile_dialog)<span class='macro_popup'>((((GtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;new_profile_dialog)), ((gtk_dialog_get_type ()))<br>))))</span></span>, GTK_RESPONSE_ACCEPT);</td></tr>
+<tr class="codeline" data-linenumber="1248"><td class="num" id="LN1248">1248</td><td class="line"> gtk_dialog_set_response_sensitive (<span class='macro'>GTK_DIALOG (app-&gt;new_profile_dialog)<span class='macro_popup'>((((GtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;new_profile_dialog)), ((gtk_dialog_get_type ()))<br>))))</span></span>, GTK_RESPONSE_ACCEPT, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1249"><td class="num" id="LN1249">1249</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1250"><td class="num" id="LN1250">1250</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1251"><td class="num" id="LN1251">1251</td><td class="line"> gtk_window_set_transient_for (<span class='macro'>GTK_WINDOW (app-&gt;new_profile_dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;new_profile_dialog)), ((gtk_window_get_type ()))<br>))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1252"><td class="num" id="LN1252">1252</td><td class="line"> transient_parent);</td></tr>
+<tr class="codeline" data-linenumber="1253"><td class="num" id="LN1253">1253</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1254"><td class="num" id="LN1254">1254</td><td class="line"> gtk_window_present (<span class='macro'>GTK_WINDOW (app-&gt;new_profile_dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;new_profile_dialog)), ((gtk_window_get_type ()))<br>))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1255"><td class="num" id="LN1255">1255</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1256"><td class="num" id="LN1256">1256</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1257"><td class="num" id="LN1257">1257</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1258"><td class="num" id="LN1258">1258</td><td class="line">profile_list_selection_changed_cb (GtkTreeSelection *selection,</td></tr>
+<tr class="codeline" data-linenumber="1259"><td class="num" id="LN1259">1259</td><td class="line"> TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="1260"><td class="num" id="LN1260">1260</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1261"><td class="num" id="LN1261">1261</td><td class="line"> gboolean selected;</td></tr>
+<tr class="codeline" data-linenumber="1262"><td class="num" id="LN1262">1262</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1263"><td class="num" id="LN1263">1263</td><td class="line"> selected = gtk_tree_selection_get_selected (selection, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1264"><td class="num" id="LN1264">1264</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1265"><td class="num" id="LN1265">1265</td><td class="line"> gtk_widget_set_sensitive (app-&gt;manage_profiles_edit_button, selected);</td></tr>
+<tr class="codeline" data-linenumber="1266"><td class="num" id="LN1266">1266</td><td class="line"> gtk_widget_set_sensitive (app-&gt;manage_profiles_delete_button,</td></tr>
+<tr class="codeline" data-linenumber="1267"><td class="num" id="LN1267">1267</td><td class="line"> selected &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="1268"><td class="num" id="LN1268">1268</td><td class="line"> g_hash_table_size (app-&gt;profiles) &gt; 1);</td></tr>
+<tr class="codeline" data-linenumber="1269"><td class="num" id="LN1269">1269</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1270"><td class="num" id="LN1270">1270</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1271"><td class="num" id="LN1271">1271</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1272"><td class="num" id="LN1272">1272</td><td class="line">profile_list_response_cb (GtkWidget *dialog,</td></tr>
+<tr class="codeline" data-linenumber="1273"><td class="num" id="LN1273">1273</td><td class="line"> <span class='keyword'>int</span> id,</td></tr>
+<tr class="codeline" data-linenumber="1274"><td class="num" id="LN1274">1274</td><td class="line"> TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="1275"><td class="num" id="LN1275">1275</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1276"><td class="num" id="LN1276">1276</td><td class="line"> <span class='macro'>g_assert (app-&gt;manage_profiles_dialog == dialog)<span class='macro_popup'>do { if (app-&gt;manage_profiles_dialog == dialog) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-app.c", 1276, ((const char*) (__func__<br>)), "app-&gt;manage_profiles_dialog == dialog"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1277"><td class="num" id="LN1277">1277</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1278"><td class="num" id="LN1278">1278</td><td class="line"> <span class='keyword'>if</span> (id == GTK_RESPONSE_HELP)</td></tr>
+<tr class="codeline" data-linenumber="1279"><td class="num" id="LN1279">1279</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1280"><td class="num" id="LN1280">1280</td><td class="line"> terminal_util_show_help (<span class='string_literal'>"mate-terminal-manage-profiles"</span>, <span class='macro'>GTK_WINDOW (dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((dialog)), ((gtk_window_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1281"><td class="num" id="LN1281">1281</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1282"><td class="num" id="LN1282">1282</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1283"><td class="num" id="LN1283">1283</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1284"><td class="num" id="LN1284">1284</td><td class="line"> gtk_widget_destroy (dialog);</td></tr>
+<tr class="codeline" data-linenumber="1285"><td class="num" id="LN1285">1285</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1286"><td class="num" id="LN1286">1286</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1287"><td class="num" id="LN1287">1287</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1288"><td class="num" id="LN1288">1288</td><td class="line">profile_list_destroyed_cb (GtkWidget *manage_profiles_dialog,</td></tr>
+<tr class="codeline" data-linenumber="1289"><td class="num" id="LN1289">1289</td><td class="line"> TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="1290"><td class="num" id="LN1290">1290</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1291"><td class="num" id="LN1291">1291</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (app, G_CALLBACK (profile_list_treeview_refill), app-&gt;manage_profiles_list)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((app), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (profile_list_treeview_refill))), (app-&gt;<br>manage_profiles_list))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1292"><td class="num" id="LN1292">1292</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (app, G_CALLBACK (profile_combo_box_refill), app-&gt;manage_profiles_default_menu)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((app), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (profile_combo_box_refill))), (app-&gt;manage_profiles_default_menu<br>))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1293"><td class="num" id="LN1293">1293</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1294"><td class="num" id="LN1294">1294</td><td class="line"> app-&gt;manage_profiles_dialog = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1295"><td class="num" id="LN1295">1295</td><td class="line"> app-&gt;manage_profiles_list = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1296"><td class="num" id="LN1296">1296</td><td class="line"> app-&gt;manage_profiles_new_button = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1297"><td class="num" id="LN1297">1297</td><td class="line"> app-&gt;manage_profiles_edit_button = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1298"><td class="num" id="LN1298">1298</td><td class="line"> app-&gt;manage_profiles_delete_button = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1299"><td class="num" id="LN1299">1299</td><td class="line"> app-&gt;manage_profiles_default_menu = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1300"><td class="num" id="LN1300">1300</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1301"><td class="num" id="LN1301">1301</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1302"><td class="num" id="LN1302">1302</td><td class="line"><span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1303"><td class="num" id="LN1303">1303</td><td class="line">terminal_app_manage_profiles (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="1304"><td class="num" id="LN1304">1304</td><td class="line"> GtkWindow *transient_parent)</td></tr>
+<tr class="codeline" data-linenumber="1305"><td class="num" id="LN1305">1305</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1306"><td class="num" id="LN1306">1306</td><td class="line"> GObject *dialog;</td></tr>
+<tr class="codeline" data-linenumber="1307"><td class="num" id="LN1307">1307</td><td class="line"> GObject *tree_view_container, *new_button, *edit_button, *remove_button;</td></tr>
+<tr class="codeline" data-linenumber="1308"><td class="num" id="LN1308">1308</td><td class="line"> GObject *default_hbox, *default_label;</td></tr>
+<tr class="codeline" data-linenumber="1309"><td class="num" id="LN1309">1309</td><td class="line"> GtkTreeSelection *selection;</td></tr>
+<tr class="codeline" data-linenumber="1310"><td class="num" id="LN1310">1310</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1311"><td class="num" id="LN1311">1311</td><td class="line"> <span class='keyword'>if</span> (app-&gt;manage_profiles_dialog)</td></tr>
+<tr class="codeline" data-linenumber="1312"><td class="num" id="LN1312">1312</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1313"><td class="num" id="LN1313">1313</td><td class="line"> gtk_window_set_transient_for (<span class='macro'>GTK_WINDOW (app-&gt;manage_profiles_dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;manage_profiles_dialog)), ((gtk_window_get_type (<br>)))))))</span></span>, transient_parent);</td></tr>
+<tr class="codeline" data-linenumber="1314"><td class="num" id="LN1314">1314</td><td class="line"> gtk_window_present (<span class='macro'>GTK_WINDOW (app-&gt;manage_profiles_dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;manage_profiles_dialog)), ((gtk_window_get_type (<br>)))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1315"><td class="num" id="LN1315">1315</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1316"><td class="num" id="LN1316">1316</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1317"><td class="num" id="LN1317">1317</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1318"><td class="num" id="LN1318">1318</td><td class="line"> <span class='keyword'>if</span> (!terminal_util_load_builder_resource (<span class='macro'>TERMINAL_RESOURCES_PATH_PREFIX<span class='macro_popup'>"/org/mate/terminal"</span></span> <span class='macro'>G_DIR_SEPARATOR_S<span class='macro_popup'>"/"</span></span> <span class='string_literal'>"ui/profile-manager.ui"</span>,</td></tr>
+<tr class="codeline" data-linenumber="1319"><td class="num" id="LN1319">1319</td><td class="line"> <span class='string_literal'>"profile-manager"</span>, &amp;dialog,</td></tr>
+<tr class="codeline" data-linenumber="1320"><td class="num" id="LN1320">1320</td><td class="line"> <span class='string_literal'>"profiles-treeview-container"</span>, &amp;tree_view_container,</td></tr>
+<tr class="codeline" data-linenumber="1321"><td class="num" id="LN1321">1321</td><td class="line"> <span class='string_literal'>"new-profile-button"</span>, &amp;new_button,</td></tr>
+<tr class="codeline" data-linenumber="1322"><td class="num" id="LN1322">1322</td><td class="line"> <span class='string_literal'>"edit-profile-button"</span>, &amp;edit_button,</td></tr>
+<tr class="codeline" data-linenumber="1323"><td class="num" id="LN1323">1323</td><td class="line"> <span class='string_literal'>"delete-profile-button"</span>, &amp;remove_button,</td></tr>
+<tr class="codeline" data-linenumber="1324"><td class="num" id="LN1324">1324</td><td class="line"> <span class='string_literal'>"default-profile-hbox"</span>, &amp;default_hbox,</td></tr>
+<tr class="codeline" data-linenumber="1325"><td class="num" id="LN1325">1325</td><td class="line"> <span class='string_literal'>"default-profile-label"</span>, &amp;default_label,</td></tr>
+<tr class="codeline" data-linenumber="1326"><td class="num" id="LN1326">1326</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="1327"><td class="num" id="LN1327">1327</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1328"><td class="num" id="LN1328">1328</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1329"><td class="num" id="LN1329">1329</td><td class="line"> app-&gt;manage_profiles_dialog = <span class='macro'>GTK_WIDGET (dialog)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((dialog)), ((gtk_widget_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1330"><td class="num" id="LN1330">1330</td><td class="line"> app-&gt;manage_profiles_new_button = <span class='macro'>GTK_WIDGET (new_button)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((new_button)), ((gtk_widget_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1331"><td class="num" id="LN1331">1331</td><td class="line"> app-&gt;manage_profiles_edit_button = <span class='macro'>GTK_WIDGET (edit_button)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((edit_button)), ((gtk_widget_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1332"><td class="num" id="LN1332">1332</td><td class="line"> app-&gt;manage_profiles_delete_button = <span class='macro'>GTK_WIDGET (remove_button)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((remove_button)), ((gtk_widget_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1333"><td class="num" id="LN1333">1333</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1334"><td class="num" id="LN1334">1334</td><td class="line"> <span class='macro'>g_signal_connect (dialog, <span class='string_literal'>"response"</span>, G_CALLBACK (profile_list_response_cb), app)<span class='macro_popup'>g_signal_connect_data ((dialog), ("response"), (((GCallback) (<br>profile_list_response_cb))), (app), ((void*)0), (GConnectFlags<br>) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1335"><td class="num" id="LN1335">1335</td><td class="line"> <span class='macro'>g_signal_connect (dialog, <span class='string_literal'>"destroy"</span>, G_CALLBACK (profile_list_destroyed_cb), app)<span class='macro_popup'>g_signal_connect_data ((dialog), ("destroy"), (((GCallback) (<br>profile_list_destroyed_cb))), (app), ((void*)0), (GConnectFlags<br>) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1336"><td class="num" id="LN1336">1336</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1337"><td class="num" id="LN1337">1337</td><td class="line"> app-&gt;manage_profiles_list = profile_list_treeview_create (app);</td></tr>
+<tr class="codeline" data-linenumber="1338"><td class="num" id="LN1338">1338</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1339"><td class="num" id="LN1339">1339</td><td class="line"> selection = gtk_tree_view_get_selection (<span class='macro'>GTK_TREE_VIEW (app-&gt;manage_profiles_list)<span class='macro_popup'>((((GtkTreeView*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;manage_profiles_list)), ((gtk_tree_view_get_type<br> ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1340"><td class="num" id="LN1340">1340</td><td class="line"> <span class='macro'>g_signal_connect (selection, <span class='string_literal'>"changed"</span>, G_CALLBACK (profile_list_selection_changed_cb), app)<span class='macro_popup'>g_signal_connect_data ((selection), ("changed"), (((GCallback<br>) (profile_list_selection_changed_cb))), (app), ((void*)0), (<br>GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1341"><td class="num" id="LN1341">1341</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1342"><td class="num" id="LN1342">1342</td><td class="line"> profile_list_treeview_refill (app, app-&gt;manage_profiles_list);</td></tr>
+<tr class="codeline" data-linenumber="1343"><td class="num" id="LN1343">1343</td><td class="line"> <span class='macro'>g_signal_connect (app, <span class='string_literal'>"profile-list-changed"</span>,<span class='macro_popup'>g_signal_connect_data ((app), ("profile-list-changed"), (((GCallback<br>) (profile_list_treeview_refill))), (app-&gt;manage_profiles_list<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1344"><td class="num" id="LN1344">1344</td><td class="line"> <span class='macro'>G_CALLBACK (profile_list_treeview_refill), app-&gt;manage_profiles_list)<span class='macro_popup'>g_signal_connect_data ((app), ("profile-list-changed"), (((GCallback<br>) (profile_list_treeview_refill))), (app-&gt;manage_profiles_list<br>), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1345"><td class="num" id="LN1345">1345</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1346"><td class="num" id="LN1346">1346</td><td class="line"> <span class='macro'>g_signal_connect (app-&gt;manage_profiles_list, <span class='string_literal'>"row-activated"</span>,<span class='macro_popup'>g_signal_connect_data ((app-&gt;manage_profiles_list), ("row-activated"<br>), (((GCallback) (profile_list_row_activated_cb))), (app), ((<br>void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1347"><td class="num" id="LN1347">1347</td><td class="line"> <span class='macro'>G_CALLBACK (profile_list_row_activated_cb), app)<span class='macro_popup'>g_signal_connect_data ((app-&gt;manage_profiles_list), ("row-activated"<br>), (((GCallback) (profile_list_row_activated_cb))), (app), ((<br>void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1348"><td class="num" id="LN1348">1348</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1349"><td class="num" id="LN1349">1349</td><td class="line"> gtk_container_add (<span class='macro'>GTK_CONTAINER (tree_view_container)<span class='macro_popup'>((((GtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((tree_view_container)), ((gtk_container_get_type ()))))))</span></span>, app-&gt;manage_profiles_list);</td></tr>
+<tr class="codeline" data-linenumber="1350"><td class="num" id="LN1350">1350</td><td class="line"> gtk_widget_show (app-&gt;manage_profiles_list);</td></tr>
+<tr class="codeline" data-linenumber="1351"><td class="num" id="LN1351">1351</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1352"><td class="num" id="LN1352">1352</td><td class="line"> <span class='macro'>g_signal_connect (new_button, <span class='string_literal'>"clicked"</span>,<span class='macro_popup'>g_signal_connect_data ((new_button), ("clicked"), (((GCallback<br>) (profile_list_new_button_clicked_cb))), (app-&gt;manage_profiles_list<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1353"><td class="num" id="LN1353">1353</td><td class="line"> <span class='macro'>G_CALLBACK (profile_list_new_button_clicked_cb),<span class='macro_popup'>g_signal_connect_data ((new_button), ("clicked"), (((GCallback<br>) (profile_list_new_button_clicked_cb))), (app-&gt;manage_profiles_list<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1354"><td class="num" id="LN1354">1354</td><td class="line"> <span class='macro'>app-&gt;manage_profiles_list)<span class='macro_popup'>g_signal_connect_data ((new_button), ("clicked"), (((GCallback<br>) (profile_list_new_button_clicked_cb))), (app-&gt;manage_profiles_list<br>), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1355"><td class="num" id="LN1355">1355</td><td class="line"> <span class='macro'>g_signal_connect (edit_button, <span class='string_literal'>"clicked"</span>,<span class='macro_popup'>g_signal_connect_data ((edit_button), ("clicked"), (((GCallback<br>) (profile_list_edit_button_clicked_cb))), (app-&gt;manage_profiles_list<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1356"><td class="num" id="LN1356">1356</td><td class="line"> <span class='macro'>G_CALLBACK (profile_list_edit_button_clicked_cb),<span class='macro_popup'>g_signal_connect_data ((edit_button), ("clicked"), (((GCallback<br>) (profile_list_edit_button_clicked_cb))), (app-&gt;manage_profiles_list<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1357"><td class="num" id="LN1357">1357</td><td class="line"> <span class='macro'>app-&gt;manage_profiles_list)<span class='macro_popup'>g_signal_connect_data ((edit_button), ("clicked"), (((GCallback<br>) (profile_list_edit_button_clicked_cb))), (app-&gt;manage_profiles_list<br>), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1358"><td class="num" id="LN1358">1358</td><td class="line"> <span class='macro'>g_signal_connect (remove_button, <span class='string_literal'>"clicked"</span>,<span class='macro_popup'>g_signal_connect_data ((remove_button), ("clicked"), (((GCallback<br>) (profile_list_delete_button_clicked_cb))), (app-&gt;manage_profiles_list<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1359"><td class="num" id="LN1359">1359</td><td class="line"> <span class='macro'>G_CALLBACK (profile_list_delete_button_clicked_cb),<span class='macro_popup'>g_signal_connect_data ((remove_button), ("clicked"), (((GCallback<br>) (profile_list_delete_button_clicked_cb))), (app-&gt;manage_profiles_list<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1360"><td class="num" id="LN1360">1360</td><td class="line"> <span class='macro'>app-&gt;manage_profiles_list)<span class='macro_popup'>g_signal_connect_data ((remove_button), ("clicked"), (((GCallback<br>) (profile_list_delete_button_clicked_cb))), (app-&gt;manage_profiles_list<br>), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1361"><td class="num" id="LN1361">1361</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1362"><td class="num" id="LN1362">1362</td><td class="line"> app-&gt;manage_profiles_default_menu = profile_combo_box_new (app);</td></tr>
+<tr class="codeline" data-linenumber="1363"><td class="num" id="LN1363">1363</td><td class="line"> <span class='macro'>g_signal_connect (app-&gt;manage_profiles_default_menu, <span class='string_literal'>"changed"</span>,<span class='macro_popup'>g_signal_connect_data ((app-&gt;manage_profiles_default_menu)<br>, ("changed"), (((GCallback) (profile_combo_box_changed_cb)))<br>, (app), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1364"><td class="num" id="LN1364">1364</td><td class="line"> <span class='macro'>G_CALLBACK (profile_combo_box_changed_cb), app)<span class='macro_popup'>g_signal_connect_data ((app-&gt;manage_profiles_default_menu)<br>, ("changed"), (((GCallback) (profile_combo_box_changed_cb)))<br>, (app), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1365"><td class="num" id="LN1365">1365</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1366"><td class="num" id="LN1366">1366</td><td class="line"> gtk_box_pack_start (<span class='macro'>GTK_BOX (default_hbox)<span class='macro_popup'>((((GtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((default_hbox)), ((gtk_box_get_type ()))))))</span></span>, app-&gt;manage_profiles_default_menu, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, 0);</td></tr>
+<tr class="codeline" data-linenumber="1367"><td class="num" id="LN1367">1367</td><td class="line"> gtk_widget_show (app-&gt;manage_profiles_default_menu);</td></tr>
+<tr class="codeline" data-linenumber="1368"><td class="num" id="LN1368">1368</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1369"><td class="num" id="LN1369">1369</td><td class="line"> gtk_label_set_mnemonic_widget (<span class='macro'>GTK_LABEL (default_label)<span class='macro_popup'>((((GtkLabel*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((default_label)), ((gtk_label_get_type ()))))))</span></span>, app-&gt;manage_profiles_default_menu);</td></tr>
+<tr class="codeline" data-linenumber="1370"><td class="num" id="LN1370">1370</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1371"><td class="num" id="LN1371">1371</td><td class="line"> gtk_widget_grab_focus (app-&gt;manage_profiles_list);</td></tr>
+<tr class="codeline" data-linenumber="1372"><td class="num" id="LN1372">1372</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1373"><td class="num" id="LN1373">1373</td><td class="line"> gtk_window_set_transient_for (<span class='macro'>GTK_WINDOW (app-&gt;manage_profiles_dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;manage_profiles_dialog)), ((gtk_window_get_type (<br>)))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1374"><td class="num" id="LN1374">1374</td><td class="line"> transient_parent);</td></tr>
+<tr class="codeline" data-linenumber="1375"><td class="num" id="LN1375">1375</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1376"><td class="num" id="LN1376">1376</td><td class="line"> gtk_window_present (<span class='macro'>GTK_WINDOW (app-&gt;manage_profiles_dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app-&gt;manage_profiles_dialog)), ((gtk_window_get_type (<br>)))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1377"><td class="num" id="LN1377">1377</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1378"><td class="num" id="LN1378">1378</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1379"><td class="num" id="LN1379">1379</td><td class="line"><span class='directive'>#ifdef <span class='macro'>HAVE_SMCLIENT<span class='macro_popup'>1</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1380"><td class="num" id="LN1380">1380</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1381"><td class="num" id="LN1381">1381</td><td class="line">terminal_app_save_state_cb (EggSMClient *client,</td></tr>
+<tr class="codeline" data-linenumber="1382"><td class="num" id="LN1382">1382</td><td class="line"> GKeyFile *key_file,</td></tr>
+<tr class="codeline" data-linenumber="1383"><td class="num" id="LN1383">1383</td><td class="line"> TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="1384"><td class="num" id="LN1384">1384</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1385"><td class="num" id="LN1385">1385</td><td class="line"> terminal_app_save_config (app, key_file);</td></tr>
+<tr class="codeline" data-linenumber="1386"><td class="num" id="LN1386">1386</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1387"><td class="num" id="LN1387">1387</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1388"><td class="num" id="LN1388">1388</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1389"><td class="num" id="LN1389">1389</td><td class="line">terminal_app_client_quit_cb (EggSMClient *client,</td></tr>
+<tr class="codeline" data-linenumber="1390"><td class="num" id="LN1390">1390</td><td class="line"> TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="1391"><td class="num" id="LN1391">1391</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1392"><td class="num" id="LN1392">1392</td><td class="line"> g_signal_emit (app, signals[QUIT], 0);</td></tr>
+<tr class="codeline" data-linenumber="1393"><td class="num" id="LN1393">1393</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1394"><td class="num" id="LN1394">1394</td><td class="line"><span class='directive'>#endif /* HAVE_SMCLIENT */</span></td></tr>
+<tr class="codeline" data-linenumber="1395"><td class="num" id="LN1395">1395</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1396"><td class="num" id="LN1396">1396</td><td class="line"><span class='comment'>/* Class implementation */</span></td></tr>
+<tr class="codeline" data-linenumber="1397"><td class="num" id="LN1397">1397</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1398"><td class="num" id="LN1398">1398</td><td class="line"><span class='macro'>G_DEFINE_TYPE (TerminalApp, terminal_app, G_TYPE_OBJECT)<span class='macro_popup'>static void terminal_app_init (TerminalApp *self); static void<br> terminal_app_class_init (TerminalAppClass *klass); static GType<br> terminal_app_get_type_once (void); static gpointer terminal_app_parent_class<br> = ((void*)0); static gint TerminalApp_private_offset; static<br> void terminal_app_class_intern_init (gpointer klass) { terminal_app_parent_class<br> = g_type_class_peek_parent (klass); if (TerminalApp_private_offset<br> != 0) g_type_class_adjust_private_offset (klass, &amp;TerminalApp_private_offset<br>); terminal_app_class_init ((TerminalAppClass*) klass); } __attribute__<br> ((__unused__)) static inline gpointer terminal_app_get_instance_private<br> (TerminalApp *self) { return (((gpointer) ((guint8*) (self) +<br> (glong) (TerminalApp_private_offset)))); } GType terminal_app_get_type<br> (void) { static gsize static_g_define_type_id = 0; if ((__extension__<br> ({ _Static_assert (sizeof *(&amp;static_g_define_type_id) ==<br> sizeof (gpointer), "Expression evaluates to false"); (void) (<br>0 ? (gpointer) *(&amp;static_g_define_type_id) : ((void*)0));<br> (!(__extension__ ({ _Static_assert (sizeof *(&amp;static_g_define_type_id<br>) == sizeof (gpointer), "Expression evaluates to false"); __typeof__<br> (*(&amp;static_g_define_type_id)) gapg_temp_newval; __typeof__<br> ((&amp;static_g_define_type_id)) gapg_temp_atomic = (&amp;static_g_define_type_id<br>); __atomic_load (gapg_temp_atomic, &amp;gapg_temp_newval, 5)<br>; gapg_temp_newval; })) &amp;&amp; g_once_init_enter (&amp;static_g_define_type_id<br>)); }))) { GType g_define_type_id = terminal_app_get_type_once<br> (); (__extension__ ({ _Static_assert (sizeof *(&amp;static_g_define_type_id<br>) == sizeof (gpointer), "Expression evaluates to false"); 0 ?<br> (void) (*(&amp;static_g_define_type_id) = (g_define_type_id)<br>) : (void) 0; g_once_init_leave ((&amp;static_g_define_type_id<br>), (gsize) (g_define_type_id)); })); } return static_g_define_type_id<br>; } __attribute__ ((__noinline__)) static GType terminal_app_get_type_once<br> (void) { GType g_define_type_id = g_type_register_static_simple<br> (((GType) ((20) &lt;&lt; (2))), g_intern_static_string ("TerminalApp"<br>), sizeof (TerminalAppClass), (GClassInitFunc)(void (*)(void)<br>) terminal_app_class_intern_init, sizeof (TerminalApp), (GInstanceInitFunc<br>)(void (*)(void)) terminal_app_init, (GTypeFlags) 0); { {{};}<br> } return g_define_type_id; }</span></span></td></tr>
+<tr class="codeline" data-linenumber="1399"><td class="num" id="LN1399">1399</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1400"><td class="num" id="LN1400">1400</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1401"><td class="num" id="LN1401">1401</td><td class="line">terminal_app_init (TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="1402"><td class="num" id="LN1402">1402</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1403"><td class="num" id="LN1403">1403</td><td class="line"> global_app = app;</td></tr>
+<tr class="codeline" data-linenumber="1404"><td class="num" id="LN1404">1404</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1405"><td class="num" id="LN1405">1405</td><td class="line"> gtk_window_set_default_icon_name (<span class='macro'>MATE_TERMINAL_ICON_NAME<span class='macro_popup'>"utilities-terminal"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1406"><td class="num" id="LN1406">1406</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1407"><td class="num" id="LN1407">1407</td><td class="line"> <span class='comment'>/* Initialise defaults */</span></td></tr>
+<tr class="codeline" data-linenumber="1408"><td class="num" id="LN1408">1408</td><td class="line"> app-&gt;enable_mnemonics = <span class='macro'>DEFAULT_ENABLE_MNEMONICS<span class='macro_popup'>((!(0)))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1409"><td class="num" id="LN1409">1409</td><td class="line"> app-&gt;enable_menu_accels = <span class='macro'>DEFAULT_ENABLE_MENU_BAR_ACCEL<span class='macro_popup'>((!(0)))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1410"><td class="num" id="LN1410">1410</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1411"><td class="num" id="LN1411">1411</td><td class="line"> app-&gt;profiles = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref);</td></tr>
+<tr class="codeline" data-linenumber="1412"><td class="num" id="LN1412">1412</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1413"><td class="num" id="LN1413">1413</td><td class="line"> app-&gt;encodings = terminal_encodings_get_builtins ();</td></tr>
+<tr class="codeline" data-linenumber="1414"><td class="num" id="LN1414">1414</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1415"><td class="num" id="LN1415">1415</td><td class="line"> settings_global = g_settings_new (<span class='macro'>CONF_GLOBAL_SCHEMA<span class='macro_popup'>"org.mate.terminal" ".global"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1416"><td class="num" id="LN1416">1416</td><td class="line"> app-&gt;settings_font = g_settings_new (<span class='macro'>MONOSPACE_FONT_SCHEMA<span class='macro_popup'>"org.mate.interface"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1417"><td class="num" id="LN1417">1417</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1418"><td class="num" id="LN1418">1418</td><td class="line"> <span class='macro'>g_signal_connect (settings_global,<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "profile-list"<br>), (((GCallback) (terminal_app_profile_list_notify_cb))), (app<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1419"><td class="num" id="LN1419">1419</td><td class="line"> <span class='string_literal'><span class='macro'>"changed::"</span> PROFILE_LIST_KEY,<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "profile-list"<br>), (((GCallback) (terminal_app_profile_list_notify_cb))), (app<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1420"><td class="num" id="LN1420">1420</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_app_profile_list_notify_cb),<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "profile-list"<br>), (((GCallback) (terminal_app_profile_list_notify_cb))), (app<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1421"><td class="num" id="LN1421">1421</td><td class="line"> <span class='macro'>app)<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "profile-list"<br>), (((GCallback) (terminal_app_profile_list_notify_cb))), (app<br>), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1422"><td class="num" id="LN1422">1422</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1423"><td class="num" id="LN1423">1423</td><td class="line"> <span class='macro'>g_signal_connect (settings_global,<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "default-profile"<br>), (((GCallback) (terminal_app_default_profile_notify_cb))), (<br>app), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1424"><td class="num" id="LN1424">1424</td><td class="line"> <span class='string_literal'><span class='macro'>"changed::"</span> DEFAULT_PROFILE_KEY,<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "default-profile"<br>), (((GCallback) (terminal_app_default_profile_notify_cb))), (<br>app), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1425"><td class="num" id="LN1425">1425</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_app_default_profile_notify_cb),<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "default-profile"<br>), (((GCallback) (terminal_app_default_profile_notify_cb))), (<br>app), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1426"><td class="num" id="LN1426">1426</td><td class="line"> <span class='macro'>app)<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "default-profile"<br>), (((GCallback) (terminal_app_default_profile_notify_cb))), (<br>app), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1427"><td class="num" id="LN1427">1427</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1428"><td class="num" id="LN1428">1428</td><td class="line"> <span class='macro'>g_signal_connect (settings_global,<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "active-encodings"<br>), (((GCallback) (terminal_app_encoding_list_notify_cb))), (app<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1429"><td class="num" id="LN1429">1429</td><td class="line"> <span class='string_literal'><span class='macro'>"changed::"</span> ENCODING_LIST_KEY,<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "active-encodings"<br>), (((GCallback) (terminal_app_encoding_list_notify_cb))), (app<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1430"><td class="num" id="LN1430">1430</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_app_encoding_list_notify_cb),<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "active-encodings"<br>), (((GCallback) (terminal_app_encoding_list_notify_cb))), (app<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1431"><td class="num" id="LN1431">1431</td><td class="line"> <span class='macro'>app)<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "active-encodings"<br>), (((GCallback) (terminal_app_encoding_list_notify_cb))), (app<br>), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1432"><td class="num" id="LN1432">1432</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1433"><td class="num" id="LN1433">1433</td><td class="line"> <span class='macro'>g_signal_connect (app-&gt;settings_font,<span class='macro_popup'>g_signal_connect_data ((app-&gt;settings_font), ("changed::" "monospace-font-name"<br>), (((GCallback) (terminal_app_system_font_notify_cb))), (app<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1434"><td class="num" id="LN1434">1434</td><td class="line"> <span class='string_literal'><span class='macro'>"changed::"</span> MONOSPACE_FONT_KEY,<span class='macro_popup'>g_signal_connect_data ((app-&gt;settings_font), ("changed::" "monospace-font-name"<br>), (((GCallback) (terminal_app_system_font_notify_cb))), (app<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1435"><td class="num" id="LN1435">1435</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_app_system_font_notify_cb),<span class='macro_popup'>g_signal_connect_data ((app-&gt;settings_font), ("changed::" "monospace-font-name"<br>), (((GCallback) (terminal_app_system_font_notify_cb))), (app<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1436"><td class="num" id="LN1436">1436</td><td class="line"> <span class='macro'>app)<span class='macro_popup'>g_signal_connect_data ((app-&gt;settings_font), ("changed::" "monospace-font-name"<br>), (((GCallback) (terminal_app_system_font_notify_cb))), (app<br>), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1437"><td class="num" id="LN1437">1437</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1438"><td class="num" id="LN1438">1438</td><td class="line"> <span class='macro'>g_signal_connect (settings_global,<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "use-mnemonics"<br>), (((GCallback) (terminal_app_enable_mnemonics_notify_cb))),<br> (app), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1439"><td class="num" id="LN1439">1439</td><td class="line"> <span class='string_literal'><span class='macro'>"changed::"</span> ENABLE_MNEMONICS_KEY,<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "use-mnemonics"<br>), (((GCallback) (terminal_app_enable_mnemonics_notify_cb))),<br> (app), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1440"><td class="num" id="LN1440">1440</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_app_enable_mnemonics_notify_cb),<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "use-mnemonics"<br>), (((GCallback) (terminal_app_enable_mnemonics_notify_cb))),<br> (app), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1441"><td class="num" id="LN1441">1441</td><td class="line"> <span class='macro'>app)<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "use-mnemonics"<br>), (((GCallback) (terminal_app_enable_mnemonics_notify_cb))),<br> (app), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1442"><td class="num" id="LN1442">1442</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1443"><td class="num" id="LN1443">1443</td><td class="line"> <span class='macro'>g_signal_connect (settings_global,<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "use-menu-accelerators"<br>), (((GCallback) (terminal_app_enable_menu_accels_notify_cb))<br>), (app), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1444"><td class="num" id="LN1444">1444</td><td class="line"> <span class='string_literal'><span class='macro'>"changed::"</span> ENABLE_MENU_BAR_ACCEL_KEY,<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "use-menu-accelerators"<br>), (((GCallback) (terminal_app_enable_menu_accels_notify_cb))<br>), (app), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1445"><td class="num" id="LN1445">1445</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_app_enable_menu_accels_notify_cb),<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "use-menu-accelerators"<br>), (((GCallback) (terminal_app_enable_menu_accels_notify_cb))<br>), (app), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1446"><td class="num" id="LN1446">1446</td><td class="line"> <span class='macro'>app)<span class='macro_popup'>g_signal_connect_data ((settings_global), ("changed::" "use-menu-accelerators"<br>), (((GCallback) (terminal_app_enable_menu_accels_notify_cb))<br>), (app), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1447"><td class="num" id="LN1447">1447</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1448"><td class="num" id="LN1448">1448</td><td class="line"> <span class='comment'>/* Load the settings */</span></td></tr>
+<tr class="codeline" data-linenumber="1449"><td class="num" id="LN1449">1449</td><td class="line"> terminal_app_profile_list_notify_cb (settings_global,</td></tr>
+<tr class="codeline" data-linenumber="1450"><td class="num" id="LN1450">1450</td><td class="line"> <span class='macro'>PROFILE_LIST_KEY<span class='macro_popup'>"profile-list"</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1451"><td class="num" id="LN1451">1451</td><td class="line"> app);</td></tr>
+<tr class="codeline" data-linenumber="1452"><td class="num" id="LN1452">1452</td><td class="line"> terminal_app_default_profile_notify_cb (settings_global,</td></tr>
+<tr class="codeline" data-linenumber="1453"><td class="num" id="LN1453">1453</td><td class="line"> <span class='macro'>DEFAULT_PROFILE_KEY<span class='macro_popup'>"default-profile"</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1454"><td class="num" id="LN1454">1454</td><td class="line"> app);</td></tr>
+<tr class="codeline" data-linenumber="1455"><td class="num" id="LN1455">1455</td><td class="line"> terminal_app_encoding_list_notify_cb (settings_global,</td></tr>
+<tr class="codeline" data-linenumber="1456"><td class="num" id="LN1456">1456</td><td class="line"> <span class='macro'>ENCODING_LIST_KEY<span class='macro_popup'>"active-encodings"</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1457"><td class="num" id="LN1457">1457</td><td class="line"> app);</td></tr>
+<tr class="codeline" data-linenumber="1458"><td class="num" id="LN1458">1458</td><td class="line"> terminal_app_system_font_notify_cb (app-&gt;settings_font,</td></tr>
+<tr class="codeline" data-linenumber="1459"><td class="num" id="LN1459">1459</td><td class="line"> <span class='macro'>MONOSPACE_FONT_KEY<span class='macro_popup'>"monospace-font-name"</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1460"><td class="num" id="LN1460">1460</td><td class="line"> app);</td></tr>
+<tr class="codeline" data-linenumber="1461"><td class="num" id="LN1461">1461</td><td class="line"> terminal_app_enable_menu_accels_notify_cb (settings_global,</td></tr>
+<tr class="codeline" data-linenumber="1462"><td class="num" id="LN1462">1462</td><td class="line"> <span class='macro'>ENABLE_MENU_BAR_ACCEL_KEY<span class='macro_popup'>"use-menu-accelerators"</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1463"><td class="num" id="LN1463">1463</td><td class="line"> app);</td></tr>
+<tr class="codeline" data-linenumber="1464"><td class="num" id="LN1464">1464</td><td class="line"> terminal_app_enable_mnemonics_notify_cb (settings_global,</td></tr>
+<tr class="codeline" data-linenumber="1465"><td class="num" id="LN1465">1465</td><td class="line"> <span class='macro'>ENABLE_MNEMONICS_KEY<span class='macro_popup'>"use-mnemonics"</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1466"><td class="num" id="LN1466">1466</td><td class="line"> app);</td></tr>
+<tr class="codeline" data-linenumber="1467"><td class="num" id="LN1467">1467</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1468"><td class="num" id="LN1468">1468</td><td class="line"> <span class='comment'>/* Ensure we have valid settings */</span></td></tr>
+<tr class="codeline" data-linenumber="1469"><td class="num" id="LN1469">1469</td><td class="line"> <span class='macro'>g_assert (app-&gt;default_profile_id != NULL)<span class='macro_popup'>do { if (app-&gt;default_profile_id != ((void*)0)) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-app.c", 1469, ((const char*) (__func__<br>)), "app-&gt;default_profile_id != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1470"><td class="num" id="LN1470">1470</td><td class="line"> <span class='macro'>g_assert (app-&gt;system_font_desc != NULL)<span class='macro_popup'>do { if (app-&gt;system_font_desc != ((void*)0)) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-app.c", 1470, ((const char*) (__func__<br>)), "app-&gt;system_font_desc != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1471"><td class="num" id="LN1471">1471</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1472"><td class="num" id="LN1472">1472</td><td class="line"> terminal_accels_init ();</td></tr>
+<tr class="codeline" data-linenumber="1473"><td class="num" id="LN1473">1473</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1474"><td class="num" id="LN1474">1474</td><td class="line"><span class='directive'>#ifdef <span class='macro'>HAVE_SMCLIENT<span class='macro_popup'>1</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1475"><td class="num" id="LN1475">1475</td><td class="line"> EggSMClient *sm_client;</td></tr>
+<tr class="codeline" data-linenumber="1476"><td class="num" id="LN1476">1476</td><td class="line"> <span class='keyword'>char</span> *desktop_file;</td></tr>
+<tr class="codeline" data-linenumber="1477"><td class="num" id="LN1477">1477</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1478"><td class="num" id="LN1478">1478</td><td class="line"> desktop_file = g_build_filename (<span class='macro'>TERM_DATADIR<span class='macro_popup'>"/usr/local/share"</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1479"><td class="num" id="LN1479">1479</td><td class="line"> <span class='string_literal'>"applications"</span>,</td></tr>
+<tr class="codeline" data-linenumber="1480"><td class="num" id="LN1480">1480</td><td class="line"> <span class='macro'>PACKAGE<span class='macro_popup'>"mate-terminal"</span></span> <span class='string_literal'>".desktop"</span>,</td></tr>
+<tr class="codeline" data-linenumber="1481"><td class="num" id="LN1481">1481</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1482"><td class="num" id="LN1482">1482</td><td class="line"> egg_set_desktop_file_without_defaults (desktop_file);</td></tr>
+<tr class="codeline" data-linenumber="1483"><td class="num" id="LN1483">1483</td><td class="line"> g_free (desktop_file);</td></tr>
+<tr class="codeline" data-linenumber="1484"><td class="num" id="LN1484">1484</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1485"><td class="num" id="LN1485">1485</td><td class="line"> sm_client = egg_sm_client_get ();</td></tr>
+<tr class="codeline" data-linenumber="1486"><td class="num" id="LN1486">1486</td><td class="line"> <span class='macro'>g_signal_connect (sm_client, <span class='string_literal'>"save-state"</span>,<span class='macro_popup'>g_signal_connect_data ((sm_client), ("save-state"), (((GCallback<br>) (terminal_app_save_state_cb))), (app), ((void*)0), (GConnectFlags<br>) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1487"><td class="num" id="LN1487">1487</td><td class="line"> <span class='macro'>G_CALLBACK (terminal_app_save_state_cb), app)<span class='macro_popup'>g_signal_connect_data ((sm_client), ("save-state"), (((GCallback<br>) (terminal_app_save_state_cb))), (app), ((void*)0), (GConnectFlags<br>) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1488"><td class="num" id="LN1488">1488</td><td class="line"> <span class='macro'>g_signal_connect (sm_client, <span class='string_literal'>"quit"</span>,<span class='macro_popup'>g_signal_connect_data ((sm_client), ("quit"), (((GCallback) (<br>terminal_app_client_quit_cb))), (app), ((void*)0), (GConnectFlags<br>) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1489"><td class="num" id="LN1489">1489</td><td class="line"> <span class='macro'>G_CALLBACK (terminal_app_client_quit_cb), app)<span class='macro_popup'>g_signal_connect_data ((sm_client), ("quit"), (((GCallback) (<br>terminal_app_client_quit_cb))), (app), ((void*)0), (GConnectFlags<br>) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1490"><td class="num" id="LN1490">1490</td><td class="line"><span class='directive'>#endif /* HAVE_SMCLIENT */</span></td></tr>
+<tr class="codeline" data-linenumber="1491"><td class="num" id="LN1491">1491</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1492"><td class="num" id="LN1492">1492</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1493"><td class="num" id="LN1493">1493</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1494"><td class="num" id="LN1494">1494</td><td class="line">terminal_app_finalize (GObject *object)</td></tr>
+<tr class="codeline" data-linenumber="1495"><td class="num" id="LN1495">1495</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1496"><td class="num" id="LN1496">1496</td><td class="line"> TerminalApp *app = <span class='macro'>TERMINAL_APP (object)<span class='macro_popup'>((((TerminalApp*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((object)), ((terminal_app_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1497"><td class="num" id="LN1497">1497</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1498"><td class="num" id="LN1498">1498</td><td class="line"><span class='directive'>#ifdef <span class='macro'>HAVE_SMCLIENT<span class='macro_popup'>1</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1499"><td class="num" id="LN1499">1499</td><td class="line"> EggSMClient *sm_client;</td></tr>
+<tr class="codeline" data-linenumber="1500"><td class="num" id="LN1500">1500</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1501"><td class="num" id="LN1501">1501</td><td class="line"> sm_client = egg_sm_client_get ();</td></tr>
+<tr class="codeline" data-linenumber="1502"><td class="num" id="LN1502">1502</td><td class="line"> g_signal_handlers_disconnect_matched (sm_client, G_SIGNAL_MATCH_DATA,</td></tr>
+<tr class="codeline" data-linenumber="1503"><td class="num" id="LN1503">1503</td><td class="line"> 0, 0, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, app);</td></tr>
+<tr class="codeline" data-linenumber="1504"><td class="num" id="LN1504">1504</td><td class="line"><span class='directive'>#endif /* HAVE_SMCLIENT */</span></td></tr>
+<tr class="codeline" data-linenumber="1505"><td class="num" id="LN1505">1505</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1506"><td class="num" id="LN1506">1506</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (settings_global,<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_profile_list_notify_cb))), (app<br>))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1507"><td class="num" id="LN1507">1507</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_app_profile_list_notify_cb),<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_profile_list_notify_cb))), (app<br>))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1508"><td class="num" id="LN1508">1508</td><td class="line"> <span class='macro'>app)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_profile_list_notify_cb))), (app<br>))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1509"><td class="num" id="LN1509">1509</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (settings_global,<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_default_profile_notify_cb))),<br> (app))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1510"><td class="num" id="LN1510">1510</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_app_default_profile_notify_cb),<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_default_profile_notify_cb))),<br> (app))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1511"><td class="num" id="LN1511">1511</td><td class="line"> <span class='macro'>app)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_default_profile_notify_cb))),<br> (app))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1512"><td class="num" id="LN1512">1512</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (settings_global,<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_encoding_list_notify_cb))), (<br>app))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1513"><td class="num" id="LN1513">1513</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_app_encoding_list_notify_cb),<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_encoding_list_notify_cb))), (<br>app))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1514"><td class="num" id="LN1514">1514</td><td class="line"> <span class='macro'>app)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_encoding_list_notify_cb))), (<br>app))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1515"><td class="num" id="LN1515">1515</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (app-&gt;settings_font,<span class='macro_popup'>g_signal_handlers_disconnect_matched ((app-&gt;settings_font)<br>, (GSignalMatchType) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA<br>), 0, 0, ((void*)0), (((GCallback) (terminal_app_system_font_notify_cb<br>))), (app))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1516"><td class="num" id="LN1516">1516</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_app_system_font_notify_cb),<span class='macro_popup'>g_signal_handlers_disconnect_matched ((app-&gt;settings_font)<br>, (GSignalMatchType) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA<br>), 0, 0, ((void*)0), (((GCallback) (terminal_app_system_font_notify_cb<br>))), (app))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1517"><td class="num" id="LN1517">1517</td><td class="line"> <span class='macro'>app)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((app-&gt;settings_font)<br>, (GSignalMatchType) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA<br>), 0, 0, ((void*)0), (((GCallback) (terminal_app_system_font_notify_cb<br>))), (app))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1518"><td class="num" id="LN1518">1518</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (settings_global,<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_enable_menu_accels_notify_cb)<br>)), (app))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1519"><td class="num" id="LN1519">1519</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_app_enable_menu_accels_notify_cb),<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_enable_menu_accels_notify_cb)<br>)), (app))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1520"><td class="num" id="LN1520">1520</td><td class="line"> <span class='macro'>app)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_enable_menu_accels_notify_cb)<br>)), (app))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1521"><td class="num" id="LN1521">1521</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (settings_global,<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_enable_mnemonics_notify_cb)))<br>, (app))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1522"><td class="num" id="LN1522">1522</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_app_enable_mnemonics_notify_cb),<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_enable_mnemonics_notify_cb)))<br>, (app))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1523"><td class="num" id="LN1523">1523</td><td class="line"> <span class='macro'>app)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((settings_global), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_app_enable_mnemonics_notify_cb)))<br>, (app))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1524"><td class="num" id="LN1524">1524</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1525"><td class="num" id="LN1525">1525</td><td class="line"> g_object_unref (settings_global);</td></tr>
+<tr class="codeline" data-linenumber="1526"><td class="num" id="LN1526">1526</td><td class="line"> g_object_unref (app-&gt;settings_font);</td></tr>
+<tr class="codeline" data-linenumber="1527"><td class="num" id="LN1527">1527</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1528"><td class="num" id="LN1528">1528</td><td class="line"> g_free (app-&gt;default_profile_id);</td></tr>
+<tr class="codeline" data-linenumber="1529"><td class="num" id="LN1529">1529</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1530"><td class="num" id="LN1530">1530</td><td class="line"> g_hash_table_destroy (app-&gt;profiles);</td></tr>
+<tr class="codeline" data-linenumber="1531"><td class="num" id="LN1531">1531</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1532"><td class="num" id="LN1532">1532</td><td class="line"> g_hash_table_destroy (app-&gt;encodings);</td></tr>
+<tr class="codeline" data-linenumber="1533"><td class="num" id="LN1533">1533</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1534"><td class="num" id="LN1534">1534</td><td class="line"> pango_font_description_free (app-&gt;system_font_desc);</td></tr>
+<tr class="codeline" data-linenumber="1535"><td class="num" id="LN1535">1535</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1536"><td class="num" id="LN1536">1536</td><td class="line"> terminal_accels_shutdown ();</td></tr>
+<tr class="codeline" data-linenumber="1537"><td class="num" id="LN1537">1537</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1538"><td class="num" id="LN1538">1538</td><td class="line"> <span class='macro'>G_OBJECT_CLASS (terminal_app_parent_class)<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((terminal_app_parent_class)), (((GType) ((20) &lt;&lt; (2<br>))))))))</span></span>-&gt;finalize (object);</td></tr>
+<tr class="codeline" data-linenumber="1539"><td class="num" id="LN1539">1539</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1540"><td class="num" id="LN1540">1540</td><td class="line"> global_app = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1541"><td class="num" id="LN1541">1541</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1542"><td class="num" id="LN1542">1542</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1543"><td class="num" id="LN1543">1543</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1544"><td class="num" id="LN1544">1544</td><td class="line">terminal_app_get_property (GObject *object,</td></tr>
+<tr class="codeline" data-linenumber="1545"><td class="num" id="LN1545">1545</td><td class="line"> guint prop_id,</td></tr>
+<tr class="codeline" data-linenumber="1546"><td class="num" id="LN1546">1546</td><td class="line"> GValue *value,</td></tr>
+<tr class="codeline" data-linenumber="1547"><td class="num" id="LN1547">1547</td><td class="line"> GParamSpec *pspec)</td></tr>
+<tr class="codeline" data-linenumber="1548"><td class="num" id="LN1548">1548</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1549"><td class="num" id="LN1549">1549</td><td class="line"> TerminalApp *app = <span class='macro'>TERMINAL_APP (object)<span class='macro_popup'>((((TerminalApp*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((object)), ((terminal_app_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1550"><td class="num" id="LN1550">1550</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1551"><td class="num" id="LN1551">1551</td><td class="line"> <span class='keyword'>switch</span> (prop_id)</td></tr>
+<tr class="codeline" data-linenumber="1552"><td class="num" id="LN1552">1552</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1553"><td class="num" id="LN1553">1553</td><td class="line"> <span class='keyword'>case</span> PROP_SYSTEM_FONT:</td></tr>
+<tr class="codeline" data-linenumber="1554"><td class="num" id="LN1554">1554</td><td class="line"> <span class='keyword'>if</span> (app-&gt;system_font_desc)</td></tr>
+<tr class="codeline" data-linenumber="1555"><td class="num" id="LN1555">1555</td><td class="line"> g_value_set_boxed (value, app-&gt;system_font_desc);</td></tr>
+<tr class="codeline" data-linenumber="1556"><td class="num" id="LN1556">1556</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="1557"><td class="num" id="LN1557">1557</td><td class="line"> g_value_take_boxed (value, pango_font_description_from_string (<span class='macro'>DEFAULT_MONOSPACE_FONT<span class='macro_popup'>("Monospace 10")</span></span>));</td></tr>
+<tr class="codeline" data-linenumber="1558"><td class="num" id="LN1558">1558</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1559"><td class="num" id="LN1559">1559</td><td class="line"> <span class='keyword'>case</span> PROP_ENABLE_MENU_BAR_ACCEL:</td></tr>
+<tr class="codeline" data-linenumber="1560"><td class="num" id="LN1560">1560</td><td class="line"> g_value_set_boolean (value, app-&gt;enable_menu_accels);</td></tr>
+<tr class="codeline" data-linenumber="1561"><td class="num" id="LN1561">1561</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1562"><td class="num" id="LN1562">1562</td><td class="line"> <span class='keyword'>case</span> PROP_ENABLE_MNEMONICS:</td></tr>
+<tr class="codeline" data-linenumber="1563"><td class="num" id="LN1563">1563</td><td class="line"> g_value_set_boolean (value, app-&gt;enable_mnemonics);</td></tr>
+<tr class="codeline" data-linenumber="1564"><td class="num" id="LN1564">1564</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1565"><td class="num" id="LN1565">1565</td><td class="line"> <span class='keyword'>case</span> PROP_DEFAULT_PROFILE:</td></tr>
+<tr class="codeline" data-linenumber="1566"><td class="num" id="LN1566">1566</td><td class="line"> g_value_set_object (value, app-&gt;default_profile);</td></tr>
+<tr class="codeline" data-linenumber="1567"><td class="num" id="LN1567">1567</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1568"><td class="num" id="LN1568">1568</td><td class="line"> <span class='keyword'>default</span>:</td></tr>
+<tr class="codeline" data-linenumber="1569"><td class="num" id="LN1569">1569</td><td class="line"> <span class='macro'>G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec)<span class='macro_popup'>do { GObject *_glib__object = (GObject*) ((object)); GParamSpec<br> *_glib__pspec = (GParamSpec*) ((pspec)); guint _glib__property_id<br> = ((prop_id)); g_warning ("%s:%d: invalid %s id %u for \"%s\" of type '%s' in '%s'"<br>, "terminal-app.c", 1569, ("property"), _glib__property_id, _glib__pspec<br>-&gt;name, g_type_name ((((((GTypeClass*) (((GTypeInstance*) (<br>_glib__pspec))-&gt;g_class))-&gt;g_type)))), (g_type_name (((<br>(((GTypeClass*) (((GTypeInstance*) (_glib__object))-&gt;g_class<br>))-&gt;g_type)))))); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1570"><td class="num" id="LN1570">1570</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1571"><td class="num" id="LN1571">1571</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1572"><td class="num" id="LN1572">1572</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1573"><td class="num" id="LN1573">1573</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1574"><td class="num" id="LN1574">1574</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1575"><td class="num" id="LN1575">1575</td><td class="line">terminal_app_set_property (GObject *object,</td></tr>
+<tr class="codeline" data-linenumber="1576"><td class="num" id="LN1576">1576</td><td class="line"> guint prop_id,</td></tr>
+<tr class="codeline" data-linenumber="1577"><td class="num" id="LN1577">1577</td><td class="line"> <span class='keyword'>const</span> GValue *value,</td></tr>
+<tr class="codeline" data-linenumber="1578"><td class="num" id="LN1578">1578</td><td class="line"> GParamSpec *pspec)</td></tr>
+<tr class="codeline" data-linenumber="1579"><td class="num" id="LN1579">1579</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1580"><td class="num" id="LN1580">1580</td><td class="line"> TerminalApp *app = <span class='macro'>TERMINAL_APP (object)<span class='macro_popup'>((((TerminalApp*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((object)), ((terminal_app_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1581"><td class="num" id="LN1581">1581</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1582"><td class="num" id="LN1582">1582</td><td class="line"> <span class='keyword'>switch</span> (prop_id)</td></tr>
+<tr class="codeline" data-linenumber="1583"><td class="num" id="LN1583">1583</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1584"><td class="num" id="LN1584">1584</td><td class="line"> <span class='keyword'>case</span> PROP_ENABLE_MENU_BAR_ACCEL:</td></tr>
+<tr class="codeline" data-linenumber="1585"><td class="num" id="LN1585">1585</td><td class="line"> app-&gt;enable_menu_accels = g_value_get_boolean (value);</td></tr>
+<tr class="codeline" data-linenumber="1586"><td class="num" id="LN1586">1586</td><td class="line"> g_settings_set_boolean (settings_global, <span class='macro'>ENABLE_MENU_BAR_ACCEL_KEY<span class='macro_popup'>"use-menu-accelerators"</span></span>, app-&gt;enable_menu_accels);</td></tr>
+<tr class="codeline" data-linenumber="1587"><td class="num" id="LN1587">1587</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1588"><td class="num" id="LN1588">1588</td><td class="line"> <span class='keyword'>case</span> PROP_ENABLE_MNEMONICS:</td></tr>
+<tr class="codeline" data-linenumber="1589"><td class="num" id="LN1589">1589</td><td class="line"> app-&gt;enable_mnemonics = g_value_get_boolean (value);</td></tr>
+<tr class="codeline" data-linenumber="1590"><td class="num" id="LN1590">1590</td><td class="line"> g_settings_set_boolean (settings_global, <span class='macro'>ENABLE_MNEMONICS_KEY<span class='macro_popup'>"use-mnemonics"</span></span>, app-&gt;enable_mnemonics);</td></tr>
+<tr class="codeline" data-linenumber="1591"><td class="num" id="LN1591">1591</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1592"><td class="num" id="LN1592">1592</td><td class="line"> <span class='keyword'>case</span> PROP_DEFAULT_PROFILE:</td></tr>
+<tr class="codeline" data-linenumber="1593"><td class="num" id="LN1593">1593</td><td class="line"> <span class='keyword'>case</span> PROP_SYSTEM_FONT:</td></tr>
+<tr class="codeline" data-linenumber="1594"><td class="num" id="LN1594">1594</td><td class="line"> <span class='comment'>/* not writable */</span></td></tr>
+<tr class="codeline" data-linenumber="1595"><td class="num" id="LN1595">1595</td><td class="line"> <span class='keyword'>default</span>:</td></tr>
+<tr class="codeline" data-linenumber="1596"><td class="num" id="LN1596">1596</td><td class="line"> <span class='macro'>G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec)<span class='macro_popup'>do { GObject *_glib__object = (GObject*) ((object)); GParamSpec<br> *_glib__pspec = (GParamSpec*) ((pspec)); guint _glib__property_id<br> = ((prop_id)); g_warning ("%s:%d: invalid %s id %u for \"%s\" of type '%s' in '%s'"<br>, "terminal-app.c", 1596, ("property"), _glib__property_id, _glib__pspec<br>-&gt;name, g_type_name ((((((GTypeClass*) (((GTypeInstance*) (<br>_glib__pspec))-&gt;g_class))-&gt;g_type)))), (g_type_name (((<br>(((GTypeClass*) (((GTypeInstance*) (_glib__object))-&gt;g_class<br>))-&gt;g_type)))))); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1597"><td class="num" id="LN1597">1597</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1598"><td class="num" id="LN1598">1598</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1599"><td class="num" id="LN1599">1599</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1600"><td class="num" id="LN1600">1600</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1601"><td class="num" id="LN1601">1601</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1602"><td class="num" id="LN1602">1602</td><td class="line">terminal_app_real_quit (TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="1603"><td class="num" id="LN1603">1603</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1604"><td class="num" id="LN1604">1604</td><td class="line"> gtk_main_quit();</td></tr>
+<tr class="codeline" data-linenumber="1605"><td class="num" id="LN1605">1605</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1606"><td class="num" id="LN1606">1606</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1607"><td class="num" id="LN1607">1607</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1608"><td class="num" id="LN1608">1608</td><td class="line">terminal_app_class_init (TerminalAppClass *klass)</td></tr>
+<tr class="codeline" data-linenumber="1609"><td class="num" id="LN1609">1609</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1610"><td class="num" id="LN1610">1610</td><td class="line"> GObjectClass *object_class = <span class='macro'>G_OBJECT_CLASS (klass)<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((klass)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1611"><td class="num" id="LN1611">1611</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1612"><td class="num" id="LN1612">1612</td><td class="line"> object_class-&gt;finalize = terminal_app_finalize;</td></tr>
+<tr class="codeline" data-linenumber="1613"><td class="num" id="LN1613">1613</td><td class="line"> object_class-&gt;get_property = terminal_app_get_property;</td></tr>
+<tr class="codeline" data-linenumber="1614"><td class="num" id="LN1614">1614</td><td class="line"> object_class-&gt;set_property = terminal_app_set_property;</td></tr>
+<tr class="codeline" data-linenumber="1615"><td class="num" id="LN1615">1615</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1616"><td class="num" id="LN1616">1616</td><td class="line"> klass-&gt;quit = terminal_app_real_quit;</td></tr>
+<tr class="codeline" data-linenumber="1617"><td class="num" id="LN1617">1617</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1618"><td class="num" id="LN1618">1618</td><td class="line"> signals[QUIT] =</td></tr>
+<tr class="codeline" data-linenumber="1619"><td class="num" id="LN1619">1619</td><td class="line"> g_signal_new (<span class='macro'>I_(<span class='string_literal'>"quit"</span>)<span class='macro_popup'>g_intern_static_string ("quit")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1620"><td class="num" id="LN1620">1620</td><td class="line"> <span class='macro'>G_OBJECT_CLASS_TYPE (object_class)<span class='macro_popup'>((((GTypeClass*) (object_class))-&gt;g_type))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1621"><td class="num" id="LN1621">1621</td><td class="line"> G_SIGNAL_RUN_LAST,</td></tr>
+<tr class="codeline" data-linenumber="1622"><td class="num" id="LN1622">1622</td><td class="line"> <span class='macro'>G_STRUCT_OFFSET (TerminalAppClass, quit)<span class='macro_popup'>((glong) __builtin_offsetof(TerminalAppClass, quit))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1623"><td class="num" id="LN1623">1623</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1624"><td class="num" id="LN1624">1624</td><td class="line"> g_cclosure_marshal_VOID__VOID,</td></tr>
+<tr class="codeline" data-linenumber="1625"><td class="num" id="LN1625">1625</td><td class="line"> <span class='macro'>G_TYPE_NONE<span class='macro_popup'>((GType) ((1) &lt;&lt; (2)))</span></span>, 0);</td></tr>
+<tr class="codeline" data-linenumber="1626"><td class="num" id="LN1626">1626</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1627"><td class="num" id="LN1627">1627</td><td class="line"> signals[PROFILE_LIST_CHANGED] =</td></tr>
+<tr class="codeline" data-linenumber="1628"><td class="num" id="LN1628">1628</td><td class="line"> g_signal_new (<span class='macro'>I_(<span class='string_literal'>"profile-list-changed"</span>)<span class='macro_popup'>g_intern_static_string ("profile-list-changed")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1629"><td class="num" id="LN1629">1629</td><td class="line"> <span class='macro'>G_OBJECT_CLASS_TYPE (object_class)<span class='macro_popup'>((((GTypeClass*) (object_class))-&gt;g_type))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1630"><td class="num" id="LN1630">1630</td><td class="line"> G_SIGNAL_RUN_LAST,</td></tr>
+<tr class="codeline" data-linenumber="1631"><td class="num" id="LN1631">1631</td><td class="line"> <span class='macro'>G_STRUCT_OFFSET (TerminalAppClass, profile_list_changed)<span class='macro_popup'>((glong) __builtin_offsetof(TerminalAppClass, profile_list_changed<br>))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1632"><td class="num" id="LN1632">1632</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1633"><td class="num" id="LN1633">1633</td><td class="line"> g_cclosure_marshal_VOID__VOID,</td></tr>
+<tr class="codeline" data-linenumber="1634"><td class="num" id="LN1634">1634</td><td class="line"> <span class='macro'>G_TYPE_NONE<span class='macro_popup'>((GType) ((1) &lt;&lt; (2)))</span></span>, 0);</td></tr>
+<tr class="codeline" data-linenumber="1635"><td class="num" id="LN1635">1635</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1636"><td class="num" id="LN1636">1636</td><td class="line"> signals[ENCODING_LIST_CHANGED] =</td></tr>
+<tr class="codeline" data-linenumber="1637"><td class="num" id="LN1637">1637</td><td class="line"> g_signal_new (<span class='macro'>I_(<span class='string_literal'>"encoding-list-changed"</span>)<span class='macro_popup'>g_intern_static_string ("encoding-list-changed")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1638"><td class="num" id="LN1638">1638</td><td class="line"> <span class='macro'>G_OBJECT_CLASS_TYPE (object_class)<span class='macro_popup'>((((GTypeClass*) (object_class))-&gt;g_type))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1639"><td class="num" id="LN1639">1639</td><td class="line"> G_SIGNAL_RUN_LAST,</td></tr>
+<tr class="codeline" data-linenumber="1640"><td class="num" id="LN1640">1640</td><td class="line"> <span class='macro'>G_STRUCT_OFFSET (TerminalAppClass, profile_list_changed)<span class='macro_popup'>((glong) __builtin_offsetof(TerminalAppClass, profile_list_changed<br>))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1641"><td class="num" id="LN1641">1641</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1642"><td class="num" id="LN1642">1642</td><td class="line"> g_cclosure_marshal_VOID__VOID,</td></tr>
+<tr class="codeline" data-linenumber="1643"><td class="num" id="LN1643">1643</td><td class="line"> <span class='macro'>G_TYPE_NONE<span class='macro_popup'>((GType) ((1) &lt;&lt; (2)))</span></span>, 0);</td></tr>
+<tr class="codeline" data-linenumber="1644"><td class="num" id="LN1644">1644</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1645"><td class="num" id="LN1645">1645</td><td class="line"> g_object_class_install_property</td></tr>
+<tr class="codeline" data-linenumber="1646"><td class="num" id="LN1646">1646</td><td class="line"> (object_class,</td></tr>
+<tr class="codeline" data-linenumber="1647"><td class="num" id="LN1647">1647</td><td class="line"> PROP_ENABLE_MENU_BAR_ACCEL,</td></tr>
+<tr class="codeline" data-linenumber="1648"><td class="num" id="LN1648">1648</td><td class="line"> g_param_spec_boolean (<span class='macro'>TERMINAL_APP_ENABLE_MENU_BAR_ACCEL<span class='macro_popup'>"enable-menu-accels"</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1649"><td class="num" id="LN1649">1649</td><td class="line"> <span class='macro'>DEFAULT_ENABLE_MENU_BAR_ACCEL<span class='macro_popup'>((!(0)))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1650"><td class="num" id="LN1650">1650</td><td class="line"> G_PARAM_READWRITE | G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB));</td></tr>
+<tr class="codeline" data-linenumber="1651"><td class="num" id="LN1651">1651</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1652"><td class="num" id="LN1652">1652</td><td class="line"> g_object_class_install_property</td></tr>
+<tr class="codeline" data-linenumber="1653"><td class="num" id="LN1653">1653</td><td class="line"> (object_class,</td></tr>
+<tr class="codeline" data-linenumber="1654"><td class="num" id="LN1654">1654</td><td class="line"> PROP_ENABLE_MNEMONICS,</td></tr>
+<tr class="codeline" data-linenumber="1655"><td class="num" id="LN1655">1655</td><td class="line"> g_param_spec_boolean (<span class='macro'>TERMINAL_APP_ENABLE_MNEMONICS<span class='macro_popup'>"enable-mnemonics"</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1656"><td class="num" id="LN1656">1656</td><td class="line"> <span class='macro'>DEFAULT_ENABLE_MNEMONICS<span class='macro_popup'>((!(0)))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1657"><td class="num" id="LN1657">1657</td><td class="line"> G_PARAM_READWRITE | G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB));</td></tr>
+<tr class="codeline" data-linenumber="1658"><td class="num" id="LN1658">1658</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1659"><td class="num" id="LN1659">1659</td><td class="line"> g_object_class_install_property</td></tr>
+<tr class="codeline" data-linenumber="1660"><td class="num" id="LN1660">1660</td><td class="line"> (object_class,</td></tr>
+<tr class="codeline" data-linenumber="1661"><td class="num" id="LN1661">1661</td><td class="line"> PROP_SYSTEM_FONT,</td></tr>
+<tr class="codeline" data-linenumber="1662"><td class="num" id="LN1662">1662</td><td class="line"> g_param_spec_boxed (<span class='macro'>TERMINAL_APP_SYSTEM_FONT<span class='macro_popup'>"system-font"</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1663"><td class="num" id="LN1663">1663</td><td class="line"> <span class='macro'>PANGO_TYPE_FONT_DESCRIPTION<span class='macro_popup'>(pango_font_description_get_type ())</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1664"><td class="num" id="LN1664">1664</td><td class="line"> G_PARAM_READABLE | G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB));</td></tr>
+<tr class="codeline" data-linenumber="1665"><td class="num" id="LN1665">1665</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1666"><td class="num" id="LN1666">1666</td><td class="line"> g_object_class_install_property</td></tr>
+<tr class="codeline" data-linenumber="1667"><td class="num" id="LN1667">1667</td><td class="line"> (object_class,</td></tr>
+<tr class="codeline" data-linenumber="1668"><td class="num" id="LN1668">1668</td><td class="line"> PROP_DEFAULT_PROFILE,</td></tr>
+<tr class="codeline" data-linenumber="1669"><td class="num" id="LN1669">1669</td><td class="line"> g_param_spec_object (<span class='macro'>TERMINAL_APP_DEFAULT_PROFILE<span class='macro_popup'>"default-profile"</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1670"><td class="num" id="LN1670">1670</td><td class="line"> <span class='macro'>TERMINAL_TYPE_PROFILE<span class='macro_popup'>(terminal_profile_get_type ())</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1671"><td class="num" id="LN1671">1671</td><td class="line"> G_PARAM_READABLE | G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB));</td></tr>
+<tr class="codeline" data-linenumber="1672"><td class="num" id="LN1672">1672</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1673"><td class="num" id="LN1673">1673</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1674"><td class="num" id="LN1674">1674</td><td class="line"><span class='comment'>/* Public API */</span></td></tr>
+<tr class="codeline" data-linenumber="1675"><td class="num" id="LN1675">1675</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1676"><td class="num" id="LN1676">1676</td><td class="line">TerminalApp*</td></tr>
+<tr class="codeline" data-linenumber="1677"><td class="num" id="LN1677">1677</td><td class="line">terminal_app_get (<span class='keyword'>void</span>)</td></tr>
+<tr class="codeline" data-linenumber="1678"><td class="num" id="LN1678">1678</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1679"><td class="num" id="LN1679">1679</td><td class="line"> <span class='keyword'>if</span> (global_app == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1680"><td class="num" id="LN1680">1680</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1681"><td class="num" id="LN1681">1681</td><td class="line"> g_object_new (<span class='macro'>TERMINAL_TYPE_APP<span class='macro_popup'>(terminal_app_get_type ())</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1682"><td class="num" id="LN1682">1682</td><td class="line"> <span class='macro'>g_assert (global_app != NULL)<span class='macro_popup'>do { if (global_app != ((void*)0)) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-app.c", 1682, ((const char*) (__func__<br>)), "global_app != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1683"><td class="num" id="LN1683">1683</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1684"><td class="num" id="LN1684">1684</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1685"><td class="num" id="LN1685">1685</td><td class="line"> <span class='keyword'>return</span> global_app;</td></tr>
+<tr class="codeline" data-linenumber="1686"><td class="num" id="LN1686">1686</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1687"><td class="num" id="LN1687">1687</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1688"><td class="num" id="LN1688">1688</td><td class="line"><span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1689"><td class="num" id="LN1689">1689</td><td class="line">terminal_app_shutdown (<span class='keyword'>void</span>)</td></tr>
+<tr class="codeline" data-linenumber="1690"><td class="num" id="LN1690">1690</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1691"><td class="num" id="LN1691">1691</td><td class="line"> <span class='keyword'>if</span> (global_app == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1692"><td class="num" id="LN1692">1692</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1693"><td class="num" id="LN1693">1693</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1694"><td class="num" id="LN1694">1694</td><td class="line"> g_object_unref (global_app);</td></tr>
+<tr class="codeline" data-linenumber="1695"><td class="num" id="LN1695">1695</td><td class="line"> <span class='macro'>g_assert (global_app == NULL)<span class='macro_popup'>do { if (global_app == ((void*)0)) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-app.c", 1695, ((const char*) (__func__<br>)), "global_app == NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1696"><td class="num" id="LN1696">1696</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1697"><td class="num" id="LN1697">1697</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1698"><td class="num" id="LN1698">1698</td><td class="line"><span class='comment'>/**</span></td></tr>
+<tr class="codeline" data-linenumber="1699"><td class="num" id="LN1699">1699</td><td class="line"> <span class='comment'>* terminal_app_handle_options:</span></td></tr>
+<tr class="codeline" data-linenumber="1700"><td class="num" id="LN1700">1700</td><td class="line"> <span class='comment'>* @app:</span></td></tr>
+<tr class="codeline" data-linenumber="1701"><td class="num" id="LN1701">1701</td><td class="line"> <span class='comment'>* @options: a #TerminalOptions</span></td></tr>
+<tr class="codeline" data-linenumber="1702"><td class="num" id="LN1702">1702</td><td class="line"> <span class='comment'>* @allow_resume: whether to merge the terminal configuration from the</span></td></tr>
+<tr class="codeline" data-linenumber="1703"><td class="num" id="LN1703">1703</td><td class="line"> <span class='comment'>* saved session on resume</span></td></tr>
+<tr class="codeline" data-linenumber="1704"><td class="num" id="LN1704">1704</td><td class="line"> <span class='comment'>* @error: a #GError to fill in</span></td></tr>
+<tr class="codeline" data-linenumber="1705"><td class="num" id="LN1705">1705</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="1706"><td class="num" id="LN1706">1706</td><td class="line"> <span class='comment'>* Processes @options. It loads or saves the terminal configuration, or</span></td></tr>
+<tr class="codeline" data-linenumber="1707"><td class="num" id="LN1707">1707</td><td class="line"> <span class='comment'>* opens the specified windows and tabs.</span></td></tr>
+<tr class="codeline" data-linenumber="1708"><td class="num" id="LN1708">1708</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="1709"><td class="num" id="LN1709">1709</td><td class="line"> <span class='comment'>* Returns: %TRUE if @options could be successfully handled, or %FALSE on</span></td></tr>
+<tr class="codeline" data-linenumber="1710"><td class="num" id="LN1710">1710</td><td class="line"> <span class='comment'>* error</span></td></tr>
+<tr class="codeline" data-linenumber="1711"><td class="num" id="LN1711">1711</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="1712"><td class="num" id="LN1712">1712</td><td class="line">gboolean</td></tr>
+<tr class="codeline" data-linenumber="1713"><td class="num" id="LN1713">1713</td><td class="line">terminal_app_handle_options (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="1714"><td class="num" id="LN1714">1714</td><td class="line"> TerminalOptions *options,</td></tr>
+<tr class="codeline" data-linenumber="1715"><td class="num" id="LN1715">1715</td><td class="line"> gboolean allow_resume,</td></tr>
+<tr class="codeline" data-linenumber="1716"><td class="num" id="LN1716">1716</td><td class="line"> GError **error)</td></tr>
+<tr class="codeline" data-linenumber="1717"><td class="num" id="LN1717">1717</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1718"><td class="num" id="LN1718">1718</td><td class="line"> GList *lw;</td></tr>
+<tr class="codeline" data-linenumber="1719"><td class="num" id="LN1719">1719</td><td class="line"> GdkScreen *gdk_screen;</td></tr>
+<tr class="codeline" data-linenumber="1720"><td class="num" id="LN1720">1720</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1721"><td class="num" id="LN1721">1721</td><td class="line"> gdk_screen = terminal_app_get_screen_by_display_name (options-&gt;display_name);</td></tr>
+<tr class="codeline" data-linenumber="1722"><td class="num" id="LN1722">1722</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1723"><td class="num" id="LN1723">1723</td><td class="line"> <span class='keyword'>if</span> (options-&gt;save_config)</td></tr>
+<tr class="codeline" data-linenumber="1724"><td class="num" id="LN1724">1724</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1725"><td class="num" id="LN1725">1725</td><td class="line"> <span class='keyword'>if</span> (options-&gt;remote_arguments)</td></tr>
+<tr class="codeline" data-linenumber="1726"><td class="num" id="LN1726">1726</td><td class="line"> <span class='keyword'>return</span> terminal_app_save_config_file (app, options-&gt;config_file, error);</td></tr>
+<tr class="codeline" data-linenumber="1727"><td class="num" id="LN1727">1727</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1728"><td class="num" id="LN1728">1728</td><td class="line"> g_set_error_literal (error, <span class='macro'>TERMINAL_OPTION_ERROR<span class='macro_popup'>(g_quark_from_static_string ("terminal-option-error"))</span></span>, TERMINAL_OPTION_ERROR_NOT_IN_FACTORY,</td></tr>
+<tr class="codeline" data-linenumber="1729"><td class="num" id="LN1729">1729</td><td class="line"> <span class='string_literal'>"Cannot use \"--save-config\" when starting the factory process"</span>);</td></tr>
+<tr class="codeline" data-linenumber="1730"><td class="num" id="LN1730">1730</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1731"><td class="num" id="LN1731">1731</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1732"><td class="num" id="LN1732">1732</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1733"><td class="num" id="LN1733">1733</td><td class="line"> <span class='keyword'>if</span> (options-&gt;load_config)</td></tr>
+<tr class="codeline" data-linenumber="1734"><td class="num" id="LN1734">1734</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1735"><td class="num" id="LN1735">1735</td><td class="line"> GKeyFile *key_file;</td></tr>
+<tr class="codeline" data-linenumber="1736"><td class="num" id="LN1736">1736</td><td class="line"> gboolean result;</td></tr>
+<tr class="codeline" data-linenumber="1737"><td class="num" id="LN1737">1737</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1738"><td class="num" id="LN1738">1738</td><td class="line"> key_file = g_key_file_new ();</td></tr>
+<tr class="codeline" data-linenumber="1739"><td class="num" id="LN1739">1739</td><td class="line"> result = g_key_file_load_from_file (key_file, options-&gt;config_file, 0, error) &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="1740"><td class="num" id="LN1740">1740</td><td class="line"> terminal_options_merge_config (options, key_file, SOURCE_DEFAULT, error);</td></tr>
+<tr class="codeline" data-linenumber="1741"><td class="num" id="LN1741">1741</td><td class="line"> g_key_file_free (key_file);</td></tr>
+<tr class="codeline" data-linenumber="1742"><td class="num" id="LN1742">1742</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1743"><td class="num" id="LN1743">1743</td><td class="line"> <span class='keyword'>if</span> (!result)</td></tr>
+<tr class="codeline" data-linenumber="1744"><td class="num" id="LN1744">1744</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1745"><td class="num" id="LN1745">1745</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1746"><td class="num" id="LN1746">1746</td><td class="line"> <span class='comment'>/* fall-through on success */</span></td></tr>
+<tr class="codeline" data-linenumber="1747"><td class="num" id="LN1747">1747</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1748"><td class="num" id="LN1748">1748</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1749"><td class="num" id="LN1749">1749</td><td class="line"><span class='directive'>#ifdef <span class='macro'>HAVE_SMCLIENT<span class='macro_popup'>1</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1750"><td class="num" id="LN1750">1750</td><td class="line"> EggSMClient *sm_client;</td></tr>
+<tr class="codeline" data-linenumber="1751"><td class="num" id="LN1751">1751</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1752"><td class="num" id="LN1752">1752</td><td class="line"> sm_client = egg_sm_client_get ();</td></tr>
+<tr class="codeline" data-linenumber="1753"><td class="num" id="LN1753">1753</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1754"><td class="num" id="LN1754">1754</td><td class="line"> <span class='keyword'>if</span> (allow_resume &amp;&amp; egg_sm_client_is_resumed (sm_client))</td></tr>
+<tr class="codeline" data-linenumber="1755"><td class="num" id="LN1755">1755</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1756"><td class="num" id="LN1756">1756</td><td class="line"> GKeyFile *key_file;</td></tr>
+<tr class="codeline" data-linenumber="1757"><td class="num" id="LN1757">1757</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1758"><td class="num" id="LN1758">1758</td><td class="line"> key_file = egg_sm_client_get_state_file (sm_client);</td></tr>
+<tr class="codeline" data-linenumber="1759"><td class="num" id="LN1759">1759</td><td class="line"> <span class='keyword'>if</span> (key_file != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span> &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="1760"><td class="num" id="LN1760">1760</td><td class="line"> !terminal_options_merge_config (options, key_file, SOURCE_SESSION, error))</td></tr>
+<tr class="codeline" data-linenumber="1761"><td class="num" id="LN1761">1761</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1762"><td class="num" id="LN1762">1762</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1763"><td class="num" id="LN1763">1763</td><td class="line"><span class='directive'>#endif /* HAVE_SMCLIENT */</span></td></tr>
+<tr class="codeline" data-linenumber="1764"><td class="num" id="LN1764">1764</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1765"><td class="num" id="LN1765">1765</td><td class="line"> <span class='comment'>/* Make sure we open at least one window */</span></td></tr>
+<tr class="codeline" data-linenumber="1766"><td class="num" id="LN1766">1766</td><td class="line"> terminal_options_ensure_window (options);</td></tr>
+<tr class="codeline" data-linenumber="1767"><td class="num" id="LN1767">1767</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1768"><td class="num" id="LN1768">1768</td><td class="line"> <span class='keyword'>if</span> (options-&gt;startup_id != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1769"><td class="num" id="LN1769">1769</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_FACTORY,<span class='macro_popup'>do { if (0) g_printerr("Startup ID is '%s'\n", options-&gt;startup_id<br>); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1770"><td class="num" id="LN1770">1770</td><td class="line"> <span class='string_literal'><span class='macro'>"Startup ID is '%s'\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("Startup ID is '%s'\n", options-&gt;startup_id<br>); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1771"><td class="num" id="LN1771">1771</td><td class="line"> <span class='macro'>options-&gt;startup_id)<span class='macro_popup'>do { if (0) g_printerr("Startup ID is '%s'\n", options-&gt;startup_id<br>); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1772"><td class="num" id="LN1772">1772</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1773"><td class="num" id="LN1773">1773</td><td class="line"> <span class='keyword'>for</span> (lw = options-&gt;initial_windows; lw != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; lw = lw-&gt;next)</td></tr>
+<tr class="codeline" data-linenumber="1774"><td class="num" id="LN1774">1774</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1775"><td class="num" id="LN1775">1775</td><td class="line"> InitialWindow *iw = lw-&gt;data;</td></tr>
+<tr class="codeline" data-linenumber="1776"><td class="num" id="LN1776">1776</td><td class="line"> TerminalWindow *window = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1777"><td class="num" id="LN1777">1777</td><td class="line"> GList *lt;</td></tr>
+<tr class="codeline" data-linenumber="1778"><td class="num" id="LN1778">1778</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1779"><td class="num" id="LN1779">1779</td><td class="line"> <span class='macro'>g_assert (iw-&gt;tabs)<span class='macro_popup'>do { if (iw-&gt;tabs) ; else g_assertion_message_expr (((gchar<br>*) 0), "terminal-app.c", 1779, ((const char*) (__func__)), "iw-&gt;tabs"<br>); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1780"><td class="num" id="LN1780">1780</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1781"><td class="num" id="LN1781">1781</td><td class="line"> <span class='keyword'>if</span> ( lw == options-&gt;initial_windows &amp;&amp; ((InitialTab *)iw-&gt;tabs-&gt;data)-&gt;attach_window )</td></tr>
+<tr class="codeline" data-linenumber="1782"><td class="num" id="LN1782">1782</td><td class="line"> window = terminal_app_get_current_window(app, gdk_screen, options-&gt;initial_workspace);</td></tr>
+<tr class="codeline" data-linenumber="1783"><td class="num" id="LN1783">1783</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1784"><td class="num" id="LN1784">1784</td><td class="line"> <span class='keyword'>if</span> (!window)</td></tr>
+<tr class="codeline" data-linenumber="1785"><td class="num" id="LN1785">1785</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1786"><td class="num" id="LN1786">1786</td><td class="line"> <span class='comment'>/* Create &amp; setup new window */</span></td></tr>
+<tr class="codeline" data-linenumber="1787"><td class="num" id="LN1787">1787</td><td class="line"> window = terminal_app_new_window (app, gdk_screen);</td></tr>
+<tr class="codeline" data-linenumber="1788"><td class="num" id="LN1788">1788</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1789"><td class="num" id="LN1789">1789</td><td class="line"> <span class='comment'>/* Restored windows shouldn't demand attention; see bug #586308. */</span></td></tr>
+<tr class="codeline" data-linenumber="1790"><td class="num" id="LN1790">1790</td><td class="line"> <span class='keyword'>if</span> (iw-&gt;source_tag == SOURCE_SESSION)</td></tr>
+<tr class="codeline" data-linenumber="1791"><td class="num" id="LN1791">1791</td><td class="line"> terminal_window_set_is_restored (window);</td></tr>
+<tr class="codeline" data-linenumber="1792"><td class="num" id="LN1792">1792</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1793"><td class="num" id="LN1793">1793</td><td class="line"> <span class='keyword'>if</span> (options-&gt;startup_id != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1794"><td class="num" id="LN1794">1794</td><td class="line"> gtk_window_set_startup_id (<span class='macro'>GTK_WINDOW (window)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_window_get_type ()))))))</span></span>, options-&gt;startup_id);</td></tr>
+<tr class="codeline" data-linenumber="1795"><td class="num" id="LN1795">1795</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1796"><td class="num" id="LN1796">1796</td><td class="line"> <span class='comment'>/* Overwrite the default, unique window role set in terminal_window_init */</span></td></tr>
+<tr class="codeline" data-linenumber="1797"><td class="num" id="LN1797">1797</td><td class="line"> <span class='keyword'>if</span> (iw-&gt;role)</td></tr>
+<tr class="codeline" data-linenumber="1798"><td class="num" id="LN1798">1798</td><td class="line"> gtk_window_set_role (<span class='macro'>GTK_WINDOW (window)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_window_get_type ()))))))</span></span>, iw-&gt;role);</td></tr>
+<tr class="codeline" data-linenumber="1799"><td class="num" id="LN1799">1799</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1800"><td class="num" id="LN1800">1800</td><td class="line"> <span class='keyword'>if</span> (iw-&gt;force_menubar_state)</td></tr>
+<tr class="codeline" data-linenumber="1801"><td class="num" id="LN1801">1801</td><td class="line"> terminal_window_set_menubar_visible (window, iw-&gt;menubar_state);</td></tr>
+<tr class="codeline" data-linenumber="1802"><td class="num" id="LN1802">1802</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1803"><td class="num" id="LN1803">1803</td><td class="line"> <span class='keyword'>if</span> (iw-&gt;start_fullscreen)</td></tr>
+<tr class="codeline" data-linenumber="1804"><td class="num" id="LN1804">1804</td><td class="line"> gtk_window_fullscreen (<span class='macro'>GTK_WINDOW (window)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_window_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1805"><td class="num" id="LN1805">1805</td><td class="line"> <span class='keyword'>if</span> (iw-&gt;start_maximized)</td></tr>
+<tr class="codeline" data-linenumber="1806"><td class="num" id="LN1806">1806</td><td class="line"> gtk_window_maximize (<span class='macro'>GTK_WINDOW (window)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_window_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1807"><td class="num" id="LN1807">1807</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1808"><td class="num" id="LN1808">1808</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1809"><td class="num" id="LN1809">1809</td><td class="line"> <span class='comment'>/* Now add the tabs */</span></td></tr>
+<tr class="codeline" data-linenumber="1810"><td class="num" id="LN1810">1810</td><td class="line"> <span class='keyword'>for</span> (lt = iw-&gt;tabs; lt != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; lt = lt-&gt;next)</td></tr>
+<tr class="codeline" data-linenumber="1811"><td class="num" id="LN1811">1811</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1812"><td class="num" id="LN1812">1812</td><td class="line"> InitialTab *it = lt-&gt;data;</td></tr>
+<tr class="codeline" data-linenumber="1813"><td class="num" id="LN1813">1813</td><td class="line"> TerminalProfile *profile = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1814"><td class="num" id="LN1814">1814</td><td class="line"> TerminalScreen *screen;</td></tr>
+<tr class="codeline" data-linenumber="1815"><td class="num" id="LN1815">1815</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *profile_name;</td></tr>
+<tr class="codeline" data-linenumber="1816"><td class="num" id="LN1816">1816</td><td class="line"> gboolean profile_is_id;</td></tr>
+<tr class="codeline" data-linenumber="1817"><td class="num" id="LN1817">1817</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1818"><td class="num" id="LN1818">1818</td><td class="line"> <span class='keyword'>if</span> (it-&gt;profile)</td></tr>
+<tr class="codeline" data-linenumber="1819"><td class="num" id="LN1819">1819</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1820"><td class="num" id="LN1820">1820</td><td class="line"> profile_name = it-&gt;profile;</td></tr>
+<tr class="codeline" data-linenumber="1821"><td class="num" id="LN1821">1821</td><td class="line"> profile_is_id = it-&gt;profile_is_id;</td></tr>
+<tr class="codeline" data-linenumber="1822"><td class="num" id="LN1822">1822</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1823"><td class="num" id="LN1823">1823</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="1824"><td class="num" id="LN1824">1824</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1825"><td class="num" id="LN1825">1825</td><td class="line"> profile_name = options-&gt;default_profile;</td></tr>
+<tr class="codeline" data-linenumber="1826"><td class="num" id="LN1826">1826</td><td class="line"> profile_is_id = options-&gt;default_profile_is_id;</td></tr>
+<tr class="codeline" data-linenumber="1827"><td class="num" id="LN1827">1827</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1828"><td class="num" id="LN1828">1828</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1829"><td class="num" id="LN1829">1829</td><td class="line"> <span class='keyword'>if</span> (profile_name)</td></tr>
+<tr class="codeline" data-linenumber="1830"><td class="num" id="LN1830">1830</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1831"><td class="num" id="LN1831">1831</td><td class="line"> <span class='keyword'>if</span> (profile_is_id)</td></tr>
+<tr class="codeline" data-linenumber="1832"><td class="num" id="LN1832">1832</td><td class="line"> profile = terminal_app_get_profile_by_name (app, profile_name);</td></tr>
+<tr class="codeline" data-linenumber="1833"><td class="num" id="LN1833">1833</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="1834"><td class="num" id="LN1834">1834</td><td class="line"> profile = terminal_app_get_profile_by_visible_name (app, profile_name);</td></tr>
+<tr class="codeline" data-linenumber="1835"><td class="num" id="LN1835">1835</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1836"><td class="num" id="LN1836">1836</td><td class="line"> <span class='keyword'>if</span> (profile == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1837"><td class="num" id="LN1837">1837</td><td class="line"> g_printerr (<span class='macro'>_(<span class='string_literal'>"No such profile \"%s\", using default profile\n"</span>)<span class='macro_popup'>gettext ("No such profile \"%s\", using default profile\n")</span></span>, it-&gt;profile);</td></tr>
+<tr class="codeline" data-linenumber="1838"><td class="num" id="LN1838">1838</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1839"><td class="num" id="LN1839">1839</td><td class="line"> <span class='keyword'>if</span> (profile == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1840"><td class="num" id="LN1840">1840</td><td class="line"> profile = terminal_app_get_profile_for_new_term (app);</td></tr>
+<tr class="codeline" data-linenumber="1841"><td class="num" id="LN1841">1841</td><td class="line"> <span class='macro'>g_assert (profile)<span class='macro_popup'>do { if (profile) ; else g_assertion_message_expr (((gchar*) 0<br>), "terminal-app.c", 1841, ((const char*) (__func__)), "profile"<br>); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1842"><td class="num" id="LN1842">1842</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1843"><td class="num" id="LN1843">1843</td><td class="line"> screen = terminal_app_new_terminal (app, window, profile,</td></tr>
+<tr class="codeline" data-linenumber="1844"><td class="num" id="LN1844">1844</td><td class="line"> it-&gt;exec_argv ? it-&gt;exec_argv : options-&gt;exec_argv,</td></tr>
+<tr class="codeline" data-linenumber="1845"><td class="num" id="LN1845">1845</td><td class="line"> it-&gt;title ? it-&gt;title : options-&gt;default_title,</td></tr>
+<tr class="codeline" data-linenumber="1846"><td class="num" id="LN1846">1846</td><td class="line"> it-&gt;working_dir ? it-&gt;working_dir : options-&gt;default_working_dir,</td></tr>
+<tr class="codeline" data-linenumber="1847"><td class="num" id="LN1847">1847</td><td class="line"> options-&gt;env,</td></tr>
+<tr class="codeline" data-linenumber="1848"><td class="num" id="LN1848">1848</td><td class="line"> it-&gt;zoom_set ? it-&gt;zoom : options-&gt;zoom);</td></tr>
+<tr class="codeline" data-linenumber="1849"><td class="num" id="LN1849">1849</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1850"><td class="num" id="LN1850">1850</td><td class="line"> <span class='keyword'>if</span> (it-&gt;active)</td></tr>
+<tr class="codeline" data-linenumber="1851"><td class="num" id="LN1851">1851</td><td class="line"> terminal_window_switch_screen (window, screen);</td></tr>
+<tr class="codeline" data-linenumber="1852"><td class="num" id="LN1852">1852</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1853"><td class="num" id="LN1853">1853</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1854"><td class="num" id="LN1854">1854</td><td class="line"> <span class='keyword'>if</span> (iw-&gt;geometry)</td></tr>
+<tr class="codeline" data-linenumber="1855"><td class="num" id="LN1855">1855</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1856"><td class="num" id="LN1856">1856</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_GEOMETRY,<span class='macro_popup'>do { if (0) g_printerr("[window %p] applying geometry %s\n", window<br>, iw-&gt;geometry); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1857"><td class="num" id="LN1857">1857</td><td class="line"> <span class='string_literal'><span class='macro'>"[window %p] applying geometry %s\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("[window %p] applying geometry %s\n", window<br>, iw-&gt;geometry); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1858"><td class="num" id="LN1858">1858</td><td class="line"> <span class='macro'>window, iw-&gt;geometry)<span class='macro_popup'>do { if (0) g_printerr("[window %p] applying geometry %s\n", window<br>, iw-&gt;geometry); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1859"><td class="num" id="LN1859">1859</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1860"><td class="num" id="LN1860">1860</td><td class="line"> <span class='keyword'>if</span> (!terminal_window_update_size_set_geometry (window,</td></tr>
+<tr class="codeline" data-linenumber="1861"><td class="num" id="LN1861">1861</td><td class="line"> terminal_window_get_active (window),</td></tr>
+<tr class="codeline" data-linenumber="1862"><td class="num" id="LN1862">1862</td><td class="line"> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1863"><td class="num" id="LN1863">1863</td><td class="line"> iw-&gt;geometry))</td></tr>
+<tr class="codeline" data-linenumber="1864"><td class="num" id="LN1864">1864</td><td class="line"> g_printerr (<span class='macro'>_(<span class='string_literal'>"Invalid geometry string \"%s\"\n"</span>)<span class='macro_popup'>gettext ("Invalid geometry string \"%s\"\n")</span></span>, iw-&gt;geometry);</td></tr>
+<tr class="codeline" data-linenumber="1865"><td class="num" id="LN1865">1865</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1866"><td class="num" id="LN1866">1866</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1867"><td class="num" id="LN1867">1867</td><td class="line"> gtk_window_present (<span class='macro'>GTK_WINDOW (window)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_window_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1868"><td class="num" id="LN1868">1868</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1869"><td class="num" id="LN1869">1869</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1870"><td class="num" id="LN1870">1870</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1871"><td class="num" id="LN1871">1871</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1872"><td class="num" id="LN1872">1872</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1873"><td class="num" id="LN1873">1873</td><td class="line">TerminalWindow *</td></tr>
+<tr class="codeline" data-linenumber="1874"><td class="num" id="LN1874">1874</td><td class="line">terminal_app_new_window (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="1875"><td class="num" id="LN1875">1875</td><td class="line"> GdkScreen *screen)</td></tr>
+<tr class="codeline" data-linenumber="1876"><td class="num" id="LN1876">1876</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1877"><td class="num" id="LN1877">1877</td><td class="line"> TerminalWindow *window;</td></tr>
+<tr class="codeline" data-linenumber="1878"><td class="num" id="LN1878">1878</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1879"><td class="num" id="LN1879">1879</td><td class="line"> window = terminal_window_new ();</td></tr>
+<tr class="codeline" data-linenumber="1880"><td class="num" id="LN1880">1880</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1881"><td class="num" id="LN1881">1881</td><td class="line"> app-&gt;windows = g_list_append (app-&gt;windows, window);</td></tr>
+<tr class="codeline" data-linenumber="1882"><td class="num" id="LN1882">1882</td><td class="line"> <span class='macro'>g_signal_connect (window, <span class='string_literal'>"destroy"</span>,<span class='macro_popup'>g_signal_connect_data ((window), ("destroy"), (((GCallback) (<br>terminal_window_destroyed))), (app), ((void*)0), (GConnectFlags<br>) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1883"><td class="num" id="LN1883">1883</td><td class="line"> <span class='macro'>G_CALLBACK (terminal_window_destroyed), app)<span class='macro_popup'>g_signal_connect_data ((window), ("destroy"), (((GCallback) (<br>terminal_window_destroyed))), (app), ((void*)0), (GConnectFlags<br>) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1884"><td class="num" id="LN1884">1884</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1885"><td class="num" id="LN1885">1885</td><td class="line"> <span class='keyword'>if</span> (screen)</td></tr>
+<tr class="codeline" data-linenumber="1886"><td class="num" id="LN1886">1886</td><td class="line"> gtk_window_set_screen (<span class='macro'>GTK_WINDOW (window)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_window_get_type ()))))))</span></span>, screen);</td></tr>
+<tr class="codeline" data-linenumber="1887"><td class="num" id="LN1887">1887</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1888"><td class="num" id="LN1888">1888</td><td class="line"> <span class='keyword'>return</span> window;</td></tr>
+<tr class="codeline" data-linenumber="1889"><td class="num" id="LN1889">1889</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1890"><td class="num" id="LN1890">1890</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1891"><td class="num" id="LN1891">1891</td><td class="line">TerminalScreen *</td></tr>
+<tr class="codeline" data-linenumber="1892"><td class="num" id="LN1892">1892</td><td class="line">terminal_app_new_terminal (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="1893"><td class="num" id="LN1893">1893</td><td class="line"> TerminalWindow *window,</td></tr>
+<tr class="codeline" data-linenumber="1894"><td class="num" id="LN1894">1894</td><td class="line"> TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1895"><td class="num" id="LN1895">1895</td><td class="line"> <span class='keyword'>char</span> **override_command,</td></tr>
+<tr class="codeline" data-linenumber="1896"><td class="num" id="LN1896">1896</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *title,</td></tr>
+<tr class="codeline" data-linenumber="1897"><td class="num" id="LN1897">1897</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *working_dir,</td></tr>
+<tr class="codeline" data-linenumber="1898"><td class="num" id="LN1898">1898</td><td class="line"> <span class='keyword'>char</span> **child_env,</td></tr>
+<tr class="codeline" data-linenumber="1899"><td class="num" id="LN1899">1899</td><td class="line"> <span class='keyword'>double</span> zoom)</td></tr>
+<tr class="codeline" data-linenumber="1900"><td class="num" id="LN1900">1900</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1901"><td class="num" id="LN1901">1901</td><td class="line"> TerminalScreen *screen;</td></tr>
+<tr class="codeline" data-linenumber="1902"><td class="num" id="LN1902">1902</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1903"><td class="num" id="LN1903">1903</td><td class="line"> <span class='macro'>g_return_val_if_fail (TERMINAL_IS_APP (app), NULL)<span class='macro_popup'>do { if (((((__extension__ ({ GTypeInstance *__inst = (GTypeInstance<br>*) ((app)); GType __t = ((terminal_app_get_type ())); gboolean<br> __r; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; })))))) { }<br> else { g_return_if_fail_warning (((gchar*) 0), ((const char*<br>) (__func__)), "TERMINAL_IS_APP (app)"); return (((void*)0));<br> } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1904"><td class="num" id="LN1904">1904</td><td class="line"> <span class='macro'>g_return_val_if_fail (TERMINAL_IS_WINDOW (window), NULL)<span class='macro_popup'>do { if (((((__extension__ ({ GTypeInstance *__inst = (GTypeInstance<br>*) ((window)); GType __t = ((terminal_window_get_type ())); gboolean<br> __r; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; })))))) { }<br> else { g_return_if_fail_warning (((gchar*) 0), ((const char*<br>) (__func__)), "TERMINAL_IS_WINDOW (window)"); return (((void<br>*)0)); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1905"><td class="num" id="LN1905">1905</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1906"><td class="num" id="LN1906">1906</td><td class="line"> screen = terminal_screen_new (profile, override_command, title,</td></tr>
+<tr class="codeline" data-linenumber="1907"><td class="num" id="LN1907">1907</td><td class="line"> working_dir, child_env, zoom);</td></tr>
+<tr class="codeline" data-linenumber="1908"><td class="num" id="LN1908">1908</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1909"><td class="num" id="LN1909">1909</td><td class="line"> terminal_window_add_screen (window, screen, -1);</td></tr>
+<tr class="codeline" data-linenumber="1910"><td class="num" id="LN1910">1910</td><td class="line"> terminal_window_switch_screen (window, screen);</td></tr>
+<tr class="codeline" data-linenumber="1911"><td class="num" id="LN1911">1911</td><td class="line"> gtk_widget_grab_focus (<span class='macro'>GTK_WIDGET (screen)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((screen)), ((gtk_widget_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1912"><td class="num" id="LN1912">1912</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1913"><td class="num" id="LN1913">1913</td><td class="line"> <span class='keyword'>return</span> screen;</td></tr>
+<tr class="codeline" data-linenumber="1914"><td class="num" id="LN1914">1914</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1915"><td class="num" id="LN1915">1915</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1916"><td class="num" id="LN1916">1916</td><td class="line"><span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1917"><td class="num" id="LN1917">1917</td><td class="line">terminal_app_edit_profile (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="1918"><td class="num" id="LN1918">1918</td><td class="line"> TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1919"><td class="num" id="LN1919">1919</td><td class="line"> GtkWindow *transient_parent,</td></tr>
+<tr class="codeline" data-linenumber="1920"><td class="num" id="LN1920">1920</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *widget_name)</td></tr>
+<tr class="codeline" data-linenumber="1921"><td class="num" id="LN1921">1921</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1922"><td class="num" id="LN1922">1922</td><td class="line"> terminal_profile_edit (profile, transient_parent, widget_name);</td></tr>
+<tr class="codeline" data-linenumber="1923"><td class="num" id="LN1923">1923</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1924"><td class="num" id="LN1924">1924</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1925"><td class="num" id="LN1925">1925</td><td class="line"><span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1926"><td class="num" id="LN1926">1926</td><td class="line">terminal_app_edit_keybindings (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="1927"><td class="num" id="LN1927">1927</td><td class="line"> GtkWindow *transient_parent)</td></tr>
+<tr class="codeline" data-linenumber="1928"><td class="num" id="LN1928">1928</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1929"><td class="num" id="LN1929">1929</td><td class="line"> terminal_edit_keys_dialog_show (transient_parent);</td></tr>
+<tr class="codeline" data-linenumber="1930"><td class="num" id="LN1930">1930</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1931"><td class="num" id="LN1931">1931</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1932"><td class="num" id="LN1932">1932</td><td class="line"><span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1933"><td class="num" id="LN1933">1933</td><td class="line">terminal_app_edit_encodings (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="1934"><td class="num" id="LN1934">1934</td><td class="line"> GtkWindow *transient_parent)</td></tr>
+<tr class="codeline" data-linenumber="1935"><td class="num" id="LN1935">1935</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1936"><td class="num" id="LN1936">1936</td><td class="line"> terminal_encoding_dialog_show (transient_parent);</td></tr>
+<tr class="codeline" data-linenumber="1937"><td class="num" id="LN1937">1937</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1938"><td class="num" id="LN1938">1938</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1939"><td class="num" id="LN1939">1939</td><td class="line"><span class='comment'>/*</span></td></tr>
+<tr class="codeline" data-linenumber="1940"><td class="num" id="LN1940">1940</td><td class="line"><span class='comment'>* Get the window in the given screen and workspace. If nothing is found,</span></td></tr>
+<tr class="codeline" data-linenumber="1941"><td class="num" id="LN1941">1941</td><td class="line"><span class='comment'>* a NULL is returned.</span></td></tr>
+<tr class="codeline" data-linenumber="1942"><td class="num" id="LN1942">1942</td><td class="line"><span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="1943"><td class="num" id="LN1943">1943</td><td class="line">TerminalWindow *</td></tr>
+<tr class="codeline" data-linenumber="1944"><td class="num" id="LN1944">1944</td><td class="line">terminal_app_get_current_window (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="1945"><td class="num" id="LN1945">1945</td><td class="line"> GdkScreen *from_screen,</td></tr>
+<tr class="codeline" data-linenumber="1946"><td class="num" id="LN1946">1946</td><td class="line"> <span class='keyword'>int</span> workspace)</td></tr>
+<tr class="codeline" data-linenumber="1947"><td class="num" id="LN1947">1947</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1948"><td class="num" id="LN1948">1948</td><td class="line"> GList *res = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1949"><td class="num" id="LN1949">1949</td><td class="line"> TerminalWindow *ret = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1950"><td class="num" id="LN1950">1950</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1951"><td class="num" id="LN1951">1951</td><td class="line"> <span class='keyword'>if</span> (app-&gt;windows == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1952"><td class="num" id="LN1952">1952</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1953"><td class="num" id="LN1953">1953</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1954"><td class="num" id="LN1954">1954</td><td class="line"> res = g_list_last (app-&gt;windows);</td></tr>
+<tr class="codeline" data-linenumber="1955"><td class="num" id="LN1955">1955</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1956"><td class="num" id="LN1956">1956</td><td class="line"> <span class='macro'>g_assert (from_screen != NULL)<span class='macro_popup'>do { if (from_screen != ((void*)0)) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-app.c", 1956, ((const char*) (__func__<br>)), "from_screen != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1957"><td class="num" id="LN1957">1957</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1958"><td class="num" id="LN1958">1958</td><td class="line"> <span class='keyword'>while</span> (res)</td></tr>
+<tr class="codeline" data-linenumber="1959"><td class="num" id="LN1959">1959</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1960"><td class="num" id="LN1960">1960</td><td class="line"> <span class='keyword'>int</span> win_workspace;</td></tr>
+<tr class="codeline" data-linenumber="1961"><td class="num" id="LN1961">1961</td><td class="line"> <span class='keyword'>if</span> (gtk_window_get_screen(<span class='macro'>GTK_WINDOW(res-&gt;data)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((res-&gt;data)), ((gtk_window_get_type ()))))))</span></span>) != from_screen)</td></tr>
+<tr class="codeline" data-linenumber="1962"><td class="num" id="LN1962">1962</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="1963"><td class="num" id="LN1963">1963</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1964"><td class="num" id="LN1964">1964</td><td class="line"> win_workspace = terminal_app_get_workspace_for_window(res-&gt;data);</td></tr>
+<tr class="codeline" data-linenumber="1965"><td class="num" id="LN1965">1965</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1966"><td class="num" id="LN1966">1966</td><td class="line"> <span class='comment'>/* Same workspace or if the window is set to show up on all workspaces */</span></td></tr>
+<tr class="codeline" data-linenumber="1967"><td class="num" id="LN1967">1967</td><td class="line"> <span class='keyword'>if</span> (win_workspace == workspace || win_workspace == -1)</td></tr>
+<tr class="codeline" data-linenumber="1968"><td class="num" id="LN1968">1968</td><td class="line"> ret = terminal_window_get_latest_focused (ret, <span class='macro'>TERMINAL_WINDOW(res-&gt;data)<span class='macro_popup'>((((TerminalWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((res-&gt;data)), ((terminal_window_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1969"><td class="num" id="LN1969">1969</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1970"><td class="num" id="LN1970">1970</td><td class="line"> res = <span class='macro'>g_list_previous (res)<span class='macro_popup'>((res) ? (((GList *)(res))-&gt;prev) : ((void*)0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1971"><td class="num" id="LN1971">1971</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1972"><td class="num" id="LN1972">1972</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1973"><td class="num" id="LN1973">1973</td><td class="line"> <span class='keyword'>return</span> ret;</td></tr>
+<tr class="codeline" data-linenumber="1974"><td class="num" id="LN1974">1974</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1975"><td class="num" id="LN1975">1975</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1976"><td class="num" id="LN1976">1976</td><td class="line"><span class='comment'>/**</span></td></tr>
+<tr class="codeline" data-linenumber="1977"><td class="num" id="LN1977">1977</td><td class="line"> <span class='comment'>* terminal_profile_get_list:</span></td></tr>
+<tr class="codeline" data-linenumber="1978"><td class="num" id="LN1978">1978</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="1979"><td class="num" id="LN1979">1979</td><td class="line"> <span class='comment'>* Returns: a #GList containing all #TerminalProfile objects.</span></td></tr>
+<tr class="codeline" data-linenumber="1980"><td class="num" id="LN1980">1980</td><td class="line"> <span class='comment'>* The content of the list is owned by the backend and</span></td></tr>
+<tr class="codeline" data-linenumber="1981"><td class="num" id="LN1981">1981</td><td class="line"> <span class='comment'>* should not be modified or freed. Use g_list_free() when done</span></td></tr>
+<tr class="codeline" data-linenumber="1982"><td class="num" id="LN1982">1982</td><td class="line"> <span class='comment'>* using the list.</span></td></tr>
+<tr class="codeline" data-linenumber="1983"><td class="num" id="LN1983">1983</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="1984"><td class="num" id="LN1984">1984</td><td class="line">GList*</td></tr>
+<tr class="codeline" data-linenumber="1985"><td class="num" id="LN1985">1985</td><td class="line">terminal_app_get_profile_list (TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="1986"><td class="num" id="LN1986">1986</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1987"><td class="num" id="LN1987">1987</td><td class="line"> <span class='macro'>g_return_val_if_fail (TERMINAL_IS_APP (app), NULL)<span class='macro_popup'>do { if (((((__extension__ ({ GTypeInstance *__inst = (GTypeInstance<br>*) ((app)); GType __t = ((terminal_app_get_type ())); gboolean<br> __r; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; })))))) { }<br> else { g_return_if_fail_warning (((gchar*) 0), ((const char*<br>) (__func__)), "TERMINAL_IS_APP (app)"); return (((void*)0));<br> } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1988"><td class="num" id="LN1988">1988</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1989"><td class="num" id="LN1989">1989</td><td class="line"> <span class='keyword'>return</span> g_list_sort (g_hash_table_get_values (app-&gt;profiles), profiles_alphabetic_cmp);</td></tr>
+<tr class="codeline" data-linenumber="1990"><td class="num" id="LN1990">1990</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1991"><td class="num" id="LN1991">1991</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1992"><td class="num" id="LN1992">1992</td><td class="line">TerminalProfile*</td></tr>
+<tr class="codeline" data-linenumber="1993"><td class="num" id="LN1993">1993</td><td class="line">terminal_app_get_profile_by_name (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="1994"><td class="num" id="LN1994">1994</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *name)</td></tr>
+<tr class="codeline" data-linenumber="1995"><td class="num" id="LN1995">1995</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1996"><td class="num" id="LN1996">1996</td><td class="line"> <span class='macro'>g_return_val_if_fail (TERMINAL_IS_APP (app), NULL)<span class='macro_popup'>do { if (((((__extension__ ({ GTypeInstance *__inst = (GTypeInstance<br>*) ((app)); GType __t = ((terminal_app_get_type ())); gboolean<br> __r; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; })))))) { }<br> else { g_return_if_fail_warning (((gchar*) 0), ((const char*<br>) (__func__)), "TERMINAL_IS_APP (app)"); return (((void*)0));<br> } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1997"><td class="num" id="LN1997">1997</td><td class="line"> <span class='macro'>g_return_val_if_fail (name != NULL, NULL)<span class='macro_popup'>do { if ((name != ((void*)0))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "name != NULL"); return<br> (((void*)0)); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1998"><td class="num" id="LN1998">1998</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1999"><td class="num" id="LN1999">1999</td><td class="line"> <span class='keyword'>return</span> g_hash_table_lookup (app-&gt;profiles, name);</td></tr>
+<tr class="codeline" data-linenumber="2000"><td class="num" id="LN2000">2000</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="2001"><td class="num" id="LN2001">2001</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2002"><td class="num" id="LN2002">2002</td><td class="line">TerminalProfile*</td></tr>
+<tr class="codeline" data-linenumber="2003"><td class="num" id="LN2003">2003</td><td class="line">terminal_app_get_profile_by_visible_name (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="2004"><td class="num" id="LN2004">2004</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *name)</td></tr>
+<tr class="codeline" data-linenumber="2005"><td class="num" id="LN2005">2005</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="2006"><td class="num" id="LN2006">2006</td><td class="line"> LookupInfo info;</td></tr>
+<tr class="codeline" data-linenumber="2007"><td class="num" id="LN2007">2007</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2008"><td class="num" id="LN2008">2008</td><td class="line"> <span class='macro'>g_return_val_if_fail (TERMINAL_IS_APP (app), NULL)<span class='macro_popup'>do { if (((((__extension__ ({ GTypeInstance *__inst = (GTypeInstance<br>*) ((app)); GType __t = ((terminal_app_get_type ())); gboolean<br> __r; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; })))))) { }<br> else { g_return_if_fail_warning (((gchar*) 0), ((const char*<br>) (__func__)), "TERMINAL_IS_APP (app)"); return (((void*)0));<br> } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2009"><td class="num" id="LN2009">2009</td><td class="line"> <span class='macro'>g_return_val_if_fail (name != NULL, NULL)<span class='macro_popup'>do { if ((name != ((void*)0))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "name != NULL"); return<br> (((void*)0)); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2010"><td class="num" id="LN2010">2010</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2011"><td class="num" id="LN2011">2011</td><td class="line"> info.result = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2012"><td class="num" id="LN2012">2012</td><td class="line"> info.target = name;</td></tr>
+<tr class="codeline" data-linenumber="2013"><td class="num" id="LN2013">2013</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2014"><td class="num" id="LN2014">2014</td><td class="line"> g_hash_table_foreach (app-&gt;profiles,</td></tr>
+<tr class="codeline" data-linenumber="2015"><td class="num" id="LN2015">2015</td><td class="line"> profiles_lookup_by_visible_name_foreach,</td></tr>
+<tr class="codeline" data-linenumber="2016"><td class="num" id="LN2016">2016</td><td class="line"> &amp;info);</td></tr>
+<tr class="codeline" data-linenumber="2017"><td class="num" id="LN2017">2017</td><td class="line"> <span class='keyword'>return</span> info.result;</td></tr>
+<tr class="codeline" data-linenumber="2018"><td class="num" id="LN2018">2018</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="2019"><td class="num" id="LN2019">2019</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2020"><td class="num" id="LN2020">2020</td><td class="line">TerminalProfile*</td></tr>
+<tr class="codeline" data-linenumber="2021"><td class="num" id="LN2021">2021</td><td class="line">terminal_app_get_default_profile (TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="2022"><td class="num" id="LN2022">2022</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="2023"><td class="num" id="LN2023">2023</td><td class="line"> <span class='macro'>g_return_val_if_fail (TERMINAL_IS_APP (app), NULL)<span class='macro_popup'>do { if (((((__extension__ ({ GTypeInstance *__inst = (GTypeInstance<br>*) ((app)); GType __t = ((terminal_app_get_type ())); gboolean<br> __r; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; })))))) { }<br> else { g_return_if_fail_warning (((gchar*) 0), ((const char*<br>) (__func__)), "TERMINAL_IS_APP (app)"); return (((void*)0));<br> } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2024"><td class="num" id="LN2024">2024</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2025"><td class="num" id="LN2025">2025</td><td class="line"> <span class='keyword'>return</span> app-&gt;default_profile;</td></tr>
+<tr class="codeline" data-linenumber="2026"><td class="num" id="LN2026">2026</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="2027"><td class="num" id="LN2027">2027</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2028"><td class="num" id="LN2028">2028</td><td class="line">TerminalProfile*</td></tr>
+<tr class="codeline" data-linenumber="2029"><td class="num" id="LN2029">2029</td><td class="line">terminal_app_get_profile_for_new_term (TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="2030"><td class="num" id="LN2030">2030</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="2031"><td class="num" id="LN2031">2031</td><td class="line"> GHashTableIter iter;</td></tr>
+<tr class="codeline" data-linenumber="2032"><td class="num" id="LN2032">2032</td><td class="line"> TerminalProfile *profile = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2033"><td class="num" id="LN2033">2033</td><td class="line"> TerminalProfile **profileptr = &amp;profile;</td></tr>
+<tr class="codeline" data-linenumber="2034"><td class="num" id="LN2034">2034</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2035"><td class="num" id="LN2035">2035</td><td class="line"> <span class='macro'>g_return_val_if_fail (TERMINAL_IS_APP (app), NULL)<span class='macro_popup'>do { if (((((__extension__ ({ GTypeInstance *__inst = (GTypeInstance<br>*) ((app)); GType __t = ((terminal_app_get_type ())); gboolean<br> __r; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; })))))) { }<br> else { g_return_if_fail_warning (((gchar*) 0), ((const char*<br>) (__func__)), "TERMINAL_IS_APP (app)"); return (((void*)0));<br> } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2036"><td class="num" id="LN2036">2036</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2037"><td class="num" id="LN2037">2037</td><td class="line"> <span class='keyword'>if</span> (app-&gt;default_profile)</td></tr>
+<tr class="codeline" data-linenumber="2038"><td class="num" id="LN2038">2038</td><td class="line"> <span class='keyword'>return</span> app-&gt;default_profile;</td></tr>
+<tr class="codeline" data-linenumber="2039"><td class="num" id="LN2039">2039</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2040"><td class="num" id="LN2040">2040</td><td class="line"> g_hash_table_iter_init (&amp;iter, app-&gt;profiles);</td></tr>
+<tr class="codeline" data-linenumber="2041"><td class="num" id="LN2041">2041</td><td class="line"> <span class='keyword'>if</span> (g_hash_table_iter_next (&amp;iter, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, (gpointer *) profileptr))</td></tr>
+<tr class="codeline" data-linenumber="2042"><td class="num" id="LN2042">2042</td><td class="line"> <span class='keyword'>return</span> profile;</td></tr>
+<tr class="codeline" data-linenumber="2043"><td class="num" id="LN2043">2043</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2044"><td class="num" id="LN2044">2044</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2045"><td class="num" id="LN2045">2045</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="2046"><td class="num" id="LN2046">2046</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2047"><td class="num" id="LN2047">2047</td><td class="line">GHashTable *</td></tr>
+<tr class="codeline" data-linenumber="2048"><td class="num" id="LN2048">2048</td><td class="line">terminal_app_get_encodings (TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="2049"><td class="num" id="LN2049">2049</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="2050"><td class="num" id="LN2050">2050</td><td class="line"> <span class='keyword'>return</span> app-&gt;encodings;</td></tr>
+<tr class="codeline" data-linenumber="2051"><td class="num" id="LN2051">2051</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="2052"><td class="num" id="LN2052">2052</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2053"><td class="num" id="LN2053">2053</td><td class="line"><span class='comment'>/**</span></td></tr>
+<tr class="codeline" data-linenumber="2054"><td class="num" id="LN2054">2054</td><td class="line"> <span class='comment'>* terminal_app_ensure_encoding:</span></td></tr>
+<tr class="codeline" data-linenumber="2055"><td class="num" id="LN2055">2055</td><td class="line"> <span class='comment'>* @app:</span></td></tr>
+<tr class="codeline" data-linenumber="2056"><td class="num" id="LN2056">2056</td><td class="line"> <span class='comment'>* @charset:</span></td></tr>
+<tr class="codeline" data-linenumber="2057"><td class="num" id="LN2057">2057</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="2058"><td class="num" id="LN2058">2058</td><td class="line"> <span class='comment'>* Ensures there's a #TerminalEncoding for @charset available.</span></td></tr>
+<tr class="codeline" data-linenumber="2059"><td class="num" id="LN2059">2059</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="2060"><td class="num" id="LN2060">2060</td><td class="line">TerminalEncoding *</td></tr>
+<tr class="codeline" data-linenumber="2061"><td class="num" id="LN2061">2061</td><td class="line">terminal_app_ensure_encoding (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="2062"><td class="num" id="LN2062">2062</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *charset)</td></tr>
+<tr class="codeline" data-linenumber="2063"><td class="num" id="LN2063">2063</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="2064"><td class="num" id="LN2064">2064</td><td class="line"> TerminalEncoding *encoding;</td></tr>
+<tr class="codeline" data-linenumber="2065"><td class="num" id="LN2065">2065</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2066"><td class="num" id="LN2066">2066</td><td class="line"> encoding = g_hash_table_lookup (app-&gt;encodings, charset);</td></tr>
+<tr class="codeline" data-linenumber="2067"><td class="num" id="LN2067">2067</td><td class="line"> <span class='keyword'>if</span> (encoding == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="2068"><td class="num" id="LN2068">2068</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="2069"><td class="num" id="LN2069">2069</td><td class="line"> encoding = terminal_encoding_new (charset,</td></tr>
+<tr class="codeline" data-linenumber="2070"><td class="num" id="LN2070">2070</td><td class="line"> <span class='macro'>_(<span class='string_literal'>"User Defined"</span>)<span class='macro_popup'>gettext ("User Defined")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2071"><td class="num" id="LN2071">2071</td><td class="line"> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2072"><td class="num" id="LN2072">2072</td><td class="line"> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span> <span class='comment'>/* scary! */</span>);</td></tr>
+<tr class="codeline" data-linenumber="2073"><td class="num" id="LN2073">2073</td><td class="line"> g_hash_table_insert (app-&gt;encodings,</td></tr>
+<tr class="codeline" data-linenumber="2074"><td class="num" id="LN2074">2074</td><td class="line"> (gpointer) terminal_encoding_get_id (encoding),</td></tr>
+<tr class="codeline" data-linenumber="2075"><td class="num" id="LN2075">2075</td><td class="line"> encoding);</td></tr>
+<tr class="codeline" data-linenumber="2076"><td class="num" id="LN2076">2076</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="2077"><td class="num" id="LN2077">2077</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2078"><td class="num" id="LN2078">2078</td><td class="line"> <span class='keyword'>return</span> encoding;</td></tr>
+<tr class="codeline" data-linenumber="2079"><td class="num" id="LN2079">2079</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="2080"><td class="num" id="LN2080">2080</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2081"><td class="num" id="LN2081">2081</td><td class="line"><span class='comment'>/**</span></td></tr>
+<tr class="codeline" data-linenumber="2082"><td class="num" id="LN2082">2082</td><td class="line"> <span class='comment'>* terminal_app_get_active_encodings:</span></td></tr>
+<tr class="codeline" data-linenumber="2083"><td class="num" id="LN2083">2083</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="2084"><td class="num" id="LN2084">2084</td><td class="line"> <span class='comment'>* Returns: a newly allocated list of newly referenced #TerminalEncoding objects.</span></td></tr>
+<tr class="codeline" data-linenumber="2085"><td class="num" id="LN2085">2085</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="2086"><td class="num" id="LN2086">2086</td><td class="line">GSList*</td></tr>
+<tr class="codeline" data-linenumber="2087"><td class="num" id="LN2087">2087</td><td class="line">terminal_app_get_active_encodings (TerminalApp *app)</td></tr>
+<tr class="codeline" data-linenumber="2088"><td class="num" id="LN2088">2088</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="2089"><td class="num" id="LN2089">2089</td><td class="line"> GSList *list = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2090"><td class="num" id="LN2090">2090</td><td class="line"> GHashTableIter iter;</td></tr>
+<tr class="codeline" data-linenumber="2091"><td class="num" id="LN2091">2091</td><td class="line"> gpointer key, value;</td></tr>
+<tr class="codeline" data-linenumber="2092"><td class="num" id="LN2092">2092</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2093"><td class="num" id="LN2093">2093</td><td class="line"> g_hash_table_iter_init (&amp;iter, app-&gt;encodings);</td></tr>
+<tr class="codeline" data-linenumber="2094"><td class="num" id="LN2094">2094</td><td class="line"> <span class='keyword'>while</span> (g_hash_table_iter_next (&amp;iter, &amp;key, &amp;value))</td></tr>
+<tr class="codeline" data-linenumber="2095"><td class="num" id="LN2095">2095</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="2096"><td class="num" id="LN2096">2096</td><td class="line"> TerminalEncoding *encoding = (TerminalEncoding *) value;</td></tr>
+<tr class="codeline" data-linenumber="2097"><td class="num" id="LN2097">2097</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2098"><td class="num" id="LN2098">2098</td><td class="line"> <span class='keyword'>if</span> (!encoding-&gt;is_active)</td></tr>
+<tr class="codeline" data-linenumber="2099"><td class="num" id="LN2099">2099</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="2100"><td class="num" id="LN2100">2100</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2101"><td class="num" id="LN2101">2101</td><td class="line"> list = g_slist_prepend (list, terminal_encoding_ref (encoding));</td></tr>
+<tr class="codeline" data-linenumber="2102"><td class="num" id="LN2102">2102</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="2103"><td class="num" id="LN2103">2103</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2104"><td class="num" id="LN2104">2104</td><td class="line"> <span class='keyword'>return</span> g_slist_sort (list, (GCompareFunc) compare_encodings);</td></tr>
+<tr class="codeline" data-linenumber="2105"><td class="num" id="LN2105">2105</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="2106"><td class="num" id="LN2106">2106</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2107"><td class="num" id="LN2107">2107</td><td class="line"><span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="2108"><td class="num" id="LN2108">2108</td><td class="line">terminal_app_save_config (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="2109"><td class="num" id="LN2109">2109</td><td class="line"> GKeyFile *key_file)</td></tr>
+<tr class="codeline" data-linenumber="2110"><td class="num" id="LN2110">2110</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="2111"><td class="num" id="LN2111">2111</td><td class="line"> GList *lw;</td></tr>
+<tr class="codeline" data-linenumber="2112"><td class="num" id="LN2112">2112</td><td class="line"> guint n = 0;</td></tr>
+<tr class="codeline" data-linenumber="2113"><td class="num" id="LN2113">2113</td><td class="line"> GPtrArray *window_names_array;</td></tr>
+<tr class="codeline" data-linenumber="2114"><td class="num" id="LN2114">2114</td><td class="line"> <span class='keyword'>char</span> **window_names;</td></tr>
+<tr class="codeline" data-linenumber="2115"><td class="num" id="LN2115">2115</td><td class="line"> gsize len;</td></tr>
+<tr class="codeline" data-linenumber="2116"><td class="num" id="LN2116">2116</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2117"><td class="num" id="LN2117">2117</td><td class="line"> g_key_file_set_comment (key_file, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='string_literal'>"Written by "</span> <span class='macro'>PACKAGE_STRING<span class='macro_popup'>"mate-terminal 1.27.1"</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="2118"><td class="num" id="LN2118">2118</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2119"><td class="num" id="LN2119">2119</td><td class="line"> g_key_file_set_integer (key_file, <span class='macro'>TERMINAL_CONFIG_GROUP<span class='macro_popup'>"MATE Terminal Configuration"</span></span>, <span class='macro'>TERMINAL_CONFIG_PROP_VERSION<span class='macro_popup'>"Version"</span></span>, <span class='macro'>TERMINAL_CONFIG_VERSION<span class='macro_popup'>(1)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="2120"><td class="num" id="LN2120">2120</td><td class="line"> g_key_file_set_integer (key_file, <span class='macro'>TERMINAL_CONFIG_GROUP<span class='macro_popup'>"MATE Terminal Configuration"</span></span>, <span class='macro'>TERMINAL_CONFIG_PROP_COMPAT_VERSION<span class='macro_popup'>"CompatVersion"</span></span>, <span class='macro'>TERMINAL_CONFIG_COMPAT_VERSION<span class='macro_popup'>(1)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="2121"><td class="num" id="LN2121">2121</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2122"><td class="num" id="LN2122">2122</td><td class="line"> window_names_array = g_ptr_array_sized_new (g_list_length (app-&gt;windows) + 1);</td></tr>
+<tr class="codeline" data-linenumber="2123"><td class="num" id="LN2123">2123</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2124"><td class="num" id="LN2124">2124</td><td class="line"> <span class='keyword'>for</span> (lw = app-&gt;windows; lw != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; lw = lw-&gt;next)</td></tr>
+<tr class="codeline" data-linenumber="2125"><td class="num" id="LN2125">2125</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="2126"><td class="num" id="LN2126">2126</td><td class="line"> TerminalWindow *window = <span class='macro'>TERMINAL_WINDOW (lw-&gt;data)<span class='macro_popup'>((((TerminalWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((lw-&gt;data)), ((terminal_window_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2127"><td class="num" id="LN2127">2127</td><td class="line"> <span class='keyword'>char</span> *group;</td></tr>
+<tr class="codeline" data-linenumber="2128"><td class="num" id="LN2128">2128</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2129"><td class="num" id="LN2129">2129</td><td class="line"> group = g_strdup_printf (<span class='string_literal'>"Window%u"</span>, n++);</td></tr>
+<tr class="codeline" data-linenumber="2130"><td class="num" id="LN2130">2130</td><td class="line"> g_ptr_array_add (window_names_array, group);</td></tr>
+<tr class="codeline" data-linenumber="2131"><td class="num" id="LN2131">2131</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2132"><td class="num" id="LN2132">2132</td><td class="line"> terminal_window_save_state (window, key_file, group);</td></tr>
+<tr class="codeline" data-linenumber="2133"><td class="num" id="LN2133">2133</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="2134"><td class="num" id="LN2134">2134</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2135"><td class="num" id="LN2135">2135</td><td class="line"> len = window_names_array-&gt;len;</td></tr>
+<tr class="codeline" data-linenumber="2136"><td class="num" id="LN2136">2136</td><td class="line"> g_ptr_array_add (window_names_array, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="2137"><td class="num" id="LN2137">2137</td><td class="line"> window_names = (<span class='keyword'>char</span> **) g_ptr_array_free (window_names_array, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="2138"><td class="num" id="LN2138">2138</td><td class="line"> g_key_file_set_string_list (key_file, <span class='macro'>TERMINAL_CONFIG_GROUP<span class='macro_popup'>"MATE Terminal Configuration"</span></span>, <span class='macro'>TERMINAL_CONFIG_PROP_WINDOWS<span class='macro_popup'>"Windows"</span></span>, (<span class='keyword'>const</span> <span class='keyword'>char</span> * <span class='keyword'>const</span> *) window_names, len);</td></tr>
+<tr class="codeline" data-linenumber="2139"><td class="num" id="LN2139">2139</td><td class="line"> g_strfreev (window_names);</td></tr>
+<tr class="codeline" data-linenumber="2140"><td class="num" id="LN2140">2140</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="2141"><td class="num" id="LN2141">2141</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2142"><td class="num" id="LN2142">2142</td><td class="line">gboolean</td></tr>
+<tr class="codeline" data-linenumber="2143"><td class="num" id="LN2143">2143</td><td class="line">terminal_app_save_config_file (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="2144"><td class="num" id="LN2144">2144</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *file_name,</td></tr>
+<tr class="codeline" data-linenumber="2145"><td class="num" id="LN2145">2145</td><td class="line"> GError **error)</td></tr>
+<tr class="codeline" data-linenumber="2146"><td class="num" id="LN2146">2146</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="2147"><td class="num" id="LN2147">2147</td><td class="line"> GKeyFile *key_file;</td></tr>
+<tr class="codeline" data-linenumber="2148"><td class="num" id="LN2148">2148</td><td class="line"> <span class='keyword'>char</span> *data;</td></tr>
+<tr class="codeline" data-linenumber="2149"><td class="num" id="LN2149">2149</td><td class="line"> gsize len;</td></tr>
+<tr class="codeline" data-linenumber="2150"><td class="num" id="LN2150">2150</td><td class="line"> gboolean result;</td></tr>
+<tr class="codeline" data-linenumber="2151"><td class="num" id="LN2151">2151</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2152"><td class="num" id="LN2152">2152</td><td class="line"> key_file = g_key_file_new ();</td></tr>
+<tr class="codeline" data-linenumber="2153"><td class="num" id="LN2153">2153</td><td class="line"> terminal_app_save_config (app, key_file);</td></tr>
+<tr class="codeline" data-linenumber="2154"><td class="num" id="LN2154">2154</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2155"><td class="num" id="LN2155">2155</td><td class="line"> data = g_key_file_to_data (key_file, &amp;len, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="2156"><td class="num" id="LN2156">2156</td><td class="line"> result = g_file_set_contents (file_name, data, len, error);</td></tr>
+<tr class="codeline" data-linenumber="2157"><td class="num" id="LN2157">2157</td><td class="line"> g_free (data);</td></tr>
+<tr class="codeline" data-linenumber="2158"><td class="num" id="LN2158">2158</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2159"><td class="num" id="LN2159">2159</td><td class="line"> <span class='keyword'>return</span> result;</td></tr>
+<tr class="codeline" data-linenumber="2160"><td class="num" id="LN2160">2160</td><td class="line">}</td></tr>
+</table></body></html>
diff --git a/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-d2e905.html b/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-d2e905.html
new file mode 100644
index 0000000..e515894
--- /dev/null
+++ b/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-d2e905.html
@@ -0,0 +1,2385 @@
+<!doctype html>
+<html>
+<head>
+<title>terminal-profile.c</title>
+
+<style type="text/css">
+body { color:#000000; background-color:#ffffff }
+body { font-family:Helvetica, sans-serif; font-size:10pt }
+h1 { font-size:14pt }
+.FileName { margin-top: 5px; margin-bottom: 5px; display: inline; }
+.FileNav { margin-left: 5px; margin-right: 5px; display: inline; }
+.FileNav a { text-decoration:none; font-size: larger; }
+.divider { margin-top: 30px; margin-bottom: 30px; height: 15px; }
+.divider { background-color: gray; }
+.code { border-collapse:collapse; width:100%; }
+.code { font-family: "Monospace", monospace; font-size:10pt }
+.code { line-height: 1.2em }
+.comment { color: green; font-style: oblique }
+.keyword { color: blue }
+.string_literal { color: red }
+.directive { color: darkmagenta }
+
+/* Macros and variables could have pop-up notes hidden by default.
+ - Macro pop-up: expansion of the macro
+ - Variable pop-up: value (table) of the variable */
+.macro_popup, .variable_popup { display: none; }
+
+/* Pop-up appears on mouse-hover event. */
+.macro:hover .macro_popup, .variable:hover .variable_popup {
+ display: block;
+ padding: 2px;
+ -webkit-border-radius:5px;
+ -webkit-box-shadow:1px 1px 7px #000;
+ border-radius:5px;
+ box-shadow:1px 1px 7px #000;
+ position: absolute;
+ top: -1em;
+ left:10em;
+ z-index: 1
+}
+
+.macro_popup {
+ border: 2px solid red;
+ background-color:#FFF0F0;
+ font-weight: normal;
+}
+
+.variable_popup {
+ border: 2px solid blue;
+ background-color:#F0F0FF;
+ font-weight: bold;
+ font-family: Helvetica, sans-serif;
+ font-size: 9pt;
+}
+
+/* Pop-up notes needs a relative position as a base where they pops up. */
+.macro, .variable {
+ background-color: PaleGoldenRod;
+ position: relative;
+}
+.macro { color: DarkMagenta; }
+
+#tooltiphint {
+ position: fixed;
+ width: 50em;
+ margin-left: -25em;
+ left: 50%;
+ padding: 10px;
+ border: 1px solid #b0b0b0;
+ border-radius: 2px;
+ box-shadow: 1px 1px 7px black;
+ background-color: #c0c0c0;
+ z-index: 2;
+}
+
+.num { width:2.5em; padding-right:2ex; background-color:#eeeeee }
+.num { text-align:right; font-size:8pt }
+.num { color:#444444 }
+.line { padding-left: 1ex; border-left: 3px solid #ccc }
+.line { white-space: pre }
+.msg { -webkit-box-shadow:1px 1px 7px #000 }
+.msg { box-shadow:1px 1px 7px #000 }
+.msg { -webkit-border-radius:5px }
+.msg { border-radius:5px }
+.msg { font-family:Helvetica, sans-serif; font-size:8pt }
+.msg { float:left }
+.msg { position:relative }
+.msg { padding:0.25em 1ex 0.25em 1ex }
+.msg { margin-top:10px; margin-bottom:10px }
+.msg { font-weight:bold }
+.msg { max-width:60em; word-wrap: break-word; white-space: pre-wrap }
+.msgT { padding:0x; spacing:0x }
+.msgEvent { background-color:#fff8b4; color:#000000 }
+.msgControl { background-color:#bbbbbb; color:#000000 }
+.msgNote { background-color:#ddeeff; color:#000000 }
+.mrange { background-color:#dfddf3 }
+.mrange { border-bottom:1px solid #6F9DBE }
+.PathIndex { font-weight: bold; padding:0px 5px; margin-right:5px; }
+.PathIndex { -webkit-border-radius:8px }
+.PathIndex { border-radius:8px }
+.PathIndexEvent { background-color:#bfba87 }
+.PathIndexControl { background-color:#8c8c8c }
+.PathIndexPopUp { background-color: #879abc; }
+.PathNav a { text-decoration:none; font-size: larger }
+.CodeInsertionHint { font-weight: bold; background-color: #10dd10 }
+.CodeRemovalHint { background-color:#de1010 }
+.CodeRemovalHint { border-bottom:1px solid #6F9DBE }
+.msg.selected{ background-color:orange !important; }
+
+table.simpletable {
+ padding: 5px;
+ font-size:12pt;
+ margin:20px;
+ border-collapse: collapse; border-spacing: 0px;
+}
+td.rowname {
+ text-align: right;
+ vertical-align: top;
+ font-weight: bold;
+ color:#444444;
+ padding-right:2ex;
+}
+
+/* Hidden text. */
+input.spoilerhider + label {
+ cursor: pointer;
+ text-decoration: underline;
+ display: block;
+}
+input.spoilerhider {
+ display: none;
+}
+input.spoilerhider ~ .spoiler {
+ overflow: hidden;
+ margin: 10px auto 0;
+ height: 0;
+ opacity: 0;
+}
+input.spoilerhider:checked + label + .spoiler{
+ height: auto;
+ opacity: 1;
+}
+</style>
+</head>
+<body>
+<!-- BUGDESC Casting a non-structure type to a structure type and accessing a field can lead to memory access errors or data corruption -->
+
+<!-- BUGTYPE Cast from non-struct type to struct type -->
+
+<!-- BUGCATEGORY Logic error -->
+
+<!-- BUGFILE /rootdir/src/terminal-profile.c -->
+
+<!-- FILENAME terminal-profile.c -->
+
+<!-- FUNCTIONNAME terminal_profile_gsettings_notify_cb -->
+
+<!-- ISSUEHASHCONTENTOFLINEINCONTEXT d2e90588d35deb1e30fe418744be12c0 -->
+
+<!-- BUGLINE 648 -->
+
+<!-- BUGCOLUMN 46 -->
+
+<!-- BUGPATHLENGTH 1 -->
+
+<!-- BUGMETAEND -->
+<!-- REPORTHEADER -->
+<h3>Bug Summary</h3>
+<table class="simpletable">
+<tr><td class="rowname">File:</td><td>terminal-profile.c</td></tr>
+<tr><td class="rowname">Warning:</td><td><a href="#EndPath">line 648, column 46</a><br />Casting a non-structure type to a structure type and accessing a field can lead to memory access errors or data corruption</td></tr>
+
+</table>
+<!-- REPORTSUMMARYEXTRA -->
+<h3>Annotated Source Code</h3>
+<p>Press <a href="#" onclick="toggleHelp(); return false;">'?'</a>
+ to see keyboard shortcuts</p>
+<input type="checkbox" class="spoilerhider" id="showinvocation" />
+<label for="showinvocation" >Show analyzer invocation</label>
+<div class="spoiler">clang -cc1 -cc1 -triple x86_64-redhat-linux-gnu -analyze -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name terminal-profile.c -analyzer-checker=core -analyzer-checker=apiModeling -analyzer-checker=unix -analyzer-checker=deadcode -analyzer-checker=security.insecureAPI.UncheckedReturn -analyzer-checker=security.insecureAPI.getpw -analyzer-checker=security.insecureAPI.gets -analyzer-checker=security.insecureAPI.mktemp -analyzer-checker=security.insecureAPI.mkstemp -analyzer-checker=security.insecureAPI.vfork -analyzer-checker=nullability.NullPassedToNonnull -analyzer-checker=nullability.NullReturnedFromNonnull -analyzer-output plist -w -setup-static-analyzer -mrelocation-model static -mframe-pointer=all -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -tune-cpu generic -debugger-tuning=gdb -fcoverage-compilation-dir=/rootdir/src -resource-dir /usr/bin/../lib/clang/17 -D HAVE_CONFIG_H -I . -I .. -I ../src/mate-submodules/libegg -D TERMINAL_COMPILATION -D TERMINAL_RESOURCES_PATH_PREFIX="/org/mate/terminal" -D TERM_DATADIR="/usr/local/share" -D TERM_LOCALEDIR="/usr/local/share/locale" -D TERM_PKGDATADIR="/usr/local/share/mate-terminal" -D TERM_HELPDIR="/usr/local/share/help" -D SN_API_NOT_YET_FROZEN -D GDK_MULTIHEAD_SAFE -D G_DISABLE_SINGLE_INCLUDES -D PANGO_DISABLE_SINGLE_INCLUDES -D ATK_DISABLE_SINGLE_INCLUDES -D GDK_DISABLE_SINGLE_INCLUDES -D GDK_PIXBUF_DISABLE_SINGLE_INCLUDES -D GTK_DISABLE_SINGLE_INCLUDES -I /usr/include/dconf -I /usr/include/vte-2.91 -I /usr/include/pango-1.0 -I /usr/include/gtk-3.0 -I /usr/include/gdk-pixbuf-2.0 -I /usr/include/cairo -I /usr/include/dbus-1.0 -I /usr/lib64/dbus-1.0/include -I /usr/include/atk-1.0 -I /usr/include/harfbuzz -I /usr/include/freetype2 -I /usr/include/glib-2.0 -I /usr/lib64/glib-2.0/include -I /usr/include/cloudproviders -I /usr/include/at-spi2-atk/2.0 -I /usr/include/at-spi-2.0 -I /usr/include/blkid -I /usr/include/gio-unix-2.0 -I /usr/include/pixman-1 -I /usr/include/libmount -I /usr/include/libxml2 -I /usr/include/fribidi -I /usr/include/libpng16 -I /usr/include/sysprof-6 -internal-isystem /usr/bin/../lib/clang/17/include -internal-isystem /usr/local/include -internal-isystem /usr/bin/../lib/gcc/x86_64-redhat-linux/13/../../../../x86_64-redhat-linux/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -Wno-unused-parameter -fdebug-compilation-dir=/rootdir/src -ferror-limit 19 -fgnuc-version=4.2.1 -analyzer-checker deadcode.DeadStores -analyzer-checker alpha.deadcode.UnreachableCode -analyzer-checker alpha.core.CastSize -analyzer-checker alpha.core.CastToStruct -analyzer-checker alpha.core.IdenticalExpr -analyzer-checker alpha.core.SizeofPtr -analyzer-checker alpha.security.ArrayBoundV2 -analyzer-checker alpha.security.MallocOverflow -analyzer-checker alpha.security.ReturnPtrRange -analyzer-checker alpha.unix.SimpleStream -analyzer-checker alpha.unix.cstring.BufferOverlap -analyzer-checker alpha.unix.cstring.NotNullTerminated -analyzer-checker alpha.unix.cstring.OutOfBounds -analyzer-checker alpha.core.FixedAddr -analyzer-checker security.insecureAPI.strcpy -analyzer-output=html -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /rootdir/html-report/2024-02-18-131424-5067-1 -x c terminal-profile.c
+</div>
+<div id='tooltiphint' hidden="true">
+ <p>Keyboard shortcuts: </p>
+ <ul>
+ <li>Use 'j/k' keys for keyboard navigation</li>
+ <li>Use 'Shift+S' to show/hide relevant lines</li>
+ <li>Use '?' to toggle this window</li>
+ </ul>
+ <a href="#" onclick="toggleHelp(); return false;">Close</a>
+</div>
+<script type='text/javascript'>
+var relevant_lines = {"1": {"648": 1}};
+
+var filterCounterexample = function (hide) {
+ var tables = document.getElementsByClassName("code");
+ for (var t=0; t<tables.length; t++) {
+ var table = tables[t];
+ var file_id = table.getAttribute("data-fileid");
+ var lines_in_fid = relevant_lines[file_id];
+ if (!lines_in_fid) {
+ lines_in_fid = {};
+ }
+ var lines = table.getElementsByClassName("codeline");
+ for (var i=0; i<lines.length; i++) {
+ var el = lines[i];
+ var lineNo = el.getAttribute("data-linenumber");
+ if (!lines_in_fid[lineNo]) {
+ if (hide) {
+ el.setAttribute("hidden", "");
+ } else {
+ el.removeAttribute("hidden");
+ }
+ }
+ }
+ }
+}
+
+window.addEventListener("keydown", function (event) {
+ if (event.defaultPrevented) {
+ return;
+ }
+ // SHIFT + S
+ if (event.shiftKey && event.keyCode == 83) {
+ var checked = document.getElementsByName("showCounterexample")[0].checked;
+ filterCounterexample(!checked);
+ document.getElementsByName("showCounterexample")[0].click();
+ } else {
+ return;
+ }
+ event.preventDefault();
+}, true);
+
+document.addEventListener("DOMContentLoaded", function() {
+ document.querySelector('input[name="showCounterexample"]').onchange=
+ function (event) {
+ filterCounterexample(this.checked);
+ };
+});
+</script>
+
+<form>
+ <input type="checkbox" name="showCounterexample" id="showCounterexample" />
+ <label for="showCounterexample">
+ Show only relevant lines
+ </label>
+ <input type="checkbox" name="showArrows"
+ id="showArrows" style="margin-left: 10px" />
+ <label for="showArrows">
+ Show control flow arrows
+ </label>
+</form>
+
+<script type='text/javascript'>
+// Return range of numbers from a range [lower, upper).
+function range(lower, upper) {
+ var array = [];
+ for (var i = lower; i <= upper; ++i) {
+ array.push(i);
+ }
+ return array;
+}
+
+var getRelatedArrowIndices = function(pathId) {
+ // HTML numeration of events is a bit different than it is in the path.
+ // Everything is rotated one step to the right, so the last element
+ // (error diagnostic) has index 0.
+ if (pathId == 0) {
+ // arrowIndices has at least 2 elements
+ pathId = arrowIndices.length - 1;
+ }
+
+ return range(arrowIndices[pathId], arrowIndices[pathId - 1]);
+}
+
+var highlightArrowsForSelectedEvent = function() {
+ const selectedNum = findNum();
+ const arrowIndicesToHighlight = getRelatedArrowIndices(selectedNum);
+ arrowIndicesToHighlight.forEach((index) => {
+ var arrow = document.querySelector("#arrow" + index);
+ if(arrow) {
+ classListAdd(arrow, "selected")
+ }
+ });
+}
+
+var getAbsoluteBoundingRect = function(element) {
+ const relative = element.getBoundingClientRect();
+ return {
+ left: relative.left + window.pageXOffset,
+ right: relative.right + window.pageXOffset,
+ top: relative.top + window.pageYOffset,
+ bottom: relative.bottom + window.pageYOffset,
+ height: relative.height,
+ width: relative.width
+ };
+}
+
+var drawArrow = function(index) {
+ // This function is based on the great answer from SO:
+ // https://stackoverflow.com/a/39575674/11582326
+ var start = document.querySelector("#start" + index);
+ var end = document.querySelector("#end" + index);
+ var arrow = document.querySelector("#arrow" + index);
+
+ var startRect = getAbsoluteBoundingRect(start);
+ var endRect = getAbsoluteBoundingRect(end);
+
+ // It is an arrow from a token to itself, no need to visualize it.
+ if (startRect.top == endRect.top &&
+ startRect.left == endRect.left)
+ return;
+
+ // Each arrow is a very simple Bézier curve, with two nodes and
+ // two handles. So, we need to calculate four points in the window:
+ // * start node
+ var posStart = { x: 0, y: 0 };
+ // * end node
+ var posEnd = { x: 0, y: 0 };
+ // * handle for the start node
+ var startHandle = { x: 0, y: 0 };
+ // * handle for the end node
+ var endHandle = { x: 0, y: 0 };
+ // One can visualize it as follows:
+ //
+ // start handle
+ // /
+ // X"""_.-""""X
+ // .' \
+ // / start node
+ // |
+ // |
+ // | end node
+ // \ /
+ // `->X
+ // X-'
+ // \
+ // end handle
+ //
+ // NOTE: (0, 0) is the top left corner of the window.
+
+ // We have 3 similar, but still different scenarios to cover:
+ //
+ // 1. Two tokens on different lines.
+ // -xxx
+ // /
+ // \
+ // -> xxx
+ // In this situation, we draw arrow on the left curving to the left.
+ // 2. Two tokens on the same line, and the destination is on the right.
+ // ____
+ // / \
+ // / V
+ // xxx xxx
+ // In this situation, we draw arrow above curving upwards.
+ // 3. Two tokens on the same line, and the destination is on the left.
+ // xxx xxx
+ // ^ /
+ // \____/
+ // In this situation, we draw arrow below curving downwards.
+ const onDifferentLines = startRect.top <= endRect.top - 5 ||
+ startRect.top >= endRect.top + 5;
+ const leftToRight = startRect.left < endRect.left;
+
+ // NOTE: various magic constants are chosen empirically for
+ // better positioning and look
+ if (onDifferentLines) {
+ // Case #1
+ const topToBottom = startRect.top < endRect.top;
+ posStart.x = startRect.left - 1;
+ // We don't want to start it at the top left corner of the token,
+ // it doesn't feel like this is where the arrow comes from.
+ // For this reason, we start it in the middle of the left side
+ // of the token.
+ posStart.y = startRect.top + startRect.height / 2;
+
+ // End node has arrow head and we give it a bit more space.
+ posEnd.x = endRect.left - 4;
+ posEnd.y = endRect.top;
+
+ // Utility object with x and y offsets for handles.
+ var curvature = {
+ // We want bottom-to-top arrow to curve a bit more, so it doesn't
+ // overlap much with top-to-bottom curves (much more frequent).
+ x: topToBottom ? 15 : 25,
+ y: Math.min((posEnd.y - posStart.y) / 3, 10)
+ }
+
+ // When destination is on the different line, we can make a
+ // curvier arrow because we have space for it.
+ // So, instead of using
+ //
+ // startHandle.x = posStart.x - curvature.x
+ // endHandle.x = posEnd.x - curvature.x
+ //
+ // We use the leftmost of these two values for both handles.
+ startHandle.x = Math.min(posStart.x, posEnd.x) - curvature.x;
+ endHandle.x = startHandle.x;
+
+ // Curving downwards from the start node...
+ startHandle.y = posStart.y + curvature.y;
+ // ... and upwards from the end node.
+ endHandle.y = posEnd.y - curvature.y;
+
+ } else if (leftToRight) {
+ // Case #2
+ // Starting from the top right corner...
+ posStart.x = startRect.right - 1;
+ posStart.y = startRect.top;
+
+ // ...and ending at the top left corner of the end token.
+ posEnd.x = endRect.left + 1;
+ posEnd.y = endRect.top - 1;
+
+ // Utility object with x and y offsets for handles.
+ var curvature = {
+ x: Math.min((posEnd.x - posStart.x) / 3, 15),
+ y: 5
+ }
+
+ // Curving to the right...
+ startHandle.x = posStart.x + curvature.x;
+ // ... and upwards from the start node.
+ startHandle.y = posStart.y - curvature.y;
+
+ // And to the left...
+ endHandle.x = posEnd.x - curvature.x;
+ // ... and upwards from the end node.
+ endHandle.y = posEnd.y - curvature.y;
+
+ } else {
+ // Case #3
+ // Starting from the bottom right corner...
+ posStart.x = startRect.right;
+ posStart.y = startRect.bottom;
+
+ // ...and ending also at the bottom right corner, but of the end token.
+ posEnd.x = endRect.right - 1;
+ posEnd.y = endRect.bottom + 1;
+
+ // Utility object with x and y offsets for handles.
+ var curvature = {
+ x: Math.min((posStart.x - posEnd.x) / 3, 15),
+ y: 5
+ }
+
+ // Curving to the left...
+ startHandle.x = posStart.x - curvature.x;
+ // ... and downwards from the start node.
+ startHandle.y = posStart.y + curvature.y;
+
+ // And to the right...
+ endHandle.x = posEnd.x + curvature.x;
+ // ... and downwards from the end node.
+ endHandle.y = posEnd.y + curvature.y;
+ }
+
+ // Put it all together into a path.
+ // More information on the format:
+ // https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths
+ var pathStr = "M" + posStart.x + "," + posStart.y + " " +
+ "C" + startHandle.x + "," + startHandle.y + " " +
+ endHandle.x + "," + endHandle.y + " " +
+ posEnd.x + "," + posEnd.y;
+
+ arrow.setAttribute("d", pathStr);
+};
+
+var drawArrows = function() {
+ const numOfArrows = document.querySelectorAll("path[id^=arrow]").length;
+ for (var i = 0; i < numOfArrows; ++i) {
+ drawArrow(i);
+ }
+}
+
+var toggleArrows = function(event) {
+ const arrows = document.querySelector("#arrows");
+ if (event.target.checked) {
+ arrows.setAttribute("visibility", "visible");
+ } else {
+ arrows.setAttribute("visibility", "hidden");
+ }
+}
+
+window.addEventListener("resize", drawArrows);
+document.addEventListener("DOMContentLoaded", function() {
+ // Whenever we show invocation, locations change, i.e. we
+ // need to redraw arrows.
+ document
+ .querySelector('input[id="showinvocation"]')
+ .addEventListener("click", drawArrows);
+ // Hiding irrelevant lines also should cause arrow rerender.
+ document
+ .querySelector('input[name="showCounterexample"]')
+ .addEventListener("change", drawArrows);
+ document
+ .querySelector('input[name="showArrows"]')
+ .addEventListener("change", toggleArrows);
+ drawArrows();
+ // Default highlighting for the last event.
+ highlightArrowsForSelectedEvent();
+});
+</script>
+
+<script type='text/javascript'>
+var digitMatcher = new RegExp("[0-9]+");
+
+var querySelectorAllArray = function(selector) {
+ return Array.prototype.slice.call(
+ document.querySelectorAll(selector));
+}
+
+document.addEventListener("DOMContentLoaded", function() {
+ querySelectorAllArray(".PathNav > a").forEach(
+ function(currentValue, currentIndex) {
+ var hrefValue = currentValue.getAttribute("href");
+ currentValue.onclick = function() {
+ scrollTo(document.querySelector(hrefValue));
+ return false;
+ };
+ });
+});
+
+var findNum = function() {
+ var s = document.querySelector(".msg.selected");
+ if (!s || s.id == "EndPath") {
+ return 0;
+ }
+ var out = parseInt(digitMatcher.exec(s.id)[0]);
+ return out;
+};
+
+var classListAdd = function(el, theClass) {
+ if(!el.className.baseVal)
+ el.className += " " + theClass;
+ else
+ el.className.baseVal += " " + theClass;
+};
+
+var classListRemove = function(el, theClass) {
+ var className = (!el.className.baseVal) ?
+ el.className : el.className.baseVal;
+ className = className.replace(" " + theClass, "");
+ if(!el.className.baseVal)
+ el.className = className;
+ else
+ el.className.baseVal = className;
+};
+
+var scrollTo = function(el) {
+ querySelectorAllArray(".selected").forEach(function(s) {
+ classListRemove(s, "selected");
+ });
+ classListAdd(el, "selected");
+ window.scrollBy(0, el.getBoundingClientRect().top -
+ (window.innerHeight / 2));
+ highlightArrowsForSelectedEvent();
+};
+
+var move = function(num, up, numItems) {
+ if (num == 1 && up || num == numItems - 1 && !up) {
+ return 0;
+ } else if (num == 0 && up) {
+ return numItems - 1;
+ } else if (num == 0 && !up) {
+ return 1 % numItems;
+ }
+ return up ? num - 1 : num + 1;
+}
+
+var numToId = function(num) {
+ if (num == 0) {
+ return document.getElementById("EndPath")
+ }
+ return document.getElementById("Path" + num);
+};
+
+var navigateTo = function(up) {
+ var numItems = document.querySelectorAll(
+ ".line > .msgEvent, .line > .msgControl").length;
+ var currentSelected = findNum();
+ var newSelected = move(currentSelected, up, numItems);
+ var newEl = numToId(newSelected, numItems);
+
+ // Scroll element into center.
+ scrollTo(newEl);
+};
+
+window.addEventListener("keydown", function (event) {
+ if (event.defaultPrevented) {
+ return;
+ }
+ // key 'j'
+ if (event.keyCode == 74) {
+ navigateTo(/*up=*/false);
+ // key 'k'
+ } else if (event.keyCode == 75) {
+ navigateTo(/*up=*/true);
+ } else {
+ return;
+ }
+ event.preventDefault();
+}, true);
+</script>
+
+<script type='text/javascript'>
+
+var toggleHelp = function() {
+ var hint = document.querySelector("#tooltiphint");
+ var attributeName = "hidden";
+ if (hint.hasAttribute(attributeName)) {
+ hint.removeAttribute(attributeName);
+ } else {
+ hint.setAttribute("hidden", "true");
+ }
+};
+window.addEventListener("keydown", function (event) {
+ if (event.defaultPrevented) {
+ return;
+ }
+ if (event.key == "?") {
+ toggleHelp();
+ } else {
+ return;
+ }
+ event.preventDefault();
+});
+</script>
+
+<style type="text/css">
+ svg {
+ position:absolute;
+ top:0;
+ left:0;
+ height:100%;
+ width:100%;
+ pointer-events: none;
+ overflow: visible
+ }
+ .arrow {
+ stroke-opacity: 0.2;
+ stroke-width: 1;
+ marker-end: url(#arrowhead);
+ }
+
+ .arrow.selected {
+ stroke-opacity: 0.6;
+ stroke-width: 2;
+ marker-end: url(#arrowheadSelected);
+ }
+
+ .arrowhead {
+ orient: auto;
+ stroke: none;
+ opacity: 0.6;
+ fill: blue;
+ }
+</style>
+<svg xmlns="http://www.w3.org/2000/svg">
+ <defs>
+ <marker id="arrowheadSelected" class="arrowhead" opacity="0.6"
+ viewBox="0 0 10 10" refX="3" refY="5"
+ markerWidth="4" markerHeight="4">
+ <path d="M 0 0 L 10 5 L 0 10 z" />
+ </marker>
+ <marker id="arrowhead" class="arrowhead" opacity="0.2"
+ viewBox="0 0 10 10" refX="3" refY="5"
+ markerWidth="4" markerHeight="4">
+ <path d="M 0 0 L 10 5 L 0 10 z" />
+ </marker>
+ </defs>
+ <g id="arrows" fill="none" stroke="blue" visibility="hidden">
+
+ </g>
+</svg>
+<script type='text/javascript'>
+const arrowIndices = [ 0,0 ]
+</script>
+<table class="code" data-fileid="1">
+<tr class="codeline" data-linenumber="1"><td class="num" id="LN1">1</td><td class="line"><span class='comment'>/*</span></td></tr>
+<tr class="codeline" data-linenumber="2"><td class="num" id="LN2">2</td><td class="line"> <span class='comment'>* Copyright © 2001 Havoc Pennington</span></td></tr>
+<tr class="codeline" data-linenumber="3"><td class="num" id="LN3">3</td><td class="line"> <span class='comment'>* Copyright © 2002 Mathias Hasselmann</span></td></tr>
+<tr class="codeline" data-linenumber="4"><td class="num" id="LN4">4</td><td class="line"> <span class='comment'>* Copyright © 2008 Christian Persch</span></td></tr>
+<tr class="codeline" data-linenumber="5"><td class="num" id="LN5">5</td><td class="line"> <span class='comment'>* Copyright (C) 2012-2021 MATE Developers</span></td></tr>
+<tr class="codeline" data-linenumber="6"><td class="num" id="LN6">6</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="7"><td class="num" id="LN7">7</td><td class="line"> <span class='comment'>* Mate-terminal is free software; you can redistribute it and/or modify</span></td></tr>
+<tr class="codeline" data-linenumber="8"><td class="num" id="LN8">8</td><td class="line"> <span class='comment'>* it under the terms of the GNU General Public License as published by</span></td></tr>
+<tr class="codeline" data-linenumber="9"><td class="num" id="LN9">9</td><td class="line"> <span class='comment'>* the Free Software Foundation; either version 3 of the License, or</span></td></tr>
+<tr class="codeline" data-linenumber="10"><td class="num" id="LN10">10</td><td class="line"> <span class='comment'>* (at your option) any later version.</span></td></tr>
+<tr class="codeline" data-linenumber="11"><td class="num" id="LN11">11</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="12"><td class="num" id="LN12">12</td><td class="line"> <span class='comment'>* Mate-terminal is distributed in the hope that it will be useful,</span></td></tr>
+<tr class="codeline" data-linenumber="13"><td class="num" id="LN13">13</td><td class="line"> <span class='comment'>* but WITHOUT ANY WARRANTY; without even the implied warranty of</span></td></tr>
+<tr class="codeline" data-linenumber="14"><td class="num" id="LN14">14</td><td class="line"> <span class='comment'>* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></td></tr>
+<tr class="codeline" data-linenumber="15"><td class="num" id="LN15">15</td><td class="line"> <span class='comment'>* GNU General Public License for more details.</span></td></tr>
+<tr class="codeline" data-linenumber="16"><td class="num" id="LN16">16</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="17"><td class="num" id="LN17">17</td><td class="line"> <span class='comment'>* You should have received a copy of the GNU General Public License</span></td></tr>
+<tr class="codeline" data-linenumber="18"><td class="num" id="LN18">18</td><td class="line"> <span class='comment'>* along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.</span></td></tr>
+<tr class="codeline" data-linenumber="19"><td class="num" id="LN19">19</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="20"><td class="num" id="LN20">20</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="21"><td class="num" id="LN21">21</td><td class="line"><span class='directive'>#include &lt;config.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="22"><td class="num" id="LN22">22</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="23"><td class="num" id="LN23">23</td><td class="line"><span class='directive'>#include &lt;string.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="24"><td class="num" id="LN24">24</td><td class="line"><span class='directive'>#include &lt;stdlib.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="25"><td class="num" id="LN25">25</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="26"><td class="num" id="LN26">26</td><td class="line"><span class='directive'>#include &lt;gtk/gtk.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="27"><td class="num" id="LN27">27</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="28"><td class="num" id="LN28">28</td><td class="line"><span class='directive'>#include "terminal-app.h"</span></td></tr>
+<tr class="codeline" data-linenumber="29"><td class="num" id="LN29">29</td><td class="line"><span class='directive'>#include "terminal-debug.h"</span></td></tr>
+<tr class="codeline" data-linenumber="30"><td class="num" id="LN30">30</td><td class="line"><span class='directive'>#include "terminal-intl.h"</span></td></tr>
+<tr class="codeline" data-linenumber="31"><td class="num" id="LN31">31</td><td class="line"><span class='directive'>#include "terminal-profile.h"</span></td></tr>
+<tr class="codeline" data-linenumber="32"><td class="num" id="LN32">32</td><td class="line"><span class='directive'>#include "terminal-screen.h"</span></td></tr>
+<tr class="codeline" data-linenumber="33"><td class="num" id="LN33">33</td><td class="line"><span class='directive'>#include "terminal-type-builtins.h"</span></td></tr>
+<tr class="codeline" data-linenumber="34"><td class="num" id="LN34">34</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="35"><td class="num" id="LN35">35</td><td class="line"><span class='comment'>/* To add a new key, you need to:</span></td></tr>
+<tr class="codeline" data-linenumber="36"><td class="num" id="LN36">36</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="37"><td class="num" id="LN37">37</td><td class="line"> <span class='comment'>* - add an entry to the enum below</span></td></tr>
+<tr class="codeline" data-linenumber="38"><td class="num" id="LN38">38</td><td class="line"> <span class='comment'>* - add a #define with its name in terminal-profile.h</span></td></tr>
+<tr class="codeline" data-linenumber="39"><td class="num" id="LN39">39</td><td class="line"> <span class='comment'>* - add a gobject property for it in terminal_profile_class_init</span></td></tr>
+<tr class="codeline" data-linenumber="40"><td class="num" id="LN40">40</td><td class="line"> <span class='comment'>* - if the property's type needs special casing, add that to</span></td></tr>
+<tr class="codeline" data-linenumber="41"><td class="num" id="LN41">41</td><td class="line"> <span class='comment'>* terminal_profile_gsettings_notify_cb and</span></td></tr>
+<tr class="codeline" data-linenumber="42"><td class="num" id="LN42">42</td><td class="line"> <span class='comment'>* terminal_profile_gsettings_changeset_add</span></td></tr>
+<tr class="codeline" data-linenumber="43"><td class="num" id="LN43">43</td><td class="line"> <span class='comment'>* - if necessary the default value cannot be handled via the paramspec,</span></td></tr>
+<tr class="codeline" data-linenumber="44"><td class="num" id="LN44">44</td><td class="line"> <span class='comment'>* handle that in terminal_profile_reset_property_internal</span></td></tr>
+<tr class="codeline" data-linenumber="45"><td class="num" id="LN45">45</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="46"><td class="num" id="LN46">46</td><td class="line"><span class='keyword'>enum</span></td></tr>
+<tr class="codeline" data-linenumber="47"><td class="num" id="LN47">47</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="48"><td class="num" id="LN48">48</td><td class="line"> PROP_0,</td></tr>
+<tr class="codeline" data-linenumber="49"><td class="num" id="LN49">49</td><td class="line"> PROP_ALLOW_BOLD,</td></tr>
+<tr class="codeline" data-linenumber="50"><td class="num" id="LN50">50</td><td class="line"> PROP_BACKGROUND_COLOR,</td></tr>
+<tr class="codeline" data-linenumber="51"><td class="num" id="LN51">51</td><td class="line"> PROP_BACKGROUND_DARKNESS,</td></tr>
+<tr class="codeline" data-linenumber="52"><td class="num" id="LN52">52</td><td class="line"> PROP_BACKGROUND_IMAGE,</td></tr>
+<tr class="codeline" data-linenumber="53"><td class="num" id="LN53">53</td><td class="line"> PROP_BACKGROUND_IMAGE_FILE,</td></tr>
+<tr class="codeline" data-linenumber="54"><td class="num" id="LN54">54</td><td class="line"> PROP_BACKGROUND_TYPE,</td></tr>
+<tr class="codeline" data-linenumber="55"><td class="num" id="LN55">55</td><td class="line"> PROP_BACKSPACE_BINDING,</td></tr>
+<tr class="codeline" data-linenumber="56"><td class="num" id="LN56">56</td><td class="line"> PROP_BOLD_COLOR,</td></tr>
+<tr class="codeline" data-linenumber="57"><td class="num" id="LN57">57</td><td class="line"> PROP_BOLD_COLOR_SAME_AS_FG,</td></tr>
+<tr class="codeline" data-linenumber="58"><td class="num" id="LN58">58</td><td class="line"> PROP_CURSOR_BLINK_MODE,</td></tr>
+<tr class="codeline" data-linenumber="59"><td class="num" id="LN59">59</td><td class="line"> PROP_CURSOR_SHAPE,</td></tr>
+<tr class="codeline" data-linenumber="60"><td class="num" id="LN60">60</td><td class="line"> PROP_CUSTOM_COMMAND,</td></tr>
+<tr class="codeline" data-linenumber="61"><td class="num" id="LN61">61</td><td class="line"> PROP_DEFAULT_SIZE_COLUMNS,</td></tr>
+<tr class="codeline" data-linenumber="62"><td class="num" id="LN62">62</td><td class="line"> PROP_DEFAULT_SIZE_ROWS,</td></tr>
+<tr class="codeline" data-linenumber="63"><td class="num" id="LN63">63</td><td class="line"> PROP_DEFAULT_SHOW_MENUBAR,</td></tr>
+<tr class="codeline" data-linenumber="64"><td class="num" id="LN64">64</td><td class="line"> PROP_DELETE_BINDING,</td></tr>
+<tr class="codeline" data-linenumber="65"><td class="num" id="LN65">65</td><td class="line"> PROP_EXIT_ACTION,</td></tr>
+<tr class="codeline" data-linenumber="66"><td class="num" id="LN66">66</td><td class="line"> PROP_FONT,</td></tr>
+<tr class="codeline" data-linenumber="67"><td class="num" id="LN67">67</td><td class="line"> PROP_FOREGROUND_COLOR,</td></tr>
+<tr class="codeline" data-linenumber="68"><td class="num" id="LN68">68</td><td class="line"> PROP_LOGIN_SHELL,</td></tr>
+<tr class="codeline" data-linenumber="69"><td class="num" id="LN69">69</td><td class="line"> PROP_NAME,</td></tr>
+<tr class="codeline" data-linenumber="70"><td class="num" id="LN70">70</td><td class="line"> PROP_PALETTE,</td></tr>
+<tr class="codeline" data-linenumber="71"><td class="num" id="LN71">71</td><td class="line"> PROP_SCROLL_BACKGROUND,</td></tr>
+<tr class="codeline" data-linenumber="72"><td class="num" id="LN72">72</td><td class="line"> PROP_SCROLLBACK_LINES,</td></tr>
+<tr class="codeline" data-linenumber="73"><td class="num" id="LN73">73</td><td class="line"> PROP_SCROLLBACK_UNLIMITED,</td></tr>
+<tr class="codeline" data-linenumber="74"><td class="num" id="LN74">74</td><td class="line"> PROP_SCROLLBAR_POSITION,</td></tr>
+<tr class="codeline" data-linenumber="75"><td class="num" id="LN75">75</td><td class="line"> PROP_SCROLL_ON_KEYSTROKE,</td></tr>
+<tr class="codeline" data-linenumber="76"><td class="num" id="LN76">76</td><td class="line"> PROP_SCROLL_ON_OUTPUT,</td></tr>
+<tr class="codeline" data-linenumber="77"><td class="num" id="LN77">77</td><td class="line"> PROP_SILENT_BELL,</td></tr>
+<tr class="codeline" data-linenumber="78"><td class="num" id="LN78">78</td><td class="line"> PROP_TITLE,</td></tr>
+<tr class="codeline" data-linenumber="79"><td class="num" id="LN79">79</td><td class="line"> PROP_TITLE_MODE,</td></tr>
+<tr class="codeline" data-linenumber="80"><td class="num" id="LN80">80</td><td class="line"> PROP_USE_CUSTOM_COMMAND,</td></tr>
+<tr class="codeline" data-linenumber="81"><td class="num" id="LN81">81</td><td class="line"> PROP_USE_CUSTOM_DEFAULT_SIZE,</td></tr>
+<tr class="codeline" data-linenumber="82"><td class="num" id="LN82">82</td><td class="line"> PROP_USE_SKEY,</td></tr>
+<tr class="codeline" data-linenumber="83"><td class="num" id="LN83">83</td><td class="line"> PROP_USE_URLS,</td></tr>
+<tr class="codeline" data-linenumber="84"><td class="num" id="LN84">84</td><td class="line"> PROP_USE_SYSTEM_FONT,</td></tr>
+<tr class="codeline" data-linenumber="85"><td class="num" id="LN85">85</td><td class="line"> PROP_USE_THEME_COLORS,</td></tr>
+<tr class="codeline" data-linenumber="86"><td class="num" id="LN86">86</td><td class="line"> PROP_VISIBLE_NAME,</td></tr>
+<tr class="codeline" data-linenumber="87"><td class="num" id="LN87">87</td><td class="line"> PROP_WORD_CHARS,</td></tr>
+<tr class="codeline" data-linenumber="88"><td class="num" id="LN88">88</td><td class="line"> PROP_COPY_SELECTION,</td></tr>
+<tr class="codeline" data-linenumber="89"><td class="num" id="LN89">89</td><td class="line"> LAST_PROP</td></tr>
+<tr class="codeline" data-linenumber="90"><td class="num" id="LN90">90</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="91"><td class="num" id="LN91">91</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="92"><td class="num" id="LN92">92</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_ALLOW_BOLD<span class='macro_popup'>"allow-bold"</span></span> "allow-bold"</span></td></tr>
+<tr class="codeline" data-linenumber="93"><td class="num" id="LN93">93</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_BACKGROUND_COLOR<span class='macro_popup'>"background-color"</span></span> "background-color"</span></td></tr>
+<tr class="codeline" data-linenumber="94"><td class="num" id="LN94">94</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_BACKGROUND_DARKNESS<span class='macro_popup'>"background-darkness"</span></span> "background-darkness"</span></td></tr>
+<tr class="codeline" data-linenumber="95"><td class="num" id="LN95">95</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_BACKGROUND_IMAGE_FILE<span class='macro_popup'>"background-image"</span></span> "background-image"</span></td></tr>
+<tr class="codeline" data-linenumber="96"><td class="num" id="LN96">96</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_BACKGROUND_TYPE<span class='macro_popup'>"background-type"</span></span> "background-type"</span></td></tr>
+<tr class="codeline" data-linenumber="97"><td class="num" id="LN97">97</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_BACKSPACE_BINDING<span class='macro_popup'>"backspace-binding"</span></span> "backspace-binding"</span></td></tr>
+<tr class="codeline" data-linenumber="98"><td class="num" id="LN98">98</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_BOLD_COLOR<span class='macro_popup'>"bold-color"</span></span> "bold-color"</span></td></tr>
+<tr class="codeline" data-linenumber="99"><td class="num" id="LN99">99</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_BOLD_COLOR_SAME_AS_FG<span class='macro_popup'>"bold-color-same-as-fg"</span></span> "bold-color-same-as-fg"</span></td></tr>
+<tr class="codeline" data-linenumber="100"><td class="num" id="LN100">100</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_CURSOR_BLINK_MODE<span class='macro_popup'>"cursor-blink-mode"</span></span> "cursor-blink-mode"</span></td></tr>
+<tr class="codeline" data-linenumber="101"><td class="num" id="LN101">101</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_CURSOR_SHAPE<span class='macro_popup'>"cursor-shape"</span></span> "cursor-shape"</span></td></tr>
+<tr class="codeline" data-linenumber="102"><td class="num" id="LN102">102</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_CUSTOM_COMMAND<span class='macro_popup'>"custom-command"</span></span> "custom-command"</span></td></tr>
+<tr class="codeline" data-linenumber="103"><td class="num" id="LN103">103</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_DEFAULT_SHOW_MENUBAR<span class='macro_popup'>"default-show-menubar"</span></span> "default-show-menubar"</span></td></tr>
+<tr class="codeline" data-linenumber="104"><td class="num" id="LN104">104</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_DEFAULT_SIZE_COLUMNS<span class='macro_popup'>"default-size-columns"</span></span> "default-size-columns"</span></td></tr>
+<tr class="codeline" data-linenumber="105"><td class="num" id="LN105">105</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_DEFAULT_SIZE_ROWS<span class='macro_popup'>"default-size-rows"</span></span> "default-size-rows"</span></td></tr>
+<tr class="codeline" data-linenumber="106"><td class="num" id="LN106">106</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_DELETE_BINDING<span class='macro_popup'>"delete-binding"</span></span> "delete-binding"</span></td></tr>
+<tr class="codeline" data-linenumber="107"><td class="num" id="LN107">107</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_EXIT_ACTION<span class='macro_popup'>"exit-action"</span></span> "exit-action"</span></td></tr>
+<tr class="codeline" data-linenumber="108"><td class="num" id="LN108">108</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_FONT<span class='macro_popup'>"font"</span></span> "font"</span></td></tr>
+<tr class="codeline" data-linenumber="109"><td class="num" id="LN109">109</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_FOREGROUND_COLOR<span class='macro_popup'>"foreground-color"</span></span> "foreground-color"</span></td></tr>
+<tr class="codeline" data-linenumber="110"><td class="num" id="LN110">110</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_LOGIN_SHELL<span class='macro_popup'>"login-shell"</span></span> "login-shell"</span></td></tr>
+<tr class="codeline" data-linenumber="111"><td class="num" id="LN111">111</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_PALETTE<span class='macro_popup'>"palette"</span></span> "palette"</span></td></tr>
+<tr class="codeline" data-linenumber="112"><td class="num" id="LN112">112</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_SCROLL_BACKGROUND<span class='macro_popup'>"scroll-background"</span></span> "scroll-background"</span></td></tr>
+<tr class="codeline" data-linenumber="113"><td class="num" id="LN113">113</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_SCROLLBACK_LINES<span class='macro_popup'>"scrollback-lines"</span></span> "scrollback-lines"</span></td></tr>
+<tr class="codeline" data-linenumber="114"><td class="num" id="LN114">114</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_SCROLLBACK_UNLIMITED<span class='macro_popup'>"scrollback-unlimited"</span></span> "scrollback-unlimited"</span></td></tr>
+<tr class="codeline" data-linenumber="115"><td class="num" id="LN115">115</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_SCROLLBAR_POSITION<span class='macro_popup'>"scrollbar-position"</span></span> "scrollbar-position"</span></td></tr>
+<tr class="codeline" data-linenumber="116"><td class="num" id="LN116">116</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_SCROLL_ON_KEYSTROKE<span class='macro_popup'>"scroll-on-keystroke"</span></span> "scroll-on-keystroke"</span></td></tr>
+<tr class="codeline" data-linenumber="117"><td class="num" id="LN117">117</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_SCROLL_ON_OUTPUT<span class='macro_popup'>"scroll-on-output"</span></span> "scroll-on-output"</span></td></tr>
+<tr class="codeline" data-linenumber="118"><td class="num" id="LN118">118</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_SILENT_BELL<span class='macro_popup'>"silent-bell"</span></span> "silent-bell"</span></td></tr>
+<tr class="codeline" data-linenumber="119"><td class="num" id="LN119">119</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_COPY_SELECTION<span class='macro_popup'>"copy-selection"</span></span> "copy-selection"</span></td></tr>
+<tr class="codeline" data-linenumber="120"><td class="num" id="LN120">120</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_TITLE_MODE<span class='macro_popup'>"title-mode"</span></span> "title-mode"</span></td></tr>
+<tr class="codeline" data-linenumber="121"><td class="num" id="LN121">121</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_TITLE<span class='macro_popup'>"title"</span></span> "title"</span></td></tr>
+<tr class="codeline" data-linenumber="122"><td class="num" id="LN122">122</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_USE_CUSTOM_COMMAND<span class='macro_popup'>"use-custom-command"</span></span> "use-custom-command"</span></td></tr>
+<tr class="codeline" data-linenumber="123"><td class="num" id="LN123">123</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_USE_CUSTOM_DEFAULT_SIZE<span class='macro_popup'>"use-custom-default-size"</span></span> "use-custom-default-size"</span></td></tr>
+<tr class="codeline" data-linenumber="124"><td class="num" id="LN124">124</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_USE_SKEY<span class='macro_popup'>"use-skey"</span></span> "use-skey"</span></td></tr>
+<tr class="codeline" data-linenumber="125"><td class="num" id="LN125">125</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_USE_URLS<span class='macro_popup'>"use-urls"</span></span> "use-urls"</span></td></tr>
+<tr class="codeline" data-linenumber="126"><td class="num" id="LN126">126</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_USE_SYSTEM_FONT<span class='macro_popup'>"use-system-font"</span></span> "use-system-font"</span></td></tr>
+<tr class="codeline" data-linenumber="127"><td class="num" id="LN127">127</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_USE_THEME_COLORS<span class='macro_popup'>"use-theme-colors"</span></span> "use-theme-colors"</span></td></tr>
+<tr class="codeline" data-linenumber="128"><td class="num" id="LN128">128</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_VISIBLE_NAME<span class='macro_popup'>"visible-name"</span></span> "visible-name"</span></td></tr>
+<tr class="codeline" data-linenumber="129"><td class="num" id="LN129">129</td><td class="line"><span class='directive'>#define <span class='macro'>KEY_WORD_CHARS<span class='macro_popup'>"word-chars"</span></span> "word-chars"</span></td></tr>
+<tr class="codeline" data-linenumber="130"><td class="num" id="LN130">130</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="131"><td class="num" id="LN131">131</td><td class="line"><span class='comment'>/* Keep these in sync with the GSettings schema! */</span></td></tr>
+<tr class="codeline" data-linenumber="132"><td class="num" id="LN132">132</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_ALLOW_BOLD<span class='macro_popup'>((!(0)))</span></span> (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="133"><td class="num" id="LN133">133</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_BACKGROUND_COLOR<span class='macro_popup'>("#FFFFDD")</span></span> ("#FFFFDD")</span></td></tr>
+<tr class="codeline" data-linenumber="134"><td class="num" id="LN134">134</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_BOLD_COLOR_SAME_AS_FG<span class='macro_popup'>((!(0)))</span></span> (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="135"><td class="num" id="LN135">135</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_BACKGROUND_DARKNESS<span class='macro_popup'>(0.5)</span></span> (0.5)</span></td></tr>
+<tr class="codeline" data-linenumber="136"><td class="num" id="LN136">136</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_BACKGROUND_IMAGE_FILE<span class='macro_popup'>("")</span></span> ("")</span></td></tr>
+<tr class="codeline" data-linenumber="137"><td class="num" id="LN137">137</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_BACKGROUND_TYPE<span class='macro_popup'>(TERMINAL_BACKGROUND_SOLID)</span></span> (TERMINAL_BACKGROUND_SOLID)</span></td></tr>
+<tr class="codeline" data-linenumber="138"><td class="num" id="LN138">138</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_BACKSPACE_BINDING<span class='macro_popup'>(VTE_ERASE_ASCII_DELETE)</span></span> (VTE_ERASE_ASCII_DELETE)</span></td></tr>
+<tr class="codeline" data-linenumber="139"><td class="num" id="LN139">139</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_CURSOR_BLINK_MODE<span class='macro_popup'>(VTE_CURSOR_BLINK_SYSTEM)</span></span> (VTE_CURSOR_BLINK_SYSTEM)</span></td></tr>
+<tr class="codeline" data-linenumber="140"><td class="num" id="LN140">140</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_CURSOR_SHAPE<span class='macro_popup'>(VTE_CURSOR_SHAPE_BLOCK)</span></span> (VTE_CURSOR_SHAPE_BLOCK)</span></td></tr>
+<tr class="codeline" data-linenumber="141"><td class="num" id="LN141">141</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_CUSTOM_COMMAND<span class='macro_popup'>("")</span></span> ("")</span></td></tr>
+<tr class="codeline" data-linenumber="142"><td class="num" id="LN142">142</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_DEFAULT_SHOW_MENUBAR<span class='macro_popup'>((!(0)))</span></span> (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="143"><td class="num" id="LN143">143</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_DEFAULT_SIZE_COLUMNS<span class='macro_popup'>(80)</span></span> (80)</span></td></tr>
+<tr class="codeline" data-linenumber="144"><td class="num" id="LN144">144</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_DEFAULT_SIZE_ROWS<span class='macro_popup'>(24)</span></span> (24)</span></td></tr>
+<tr class="codeline" data-linenumber="145"><td class="num" id="LN145">145</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_DELETE_BINDING<span class='macro_popup'>(VTE_ERASE_DELETE_SEQUENCE)</span></span> (VTE_ERASE_DELETE_SEQUENCE)</span></td></tr>
+<tr class="codeline" data-linenumber="146"><td class="num" id="LN146">146</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_EXIT_ACTION<span class='macro_popup'>(TERMINAL_EXIT_CLOSE)</span></span> (TERMINAL_EXIT_CLOSE)</span></td></tr>
+<tr class="codeline" data-linenumber="147"><td class="num" id="LN147">147</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_FONT<span class='macro_popup'>("Monospace 12")</span></span> ("Monospace 12")</span></td></tr>
+<tr class="codeline" data-linenumber="148"><td class="num" id="LN148">148</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_FOREGROUND_COLOR<span class='macro_popup'>("#000000")</span></span> ("#000000")</span></td></tr>
+<tr class="codeline" data-linenumber="149"><td class="num" id="LN149">149</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_LOGIN_SHELL<span class='macro_popup'>((0))</span></span> (<span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="150"><td class="num" id="LN150">150</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_NAME<span class='macro_popup'>(((void*)0))</span></span> (<span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="151"><td class="num" id="LN151">151</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_PALETTE<span class='macro_popup'>(terminal_palettes[0])</span></span> (terminal_palettes[<span class='macro'>TERMINAL_PALETTE_TANGO<span class='macro_popup'>0</span></span>])</span></td></tr>
+<tr class="codeline" data-linenumber="152"><td class="num" id="LN152">152</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_SCROLL_BACKGROUND<span class='macro_popup'>((!(0)))</span></span> (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="153"><td class="num" id="LN153">153</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_SCROLLBACK_LINES<span class='macro_popup'>(512)</span></span> (512)</span></td></tr>
+<tr class="codeline" data-linenumber="154"><td class="num" id="LN154">154</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_SCROLLBACK_UNLIMITED<span class='macro_popup'>((0))</span></span> (<span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="155"><td class="num" id="LN155">155</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_SCROLLBAR_POSITION<span class='macro_popup'>(TERMINAL_SCROLLBAR_RIGHT)</span></span> (TERMINAL_SCROLLBAR_RIGHT)</span></td></tr>
+<tr class="codeline" data-linenumber="156"><td class="num" id="LN156">156</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_SCROLL_ON_KEYSTROKE<span class='macro_popup'>((!(0)))</span></span> (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="157"><td class="num" id="LN157">157</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_SCROLL_ON_OUTPUT<span class='macro_popup'>((0))</span></span> (<span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="158"><td class="num" id="LN158">158</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_SILENT_BELL<span class='macro_popup'>((0))</span></span> (<span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="159"><td class="num" id="LN159">159</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_COPY_SELECTION<span class='macro_popup'>((0))</span></span> (<span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="160"><td class="num" id="LN160">160</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_TITLE_MODE<span class='macro_popup'>(TERMINAL_TITLE_REPLACE)</span></span> (TERMINAL_TITLE_REPLACE)</span></td></tr>
+<tr class="codeline" data-linenumber="161"><td class="num" id="LN161">161</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_TITLE<span class='macro_popup'>(("Terminal"))</span></span> (<span class='macro'>N_("Terminal")<span class='macro_popup'>("Terminal")</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="162"><td class="num" id="LN162">162</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_USE_CUSTOM_COMMAND<span class='macro_popup'>((0))</span></span> (<span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="163"><td class="num" id="LN163">163</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_USE_CUSTOM_DEFAULT_SIZE<span class='macro_popup'>((0))</span></span> (<span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="164"><td class="num" id="LN164">164</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_USE_SKEY<span class='macro_popup'>((!(0)))</span></span> (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="165"><td class="num" id="LN165">165</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_USE_URLS<span class='macro_popup'>((!(0)))</span></span> (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="166"><td class="num" id="LN166">166</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_USE_SYSTEM_FONT<span class='macro_popup'>((!(0)))</span></span> (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="167"><td class="num" id="LN167">167</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_USE_THEME_COLORS<span class='macro_popup'>((!(0)))</span></span> (<span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="168"><td class="num" id="LN168">168</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_VISIBLE_NAME<span class='macro_popup'>(("Unnamed"))</span></span> (<span class='macro'>N_("Unnamed")<span class='macro_popup'>("Unnamed")</span></span>)</span></td></tr>
+<tr class="codeline" data-linenumber="169"><td class="num" id="LN169">169</td><td class="line"><span class='directive'>#define <span class='macro'>DEFAULT_WORD_CHARS<span class='macro_popup'>("-A-Za-z0-9,./?%&amp;#:_=+@~")</span></span> ("-A-Za-z0-9,./?%&amp;#:_=+@~")</span></td></tr>
+<tr class="codeline" data-linenumber="170"><td class="num" id="LN170">170</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="171"><td class="num" id="LN171">171</td><td class="line"><span class='keyword'>struct</span> _TerminalProfilePrivate</td></tr>
+<tr class="codeline" data-linenumber="172"><td class="num" id="LN172">172</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="173"><td class="num" id="LN173">173</td><td class="line"> GValueArray *properties;</td></tr>
+<tr class="codeline" data-linenumber="174"><td class="num" id="LN174">174</td><td class="line"> gboolean *locked;</td></tr>
+<tr class="codeline" data-linenumber="175"><td class="num" id="LN175">175</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="176"><td class="num" id="LN176">176</td><td class="line"> GSettings *settings;</td></tr>
+<tr class="codeline" data-linenumber="177"><td class="num" id="LN177">177</td><td class="line"> <span class='keyword'>char</span> *profile_dir;</td></tr>
+<tr class="codeline" data-linenumber="178"><td class="num" id="LN178">178</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="179"><td class="num" id="LN179">179</td><td class="line"> GSList *dirty_pspecs;</td></tr>
+<tr class="codeline" data-linenumber="180"><td class="num" id="LN180">180</td><td class="line"> guint save_idle_id;</td></tr>
+<tr class="codeline" data-linenumber="181"><td class="num" id="LN181">181</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="182"><td class="num" id="LN182">182</td><td class="line"> GParamSpec *gsettings_notification_pspec;</td></tr>
+<tr class="codeline" data-linenumber="183"><td class="num" id="LN183">183</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="184"><td class="num" id="LN184">184</td><td class="line"> gboolean background_load_failed;</td></tr>
+<tr class="codeline" data-linenumber="185"><td class="num" id="LN185">185</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="186"><td class="num" id="LN186">186</td><td class="line"> guint forgotten : 1;</td></tr>
+<tr class="codeline" data-linenumber="187"><td class="num" id="LN187">187</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="188"><td class="num" id="LN188">188</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="189"><td class="num" id="LN189">189</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>const</span> GdkRGBA terminal_palettes[<span class='macro'>TERMINAL_PALETTE_N_BUILTINS<span class='macro_popup'>5</span></span>][<span class='macro'>TERMINAL_PALETTE_SIZE<span class='macro_popup'>16</span></span>] =</td></tr>
+<tr class="codeline" data-linenumber="190"><td class="num" id="LN190">190</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="191"><td class="num" id="LN191">191</td><td class="line"> <span class='comment'>/* Tango palette */</span></td></tr>
+<tr class="codeline" data-linenumber="192"><td class="num" id="LN192">192</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="193"><td class="num" id="LN193">193</td><td class="line"> { 0, 0, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="194"><td class="num" id="LN194">194</td><td class="line"> { 0.8, 0, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="195"><td class="num" id="LN195">195</td><td class="line"> { 0.305882, 0.603922, 0.0235294, 1 },</td></tr>
+<tr class="codeline" data-linenumber="196"><td class="num" id="LN196">196</td><td class="line"> { 0.768627, 0.627451, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="197"><td class="num" id="LN197">197</td><td class="line"> { 0.203922, 0.396078, 0.643137, 1 },</td></tr>
+<tr class="codeline" data-linenumber="198"><td class="num" id="LN198">198</td><td class="line"> { 0.458824, 0.313725, 0.482353, 1 },</td></tr>
+<tr class="codeline" data-linenumber="199"><td class="num" id="LN199">199</td><td class="line"> { 0.0235294, 0.596078, 0.603922, 1 },</td></tr>
+<tr class="codeline" data-linenumber="200"><td class="num" id="LN200">200</td><td class="line"> { 0.827451, 0.843137, 0.811765, 1 },</td></tr>
+<tr class="codeline" data-linenumber="201"><td class="num" id="LN201">201</td><td class="line"> { 0.333333, 0.341176, 0.32549, 1 },</td></tr>
+<tr class="codeline" data-linenumber="202"><td class="num" id="LN202">202</td><td class="line"> { 0.937255, 0.160784, 0.160784, 1 },</td></tr>
+<tr class="codeline" data-linenumber="203"><td class="num" id="LN203">203</td><td class="line"> { 0.541176, 0.886275, 0.203922, 1 },</td></tr>
+<tr class="codeline" data-linenumber="204"><td class="num" id="LN204">204</td><td class="line"> { 0.988235, 0.913725, 0.309804, 1 },</td></tr>
+<tr class="codeline" data-linenumber="205"><td class="num" id="LN205">205</td><td class="line"> { 0.447059, 0.623529, 0.811765, 1 },</td></tr>
+<tr class="codeline" data-linenumber="206"><td class="num" id="LN206">206</td><td class="line"> { 0.678431, 0.498039, 0.658824, 1 },</td></tr>
+<tr class="codeline" data-linenumber="207"><td class="num" id="LN207">207</td><td class="line"> { 0.203922, 0.886275, 0.886275, 1 },</td></tr>
+<tr class="codeline" data-linenumber="208"><td class="num" id="LN208">208</td><td class="line"> { 0.933333, 0.933333, 0.92549, 1 },</td></tr>
+<tr class="codeline" data-linenumber="209"><td class="num" id="LN209">209</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="210"><td class="num" id="LN210">210</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="211"><td class="num" id="LN211">211</td><td class="line"> <span class='comment'>/* Linux palette */</span></td></tr>
+<tr class="codeline" data-linenumber="212"><td class="num" id="LN212">212</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="213"><td class="num" id="LN213">213</td><td class="line"> { 0, 0, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="214"><td class="num" id="LN214">214</td><td class="line"> { 0.666667, 0, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="215"><td class="num" id="LN215">215</td><td class="line"> { 0, 0.666667, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="216"><td class="num" id="LN216">216</td><td class="line"> { 0.666667, 0.333333, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="217"><td class="num" id="LN217">217</td><td class="line"> { 0, 0, 0.666667, 1 },</td></tr>
+<tr class="codeline" data-linenumber="218"><td class="num" id="LN218">218</td><td class="line"> { 0.666667, 0, 0.666667, 1 },</td></tr>
+<tr class="codeline" data-linenumber="219"><td class="num" id="LN219">219</td><td class="line"> { 0, 0.666667, 0.666667, 1 },</td></tr>
+<tr class="codeline" data-linenumber="220"><td class="num" id="LN220">220</td><td class="line"> { 0.666667, 0.666667, 0.666667, 1 },</td></tr>
+<tr class="codeline" data-linenumber="221"><td class="num" id="LN221">221</td><td class="line"> { 0.333333, 0.333333, 0.333333, 1 },</td></tr>
+<tr class="codeline" data-linenumber="222"><td class="num" id="LN222">222</td><td class="line"> { 1, 0.333333, 0.333333, 1 },</td></tr>
+<tr class="codeline" data-linenumber="223"><td class="num" id="LN223">223</td><td class="line"> { 0.333333, 1, 0.333333, 1 },</td></tr>
+<tr class="codeline" data-linenumber="224"><td class="num" id="LN224">224</td><td class="line"> { 1, 1, 0.333333, 1 },</td></tr>
+<tr class="codeline" data-linenumber="225"><td class="num" id="LN225">225</td><td class="line"> { 0.333333, 0.333333, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="226"><td class="num" id="LN226">226</td><td class="line"> { 1, 0.333333, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="227"><td class="num" id="LN227">227</td><td class="line"> { 0.333333, 1, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="228"><td class="num" id="LN228">228</td><td class="line"> { 1, 1, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="229"><td class="num" id="LN229">229</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="230"><td class="num" id="LN230">230</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="231"><td class="num" id="LN231">231</td><td class="line"> <span class='comment'>/* XTerm palette */</span></td></tr>
+<tr class="codeline" data-linenumber="232"><td class="num" id="LN232">232</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="233"><td class="num" id="LN233">233</td><td class="line"> { 0, 0, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="234"><td class="num" id="LN234">234</td><td class="line"> { 0.803922, 0, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="235"><td class="num" id="LN235">235</td><td class="line"> { 0, 0.803922, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="236"><td class="num" id="LN236">236</td><td class="line"> { 0.803922, 0.803922, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="237"><td class="num" id="LN237">237</td><td class="line"> { 0.117647, 0.564706, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="238"><td class="num" id="LN238">238</td><td class="line"> { 0.803922, 0, 0.803922, 1 },</td></tr>
+<tr class="codeline" data-linenumber="239"><td class="num" id="LN239">239</td><td class="line"> { 0, 0.803922, 0.803922, 1 },</td></tr>
+<tr class="codeline" data-linenumber="240"><td class="num" id="LN240">240</td><td class="line"> { 0.898039, 0.898039, 0.898039, 1 },</td></tr>
+<tr class="codeline" data-linenumber="241"><td class="num" id="LN241">241</td><td class="line"> { 0.298039, 0.298039, 0.298039, 1 },</td></tr>
+<tr class="codeline" data-linenumber="242"><td class="num" id="LN242">242</td><td class="line"> { 1, 0, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="243"><td class="num" id="LN243">243</td><td class="line"> { 0, 1, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="244"><td class="num" id="LN244">244</td><td class="line"> { 1, 1, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="245"><td class="num" id="LN245">245</td><td class="line"> { 0.27451, 0.509804, 0.705882, 1 },</td></tr>
+<tr class="codeline" data-linenumber="246"><td class="num" id="LN246">246</td><td class="line"> { 1, 0, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="247"><td class="num" id="LN247">247</td><td class="line"> { 0, 1, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="248"><td class="num" id="LN248">248</td><td class="line"> { 1, 1, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="249"><td class="num" id="LN249">249</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="250"><td class="num" id="LN250">250</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="251"><td class="num" id="LN251">251</td><td class="line"> <span class='comment'>/* RXVT palette */</span></td></tr>
+<tr class="codeline" data-linenumber="252"><td class="num" id="LN252">252</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="253"><td class="num" id="LN253">253</td><td class="line"> { 0, 0, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="254"><td class="num" id="LN254">254</td><td class="line"> { 0.803922, 0, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="255"><td class="num" id="LN255">255</td><td class="line"> { 0, 0.803922, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="256"><td class="num" id="LN256">256</td><td class="line"> { 0.803922, 0.803922, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="257"><td class="num" id="LN257">257</td><td class="line"> { 0, 0, 0.803922, 1 },</td></tr>
+<tr class="codeline" data-linenumber="258"><td class="num" id="LN258">258</td><td class="line"> { 0.803922, 0, 0.803922, 1 },</td></tr>
+<tr class="codeline" data-linenumber="259"><td class="num" id="LN259">259</td><td class="line"> { 0, 0.803922, 0.803922, 1 },</td></tr>
+<tr class="codeline" data-linenumber="260"><td class="num" id="LN260">260</td><td class="line"> { 0.980392, 0.921569, 0.843137, 1 },</td></tr>
+<tr class="codeline" data-linenumber="261"><td class="num" id="LN261">261</td><td class="line"> { 0.25098, 0.25098, 0.25098, 1 },</td></tr>
+<tr class="codeline" data-linenumber="262"><td class="num" id="LN262">262</td><td class="line"> { 1, 0, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="263"><td class="num" id="LN263">263</td><td class="line"> { 0, 1, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="264"><td class="num" id="LN264">264</td><td class="line"> { 1, 1, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="265"><td class="num" id="LN265">265</td><td class="line"> { 0, 0, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="266"><td class="num" id="LN266">266</td><td class="line"> { 1, 0, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="267"><td class="num" id="LN267">267</td><td class="line"> { 0, 1, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="268"><td class="num" id="LN268">268</td><td class="line"> { 1, 1, 1, 1 },</td></tr>
+<tr class="codeline" data-linenumber="269"><td class="num" id="LN269">269</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="270"><td class="num" id="LN270">270</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="271"><td class="num" id="LN271">271</td><td class="line"> <span class='comment'>/* Solarized palette (1.0.0beta2): http://ethanschoonover.com/solarized */</span></td></tr>
+<tr class="codeline" data-linenumber="272"><td class="num" id="LN272">272</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="273"><td class="num" id="LN273">273</td><td class="line"> { 0.02745, 0.211764, 0.258823, 1 },</td></tr>
+<tr class="codeline" data-linenumber="274"><td class="num" id="LN274">274</td><td class="line"> { 0.862745, 0.196078, 0.184313, 1 },</td></tr>
+<tr class="codeline" data-linenumber="275"><td class="num" id="LN275">275</td><td class="line"> { 0.521568, 0.6, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="276"><td class="num" id="LN276">276</td><td class="line"> { 0.709803, 0.537254, 0, 1 },</td></tr>
+<tr class="codeline" data-linenumber="277"><td class="num" id="LN277">277</td><td class="line"> { 0.149019, 0.545098, 0.823529, 1 },</td></tr>
+<tr class="codeline" data-linenumber="278"><td class="num" id="LN278">278</td><td class="line"> { 0.82745, 0.211764, 0.509803, 1 },</td></tr>
+<tr class="codeline" data-linenumber="279"><td class="num" id="LN279">279</td><td class="line"> { 0.164705, 0.631372, 0.596078, 1 },</td></tr>
+<tr class="codeline" data-linenumber="280"><td class="num" id="LN280">280</td><td class="line"> { 0.933333, 0.909803, 0.835294, 1 },</td></tr>
+<tr class="codeline" data-linenumber="281"><td class="num" id="LN281">281</td><td class="line"> { 0, 0.168627, 0.211764, 1 },</td></tr>
+<tr class="codeline" data-linenumber="282"><td class="num" id="LN282">282</td><td class="line"> { 0.796078, 0.294117, 0.086274, 1 },</td></tr>
+<tr class="codeline" data-linenumber="283"><td class="num" id="LN283">283</td><td class="line"> { 0.345098, 0.431372, 0.458823, 1 },</td></tr>
+<tr class="codeline" data-linenumber="284"><td class="num" id="LN284">284</td><td class="line"> { 0.396078, 0.482352, 0.513725, 1 },</td></tr>
+<tr class="codeline" data-linenumber="285"><td class="num" id="LN285">285</td><td class="line"> { 0.513725, 0.580392, 0.588235, 1 },</td></tr>
+<tr class="codeline" data-linenumber="286"><td class="num" id="LN286">286</td><td class="line"> { 0.423529, 0.443137, 0.768627, 1 },</td></tr>
+<tr class="codeline" data-linenumber="287"><td class="num" id="LN287">287</td><td class="line"> { 0.57647, 0.631372, 0.631372, 1 },</td></tr>
+<tr class="codeline" data-linenumber="288"><td class="num" id="LN288">288</td><td class="line"> { 0.992156, 0.964705, 0.890196, 1 },</td></tr>
+<tr class="codeline" data-linenumber="289"><td class="num" id="LN289">289</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="290"><td class="num" id="LN290">290</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="291"><td class="num" id="LN291">291</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="292"><td class="num" id="LN292">292</td><td class="line"><span class='keyword'>enum</span></td></tr>
+<tr class="codeline" data-linenumber="293"><td class="num" id="LN293">293</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="294"><td class="num" id="LN294">294</td><td class="line"> FORGOTTEN,</td></tr>
+<tr class="codeline" data-linenumber="295"><td class="num" id="LN295">295</td><td class="line"> LAST_SIGNAL</td></tr>
+<tr class="codeline" data-linenumber="296"><td class="num" id="LN296">296</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="297"><td class="num" id="LN297">297</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="298"><td class="num" id="LN298">298</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> terminal_profile_finalize (GObject *object);</td></tr>
+<tr class="codeline" data-linenumber="299"><td class="num" id="LN299">299</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> terminal_profile_set_property (GObject *object,</td></tr>
+<tr class="codeline" data-linenumber="300"><td class="num" id="LN300">300</td><td class="line"> guint prop_id,</td></tr>
+<tr class="codeline" data-linenumber="301"><td class="num" id="LN301">301</td><td class="line"> <span class='keyword'>const</span> GValue *value,</td></tr>
+<tr class="codeline" data-linenumber="302"><td class="num" id="LN302">302</td><td class="line"> GParamSpec *pspec);</td></tr>
+<tr class="codeline" data-linenumber="303"><td class="num" id="LN303">303</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> ensure_pixbuf_property (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="304"><td class="num" id="LN304">304</td><td class="line"> guint path_prop_id,</td></tr>
+<tr class="codeline" data-linenumber="305"><td class="num" id="LN305">305</td><td class="line"> guint pixbuf_prop_id,</td></tr>
+<tr class="codeline" data-linenumber="306"><td class="num" id="LN306">306</td><td class="line"> gboolean *load_failed);</td></tr>
+<tr class="codeline" data-linenumber="307"><td class="num" id="LN307">307</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="308"><td class="num" id="LN308">308</td><td class="line"><span class='keyword'>static</span> guint signals[LAST_SIGNAL] = { 0 };</td></tr>
+<tr class="codeline" data-linenumber="309"><td class="num" id="LN309">309</td><td class="line"><span class='keyword'>static</span> GQuark gsettings_key_quark;</td></tr>
+<tr class="codeline" data-linenumber="310"><td class="num" id="LN310">310</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="311"><td class="num" id="LN311">311</td><td class="line"><span class='macro'>G_DEFINE_TYPE_WITH_PRIVATE (TerminalProfile, terminal_profile, G_TYPE_OBJECT)<span class='macro_popup'>static void terminal_profile_init (TerminalProfile *self); static<br> void terminal_profile_class_init (TerminalProfileClass *klass<br>); static GType terminal_profile_get_type_once (void); static<br> gpointer terminal_profile_parent_class = ((void*)0); static gint<br> TerminalProfile_private_offset; static void terminal_profile_class_intern_init<br> (gpointer klass) { terminal_profile_parent_class = g_type_class_peek_parent<br> (klass); if (TerminalProfile_private_offset != 0) g_type_class_adjust_private_offset<br> (klass, &amp;TerminalProfile_private_offset); terminal_profile_class_init<br> ((TerminalProfileClass*) klass); } __attribute__ ((__unused__<br>)) static inline gpointer terminal_profile_get_instance_private<br> (TerminalProfile *self) { return (((gpointer) ((guint8*) (self<br>) + (glong) (TerminalProfile_private_offset)))); } GType terminal_profile_get_type<br> (void) { static gsize static_g_define_type_id = 0; if ((__extension__<br> ({ _Static_assert (sizeof *(&amp;static_g_define_type_id) ==<br> sizeof (gpointer), "Expression evaluates to false"); (void) (<br>0 ? (gpointer) *(&amp;static_g_define_type_id) : ((void*)0));<br> (!(__extension__ ({ _Static_assert (sizeof *(&amp;static_g_define_type_id<br>) == sizeof (gpointer), "Expression evaluates to false"); __typeof__<br> (*(&amp;static_g_define_type_id)) gapg_temp_newval; __typeof__<br> ((&amp;static_g_define_type_id)) gapg_temp_atomic = (&amp;static_g_define_type_id<br>); __atomic_load (gapg_temp_atomic, &amp;gapg_temp_newval, 5)<br>; gapg_temp_newval; })) &amp;&amp; g_once_init_enter (&amp;static_g_define_type_id<br>)); }))) { GType g_define_type_id = terminal_profile_get_type_once<br> (); (__extension__ ({ _Static_assert (sizeof *(&amp;static_g_define_type_id<br>) == sizeof (gpointer), "Expression evaluates to false"); 0 ?<br> (void) (*(&amp;static_g_define_type_id) = (g_define_type_id)<br>) : (void) 0; g_once_init_leave ((&amp;static_g_define_type_id<br>), (gsize) (g_define_type_id)); })); } return static_g_define_type_id<br>; } __attribute__ ((__noinline__)) static GType terminal_profile_get_type_once<br> (void) { GType g_define_type_id = g_type_register_static_simple<br> (((GType) ((20) &lt;&lt; (2))), g_intern_static_string ("TerminalProfile"<br>), sizeof (TerminalProfileClass), (GClassInitFunc)(void (*)(void<br>)) terminal_profile_class_intern_init, sizeof (TerminalProfile<br>), (GInstanceInitFunc)(void (*)(void)) terminal_profile_init,<br> (GTypeFlags) 0); { {{ TerminalProfile_private_offset = g_type_add_instance_private<br> (g_define_type_id, sizeof (TerminalProfilePrivate)); };} } return<br> g_define_type_id; }</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="312"><td class="num" id="LN312">312</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="313"><td class="num" id="LN313">313</td><td class="line"><span class='comment'>/* gdk_rgba_equal is too strict! */</span></td></tr>
+<tr class="codeline" data-linenumber="314"><td class="num" id="LN314">314</td><td class="line"><span class='keyword'>static</span> gboolean</td></tr>
+<tr class="codeline" data-linenumber="315"><td class="num" id="LN315">315</td><td class="line">rgba_equal (<span class='keyword'>const</span> GdkRGBA *a,</td></tr>
+<tr class="codeline" data-linenumber="316"><td class="num" id="LN316">316</td><td class="line"> <span class='keyword'>const</span> GdkRGBA *b)</td></tr>
+<tr class="codeline" data-linenumber="317"><td class="num" id="LN317">317</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="318"><td class="num" id="LN318">318</td><td class="line"> gdouble dr, dg, db, da;</td></tr>
+<tr class="codeline" data-linenumber="319"><td class="num" id="LN319">319</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="320"><td class="num" id="LN320">320</td><td class="line"> dr = a-&gt;red - b-&gt;red;</td></tr>
+<tr class="codeline" data-linenumber="321"><td class="num" id="LN321">321</td><td class="line"> dg = a-&gt;green - b-&gt;green;</td></tr>
+<tr class="codeline" data-linenumber="322"><td class="num" id="LN322">322</td><td class="line"> db = a-&gt;blue - b-&gt;blue;</td></tr>
+<tr class="codeline" data-linenumber="323"><td class="num" id="LN323">323</td><td class="line"> da = a-&gt;alpha - b-&gt;alpha;</td></tr>
+<tr class="codeline" data-linenumber="324"><td class="num" id="LN324">324</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="325"><td class="num" id="LN325">325</td><td class="line"> <span class='keyword'>return</span> (dr * dr + dg * dg + db * db + da * da) &lt; 1e-4;</td></tr>
+<tr class="codeline" data-linenumber="326"><td class="num" id="LN326">326</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="327"><td class="num" id="LN327">327</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="328"><td class="num" id="LN328">328</td><td class="line"><span class='keyword'>static</span> gboolean</td></tr>
+<tr class="codeline" data-linenumber="329"><td class="num" id="LN329">329</td><td class="line">palette_cmp (<span class='keyword'>const</span> GdkRGBA *ca,</td></tr>
+<tr class="codeline" data-linenumber="330"><td class="num" id="LN330">330</td><td class="line"> <span class='keyword'>const</span> GdkRGBA *cb)</td></tr>
+<tr class="codeline" data-linenumber="331"><td class="num" id="LN331">331</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="332"><td class="num" id="LN332">332</td><td class="line"> guint i;</td></tr>
+<tr class="codeline" data-linenumber="333"><td class="num" id="LN333">333</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="334"><td class="num" id="LN334">334</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; <span class='macro'>TERMINAL_PALETTE_SIZE<span class='macro_popup'>16</span></span>; ++i)</td></tr>
+<tr class="codeline" data-linenumber="335"><td class="num" id="LN335">335</td><td class="line"> <span class='keyword'>if</span> (!rgba_equal (&amp;ca[i], &amp;cb[i]))</td></tr>
+<tr class="codeline" data-linenumber="336"><td class="num" id="LN336">336</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="337"><td class="num" id="LN337">337</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="338"><td class="num" id="LN338">338</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="339"><td class="num" id="LN339">339</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="340"><td class="num" id="LN340">340</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="341"><td class="num" id="LN341">341</td><td class="line"><span class='keyword'>static</span> GParamSpec *</td></tr>
+<tr class="codeline" data-linenumber="342"><td class="num" id="LN342">342</td><td class="line">get_pspec_from_name (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="343"><td class="num" id="LN343">343</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="344"><td class="num" id="LN344">344</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="345"><td class="num" id="LN345">345</td><td class="line"> TerminalProfileClass *klass = <span class='macro'>TERMINAL_PROFILE_GET_CLASS (profile)<span class='macro_popup'>((((TerminalProfileClass*) (((GTypeInstance*) ((profile)))-&gt;<br>g_class))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="346"><td class="num" id="LN346">346</td><td class="line"> GParamSpec *pspec;</td></tr>
+<tr class="codeline" data-linenumber="347"><td class="num" id="LN347">347</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="348"><td class="num" id="LN348">348</td><td class="line"> pspec = g_object_class_find_property (<span class='macro'>G_OBJECT_CLASS (klass)<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((klass)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="349"><td class="num" id="LN349">349</td><td class="line"> <span class='keyword'>if</span> (pspec &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="350"><td class="num" id="LN350">350</td><td class="line"> pspec-&gt;owner_type != <span class='macro'>TERMINAL_TYPE_PROFILE<span class='macro_popup'>(terminal_profile_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="351"><td class="num" id="LN351">351</td><td class="line"> pspec = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="352"><td class="num" id="LN352">352</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="353"><td class="num" id="LN353">353</td><td class="line"> <span class='keyword'>return</span> pspec;</td></tr>
+<tr class="codeline" data-linenumber="354"><td class="num" id="LN354">354</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="355"><td class="num" id="LN355">355</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="356"><td class="num" id="LN356">356</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>const</span> GValue *</td></tr>
+<tr class="codeline" data-linenumber="357"><td class="num" id="LN357">357</td><td class="line">get_prop_value_from_prop_name (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="358"><td class="num" id="LN358">358</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="359"><td class="num" id="LN359">359</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="360"><td class="num" id="LN360">360</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="361"><td class="num" id="LN361">361</td><td class="line"> GParamSpec *pspec;</td></tr>
+<tr class="codeline" data-linenumber="362"><td class="num" id="LN362">362</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="363"><td class="num" id="LN363">363</td><td class="line"> pspec = get_pspec_from_name (profile, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="364"><td class="num" id="LN364">364</td><td class="line"> <span class='keyword'>if</span> (!pspec)</td></tr>
+<tr class="codeline" data-linenumber="365"><td class="num" id="LN365">365</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="366"><td class="num" id="LN366">366</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="367"><td class="num" id="LN367">367</td><td class="line"> <span class='keyword'>if</span> (<span class='macro'>G_UNLIKELY (pspec-&gt;param_id == PROP_BACKGROUND_IMAGE)<span class='macro_popup'>(pspec-&gt;param_id == PROP_BACKGROUND_IMAGE)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="368"><td class="num" id="LN368">368</td><td class="line"> ensure_pixbuf_property (profile, PROP_BACKGROUND_IMAGE_FILE, PROP_BACKGROUND_IMAGE, &amp;priv-&gt;background_load_failed);</td></tr>
+<tr class="codeline" data-linenumber="369"><td class="num" id="LN369">369</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="370"><td class="num" id="LN370">370</td><td class="line"> <span class='keyword'>return</span> g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id);</td></tr>
+<tr class="codeline" data-linenumber="371"><td class="num" id="LN371">371</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="372"><td class="num" id="LN372">372</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="373"><td class="num" id="LN373">373</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="374"><td class="num" id="LN374">374</td><td class="line">set_value_from_palette (GValue *ret_value,</td></tr>
+<tr class="codeline" data-linenumber="375"><td class="num" id="LN375">375</td><td class="line"> <span class='keyword'>const</span> GdkRGBA *colors,</td></tr>
+<tr class="codeline" data-linenumber="376"><td class="num" id="LN376">376</td><td class="line"> guint n_colors)</td></tr>
+<tr class="codeline" data-linenumber="377"><td class="num" id="LN377">377</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="378"><td class="num" id="LN378">378</td><td class="line"> GValueArray *array;</td></tr>
+<tr class="codeline" data-linenumber="379"><td class="num" id="LN379">379</td><td class="line"> guint i, max_n_colors;</td></tr>
+<tr class="codeline" data-linenumber="380"><td class="num" id="LN380">380</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="381"><td class="num" id="LN381">381</td><td class="line"> max_n_colors = <span class='macro'>MAX (n_colors, TERMINAL_PALETTE_SIZE)<span class='macro_popup'>(((n_colors) &gt; (16)) ? (n_colors) : (16))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="382"><td class="num" id="LN382">382</td><td class="line"> array = g_value_array_new (max_n_colors);</td></tr>
+<tr class="codeline" data-linenumber="383"><td class="num" id="LN383">383</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; max_n_colors; ++i)</td></tr>
+<tr class="codeline" data-linenumber="384"><td class="num" id="LN384">384</td><td class="line"> g_value_array_append (array, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="385"><td class="num" id="LN385">385</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="386"><td class="num" id="LN386">386</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; n_colors; ++i)</td></tr>
+<tr class="codeline" data-linenumber="387"><td class="num" id="LN387">387</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="388"><td class="num" id="LN388">388</td><td class="line"> GValue *value = g_value_array_get_nth (array, i);</td></tr>
+<tr class="codeline" data-linenumber="389"><td class="num" id="LN389">389</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="390"><td class="num" id="LN390">390</td><td class="line"> g_value_init (value, <span class='macro'>GDK_TYPE_RGBA<span class='macro_popup'>(gdk_rgba_get_type ())</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="391"><td class="num" id="LN391">391</td><td class="line"> g_value_set_boxed (value, &amp;colors[i]);</td></tr>
+<tr class="codeline" data-linenumber="392"><td class="num" id="LN392">392</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="393"><td class="num" id="LN393">393</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="394"><td class="num" id="LN394">394</td><td class="line"> <span class='comment'>/* If we haven't enough colours yet, fill up with the default palette */</span></td></tr>
+<tr class="codeline" data-linenumber="395"><td class="num" id="LN395">395</td><td class="line"> <span class='keyword'>for</span> (i = n_colors; i &lt; <span class='macro'>TERMINAL_PALETTE_SIZE<span class='macro_popup'>16</span></span>; ++i)</td></tr>
+<tr class="codeline" data-linenumber="396"><td class="num" id="LN396">396</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="397"><td class="num" id="LN397">397</td><td class="line"> GValue *value = g_value_array_get_nth (array, i);</td></tr>
+<tr class="codeline" data-linenumber="398"><td class="num" id="LN398">398</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="399"><td class="num" id="LN399">399</td><td class="line"> g_value_init (value, <span class='macro'>GDK_TYPE_RGBA<span class='macro_popup'>(gdk_rgba_get_type ())</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="400"><td class="num" id="LN400">400</td><td class="line"> g_value_set_boxed (value, &amp;<span class='macro'>DEFAULT_PALETTE<span class='macro_popup'>(terminal_palettes[0])</span></span>[i]);</td></tr>
+<tr class="codeline" data-linenumber="401"><td class="num" id="LN401">401</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="402"><td class="num" id="LN402">402</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="403"><td class="num" id="LN403">403</td><td class="line"> g_value_take_boxed (ret_value, array);</td></tr>
+<tr class="codeline" data-linenumber="404"><td class="num" id="LN404">404</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="405"><td class="num" id="LN405">405</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="406"><td class="num" id="LN406">406</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>int</span></td></tr>
+<tr class="codeline" data-linenumber="407"><td class="num" id="LN407">407</td><td class="line">values_equal (GParamSpec *pspec,</td></tr>
+<tr class="codeline" data-linenumber="408"><td class="num" id="LN408">408</td><td class="line"> <span class='keyword'>const</span> GValue *va,</td></tr>
+<tr class="codeline" data-linenumber="409"><td class="num" id="LN409">409</td><td class="line"> <span class='keyword'>const</span> GValue *vb)</td></tr>
+<tr class="codeline" data-linenumber="410"><td class="num" id="LN410">410</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="411"><td class="num" id="LN411">411</td><td class="line"> <span class='comment'>/* g_param_values_cmp isn't good enough for some types, since e.g.</span></td></tr>
+<tr class="codeline" data-linenumber="412"><td class="num" id="LN412">412</td><td class="line"> <span class='comment'>* it compares colours and font descriptions by pointer value, not</span></td></tr>
+<tr class="codeline" data-linenumber="413"><td class="num" id="LN413">413</td><td class="line"> <span class='comment'>* with the correct compare functions. Providing extra</span></td></tr>
+<tr class="codeline" data-linenumber="414"><td class="num" id="LN414">414</td><td class="line"> <span class='comment'>* PangoParamSpecFontDescription and GdkParamSpecColor wouldn't</span></td></tr>
+<tr class="codeline" data-linenumber="415"><td class="num" id="LN415">415</td><td class="line"> <span class='comment'>* have fixed this either, since it's unclear how to _order_ them.</span></td></tr>
+<tr class="codeline" data-linenumber="416"><td class="num" id="LN416">416</td><td class="line"> <span class='comment'>* Luckily we only need to check them for equality here.</span></td></tr>
+<tr class="codeline" data-linenumber="417"><td class="num" id="LN417">417</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="418"><td class="num" id="LN418">418</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="419"><td class="num" id="LN419">419</td><td class="line"> <span class='keyword'>if</span> (g_param_values_cmp (pspec, va, vb) == 0)</td></tr>
+<tr class="codeline" data-linenumber="420"><td class="num" id="LN420">420</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="421"><td class="num" id="LN421">421</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="422"><td class="num" id="LN422">422</td><td class="line"> <span class='keyword'>if</span> (<span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span> == <span class='macro'>GDK_TYPE_RGBA<span class='macro_popup'>(gdk_rgba_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="423"><td class="num" id="LN423">423</td><td class="line"> <span class='keyword'>return</span> rgba_equal (g_value_get_boxed (va), g_value_get_boxed (vb));</td></tr>
+<tr class="codeline" data-linenumber="424"><td class="num" id="LN424">424</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="425"><td class="num" id="LN425">425</td><td class="line"> <span class='keyword'>if</span> (<span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span> == <span class='macro'>PANGO_TYPE_FONT_DESCRIPTION<span class='macro_popup'>(pango_font_description_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="426"><td class="num" id="LN426">426</td><td class="line"> <span class='keyword'>return</span> pango_font_description_equal (g_value_get_boxed (va), g_value_get_boxed (vb));</td></tr>
+<tr class="codeline" data-linenumber="427"><td class="num" id="LN427">427</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="428"><td class="num" id="LN428">428</td><td class="line"> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_VALUE_ARRAY (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[18]) GCC warning "Deprecated pre-processor symbol"<br>
+); gboolean __r; if (!__inst) __r = (0); else if (__inst-&gt;<br>g_class &amp;&amp; __inst-&gt;g_class-&gt;g_type == __t) __r =<br> (!(0)); else __r = g_type_check_instance_is_a (__inst, __t);<br> __r; })))) GCC warning "Deprecated pre-processor symbol"
+</span></span> &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="429"><td class="num" id="LN429">429</td><td class="line"> <span class='macro'>G_PARAM_SPEC_VALUE_TYPE (G_PARAM_SPEC_VALUE_ARRAY (pspec)-&gt;element_spec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((((((GParamSpecValueArray*) (void *) g_type_check_instance_cast<br> ((GTypeInstance*) ((pspec)), ((g_param_spec_types[18]) GCC warning<br> "Deprecated pre-processor symbol"
+))))) GCC warning "Deprecated pre-processor symbol"<br>
+-&gt;element_spec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;<br>value_type)</span></span> == <span class='macro'>GDK_TYPE_RGBA<span class='macro_popup'>(gdk_rgba_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="430"><td class="num" id="LN430">430</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="431"><td class="num" id="LN431">431</td><td class="line"> GValueArray *ara, *arb;</td></tr>
+<tr class="codeline" data-linenumber="432"><td class="num" id="LN432">432</td><td class="line"> guint i;</td></tr>
+<tr class="codeline" data-linenumber="433"><td class="num" id="LN433">433</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="434"><td class="num" id="LN434">434</td><td class="line"> ara = g_value_get_boxed (va);</td></tr>
+<tr class="codeline" data-linenumber="435"><td class="num" id="LN435">435</td><td class="line"> arb = g_value_get_boxed (vb);</td></tr>
+<tr class="codeline" data-linenumber="436"><td class="num" id="LN436">436</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="437"><td class="num" id="LN437">437</td><td class="line"> <span class='keyword'>if</span> (!ara || !arb || ara-&gt;n_values != arb-&gt;n_values)</td></tr>
+<tr class="codeline" data-linenumber="438"><td class="num" id="LN438">438</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="439"><td class="num" id="LN439">439</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="440"><td class="num" id="LN440">440</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; ara-&gt;n_values; ++i)</td></tr>
+<tr class="codeline" data-linenumber="441"><td class="num" id="LN441">441</td><td class="line"> <span class='keyword'>if</span> (!rgba_equal (g_value_get_boxed (g_value_array_get_nth (ara, i)),</td></tr>
+<tr class="codeline" data-linenumber="442"><td class="num" id="LN442">442</td><td class="line"> g_value_get_boxed (g_value_array_get_nth (arb, i))))</td></tr>
+<tr class="codeline" data-linenumber="443"><td class="num" id="LN443">443</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="444"><td class="num" id="LN444">444</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="445"><td class="num" id="LN445">445</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="446"><td class="num" id="LN446">446</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="447"><td class="num" id="LN447">447</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="448"><td class="num" id="LN448">448</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="449"><td class="num" id="LN449">449</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="450"><td class="num" id="LN450">450</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="451"><td class="num" id="LN451">451</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="452"><td class="num" id="LN452">452</td><td class="line">ensure_pixbuf_property (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="453"><td class="num" id="LN453">453</td><td class="line"> guint path_prop_id,</td></tr>
+<tr class="codeline" data-linenumber="454"><td class="num" id="LN454">454</td><td class="line"> guint pixbuf_prop_id,</td></tr>
+<tr class="codeline" data-linenumber="455"><td class="num" id="LN455">455</td><td class="line"> gboolean *load_failed)</td></tr>
+<tr class="codeline" data-linenumber="456"><td class="num" id="LN456">456</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="457"><td class="num" id="LN457">457</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="458"><td class="num" id="LN458">458</td><td class="line"> GValue *path_value, *pixbuf_value;</td></tr>
+<tr class="codeline" data-linenumber="459"><td class="num" id="LN459">459</td><td class="line"> GdkPixbuf *pixbuf;</td></tr>
+<tr class="codeline" data-linenumber="460"><td class="num" id="LN460">460</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *path_utf8;</td></tr>
+<tr class="codeline" data-linenumber="461"><td class="num" id="LN461">461</td><td class="line"> <span class='keyword'>char</span> *path;</td></tr>
+<tr class="codeline" data-linenumber="462"><td class="num" id="LN462">462</td><td class="line"> GError *error = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="463"><td class="num" id="LN463">463</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="464"><td class="num" id="LN464">464</td><td class="line"> pixbuf_value = g_value_array_get_nth (priv-&gt;properties, pixbuf_prop_id);</td></tr>
+<tr class="codeline" data-linenumber="465"><td class="num" id="LN465">465</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="466"><td class="num" id="LN466">466</td><td class="line"> pixbuf = g_value_get_object (pixbuf_value);</td></tr>
+<tr class="codeline" data-linenumber="467"><td class="num" id="LN467">467</td><td class="line"> <span class='keyword'>if</span> (pixbuf)</td></tr>
+<tr class="codeline" data-linenumber="468"><td class="num" id="LN468">468</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="469"><td class="num" id="LN469">469</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="470"><td class="num" id="LN470">470</td><td class="line"> <span class='keyword'>if</span> (*load_failed)</td></tr>
+<tr class="codeline" data-linenumber="471"><td class="num" id="LN471">471</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="472"><td class="num" id="LN472">472</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="473"><td class="num" id="LN473">473</td><td class="line"> path_value = g_value_array_get_nth (priv-&gt;properties, path_prop_id);</td></tr>
+<tr class="codeline" data-linenumber="474"><td class="num" id="LN474">474</td><td class="line"> path_utf8 = g_value_get_string (path_value);</td></tr>
+<tr class="codeline" data-linenumber="475"><td class="num" id="LN475">475</td><td class="line"> <span class='keyword'>if</span> (!path_utf8 || !path_utf8[0])</td></tr>
+<tr class="codeline" data-linenumber="476"><td class="num" id="LN476">476</td><td class="line"> <span class='keyword'>goto</span> failed;</td></tr>
+<tr class="codeline" data-linenumber="477"><td class="num" id="LN477">477</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="478"><td class="num" id="LN478">478</td><td class="line"> path = g_filename_from_utf8 (path_utf8, -1, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="479"><td class="num" id="LN479">479</td><td class="line"> <span class='keyword'>if</span> (!path)</td></tr>
+<tr class="codeline" data-linenumber="480"><td class="num" id="LN480">480</td><td class="line"> <span class='keyword'>goto</span> failed;</td></tr>
+<tr class="codeline" data-linenumber="481"><td class="num" id="LN481">481</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="482"><td class="num" id="LN482">482</td><td class="line"> pixbuf = gdk_pixbuf_new_from_file (path, &amp;error);</td></tr>
+<tr class="codeline" data-linenumber="483"><td class="num" id="LN483">483</td><td class="line"> <span class='keyword'>if</span> (!pixbuf)</td></tr>
+<tr class="codeline" data-linenumber="484"><td class="num" id="LN484">484</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="485"><td class="num" id="LN485">485</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_PROFILE,<span class='macro_popup'>do { if (0) g_printerr("Failed to load image \"%s\": %s\n", path<br>, error-&gt;message); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="486"><td class="num" id="LN486">486</td><td class="line"> <span class='string_literal'><span class='macro'>"Failed to load image \"%s\": %s\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("Failed to load image \"%s\": %s\n", path<br>, error-&gt;message); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="487"><td class="num" id="LN487">487</td><td class="line"> <span class='macro'>path, error-&gt;message)<span class='macro_popup'>do { if (0) g_printerr("Failed to load image \"%s\": %s\n", path<br>, error-&gt;message); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="488"><td class="num" id="LN488">488</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="489"><td class="num" id="LN489">489</td><td class="line"> g_error_free (error);</td></tr>
+<tr class="codeline" data-linenumber="490"><td class="num" id="LN490">490</td><td class="line"> g_free (path);</td></tr>
+<tr class="codeline" data-linenumber="491"><td class="num" id="LN491">491</td><td class="line"> <span class='keyword'>goto</span> failed;</td></tr>
+<tr class="codeline" data-linenumber="492"><td class="num" id="LN492">492</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="493"><td class="num" id="LN493">493</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="494"><td class="num" id="LN494">494</td><td class="line"> g_value_take_object (pixbuf_value, pixbuf);</td></tr>
+<tr class="codeline" data-linenumber="495"><td class="num" id="LN495">495</td><td class="line"> g_free (path);</td></tr>
+<tr class="codeline" data-linenumber="496"><td class="num" id="LN496">496</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="497"><td class="num" id="LN497">497</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="498"><td class="num" id="LN498">498</td><td class="line">failed:</td></tr>
+<tr class="codeline" data-linenumber="499"><td class="num" id="LN499">499</td><td class="line"> *load_failed = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="500"><td class="num" id="LN500">500</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="501"><td class="num" id="LN501">501</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="502"><td class="num" id="LN502">502</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="503"><td class="num" id="LN503">503</td><td class="line">terminal_profile_reset_property_internal (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="504"><td class="num" id="LN504">504</td><td class="line"> GParamSpec *pspec,</td></tr>
+<tr class="codeline" data-linenumber="505"><td class="num" id="LN505">505</td><td class="line"> gboolean notify)</td></tr>
+<tr class="codeline" data-linenumber="506"><td class="num" id="LN506">506</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="507"><td class="num" id="LN507">507</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="508"><td class="num" id="LN508">508</td><td class="line"> GValue value_ = { 0, };</td></tr>
+<tr class="codeline" data-linenumber="509"><td class="num" id="LN509">509</td><td class="line"> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="510"><td class="num" id="LN510">510</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="511"><td class="num" id="LN511">511</td><td class="line"> <span class='keyword'>if</span> (notify)</td></tr>
+<tr class="codeline" data-linenumber="512"><td class="num" id="LN512">512</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="513"><td class="num" id="LN513">513</td><td class="line"> value = &amp;value_;</td></tr>
+<tr class="codeline" data-linenumber="514"><td class="num" id="LN514">514</td><td class="line"> g_value_init (value, <span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="515"><td class="num" id="LN515">515</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="516"><td class="num" id="LN516">516</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="517"><td class="num" id="LN517">517</td><td class="line"> value = g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id);</td></tr>
+<tr class="codeline" data-linenumber="518"><td class="num" id="LN518">518</td><td class="line"> <span class='macro'>g_assert (value != NULL)<span class='macro_popup'>do { if (value != ((void*)0)) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-profile.c", 518, ((const char*) (__func__<br>)), "value != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="519"><td class="num" id="LN519">519</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="520"><td class="num" id="LN520">520</td><td class="line"> <span class='comment'>/* A few properties don't have defaults via the param spec; set them explicitly */</span></td></tr>
+<tr class="codeline" data-linenumber="521"><td class="num" id="LN521">521</td><td class="line"> <span class='keyword'>switch</span> (pspec-&gt;param_id)</td></tr>
+<tr class="codeline" data-linenumber="522"><td class="num" id="LN522">522</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="523"><td class="num" id="LN523">523</td><td class="line"> <span class='keyword'>case</span> PROP_FOREGROUND_COLOR:</td></tr>
+<tr class="codeline" data-linenumber="524"><td class="num" id="LN524">524</td><td class="line"> <span class='keyword'>case</span> PROP_BOLD_COLOR:</td></tr>
+<tr class="codeline" data-linenumber="525"><td class="num" id="LN525">525</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="526"><td class="num" id="LN526">526</td><td class="line"> GdkRGBA color;</td></tr>
+<tr class="codeline" data-linenumber="527"><td class="num" id="LN527">527</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="528"><td class="num" id="LN528">528</td><td class="line"> <span class='keyword'>if</span> (!gdk_rgba_parse (&amp;color, <span class='macro'>DEFAULT_FOREGROUND_COLOR<span class='macro_popup'>("#000000")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="529"><td class="num" id="LN529">529</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="530"><td class="num" id="LN530">530</td><td class="line"> color.alpha = 1.0;</td></tr>
+<tr class="codeline" data-linenumber="531"><td class="num" id="LN531">531</td><td class="line"> g_value_set_boxed (value, &amp;color);</td></tr>
+<tr class="codeline" data-linenumber="532"><td class="num" id="LN532">532</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="533"><td class="num" id="LN533">533</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="534"><td class="num" id="LN534">534</td><td class="line"> <span class='keyword'>case</span> PROP_BACKGROUND_COLOR:</td></tr>
+<tr class="codeline" data-linenumber="535"><td class="num" id="LN535">535</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="536"><td class="num" id="LN536">536</td><td class="line"> GdkRGBA color;</td></tr>
+<tr class="codeline" data-linenumber="537"><td class="num" id="LN537">537</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="538"><td class="num" id="LN538">538</td><td class="line"> <span class='keyword'>if</span> (!gdk_rgba_parse (&amp;color, <span class='macro'>DEFAULT_BACKGROUND_COLOR<span class='macro_popup'>("#FFFFDD")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="539"><td class="num" id="LN539">539</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="540"><td class="num" id="LN540">540</td><td class="line"> color.alpha = 1.0;</td></tr>
+<tr class="codeline" data-linenumber="541"><td class="num" id="LN541">541</td><td class="line"> g_value_set_boxed (value, &amp;color);</td></tr>
+<tr class="codeline" data-linenumber="542"><td class="num" id="LN542">542</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="543"><td class="num" id="LN543">543</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="544"><td class="num" id="LN544">544</td><td class="line"> <span class='keyword'>case</span> PROP_FONT:</td></tr>
+<tr class="codeline" data-linenumber="545"><td class="num" id="LN545">545</td><td class="line"> g_value_take_boxed (value, pango_font_description_from_string (<span class='macro'>DEFAULT_FONT<span class='macro_popup'>("Monospace 12")</span></span>));</td></tr>
+<tr class="codeline" data-linenumber="546"><td class="num" id="LN546">546</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="547"><td class="num" id="LN547">547</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="548"><td class="num" id="LN548">548</td><td class="line"> <span class='keyword'>case</span> PROP_PALETTE:</td></tr>
+<tr class="codeline" data-linenumber="549"><td class="num" id="LN549">549</td><td class="line"> set_value_from_palette (value, <span class='macro'>DEFAULT_PALETTE<span class='macro_popup'>(terminal_palettes[0])</span></span>, <span class='macro'>TERMINAL_PALETTE_SIZE<span class='macro_popup'>16</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="550"><td class="num" id="LN550">550</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="551"><td class="num" id="LN551">551</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="552"><td class="num" id="LN552">552</td><td class="line"> <span class='keyword'>default</span>:</td></tr>
+<tr class="codeline" data-linenumber="553"><td class="num" id="LN553">553</td><td class="line"> g_param_value_set_default (pspec, value);</td></tr>
+<tr class="codeline" data-linenumber="554"><td class="num" id="LN554">554</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="555"><td class="num" id="LN555">555</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="556"><td class="num" id="LN556">556</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="557"><td class="num" id="LN557">557</td><td class="line"> <span class='keyword'>if</span> (notify)</td></tr>
+<tr class="codeline" data-linenumber="558"><td class="num" id="LN558">558</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="559"><td class="num" id="LN559">559</td><td class="line"> g_object_set_property (<span class='macro'>G_OBJECT (profile)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((profile)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, pspec-&gt;name, value);</td></tr>
+<tr class="codeline" data-linenumber="560"><td class="num" id="LN560">560</td><td class="line"> g_value_unset (value);</td></tr>
+<tr class="codeline" data-linenumber="561"><td class="num" id="LN561">561</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="562"><td class="num" id="LN562">562</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="563"><td class="num" id="LN563">563</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="564"><td class="num" id="LN564">564</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="565"><td class="num" id="LN565">565</td><td class="line">terminal_profile_gsettings_notify_cb (GSettings *settings,</td></tr>
+<tr class="codeline" data-linenumber="566"><td class="num" id="LN566">566</td><td class="line"> gchar *key,</td></tr>
+<tr class="codeline" data-linenumber="567"><td class="num" id="LN567">567</td><td class="line"> gpointer user_data)</td></tr>
+<tr class="codeline" data-linenumber="568"><td class="num" id="LN568">568</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="569"><td class="num" id="LN569">569</td><td class="line"> TerminalProfile *profile = <span class='macro'>TERMINAL_PROFILE (user_data)<span class='macro_popup'>((((TerminalProfile*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((user_data)), ((terminal_profile_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="570"><td class="num" id="LN570">570</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="571"><td class="num" id="LN571">571</td><td class="line"> TerminalProfileClass *klass;</td></tr>
+<tr class="codeline" data-linenumber="572"><td class="num" id="LN572">572</td><td class="line"> GVariant *settings_value;</td></tr>
+<tr class="codeline" data-linenumber="573"><td class="num" id="LN573">573</td><td class="line"> GParamSpec *pspec;</td></tr>
+<tr class="codeline" data-linenumber="574"><td class="num" id="LN574">574</td><td class="line"> GValue value = { 0, };</td></tr>
+<tr class="codeline" data-linenumber="575"><td class="num" id="LN575">575</td><td class="line"> gboolean equal;</td></tr>
+<tr class="codeline" data-linenumber="576"><td class="num" id="LN576">576</td><td class="line"> gboolean force_set = <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="577"><td class="num" id="LN577">577</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="578"><td class="num" id="LN578">578</td><td class="line"> <span class='keyword'>if</span> (!key) <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="579"><td class="num" id="LN579">579</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="580"><td class="num" id="LN580">580</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_PROFILE,<span class='macro_popup'>do { if (0) g_printerr("GSettings notification for key %s [%s]\n"<br>, key, g_settings_is_writable (settings, key) ? "writable" : "LOCKED"<br>); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="581"><td class="num" id="LN581">581</td><td class="line"> <span class='string_literal'><span class='macro'>"GSettings notification for key %s [%s]\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("GSettings notification for key %s [%s]\n"<br>, key, g_settings_is_writable (settings, key) ? "writable" : "LOCKED"<br>); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="582"><td class="num" id="LN582">582</td><td class="line"> <span class='macro'>key,<span class='macro_popup'>do { if (0) g_printerr("GSettings notification for key %s [%s]\n"<br>, key, g_settings_is_writable (settings, key) ? "writable" : "LOCKED"<br>); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="583"><td class="num" id="LN583">583</td><td class="line"> <span class='macro'>g_settings_is_writable (settings, key) ? <span class='string_literal'>"writable"</span> : <span class='string_literal'>"LOCKED"</span>)<span class='macro_popup'>do { if (0) g_printerr("GSettings notification for key %s [%s]\n"<br>, key, g_settings_is_writable (settings, key) ? "writable" : "LOCKED"<br>); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="584"><td class="num" id="LN584">584</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="585"><td class="num" id="LN585">585</td><td class="line"> klass = <span class='macro'>TERMINAL_PROFILE_GET_CLASS (profile)<span class='macro_popup'>((((TerminalProfileClass*) (((GTypeInstance*) ((profile)))-&gt;<br>g_class))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="586"><td class="num" id="LN586">586</td><td class="line"> pspec = g_hash_table_lookup (klass-&gt;gsettings_keys, key);</td></tr>
+<tr class="codeline" data-linenumber="587"><td class="num" id="LN587">587</td><td class="line"> <span class='keyword'>if</span> (!pspec)</td></tr>
+<tr class="codeline" data-linenumber="588"><td class="num" id="LN588">588</td><td class="line"> <span class='keyword'>return</span>; <span class='comment'>/* ignore unknown keys, for future extensibility */</span></td></tr>
+<tr class="codeline" data-linenumber="589"><td class="num" id="LN589">589</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="590"><td class="num" id="LN590">590</td><td class="line"> priv-&gt;locked[pspec-&gt;param_id] = !g_settings_is_writable (settings, key);</td></tr>
+<tr class="codeline" data-linenumber="591"><td class="num" id="LN591">591</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="592"><td class="num" id="LN592">592</td><td class="line"> settings_value = g_settings_get_value (settings, key);</td></tr>
+<tr class="codeline" data-linenumber="593"><td class="num" id="LN593">593</td><td class="line"> <span class='keyword'>if</span> (!settings_value)</td></tr>
+<tr class="codeline" data-linenumber="594"><td class="num" id="LN594">594</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="595"><td class="num" id="LN595">595</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="596"><td class="num" id="LN596">596</td><td class="line"> g_value_init (&amp;value, <span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="597"><td class="num" id="LN597">597</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="598"><td class="num" id="LN598">598</td><td class="line"> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_BOOLEAN (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[2])); gboolean __r<br>; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="599"><td class="num" id="LN599">599</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="600"><td class="num" id="LN600">600</td><td class="line"> <span class='keyword'>if</span> (!g_variant_is_of_type (settings_value, <span class='macro'>G_VARIANT_TYPE_BOOLEAN<span class='macro_popup'>((const GVariantType *) "b")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="601"><td class="num" id="LN601">601</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="602"><td class="num" id="LN602">602</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="603"><td class="num" id="LN603">603</td><td class="line"> g_value_set_boolean (&amp;value, g_variant_get_boolean (settings_value));</td></tr>
+<tr class="codeline" data-linenumber="604"><td class="num" id="LN604">604</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="605"><td class="num" id="LN605">605</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_STRING (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[14])); gboolean __r<br>; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="606"><td class="num" id="LN606">606</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="607"><td class="num" id="LN607">607</td><td class="line"> <span class='keyword'>if</span> (!g_variant_is_of_type (settings_value, <span class='macro'>G_VARIANT_TYPE_STRING<span class='macro_popup'>((const GVariantType *) "s")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="608"><td class="num" id="LN608">608</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="609"><td class="num" id="LN609">609</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="610"><td class="num" id="LN610">610</td><td class="line"> g_value_set_string (&amp;value, g_variant_get_string (settings_value, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>));</td></tr>
+<tr class="codeline" data-linenumber="611"><td class="num" id="LN611">611</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="612"><td class="num" id="LN612">612</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_ENUM (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[10])); gboolean __r<br>; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="613"><td class="num" id="LN613">613</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="614"><td class="num" id="LN614">614</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="615"><td class="num" id="LN615">615</td><td class="line"> <span class='keyword'>if</span> (!g_variant_is_of_type (settings_value, <span class='macro'>G_VARIANT_TYPE_STRING<span class='macro_popup'>((const GVariantType *) "s")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="616"><td class="num" id="LN616">616</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="617"><td class="num" id="LN617">617</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="618"><td class="num" id="LN618">618</td><td class="line"> g_value_set_enum (&amp;value, g_settings_get_enum (settings, key));</td></tr>
+<tr class="codeline" data-linenumber="619"><td class="num" id="LN619">619</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="620"><td class="num" id="LN620">620</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span> == <span class='macro'>GDK_TYPE_RGBA<span class='macro_popup'>(gdk_rgba_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="621"><td class="num" id="LN621">621</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="622"><td class="num" id="LN622">622</td><td class="line"> GdkRGBA color;</td></tr>
+<tr class="codeline" data-linenumber="623"><td class="num" id="LN623">623</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="624"><td class="num" id="LN624">624</td><td class="line"> <span class='keyword'>if</span> (!g_variant_is_of_type (settings_value, <span class='macro'>G_VARIANT_TYPE_STRING<span class='macro_popup'>((const GVariantType *) "s")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="625"><td class="num" id="LN625">625</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="626"><td class="num" id="LN626">626</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="627"><td class="num" id="LN627">627</td><td class="line"> <span class='keyword'>if</span> (!gdk_rgba_parse (&amp;color, g_variant_get_string (settings_value, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)))</td></tr>
+<tr class="codeline" data-linenumber="628"><td class="num" id="LN628">628</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="629"><td class="num" id="LN629">629</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="630"><td class="num" id="LN630">630</td><td class="line"> g_value_set_boxed (&amp;value, &amp;color);</td></tr>
+<tr class="codeline" data-linenumber="631"><td class="num" id="LN631">631</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="632"><td class="num" id="LN632">632</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span> == <span class='macro'>PANGO_TYPE_FONT_DESCRIPTION<span class='macro_popup'>(pango_font_description_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="633"><td class="num" id="LN633">633</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="634"><td class="num" id="LN634">634</td><td class="line"> <span class='keyword'>if</span> (!g_variant_is_of_type (settings_value, <span class='macro'>G_VARIANT_TYPE_STRING<span class='macro_popup'>((const GVariantType *) "s")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="635"><td class="num" id="LN635">635</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="636"><td class="num" id="LN636">636</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="637"><td class="num" id="LN637">637</td><td class="line"> g_value_take_boxed (&amp;value, pango_font_description_from_string (g_variant_get_string (settings_value, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)));</td></tr>
+<tr class="codeline" data-linenumber="638"><td class="num" id="LN638">638</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="639"><td class="num" id="LN639">639</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_DOUBLE (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[13])); gboolean __r<br>; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="640"><td class="num" id="LN640">640</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="641"><td class="num" id="LN641">641</td><td class="line"> <span class='keyword'>if</span> (!g_variant_is_of_type (settings_value, <span class='macro'>G_VARIANT_TYPE_DOUBLE<span class='macro_popup'>((const GVariantType *) "d")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="642"><td class="num" id="LN642">642</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="643"><td class="num" id="LN643">643</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="644"><td class="num" id="LN644">644</td><td class="line"> g_value_set_double (&amp;value, g_variant_get_double (settings_value));</td></tr>
+<tr class="codeline" data-linenumber="645"><td class="num" id="LN645">645</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="646"><td class="num" id="LN646">646</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_INT (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[3])); gboolean __r<br>; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="647"><td class="num" id="LN647">647</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="648"><td class="num" id="LN648">648</td><td class="line"> <span class='keyword'>if</span> (!g_variant_is_of_type (settings_value, <span class="mrange"><span class="mrange"><span class='macro'>G_VARIANT_TYPE_INT16<span class='macro_popup'>((const GVariantType *) "n")</span></span></span></span>) &amp;&amp;</td></tr>
+<tr><td class="num"></td><td class="line"><div id="EndPath" class="msg msgEvent" style="margin-left:60ex; max-width:31em">Casting a non-structure type to a structure type and accessing a field can lead to memory access errors or data corruption</div></td></tr>
+<tr class="codeline" data-linenumber="649"><td class="num" id="LN649">649</td><td class="line"> !g_variant_is_of_type (settings_value, <span class='macro'>G_VARIANT_TYPE_INT32<span class='macro_popup'>((const GVariantType *) "i")</span></span>) &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="650"><td class="num" id="LN650">650</td><td class="line"> !g_variant_is_of_type (settings_value, <span class='macro'>G_VARIANT_TYPE_INT64<span class='macro_popup'>((const GVariantType *) "x")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="651"><td class="num" id="LN651">651</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="652"><td class="num" id="LN652">652</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="653"><td class="num" id="LN653">653</td><td class="line"> g_value_set_int (&amp;value, g_settings_get_int(settings, key));</td></tr>
+<tr class="codeline" data-linenumber="654"><td class="num" id="LN654">654</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="655"><td class="num" id="LN655">655</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_VALUE_ARRAY (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[18]) GCC warning "Deprecated pre-processor symbol"<br>
+); gboolean __r; if (!__inst) __r = (0); else if (__inst-&gt;<br>g_class &amp;&amp; __inst-&gt;g_class-&gt;g_type == __t) __r =<br> (!(0)); else __r = g_type_check_instance_is_a (__inst, __t);<br> __r; })))) GCC warning "Deprecated pre-processor symbol"
+</span></span> &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="656"><td class="num" id="LN656">656</td><td class="line"> <span class='macro'>G_PARAM_SPEC_VALUE_TYPE (G_PARAM_SPEC_VALUE_ARRAY (pspec)-&gt;element_spec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((((((GParamSpecValueArray*) (void *) g_type_check_instance_cast<br> ((GTypeInstance*) ((pspec)), ((g_param_spec_types[18]) GCC warning<br> "Deprecated pre-processor symbol"
+))))) GCC warning "Deprecated pre-processor symbol"<br>
+-&gt;element_spec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;<br>value_type)</span></span> == <span class='macro'>GDK_TYPE_RGBA<span class='macro_popup'>(gdk_rgba_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="657"><td class="num" id="LN657">657</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="658"><td class="num" id="LN658">658</td><td class="line"> <span class='keyword'>char</span> **color_strings;</td></tr>
+<tr class="codeline" data-linenumber="659"><td class="num" id="LN659">659</td><td class="line"> GdkRGBA *colors;</td></tr>
+<tr class="codeline" data-linenumber="660"><td class="num" id="LN660">660</td><td class="line"> <span class='keyword'>int</span> n_colors, i;</td></tr>
+<tr class="codeline" data-linenumber="661"><td class="num" id="LN661">661</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="662"><td class="num" id="LN662">662</td><td class="line"> <span class='keyword'>if</span> (!g_variant_is_of_type (settings_value, <span class='macro'>G_VARIANT_TYPE_STRING<span class='macro_popup'>((const GVariantType *) "s")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="663"><td class="num" id="LN663">663</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="664"><td class="num" id="LN664">664</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="665"><td class="num" id="LN665">665</td><td class="line"> color_strings = g_strsplit (g_variant_get_string (settings_value, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>), <span class='string_literal'>":"</span>, -1);</td></tr>
+<tr class="codeline" data-linenumber="666"><td class="num" id="LN666">666</td><td class="line"> <span class='keyword'>if</span> (!color_strings)</td></tr>
+<tr class="codeline" data-linenumber="667"><td class="num" id="LN667">667</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="668"><td class="num" id="LN668">668</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="669"><td class="num" id="LN669">669</td><td class="line"> n_colors = g_strv_length (color_strings);</td></tr>
+<tr class="codeline" data-linenumber="670"><td class="num" id="LN670">670</td><td class="line"> colors = <span class='macro'>g_new0 (GdkRGBA, n_colors)<span class='macro_popup'>((GdkRGBA *) g_malloc0_n ((n_colors), sizeof (GdkRGBA)))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="671"><td class="num" id="LN671">671</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; n_colors; ++i)</td></tr>
+<tr class="codeline" data-linenumber="672"><td class="num" id="LN672">672</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="673"><td class="num" id="LN673">673</td><td class="line"> <span class='keyword'>if</span> (!gdk_rgba_parse (&amp;colors[i], color_strings[i]))</td></tr>
+<tr class="codeline" data-linenumber="674"><td class="num" id="LN674">674</td><td class="line"> <span class='keyword'>continue</span>; <span class='comment'>/* ignore errors */</span></td></tr>
+<tr class="codeline" data-linenumber="675"><td class="num" id="LN675">675</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="676"><td class="num" id="LN676">676</td><td class="line"> g_strfreev (color_strings);</td></tr>
+<tr class="codeline" data-linenumber="677"><td class="num" id="LN677">677</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="678"><td class="num" id="LN678">678</td><td class="line"> <span class='comment'>/* We continue even with a palette size != TERMINAL_PALETTE_SIZE,</span></td></tr>
+<tr class="codeline" data-linenumber="679"><td class="num" id="LN679">679</td><td class="line"> <span class='comment'>* so we can change the palette size in future versions without</span></td></tr>
+<tr class="codeline" data-linenumber="680"><td class="num" id="LN680">680</td><td class="line"> <span class='comment'>* causing too many issues.</span></td></tr>
+<tr class="codeline" data-linenumber="681"><td class="num" id="LN681">681</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="682"><td class="num" id="LN682">682</td><td class="line"> set_value_from_palette (&amp;value, colors, n_colors);</td></tr>
+<tr class="codeline" data-linenumber="683"><td class="num" id="LN683">683</td><td class="line"> g_free (colors);</td></tr>
+<tr class="codeline" data-linenumber="684"><td class="num" id="LN684">684</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="685"><td class="num" id="LN685">685</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="686"><td class="num" id="LN686">686</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="687"><td class="num" id="LN687">687</td><td class="line"> g_printerr (<span class='string_literal'>"Unhandled value type %s of pspec %s\n"</span>, g_type_name (<span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span>), pspec-&gt;name);</td></tr>
+<tr class="codeline" data-linenumber="688"><td class="num" id="LN688">688</td><td class="line"> <span class='keyword'>goto</span> out;</td></tr>
+<tr class="codeline" data-linenumber="689"><td class="num" id="LN689">689</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="690"><td class="num" id="LN690">690</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="691"><td class="num" id="LN691">691</td><td class="line"> <span class='keyword'>if</span> (g_param_value_validate (pspec, &amp;value))</td></tr>
+<tr class="codeline" data-linenumber="692"><td class="num" id="LN692">692</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="693"><td class="num" id="LN693">693</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_PROFILE,<span class='macro_popup'>do { if (0) g_printerr("Invalid value in GSettings for key %s was changed to comply with pspec %s\n"<br>, key, pspec-&gt;name); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="694"><td class="num" id="LN694">694</td><td class="line"> <span class='string_literal'><span class='macro'>"Invalid value in GSettings for key %s was changed to comply with pspec %s\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("Invalid value in GSettings for key %s was changed to comply with pspec %s\n"<br>, key, pspec-&gt;name); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="695"><td class="num" id="LN695">695</td><td class="line"> <span class='macro'>key, pspec-&gt;name)<span class='macro_popup'>do { if (0) g_printerr("Invalid value in GSettings for key %s was changed to comply with pspec %s\n"<br>, key, pspec-&gt;name); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="696"><td class="num" id="LN696">696</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="697"><td class="num" id="LN697">697</td><td class="line"> force_set = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="698"><td class="num" id="LN698">698</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="699"><td class="num" id="LN699">699</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="700"><td class="num" id="LN700">700</td><td class="line"> <span class='comment'>/* Only set the property if the value is different than our current value,</span></td></tr>
+<tr class="codeline" data-linenumber="701"><td class="num" id="LN701">701</td><td class="line"> <span class='comment'>* so we don't go into an infinite loop.</span></td></tr>
+<tr class="codeline" data-linenumber="702"><td class="num" id="LN702">702</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="703"><td class="num" id="LN703">703</td><td class="line"> equal = values_equal (pspec, &amp;value, g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id));</td></tr>
+<tr class="codeline" data-linenumber="704"><td class="num" id="LN704">704</td><td class="line"><span class='directive'>#ifdef MATE_ENABLE_DEBUG</span></td></tr>
+<tr class="codeline" data-linenumber="705"><td class="num" id="LN705">705</td><td class="line"> <span class='macro'>_TERMINAL_DEBUG_IF (TERMINAL_DEBUG_PROFILE)<span class='macro_popup'>if (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="706"><td class="num" id="LN706">706</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="707"><td class="num" id="LN707">707</td><td class="line"> <span class='keyword'>if</span> (!equal)</td></tr>
+<tr class="codeline" data-linenumber="708"><td class="num" id="LN708">708</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_PROFILE,<span class='macro_popup'>do { if (0) g_printerr("Setting property %s to a different value\n"<br> " now: %s\n" " new: %s\n", pspec-&gt;name, g_strdup_value_contents<br> (g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id<br>)), g_strdup_value_contents (&amp;value)); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="709"><td class="num" id="LN709">709</td><td class="line"> <span class='string_literal'><span class='macro'>"Setting property %s to a different value\n"<span class='macro_popup'>do { if (0) g_printerr("Setting property %s to a different value\n"<br> " now: %s\n" " new: %s\n", pspec-&gt;name, g_strdup_value_contents<br> (g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id<br>)), g_strdup_value_contents (&amp;value)); } while (0)</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="710"><td class="num" id="LN710">710</td><td class="line"> <span class='string_literal'><span class='macro'>" now: %s\n"<span class='macro_popup'>do { if (0) g_printerr("Setting property %s to a different value\n"<br> " now: %s\n" " new: %s\n", pspec-&gt;name, g_strdup_value_contents<br> (g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id<br>)), g_strdup_value_contents (&amp;value)); } while (0)</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="711"><td class="num" id="LN711">711</td><td class="line"> <span class='string_literal'><span class='macro'>" new: %s\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("Setting property %s to a different value\n"<br> " now: %s\n" " new: %s\n", pspec-&gt;name, g_strdup_value_contents<br> (g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id<br>)), g_strdup_value_contents (&amp;value)); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="712"><td class="num" id="LN712">712</td><td class="line"> <span class='macro'>pspec-&gt;name,<span class='macro_popup'>do { if (0) g_printerr("Setting property %s to a different value\n"<br> " now: %s\n" " new: %s\n", pspec-&gt;name, g_strdup_value_contents<br> (g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id<br>)), g_strdup_value_contents (&amp;value)); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="713"><td class="num" id="LN713">713</td><td class="line"> <span class='macro'>g_strdup_value_contents (g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id)),<span class='macro_popup'>do { if (0) g_printerr("Setting property %s to a different value\n"<br> " now: %s\n" " new: %s\n", pspec-&gt;name, g_strdup_value_contents<br> (g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id<br>)), g_strdup_value_contents (&amp;value)); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="714"><td class="num" id="LN714">714</td><td class="line"> <span class='macro'>g_strdup_value_contents (&amp;value))<span class='macro_popup'>do { if (0) g_printerr("Setting property %s to a different value\n"<br> " now: %s\n" " new: %s\n", pspec-&gt;name, g_strdup_value_contents<br> (g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id<br>)), g_strdup_value_contents (&amp;value)); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="715"><td class="num" id="LN715">715</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="716"><td class="num" id="LN716">716</td><td class="line"><span class='directive'>#endif</span></td></tr>
+<tr class="codeline" data-linenumber="717"><td class="num" id="LN717">717</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="718"><td class="num" id="LN718">718</td><td class="line"> <span class='keyword'>if</span> (!equal || force_set)</td></tr>
+<tr class="codeline" data-linenumber="719"><td class="num" id="LN719">719</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="720"><td class="num" id="LN720">720</td><td class="line"> priv-&gt;gsettings_notification_pspec = pspec;</td></tr>
+<tr class="codeline" data-linenumber="721"><td class="num" id="LN721">721</td><td class="line"> g_object_set_property (<span class='macro'>G_OBJECT (profile)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((profile)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, pspec-&gt;name, &amp;value);</td></tr>
+<tr class="codeline" data-linenumber="722"><td class="num" id="LN722">722</td><td class="line"> priv-&gt;gsettings_notification_pspec = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="723"><td class="num" id="LN723">723</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="724"><td class="num" id="LN724">724</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="725"><td class="num" id="LN725">725</td><td class="line">out:</td></tr>
+<tr class="codeline" data-linenumber="726"><td class="num" id="LN726">726</td><td class="line"> <span class='comment'>/* FIXME: if we arrive here through goto in the error cases,</span></td></tr>
+<tr class="codeline" data-linenumber="727"><td class="num" id="LN727">727</td><td class="line"> <span class='comment'>* should we maybe reset the property to its default value?</span></td></tr>
+<tr class="codeline" data-linenumber="728"><td class="num" id="LN728">728</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="729"><td class="num" id="LN729">729</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="730"><td class="num" id="LN730">730</td><td class="line"> g_value_unset (&amp;value);</td></tr>
+<tr class="codeline" data-linenumber="731"><td class="num" id="LN731">731</td><td class="line"> g_variant_unref (settings_value);</td></tr>
+<tr class="codeline" data-linenumber="732"><td class="num" id="LN732">732</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="733"><td class="num" id="LN733">733</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="734"><td class="num" id="LN734">734</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="735"><td class="num" id="LN735">735</td><td class="line">terminal_profile_gsettings_changeset_add (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="736"><td class="num" id="LN736">736</td><td class="line"> GSettings *changeset,</td></tr>
+<tr class="codeline" data-linenumber="737"><td class="num" id="LN737">737</td><td class="line"> GParamSpec *pspec)</td></tr>
+<tr class="codeline" data-linenumber="738"><td class="num" id="LN738">738</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="739"><td class="num" id="LN739">739</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="740"><td class="num" id="LN740">740</td><td class="line"> <span class='keyword'>char</span> *key;</td></tr>
+<tr class="codeline" data-linenumber="741"><td class="num" id="LN741">741</td><td class="line"> <span class='keyword'>const</span> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="742"><td class="num" id="LN742">742</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="743"><td class="num" id="LN743">743</td><td class="line"> <span class='comment'>/* FIXME: do this? */</span></td></tr>
+<tr class="codeline" data-linenumber="744"><td class="num" id="LN744">744</td><td class="line"><span class='directive'>#if 0</span></td></tr>
+<tr class="codeline" data-linenumber="745"><td class="num" id="LN745">745</td><td class="line"> <span class='keyword'>if</span> (priv-&gt;locked[pspec-&gt;param_id])</td></tr>
+<tr class="codeline" data-linenumber="746"><td class="num" id="LN746">746</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="747"><td class="num" id="LN747">747</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="748"><td class="num" id="LN748">748</td><td class="line"> <span class='keyword'>if</span> (!g_settings_is_writable (priv-&gt;settings, gsettings_key, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="749"><td class="num" id="LN749">749</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="750"><td class="num" id="LN750">750</td><td class="line"><span class='directive'>#endif</span></td></tr>
+<tr class="codeline" data-linenumber="751"><td class="num" id="LN751">751</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="752"><td class="num" id="LN752">752</td><td class="line"> key = g_param_spec_get_qdata (pspec, gsettings_key_quark);</td></tr>
+<tr class="codeline" data-linenumber="753"><td class="num" id="LN753">753</td><td class="line"> <span class='keyword'>if</span> (!key)</td></tr>
+<tr class="codeline" data-linenumber="754"><td class="num" id="LN754">754</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="755"><td class="num" id="LN755">755</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="756"><td class="num" id="LN756">756</td><td class="line"> value = g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id);</td></tr>
+<tr class="codeline" data-linenumber="757"><td class="num" id="LN757">757</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="758"><td class="num" id="LN758">758</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_PROFILE,<span class='macro_popup'>do { if (0) g_printerr("Adding pspec %s with value %s to the GSettings changeset\n"<br>, pspec-&gt;name, g_strdup_value_contents (value)); } while (<br>0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="759"><td class="num" id="LN759">759</td><td class="line"> <span class='string_literal'><span class='macro'>"Adding pspec %s with value %s to the GSettings changeset\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("Adding pspec %s with value %s to the GSettings changeset\n"<br>, pspec-&gt;name, g_strdup_value_contents (value)); } while (<br>0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="760"><td class="num" id="LN760">760</td><td class="line"> <span class='macro'>pspec-&gt;name, g_strdup_value_contents (value))<span class='macro_popup'>do { if (0) g_printerr("Adding pspec %s with value %s to the GSettings changeset\n"<br>, pspec-&gt;name, g_strdup_value_contents (value)); } while (<br>0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="761"><td class="num" id="LN761">761</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="762"><td class="num" id="LN762">762</td><td class="line"> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_BOOLEAN (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[2])); gboolean __r<br>; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="763"><td class="num" id="LN763">763</td><td class="line"> g_settings_set_boolean (changeset, key, g_value_get_boolean (value));</td></tr>
+<tr class="codeline" data-linenumber="764"><td class="num" id="LN764">764</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_STRING (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[14])); gboolean __r<br>; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="765"><td class="num" id="LN765">765</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="766"><td class="num" id="LN766">766</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *str;</td></tr>
+<tr class="codeline" data-linenumber="767"><td class="num" id="LN767">767</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="768"><td class="num" id="LN768">768</td><td class="line"> str = g_value_get_string (value);</td></tr>
+<tr class="codeline" data-linenumber="769"><td class="num" id="LN769">769</td><td class="line"> g_settings_set_string (changeset, key, str ? str : <span class='string_literal'>""</span>);</td></tr>
+<tr class="codeline" data-linenumber="770"><td class="num" id="LN770">770</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="771"><td class="num" id="LN771">771</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_ENUM (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[10])); gboolean __r<br>; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="772"><td class="num" id="LN772">772</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="773"><td class="num" id="LN773">773</td><td class="line"> <span class='keyword'>const</span> GEnumValue *eval;</td></tr>
+<tr class="codeline" data-linenumber="774"><td class="num" id="LN774">774</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="775"><td class="num" id="LN775">775</td><td class="line"> eval = g_enum_get_value (<span class='macro'>G_PARAM_SPEC_ENUM (pspec)<span class='macro_popup'>((((GParamSpecEnum*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), ((g_param_spec_types[10]))))))</span></span>-&gt;enum_class, g_value_get_enum (value));</td></tr>
+<tr class="codeline" data-linenumber="776"><td class="num" id="LN776">776</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="777"><td class="num" id="LN777">777</td><td class="line"> g_settings_set_enum (changeset, key, eval-&gt;value);</td></tr>
+<tr class="codeline" data-linenumber="778"><td class="num" id="LN778">778</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="779"><td class="num" id="LN779">779</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span> == <span class='macro'>GDK_TYPE_RGBA<span class='macro_popup'>(gdk_rgba_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="780"><td class="num" id="LN780">780</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="781"><td class="num" id="LN781">781</td><td class="line"> GdkRGBA *color;</td></tr>
+<tr class="codeline" data-linenumber="782"><td class="num" id="LN782">782</td><td class="line"> <span class='keyword'>char</span> str[16];</td></tr>
+<tr class="codeline" data-linenumber="783"><td class="num" id="LN783">783</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="784"><td class="num" id="LN784">784</td><td class="line"> color = g_value_get_boxed (value);</td></tr>
+<tr class="codeline" data-linenumber="785"><td class="num" id="LN785">785</td><td class="line"> <span class='keyword'>if</span> (!color)</td></tr>
+<tr class="codeline" data-linenumber="786"><td class="num" id="LN786">786</td><td class="line"> <span class='keyword'>goto</span> cleanup;</td></tr>
+<tr class="codeline" data-linenumber="787"><td class="num" id="LN787">787</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="788"><td class="num" id="LN788">788</td><td class="line"> g_snprintf (str, <span class='keyword'>sizeof</span> (str),</td></tr>
+<tr class="codeline" data-linenumber="789"><td class="num" id="LN789">789</td><td class="line"> <span class='string_literal'>"#%04X%04X%04X"</span>,</td></tr>
+<tr class="codeline" data-linenumber="790"><td class="num" id="LN790">790</td><td class="line"> (guint) (color-&gt;red * 65535),</td></tr>
+<tr class="codeline" data-linenumber="791"><td class="num" id="LN791">791</td><td class="line"> (guint) (color-&gt;green * 65535),</td></tr>
+<tr class="codeline" data-linenumber="792"><td class="num" id="LN792">792</td><td class="line"> (guint) (color-&gt;blue * 65535));</td></tr>
+<tr class="codeline" data-linenumber="793"><td class="num" id="LN793">793</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="794"><td class="num" id="LN794">794</td><td class="line"> g_settings_set_string (changeset, key, str);</td></tr>
+<tr class="codeline" data-linenumber="795"><td class="num" id="LN795">795</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="796"><td class="num" id="LN796">796</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span> == <span class='macro'>PANGO_TYPE_FONT_DESCRIPTION<span class='macro_popup'>(pango_font_description_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="797"><td class="num" id="LN797">797</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="798"><td class="num" id="LN798">798</td><td class="line"> PangoFontDescription *font_desc;</td></tr>
+<tr class="codeline" data-linenumber="799"><td class="num" id="LN799">799</td><td class="line"> <span class='keyword'>char</span> *font;</td></tr>
+<tr class="codeline" data-linenumber="800"><td class="num" id="LN800">800</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="801"><td class="num" id="LN801">801</td><td class="line"> font_desc = g_value_get_boxed (value);</td></tr>
+<tr class="codeline" data-linenumber="802"><td class="num" id="LN802">802</td><td class="line"> <span class='keyword'>if</span> (!font_desc)</td></tr>
+<tr class="codeline" data-linenumber="803"><td class="num" id="LN803">803</td><td class="line"> <span class='keyword'>goto</span> cleanup;</td></tr>
+<tr class="codeline" data-linenumber="804"><td class="num" id="LN804">804</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="805"><td class="num" id="LN805">805</td><td class="line"> font = pango_font_description_to_string (font_desc);</td></tr>
+<tr class="codeline" data-linenumber="806"><td class="num" id="LN806">806</td><td class="line"> g_settings_set_string (changeset, key, font);</td></tr>
+<tr class="codeline" data-linenumber="807"><td class="num" id="LN807">807</td><td class="line"> g_free (font);</td></tr>
+<tr class="codeline" data-linenumber="808"><td class="num" id="LN808">808</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="809"><td class="num" id="LN809">809</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_DOUBLE (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[13])); gboolean __r<br>; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="810"><td class="num" id="LN810">810</td><td class="line"> g_settings_set_double (changeset, key, g_value_get_double (value));</td></tr>
+<tr class="codeline" data-linenumber="811"><td class="num" id="LN811">811</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_INT (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[3])); gboolean __r<br>; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="812"><td class="num" id="LN812">812</td><td class="line"> g_settings_set_int (changeset, key, g_value_get_int (value));</td></tr>
+<tr class="codeline" data-linenumber="813"><td class="num" id="LN813">813</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (<span class='macro'>G_IS_PARAM_SPEC_VALUE_ARRAY (pspec)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(pspec)); GType __t = ((g_param_spec_types[18]) GCC warning "Deprecated pre-processor symbol"<br>
+); gboolean __r; if (!__inst) __r = (0); else if (__inst-&gt;<br>g_class &amp;&amp; __inst-&gt;g_class-&gt;g_type == __t) __r =<br> (!(0)); else __r = g_type_check_instance_is_a (__inst, __t);<br> __r; })))) GCC warning "Deprecated pre-processor symbol"
+</span></span> &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="814"><td class="num" id="LN814">814</td><td class="line"> <span class='macro'>G_PARAM_SPEC_VALUE_TYPE (G_PARAM_SPEC_VALUE_ARRAY (pspec)-&gt;element_spec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((((((GParamSpecValueArray*) (void *) g_type_check_instance_cast<br> ((GTypeInstance*) ((pspec)), ((g_param_spec_types[18]) GCC warning<br> "Deprecated pre-processor symbol"
+))))) GCC warning "Deprecated pre-processor symbol"<br>
+-&gt;element_spec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;<br>value_type)</span></span> == <span class='macro'>GDK_TYPE_RGBA<span class='macro_popup'>(gdk_rgba_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="815"><td class="num" id="LN815">815</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="816"><td class="num" id="LN816">816</td><td class="line"> GValueArray *array;</td></tr>
+<tr class="codeline" data-linenumber="817"><td class="num" id="LN817">817</td><td class="line"> GString *string;</td></tr>
+<tr class="codeline" data-linenumber="818"><td class="num" id="LN818">818</td><td class="line"> guint n_colors, i;</td></tr>
+<tr class="codeline" data-linenumber="819"><td class="num" id="LN819">819</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="820"><td class="num" id="LN820">820</td><td class="line"> <span class='comment'>/* We need to do this ourselves, because the gtk_color_selection_palette_to_string</span></td></tr>
+<tr class="codeline" data-linenumber="821"><td class="num" id="LN821">821</td><td class="line"> <span class='comment'>* does not carry all the bytes, and xterm's palette is messed up...</span></td></tr>
+<tr class="codeline" data-linenumber="822"><td class="num" id="LN822">822</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="823"><td class="num" id="LN823">823</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="824"><td class="num" id="LN824">824</td><td class="line"> array = g_value_get_boxed (value);</td></tr>
+<tr class="codeline" data-linenumber="825"><td class="num" id="LN825">825</td><td class="line"> <span class='keyword'>if</span> (!array)</td></tr>
+<tr class="codeline" data-linenumber="826"><td class="num" id="LN826">826</td><td class="line"> <span class='keyword'>goto</span> cleanup;</td></tr>
+<tr class="codeline" data-linenumber="827"><td class="num" id="LN827">827</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="828"><td class="num" id="LN828">828</td><td class="line"> n_colors = array-&gt;n_values;</td></tr>
+<tr class="codeline" data-linenumber="829"><td class="num" id="LN829">829</td><td class="line"> string = g_string_sized_new (n_colors * (1 <span class='comment'>/* # */</span> + 3 * 4) + n_colors <span class='comment'>/* : separators and terminating \0 */</span>);</td></tr>
+<tr class="codeline" data-linenumber="830"><td class="num" id="LN830">830</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; n_colors; ++i)</td></tr>
+<tr class="codeline" data-linenumber="831"><td class="num" id="LN831">831</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="832"><td class="num" id="LN832">832</td><td class="line"> GdkRGBA *color;</td></tr>
+<tr class="codeline" data-linenumber="833"><td class="num" id="LN833">833</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="834"><td class="num" id="LN834">834</td><td class="line"> <span class='keyword'>if</span> (i &gt; 0)</td></tr>
+<tr class="codeline" data-linenumber="835"><td class="num" id="LN835">835</td><td class="line"> <span class='macro'>g_string_append_c (string, ':')<span class='macro_popup'>g_string_append_c_inline (string, ':')</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="836"><td class="num" id="LN836">836</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="837"><td class="num" id="LN837">837</td><td class="line"> color = g_value_get_boxed (g_value_array_get_nth (array, i));</td></tr>
+<tr class="codeline" data-linenumber="838"><td class="num" id="LN838">838</td><td class="line"> <span class='keyword'>if</span> (!color)</td></tr>
+<tr class="codeline" data-linenumber="839"><td class="num" id="LN839">839</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="840"><td class="num" id="LN840">840</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="841"><td class="num" id="LN841">841</td><td class="line"> g_string_append_printf (string,</td></tr>
+<tr class="codeline" data-linenumber="842"><td class="num" id="LN842">842</td><td class="line"> <span class='string_literal'>"#%04X%04X%04X"</span>,</td></tr>
+<tr class="codeline" data-linenumber="843"><td class="num" id="LN843">843</td><td class="line"> (guint) (color-&gt;red * 65535),</td></tr>
+<tr class="codeline" data-linenumber="844"><td class="num" id="LN844">844</td><td class="line"> (guint) (color-&gt;green * 65535),</td></tr>
+<tr class="codeline" data-linenumber="845"><td class="num" id="LN845">845</td><td class="line"> (guint) (color-&gt;blue * 65535));</td></tr>
+<tr class="codeline" data-linenumber="846"><td class="num" id="LN846">846</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="847"><td class="num" id="LN847">847</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="848"><td class="num" id="LN848">848</td><td class="line"> g_settings_set_string (changeset, key, string-&gt;str);</td></tr>
+<tr class="codeline" data-linenumber="849"><td class="num" id="LN849">849</td><td class="line"> <span class='macro'>g_string_free (string, TRUE)<span class='macro_popup'>(__builtin_constant_p ((!(0))) ? (((!(0))) ? (g_string_free) (<br>(string), ((!(0)))) : g_string_free_and_steal (string)) : (g_string_free<br>) ((string), ((!(0)))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="850"><td class="num" id="LN850">850</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="851"><td class="num" id="LN851">851</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="852"><td class="num" id="LN852">852</td><td class="line"> g_printerr (<span class='string_literal'>"Unhandled value type %s of pspec %s\n"</span>, g_type_name (<span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span>), pspec-&gt;name);</td></tr>
+<tr class="codeline" data-linenumber="853"><td class="num" id="LN853">853</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="854"><td class="num" id="LN854">854</td><td class="line">cleanup:</td></tr>
+<tr class="codeline" data-linenumber="855"><td class="num" id="LN855">855</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="856"><td class="num" id="LN856">856</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="857"><td class="num" id="LN857">857</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="858"><td class="num" id="LN858">858</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="859"><td class="num" id="LN859">859</td><td class="line">terminal_profile_save (TerminalProfile *profile)</td></tr>
+<tr class="codeline" data-linenumber="860"><td class="num" id="LN860">860</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="861"><td class="num" id="LN861">861</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="862"><td class="num" id="LN862">862</td><td class="line"> GSettings *changeset;</td></tr>
+<tr class="codeline" data-linenumber="863"><td class="num" id="LN863">863</td><td class="line"> GSList *l;</td></tr>
+<tr class="codeline" data-linenumber="864"><td class="num" id="LN864">864</td><td class="line"> gchar *concat;</td></tr>
+<tr class="codeline" data-linenumber="865"><td class="num" id="LN865">865</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="866"><td class="num" id="LN866">866</td><td class="line"> priv-&gt;save_idle_id = 0;</td></tr>
+<tr class="codeline" data-linenumber="867"><td class="num" id="LN867">867</td><td class="line"> concat = g_strconcat (<span class='macro'>CONF_PROFILE_PREFIX<span class='macro_popup'>"/org/mate/terminal/profiles/"</span></span>, priv-&gt;profile_dir,<span class='string_literal'>"/"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="868"><td class="num" id="LN868">868</td><td class="line"> changeset = g_settings_new_with_path (<span class='macro'>CONF_PROFILE_SCHEMA<span class='macro_popup'>"org.mate.terminal" ".profile"</span></span>, concat);</td></tr>
+<tr class="codeline" data-linenumber="869"><td class="num" id="LN869">869</td><td class="line"> g_free (concat);</td></tr>
+<tr class="codeline" data-linenumber="870"><td class="num" id="LN870">870</td><td class="line"> g_settings_delay (changeset);</td></tr>
+<tr class="codeline" data-linenumber="871"><td class="num" id="LN871">871</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="872"><td class="num" id="LN872">872</td><td class="line"> <span class='keyword'>for</span> (l = priv-&gt;dirty_pspecs; l != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; l = l-&gt;next)</td></tr>
+<tr class="codeline" data-linenumber="873"><td class="num" id="LN873">873</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="874"><td class="num" id="LN874">874</td><td class="line"> GParamSpec *pspec = (GParamSpec *) l-&gt;data;</td></tr>
+<tr class="codeline" data-linenumber="875"><td class="num" id="LN875">875</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="876"><td class="num" id="LN876">876</td><td class="line"> <span class='keyword'>if</span> (pspec-&gt;owner_type != <span class='macro'>TERMINAL_TYPE_PROFILE<span class='macro_popup'>(terminal_profile_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="877"><td class="num" id="LN877">877</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="878"><td class="num" id="LN878">878</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="879"><td class="num" id="LN879">879</td><td class="line"> <span class='keyword'>if</span> ((pspec-&gt;flags &amp; G_PARAM_WRITABLE) == 0)</td></tr>
+<tr class="codeline" data-linenumber="880"><td class="num" id="LN880">880</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="881"><td class="num" id="LN881">881</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="882"><td class="num" id="LN882">882</td><td class="line"> terminal_profile_gsettings_changeset_add (profile, changeset, pspec);</td></tr>
+<tr class="codeline" data-linenumber="883"><td class="num" id="LN883">883</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="884"><td class="num" id="LN884">884</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="885"><td class="num" id="LN885">885</td><td class="line"> g_slist_free (priv-&gt;dirty_pspecs);</td></tr>
+<tr class="codeline" data-linenumber="886"><td class="num" id="LN886">886</td><td class="line"> priv-&gt;dirty_pspecs = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="887"><td class="num" id="LN887">887</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="888"><td class="num" id="LN888">888</td><td class="line"> g_settings_apply (changeset);</td></tr>
+<tr class="codeline" data-linenumber="889"><td class="num" id="LN889">889</td><td class="line"> g_object_unref (changeset);</td></tr>
+<tr class="codeline" data-linenumber="890"><td class="num" id="LN890">890</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="891"><td class="num" id="LN891">891</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="892"><td class="num" id="LN892">892</td><td class="line"><span class='keyword'>static</span> gboolean</td></tr>
+<tr class="codeline" data-linenumber="893"><td class="num" id="LN893">893</td><td class="line">terminal_profile_save_idle_cb (TerminalProfile *profile)</td></tr>
+<tr class="codeline" data-linenumber="894"><td class="num" id="LN894">894</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="895"><td class="num" id="LN895">895</td><td class="line"> terminal_profile_save (profile);</td></tr>
+<tr class="codeline" data-linenumber="896"><td class="num" id="LN896">896</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="897"><td class="num" id="LN897">897</td><td class="line"> <span class='comment'>/* don't run again */</span></td></tr>
+<tr class="codeline" data-linenumber="898"><td class="num" id="LN898">898</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="899"><td class="num" id="LN899">899</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="900"><td class="num" id="LN900">900</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="901"><td class="num" id="LN901">901</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="902"><td class="num" id="LN902">902</td><td class="line">terminal_profile_schedule_save (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="903"><td class="num" id="LN903">903</td><td class="line"> GParamSpec *pspec)</td></tr>
+<tr class="codeline" data-linenumber="904"><td class="num" id="LN904">904</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="905"><td class="num" id="LN905">905</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="906"><td class="num" id="LN906">906</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="907"><td class="num" id="LN907">907</td><td class="line"> <span class='macro'>g_assert (pspec != NULL)<span class='macro_popup'>do { if (pspec != ((void*)0)) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-profile.c", 907, ((const char*) (__func__<br>)), "pspec != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="908"><td class="num" id="LN908">908</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="909"><td class="num" id="LN909">909</td><td class="line"> <span class='keyword'>if</span> (!g_slist_find (priv-&gt;dirty_pspecs, pspec))</td></tr>
+<tr class="codeline" data-linenumber="910"><td class="num" id="LN910">910</td><td class="line"> priv-&gt;dirty_pspecs = g_slist_prepend (priv-&gt;dirty_pspecs, pspec);</td></tr>
+<tr class="codeline" data-linenumber="911"><td class="num" id="LN911">911</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="912"><td class="num" id="LN912">912</td><td class="line"> <span class='keyword'>if</span> (priv-&gt;save_idle_id != 0)</td></tr>
+<tr class="codeline" data-linenumber="913"><td class="num" id="LN913">913</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="914"><td class="num" id="LN914">914</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="915"><td class="num" id="LN915">915</td><td class="line"> priv-&gt;save_idle_id = g_idle_add ((GSourceFunc) terminal_profile_save_idle_cb, profile);</td></tr>
+<tr class="codeline" data-linenumber="916"><td class="num" id="LN916">916</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="917"><td class="num" id="LN917">917</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="918"><td class="num" id="LN918">918</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="919"><td class="num" id="LN919">919</td><td class="line">terminal_profile_init (TerminalProfile *profile)</td></tr>
+<tr class="codeline" data-linenumber="920"><td class="num" id="LN920">920</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="921"><td class="num" id="LN921">921</td><td class="line"> TerminalProfilePrivate *priv;</td></tr>
+<tr class="codeline" data-linenumber="922"><td class="num" id="LN922">922</td><td class="line"> GObjectClass *object_class;</td></tr>
+<tr class="codeline" data-linenumber="923"><td class="num" id="LN923">923</td><td class="line"> GParamSpec **pspecs;</td></tr>
+<tr class="codeline" data-linenumber="924"><td class="num" id="LN924">924</td><td class="line"> guint n_pspecs, i;</td></tr>
+<tr class="codeline" data-linenumber="925"><td class="num" id="LN925">925</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="926"><td class="num" id="LN926">926</td><td class="line"> priv = profile-&gt;priv = terminal_profile_get_instance_private (profile);</td></tr>
+<tr class="codeline" data-linenumber="927"><td class="num" id="LN927">927</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="928"><td class="num" id="LN928">928</td><td class="line"> priv-&gt;gsettings_notification_pspec = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="929"><td class="num" id="LN929">929</td><td class="line"> priv-&gt;locked = <span class='macro'>g_new0 (gboolean, LAST_PROP)<span class='macro_popup'>((gboolean *) g_malloc0_n ((LAST_PROP), sizeof (gboolean)))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="930"><td class="num" id="LN930">930</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="931"><td class="num" id="LN931">931</td><td class="line"> priv-&gt;properties = g_value_array_new (LAST_PROP);</td></tr>
+<tr class="codeline" data-linenumber="932"><td class="num" id="LN932">932</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; LAST_PROP; ++i)</td></tr>
+<tr class="codeline" data-linenumber="933"><td class="num" id="LN933">933</td><td class="line"> g_value_array_append (priv-&gt;properties, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="934"><td class="num" id="LN934">934</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="935"><td class="num" id="LN935">935</td><td class="line"> pspecs = g_object_class_list_properties (<span class='macro'>G_OBJECT_CLASS (TERMINAL_PROFILE_GET_CLASS (profile))<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((((((TerminalProfileClass*) (((GTypeInstance*) ((profile)<br>))-&gt;g_class)))))), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, &amp;n_pspecs);</td></tr>
+<tr class="codeline" data-linenumber="936"><td class="num" id="LN936">936</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; n_pspecs; ++i)</td></tr>
+<tr class="codeline" data-linenumber="937"><td class="num" id="LN937">937</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="938"><td class="num" id="LN938">938</td><td class="line"> GParamSpec *pspec = pspecs[i];</td></tr>
+<tr class="codeline" data-linenumber="939"><td class="num" id="LN939">939</td><td class="line"> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="940"><td class="num" id="LN940">940</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="941"><td class="num" id="LN941">941</td><td class="line"> <span class='keyword'>if</span> (pspec-&gt;owner_type != <span class='macro'>TERMINAL_TYPE_PROFILE<span class='macro_popup'>(terminal_profile_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="942"><td class="num" id="LN942">942</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="943"><td class="num" id="LN943">943</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="944"><td class="num" id="LN944">944</td><td class="line"> <span class='macro'>g_assert (pspec-&gt;param_id &lt; LAST_PROP)<span class='macro_popup'>do { if (pspec-&gt;param_id &lt; LAST_PROP) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-profile.c", 944, ((const char*) (__func__<br>)), "pspec-&gt;param_id &lt; LAST_PROP"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="945"><td class="num" id="LN945">945</td><td class="line"> value = g_value_array_get_nth (priv-&gt;properties, pspec-&gt;param_id);</td></tr>
+<tr class="codeline" data-linenumber="946"><td class="num" id="LN946">946</td><td class="line"> g_value_init (value, pspec-&gt;value_type);</td></tr>
+<tr class="codeline" data-linenumber="947"><td class="num" id="LN947">947</td><td class="line"> g_param_value_set_default (pspec, value);</td></tr>
+<tr class="codeline" data-linenumber="948"><td class="num" id="LN948">948</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="949"><td class="num" id="LN949">949</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="950"><td class="num" id="LN950">950</td><td class="line"> g_free (pspecs);</td></tr>
+<tr class="codeline" data-linenumber="951"><td class="num" id="LN951">951</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="952"><td class="num" id="LN952">952</td><td class="line"> <span class='comment'>/* A few properties don't have defaults via the param spec; set them explicitly */</span></td></tr>
+<tr class="codeline" data-linenumber="953"><td class="num" id="LN953">953</td><td class="line"> object_class = <span class='macro'>G_OBJECT_CLASS (TERMINAL_PROFILE_GET_CLASS (profile))<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((((((TerminalProfileClass*) (((GTypeInstance*) ((profile)<br>))-&gt;g_class)))))), (((GType) ((20) &lt;&lt; (2))))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="954"><td class="num" id="LN954">954</td><td class="line"> terminal_profile_reset_property_internal (profile, g_object_class_find_property (object_class, <span class='macro'>TERMINAL_PROFILE_FOREGROUND_COLOR<span class='macro_popup'>"foreground-color"</span></span>), <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="955"><td class="num" id="LN955">955</td><td class="line"> terminal_profile_reset_property_internal (profile, g_object_class_find_property (object_class, <span class='macro'>TERMINAL_PROFILE_BOLD_COLOR<span class='macro_popup'>"bold-color"</span></span>), <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="956"><td class="num" id="LN956">956</td><td class="line"> terminal_profile_reset_property_internal (profile, g_object_class_find_property (object_class, <span class='macro'>TERMINAL_PROFILE_BACKGROUND_COLOR<span class='macro_popup'>"background-color"</span></span>), <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="957"><td class="num" id="LN957">957</td><td class="line"> terminal_profile_reset_property_internal (profile, g_object_class_find_property (object_class, <span class='macro'>TERMINAL_PROFILE_FONT<span class='macro_popup'>"font"</span></span>), <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="958"><td class="num" id="LN958">958</td><td class="line"> terminal_profile_reset_property_internal (profile, g_object_class_find_property (object_class, <span class='macro'>TERMINAL_PROFILE_PALETTE<span class='macro_popup'>"palette"</span></span>), <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="959"><td class="num" id="LN959">959</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="960"><td class="num" id="LN960">960</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="961"><td class="num" id="LN961">961</td><td class="line"><span class='keyword'>static</span> GObject *</td></tr>
+<tr class="codeline" data-linenumber="962"><td class="num" id="LN962">962</td><td class="line">terminal_profile_constructor (GType type,</td></tr>
+<tr class="codeline" data-linenumber="963"><td class="num" id="LN963">963</td><td class="line"> guint n_construct_properties,</td></tr>
+<tr class="codeline" data-linenumber="964"><td class="num" id="LN964">964</td><td class="line"> GObjectConstructParam *construct_params)</td></tr>
+<tr class="codeline" data-linenumber="965"><td class="num" id="LN965">965</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="966"><td class="num" id="LN966">966</td><td class="line"> GObject *object;</td></tr>
+<tr class="codeline" data-linenumber="967"><td class="num" id="LN967">967</td><td class="line"> TerminalProfile *profile;</td></tr>
+<tr class="codeline" data-linenumber="968"><td class="num" id="LN968">968</td><td class="line"> TerminalProfilePrivate *priv;</td></tr>
+<tr class="codeline" data-linenumber="969"><td class="num" id="LN969">969</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *name;</td></tr>
+<tr class="codeline" data-linenumber="970"><td class="num" id="LN970">970</td><td class="line"> GParamSpec **pspecs;</td></tr>
+<tr class="codeline" data-linenumber="971"><td class="num" id="LN971">971</td><td class="line"> guint n_pspecs, i;</td></tr>
+<tr class="codeline" data-linenumber="972"><td class="num" id="LN972">972</td><td class="line"> gchar *concat;</td></tr>
+<tr class="codeline" data-linenumber="973"><td class="num" id="LN973">973</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="974"><td class="num" id="LN974">974</td><td class="line"> object = <span class='macro'>G_OBJECT_CLASS (terminal_profile_parent_class)<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((terminal_profile_parent_class)), (((GType) ((20) &lt;&lt;<br> (2))))))))</span></span>-&gt;constructor</td></tr>
+<tr class="codeline" data-linenumber="975"><td class="num" id="LN975">975</td><td class="line"> (type, n_construct_properties, construct_params);</td></tr>
+<tr class="codeline" data-linenumber="976"><td class="num" id="LN976">976</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="977"><td class="num" id="LN977">977</td><td class="line"> profile = <span class='macro'>TERMINAL_PROFILE (object)<span class='macro_popup'>((((TerminalProfile*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((object)), ((terminal_profile_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="978"><td class="num" id="LN978">978</td><td class="line"> priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="979"><td class="num" id="LN979">979</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="980"><td class="num" id="LN980">980</td><td class="line"> name = g_value_get_string (g_value_array_get_nth (priv-&gt;properties, PROP_NAME));</td></tr>
+<tr class="codeline" data-linenumber="981"><td class="num" id="LN981">981</td><td class="line"> <span class='macro'>g_assert (name != NULL)<span class='macro_popup'>do { if (name != ((void*)0)) ; else g_assertion_message_expr (<br>((gchar*) 0), "terminal-profile.c", 981, ((const char*) (__func__<br>)), "name != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="982"><td class="num" id="LN982">982</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="983"><td class="num" id="LN983">983</td><td class="line"> concat = g_strconcat (<span class='macro'>CONF_PROFILE_PREFIX<span class='macro_popup'>"/org/mate/terminal/profiles/"</span></span>, name, <span class='string_literal'>"/"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="984"><td class="num" id="LN984">984</td><td class="line"> priv-&gt;settings = g_settings_new_with_path (<span class='macro'>CONF_PROFILE_SCHEMA<span class='macro_popup'>"org.mate.terminal" ".profile"</span></span>, concat);</td></tr>
+<tr class="codeline" data-linenumber="985"><td class="num" id="LN985">985</td><td class="line"> <span class='macro'>g_assert (priv-&gt;settings != NULL)<span class='macro_popup'>do { if (priv-&gt;settings != ((void*)0)) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-profile.c", 985, ((const char*) (__func__<br>)), "priv-&gt;settings != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="986"><td class="num" id="LN986">986</td><td class="line"> g_free (concat);</td></tr>
+<tr class="codeline" data-linenumber="987"><td class="num" id="LN987">987</td><td class="line"> concat = g_strconcat(<span class='string_literal'>"changed::"</span>, priv-&gt;profile_dir, <span class='string_literal'>"/"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="988"><td class="num" id="LN988">988</td><td class="line"> <span class='macro'>g_signal_connect (priv-&gt;settings,<span class='macro_popup'>g_signal_connect_data ((priv-&gt;settings), (concat), (((GCallback<br>) (terminal_profile_gsettings_notify_cb))), (profile), ((void<br>*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="989"><td class="num" id="LN989">989</td><td class="line"> <span class='macro'>concat,<span class='macro_popup'>g_signal_connect_data ((priv-&gt;settings), (concat), (((GCallback<br>) (terminal_profile_gsettings_notify_cb))), (profile), ((void<br>*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="990"><td class="num" id="LN990">990</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_profile_gsettings_notify_cb),<span class='macro_popup'>g_signal_connect_data ((priv-&gt;settings), (concat), (((GCallback<br>) (terminal_profile_gsettings_notify_cb))), (profile), ((void<br>*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="991"><td class="num" id="LN991">991</td><td class="line"> <span class='macro'>profile)<span class='macro_popup'>g_signal_connect_data ((priv-&gt;settings), (concat), (((GCallback<br>) (terminal_profile_gsettings_notify_cb))), (profile), ((void<br>*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="992"><td class="num" id="LN992">992</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="993"><td class="num" id="LN993">993</td><td class="line"> g_free (concat);</td></tr>
+<tr class="codeline" data-linenumber="994"><td class="num" id="LN994">994</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="995"><td class="num" id="LN995">995</td><td class="line"> <span class='comment'>/* Now load those properties from GSettings that were not set as construction params */</span></td></tr>
+<tr class="codeline" data-linenumber="996"><td class="num" id="LN996">996</td><td class="line"> pspecs = g_object_class_list_properties (<span class='macro'>G_OBJECT_CLASS (TERMINAL_PROFILE_GET_CLASS (profile))<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((((((TerminalProfileClass*) (((GTypeInstance*) ((profile)<br>))-&gt;g_class)))))), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, &amp;n_pspecs);</td></tr>
+<tr class="codeline" data-linenumber="997"><td class="num" id="LN997">997</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; n_pspecs; ++i)</td></tr>
+<tr class="codeline" data-linenumber="998"><td class="num" id="LN998">998</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="999"><td class="num" id="LN999">999</td><td class="line"> GParamSpec *pspec = pspecs[i];</td></tr>
+<tr class="codeline" data-linenumber="1000"><td class="num" id="LN1000">1000</td><td class="line"> guint j;</td></tr>
+<tr class="codeline" data-linenumber="1001"><td class="num" id="LN1001">1001</td><td class="line"> gboolean is_construct = <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1002"><td class="num" id="LN1002">1002</td><td class="line"> <span class='keyword'>char</span> *key;</td></tr>
+<tr class="codeline" data-linenumber="1003"><td class="num" id="LN1003">1003</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1004"><td class="num" id="LN1004">1004</td><td class="line"> <span class='keyword'>if</span> (pspec-&gt;owner_type != <span class='macro'>TERMINAL_TYPE_PROFILE<span class='macro_popup'>(terminal_profile_get_type ())</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1005"><td class="num" id="LN1005">1005</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="1006"><td class="num" id="LN1006">1006</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1007"><td class="num" id="LN1007">1007</td><td class="line"> <span class='keyword'>if</span> ((pspec-&gt;flags &amp; G_PARAM_WRITABLE) == 0 ||</td></tr>
+<tr class="codeline" data-linenumber="1008"><td class="num" id="LN1008">1008</td><td class="line"> (pspec-&gt;flags &amp; G_PARAM_CONSTRUCT_ONLY) != 0)</td></tr>
+<tr class="codeline" data-linenumber="1009"><td class="num" id="LN1009">1009</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="1010"><td class="num" id="LN1010">1010</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1011"><td class="num" id="LN1011">1011</td><td class="line"> <span class='keyword'>for</span> (j = 0; j &lt; n_construct_properties; ++j)</td></tr>
+<tr class="codeline" data-linenumber="1012"><td class="num" id="LN1012">1012</td><td class="line"> <span class='keyword'>if</span> (pspec == construct_params[j].pspec)</td></tr>
+<tr class="codeline" data-linenumber="1013"><td class="num" id="LN1013">1013</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1014"><td class="num" id="LN1014">1014</td><td class="line"> is_construct = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1015"><td class="num" id="LN1015">1015</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1016"><td class="num" id="LN1016">1016</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1017"><td class="num" id="LN1017">1017</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1018"><td class="num" id="LN1018">1018</td><td class="line"> <span class='keyword'>if</span> (is_construct)</td></tr>
+<tr class="codeline" data-linenumber="1019"><td class="num" id="LN1019">1019</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="1020"><td class="num" id="LN1020">1020</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1021"><td class="num" id="LN1021">1021</td><td class="line"> key = g_param_spec_get_qdata (pspec, gsettings_key_quark);</td></tr>
+<tr class="codeline" data-linenumber="1022"><td class="num" id="LN1022">1022</td><td class="line"> <span class='keyword'>if</span> (!key)</td></tr>
+<tr class="codeline" data-linenumber="1023"><td class="num" id="LN1023">1023</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="1024"><td class="num" id="LN1024">1024</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1025"><td class="num" id="LN1025">1025</td><td class="line"> terminal_profile_gsettings_notify_cb (priv-&gt;settings, key, profile);</td></tr>
+<tr class="codeline" data-linenumber="1026"><td class="num" id="LN1026">1026</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1027"><td class="num" id="LN1027">1027</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1028"><td class="num" id="LN1028">1028</td><td class="line"> g_free (pspecs);</td></tr>
+<tr class="codeline" data-linenumber="1029"><td class="num" id="LN1029">1029</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1030"><td class="num" id="LN1030">1030</td><td class="line"> <span class='keyword'>return</span> object;</td></tr>
+<tr class="codeline" data-linenumber="1031"><td class="num" id="LN1031">1031</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1032"><td class="num" id="LN1032">1032</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1033"><td class="num" id="LN1033">1033</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1034"><td class="num" id="LN1034">1034</td><td class="line">terminal_profile_finalize (GObject *object)</td></tr>
+<tr class="codeline" data-linenumber="1035"><td class="num" id="LN1035">1035</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1036"><td class="num" id="LN1036">1036</td><td class="line"> TerminalProfile *profile = <span class='macro'>TERMINAL_PROFILE (object)<span class='macro_popup'>((((TerminalProfile*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((object)), ((terminal_profile_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1037"><td class="num" id="LN1037">1037</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1038"><td class="num" id="LN1038">1038</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1039"><td class="num" id="LN1039">1039</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (priv-&gt;settings,<span class='macro_popup'>g_signal_handlers_disconnect_matched ((priv-&gt;settings), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_profile_gsettings_notify_cb))), (<br>profile))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1040"><td class="num" id="LN1040">1040</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_profile_gsettings_notify_cb),<span class='macro_popup'>g_signal_handlers_disconnect_matched ((priv-&gt;settings), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_profile_gsettings_notify_cb))), (<br>profile))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1041"><td class="num" id="LN1041">1041</td><td class="line"> <span class='macro'>profile)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((priv-&gt;settings), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_profile_gsettings_notify_cb))), (<br>profile))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1042"><td class="num" id="LN1042">1042</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1043"><td class="num" id="LN1043">1043</td><td class="line"> <span class='keyword'>if</span> (priv-&gt;save_idle_id)</td></tr>
+<tr class="codeline" data-linenumber="1044"><td class="num" id="LN1044">1044</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1045"><td class="num" id="LN1045">1045</td><td class="line"> g_source_remove (priv-&gt;save_idle_id);</td></tr>
+<tr class="codeline" data-linenumber="1046"><td class="num" id="LN1046">1046</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1047"><td class="num" id="LN1047">1047</td><td class="line"> <span class='comment'>/* Save now */</span></td></tr>
+<tr class="codeline" data-linenumber="1048"><td class="num" id="LN1048">1048</td><td class="line"> terminal_profile_save (profile);</td></tr>
+<tr class="codeline" data-linenumber="1049"><td class="num" id="LN1049">1049</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1050"><td class="num" id="LN1050">1050</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1051"><td class="num" id="LN1051">1051</td><td class="line"> _terminal_profile_forget (profile);</td></tr>
+<tr class="codeline" data-linenumber="1052"><td class="num" id="LN1052">1052</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1053"><td class="num" id="LN1053">1053</td><td class="line"> g_object_unref (priv-&gt;settings);</td></tr>
+<tr class="codeline" data-linenumber="1054"><td class="num" id="LN1054">1054</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1055"><td class="num" id="LN1055">1055</td><td class="line"> g_free (priv-&gt;profile_dir);</td></tr>
+<tr class="codeline" data-linenumber="1056"><td class="num" id="LN1056">1056</td><td class="line"> g_free (priv-&gt;locked);</td></tr>
+<tr class="codeline" data-linenumber="1057"><td class="num" id="LN1057">1057</td><td class="line"> g_value_array_free (priv-&gt;properties);</td></tr>
+<tr class="codeline" data-linenumber="1058"><td class="num" id="LN1058">1058</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1059"><td class="num" id="LN1059">1059</td><td class="line"> <span class='macro'>G_OBJECT_CLASS (terminal_profile_parent_class)<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((terminal_profile_parent_class)), (((GType) ((20) &lt;&lt;<br> (2))))))))</span></span>-&gt;finalize (object);</td></tr>
+<tr class="codeline" data-linenumber="1060"><td class="num" id="LN1060">1060</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1061"><td class="num" id="LN1061">1061</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1062"><td class="num" id="LN1062">1062</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1063"><td class="num" id="LN1063">1063</td><td class="line">terminal_profile_get_property (GObject *object,</td></tr>
+<tr class="codeline" data-linenumber="1064"><td class="num" id="LN1064">1064</td><td class="line"> guint prop_id,</td></tr>
+<tr class="codeline" data-linenumber="1065"><td class="num" id="LN1065">1065</td><td class="line"> GValue *value,</td></tr>
+<tr class="codeline" data-linenumber="1066"><td class="num" id="LN1066">1066</td><td class="line"> GParamSpec *pspec)</td></tr>
+<tr class="codeline" data-linenumber="1067"><td class="num" id="LN1067">1067</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1068"><td class="num" id="LN1068">1068</td><td class="line"> TerminalProfile *profile = <span class='macro'>TERMINAL_PROFILE (object)<span class='macro_popup'>((((TerminalProfile*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((object)), ((terminal_profile_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1069"><td class="num" id="LN1069">1069</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1070"><td class="num" id="LN1070">1070</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1071"><td class="num" id="LN1071">1071</td><td class="line"> <span class='keyword'>if</span> (prop_id == 0 || prop_id &gt;= LAST_PROP)</td></tr>
+<tr class="codeline" data-linenumber="1072"><td class="num" id="LN1072">1072</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1073"><td class="num" id="LN1073">1073</td><td class="line"> <span class='macro'>G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec)<span class='macro_popup'>do { GObject *_glib__object = (GObject*) ((object)); GParamSpec<br> *_glib__pspec = (GParamSpec*) ((pspec)); guint _glib__property_id<br> = ((prop_id)); g_warning ("%s:%d: invalid %s id %u for \"%s\" of type '%s' in '%s'"<br>, "terminal-profile.c", 1073, ("property"), _glib__property_id<br>, _glib__pspec-&gt;name, g_type_name ((((((GTypeClass*) (((GTypeInstance<br>*) (_glib__pspec))-&gt;g_class))-&gt;g_type)))), (g_type_name<br> ((((((GTypeClass*) (((GTypeInstance*) (_glib__object))-&gt;g_class<br>))-&gt;g_type)))))); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1074"><td class="num" id="LN1074">1074</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1075"><td class="num" id="LN1075">1075</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1076"><td class="num" id="LN1076">1076</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1077"><td class="num" id="LN1077">1077</td><td class="line"> <span class='comment'>/* Note: When adding things here, do the same in get_prop_value_from_prop_name! */</span></td></tr>
+<tr class="codeline" data-linenumber="1078"><td class="num" id="LN1078">1078</td><td class="line"> <span class='keyword'>switch</span> (prop_id)</td></tr>
+<tr class="codeline" data-linenumber="1079"><td class="num" id="LN1079">1079</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1080"><td class="num" id="LN1080">1080</td><td class="line"> <span class='keyword'>case</span> PROP_BACKGROUND_IMAGE:</td></tr>
+<tr class="codeline" data-linenumber="1081"><td class="num" id="LN1081">1081</td><td class="line"> ensure_pixbuf_property (profile, PROP_BACKGROUND_IMAGE_FILE, PROP_BACKGROUND_IMAGE, &amp;priv-&gt;background_load_failed);</td></tr>
+<tr class="codeline" data-linenumber="1082"><td class="num" id="LN1082">1082</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1083"><td class="num" id="LN1083">1083</td><td class="line"> <span class='keyword'>default</span>:</td></tr>
+<tr class="codeline" data-linenumber="1084"><td class="num" id="LN1084">1084</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1085"><td class="num" id="LN1085">1085</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1086"><td class="num" id="LN1086">1086</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1087"><td class="num" id="LN1087">1087</td><td class="line"> g_value_copy (g_value_array_get_nth (priv-&gt;properties, prop_id), value);</td></tr>
+<tr class="codeline" data-linenumber="1088"><td class="num" id="LN1088">1088</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1089"><td class="num" id="LN1089">1089</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1090"><td class="num" id="LN1090">1090</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1091"><td class="num" id="LN1091">1091</td><td class="line">terminal_profile_set_property (GObject *object,</td></tr>
+<tr class="codeline" data-linenumber="1092"><td class="num" id="LN1092">1092</td><td class="line"> guint prop_id,</td></tr>
+<tr class="codeline" data-linenumber="1093"><td class="num" id="LN1093">1093</td><td class="line"> <span class='keyword'>const</span> GValue *value,</td></tr>
+<tr class="codeline" data-linenumber="1094"><td class="num" id="LN1094">1094</td><td class="line"> GParamSpec *pspec)</td></tr>
+<tr class="codeline" data-linenumber="1095"><td class="num" id="LN1095">1095</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1096"><td class="num" id="LN1096">1096</td><td class="line"> TerminalProfile *profile = <span class='macro'>TERMINAL_PROFILE (object)<span class='macro_popup'>((((TerminalProfile*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((object)), ((terminal_profile_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1097"><td class="num" id="LN1097">1097</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1098"><td class="num" id="LN1098">1098</td><td class="line"> GValue *prop_value;</td></tr>
+<tr class="codeline" data-linenumber="1099"><td class="num" id="LN1099">1099</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1100"><td class="num" id="LN1100">1100</td><td class="line"> <span class='keyword'>if</span> (prop_id == 0 || prop_id &gt;= LAST_PROP)</td></tr>
+<tr class="codeline" data-linenumber="1101"><td class="num" id="LN1101">1101</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1102"><td class="num" id="LN1102">1102</td><td class="line"> <span class='macro'>G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec)<span class='macro_popup'>do { GObject *_glib__object = (GObject*) ((object)); GParamSpec<br> *_glib__pspec = (GParamSpec*) ((pspec)); guint _glib__property_id<br> = ((prop_id)); g_warning ("%s:%d: invalid %s id %u for \"%s\" of type '%s' in '%s'"<br>, "terminal-profile.c", 1102, ("property"), _glib__property_id<br>, _glib__pspec-&gt;name, g_type_name ((((((GTypeClass*) (((GTypeInstance<br>*) (_glib__pspec))-&gt;g_class))-&gt;g_type)))), (g_type_name<br> ((((((GTypeClass*) (((GTypeInstance*) (_glib__object))-&gt;g_class<br>))-&gt;g_type)))))); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1103"><td class="num" id="LN1103">1103</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1104"><td class="num" id="LN1104">1104</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1105"><td class="num" id="LN1105">1105</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1106"><td class="num" id="LN1106">1106</td><td class="line"> prop_value = g_value_array_get_nth (priv-&gt;properties, prop_id);</td></tr>
+<tr class="codeline" data-linenumber="1107"><td class="num" id="LN1107">1107</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1108"><td class="num" id="LN1108">1108</td><td class="line"> <span class='comment'>/* Preprocessing */</span></td></tr>
+<tr class="codeline" data-linenumber="1109"><td class="num" id="LN1109">1109</td><td class="line"> <span class='keyword'>switch</span> (prop_id)</td></tr>
+<tr class="codeline" data-linenumber="1110"><td class="num" id="LN1110">1110</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1111"><td class="num" id="LN1111">1111</td><td class="line"><span class='directive'>#if 0</span></td></tr>
+<tr class="codeline" data-linenumber="1112"><td class="num" id="LN1112">1112</td><td class="line"> <span class='keyword'>case</span> PROP_FONT:</td></tr>
+<tr class="codeline" data-linenumber="1113"><td class="num" id="LN1113">1113</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1114"><td class="num" id="LN1114">1114</td><td class="line"> PangoFontDescription *font_desc, *new_font_desc;</td></tr>
+<tr class="codeline" data-linenumber="1115"><td class="num" id="LN1115">1115</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1116"><td class="num" id="LN1116">1116</td><td class="line"> font_desc = g_value_get_boxed (prop_value);</td></tr>
+<tr class="codeline" data-linenumber="1117"><td class="num" id="LN1117">1117</td><td class="line"> new_font_desc = g_value_get_boxed (value);</td></tr>
+<tr class="codeline" data-linenumber="1118"><td class="num" id="LN1118">1118</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1119"><td class="num" id="LN1119">1119</td><td class="line"> <span class='keyword'>if</span> (font_desc &amp;&amp; new_font_desc)</td></tr>
+<tr class="codeline" data-linenumber="1120"><td class="num" id="LN1120">1120</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1121"><td class="num" id="LN1121">1121</td><td class="line"> <span class='comment'>/* Merge in case the new string isn't complete enough to load a font */</span></td></tr>
+<tr class="codeline" data-linenumber="1122"><td class="num" id="LN1122">1122</td><td class="line"> pango_font_description_merge (font_desc, new_font_desc, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1123"><td class="num" id="LN1123">1123</td><td class="line"> pango_font_description_free (new_font_desc);</td></tr>
+<tr class="codeline" data-linenumber="1124"><td class="num" id="LN1124">1124</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1125"><td class="num" id="LN1125">1125</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1126"><td class="num" id="LN1126">1126</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1127"><td class="num" id="LN1127">1127</td><td class="line"> <span class='comment'>/* fall-through */</span></td></tr>
+<tr class="codeline" data-linenumber="1128"><td class="num" id="LN1128">1128</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1129"><td class="num" id="LN1129">1129</td><td class="line"><span class='directive'>#endif</span></td></tr>
+<tr class="codeline" data-linenumber="1130"><td class="num" id="LN1130">1130</td><td class="line"> <span class='keyword'>default</span>:</td></tr>
+<tr class="codeline" data-linenumber="1131"><td class="num" id="LN1131">1131</td><td class="line"> g_value_copy (value, prop_value);</td></tr>
+<tr class="codeline" data-linenumber="1132"><td class="num" id="LN1132">1132</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1133"><td class="num" id="LN1133">1133</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1134"><td class="num" id="LN1134">1134</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1135"><td class="num" id="LN1135">1135</td><td class="line"> <span class='comment'>/* Postprocessing */</span></td></tr>
+<tr class="codeline" data-linenumber="1136"><td class="num" id="LN1136">1136</td><td class="line"> <span class='keyword'>switch</span> (prop_id)</td></tr>
+<tr class="codeline" data-linenumber="1137"><td class="num" id="LN1137">1137</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1138"><td class="num" id="LN1138">1138</td><td class="line"> <span class='keyword'>case</span> PROP_NAME:</td></tr>
+<tr class="codeline" data-linenumber="1139"><td class="num" id="LN1139">1139</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1140"><td class="num" id="LN1140">1140</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *name = g_value_get_string (value);</td></tr>
+<tr class="codeline" data-linenumber="1141"><td class="num" id="LN1141">1141</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1142"><td class="num" id="LN1142">1142</td><td class="line"> <span class='macro'>g_assert (name != NULL)<span class='macro_popup'>do { if (name != ((void*)0)) ; else g_assertion_message_expr (<br>((gchar*) 0), "terminal-profile.c", 1142, ((const char*) (__func__<br>)), "name != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1143"><td class="num" id="LN1143">1143</td><td class="line"> priv-&gt;profile_dir = <span class='macro'>g_strdup (name)<span class='macro_popup'>g_strdup_inline (name)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1144"><td class="num" id="LN1144">1144</td><td class="line"> <span class='keyword'>if</span> (priv-&gt;settings != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>) {</td></tr>
+<tr class="codeline" data-linenumber="1145"><td class="num" id="LN1145">1145</td><td class="line"> gchar *concat;</td></tr>
+<tr class="codeline" data-linenumber="1146"><td class="num" id="LN1146">1146</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (priv-&gt;settings,<span class='macro_popup'>g_signal_handlers_disconnect_matched ((priv-&gt;settings), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_profile_gsettings_notify_cb))), (<br>profile))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1147"><td class="num" id="LN1147">1147</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_profile_gsettings_notify_cb),<span class='macro_popup'>g_signal_handlers_disconnect_matched ((priv-&gt;settings), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_profile_gsettings_notify_cb))), (<br>profile))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1148"><td class="num" id="LN1148">1148</td><td class="line"> <span class='macro'>profile)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((priv-&gt;settings), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_profile_gsettings_notify_cb))), (<br>profile))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1149"><td class="num" id="LN1149">1149</td><td class="line"> g_object_unref (priv-&gt;settings);</td></tr>
+<tr class="codeline" data-linenumber="1150"><td class="num" id="LN1150">1150</td><td class="line"> concat= g_strconcat (<span class='macro'>CONF_PROFILE_PREFIX<span class='macro_popup'>"/org/mate/terminal/profiles/"</span></span>, priv-&gt;profile_dir, <span class='string_literal'>"/"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1151"><td class="num" id="LN1151">1151</td><td class="line"> priv-&gt;settings = g_settings_new_with_path (<span class='macro'>CONF_PROFILE_SCHEMA<span class='macro_popup'>"org.mate.terminal" ".profile"</span></span>, concat);</td></tr>
+<tr class="codeline" data-linenumber="1152"><td class="num" id="LN1152">1152</td><td class="line"> g_free (concat);</td></tr>
+<tr class="codeline" data-linenumber="1153"><td class="num" id="LN1153">1153</td><td class="line"> concat = g_strconcat(<span class='string_literal'>"changed::"</span>, priv-&gt;profile_dir, <span class='string_literal'>"/"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1154"><td class="num" id="LN1154">1154</td><td class="line"> <span class='macro'>g_signal_connect (priv-&gt;settings,<span class='macro_popup'>g_signal_connect_data ((priv-&gt;settings), (concat), (((GCallback<br>) (terminal_profile_gsettings_notify_cb))), (profile), ((void<br>*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1155"><td class="num" id="LN1155">1155</td><td class="line"> <span class='macro'>concat,<span class='macro_popup'>g_signal_connect_data ((priv-&gt;settings), (concat), (((GCallback<br>) (terminal_profile_gsettings_notify_cb))), (profile), ((void<br>*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1156"><td class="num" id="LN1156">1156</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_profile_gsettings_notify_cb),<span class='macro_popup'>g_signal_connect_data ((priv-&gt;settings), (concat), (((GCallback<br>) (terminal_profile_gsettings_notify_cb))), (profile), ((void<br>*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1157"><td class="num" id="LN1157">1157</td><td class="line"> <span class='macro'>profile)<span class='macro_popup'>g_signal_connect_data ((priv-&gt;settings), (concat), (((GCallback<br>) (terminal_profile_gsettings_notify_cb))), (profile), ((void<br>*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1158"><td class="num" id="LN1158">1158</td><td class="line"> g_free (concat);</td></tr>
+<tr class="codeline" data-linenumber="1159"><td class="num" id="LN1159">1159</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1160"><td class="num" id="LN1160">1160</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1161"><td class="num" id="LN1161">1161</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1162"><td class="num" id="LN1162">1162</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1163"><td class="num" id="LN1163">1163</td><td class="line"> <span class='keyword'>case</span> PROP_BACKGROUND_IMAGE_FILE:</td></tr>
+<tr class="codeline" data-linenumber="1164"><td class="num" id="LN1164">1164</td><td class="line"> <span class='comment'>/* Clear the cached image */</span></td></tr>
+<tr class="codeline" data-linenumber="1165"><td class="num" id="LN1165">1165</td><td class="line"> g_value_set_object (g_value_array_get_nth (priv-&gt;properties, PROP_BACKGROUND_IMAGE), <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1166"><td class="num" id="LN1166">1166</td><td class="line"> priv-&gt;background_load_failed = <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1167"><td class="num" id="LN1167">1167</td><td class="line"> g_object_notify (object, <span class='macro'>TERMINAL_PROFILE_BACKGROUND_IMAGE<span class='macro_popup'>"background-image"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1168"><td class="num" id="LN1168">1168</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1169"><td class="num" id="LN1169">1169</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1170"><td class="num" id="LN1170">1170</td><td class="line"> <span class='keyword'>default</span>:</td></tr>
+<tr class="codeline" data-linenumber="1171"><td class="num" id="LN1171">1171</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1172"><td class="num" id="LN1172">1172</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1173"><td class="num" id="LN1173">1173</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1174"><td class="num" id="LN1174">1174</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1175"><td class="num" id="LN1175">1175</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1176"><td class="num" id="LN1176">1176</td><td class="line">terminal_profile_notify (GObject *object,</td></tr>
+<tr class="codeline" data-linenumber="1177"><td class="num" id="LN1177">1177</td><td class="line"> GParamSpec *pspec)</td></tr>
+<tr class="codeline" data-linenumber="1178"><td class="num" id="LN1178">1178</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1179"><td class="num" id="LN1179">1179</td><td class="line"> TerminalProfilePrivate *priv = <span class='macro'>TERMINAL_PROFILE (object)<span class='macro_popup'>((((TerminalProfile*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((object)), ((terminal_profile_get_type ()))))))</span></span>-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1180"><td class="num" id="LN1180">1180</td><td class="line"> <span class='keyword'>void</span> (* notify) (GObject *, GParamSpec *) = <span class='macro'>G_OBJECT_CLASS (terminal_profile_parent_class)<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((terminal_profile_parent_class)), (((GType) ((20) &lt;&lt;<br> (2))))))))</span></span>-&gt;notify;</td></tr>
+<tr class="codeline" data-linenumber="1181"><td class="num" id="LN1181">1181</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1182"><td class="num" id="LN1182">1182</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_PROFILE,<span class='macro_popup'>do { if (0) g_printerr("Property notification for prop %s\n",<br> pspec-&gt;name); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1183"><td class="num" id="LN1183">1183</td><td class="line"> <span class='string_literal'><span class='macro'>"Property notification for prop %s\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("Property notification for prop %s\n",<br> pspec-&gt;name); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1184"><td class="num" id="LN1184">1184</td><td class="line"> <span class='macro'>pspec-&gt;name)<span class='macro_popup'>do { if (0) g_printerr("Property notification for prop %s\n",<br> pspec-&gt;name); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1185"><td class="num" id="LN1185">1185</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1186"><td class="num" id="LN1186">1186</td><td class="line"> <span class='keyword'>if</span> (notify)</td></tr>
+<tr class="codeline" data-linenumber="1187"><td class="num" id="LN1187">1187</td><td class="line"> notify (object, pspec);</td></tr>
+<tr class="codeline" data-linenumber="1188"><td class="num" id="LN1188">1188</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1189"><td class="num" id="LN1189">1189</td><td class="line"> <span class='keyword'>if</span> (pspec-&gt;owner_type == <span class='macro'>TERMINAL_TYPE_PROFILE<span class='macro_popup'>(terminal_profile_get_type ())</span></span> &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="1190"><td class="num" id="LN1190">1190</td><td class="line"> (pspec-&gt;flags &amp; G_PARAM_WRITABLE) &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="1191"><td class="num" id="LN1191">1191</td><td class="line"> g_param_spec_get_qdata (pspec, gsettings_key_quark) != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span> &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="1192"><td class="num" id="LN1192">1192</td><td class="line"> pspec != priv-&gt;gsettings_notification_pspec)</td></tr>
+<tr class="codeline" data-linenumber="1193"><td class="num" id="LN1193">1193</td><td class="line"> terminal_profile_schedule_save (<span class='macro'>TERMINAL_PROFILE (object)<span class='macro_popup'>((((TerminalProfile*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((object)), ((terminal_profile_get_type ()))))))</span></span>, pspec);</td></tr>
+<tr class="codeline" data-linenumber="1194"><td class="num" id="LN1194">1194</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1195"><td class="num" id="LN1195">1195</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1196"><td class="num" id="LN1196">1196</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1197"><td class="num" id="LN1197">1197</td><td class="line">terminal_profile_class_init (TerminalProfileClass *klass)</td></tr>
+<tr class="codeline" data-linenumber="1198"><td class="num" id="LN1198">1198</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1199"><td class="num" id="LN1199">1199</td><td class="line"> GObjectClass *object_class = <span class='macro'>G_OBJECT_CLASS (klass)<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((klass)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1200"><td class="num" id="LN1200">1200</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1201"><td class="num" id="LN1201">1201</td><td class="line"> gsettings_key_quark = g_quark_from_static_string (<span class='string_literal'>"GT::GSettingsKey"</span>);</td></tr>
+<tr class="codeline" data-linenumber="1202"><td class="num" id="LN1202">1202</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1203"><td class="num" id="LN1203">1203</td><td class="line"> object_class-&gt;constructor = terminal_profile_constructor;</td></tr>
+<tr class="codeline" data-linenumber="1204"><td class="num" id="LN1204">1204</td><td class="line"> object_class-&gt;finalize = terminal_profile_finalize;</td></tr>
+<tr class="codeline" data-linenumber="1205"><td class="num" id="LN1205">1205</td><td class="line"> object_class-&gt;get_property = terminal_profile_get_property;</td></tr>
+<tr class="codeline" data-linenumber="1206"><td class="num" id="LN1206">1206</td><td class="line"> object_class-&gt;set_property = terminal_profile_set_property;</td></tr>
+<tr class="codeline" data-linenumber="1207"><td class="num" id="LN1207">1207</td><td class="line"> object_class-&gt;notify = terminal_profile_notify;</td></tr>
+<tr class="codeline" data-linenumber="1208"><td class="num" id="LN1208">1208</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1209"><td class="num" id="LN1209">1209</td><td class="line"> signals[FORGOTTEN] =</td></tr>
+<tr class="codeline" data-linenumber="1210"><td class="num" id="LN1210">1210</td><td class="line"> g_signal_new (<span class='string_literal'>"forgotten"</span>,</td></tr>
+<tr class="codeline" data-linenumber="1211"><td class="num" id="LN1211">1211</td><td class="line"> <span class='macro'>G_OBJECT_CLASS_TYPE (object_class)<span class='macro_popup'>((((GTypeClass*) (object_class))-&gt;g_type))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1212"><td class="num" id="LN1212">1212</td><td class="line"> G_SIGNAL_RUN_LAST,</td></tr>
+<tr class="codeline" data-linenumber="1213"><td class="num" id="LN1213">1213</td><td class="line"> <span class='macro'>G_STRUCT_OFFSET (TerminalProfileClass, forgotten)<span class='macro_popup'>((glong) __builtin_offsetof(TerminalProfileClass, forgotten))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1214"><td class="num" id="LN1214">1214</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1215"><td class="num" id="LN1215">1215</td><td class="line"> g_cclosure_marshal_VOID__VOID,</td></tr>
+<tr class="codeline" data-linenumber="1216"><td class="num" id="LN1216">1216</td><td class="line"> <span class='macro'>G_TYPE_NONE<span class='macro_popup'>((GType) ((1) &lt;&lt; (2)))</span></span>, 0);</td></tr>
+<tr class="codeline" data-linenumber="1217"><td class="num" id="LN1217">1217</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1218"><td class="num" id="LN1218">1218</td><td class="line"> <span class='comment'>/* gsettings_key -&gt; pspec hash */</span></td></tr>
+<tr class="codeline" data-linenumber="1219"><td class="num" id="LN1219">1219</td><td class="line"> klass-&gt;gsettings_keys = g_hash_table_new (g_str_hash, g_str_equal);</td></tr>
+<tr class="codeline" data-linenumber="1220"><td class="num" id="LN1220">1220</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1221"><td class="num" id="LN1221">1221</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PSPEC_STATIC<span class='macro_popup'>(G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)</span></span> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)</span></td></tr>
+<tr class="codeline" data-linenumber="1222"><td class="num" id="LN1222">1222</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1223"><td class="num" id="LN1223">1223</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY(propId, propSpec, propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = propSpec; g_object_class_install_property<br> (object_class, propId, pspec); g_param_spec_set_qdata (pspec<br>, gsettings_key_quark, (gpointer) propGSettings); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) propGSettings, pspec);<br>}</span></span> \</span></td></tr>
+<tr class="codeline" data-linenumber="1224"><td class="num" id="LN1224">1224</td><td class="line"><span class='directive'>{\</span></td></tr>
+<tr class="codeline" data-linenumber="1225"><td class="num" id="LN1225">1225</td><td class="line"> <span class='directive'>GParamSpec *pspec = propSpec;\</span></td></tr>
+<tr class="codeline" data-linenumber="1226"><td class="num" id="LN1226">1226</td><td class="line"> <span class='directive'>g_object_class_install_property (object_class, propId, pspec);\</span></td></tr>
+<tr class="codeline" data-linenumber="1227"><td class="num" id="LN1227">1227</td><td class="line"> <span class='directive'>g_param_spec_set_qdata (pspec, gsettings_key_quark, (gpointer) propGSettings);\</span></td></tr>
+<tr class="codeline" data-linenumber="1228"><td class="num" id="LN1228">1228</td><td class="line"> <span class='directive'>g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) propGSettings, pspec);\</span></td></tr>
+<tr class="codeline" data-linenumber="1229"><td class="num" id="LN1229">1229</td><td class="line"><span class='directive'>}</span></td></tr>
+<tr class="codeline" data-linenumber="1230"><td class="num" id="LN1230">1230</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1231"><td class="num" id="LN1231">1231</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY_OUTER(propId, propSpec)<span class='macro_popup'>{ GParamSpec *pspec = propSpec; g_object_class_install_property<br> (object_class, propId, pspec);}</span></span> \</span></td></tr>
+<tr class="codeline" data-linenumber="1232"><td class="num" id="LN1232">1232</td><td class="line"><span class='directive'>{\</span></td></tr>
+<tr class="codeline" data-linenumber="1233"><td class="num" id="LN1233">1233</td><td class="line"> <span class='directive'>GParamSpec *pspec = propSpec;\</span></td></tr>
+<tr class="codeline" data-linenumber="1234"><td class="num" id="LN1234">1234</td><td class="line"> <span class='directive'>g_object_class_install_property (object_class, propId, pspec);\</span></td></tr>
+<tr class="codeline" data-linenumber="1235"><td class="num" id="LN1235">1235</td><td class="line"><span class='directive'>}</span></td></tr>
+<tr class="codeline" data-linenumber="1236"><td class="num" id="LN1236">1236</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1237"><td class="num" id="LN1237">1237</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN(prop, propDefault, propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean (TERMINAL_PROFILE_prop<br>, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_prop, pspec); g_param_spec_set_qdata (pspec<br>, gsettings_key_quark, (gpointer) propGSettings); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) propGSettings, pspec);<br>}</span></span> \</span></td></tr>
+<tr class="codeline" data-linenumber="1238"><td class="num" id="LN1238">1238</td><td class="line"> <span class='directive'><span class='macro'>TERMINAL_PROFILE_PROPERTY (PROP_##prop,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1239"><td class="num" id="LN1239">1239</td><td class="line"> <span class='directive'><span class='macro'>g_param_spec_boolean (TERMINAL_PROFILE_##prop, NULL, NULL,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1240"><td class="num" id="LN1240">1240</td><td class="line"> <span class='directive'><span class='macro'>propDefault,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1241"><td class="num" id="LN1241">1241</td><td class="line"> <span class='directive'><span class='macro'>G_PARAM_READWRITE | TERMINAL_PROFILE_PSPEC_STATIC),\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1242"><td class="num" id="LN1242">1242</td><td class="line"> <span class='directive'><span class='macro'>propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1243"><td class="num" id="LN1243">1243</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1244"><td class="num" id="LN1244">1244</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOXED(prop, propType, propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boxed (TERMINAL_PROFILE_prop<br>, ((void*)0), ((void*)0), propType, G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_prop, pspec); g_param_spec_set_qdata (pspec<br>, gsettings_key_quark, (gpointer) propGSettings); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) propGSettings, pspec);<br>}</span></span>\</span></td></tr>
+<tr class="codeline" data-linenumber="1245"><td class="num" id="LN1245">1245</td><td class="line"> <span class='directive'><span class='macro'>TERMINAL_PROFILE_PROPERTY (PROP_##prop,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boxed (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propType, G_PARAM_READWRITE | (<br>G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1246"><td class="num" id="LN1246">1246</td><td class="line"> <span class='directive'><span class='macro'>g_param_spec_boxed (TERMINAL_PROFILE_##prop, NULL, NULL,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boxed (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propType, G_PARAM_READWRITE | (<br>G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1247"><td class="num" id="LN1247">1247</td><td class="line"> <span class='directive'><span class='macro'>propType,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boxed (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propType, G_PARAM_READWRITE | (<br>G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1248"><td class="num" id="LN1248">1248</td><td class="line"> <span class='directive'><span class='macro'>G_PARAM_READWRITE | TERMINAL_PROFILE_PSPEC_STATIC),\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boxed (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propType, G_PARAM_READWRITE | (<br>G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1249"><td class="num" id="LN1249">1249</td><td class="line"> <span class='directive'><span class='macro'>propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boxed (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propType, G_PARAM_READWRITE | (<br>G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1250"><td class="num" id="LN1250">1250</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1251"><td class="num" id="LN1251">1251</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY_DOUBLE(prop, propMin, propMax, propDefault, propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_double (TERMINAL_PROFILE_prop<br>, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_prop,<br> pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark, (<br>gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span>\</span></td></tr>
+<tr class="codeline" data-linenumber="1252"><td class="num" id="LN1252">1252</td><td class="line"> <span class='directive'><span class='macro'>TERMINAL_PROFILE_PROPERTY (PROP_##prop,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_double (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1253"><td class="num" id="LN1253">1253</td><td class="line"> <span class='directive'><span class='macro'>g_param_spec_double (TERMINAL_PROFILE_##prop, NULL, NULL,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_double (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1254"><td class="num" id="LN1254">1254</td><td class="line"> <span class='directive'><span class='macro'>propMin, propMax, propDefault,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_double (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1255"><td class="num" id="LN1255">1255</td><td class="line"> <span class='directive'><span class='macro'>G_PARAM_READWRITE | TERMINAL_PROFILE_PSPEC_STATIC),\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_double (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1256"><td class="num" id="LN1256">1256</td><td class="line"> <span class='directive'><span class='macro'>propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_double (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1257"><td class="num" id="LN1257">1257</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1258"><td class="num" id="LN1258">1258</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY_ENUM(prop, propType, propDefault, propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum (TERMINAL_PROFILE_prop<br>, ((void*)0), ((void*)0), propType, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_prop,<br> pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark, (<br>gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span>\</span></td></tr>
+<tr class="codeline" data-linenumber="1259"><td class="num" id="LN1259">1259</td><td class="line"> <span class='directive'><span class='macro'>TERMINAL_PROFILE_PROPERTY (PROP_##prop,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum (TERMINAL_PROFILE_##prop<br>, ((void*)0), ((void*)0), propType, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1260"><td class="num" id="LN1260">1260</td><td class="line"> <span class='directive'><span class='macro'>g_param_spec_enum (TERMINAL_PROFILE_##prop, NULL, NULL,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum (TERMINAL_PROFILE_##prop<br>, ((void*)0), ((void*)0), propType, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1261"><td class="num" id="LN1261">1261</td><td class="line"> <span class='directive'><span class='macro'>propType, propDefault,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum (TERMINAL_PROFILE_##prop<br>, ((void*)0), ((void*)0), propType, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1262"><td class="num" id="LN1262">1262</td><td class="line"> <span class='directive'><span class='macro'>G_PARAM_READWRITE | TERMINAL_PROFILE_PSPEC_STATIC),\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum (TERMINAL_PROFILE_##prop<br>, ((void*)0), ((void*)0), propType, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1263"><td class="num" id="LN1263">1263</td><td class="line"> <span class='directive'><span class='macro'>propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum (TERMINAL_PROFILE_##prop<br>, ((void*)0), ((void*)0), propType, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1264"><td class="num" id="LN1264">1264</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1265"><td class="num" id="LN1265">1265</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY_INT(prop, propMin, propMax, propDefault, propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_int (TERMINAL_PROFILE_prop<br>, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_prop,<br> pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark, (<br>gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span>\</span></td></tr>
+<tr class="codeline" data-linenumber="1266"><td class="num" id="LN1266">1266</td><td class="line"> <span class='directive'><span class='macro'>TERMINAL_PROFILE_PROPERTY (PROP_##prop,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_int (TERMINAL_PROFILE_##prop<br>, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1267"><td class="num" id="LN1267">1267</td><td class="line"> <span class='directive'><span class='macro'>g_param_spec_int (TERMINAL_PROFILE_##prop, NULL, NULL,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_int (TERMINAL_PROFILE_##prop<br>, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1268"><td class="num" id="LN1268">1268</td><td class="line"> <span class='directive'><span class='macro'>propMin, propMax, propDefault,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_int (TERMINAL_PROFILE_##prop<br>, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1269"><td class="num" id="LN1269">1269</td><td class="line"> <span class='directive'><span class='macro'>G_PARAM_READWRITE | TERMINAL_PROFILE_PSPEC_STATIC),\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_int (TERMINAL_PROFILE_##prop<br>, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1270"><td class="num" id="LN1270">1270</td><td class="line"> <span class='directive'><span class='macro'>propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_int (TERMINAL_PROFILE_##prop<br>, ((void*)0), ((void*)0), propMin, propMax, propDefault, G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1271"><td class="num" id="LN1271">1271</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1272"><td class="num" id="LN1272">1272</td><td class="line"> <span class='comment'>/* these are all read-only */</span></td></tr>
+<tr class="codeline" data-linenumber="1273"><td class="num" id="LN1273">1273</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY_OBJECT(prop, propType)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_object (TERMINAL_PROFILE_prop<br>, ((void*)0), ((void*)0), propType, G_PARAM_READABLE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_prop, pspec);}</span></span>\</span></td></tr>
+<tr class="codeline" data-linenumber="1274"><td class="num" id="LN1274">1274</td><td class="line"> <span class='directive'><span class='macro'>TERMINAL_PROFILE_PROPERTY_OUTER (PROP_##prop,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_object (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propType, G_PARAM_READABLE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_##prop, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1275"><td class="num" id="LN1275">1275</td><td class="line"> <span class='directive'><span class='macro'>g_param_spec_object (TERMINAL_PROFILE_##prop, NULL, NULL,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_object (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propType, G_PARAM_READABLE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_##prop, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1276"><td class="num" id="LN1276">1276</td><td class="line"> <span class='directive'><span class='macro'>propType,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_object (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propType, G_PARAM_READABLE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_##prop, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1277"><td class="num" id="LN1277">1277</td><td class="line"> <span class='directive'><span class='macro'>G_PARAM_READABLE | TERMINAL_PROFILE_PSPEC_STATIC))<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_object (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propType, G_PARAM_READABLE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_##prop, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1278"><td class="num" id="LN1278">1278</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1279"><td class="num" id="LN1279">1279</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY_STRING(prop, propDefault, propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_prop<br>, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_prop, pspec); g_param_spec_set_qdata (pspec<br>, gsettings_key_quark, (gpointer) propGSettings); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) propGSettings, pspec);<br>}</span></span>\</span></td></tr>
+<tr class="codeline" data-linenumber="1280"><td class="num" id="LN1280">1280</td><td class="line"> <span class='directive'><span class='macro'>TERMINAL_PROFILE_PROPERTY (PROP_##prop,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1281"><td class="num" id="LN1281">1281</td><td class="line"> <span class='directive'><span class='macro'>g_param_spec_string (TERMINAL_PROFILE_##prop, NULL, NULL,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1282"><td class="num" id="LN1282">1282</td><td class="line"> <span class='directive'><span class='macro'>propDefault,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1283"><td class="num" id="LN1283">1283</td><td class="line"> <span class='directive'><span class='macro'>G_PARAM_READWRITE | TERMINAL_PROFILE_PSPEC_STATIC),\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1284"><td class="num" id="LN1284">1284</td><td class="line"> <span class='directive'><span class='macro'>propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_##prop<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1285"><td class="num" id="LN1285">1285</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1286"><td class="num" id="LN1286">1286</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY_STRING_CO(prop, propDefault)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_prop<br>, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_prop,<br> pspec);}</span></span>\</span></td></tr>
+<tr class="codeline" data-linenumber="1287"><td class="num" id="LN1287">1287</td><td class="line"> <span class='directive'><span class='macro'>TERMINAL_PROFILE_PROPERTY_OUTER (PROP_##prop,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE |<br> G_PARAM_CONSTRUCT_ONLY | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1288"><td class="num" id="LN1288">1288</td><td class="line"> <span class='directive'><span class='macro'>g_param_spec_string (TERMINAL_PROFILE_##prop, NULL, NULL,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE |<br> G_PARAM_CONSTRUCT_ONLY | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1289"><td class="num" id="LN1289">1289</td><td class="line"> <span class='directive'><span class='macro'>propDefault,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE |<br> G_PARAM_CONSTRUCT_ONLY | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1290"><td class="num" id="LN1290">1290</td><td class="line"> <span class='directive'><span class='macro'>G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | TERMINAL_PROFILE_PSPEC_STATIC))<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string (TERMINAL_PROFILE_##<br>prop, ((void*)0), ((void*)0), propDefault, G_PARAM_READWRITE |<br> G_PARAM_CONSTRUCT_ONLY | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1291"><td class="num" id="LN1291">1291</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1292"><td class="num" id="LN1292">1292</td><td class="line"><span class='directive'>#define <span class='macro'>TERMINAL_PROFILE_PROPERTY_VALUE_ARRAY_BOXED(prop, propElementName, propElementType, propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_value_array (TERMINAL_PROFILE_prop<br>, ((void*)0), ((void*)0), g_param_spec_boxed (propElementName<br>, ((void*)0), ((void*)0), propElementType, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_prop, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span>\</span></td></tr>
+<tr class="codeline" data-linenumber="1293"><td class="num" id="LN1293">1293</td><td class="line"> <span class='directive'><span class='macro'>TERMINAL_PROFILE_PROPERTY (PROP_##prop,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_value_array (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), g_param_spec_boxed (propElementName<br>, ((void*)0), ((void*)0), propElementType, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1294"><td class="num" id="LN1294">1294</td><td class="line"> <span class='directive'><span class='macro'>g_param_spec_value_array (TERMINAL_PROFILE_##prop, NULL, NULL,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_value_array (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), g_param_spec_boxed (propElementName<br>, ((void*)0), ((void*)0), propElementType, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1295"><td class="num" id="LN1295">1295</td><td class="line"> <span class='directive'><span class='macro'>g_param_spec_boxed (propElementName, NULL, NULL,\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_value_array (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), g_param_spec_boxed (propElementName<br>, ((void*)0), ((void*)0), propElementType, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1296"><td class="num" id="LN1296">1296</td><td class="line"> <span class='directive'><span class='macro'>propElementType, \<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_value_array (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), g_param_spec_boxed (propElementName<br>, ((void*)0), ((void*)0), propElementType, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1297"><td class="num" id="LN1297">1297</td><td class="line"> <span class='directive'><span class='macro'>G_PARAM_READWRITE | TERMINAL_PROFILE_PSPEC_STATIC),\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_value_array (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), g_param_spec_boxed (propElementName<br>, ((void*)0), ((void*)0), propElementType, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1298"><td class="num" id="LN1298">1298</td><td class="line"> <span class='directive'><span class='macro'>G_PARAM_READWRITE | TERMINAL_PROFILE_PSPEC_STATIC),\<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_value_array (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), g_param_spec_boxed (propElementName<br>, ((void*)0), ((void*)0), propElementType, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1299"><td class="num" id="LN1299">1299</td><td class="line"> <span class='directive'><span class='macro'>propGSettings)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_value_array (TERMINAL_PROFILE_<br>##prop, ((void*)0), ((void*)0), g_param_spec_boxed (propElementName<br>, ((void*)0), ((void*)0), propElementType, G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_##prop, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) propGSettings); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) propGSettings, pspec);}</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1300"><td class="num" id="LN1300">1300</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1301"><td class="num" id="LN1301">1301</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (ALLOW_BOLD, DEFAULT_ALLOW_BOLD, KEY_ALLOW_BOLD)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("allow-bold", ((void<br>*)0), ((void*)0), ((!(0))), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_ALLOW_BOLD, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "allow-bold"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "allow-bold", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1302"><td class="num" id="LN1302">1302</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (BOLD_COLOR_SAME_AS_FG, DEFAULT_BOLD_COLOR_SAME_AS_FG, KEY_BOLD_COLOR_SAME_AS_FG)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("bold-color-same-as-fg"<br>, ((void*)0), ((void*)0), ((!(0))), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_BOLD_COLOR_SAME_AS_FG, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "bold-color-same-as-fg"<br>); g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "bold-color-same-as-fg"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1303"><td class="num" id="LN1303">1303</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (DEFAULT_SHOW_MENUBAR, DEFAULT_DEFAULT_SHOW_MENUBAR, KEY_DEFAULT_SHOW_MENUBAR)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("default-show-menubar"<br>, ((void*)0), ((void*)0), ((!(0))), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_DEFAULT_SHOW_MENUBAR, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "default-show-menubar"<br>); g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "default-show-menubar"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1304"><td class="num" id="LN1304">1304</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (LOGIN_SHELL, DEFAULT_LOGIN_SHELL, KEY_LOGIN_SHELL)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("login-shell", ((<br>void*)0), ((void*)0), ((0)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_LOGIN_SHELL, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "login-shell"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "login-shell", pspec);<br>}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1305"><td class="num" id="LN1305">1305</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (SCROLL_BACKGROUND, DEFAULT_SCROLL_BACKGROUND, KEY_SCROLL_BACKGROUND)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("scroll-background"<br>, ((void*)0), ((void*)0), ((!(0))), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_SCROLL_BACKGROUND, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "scroll-background")<br>; g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "scroll-background"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1306"><td class="num" id="LN1306">1306</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (SCROLLBACK_UNLIMITED, DEFAULT_SCROLLBACK_UNLIMITED, KEY_SCROLLBACK_UNLIMITED)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("scrollback-unlimited"<br>, ((void*)0), ((void*)0), ((0)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_SCROLLBACK_UNLIMITED, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "scrollback-unlimited"<br>); g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "scrollback-unlimited"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1307"><td class="num" id="LN1307">1307</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (SCROLL_ON_KEYSTROKE, DEFAULT_SCROLL_ON_KEYSTROKE, KEY_SCROLL_ON_KEYSTROKE)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("scroll-on-keystroke"<br>, ((void*)0), ((void*)0), ((!(0))), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_SCROLL_ON_KEYSTROKE, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "scroll-on-keystroke"<br>); g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "scroll-on-keystroke"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1308"><td class="num" id="LN1308">1308</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (SCROLL_ON_OUTPUT, DEFAULT_SCROLL_ON_OUTPUT, KEY_SCROLL_ON_OUTPUT)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("scroll-on-output"<br>, ((void*)0), ((void*)0), ((0)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_SCROLL_ON_OUTPUT, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "scroll-on-output");<br> g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "scroll-on-output"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1309"><td class="num" id="LN1309">1309</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (SILENT_BELL, DEFAULT_SILENT_BELL, KEY_SILENT_BELL)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("silent-bell", ((<br>void*)0), ((void*)0), ((0)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_SILENT_BELL, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "silent-bell"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "silent-bell", pspec);<br>}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1310"><td class="num" id="LN1310">1310</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (COPY_SELECTION, DEFAULT_COPY_SELECTION, KEY_COPY_SELECTION)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("copy-selection",<br> ((void*)0), ((void*)0), ((0)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_COPY_SELECTION, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "copy-selection"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "copy-selection", pspec<br>);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1311"><td class="num" id="LN1311">1311</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (USE_CUSTOM_COMMAND, DEFAULT_USE_CUSTOM_COMMAND, KEY_USE_CUSTOM_COMMAND)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("use-custom-command"<br>, ((void*)0), ((void*)0), ((0)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_USE_CUSTOM_COMMAND, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "use-custom-command"<br>); g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "use-custom-command"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1312"><td class="num" id="LN1312">1312</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (USE_CUSTOM_DEFAULT_SIZE, DEFAULT_USE_CUSTOM_DEFAULT_SIZE, KEY_USE_CUSTOM_DEFAULT_SIZE)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("use-custom-default-size"<br>, ((void*)0), ((void*)0), ((0)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_USE_CUSTOM_DEFAULT_SIZE, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "use-custom-default-size"<br>); g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "use-custom-default-size"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1313"><td class="num" id="LN1313">1313</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (USE_SKEY, DEFAULT_USE_SKEY, KEY_USE_SKEY)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("use-skey", ((void<br>*)0), ((void*)0), ((!(0))), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_USE_SKEY, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "use-skey"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "use-skey", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1314"><td class="num" id="LN1314">1314</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (USE_URLS, DEFAULT_USE_URLS, KEY_USE_URLS)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("use-urls", ((void<br>*)0), ((void*)0), ((!(0))), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_USE_URLS, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "use-urls"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "use-urls", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1315"><td class="num" id="LN1315">1315</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (USE_SYSTEM_FONT, DEFAULT_USE_SYSTEM_FONT, KEY_USE_SYSTEM_FONT)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("use-system-font"<br>, ((void*)0), ((void*)0), ((!(0))), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_USE_SYSTEM_FONT, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "use-system-font"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "use-system-font", pspec<br>);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1316"><td class="num" id="LN1316">1316</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOOLEAN (USE_THEME_COLORS, DEFAULT_USE_THEME_COLORS, KEY_USE_THEME_COLORS)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boolean ("use-theme-colors"<br>, ((void*)0), ((void*)0), ((!(0))), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_USE_THEME_COLORS, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "use-theme-colors");<br> g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "use-theme-colors"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1317"><td class="num" id="LN1317">1317</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1318"><td class="num" id="LN1318">1318</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOXED (BACKGROUND_COLOR, GDK_TYPE_RGBA, KEY_BACKGROUND_COLOR)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boxed ("background-color",<br> ((void*)0), ((void*)0), (gdk_rgba_get_type ()), G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_BACKGROUND_COLOR<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) "background-color"); g_hash_table_insert (klass-&gt;<br>gsettings_keys, (gpointer) "background-color", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1319"><td class="num" id="LN1319">1319</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOXED (BOLD_COLOR, GDK_TYPE_RGBA, KEY_BOLD_COLOR)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boxed ("bold-color", ((void<br>*)0), ((void*)0), (gdk_rgba_get_type ()), G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_BOLD_COLOR<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) "bold-color"); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) "bold-color", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1320"><td class="num" id="LN1320">1320</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOXED (FONT, PANGO_TYPE_FONT_DESCRIPTION, KEY_FONT)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boxed ("font", ((void*)0),<br> ((void*)0), (pango_font_description_get_type ()), G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_FONT,<br> pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark, (<br>gpointer) "font"); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) "font", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1321"><td class="num" id="LN1321">1321</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_BOXED (FOREGROUND_COLOR, GDK_TYPE_RGBA, KEY_FOREGROUND_COLOR)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_boxed ("foreground-color",<br> ((void*)0), ((void*)0), (gdk_rgba_get_type ()), G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_FOREGROUND_COLOR<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) "foreground-color"); g_hash_table_insert (klass-&gt;<br>gsettings_keys, (gpointer) "foreground-color", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1322"><td class="num" id="LN1322">1322</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1323"><td class="num" id="LN1323">1323</td><td class="line"> <span class='comment'>/* 0.0 = normal bg, 1.0 = all black bg, 0.5 = half darkened */</span></td></tr>
+<tr class="codeline" data-linenumber="1324"><td class="num" id="LN1324">1324</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_DOUBLE (BACKGROUND_DARKNESS, 0.0, 1.0, DEFAULT_BACKGROUND_DARKNESS, KEY_BACKGROUND_DARKNESS)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_double ("background-darkness"<br>, ((void*)0), ((void*)0), 0.0, 1.0, (0.5), G_PARAM_READWRITE |<br> (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_BACKGROUND_DARKNESS<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) "background-darkness"); g_hash_table_insert (klass<br>-&gt;gsettings_keys, (gpointer) "background-darkness", pspec)<br>;}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1325"><td class="num" id="LN1325">1325</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1326"><td class="num" id="LN1326">1326</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_ENUM (BACKGROUND_TYPE, TERMINAL_TYPE_BACKGROUND_TYPE, DEFAULT_BACKGROUND_TYPE, KEY_BACKGROUND_TYPE)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum ("background-type", (<br>(void*)0), ((void*)0), (terminal_background_type_get_type ())<br>, (TERMINAL_BACKGROUND_SOLID), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_BACKGROUND_TYPE, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "background-type"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "background-type", pspec<br>);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1327"><td class="num" id="LN1327">1327</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_ENUM (BACKSPACE_BINDING, VTE_TYPE_ERASE_BINDING, DEFAULT_BACKSPACE_BINDING, KEY_BACKSPACE_BINDING)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum ("backspace-binding",<br> ((void*)0), ((void*)0), (vte_erase_binding_get_type ()), (VTE_ERASE_ASCII_DELETE<br>), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_BACKSPACE_BINDING, pspec); g_param_spec_set_qdata (pspec<br>, gsettings_key_quark, (gpointer) "backspace-binding"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "backspace-binding", pspec<br>);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1328"><td class="num" id="LN1328">1328</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_ENUM (CURSOR_BLINK_MODE, VTE_TYPE_CURSOR_BLINK_MODE, DEFAULT_CURSOR_BLINK_MODE, KEY_CURSOR_BLINK_MODE)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum ("cursor-blink-mode",<br> ((void*)0), ((void*)0), (vte_cursor_blink_mode_get_type ()),<br> (VTE_CURSOR_BLINK_SYSTEM), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_CURSOR_BLINK_MODE, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "cursor-blink-mode")<br>; g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "cursor-blink-mode"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1329"><td class="num" id="LN1329">1329</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_ENUM (CURSOR_SHAPE, VTE_TYPE_CURSOR_SHAPE, DEFAULT_CURSOR_SHAPE, KEY_CURSOR_SHAPE)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum ("cursor-shape", ((void<br>*)0), ((void*)0), (vte_cursor_shape_get_type ()), (VTE_CURSOR_SHAPE_BLOCK<br>), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_CURSOR_SHAPE, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) "cursor-shape"); g_hash_table_insert (klass-&gt;<br>gsettings_keys, (gpointer) "cursor-shape", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1330"><td class="num" id="LN1330">1330</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_ENUM (DELETE_BINDING, VTE_TYPE_ERASE_BINDING, DEFAULT_DELETE_BINDING, KEY_DELETE_BINDING)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum ("delete-binding", ((<br>void*)0), ((void*)0), (vte_erase_binding_get_type ()), (VTE_ERASE_DELETE_SEQUENCE<br>), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_DELETE_BINDING, pspec); g_param_spec_set_qdata (pspec,<br> gsettings_key_quark, (gpointer) "delete-binding"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "delete-binding", pspec<br>);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1331"><td class="num" id="LN1331">1331</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_ENUM (EXIT_ACTION, TERMINAL_TYPE_EXIT_ACTION, DEFAULT_EXIT_ACTION, KEY_EXIT_ACTION)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum ("exit-action", ((void<br>*)0), ((void*)0), (terminal_exit_action_get_type ()), (TERMINAL_EXIT_CLOSE<br>), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_EXIT_ACTION, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) "exit-action"); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) "exit-action", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1332"><td class="num" id="LN1332">1332</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_ENUM (SCROLLBAR_POSITION, TERMINAL_TYPE_SCROLLBAR_POSITION, DEFAULT_SCROLLBAR_POSITION, KEY_SCROLLBAR_POSITION)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum ("scrollbar-position"<br>, ((void*)0), ((void*)0), (terminal_scrollbar_position_get_type<br> ()), (TERMINAL_SCROLLBAR_RIGHT), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_SCROLLBAR_POSITION, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "scrollbar-position"<br>); g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "scrollbar-position"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1333"><td class="num" id="LN1333">1333</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_ENUM (TITLE_MODE, TERMINAL_TYPE_TITLE_MODE, DEFAULT_TITLE_MODE, KEY_TITLE_MODE)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_enum ("title-mode", ((void<br>*)0), ((void*)0), (terminal_title_mode_get_type ()), (TERMINAL_TITLE_REPLACE<br>), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_TITLE_MODE, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) "title-mode"); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) "title-mode", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1334"><td class="num" id="LN1334">1334</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1335"><td class="num" id="LN1335">1335</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_INT (DEFAULT_SIZE_COLUMNS, 1, 1024, DEFAULT_DEFAULT_SIZE_COLUMNS, KEY_DEFAULT_SIZE_COLUMNS)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_int ("default-size-columns"<br>, ((void*)0), ((void*)0), 1, 1024, (80), G_PARAM_READWRITE | (<br>G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_DEFAULT_SIZE_COLUMNS<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) "default-size-columns"); g_hash_table_insert (klass<br>-&gt;gsettings_keys, (gpointer) "default-size-columns", pspec<br>);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1336"><td class="num" id="LN1336">1336</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_INT (DEFAULT_SIZE_ROWS, 1, 1024, DEFAULT_DEFAULT_SIZE_ROWS, KEY_DEFAULT_SIZE_ROWS)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_int ("default-size-rows", (<br>(void*)0), ((void*)0), 1, 1024, (24), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_DEFAULT_SIZE_ROWS, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "default-size-rows")<br>; g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "default-size-rows"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1337"><td class="num" id="LN1337">1337</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_INT (SCROLLBACK_LINES, 1, G_MAXINT, DEFAULT_SCROLLBACK_LINES, KEY_SCROLLBACK_LINES)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_int ("scrollback-lines", (<br>(void*)0), ((void*)0), 1, 2147483647, (512), G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_SCROLLBACK_LINES<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) "scrollback-lines"); g_hash_table_insert (klass-&gt;<br>gsettings_keys, (gpointer) "scrollback-lines", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1338"><td class="num" id="LN1338">1338</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1339"><td class="num" id="LN1339">1339</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_OBJECT (BACKGROUND_IMAGE, GDK_TYPE_PIXBUF)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_object ("background-image"<br>, ((void*)0), ((void*)0), (gdk_pixbuf_get_type ()), G_PARAM_READABLE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_BACKGROUND_IMAGE<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1340"><td class="num" id="LN1340">1340</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1341"><td class="num" id="LN1341">1341</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_STRING_CO (NAME, DEFAULT_NAME)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string ("name", ((void*)0)<br>, ((void*)0), (((void*)0)), G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_NAME,<br> pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1342"><td class="num" id="LN1342">1342</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1343"><td class="num" id="LN1343">1343</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_STRING (BACKGROUND_IMAGE_FILE, DEFAULT_BACKGROUND_IMAGE_FILE, KEY_BACKGROUND_IMAGE_FILE)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string ("background-image-file"<br>, ((void*)0), ((void*)0), (""), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_BACKGROUND_IMAGE_FILE, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "background-image");<br> g_hash_table_insert (klass-&gt;gsettings_keys, (gpointer) "background-image"<br>, pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1344"><td class="num" id="LN1344">1344</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_STRING (CUSTOM_COMMAND, DEFAULT_CUSTOM_COMMAND, KEY_CUSTOM_COMMAND)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string ("custom-command", (<br>(void*)0), ((void*)0), (""), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME<br> | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); g_object_class_install_property<br> (object_class, PROP_CUSTOM_COMMAND, pspec); g_param_spec_set_qdata<br> (pspec, gsettings_key_quark, (gpointer) "custom-command"); g_hash_table_insert<br> (klass-&gt;gsettings_keys, (gpointer) "custom-command", pspec<br>);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1345"><td class="num" id="LN1345">1345</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_STRING (TITLE, _(DEFAULT_TITLE), KEY_TITLE)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string ("title", ((void*)0<br>), ((void*)0), gettext ((("Terminal"))), G_PARAM_READWRITE | (<br>G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_TITLE<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) "title"); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) "title", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1346"><td class="num" id="LN1346">1346</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_STRING (VISIBLE_NAME, _(DEFAULT_VISIBLE_NAME), KEY_VISIBLE_NAME)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string ("visible-name", ((<br>void*)0), ((void*)0), gettext ((("Unnamed"))), G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_VISIBLE_NAME<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) "visible-name"); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) "visible-name", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1347"><td class="num" id="LN1347">1347</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_STRING (WORD_CHARS, DEFAULT_WORD_CHARS, KEY_WORD_CHARS)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_string ("word-chars", ((void<br>*)0), ((void*)0), ("-A-Za-z0-9,./?%&amp;#:_=+@~"), G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)); g_object_class_install_property (object_class, PROP_WORD_CHARS<br>, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark,<br> (gpointer) "word-chars"); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) "word-chars", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1348"><td class="num" id="LN1348">1348</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1349"><td class="num" id="LN1349">1349</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_PROPERTY_VALUE_ARRAY_BOXED (PALETTE, <span class='string_literal'>"palette-color"</span>, GDK_TYPE_RGBA, KEY_PALETTE)<span class='macro_popup'>{ GParamSpec *pspec = g_param_spec_value_array ("palette", ((<br>void*)0), ((void*)0), g_param_spec_boxed ("palette-color", ((<br>void*)0), ((void*)0), (gdk_rgba_get_type ()), G_PARAM_READWRITE<br> | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB<br>)), G_PARAM_READWRITE | (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK<br> | G_PARAM_STATIC_BLURB)); g_object_class_install_property (object_class<br>, PROP_PALETTE, pspec); g_param_spec_set_qdata (pspec, gsettings_key_quark<br>, (gpointer) "palette"); g_hash_table_insert (klass-&gt;gsettings_keys<br>, (gpointer) "palette", pspec);}</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1350"><td class="num" id="LN1350">1350</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1351"><td class="num" id="LN1351">1351</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1352"><td class="num" id="LN1352">1352</td><td class="line"><span class='comment'>/* Semi-Public API */</span></td></tr>
+<tr class="codeline" data-linenumber="1353"><td class="num" id="LN1353">1353</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1354"><td class="num" id="LN1354">1354</td><td class="line">TerminalProfile*</td></tr>
+<tr class="codeline" data-linenumber="1355"><td class="num" id="LN1355">1355</td><td class="line">_terminal_profile_new (<span class='keyword'>const</span> <span class='keyword'>char</span> *name)</td></tr>
+<tr class="codeline" data-linenumber="1356"><td class="num" id="LN1356">1356</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1357"><td class="num" id="LN1357">1357</td><td class="line"> <span class='keyword'>return</span> g_object_new (<span class='macro'>TERMINAL_TYPE_PROFILE<span class='macro_popup'>(terminal_profile_get_type ())</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1358"><td class="num" id="LN1358">1358</td><td class="line"> <span class='string_literal'>"name"</span>, name,</td></tr>
+<tr class="codeline" data-linenumber="1359"><td class="num" id="LN1359">1359</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1360"><td class="num" id="LN1360">1360</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1361"><td class="num" id="LN1361">1361</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1362"><td class="num" id="LN1362">1362</td><td class="line"><span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1363"><td class="num" id="LN1363">1363</td><td class="line">_terminal_profile_forget (TerminalProfile *profile)</td></tr>
+<tr class="codeline" data-linenumber="1364"><td class="num" id="LN1364">1364</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1365"><td class="num" id="LN1365">1365</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1366"><td class="num" id="LN1366">1366</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1367"><td class="num" id="LN1367">1367</td><td class="line"> <span class='keyword'>if</span> (!priv-&gt;forgotten)</td></tr>
+<tr class="codeline" data-linenumber="1368"><td class="num" id="LN1368">1368</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1369"><td class="num" id="LN1369">1369</td><td class="line"> priv-&gt;forgotten = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1370"><td class="num" id="LN1370">1370</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1371"><td class="num" id="LN1371">1371</td><td class="line"> g_signal_emit (<span class='macro'>G_OBJECT (profile)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((profile)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, signals[FORGOTTEN], 0);</td></tr>
+<tr class="codeline" data-linenumber="1372"><td class="num" id="LN1372">1372</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1373"><td class="num" id="LN1373">1373</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1374"><td class="num" id="LN1374">1374</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1375"><td class="num" id="LN1375">1375</td><td class="line">gboolean</td></tr>
+<tr class="codeline" data-linenumber="1376"><td class="num" id="LN1376">1376</td><td class="line">_terminal_profile_get_forgotten (TerminalProfile *profile)</td></tr>
+<tr class="codeline" data-linenumber="1377"><td class="num" id="LN1377">1377</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1378"><td class="num" id="LN1378">1378</td><td class="line"> <span class='keyword'>return</span> profile-&gt;priv-&gt;forgotten;</td></tr>
+<tr class="codeline" data-linenumber="1379"><td class="num" id="LN1379">1379</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1380"><td class="num" id="LN1380">1380</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1381"><td class="num" id="LN1381">1381</td><td class="line">TerminalProfile *</td></tr>
+<tr class="codeline" data-linenumber="1382"><td class="num" id="LN1382">1382</td><td class="line">_terminal_profile_clone (TerminalProfile *base_profile,</td></tr>
+<tr class="codeline" data-linenumber="1383"><td class="num" id="LN1383">1383</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *visible_name)</td></tr>
+<tr class="codeline" data-linenumber="1384"><td class="num" id="LN1384">1384</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1385"><td class="num" id="LN1385">1385</td><td class="line"> TerminalApp *app = terminal_app_get ();</td></tr>
+<tr class="codeline" data-linenumber="1386"><td class="num" id="LN1386">1386</td><td class="line"> GObject *base_object = <span class='macro'>G_OBJECT (base_profile)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((base_profile)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1387"><td class="num" id="LN1387">1387</td><td class="line"> TerminalProfilePrivate *new_priv;</td></tr>
+<tr class="codeline" data-linenumber="1388"><td class="num" id="LN1388">1388</td><td class="line"> <span class='keyword'>char</span> profile_name[32];</td></tr>
+<tr class="codeline" data-linenumber="1389"><td class="num" id="LN1389">1389</td><td class="line"> GParameter *params;</td></tr>
+<tr class="codeline" data-linenumber="1390"><td class="num" id="LN1390">1390</td><td class="line"> GParamSpec **pspecs;</td></tr>
+<tr class="codeline" data-linenumber="1391"><td class="num" id="LN1391">1391</td><td class="line"> guint n_pspecs, i, n_params, profile_num;</td></tr>
+<tr class="codeline" data-linenumber="1392"><td class="num" id="LN1392">1392</td><td class="line"> TerminalProfile *new_profile;</td></tr>
+<tr class="codeline" data-linenumber="1393"><td class="num" id="LN1393">1393</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1394"><td class="num" id="LN1394">1394</td><td class="line"> <span class='macro'>g_object_ref (base_profile)<span class='macro_popup'>((__typeof__ (base_profile)) (g_object_ref) (base_profile))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1395"><td class="num" id="LN1395">1395</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1396"><td class="num" id="LN1396">1396</td><td class="line"> profile_num = 0;</td></tr>
+<tr class="codeline" data-linenumber="1397"><td class="num" id="LN1397">1397</td><td class="line"> <span class='keyword'>do</span></td></tr>
+<tr class="codeline" data-linenumber="1398"><td class="num" id="LN1398">1398</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1399"><td class="num" id="LN1399">1399</td><td class="line"> g_snprintf (profile_name, <span class='keyword'>sizeof</span> (profile_name), <span class='string_literal'>"profile%u"</span>, profile_num++);</td></tr>
+<tr class="codeline" data-linenumber="1400"><td class="num" id="LN1400">1400</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1401"><td class="num" id="LN1401">1401</td><td class="line"> <span class='keyword'>while</span> (terminal_app_get_profile_by_name (app, profile_name) != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1402"><td class="num" id="LN1402">1402</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1403"><td class="num" id="LN1403">1403</td><td class="line"> <span class='comment'>/* Now we have an unused profile name */</span></td></tr>
+<tr class="codeline" data-linenumber="1404"><td class="num" id="LN1404">1404</td><td class="line"> pspecs = g_object_class_list_properties (<span class='macro'>G_OBJECT_CLASS (TERMINAL_PROFILE_GET_CLASS (base_profile))<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((((((TerminalProfileClass*) (((GTypeInstance*) ((base_profile<br>)))-&gt;g_class)))))), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, &amp;n_pspecs);</td></tr>
+<tr class="codeline" data-linenumber="1405"><td class="num" id="LN1405">1405</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1406"><td class="num" id="LN1406">1406</td><td class="line"> params = <span class='macro'>g_newa (GParameter, n_pspecs)<span class='macro_popup'>((GParameter*) __builtin_alloca (sizeof (GParameter) * (gsize<br>) (n_pspecs)))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1407"><td class="num" id="LN1407">1407</td><td class="line"> n_params = 0;</td></tr>
+<tr class="codeline" data-linenumber="1408"><td class="num" id="LN1408">1408</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1409"><td class="num" id="LN1409">1409</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; n_pspecs; ++i)</td></tr>
+<tr class="codeline" data-linenumber="1410"><td class="num" id="LN1410">1410</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1411"><td class="num" id="LN1411">1411</td><td class="line"> GParamSpec *pspec = pspecs[i];</td></tr>
+<tr class="codeline" data-linenumber="1412"><td class="num" id="LN1412">1412</td><td class="line"> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="1413"><td class="num" id="LN1413">1413</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1414"><td class="num" id="LN1414">1414</td><td class="line"> <span class='keyword'>if</span> (pspec-&gt;owner_type != <span class='macro'>TERMINAL_TYPE_PROFILE<span class='macro_popup'>(terminal_profile_get_type ())</span></span> ||</td></tr>
+<tr class="codeline" data-linenumber="1415"><td class="num" id="LN1415">1415</td><td class="line"> (pspec-&gt;flags &amp; G_PARAM_WRITABLE) == 0)</td></tr>
+<tr class="codeline" data-linenumber="1416"><td class="num" id="LN1416">1416</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="1417"><td class="num" id="LN1417">1417</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1418"><td class="num" id="LN1418">1418</td><td class="line"> params[n_params].name = pspec-&gt;name;</td></tr>
+<tr class="codeline" data-linenumber="1419"><td class="num" id="LN1419">1419</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1420"><td class="num" id="LN1420">1420</td><td class="line"> value = &amp;params[n_params].value;</td></tr>
+<tr class="codeline" data-linenumber="1421"><td class="num" id="LN1421">1421</td><td class="line"> <span class='macro'>G_VALUE_TYPE (value)<span class='macro_popup'>(((GValue*) (value))-&gt;g_type)</span></span> = 0;</td></tr>
+<tr class="codeline" data-linenumber="1422"><td class="num" id="LN1422">1422</td><td class="line"> g_value_init (value, <span class='macro'>G_PARAM_SPEC_VALUE_TYPE (pspec)<span class='macro_popup'>(((((GParamSpec*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((pspec)), (((GType) ((19) &lt;&lt; (2))))))))-&gt;value_type<br>)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1423"><td class="num" id="LN1423">1423</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1424"><td class="num" id="LN1424">1424</td><td class="line"> <span class='keyword'>if</span> (pspec-&gt;name == <span class='macro'>I_(TERMINAL_PROFILE_NAME)<span class='macro_popup'>g_intern_static_string ("name")</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1425"><td class="num" id="LN1425">1425</td><td class="line"> g_value_set_static_string (value, profile_name);</td></tr>
+<tr class="codeline" data-linenumber="1426"><td class="num" id="LN1426">1426</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (pspec-&gt;name == <span class='macro'>I_(TERMINAL_PROFILE_VISIBLE_NAME)<span class='macro_popup'>g_intern_static_string ("visible-name")</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1427"><td class="num" id="LN1427">1427</td><td class="line"> g_value_set_static_string (value, visible_name);</td></tr>
+<tr class="codeline" data-linenumber="1428"><td class="num" id="LN1428">1428</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="1429"><td class="num" id="LN1429">1429</td><td class="line"> g_object_get_property (base_object, pspec-&gt;name, value);</td></tr>
+<tr class="codeline" data-linenumber="1430"><td class="num" id="LN1430">1430</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1431"><td class="num" id="LN1431">1431</td><td class="line"> ++n_params;</td></tr>
+<tr class="codeline" data-linenumber="1432"><td class="num" id="LN1432">1432</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1433"><td class="num" id="LN1433">1433</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1434"><td class="num" id="LN1434">1434</td><td class="line"> new_profile = g_object_newv (<span class='macro'>TERMINAL_TYPE_PROFILE<span class='macro_popup'>(terminal_profile_get_type ())</span></span>, n_params, params);</td></tr>
+<tr class="codeline" data-linenumber="1435"><td class="num" id="LN1435">1435</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1436"><td class="num" id="LN1436">1436</td><td class="line"> g_object_unref (base_profile);</td></tr>
+<tr class="codeline" data-linenumber="1437"><td class="num" id="LN1437">1437</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1438"><td class="num" id="LN1438">1438</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; n_params; ++i)</td></tr>
+<tr class="codeline" data-linenumber="1439"><td class="num" id="LN1439">1439</td><td class="line"> g_value_unset (&amp;params[i].value);</td></tr>
+<tr class="codeline" data-linenumber="1440"><td class="num" id="LN1440">1440</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1441"><td class="num" id="LN1441">1441</td><td class="line"> <span class='comment'>/* Flush the new profile to GSettings */</span></td></tr>
+<tr class="codeline" data-linenumber="1442"><td class="num" id="LN1442">1442</td><td class="line"> new_priv = new_profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1443"><td class="num" id="LN1443">1443</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1444"><td class="num" id="LN1444">1444</td><td class="line"> g_slist_free (new_priv-&gt;dirty_pspecs);</td></tr>
+<tr class="codeline" data-linenumber="1445"><td class="num" id="LN1445">1445</td><td class="line"> new_priv-&gt;dirty_pspecs = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1446"><td class="num" id="LN1446">1446</td><td class="line"> <span class='keyword'>if</span> (new_priv-&gt;save_idle_id != 0)</td></tr>
+<tr class="codeline" data-linenumber="1447"><td class="num" id="LN1447">1447</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1448"><td class="num" id="LN1448">1448</td><td class="line"> g_source_remove (new_priv-&gt;save_idle_id);</td></tr>
+<tr class="codeline" data-linenumber="1449"><td class="num" id="LN1449">1449</td><td class="line"> new_priv-&gt;save_idle_id = 0;</td></tr>
+<tr class="codeline" data-linenumber="1450"><td class="num" id="LN1450">1450</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1451"><td class="num" id="LN1451">1451</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1452"><td class="num" id="LN1452">1452</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; n_pspecs; ++i)</td></tr>
+<tr class="codeline" data-linenumber="1453"><td class="num" id="LN1453">1453</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1454"><td class="num" id="LN1454">1454</td><td class="line"> GParamSpec *pspec = pspecs[i];</td></tr>
+<tr class="codeline" data-linenumber="1455"><td class="num" id="LN1455">1455</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1456"><td class="num" id="LN1456">1456</td><td class="line"> <span class='keyword'>if</span> (pspec-&gt;owner_type != <span class='macro'>TERMINAL_TYPE_PROFILE<span class='macro_popup'>(terminal_profile_get_type ())</span></span> ||</td></tr>
+<tr class="codeline" data-linenumber="1457"><td class="num" id="LN1457">1457</td><td class="line"> (pspec-&gt;flags &amp; G_PARAM_WRITABLE) == 0)</td></tr>
+<tr class="codeline" data-linenumber="1458"><td class="num" id="LN1458">1458</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="1459"><td class="num" id="LN1459">1459</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1460"><td class="num" id="LN1460">1460</td><td class="line"> new_priv-&gt;dirty_pspecs = g_slist_prepend (new_priv-&gt;dirty_pspecs, pspec);</td></tr>
+<tr class="codeline" data-linenumber="1461"><td class="num" id="LN1461">1461</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1462"><td class="num" id="LN1462">1462</td><td class="line"> g_free (pspecs);</td></tr>
+<tr class="codeline" data-linenumber="1463"><td class="num" id="LN1463">1463</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1464"><td class="num" id="LN1464">1464</td><td class="line"> terminal_profile_save (new_profile);</td></tr>
+<tr class="codeline" data-linenumber="1465"><td class="num" id="LN1465">1465</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1466"><td class="num" id="LN1466">1466</td><td class="line"> <span class='keyword'>return</span> new_profile;</td></tr>
+<tr class="codeline" data-linenumber="1467"><td class="num" id="LN1467">1467</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1468"><td class="num" id="LN1468">1468</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1469"><td class="num" id="LN1469">1469</td><td class="line"><span class='comment'>/* Public API */</span></td></tr>
+<tr class="codeline" data-linenumber="1470"><td class="num" id="LN1470">1470</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1471"><td class="num" id="LN1471">1471</td><td class="line">gboolean</td></tr>
+<tr class="codeline" data-linenumber="1472"><td class="num" id="LN1472">1472</td><td class="line">terminal_profile_get_property_boolean (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1473"><td class="num" id="LN1473">1473</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="1474"><td class="num" id="LN1474">1474</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1475"><td class="num" id="LN1475">1475</td><td class="line"> <span class='keyword'>const</span> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="1476"><td class="num" id="LN1476">1476</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1477"><td class="num" id="LN1477">1477</td><td class="line"> value = get_prop_value_from_prop_name (profile, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="1478"><td class="num" id="LN1478">1478</td><td class="line"> <span class='macro'>g_return_val_if_fail (value != NULL &amp;&amp; G_VALUE_HOLDS_BOOLEAN (value), FALSE)<span class='macro_popup'>do { if ((value != ((void*)0) &amp;&amp; (((__extension__ ({ const<br> GValue *__val = (const GValue*) ((value)); GType __t = (((GType<br>) ((5) &lt;&lt; (2)))); gboolean __r; if (!__val) __r = (0); else<br> if (__val-&gt;g_type == __t) __r = (!(0)); else __r = g_type_check_value_holds<br> (__val, __t); __r; })))))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "value != NULL &amp;&amp; G_VALUE_HOLDS_BOOLEAN (value)"<br>); return ((0)); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1479"><td class="num" id="LN1479">1479</td><td class="line"> <span class='keyword'>if</span> (!value || !<span class='macro'>G_VALUE_HOLDS_BOOLEAN (value)<span class='macro_popup'>(((__extension__ ({ const GValue *__val = (const GValue*) ((value<br>)); GType __t = (((GType) ((5) &lt;&lt; (2)))); gboolean __r;<br> if (!__val) __r = (0); else if (__val-&gt;g_type == __t) __r<br> = (!(0)); else __r = g_type_check_value_holds (__val, __t); __r<br>; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1480"><td class="num" id="LN1480">1480</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1481"><td class="num" id="LN1481">1481</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1482"><td class="num" id="LN1482">1482</td><td class="line"> <span class='keyword'>return</span> g_value_get_boolean (value);</td></tr>
+<tr class="codeline" data-linenumber="1483"><td class="num" id="LN1483">1483</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1484"><td class="num" id="LN1484">1484</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1485"><td class="num" id="LN1485">1485</td><td class="line">gconstpointer</td></tr>
+<tr class="codeline" data-linenumber="1486"><td class="num" id="LN1486">1486</td><td class="line">terminal_profile_get_property_boxed (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1487"><td class="num" id="LN1487">1487</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="1488"><td class="num" id="LN1488">1488</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1489"><td class="num" id="LN1489">1489</td><td class="line"> <span class='keyword'>const</span> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="1490"><td class="num" id="LN1490">1490</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1491"><td class="num" id="LN1491">1491</td><td class="line"> value = get_prop_value_from_prop_name (profile, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="1492"><td class="num" id="LN1492">1492</td><td class="line"> <span class='macro'>g_return_val_if_fail (value != NULL &amp;&amp; G_VALUE_HOLDS_BOXED (value), NULL)<span class='macro_popup'>do { if ((value != ((void*)0) &amp;&amp; (((__extension__ ({ const<br> GValue *__val = (const GValue*) ((value)); GType __t = (((GType<br>) ((18) &lt;&lt; (2)))); gboolean __r; if (!__val) __r = (0);<br> else if (__val-&gt;g_type == __t) __r = (!(0)); else __r = g_type_check_value_holds<br> (__val, __t); __r; })))))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "value != NULL &amp;&amp; G_VALUE_HOLDS_BOXED (value)"<br>); return (((void*)0)); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1493"><td class="num" id="LN1493">1493</td><td class="line"> <span class='keyword'>if</span> (!value || !<span class='macro'>G_VALUE_HOLDS_BOXED (value)<span class='macro_popup'>(((__extension__ ({ const GValue *__val = (const GValue*) ((value<br>)); GType __t = (((GType) ((18) &lt;&lt; (2)))); gboolean __r<br>; if (!__val) __r = (0); else if (__val-&gt;g_type == __t) __r<br> = (!(0)); else __r = g_type_check_value_holds (__val, __t); __r<br>; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1494"><td class="num" id="LN1494">1494</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1495"><td class="num" id="LN1495">1495</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1496"><td class="num" id="LN1496">1496</td><td class="line"> <span class='keyword'>return</span> g_value_get_boxed (value);</td></tr>
+<tr class="codeline" data-linenumber="1497"><td class="num" id="LN1497">1497</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1498"><td class="num" id="LN1498">1498</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1499"><td class="num" id="LN1499">1499</td><td class="line"><span class='keyword'>double</span></td></tr>
+<tr class="codeline" data-linenumber="1500"><td class="num" id="LN1500">1500</td><td class="line">terminal_profile_get_property_double (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1501"><td class="num" id="LN1501">1501</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="1502"><td class="num" id="LN1502">1502</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1503"><td class="num" id="LN1503">1503</td><td class="line"> <span class='keyword'>const</span> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="1504"><td class="num" id="LN1504">1504</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1505"><td class="num" id="LN1505">1505</td><td class="line"> value = get_prop_value_from_prop_name (profile, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="1506"><td class="num" id="LN1506">1506</td><td class="line"> <span class='macro'>g_return_val_if_fail (value != NULL &amp;&amp; G_VALUE_HOLDS_DOUBLE (value), 0.0)<span class='macro_popup'>do { if ((value != ((void*)0) &amp;&amp; (((__extension__ ({ const<br> GValue *__val = (const GValue*) ((value)); GType __t = (((GType<br>) ((15) &lt;&lt; (2)))); gboolean __r; if (!__val) __r = (0);<br> else if (__val-&gt;g_type == __t) __r = (!(0)); else __r = g_type_check_value_holds<br> (__val, __t); __r; })))))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "value != NULL &amp;&amp; G_VALUE_HOLDS_DOUBLE (value)"<br>); return (0.0); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1507"><td class="num" id="LN1507">1507</td><td class="line"> <span class='keyword'>if</span> (!value || !<span class='macro'>G_VALUE_HOLDS_DOUBLE (value)<span class='macro_popup'>(((__extension__ ({ const GValue *__val = (const GValue*) ((value<br>)); GType __t = (((GType) ((15) &lt;&lt; (2)))); gboolean __r<br>; if (!__val) __r = (0); else if (__val-&gt;g_type == __t) __r<br> = (!(0)); else __r = g_type_check_value_holds (__val, __t); __r<br>; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1508"><td class="num" id="LN1508">1508</td><td class="line"> <span class='keyword'>return</span> 0.0;</td></tr>
+<tr class="codeline" data-linenumber="1509"><td class="num" id="LN1509">1509</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1510"><td class="num" id="LN1510">1510</td><td class="line"> <span class='keyword'>return</span> g_value_get_double (value);</td></tr>
+<tr class="codeline" data-linenumber="1511"><td class="num" id="LN1511">1511</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1512"><td class="num" id="LN1512">1512</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1513"><td class="num" id="LN1513">1513</td><td class="line"><span class='keyword'>int</span></td></tr>
+<tr class="codeline" data-linenumber="1514"><td class="num" id="LN1514">1514</td><td class="line">terminal_profile_get_property_enum (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1515"><td class="num" id="LN1515">1515</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="1516"><td class="num" id="LN1516">1516</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1517"><td class="num" id="LN1517">1517</td><td class="line"> <span class='keyword'>const</span> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="1518"><td class="num" id="LN1518">1518</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1519"><td class="num" id="LN1519">1519</td><td class="line"> value = get_prop_value_from_prop_name (profile, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="1520"><td class="num" id="LN1520">1520</td><td class="line"> <span class='macro'>g_return_val_if_fail (value != NULL &amp;&amp; G_VALUE_HOLDS_ENUM (value), 0)<span class='macro_popup'>do { if ((value != ((void*)0) &amp;&amp; (((__extension__ ({ const<br> GValue *__val = (const GValue*) ((value)); GType __t = (((GType<br>) ((12) &lt;&lt; (2)))); gboolean __r; if (!__val) __r = (0);<br> else if (__val-&gt;g_type == __t) __r = (!(0)); else __r = g_type_check_value_holds<br> (__val, __t); __r; })))))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "value != NULL &amp;&amp; G_VALUE_HOLDS_ENUM (value)"<br>); return (0); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1521"><td class="num" id="LN1521">1521</td><td class="line"> <span class='keyword'>if</span> (!value || !<span class='macro'>G_VALUE_HOLDS_ENUM (value)<span class='macro_popup'>(((__extension__ ({ const GValue *__val = (const GValue*) ((value<br>)); GType __t = (((GType) ((12) &lt;&lt; (2)))); gboolean __r<br>; if (!__val) __r = (0); else if (__val-&gt;g_type == __t) __r<br> = (!(0)); else __r = g_type_check_value_holds (__val, __t); __r<br>; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1522"><td class="num" id="LN1522">1522</td><td class="line"> <span class='keyword'>return</span> 0;</td></tr>
+<tr class="codeline" data-linenumber="1523"><td class="num" id="LN1523">1523</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1524"><td class="num" id="LN1524">1524</td><td class="line"> <span class='keyword'>return</span> g_value_get_enum (value);</td></tr>
+<tr class="codeline" data-linenumber="1525"><td class="num" id="LN1525">1525</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1526"><td class="num" id="LN1526">1526</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1527"><td class="num" id="LN1527">1527</td><td class="line"><span class='keyword'>int</span></td></tr>
+<tr class="codeline" data-linenumber="1528"><td class="num" id="LN1528">1528</td><td class="line">terminal_profile_get_property_int (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1529"><td class="num" id="LN1529">1529</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="1530"><td class="num" id="LN1530">1530</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1531"><td class="num" id="LN1531">1531</td><td class="line"> <span class='keyword'>const</span> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="1532"><td class="num" id="LN1532">1532</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1533"><td class="num" id="LN1533">1533</td><td class="line"> value = get_prop_value_from_prop_name (profile, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="1534"><td class="num" id="LN1534">1534</td><td class="line"> <span class='macro'>g_return_val_if_fail (value != NULL &amp;&amp; G_VALUE_HOLDS_INT (value), 0)<span class='macro_popup'>do { if ((value != ((void*)0) &amp;&amp; (((__extension__ ({ const<br> GValue *__val = (const GValue*) ((value)); GType __t = (((GType<br>) ((6) &lt;&lt; (2)))); gboolean __r; if (!__val) __r = (0); else<br> if (__val-&gt;g_type == __t) __r = (!(0)); else __r = g_type_check_value_holds<br> (__val, __t); __r; })))))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "value != NULL &amp;&amp; G_VALUE_HOLDS_INT (value)"<br>); return (0); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1535"><td class="num" id="LN1535">1535</td><td class="line"> <span class='keyword'>if</span> (!value || !<span class='macro'>G_VALUE_HOLDS_INT (value)<span class='macro_popup'>(((__extension__ ({ const GValue *__val = (const GValue*) ((value<br>)); GType __t = (((GType) ((6) &lt;&lt; (2)))); gboolean __r;<br> if (!__val) __r = (0); else if (__val-&gt;g_type == __t) __r<br> = (!(0)); else __r = g_type_check_value_holds (__val, __t); __r<br>; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1536"><td class="num" id="LN1536">1536</td><td class="line"> <span class='keyword'>return</span> 0;</td></tr>
+<tr class="codeline" data-linenumber="1537"><td class="num" id="LN1537">1537</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1538"><td class="num" id="LN1538">1538</td><td class="line"> <span class='keyword'>return</span> g_value_get_int (value);</td></tr>
+<tr class="codeline" data-linenumber="1539"><td class="num" id="LN1539">1539</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1540"><td class="num" id="LN1540">1540</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1541"><td class="num" id="LN1541">1541</td><td class="line">gpointer</td></tr>
+<tr class="codeline" data-linenumber="1542"><td class="num" id="LN1542">1542</td><td class="line">terminal_profile_get_property_object (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1543"><td class="num" id="LN1543">1543</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="1544"><td class="num" id="LN1544">1544</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1545"><td class="num" id="LN1545">1545</td><td class="line"> <span class='keyword'>const</span> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="1546"><td class="num" id="LN1546">1546</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1547"><td class="num" id="LN1547">1547</td><td class="line"> value = get_prop_value_from_prop_name (profile, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="1548"><td class="num" id="LN1548">1548</td><td class="line"> <span class='macro'>g_return_val_if_fail (value != NULL &amp;&amp; G_VALUE_HOLDS_OBJECT (value), NULL)<span class='macro_popup'>do { if ((value != ((void*)0) &amp;&amp; (((__extension__ ({ const<br> GValue *__val = (const GValue*) ((value)); GType __t = (((GType<br>) ((20) &lt;&lt; (2)))); gboolean __r; if (!__val) __r = (0);<br> else if (__val-&gt;g_type == __t) __r = (!(0)); else __r = g_type_check_value_holds<br> (__val, __t); __r; })))))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "value != NULL &amp;&amp; G_VALUE_HOLDS_OBJECT (value)"<br>); return (((void*)0)); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1549"><td class="num" id="LN1549">1549</td><td class="line"> <span class='keyword'>if</span> (!value || !<span class='macro'>G_VALUE_HOLDS_OBJECT (value)<span class='macro_popup'>(((__extension__ ({ const GValue *__val = (const GValue*) ((value<br>)); GType __t = (((GType) ((20) &lt;&lt; (2)))); gboolean __r<br>; if (!__val) __r = (0); else if (__val-&gt;g_type == __t) __r<br> = (!(0)); else __r = g_type_check_value_holds (__val, __t); __r<br>; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1550"><td class="num" id="LN1550">1550</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1551"><td class="num" id="LN1551">1551</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1552"><td class="num" id="LN1552">1552</td><td class="line"> <span class='keyword'>return</span> g_value_get_object (value);</td></tr>
+<tr class="codeline" data-linenumber="1553"><td class="num" id="LN1553">1553</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1554"><td class="num" id="LN1554">1554</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1555"><td class="num" id="LN1555">1555</td><td class="line"><span class='keyword'>const</span> <span class='keyword'>char</span>*</td></tr>
+<tr class="codeline" data-linenumber="1556"><td class="num" id="LN1556">1556</td><td class="line">terminal_profile_get_property_string (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1557"><td class="num" id="LN1557">1557</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="1558"><td class="num" id="LN1558">1558</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1559"><td class="num" id="LN1559">1559</td><td class="line"> <span class='keyword'>const</span> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="1560"><td class="num" id="LN1560">1560</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1561"><td class="num" id="LN1561">1561</td><td class="line"> value = get_prop_value_from_prop_name (profile, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="1562"><td class="num" id="LN1562">1562</td><td class="line"> <span class='macro'>g_return_val_if_fail (value != NULL &amp;&amp; G_VALUE_HOLDS_STRING (value), NULL)<span class='macro_popup'>do { if ((value != ((void*)0) &amp;&amp; (((__extension__ ({ const<br> GValue *__val = (const GValue*) ((value)); GType __t = (((GType<br>) ((16) &lt;&lt; (2)))); gboolean __r; if (!__val) __r = (0);<br> else if (__val-&gt;g_type == __t) __r = (!(0)); else __r = g_type_check_value_holds<br> (__val, __t); __r; })))))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "value != NULL &amp;&amp; G_VALUE_HOLDS_STRING (value)"<br>); return (((void*)0)); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1563"><td class="num" id="LN1563">1563</td><td class="line"> <span class='keyword'>if</span> (!value || !<span class='macro'>G_VALUE_HOLDS_STRING (value)<span class='macro_popup'>(((__extension__ ({ const GValue *__val = (const GValue*) ((value<br>)); GType __t = (((GType) ((16) &lt;&lt; (2)))); gboolean __r<br>; if (!__val) __r = (0); else if (__val-&gt;g_type == __t) __r<br> = (!(0)); else __r = g_type_check_value_holds (__val, __t); __r<br>; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1564"><td class="num" id="LN1564">1564</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1565"><td class="num" id="LN1565">1565</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1566"><td class="num" id="LN1566">1566</td><td class="line"> <span class='keyword'>return</span> g_value_get_string (value);</td></tr>
+<tr class="codeline" data-linenumber="1567"><td class="num" id="LN1567">1567</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1568"><td class="num" id="LN1568">1568</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1569"><td class="num" id="LN1569">1569</td><td class="line">gboolean</td></tr>
+<tr class="codeline" data-linenumber="1570"><td class="num" id="LN1570">1570</td><td class="line">terminal_profile_property_locked (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1571"><td class="num" id="LN1571">1571</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="1572"><td class="num" id="LN1572">1572</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1573"><td class="num" id="LN1573">1573</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1574"><td class="num" id="LN1574">1574</td><td class="line"> GParamSpec *pspec;</td></tr>
+<tr class="codeline" data-linenumber="1575"><td class="num" id="LN1575">1575</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1576"><td class="num" id="LN1576">1576</td><td class="line"> pspec = get_pspec_from_name (profile, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="1577"><td class="num" id="LN1577">1577</td><td class="line"> <span class='macro'>g_return_val_if_fail (pspec != NULL, FALSE)<span class='macro_popup'>do { if ((pspec != ((void*)0))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "pspec != NULL");<br> return ((0)); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1578"><td class="num" id="LN1578">1578</td><td class="line"> <span class='keyword'>if</span> (!pspec)</td></tr>
+<tr class="codeline" data-linenumber="1579"><td class="num" id="LN1579">1579</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1580"><td class="num" id="LN1580">1580</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1581"><td class="num" id="LN1581">1581</td><td class="line"> <span class='keyword'>return</span> priv-&gt;locked[pspec-&gt;param_id];</td></tr>
+<tr class="codeline" data-linenumber="1582"><td class="num" id="LN1582">1582</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1583"><td class="num" id="LN1583">1583</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1584"><td class="num" id="LN1584">1584</td><td class="line"><span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1585"><td class="num" id="LN1585">1585</td><td class="line">terminal_profile_reset_property (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1586"><td class="num" id="LN1586">1586</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name)</td></tr>
+<tr class="codeline" data-linenumber="1587"><td class="num" id="LN1587">1587</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1588"><td class="num" id="LN1588">1588</td><td class="line"> GParamSpec *pspec;</td></tr>
+<tr class="codeline" data-linenumber="1589"><td class="num" id="LN1589">1589</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1590"><td class="num" id="LN1590">1590</td><td class="line"> pspec = get_pspec_from_name (profile, prop_name);</td></tr>
+<tr class="codeline" data-linenumber="1591"><td class="num" id="LN1591">1591</td><td class="line"> <span class='macro'>g_return_if_fail (pspec != NULL)<span class='macro_popup'>do { if ((pspec != ((void*)0))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "pspec != NULL");<br> return; } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1592"><td class="num" id="LN1592">1592</td><td class="line"> <span class='keyword'>if</span> (!pspec ||</td></tr>
+<tr class="codeline" data-linenumber="1593"><td class="num" id="LN1593">1593</td><td class="line"> (pspec-&gt;flags &amp; G_PARAM_WRITABLE) == 0)</td></tr>
+<tr class="codeline" data-linenumber="1594"><td class="num" id="LN1594">1594</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1595"><td class="num" id="LN1595">1595</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1596"><td class="num" id="LN1596">1596</td><td class="line"> terminal_profile_reset_property_internal (profile, pspec, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1597"><td class="num" id="LN1597">1597</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1598"><td class="num" id="LN1598">1598</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1599"><td class="num" id="LN1599">1599</td><td class="line">gboolean</td></tr>
+<tr class="codeline" data-linenumber="1600"><td class="num" id="LN1600">1600</td><td class="line">terminal_profile_get_palette (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1601"><td class="num" id="LN1601">1601</td><td class="line"> GdkRGBA *colors,</td></tr>
+<tr class="codeline" data-linenumber="1602"><td class="num" id="LN1602">1602</td><td class="line"> guint *n_colors)</td></tr>
+<tr class="codeline" data-linenumber="1603"><td class="num" id="LN1603">1603</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1604"><td class="num" id="LN1604">1604</td><td class="line"> TerminalProfilePrivate *priv;</td></tr>
+<tr class="codeline" data-linenumber="1605"><td class="num" id="LN1605">1605</td><td class="line"> GValueArray *array;</td></tr>
+<tr class="codeline" data-linenumber="1606"><td class="num" id="LN1606">1606</td><td class="line"> guint i, n;</td></tr>
+<tr class="codeline" data-linenumber="1607"><td class="num" id="LN1607">1607</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1608"><td class="num" id="LN1608">1608</td><td class="line"> <span class='macro'>g_return_val_if_fail (TERMINAL_IS_PROFILE (profile), FALSE)<span class='macro_popup'>do { if (((((__extension__ ({ GTypeInstance *__inst = (GTypeInstance<br>*) ((profile)); GType __t = ((terminal_profile_get_type ()));<br> gboolean __r; if (!__inst) __r = (0); else if (__inst-&gt;g_class<br> &amp;&amp; __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)<br>); else __r = g_type_check_instance_is_a (__inst, __t); __r; }<br>)))))) { } else { g_return_if_fail_warning (((gchar*) 0), ((const<br> char*) (__func__)), "TERMINAL_IS_PROFILE (profile)"); return<br> ((0)); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1609"><td class="num" id="LN1609">1609</td><td class="line"> <span class='macro'>g_return_val_if_fail (colors != NULL &amp;&amp; n_colors != NULL, FALSE)<span class='macro_popup'>do { if ((colors != ((void*)0) &amp;&amp; n_colors != ((void*<br>)0))) { } else { g_return_if_fail_warning (((gchar*) 0), ((const<br> char*) (__func__)), "colors != NULL &amp;&amp; n_colors != NULL"<br>); return ((0)); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1610"><td class="num" id="LN1610">1610</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1611"><td class="num" id="LN1611">1611</td><td class="line"> priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1612"><td class="num" id="LN1612">1612</td><td class="line"> array = g_value_get_boxed (g_value_array_get_nth (priv-&gt;properties, PROP_PALETTE));</td></tr>
+<tr class="codeline" data-linenumber="1613"><td class="num" id="LN1613">1613</td><td class="line"> <span class='keyword'>if</span> (!array)</td></tr>
+<tr class="codeline" data-linenumber="1614"><td class="num" id="LN1614">1614</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1615"><td class="num" id="LN1615">1615</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1616"><td class="num" id="LN1616">1616</td><td class="line"> n = <span class='macro'>MIN (array-&gt;n_values, *n_colors)<span class='macro_popup'>(((array-&gt;n_values) &lt; (*n_colors)) ? (array-&gt;n_values<br>) : (*n_colors))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1617"><td class="num" id="LN1617">1617</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; n; ++i)</td></tr>
+<tr class="codeline" data-linenumber="1618"><td class="num" id="LN1618">1618</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1619"><td class="num" id="LN1619">1619</td><td class="line"> GdkRGBA *color = g_value_get_boxed (g_value_array_get_nth (array, i));</td></tr>
+<tr class="codeline" data-linenumber="1620"><td class="num" id="LN1620">1620</td><td class="line"> <span class='keyword'>if</span> (!color)</td></tr>
+<tr class="codeline" data-linenumber="1621"><td class="num" id="LN1621">1621</td><td class="line"> <span class='keyword'>continue</span>; <span class='comment'>/* shouldn't happen!! */</span></td></tr>
+<tr class="codeline" data-linenumber="1622"><td class="num" id="LN1622">1622</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1623"><td class="num" id="LN1623">1623</td><td class="line"> colors[i] = *color;</td></tr>
+<tr class="codeline" data-linenumber="1624"><td class="num" id="LN1624">1624</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1625"><td class="num" id="LN1625">1625</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1626"><td class="num" id="LN1626">1626</td><td class="line"> *n_colors = n;</td></tr>
+<tr class="codeline" data-linenumber="1627"><td class="num" id="LN1627">1627</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1628"><td class="num" id="LN1628">1628</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1629"><td class="num" id="LN1629">1629</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1630"><td class="num" id="LN1630">1630</td><td class="line">gboolean</td></tr>
+<tr class="codeline" data-linenumber="1631"><td class="num" id="LN1631">1631</td><td class="line">terminal_profile_get_palette_is_builtin (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1632"><td class="num" id="LN1632">1632</td><td class="line"> guint *n)</td></tr>
+<tr class="codeline" data-linenumber="1633"><td class="num" id="LN1633">1633</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1634"><td class="num" id="LN1634">1634</td><td class="line"> GdkRGBA colors[<span class='macro'>TERMINAL_PALETTE_SIZE<span class='macro_popup'>16</span></span>];</td></tr>
+<tr class="codeline" data-linenumber="1635"><td class="num" id="LN1635">1635</td><td class="line"> guint n_colors;</td></tr>
+<tr class="codeline" data-linenumber="1636"><td class="num" id="LN1636">1636</td><td class="line"> guint i;</td></tr>
+<tr class="codeline" data-linenumber="1637"><td class="num" id="LN1637">1637</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1638"><td class="num" id="LN1638">1638</td><td class="line"> n_colors = <span class='macro'>G_N_ELEMENTS (colors)<span class='macro_popup'>(sizeof (colors) / sizeof ((colors)[0]))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1639"><td class="num" id="LN1639">1639</td><td class="line"> <span class='keyword'>if</span> (!terminal_profile_get_palette (profile, colors, &amp;n_colors) ||</td></tr>
+<tr class="codeline" data-linenumber="1640"><td class="num" id="LN1640">1640</td><td class="line"> n_colors != <span class='macro'>TERMINAL_PALETTE_SIZE<span class='macro_popup'>16</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1641"><td class="num" id="LN1641">1641</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1642"><td class="num" id="LN1642">1642</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1643"><td class="num" id="LN1643">1643</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; <span class='macro'>TERMINAL_PALETTE_N_BUILTINS<span class='macro_popup'>5</span></span>; ++i)</td></tr>
+<tr class="codeline" data-linenumber="1644"><td class="num" id="LN1644">1644</td><td class="line"> <span class='keyword'>if</span> (palette_cmp (colors, terminal_palettes[i]))</td></tr>
+<tr class="codeline" data-linenumber="1645"><td class="num" id="LN1645">1645</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1646"><td class="num" id="LN1646">1646</td><td class="line"> *n = i;</td></tr>
+<tr class="codeline" data-linenumber="1647"><td class="num" id="LN1647">1647</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1648"><td class="num" id="LN1648">1648</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1649"><td class="num" id="LN1649">1649</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1650"><td class="num" id="LN1650">1650</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1651"><td class="num" id="LN1651">1651</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1652"><td class="num" id="LN1652">1652</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1653"><td class="num" id="LN1653">1653</td><td class="line"><span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1654"><td class="num" id="LN1654">1654</td><td class="line">terminal_profile_set_palette_builtin (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1655"><td class="num" id="LN1655">1655</td><td class="line"> guint n)</td></tr>
+<tr class="codeline" data-linenumber="1656"><td class="num" id="LN1656">1656</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1657"><td class="num" id="LN1657">1657</td><td class="line"> GValue value = { 0, };</td></tr>
+<tr class="codeline" data-linenumber="1658"><td class="num" id="LN1658">1658</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1659"><td class="num" id="LN1659">1659</td><td class="line"> <span class='macro'>g_return_if_fail (n &lt; TERMINAL_PALETTE_N_BUILTINS)<span class='macro_popup'>do { if ((n &lt; 5)) { } else { g_return_if_fail_warning (((gchar<br>*) 0), ((const char*) (__func__)), "n &lt; TERMINAL_PALETTE_N_BUILTINS"<br>); return; } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1660"><td class="num" id="LN1660">1660</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1661"><td class="num" id="LN1661">1661</td><td class="line"> g_value_init (&amp;value, <span class='macro'>G_TYPE_VALUE_ARRAY<span class='macro_popup'>(g_value_array_get_type ()) GCC warning "Deprecated pre-processor symbol: replace with \"(g_array_get_type ())\""<br>
+</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1662"><td class="num" id="LN1662">1662</td><td class="line"> set_value_from_palette (&amp;value, terminal_palettes[n], <span class='macro'>TERMINAL_PALETTE_SIZE<span class='macro_popup'>16</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1663"><td class="num" id="LN1663">1663</td><td class="line"> g_object_set_property (<span class='macro'>G_OBJECT (profile)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((profile)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, <span class='macro'>TERMINAL_PROFILE_PALETTE<span class='macro_popup'>"palette"</span></span>, &amp;value);</td></tr>
+<tr class="codeline" data-linenumber="1664"><td class="num" id="LN1664">1664</td><td class="line"> g_value_unset (&amp;value);</td></tr>
+<tr class="codeline" data-linenumber="1665"><td class="num" id="LN1665">1665</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1666"><td class="num" id="LN1666">1666</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1667"><td class="num" id="LN1667">1667</td><td class="line">gboolean</td></tr>
+<tr class="codeline" data-linenumber="1668"><td class="num" id="LN1668">1668</td><td class="line">terminal_profile_modify_palette_entry (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="1669"><td class="num" id="LN1669">1669</td><td class="line"> guint i,</td></tr>
+<tr class="codeline" data-linenumber="1670"><td class="num" id="LN1670">1670</td><td class="line"> <span class='keyword'>const</span> GdkRGBA *color)</td></tr>
+<tr class="codeline" data-linenumber="1671"><td class="num" id="LN1671">1671</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1672"><td class="num" id="LN1672">1672</td><td class="line"> TerminalProfilePrivate *priv = profile-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1673"><td class="num" id="LN1673">1673</td><td class="line"> GValueArray *array;</td></tr>
+<tr class="codeline" data-linenumber="1674"><td class="num" id="LN1674">1674</td><td class="line"> GValue *value;</td></tr>
+<tr class="codeline" data-linenumber="1675"><td class="num" id="LN1675">1675</td><td class="line"> GdkRGBA *old_color;</td></tr>
+<tr class="codeline" data-linenumber="1676"><td class="num" id="LN1676">1676</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1677"><td class="num" id="LN1677">1677</td><td class="line"> array = g_value_get_boxed (g_value_array_get_nth (priv-&gt;properties, PROP_PALETTE));</td></tr>
+<tr class="codeline" data-linenumber="1678"><td class="num" id="LN1678">1678</td><td class="line"> <span class='keyword'>if</span> (!array ||</td></tr>
+<tr class="codeline" data-linenumber="1679"><td class="num" id="LN1679">1679</td><td class="line"> i &gt;= array-&gt;n_values)</td></tr>
+<tr class="codeline" data-linenumber="1680"><td class="num" id="LN1680">1680</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1681"><td class="num" id="LN1681">1681</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1682"><td class="num" id="LN1682">1682</td><td class="line"> value = g_value_array_get_nth (array, i);</td></tr>
+<tr class="codeline" data-linenumber="1683"><td class="num" id="LN1683">1683</td><td class="line"> old_color = g_value_get_boxed (value);</td></tr>
+<tr class="codeline" data-linenumber="1684"><td class="num" id="LN1684">1684</td><td class="line"> <span class='keyword'>if</span> (!old_color ||</td></tr>
+<tr class="codeline" data-linenumber="1685"><td class="num" id="LN1685">1685</td><td class="line"> !rgba_equal (old_color, color))</td></tr>
+<tr class="codeline" data-linenumber="1686"><td class="num" id="LN1686">1686</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1687"><td class="num" id="LN1687">1687</td><td class="line"> g_value_set_boxed (value, color);</td></tr>
+<tr class="codeline" data-linenumber="1688"><td class="num" id="LN1688">1688</td><td class="line"> g_object_notify (<span class='macro'>G_OBJECT (profile)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((profile)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, <span class='macro'>TERMINAL_PROFILE_PALETTE<span class='macro_popup'>"palette"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1689"><td class="num" id="LN1689">1689</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1690"><td class="num" id="LN1690">1690</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1691"><td class="num" id="LN1691">1691</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1692"><td class="num" id="LN1692">1692</td><td class="line">}</td></tr>
+</table></body></html>
diff --git a/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-e22eee.html b/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-e22eee.html
new file mode 100644
index 0000000..a7682c6
--- /dev/null
+++ b/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-e22eee.html
@@ -0,0 +1,983 @@
+<!doctype html>
+<html>
+<head>
+<title>btoe.c</title>
+
+<style type="text/css">
+body { color:#000000; background-color:#ffffff }
+body { font-family:Helvetica, sans-serif; font-size:10pt }
+h1 { font-size:14pt }
+.FileName { margin-top: 5px; margin-bottom: 5px; display: inline; }
+.FileNav { margin-left: 5px; margin-right: 5px; display: inline; }
+.FileNav a { text-decoration:none; font-size: larger; }
+.divider { margin-top: 30px; margin-bottom: 30px; height: 15px; }
+.divider { background-color: gray; }
+.code { border-collapse:collapse; width:100%; }
+.code { font-family: "Monospace", monospace; font-size:10pt }
+.code { line-height: 1.2em }
+.comment { color: green; font-style: oblique }
+.keyword { color: blue }
+.string_literal { color: red }
+.directive { color: darkmagenta }
+
+/* Macros and variables could have pop-up notes hidden by default.
+ - Macro pop-up: expansion of the macro
+ - Variable pop-up: value (table) of the variable */
+.macro_popup, .variable_popup { display: none; }
+
+/* Pop-up appears on mouse-hover event. */
+.macro:hover .macro_popup, .variable:hover .variable_popup {
+ display: block;
+ padding: 2px;
+ -webkit-border-radius:5px;
+ -webkit-box-shadow:1px 1px 7px #000;
+ border-radius:5px;
+ box-shadow:1px 1px 7px #000;
+ position: absolute;
+ top: -1em;
+ left:10em;
+ z-index: 1
+}
+
+.macro_popup {
+ border: 2px solid red;
+ background-color:#FFF0F0;
+ font-weight: normal;
+}
+
+.variable_popup {
+ border: 2px solid blue;
+ background-color:#F0F0FF;
+ font-weight: bold;
+ font-family: Helvetica, sans-serif;
+ font-size: 9pt;
+}
+
+/* Pop-up notes needs a relative position as a base where they pops up. */
+.macro, .variable {
+ background-color: PaleGoldenRod;
+ position: relative;
+}
+.macro { color: DarkMagenta; }
+
+#tooltiphint {
+ position: fixed;
+ width: 50em;
+ margin-left: -25em;
+ left: 50%;
+ padding: 10px;
+ border: 1px solid #b0b0b0;
+ border-radius: 2px;
+ box-shadow: 1px 1px 7px black;
+ background-color: #c0c0c0;
+ z-index: 2;
+}
+
+.num { width:2.5em; padding-right:2ex; background-color:#eeeeee }
+.num { text-align:right; font-size:8pt }
+.num { color:#444444 }
+.line { padding-left: 1ex; border-left: 3px solid #ccc }
+.line { white-space: pre }
+.msg { -webkit-box-shadow:1px 1px 7px #000 }
+.msg { box-shadow:1px 1px 7px #000 }
+.msg { -webkit-border-radius:5px }
+.msg { border-radius:5px }
+.msg { font-family:Helvetica, sans-serif; font-size:8pt }
+.msg { float:left }
+.msg { position:relative }
+.msg { padding:0.25em 1ex 0.25em 1ex }
+.msg { margin-top:10px; margin-bottom:10px }
+.msg { font-weight:bold }
+.msg { max-width:60em; word-wrap: break-word; white-space: pre-wrap }
+.msgT { padding:0x; spacing:0x }
+.msgEvent { background-color:#fff8b4; color:#000000 }
+.msgControl { background-color:#bbbbbb; color:#000000 }
+.msgNote { background-color:#ddeeff; color:#000000 }
+.mrange { background-color:#dfddf3 }
+.mrange { border-bottom:1px solid #6F9DBE }
+.PathIndex { font-weight: bold; padding:0px 5px; margin-right:5px; }
+.PathIndex { -webkit-border-radius:8px }
+.PathIndex { border-radius:8px }
+.PathIndexEvent { background-color:#bfba87 }
+.PathIndexControl { background-color:#8c8c8c }
+.PathIndexPopUp { background-color: #879abc; }
+.PathNav a { text-decoration:none; font-size: larger }
+.CodeInsertionHint { font-weight: bold; background-color: #10dd10 }
+.CodeRemovalHint { background-color:#de1010 }
+.CodeRemovalHint { border-bottom:1px solid #6F9DBE }
+.msg.selected{ background-color:orange !important; }
+
+table.simpletable {
+ padding: 5px;
+ font-size:12pt;
+ margin:20px;
+ border-collapse: collapse; border-spacing: 0px;
+}
+td.rowname {
+ text-align: right;
+ vertical-align: top;
+ font-weight: bold;
+ color:#444444;
+ padding-right:2ex;
+}
+
+/* Hidden text. */
+input.spoilerhider + label {
+ cursor: pointer;
+ text-decoration: underline;
+ display: block;
+}
+input.spoilerhider {
+ display: none;
+}
+input.spoilerhider ~ .spoiler {
+ overflow: hidden;
+ margin: 10px auto 0;
+ height: 0;
+ opacity: 0;
+}
+input.spoilerhider:checked + label + .spoiler{
+ height: auto;
+ opacity: 1;
+}
+</style>
+</head>
+<body>
+<!-- BUGDESC Call to function 'strcat' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcat'. CWE-119 -->
+
+<!-- BUGTYPE Potential insecure memory buffer bounds restriction in call 'strcat' -->
+
+<!-- BUGCATEGORY Security -->
+
+<!-- BUGFILE /rootdir/src/skey/btoe.c -->
+
+<!-- FILENAME btoe.c -->
+
+<!-- FUNCTIONNAME btoe -->
+
+<!-- ISSUEHASHCONTENTOFLINEINCONTEXT e22eee561f6eeed21117793a1e0aab36 -->
+
+<!-- BUGLINE 263 -->
+
+<!-- BUGCOLUMN 2 -->
+
+<!-- BUGPATHLENGTH 1 -->
+
+<!-- BUGMETAEND -->
+<!-- REPORTHEADER -->
+<h3>Bug Summary</h3>
+<table class="simpletable">
+<tr><td class="rowname">File:</td><td>skey/btoe.c</td></tr>
+<tr><td class="rowname">Warning:</td><td><a href="#EndPath">line 263, column 2</a><br />Call to function 'strcat' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcat'. CWE-119</td></tr>
+
+</table>
+<!-- REPORTSUMMARYEXTRA -->
+<h3>Annotated Source Code</h3>
+<p>Press <a href="#" onclick="toggleHelp(); return false;">'?'</a>
+ to see keyboard shortcuts</p>
+<input type="checkbox" class="spoilerhider" id="showinvocation" />
+<label for="showinvocation" >Show analyzer invocation</label>
+<div class="spoiler">clang -cc1 -cc1 -triple x86_64-redhat-linux-gnu -analyze -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name btoe.c -analyzer-checker=core -analyzer-checker=apiModeling -analyzer-checker=unix -analyzer-checker=deadcode -analyzer-checker=security.insecureAPI.UncheckedReturn -analyzer-checker=security.insecureAPI.getpw -analyzer-checker=security.insecureAPI.gets -analyzer-checker=security.insecureAPI.mktemp -analyzer-checker=security.insecureAPI.mkstemp -analyzer-checker=security.insecureAPI.vfork -analyzer-checker=nullability.NullPassedToNonnull -analyzer-checker=nullability.NullReturnedFromNonnull -analyzer-output plist -w -setup-static-analyzer -mrelocation-model pic -pic-level 2 -fhalf-no-semantic-interposition -mframe-pointer=all -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -tune-cpu generic -debugger-tuning=gdb -fcoverage-compilation-dir=/rootdir/src/skey -resource-dir /usr/bin/../lib/clang/17 -D HAVE_CONFIG_H -I . -I ../.. -I ./.. -D G_DISABLE_SINGLE_INCLUDES -I /usr/include/dconf -I /usr/include/vte-2.91 -I /usr/include/pango-1.0 -I /usr/include/gtk-3.0 -I /usr/include/gdk-pixbuf-2.0 -I /usr/include/cairo -I /usr/include/dbus-1.0 -I /usr/lib64/dbus-1.0/include -I /usr/include/atk-1.0 -I /usr/include/harfbuzz -I /usr/include/freetype2 -I /usr/include/glib-2.0 -I /usr/lib64/glib-2.0/include -I /usr/include/cloudproviders -I /usr/include/at-spi2-atk/2.0 -I /usr/include/at-spi-2.0 -I /usr/include/blkid -I /usr/include/gio-unix-2.0 -I /usr/include/pixman-1 -I /usr/include/libmount -I /usr/include/libxml2 -I /usr/include/fribidi -I /usr/include/libpng16 -I /usr/include/sysprof-6 -D PIC -internal-isystem /usr/bin/../lib/clang/17/include -internal-isystem /usr/local/include -internal-isystem /usr/bin/../lib/gcc/x86_64-redhat-linux/13/../../../../x86_64-redhat-linux/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -Wno-unused-parameter -fdebug-compilation-dir=/rootdir/src/skey -ferror-limit 19 -fgnuc-version=4.2.1 -analyzer-checker deadcode.DeadStores -analyzer-checker alpha.deadcode.UnreachableCode -analyzer-checker alpha.core.CastSize -analyzer-checker alpha.core.CastToStruct -analyzer-checker alpha.core.IdenticalExpr -analyzer-checker alpha.core.SizeofPtr -analyzer-checker alpha.security.ArrayBoundV2 -analyzer-checker alpha.security.MallocOverflow -analyzer-checker alpha.security.ReturnPtrRange -analyzer-checker alpha.unix.SimpleStream -analyzer-checker alpha.unix.cstring.BufferOverlap -analyzer-checker alpha.unix.cstring.NotNullTerminated -analyzer-checker alpha.unix.cstring.OutOfBounds -analyzer-checker alpha.core.FixedAddr -analyzer-checker security.insecureAPI.strcpy -analyzer-output=html -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /rootdir/html-report/2024-02-18-131424-5067-1 -x c btoe.c
+</div>
+<div id='tooltiphint' hidden="true">
+ <p>Keyboard shortcuts: </p>
+ <ul>
+ <li>Use 'j/k' keys for keyboard navigation</li>
+ <li>Use 'Shift+S' to show/hide relevant lines</li>
+ <li>Use '?' to toggle this window</li>
+ </ul>
+ <a href="#" onclick="toggleHelp(); return false;">Close</a>
+</div>
+<script type='text/javascript'>
+var relevant_lines = {"1": {"263": 1}};
+
+var filterCounterexample = function (hide) {
+ var tables = document.getElementsByClassName("code");
+ for (var t=0; t<tables.length; t++) {
+ var table = tables[t];
+ var file_id = table.getAttribute("data-fileid");
+ var lines_in_fid = relevant_lines[file_id];
+ if (!lines_in_fid) {
+ lines_in_fid = {};
+ }
+ var lines = table.getElementsByClassName("codeline");
+ for (var i=0; i<lines.length; i++) {
+ var el = lines[i];
+ var lineNo = el.getAttribute("data-linenumber");
+ if (!lines_in_fid[lineNo]) {
+ if (hide) {
+ el.setAttribute("hidden", "");
+ } else {
+ el.removeAttribute("hidden");
+ }
+ }
+ }
+ }
+}
+
+window.addEventListener("keydown", function (event) {
+ if (event.defaultPrevented) {
+ return;
+ }
+ // SHIFT + S
+ if (event.shiftKey && event.keyCode == 83) {
+ var checked = document.getElementsByName("showCounterexample")[0].checked;
+ filterCounterexample(!checked);
+ document.getElementsByName("showCounterexample")[0].click();
+ } else {
+ return;
+ }
+ event.preventDefault();
+}, true);
+
+document.addEventListener("DOMContentLoaded", function() {
+ document.querySelector('input[name="showCounterexample"]').onchange=
+ function (event) {
+ filterCounterexample(this.checked);
+ };
+});
+</script>
+
+<form>
+ <input type="checkbox" name="showCounterexample" id="showCounterexample" />
+ <label for="showCounterexample">
+ Show only relevant lines
+ </label>
+ <input type="checkbox" name="showArrows"
+ id="showArrows" style="margin-left: 10px" />
+ <label for="showArrows">
+ Show control flow arrows
+ </label>
+</form>
+
+<script type='text/javascript'>
+// Return range of numbers from a range [lower, upper).
+function range(lower, upper) {
+ var array = [];
+ for (var i = lower; i <= upper; ++i) {
+ array.push(i);
+ }
+ return array;
+}
+
+var getRelatedArrowIndices = function(pathId) {
+ // HTML numeration of events is a bit different than it is in the path.
+ // Everything is rotated one step to the right, so the last element
+ // (error diagnostic) has index 0.
+ if (pathId == 0) {
+ // arrowIndices has at least 2 elements
+ pathId = arrowIndices.length - 1;
+ }
+
+ return range(arrowIndices[pathId], arrowIndices[pathId - 1]);
+}
+
+var highlightArrowsForSelectedEvent = function() {
+ const selectedNum = findNum();
+ const arrowIndicesToHighlight = getRelatedArrowIndices(selectedNum);
+ arrowIndicesToHighlight.forEach((index) => {
+ var arrow = document.querySelector("#arrow" + index);
+ if(arrow) {
+ classListAdd(arrow, "selected")
+ }
+ });
+}
+
+var getAbsoluteBoundingRect = function(element) {
+ const relative = element.getBoundingClientRect();
+ return {
+ left: relative.left + window.pageXOffset,
+ right: relative.right + window.pageXOffset,
+ top: relative.top + window.pageYOffset,
+ bottom: relative.bottom + window.pageYOffset,
+ height: relative.height,
+ width: relative.width
+ };
+}
+
+var drawArrow = function(index) {
+ // This function is based on the great answer from SO:
+ // https://stackoverflow.com/a/39575674/11582326
+ var start = document.querySelector("#start" + index);
+ var end = document.querySelector("#end" + index);
+ var arrow = document.querySelector("#arrow" + index);
+
+ var startRect = getAbsoluteBoundingRect(start);
+ var endRect = getAbsoluteBoundingRect(end);
+
+ // It is an arrow from a token to itself, no need to visualize it.
+ if (startRect.top == endRect.top &&
+ startRect.left == endRect.left)
+ return;
+
+ // Each arrow is a very simple Bézier curve, with two nodes and
+ // two handles. So, we need to calculate four points in the window:
+ // * start node
+ var posStart = { x: 0, y: 0 };
+ // * end node
+ var posEnd = { x: 0, y: 0 };
+ // * handle for the start node
+ var startHandle = { x: 0, y: 0 };
+ // * handle for the end node
+ var endHandle = { x: 0, y: 0 };
+ // One can visualize it as follows:
+ //
+ // start handle
+ // /
+ // X"""_.-""""X
+ // .' \
+ // / start node
+ // |
+ // |
+ // | end node
+ // \ /
+ // `->X
+ // X-'
+ // \
+ // end handle
+ //
+ // NOTE: (0, 0) is the top left corner of the window.
+
+ // We have 3 similar, but still different scenarios to cover:
+ //
+ // 1. Two tokens on different lines.
+ // -xxx
+ // /
+ // \
+ // -> xxx
+ // In this situation, we draw arrow on the left curving to the left.
+ // 2. Two tokens on the same line, and the destination is on the right.
+ // ____
+ // / \
+ // / V
+ // xxx xxx
+ // In this situation, we draw arrow above curving upwards.
+ // 3. Two tokens on the same line, and the destination is on the left.
+ // xxx xxx
+ // ^ /
+ // \____/
+ // In this situation, we draw arrow below curving downwards.
+ const onDifferentLines = startRect.top <= endRect.top - 5 ||
+ startRect.top >= endRect.top + 5;
+ const leftToRight = startRect.left < endRect.left;
+
+ // NOTE: various magic constants are chosen empirically for
+ // better positioning and look
+ if (onDifferentLines) {
+ // Case #1
+ const topToBottom = startRect.top < endRect.top;
+ posStart.x = startRect.left - 1;
+ // We don't want to start it at the top left corner of the token,
+ // it doesn't feel like this is where the arrow comes from.
+ // For this reason, we start it in the middle of the left side
+ // of the token.
+ posStart.y = startRect.top + startRect.height / 2;
+
+ // End node has arrow head and we give it a bit more space.
+ posEnd.x = endRect.left - 4;
+ posEnd.y = endRect.top;
+
+ // Utility object with x and y offsets for handles.
+ var curvature = {
+ // We want bottom-to-top arrow to curve a bit more, so it doesn't
+ // overlap much with top-to-bottom curves (much more frequent).
+ x: topToBottom ? 15 : 25,
+ y: Math.min((posEnd.y - posStart.y) / 3, 10)
+ }
+
+ // When destination is on the different line, we can make a
+ // curvier arrow because we have space for it.
+ // So, instead of using
+ //
+ // startHandle.x = posStart.x - curvature.x
+ // endHandle.x = posEnd.x - curvature.x
+ //
+ // We use the leftmost of these two values for both handles.
+ startHandle.x = Math.min(posStart.x, posEnd.x) - curvature.x;
+ endHandle.x = startHandle.x;
+
+ // Curving downwards from the start node...
+ startHandle.y = posStart.y + curvature.y;
+ // ... and upwards from the end node.
+ endHandle.y = posEnd.y - curvature.y;
+
+ } else if (leftToRight) {
+ // Case #2
+ // Starting from the top right corner...
+ posStart.x = startRect.right - 1;
+ posStart.y = startRect.top;
+
+ // ...and ending at the top left corner of the end token.
+ posEnd.x = endRect.left + 1;
+ posEnd.y = endRect.top - 1;
+
+ // Utility object with x and y offsets for handles.
+ var curvature = {
+ x: Math.min((posEnd.x - posStart.x) / 3, 15),
+ y: 5
+ }
+
+ // Curving to the right...
+ startHandle.x = posStart.x + curvature.x;
+ // ... and upwards from the start node.
+ startHandle.y = posStart.y - curvature.y;
+
+ // And to the left...
+ endHandle.x = posEnd.x - curvature.x;
+ // ... and upwards from the end node.
+ endHandle.y = posEnd.y - curvature.y;
+
+ } else {
+ // Case #3
+ // Starting from the bottom right corner...
+ posStart.x = startRect.right;
+ posStart.y = startRect.bottom;
+
+ // ...and ending also at the bottom right corner, but of the end token.
+ posEnd.x = endRect.right - 1;
+ posEnd.y = endRect.bottom + 1;
+
+ // Utility object with x and y offsets for handles.
+ var curvature = {
+ x: Math.min((posStart.x - posEnd.x) / 3, 15),
+ y: 5
+ }
+
+ // Curving to the left...
+ startHandle.x = posStart.x - curvature.x;
+ // ... and downwards from the start node.
+ startHandle.y = posStart.y + curvature.y;
+
+ // And to the right...
+ endHandle.x = posEnd.x + curvature.x;
+ // ... and downwards from the end node.
+ endHandle.y = posEnd.y + curvature.y;
+ }
+
+ // Put it all together into a path.
+ // More information on the format:
+ // https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths
+ var pathStr = "M" + posStart.x + "," + posStart.y + " " +
+ "C" + startHandle.x + "," + startHandle.y + " " +
+ endHandle.x + "," + endHandle.y + " " +
+ posEnd.x + "," + posEnd.y;
+
+ arrow.setAttribute("d", pathStr);
+};
+
+var drawArrows = function() {
+ const numOfArrows = document.querySelectorAll("path[id^=arrow]").length;
+ for (var i = 0; i < numOfArrows; ++i) {
+ drawArrow(i);
+ }
+}
+
+var toggleArrows = function(event) {
+ const arrows = document.querySelector("#arrows");
+ if (event.target.checked) {
+ arrows.setAttribute("visibility", "visible");
+ } else {
+ arrows.setAttribute("visibility", "hidden");
+ }
+}
+
+window.addEventListener("resize", drawArrows);
+document.addEventListener("DOMContentLoaded", function() {
+ // Whenever we show invocation, locations change, i.e. we
+ // need to redraw arrows.
+ document
+ .querySelector('input[id="showinvocation"]')
+ .addEventListener("click", drawArrows);
+ // Hiding irrelevant lines also should cause arrow rerender.
+ document
+ .querySelector('input[name="showCounterexample"]')
+ .addEventListener("change", drawArrows);
+ document
+ .querySelector('input[name="showArrows"]')
+ .addEventListener("change", toggleArrows);
+ drawArrows();
+ // Default highlighting for the last event.
+ highlightArrowsForSelectedEvent();
+});
+</script>
+
+<script type='text/javascript'>
+var digitMatcher = new RegExp("[0-9]+");
+
+var querySelectorAllArray = function(selector) {
+ return Array.prototype.slice.call(
+ document.querySelectorAll(selector));
+}
+
+document.addEventListener("DOMContentLoaded", function() {
+ querySelectorAllArray(".PathNav > a").forEach(
+ function(currentValue, currentIndex) {
+ var hrefValue = currentValue.getAttribute("href");
+ currentValue.onclick = function() {
+ scrollTo(document.querySelector(hrefValue));
+ return false;
+ };
+ });
+});
+
+var findNum = function() {
+ var s = document.querySelector(".msg.selected");
+ if (!s || s.id == "EndPath") {
+ return 0;
+ }
+ var out = parseInt(digitMatcher.exec(s.id)[0]);
+ return out;
+};
+
+var classListAdd = function(el, theClass) {
+ if(!el.className.baseVal)
+ el.className += " " + theClass;
+ else
+ el.className.baseVal += " " + theClass;
+};
+
+var classListRemove = function(el, theClass) {
+ var className = (!el.className.baseVal) ?
+ el.className : el.className.baseVal;
+ className = className.replace(" " + theClass, "");
+ if(!el.className.baseVal)
+ el.className = className;
+ else
+ el.className.baseVal = className;
+};
+
+var scrollTo = function(el) {
+ querySelectorAllArray(".selected").forEach(function(s) {
+ classListRemove(s, "selected");
+ });
+ classListAdd(el, "selected");
+ window.scrollBy(0, el.getBoundingClientRect().top -
+ (window.innerHeight / 2));
+ highlightArrowsForSelectedEvent();
+};
+
+var move = function(num, up, numItems) {
+ if (num == 1 && up || num == numItems - 1 && !up) {
+ return 0;
+ } else if (num == 0 && up) {
+ return numItems - 1;
+ } else if (num == 0 && !up) {
+ return 1 % numItems;
+ }
+ return up ? num - 1 : num + 1;
+}
+
+var numToId = function(num) {
+ if (num == 0) {
+ return document.getElementById("EndPath")
+ }
+ return document.getElementById("Path" + num);
+};
+
+var navigateTo = function(up) {
+ var numItems = document.querySelectorAll(
+ ".line > .msgEvent, .line > .msgControl").length;
+ var currentSelected = findNum();
+ var newSelected = move(currentSelected, up, numItems);
+ var newEl = numToId(newSelected, numItems);
+
+ // Scroll element into center.
+ scrollTo(newEl);
+};
+
+window.addEventListener("keydown", function (event) {
+ if (event.defaultPrevented) {
+ return;
+ }
+ // key 'j'
+ if (event.keyCode == 74) {
+ navigateTo(/*up=*/false);
+ // key 'k'
+ } else if (event.keyCode == 75) {
+ navigateTo(/*up=*/true);
+ } else {
+ return;
+ }
+ event.preventDefault();
+}, true);
+</script>
+
+<script type='text/javascript'>
+
+var toggleHelp = function() {
+ var hint = document.querySelector("#tooltiphint");
+ var attributeName = "hidden";
+ if (hint.hasAttribute(attributeName)) {
+ hint.removeAttribute(attributeName);
+ } else {
+ hint.setAttribute("hidden", "true");
+ }
+};
+window.addEventListener("keydown", function (event) {
+ if (event.defaultPrevented) {
+ return;
+ }
+ if (event.key == "?") {
+ toggleHelp();
+ } else {
+ return;
+ }
+ event.preventDefault();
+});
+</script>
+
+<style type="text/css">
+ svg {
+ position:absolute;
+ top:0;
+ left:0;
+ height:100%;
+ width:100%;
+ pointer-events: none;
+ overflow: visible
+ }
+ .arrow {
+ stroke-opacity: 0.2;
+ stroke-width: 1;
+ marker-end: url(#arrowhead);
+ }
+
+ .arrow.selected {
+ stroke-opacity: 0.6;
+ stroke-width: 2;
+ marker-end: url(#arrowheadSelected);
+ }
+
+ .arrowhead {
+ orient: auto;
+ stroke: none;
+ opacity: 0.6;
+ fill: blue;
+ }
+</style>
+<svg xmlns="http://www.w3.org/2000/svg">
+ <defs>
+ <marker id="arrowheadSelected" class="arrowhead" opacity="0.6"
+ viewBox="0 0 10 10" refX="3" refY="5"
+ markerWidth="4" markerHeight="4">
+ <path d="M 0 0 L 10 5 L 0 10 z" />
+ </marker>
+ <marker id="arrowhead" class="arrowhead" opacity="0.2"
+ viewBox="0 0 10 10" refX="3" refY="5"
+ markerWidth="4" markerHeight="4">
+ <path d="M 0 0 L 10 5 L 0 10 z" />
+ </marker>
+ </defs>
+ <g id="arrows" fill="none" stroke="blue" visibility="hidden">
+
+ </g>
+</svg>
+<script type='text/javascript'>
+const arrowIndices = [ 0,0 ]
+</script>
+<table class="code" data-fileid="1">
+<tr class="codeline" data-linenumber="1"><td class="num" id="LN1">1</td><td class="line"><span class='comment'>/*</span></td></tr>
+<tr class="codeline" data-linenumber="2"><td class="num" id="LN2">2</td><td class="line"> <span class='comment'>* This code is imported from Bollcore's S/KEY + some simple glib adaptations</span></td></tr>
+<tr class="codeline" data-linenumber="3"><td class="num" id="LN3">3</td><td class="line"> <span class='comment'>* (See rfc2289 and rfc1760)</span></td></tr>
+<tr class="codeline" data-linenumber="4"><td class="num" id="LN4">4</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="5"><td class="num" id="LN5">5</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="6"><td class="num" id="LN6">6</td><td class="line"><span class='directive'>#include &lt;config.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="7"><td class="num" id="LN7">7</td><td class="line"><span class='directive'>#include &lt;stdio.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="8"><td class="num" id="LN8">8</td><td class="line"><span class='directive'>#include &lt;string.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="9"><td class="num" id="LN9">9</td><td class="line"><span class='directive'>#include &lt;unistd.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="10"><td class="num" id="LN10">10</td><td class="line"><span class='directive'>#include &lt;glib.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="11"><td class="num" id="LN11">11</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="12"><td class="num" id="LN12">12</td><td class="line"><span class='directive'>#include "skey.h"</span></td></tr>
+<tr class="codeline" data-linenumber="13"><td class="num" id="LN13">13</td><td class="line"><span class='directive'>#include "btoe.h"</span></td></tr>
+<tr class="codeline" data-linenumber="14"><td class="num" id="LN14">14</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="15"><td class="num" id="LN15">15</td><td class="line"><span class='keyword'>static</span> guint32 extract (<span class='keyword'>char</span> *s, <span class='keyword'>int</span> start, <span class='keyword'>int</span> length);</td></tr>
+<tr class="codeline" data-linenumber="16"><td class="num" id="LN16">16</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="17"><td class="num" id="LN17">17</td><td class="line"><span class='comment'>/* Dictionary for integer-word translations */</span></td></tr>
+<tr class="codeline" data-linenumber="18"><td class="num" id="LN18">18</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>const</span> <span class='keyword'>char</span> Wp[2048][4] = { <span class='string_literal'>"A"</span>, <span class='string_literal'>"ABE"</span>, <span class='string_literal'>"ACE"</span>, <span class='string_literal'>"ACT"</span>, <span class='string_literal'>"AD"</span>, <span class='string_literal'>"ADA"</span>, <span class='string_literal'>"ADD"</span>,</td></tr>
+<tr class="codeline" data-linenumber="19"><td class="num" id="LN19">19</td><td class="line"> <span class='string_literal'>"AGO"</span>, <span class='string_literal'>"AID"</span>, <span class='string_literal'>"AIM"</span>, <span class='string_literal'>"AIR"</span>, <span class='string_literal'>"ALL"</span>, <span class='string_literal'>"ALP"</span>, <span class='string_literal'>"AM"</span>, <span class='string_literal'>"AMY"</span>, <span class='string_literal'>"AN"</span>, <span class='string_literal'>"ANA"</span>,</td></tr>
+<tr class="codeline" data-linenumber="20"><td class="num" id="LN20">20</td><td class="line"> <span class='string_literal'>"AND"</span>, <span class='string_literal'>"ANN"</span>, <span class='string_literal'>"ANT"</span>, <span class='string_literal'>"ANY"</span>, <span class='string_literal'>"APE"</span>, <span class='string_literal'>"APS"</span>, <span class='string_literal'>"APT"</span>, <span class='string_literal'>"ARC"</span>, <span class='string_literal'>"ARE"</span>, <span class='string_literal'>"ARK"</span>,</td></tr>
+<tr class="codeline" data-linenumber="21"><td class="num" id="LN21">21</td><td class="line"> <span class='string_literal'>"ARM"</span>, <span class='string_literal'>"ART"</span>, <span class='string_literal'>"AS"</span>, <span class='string_literal'>"ASH"</span>, <span class='string_literal'>"ASK"</span>, <span class='string_literal'>"AT"</span>, <span class='string_literal'>"ATE"</span>, <span class='string_literal'>"AUG"</span>, <span class='string_literal'>"AUK"</span>, <span class='string_literal'>"AVE"</span>,</td></tr>
+<tr class="codeline" data-linenumber="22"><td class="num" id="LN22">22</td><td class="line"> <span class='string_literal'>"AWE"</span>, <span class='string_literal'>"AWK"</span>, <span class='string_literal'>"AWL"</span>, <span class='string_literal'>"AWN"</span>, <span class='string_literal'>"AX"</span>, <span class='string_literal'>"AYE"</span>, <span class='string_literal'>"BAD"</span>, <span class='string_literal'>"BAG"</span>, <span class='string_literal'>"BAH"</span>, <span class='string_literal'>"BAM"</span>,</td></tr>
+<tr class="codeline" data-linenumber="23"><td class="num" id="LN23">23</td><td class="line"> <span class='string_literal'>"BAN"</span>, <span class='string_literal'>"BAR"</span>, <span class='string_literal'>"BAT"</span>, <span class='string_literal'>"BAY"</span>, <span class='string_literal'>"BE"</span>, <span class='string_literal'>"BED"</span>, <span class='string_literal'>"BEE"</span>, <span class='string_literal'>"BEG"</span>, <span class='string_literal'>"BEN"</span>, <span class='string_literal'>"BET"</span>,</td></tr>
+<tr class="codeline" data-linenumber="24"><td class="num" id="LN24">24</td><td class="line"> <span class='string_literal'>"BEY"</span>, <span class='string_literal'>"BIB"</span>, <span class='string_literal'>"BID"</span>, <span class='string_literal'>"BIG"</span>, <span class='string_literal'>"BIN"</span>, <span class='string_literal'>"BIT"</span>, <span class='string_literal'>"BOB"</span>, <span class='string_literal'>"BOG"</span>, <span class='string_literal'>"BON"</span>, <span class='string_literal'>"BOO"</span>,</td></tr>
+<tr class="codeline" data-linenumber="25"><td class="num" id="LN25">25</td><td class="line"> <span class='string_literal'>"BOP"</span>, <span class='string_literal'>"BOW"</span>, <span class='string_literal'>"BOY"</span>, <span class='string_literal'>"BUB"</span>, <span class='string_literal'>"BUD"</span>, <span class='string_literal'>"BUG"</span>, <span class='string_literal'>"BUM"</span>, <span class='string_literal'>"BUN"</span>, <span class='string_literal'>"BUS"</span>, <span class='string_literal'>"BUT"</span>,</td></tr>
+<tr class="codeline" data-linenumber="26"><td class="num" id="LN26">26</td><td class="line"> <span class='string_literal'>"BUY"</span>, <span class='string_literal'>"BY"</span>, <span class='string_literal'>"BYE"</span>, <span class='string_literal'>"CAB"</span>, <span class='string_literal'>"CAL"</span>, <span class='string_literal'>"CAM"</span>, <span class='string_literal'>"CAN"</span>, <span class='string_literal'>"CAP"</span>, <span class='string_literal'>"CAR"</span>, <span class='string_literal'>"CAT"</span>,</td></tr>
+<tr class="codeline" data-linenumber="27"><td class="num" id="LN27">27</td><td class="line"> <span class='string_literal'>"CAW"</span>, <span class='string_literal'>"COD"</span>, <span class='string_literal'>"COG"</span>, <span class='string_literal'>"COL"</span>, <span class='string_literal'>"CON"</span>, <span class='string_literal'>"COO"</span>, <span class='string_literal'>"COP"</span>, <span class='string_literal'>"COT"</span>, <span class='string_literal'>"COW"</span>, <span class='string_literal'>"COY"</span>,</td></tr>
+<tr class="codeline" data-linenumber="28"><td class="num" id="LN28">28</td><td class="line"> <span class='string_literal'>"CRY"</span>, <span class='string_literal'>"CUB"</span>, <span class='string_literal'>"CUE"</span>, <span class='string_literal'>"CUP"</span>, <span class='string_literal'>"CUR"</span>, <span class='string_literal'>"CUT"</span>, <span class='string_literal'>"DAB"</span>, <span class='string_literal'>"DAD"</span>, <span class='string_literal'>"DAM"</span>, <span class='string_literal'>"DAN"</span>,</td></tr>
+<tr class="codeline" data-linenumber="29"><td class="num" id="LN29">29</td><td class="line"> <span class='string_literal'>"DAR"</span>, <span class='string_literal'>"DAY"</span>, <span class='string_literal'>"DEE"</span>, <span class='string_literal'>"DEL"</span>, <span class='string_literal'>"DEN"</span>, <span class='string_literal'>"DES"</span>, <span class='string_literal'>"DEW"</span>, <span class='string_literal'>"DID"</span>, <span class='string_literal'>"DIE"</span>, <span class='string_literal'>"DIG"</span>,</td></tr>
+<tr class="codeline" data-linenumber="30"><td class="num" id="LN30">30</td><td class="line"> <span class='string_literal'>"DIN"</span>, <span class='string_literal'>"DIP"</span>, <span class='string_literal'>"DO"</span>, <span class='string_literal'>"DOE"</span>, <span class='string_literal'>"DOG"</span>, <span class='string_literal'>"DON"</span>, <span class='string_literal'>"DOT"</span>, <span class='string_literal'>"DOW"</span>, <span class='string_literal'>"DRY"</span>, <span class='string_literal'>"DUB"</span>,</td></tr>
+<tr class="codeline" data-linenumber="31"><td class="num" id="LN31">31</td><td class="line"> <span class='string_literal'>"DUD"</span>, <span class='string_literal'>"DUE"</span>, <span class='string_literal'>"DUG"</span>, <span class='string_literal'>"DUN"</span>, <span class='string_literal'>"EAR"</span>, <span class='string_literal'>"EAT"</span>, <span class='string_literal'>"ED"</span>, <span class='string_literal'>"EEL"</span>, <span class='string_literal'>"EGG"</span>, <span class='string_literal'>"EGO"</span>,</td></tr>
+<tr class="codeline" data-linenumber="32"><td class="num" id="LN32">32</td><td class="line"> <span class='string_literal'>"ELI"</span>, <span class='string_literal'>"ELK"</span>, <span class='string_literal'>"ELM"</span>, <span class='string_literal'>"ELY"</span>, <span class='string_literal'>"EM"</span>, <span class='string_literal'>"END"</span>, <span class='string_literal'>"EST"</span>, <span class='string_literal'>"ETC"</span>, <span class='string_literal'>"EVA"</span>, <span class='string_literal'>"EVE"</span>,</td></tr>
+<tr class="codeline" data-linenumber="33"><td class="num" id="LN33">33</td><td class="line"> <span class='string_literal'>"EWE"</span>, <span class='string_literal'>"EYE"</span>, <span class='string_literal'>"FAD"</span>, <span class='string_literal'>"FAN"</span>, <span class='string_literal'>"FAR"</span>, <span class='string_literal'>"FAT"</span>, <span class='string_literal'>"FAY"</span>, <span class='string_literal'>"FED"</span>, <span class='string_literal'>"FEE"</span>, <span class='string_literal'>"FEW"</span>,</td></tr>
+<tr class="codeline" data-linenumber="34"><td class="num" id="LN34">34</td><td class="line"> <span class='string_literal'>"FIB"</span>, <span class='string_literal'>"FIG"</span>, <span class='string_literal'>"FIN"</span>, <span class='string_literal'>"FIR"</span>, <span class='string_literal'>"FIT"</span>, <span class='string_literal'>"FLO"</span>, <span class='string_literal'>"FLY"</span>, <span class='string_literal'>"FOE"</span>, <span class='string_literal'>"FOG"</span>, <span class='string_literal'>"FOR"</span>,</td></tr>
+<tr class="codeline" data-linenumber="35"><td class="num" id="LN35">35</td><td class="line"> <span class='string_literal'>"FRY"</span>, <span class='string_literal'>"FUM"</span>, <span class='string_literal'>"FUN"</span>, <span class='string_literal'>"FUR"</span>, <span class='string_literal'>"GAB"</span>, <span class='string_literal'>"GAD"</span>, <span class='string_literal'>"GAG"</span>, <span class='string_literal'>"GAL"</span>, <span class='string_literal'>"GAM"</span>, <span class='string_literal'>"GAP"</span>,</td></tr>
+<tr class="codeline" data-linenumber="36"><td class="num" id="LN36">36</td><td class="line"> <span class='string_literal'>"GAS"</span>, <span class='string_literal'>"GAY"</span>, <span class='string_literal'>"GEE"</span>, <span class='string_literal'>"GEL"</span>, <span class='string_literal'>"GEM"</span>, <span class='string_literal'>"GET"</span>, <span class='string_literal'>"GIG"</span>, <span class='string_literal'>"GIL"</span>, <span class='string_literal'>"GIN"</span>, <span class='string_literal'>"GO"</span>,</td></tr>
+<tr class="codeline" data-linenumber="37"><td class="num" id="LN37">37</td><td class="line"> <span class='string_literal'>"GOT"</span>, <span class='string_literal'>"GUM"</span>, <span class='string_literal'>"GUN"</span>, <span class='string_literal'>"GUS"</span>, <span class='string_literal'>"GUT"</span>, <span class='string_literal'>"GUY"</span>, <span class='string_literal'>"GYM"</span>, <span class='string_literal'>"GYP"</span>, <span class='string_literal'>"HA"</span>, <span class='string_literal'>"HAD"</span>,</td></tr>
+<tr class="codeline" data-linenumber="38"><td class="num" id="LN38">38</td><td class="line"> <span class='string_literal'>"HAL"</span>, <span class='string_literal'>"HAM"</span>, <span class='string_literal'>"HAN"</span>, <span class='string_literal'>"HAP"</span>, <span class='string_literal'>"HAS"</span>, <span class='string_literal'>"HAT"</span>, <span class='string_literal'>"HAW"</span>, <span class='string_literal'>"HAY"</span>, <span class='string_literal'>"HE"</span>, <span class='string_literal'>"HEM"</span>,</td></tr>
+<tr class="codeline" data-linenumber="39"><td class="num" id="LN39">39</td><td class="line"> <span class='string_literal'>"HEN"</span>, <span class='string_literal'>"HER"</span>, <span class='string_literal'>"HEW"</span>, <span class='string_literal'>"HEY"</span>, <span class='string_literal'>"HI"</span>, <span class='string_literal'>"HID"</span>, <span class='string_literal'>"HIM"</span>, <span class='string_literal'>"HIP"</span>, <span class='string_literal'>"HIS"</span>, <span class='string_literal'>"HIT"</span>,</td></tr>
+<tr class="codeline" data-linenumber="40"><td class="num" id="LN40">40</td><td class="line"> <span class='string_literal'>"HO"</span>, <span class='string_literal'>"HOB"</span>, <span class='string_literal'>"HOC"</span>, <span class='string_literal'>"HOE"</span>, <span class='string_literal'>"HOG"</span>, <span class='string_literal'>"HOP"</span>, <span class='string_literal'>"HOT"</span>, <span class='string_literal'>"HOW"</span>, <span class='string_literal'>"HUB"</span>, <span class='string_literal'>"HUE"</span>,</td></tr>
+<tr class="codeline" data-linenumber="41"><td class="num" id="LN41">41</td><td class="line"> <span class='string_literal'>"HUG"</span>, <span class='string_literal'>"HUH"</span>, <span class='string_literal'>"HUM"</span>, <span class='string_literal'>"HUT"</span>, <span class='string_literal'>"I"</span>, <span class='string_literal'>"ICY"</span>, <span class='string_literal'>"IDA"</span>, <span class='string_literal'>"IF"</span>, <span class='string_literal'>"IKE"</span>, <span class='string_literal'>"ILL"</span>,</td></tr>
+<tr class="codeline" data-linenumber="42"><td class="num" id="LN42">42</td><td class="line"> <span class='string_literal'>"INK"</span>, <span class='string_literal'>"INN"</span>, <span class='string_literal'>"IO"</span>, <span class='string_literal'>"ION"</span>, <span class='string_literal'>"IQ"</span>, <span class='string_literal'>"IRA"</span>, <span class='string_literal'>"IRE"</span>, <span class='string_literal'>"IRK"</span>, <span class='string_literal'>"IS"</span>, <span class='string_literal'>"IT"</span>, <span class='string_literal'>"ITS"</span>,</td></tr>
+<tr class="codeline" data-linenumber="43"><td class="num" id="LN43">43</td><td class="line"> <span class='string_literal'>"IVY"</span>, <span class='string_literal'>"JAB"</span>, <span class='string_literal'>"JAG"</span>, <span class='string_literal'>"JAM"</span>, <span class='string_literal'>"JAN"</span>, <span class='string_literal'>"JAR"</span>, <span class='string_literal'>"JAW"</span>, <span class='string_literal'>"JAY"</span>, <span class='string_literal'>"JET"</span>, <span class='string_literal'>"JIG"</span>,</td></tr>
+<tr class="codeline" data-linenumber="44"><td class="num" id="LN44">44</td><td class="line"> <span class='string_literal'>"JIM"</span>, <span class='string_literal'>"JO"</span>, <span class='string_literal'>"JOB"</span>, <span class='string_literal'>"JOE"</span>, <span class='string_literal'>"JOG"</span>, <span class='string_literal'>"JOT"</span>, <span class='string_literal'>"JOY"</span>, <span class='string_literal'>"JUG"</span>, <span class='string_literal'>"JUT"</span>, <span class='string_literal'>"KAY"</span>,</td></tr>
+<tr class="codeline" data-linenumber="45"><td class="num" id="LN45">45</td><td class="line"> <span class='string_literal'>"KEG"</span>, <span class='string_literal'>"KEN"</span>, <span class='string_literal'>"KEY"</span>, <span class='string_literal'>"KID"</span>, <span class='string_literal'>"KIM"</span>, <span class='string_literal'>"KIN"</span>, <span class='string_literal'>"KIT"</span>, <span class='string_literal'>"LA"</span>, <span class='string_literal'>"LAB"</span>, <span class='string_literal'>"LAC"</span>,</td></tr>
+<tr class="codeline" data-linenumber="46"><td class="num" id="LN46">46</td><td class="line"> <span class='string_literal'>"LAD"</span>, <span class='string_literal'>"LAG"</span>, <span class='string_literal'>"LAM"</span>, <span class='string_literal'>"LAP"</span>, <span class='string_literal'>"LAW"</span>, <span class='string_literal'>"LAY"</span>, <span class='string_literal'>"LEA"</span>, <span class='string_literal'>"LED"</span>, <span class='string_literal'>"LEE"</span>, <span class='string_literal'>"LEG"</span>,</td></tr>
+<tr class="codeline" data-linenumber="47"><td class="num" id="LN47">47</td><td class="line"> <span class='string_literal'>"LEN"</span>, <span class='string_literal'>"LEO"</span>, <span class='string_literal'>"LET"</span>, <span class='string_literal'>"LEW"</span>, <span class='string_literal'>"LID"</span>, <span class='string_literal'>"LIE"</span>, <span class='string_literal'>"LIN"</span>, <span class='string_literal'>"LIP"</span>, <span class='string_literal'>"LIT"</span>, <span class='string_literal'>"LO"</span>,</td></tr>
+<tr class="codeline" data-linenumber="48"><td class="num" id="LN48">48</td><td class="line"> <span class='string_literal'>"LOB"</span>, <span class='string_literal'>"LOG"</span>, <span class='string_literal'>"LOP"</span>, <span class='string_literal'>"LOS"</span>, <span class='string_literal'>"LOT"</span>, <span class='string_literal'>"LOU"</span>, <span class='string_literal'>"LOW"</span>, <span class='string_literal'>"LOY"</span>, <span class='string_literal'>"LUG"</span>, <span class='string_literal'>"LYE"</span>,</td></tr>
+<tr class="codeline" data-linenumber="49"><td class="num" id="LN49">49</td><td class="line"> <span class='string_literal'>"MA"</span>, <span class='string_literal'>"MAC"</span>, <span class='string_literal'>"MAD"</span>, <span class='string_literal'>"MAE"</span>, <span class='string_literal'>"MAN"</span>, <span class='string_literal'>"MAO"</span>, <span class='string_literal'>"MAP"</span>, <span class='string_literal'>"MAT"</span>, <span class='string_literal'>"MAW"</span>, <span class='string_literal'>"MAY"</span>,</td></tr>
+<tr class="codeline" data-linenumber="50"><td class="num" id="LN50">50</td><td class="line"> <span class='string_literal'>"ME"</span>, <span class='string_literal'>"MEG"</span>, <span class='string_literal'>"MEL"</span>, <span class='string_literal'>"MEN"</span>, <span class='string_literal'>"MET"</span>, <span class='string_literal'>"MEW"</span>, <span class='string_literal'>"MID"</span>, <span class='string_literal'>"MIN"</span>, <span class='string_literal'>"MIT"</span>, <span class='string_literal'>"MOB"</span>,</td></tr>
+<tr class="codeline" data-linenumber="51"><td class="num" id="LN51">51</td><td class="line"> <span class='string_literal'>"MOD"</span>, <span class='string_literal'>"MOE"</span>, <span class='string_literal'>"MOO"</span>, <span class='string_literal'>"MOP"</span>, <span class='string_literal'>"MOS"</span>, <span class='string_literal'>"MOT"</span>, <span class='string_literal'>"MOW"</span>, <span class='string_literal'>"MUD"</span>, <span class='string_literal'>"MUG"</span>, <span class='string_literal'>"MUM"</span>,</td></tr>
+<tr class="codeline" data-linenumber="52"><td class="num" id="LN52">52</td><td class="line"> <span class='string_literal'>"MY"</span>, <span class='string_literal'>"NAB"</span>, <span class='string_literal'>"NAG"</span>, <span class='string_literal'>"NAN"</span>, <span class='string_literal'>"NAP"</span>, <span class='string_literal'>"NAT"</span>, <span class='string_literal'>"NAY"</span>, <span class='string_literal'>"NE"</span>, <span class='string_literal'>"NED"</span>, <span class='string_literal'>"NEE"</span>,</td></tr>
+<tr class="codeline" data-linenumber="53"><td class="num" id="LN53">53</td><td class="line"> <span class='string_literal'>"NET"</span>, <span class='string_literal'>"NEW"</span>, <span class='string_literal'>"NIB"</span>, <span class='string_literal'>"NIL"</span>, <span class='string_literal'>"NIP"</span>, <span class='string_literal'>"NIT"</span>, <span class='string_literal'>"NO"</span>, <span class='string_literal'>"NOB"</span>, <span class='string_literal'>"NOD"</span>, <span class='string_literal'>"NON"</span>,</td></tr>
+<tr class="codeline" data-linenumber="54"><td class="num" id="LN54">54</td><td class="line"> <span class='string_literal'>"NOR"</span>, <span class='string_literal'>"NOT"</span>, <span class='string_literal'>"NOV"</span>, <span class='string_literal'>"NOW"</span>, <span class='string_literal'>"NU"</span>, <span class='string_literal'>"NUN"</span>, <span class='string_literal'>"NUT"</span>, <span class='string_literal'>"O"</span>, <span class='string_literal'>"OAF"</span>, <span class='string_literal'>"OAK"</span>,</td></tr>
+<tr class="codeline" data-linenumber="55"><td class="num" id="LN55">55</td><td class="line"> <span class='string_literal'>"OAR"</span>, <span class='string_literal'>"OAT"</span>, <span class='string_literal'>"ODD"</span>, <span class='string_literal'>"ODE"</span>, <span class='string_literal'>"OF"</span>, <span class='string_literal'>"OFF"</span>, <span class='string_literal'>"OFT"</span>, <span class='string_literal'>"OH"</span>, <span class='string_literal'>"OIL"</span>, <span class='string_literal'>"OK"</span>,</td></tr>
+<tr class="codeline" data-linenumber="56"><td class="num" id="LN56">56</td><td class="line"> <span class='string_literal'>"OLD"</span>, <span class='string_literal'>"ON"</span>, <span class='string_literal'>"ONE"</span>, <span class='string_literal'>"OR"</span>, <span class='string_literal'>"ORB"</span>, <span class='string_literal'>"ORE"</span>, <span class='string_literal'>"ORR"</span>, <span class='string_literal'>"OS"</span>, <span class='string_literal'>"OTT"</span>, <span class='string_literal'>"OUR"</span>,</td></tr>
+<tr class="codeline" data-linenumber="57"><td class="num" id="LN57">57</td><td class="line"> <span class='string_literal'>"OUT"</span>, <span class='string_literal'>"OVA"</span>, <span class='string_literal'>"OW"</span>, <span class='string_literal'>"OWE"</span>, <span class='string_literal'>"OWL"</span>, <span class='string_literal'>"OWN"</span>, <span class='string_literal'>"OX"</span>, <span class='string_literal'>"PA"</span>, <span class='string_literal'>"PAD"</span>, <span class='string_literal'>"PAL"</span>,</td></tr>
+<tr class="codeline" data-linenumber="58"><td class="num" id="LN58">58</td><td class="line"> <span class='string_literal'>"PAM"</span>, <span class='string_literal'>"PAN"</span>, <span class='string_literal'>"PAP"</span>, <span class='string_literal'>"PAR"</span>, <span class='string_literal'>"PAT"</span>, <span class='string_literal'>"PAW"</span>, <span class='string_literal'>"PAY"</span>, <span class='string_literal'>"PEA"</span>, <span class='string_literal'>"PEG"</span>, <span class='string_literal'>"PEN"</span>,</td></tr>
+<tr class="codeline" data-linenumber="59"><td class="num" id="LN59">59</td><td class="line"> <span class='string_literal'>"PEP"</span>, <span class='string_literal'>"PER"</span>, <span class='string_literal'>"PET"</span>, <span class='string_literal'>"PEW"</span>, <span class='string_literal'>"PHI"</span>, <span class='string_literal'>"PI"</span>, <span class='string_literal'>"PIE"</span>, <span class='string_literal'>"PIN"</span>, <span class='string_literal'>"PIT"</span>, <span class='string_literal'>"PLY"</span>,</td></tr>
+<tr class="codeline" data-linenumber="60"><td class="num" id="LN60">60</td><td class="line"> <span class='string_literal'>"PO"</span>, <span class='string_literal'>"POD"</span>, <span class='string_literal'>"POE"</span>, <span class='string_literal'>"POP"</span>, <span class='string_literal'>"POT"</span>, <span class='string_literal'>"POW"</span>, <span class='string_literal'>"PRO"</span>, <span class='string_literal'>"PRY"</span>, <span class='string_literal'>"PUB"</span>, <span class='string_literal'>"PUG"</span>,</td></tr>
+<tr class="codeline" data-linenumber="61"><td class="num" id="LN61">61</td><td class="line"> <span class='string_literal'>"PUN"</span>, <span class='string_literal'>"PUP"</span>, <span class='string_literal'>"PUT"</span>, <span class='string_literal'>"QUO"</span>, <span class='string_literal'>"RAG"</span>, <span class='string_literal'>"RAM"</span>, <span class='string_literal'>"RAN"</span>, <span class='string_literal'>"RAP"</span>, <span class='string_literal'>"RAT"</span>, <span class='string_literal'>"RAW"</span>,</td></tr>
+<tr class="codeline" data-linenumber="62"><td class="num" id="LN62">62</td><td class="line"> <span class='string_literal'>"RAY"</span>, <span class='string_literal'>"REB"</span>, <span class='string_literal'>"RED"</span>, <span class='string_literal'>"REP"</span>, <span class='string_literal'>"RET"</span>, <span class='string_literal'>"RIB"</span>, <span class='string_literal'>"RID"</span>, <span class='string_literal'>"RIG"</span>, <span class='string_literal'>"RIM"</span>, <span class='string_literal'>"RIO"</span>,</td></tr>
+<tr class="codeline" data-linenumber="63"><td class="num" id="LN63">63</td><td class="line"> <span class='string_literal'>"RIP"</span>, <span class='string_literal'>"ROB"</span>, <span class='string_literal'>"ROD"</span>, <span class='string_literal'>"ROE"</span>, <span class='string_literal'>"RON"</span>, <span class='string_literal'>"ROT"</span>, <span class='string_literal'>"ROW"</span>, <span class='string_literal'>"ROY"</span>, <span class='string_literal'>"RUB"</span>, <span class='string_literal'>"RUE"</span>,</td></tr>
+<tr class="codeline" data-linenumber="64"><td class="num" id="LN64">64</td><td class="line"> <span class='string_literal'>"RUG"</span>, <span class='string_literal'>"RUM"</span>, <span class='string_literal'>"RUN"</span>, <span class='string_literal'>"RYE"</span>, <span class='string_literal'>"SAC"</span>, <span class='string_literal'>"SAD"</span>, <span class='string_literal'>"SAG"</span>, <span class='string_literal'>"SAL"</span>, <span class='string_literal'>"SAM"</span>, <span class='string_literal'>"SAN"</span>,</td></tr>
+<tr class="codeline" data-linenumber="65"><td class="num" id="LN65">65</td><td class="line"> <span class='string_literal'>"SAP"</span>, <span class='string_literal'>"SAT"</span>, <span class='string_literal'>"SAW"</span>, <span class='string_literal'>"SAY"</span>, <span class='string_literal'>"SEA"</span>, <span class='string_literal'>"SEC"</span>, <span class='string_literal'>"SEE"</span>, <span class='string_literal'>"SEN"</span>, <span class='string_literal'>"SET"</span>, <span class='string_literal'>"SEW"</span>,</td></tr>
+<tr class="codeline" data-linenumber="66"><td class="num" id="LN66">66</td><td class="line"> <span class='string_literal'>"SHE"</span>, <span class='string_literal'>"SHY"</span>, <span class='string_literal'>"SIN"</span>, <span class='string_literal'>"SIP"</span>, <span class='string_literal'>"SIR"</span>, <span class='string_literal'>"SIS"</span>, <span class='string_literal'>"SIT"</span>, <span class='string_literal'>"SKI"</span>, <span class='string_literal'>"SKY"</span>, <span class='string_literal'>"SLY"</span>,</td></tr>
+<tr class="codeline" data-linenumber="67"><td class="num" id="LN67">67</td><td class="line"> <span class='string_literal'>"SO"</span>, <span class='string_literal'>"SOB"</span>, <span class='string_literal'>"SOD"</span>, <span class='string_literal'>"SON"</span>, <span class='string_literal'>"SOP"</span>, <span class='string_literal'>"SOW"</span>, <span class='string_literal'>"SOY"</span>, <span class='string_literal'>"SPA"</span>, <span class='string_literal'>"SPY"</span>, <span class='string_literal'>"SUB"</span>,</td></tr>
+<tr class="codeline" data-linenumber="68"><td class="num" id="LN68">68</td><td class="line"> <span class='string_literal'>"SUD"</span>, <span class='string_literal'>"SUE"</span>, <span class='string_literal'>"SUM"</span>, <span class='string_literal'>"SUN"</span>, <span class='string_literal'>"SUP"</span>, <span class='string_literal'>"TAB"</span>, <span class='string_literal'>"TAD"</span>, <span class='string_literal'>"TAG"</span>, <span class='string_literal'>"TAN"</span>, <span class='string_literal'>"TAP"</span>,</td></tr>
+<tr class="codeline" data-linenumber="69"><td class="num" id="LN69">69</td><td class="line"> <span class='string_literal'>"TAR"</span>, <span class='string_literal'>"TEA"</span>, <span class='string_literal'>"TED"</span>, <span class='string_literal'>"TEE"</span>, <span class='string_literal'>"TEN"</span>, <span class='string_literal'>"THE"</span>, <span class='string_literal'>"THY"</span>, <span class='string_literal'>"TIC"</span>, <span class='string_literal'>"TIE"</span>, <span class='string_literal'>"TIM"</span>,</td></tr>
+<tr class="codeline" data-linenumber="70"><td class="num" id="LN70">70</td><td class="line"> <span class='string_literal'>"TIN"</span>, <span class='string_literal'>"TIP"</span>, <span class='string_literal'>"TO"</span>, <span class='string_literal'>"TOE"</span>, <span class='string_literal'>"TOG"</span>, <span class='string_literal'>"TOM"</span>, <span class='string_literal'>"TON"</span>, <span class='string_literal'>"TOO"</span>, <span class='string_literal'>"TOP"</span>, <span class='string_literal'>"TOW"</span>,</td></tr>
+<tr class="codeline" data-linenumber="71"><td class="num" id="LN71">71</td><td class="line"> <span class='string_literal'>"TOY"</span>, <span class='string_literal'>"TRY"</span>, <span class='string_literal'>"TUB"</span>, <span class='string_literal'>"TUG"</span>, <span class='string_literal'>"TUM"</span>, <span class='string_literal'>"TUN"</span>, <span class='string_literal'>"TWO"</span>, <span class='string_literal'>"UN"</span>, <span class='string_literal'>"UP"</span>, <span class='string_literal'>"US"</span>,</td></tr>
+<tr class="codeline" data-linenumber="72"><td class="num" id="LN72">72</td><td class="line"> <span class='string_literal'>"USE"</span>, <span class='string_literal'>"VAN"</span>, <span class='string_literal'>"VAT"</span>, <span class='string_literal'>"VET"</span>, <span class='string_literal'>"VIE"</span>, <span class='string_literal'>"WAD"</span>, <span class='string_literal'>"WAG"</span>, <span class='string_literal'>"WAR"</span>, <span class='string_literal'>"WAS"</span>, <span class='string_literal'>"WAY"</span>,</td></tr>
+<tr class="codeline" data-linenumber="73"><td class="num" id="LN73">73</td><td class="line"> <span class='string_literal'>"WE"</span>, <span class='string_literal'>"WEB"</span>, <span class='string_literal'>"WED"</span>, <span class='string_literal'>"WEE"</span>, <span class='string_literal'>"WET"</span>, <span class='string_literal'>"WHO"</span>, <span class='string_literal'>"WHY"</span>, <span class='string_literal'>"WIN"</span>, <span class='string_literal'>"WIT"</span>, <span class='string_literal'>"WOK"</span>,</td></tr>
+<tr class="codeline" data-linenumber="74"><td class="num" id="LN74">74</td><td class="line"> <span class='string_literal'>"WON"</span>, <span class='string_literal'>"WOO"</span>, <span class='string_literal'>"WOW"</span>, <span class='string_literal'>"WRY"</span>, <span class='string_literal'>"WU"</span>, <span class='string_literal'>"YAM"</span>, <span class='string_literal'>"YAP"</span>, <span class='string_literal'>"YAW"</span>, <span class='string_literal'>"YE"</span>, <span class='string_literal'>"YEA"</span>,</td></tr>
+<tr class="codeline" data-linenumber="75"><td class="num" id="LN75">75</td><td class="line"> <span class='string_literal'>"YES"</span>, <span class='string_literal'>"YET"</span>, <span class='string_literal'>"YOU"</span>, <span class='string_literal'>"ABED"</span>, <span class='string_literal'>"ABEL"</span>, <span class='string_literal'>"ABET"</span>, <span class='string_literal'>"ABLE"</span>, <span class='string_literal'>"ABUT"</span>, <span class='string_literal'>"ACHE"</span>,</td></tr>
+<tr class="codeline" data-linenumber="76"><td class="num" id="LN76">76</td><td class="line"> <span class='string_literal'>"ACID"</span>, <span class='string_literal'>"ACME"</span>, <span class='string_literal'>"ACRE"</span>, <span class='string_literal'>"ACTA"</span>, <span class='string_literal'>"ACTS"</span>, <span class='string_literal'>"ADAM"</span>, <span class='string_literal'>"ADDS"</span>, <span class='string_literal'>"ADEN"</span>, <span class='string_literal'>"AFAR"</span>,</td></tr>
+<tr class="codeline" data-linenumber="77"><td class="num" id="LN77">77</td><td class="line"> <span class='string_literal'>"AFRO"</span>, <span class='string_literal'>"AGEE"</span>, <span class='string_literal'>"AHEM"</span>, <span class='string_literal'>"AHOY"</span>, <span class='string_literal'>"AIDA"</span>, <span class='string_literal'>"AIDE"</span>, <span class='string_literal'>"AIDS"</span>, <span class='string_literal'>"AIRY"</span>, <span class='string_literal'>"AJAR"</span>,</td></tr>
+<tr class="codeline" data-linenumber="78"><td class="num" id="LN78">78</td><td class="line"> <span class='string_literal'>"AKIN"</span>, <span class='string_literal'>"ALAN"</span>, <span class='string_literal'>"ALEC"</span>, <span class='string_literal'>"ALGA"</span>, <span class='string_literal'>"ALIA"</span>, <span class='string_literal'>"ALLY"</span>, <span class='string_literal'>"ALMA"</span>, <span class='string_literal'>"ALOE"</span>, <span class='string_literal'>"ALSO"</span>,</td></tr>
+<tr class="codeline" data-linenumber="79"><td class="num" id="LN79">79</td><td class="line"> <span class='string_literal'>"ALTO"</span>, <span class='string_literal'>"ALUM"</span>, <span class='string_literal'>"ALVA"</span>, <span class='string_literal'>"AMEN"</span>, <span class='string_literal'>"AMES"</span>, <span class='string_literal'>"AMID"</span>, <span class='string_literal'>"AMMO"</span>, <span class='string_literal'>"AMOK"</span>, <span class='string_literal'>"AMOS"</span>,</td></tr>
+<tr class="codeline" data-linenumber="80"><td class="num" id="LN80">80</td><td class="line"> <span class='string_literal'>"AMRA"</span>, <span class='string_literal'>"ANDY"</span>, <span class='string_literal'>"ANEW"</span>, <span class='string_literal'>"ANNA"</span>, <span class='string_literal'>"ANNE"</span>, <span class='string_literal'>"ANTE"</span>, <span class='string_literal'>"ANTI"</span>, <span class='string_literal'>"AQUA"</span>, <span class='string_literal'>"ARAB"</span>,</td></tr>
+<tr class="codeline" data-linenumber="81"><td class="num" id="LN81">81</td><td class="line"> <span class='string_literal'>"ARCH"</span>, <span class='string_literal'>"AREA"</span>, <span class='string_literal'>"ARGO"</span>, <span class='string_literal'>"ARID"</span>, <span class='string_literal'>"ARMY"</span>, <span class='string_literal'>"ARTS"</span>, <span class='string_literal'>"ARTY"</span>, <span class='string_literal'>"ASIA"</span>, <span class='string_literal'>"ASKS"</span>,</td></tr>
+<tr class="codeline" data-linenumber="82"><td class="num" id="LN82">82</td><td class="line"> <span class='string_literal'>"ATOM"</span>, <span class='string_literal'>"AUNT"</span>, <span class='string_literal'>"AURA"</span>, <span class='string_literal'>"AUTO"</span>, <span class='string_literal'>"AVER"</span>, <span class='string_literal'>"AVID"</span>, <span class='string_literal'>"AVIS"</span>, <span class='string_literal'>"AVON"</span>, <span class='string_literal'>"AVOW"</span>,</td></tr>
+<tr class="codeline" data-linenumber="83"><td class="num" id="LN83">83</td><td class="line"> <span class='string_literal'>"AWAY"</span>, <span class='string_literal'>"AWRY"</span>, <span class='string_literal'>"BABE"</span>, <span class='string_literal'>"BABY"</span>, <span class='string_literal'>"BACH"</span>, <span class='string_literal'>"BACK"</span>, <span class='string_literal'>"BADE"</span>, <span class='string_literal'>"BAIL"</span>, <span class='string_literal'>"BAIT"</span>,</td></tr>
+<tr class="codeline" data-linenumber="84"><td class="num" id="LN84">84</td><td class="line"> <span class='string_literal'>"BAKE"</span>, <span class='string_literal'>"BALD"</span>, <span class='string_literal'>"BALE"</span>, <span class='string_literal'>"BALI"</span>, <span class='string_literal'>"BALK"</span>, <span class='string_literal'>"BALL"</span>, <span class='string_literal'>"BALM"</span>, <span class='string_literal'>"BAND"</span>, <span class='string_literal'>"BANE"</span>,</td></tr>
+<tr class="codeline" data-linenumber="85"><td class="num" id="LN85">85</td><td class="line"> <span class='string_literal'>"BANG"</span>, <span class='string_literal'>"BANK"</span>, <span class='string_literal'>"BARB"</span>, <span class='string_literal'>"BARD"</span>, <span class='string_literal'>"BARE"</span>, <span class='string_literal'>"BARK"</span>, <span class='string_literal'>"BARN"</span>, <span class='string_literal'>"BARR"</span>, <span class='string_literal'>"BASE"</span>,</td></tr>
+<tr class="codeline" data-linenumber="86"><td class="num" id="LN86">86</td><td class="line"> <span class='string_literal'>"BASH"</span>, <span class='string_literal'>"BASK"</span>, <span class='string_literal'>"BASS"</span>, <span class='string_literal'>"BATE"</span>, <span class='string_literal'>"BATH"</span>, <span class='string_literal'>"BAWD"</span>, <span class='string_literal'>"BAWL"</span>, <span class='string_literal'>"BEAD"</span>, <span class='string_literal'>"BEAK"</span>,</td></tr>
+<tr class="codeline" data-linenumber="87"><td class="num" id="LN87">87</td><td class="line"> <span class='string_literal'>"BEAM"</span>, <span class='string_literal'>"BEAN"</span>, <span class='string_literal'>"BEAR"</span>, <span class='string_literal'>"BEAT"</span>, <span class='string_literal'>"BEAU"</span>, <span class='string_literal'>"BECK"</span>, <span class='string_literal'>"BEEF"</span>, <span class='string_literal'>"BEEN"</span>, <span class='string_literal'>"BEER"</span>,</td></tr>
+<tr class="codeline" data-linenumber="88"><td class="num" id="LN88">88</td><td class="line"> <span class='string_literal'>"BEET"</span>, <span class='string_literal'>"BELA"</span>, <span class='string_literal'>"BELL"</span>, <span class='string_literal'>"BELT"</span>, <span class='string_literal'>"BEND"</span>, <span class='string_literal'>"BENT"</span>, <span class='string_literal'>"BERG"</span>, <span class='string_literal'>"BERN"</span>, <span class='string_literal'>"BERT"</span>,</td></tr>
+<tr class="codeline" data-linenumber="89"><td class="num" id="LN89">89</td><td class="line"> <span class='string_literal'>"BESS"</span>, <span class='string_literal'>"BEST"</span>, <span class='string_literal'>"BETA"</span>, <span class='string_literal'>"BETH"</span>, <span class='string_literal'>"BHOY"</span>, <span class='string_literal'>"BIAS"</span>, <span class='string_literal'>"BIDE"</span>, <span class='string_literal'>"BIEN"</span>, <span class='string_literal'>"BILE"</span>,</td></tr>
+<tr class="codeline" data-linenumber="90"><td class="num" id="LN90">90</td><td class="line"> <span class='string_literal'>"BILK"</span>, <span class='string_literal'>"BILL"</span>, <span class='string_literal'>"BIND"</span>, <span class='string_literal'>"BING"</span>, <span class='string_literal'>"BIRD"</span>, <span class='string_literal'>"BITE"</span>, <span class='string_literal'>"BITS"</span>, <span class='string_literal'>"BLAB"</span>, <span class='string_literal'>"BLAT"</span>,</td></tr>
+<tr class="codeline" data-linenumber="91"><td class="num" id="LN91">91</td><td class="line"> <span class='string_literal'>"BLED"</span>, <span class='string_literal'>"BLEW"</span>, <span class='string_literal'>"BLOB"</span>, <span class='string_literal'>"BLOC"</span>, <span class='string_literal'>"BLOT"</span>, <span class='string_literal'>"BLOW"</span>, <span class='string_literal'>"BLUE"</span>, <span class='string_literal'>"BLUM"</span>, <span class='string_literal'>"BLUR"</span>,</td></tr>
+<tr class="codeline" data-linenumber="92"><td class="num" id="LN92">92</td><td class="line"> <span class='string_literal'>"BOAR"</span>, <span class='string_literal'>"BOAT"</span>, <span class='string_literal'>"BOCA"</span>, <span class='string_literal'>"BOCK"</span>, <span class='string_literal'>"BODE"</span>, <span class='string_literal'>"BODY"</span>, <span class='string_literal'>"BOGY"</span>, <span class='string_literal'>"BOHR"</span>, <span class='string_literal'>"BOIL"</span>,</td></tr>
+<tr class="codeline" data-linenumber="93"><td class="num" id="LN93">93</td><td class="line"> <span class='string_literal'>"BOLD"</span>, <span class='string_literal'>"BOLO"</span>, <span class='string_literal'>"BOLT"</span>, <span class='string_literal'>"BOMB"</span>, <span class='string_literal'>"BONA"</span>, <span class='string_literal'>"BOND"</span>, <span class='string_literal'>"BONE"</span>, <span class='string_literal'>"BONG"</span>, <span class='string_literal'>"BONN"</span>,</td></tr>
+<tr class="codeline" data-linenumber="94"><td class="num" id="LN94">94</td><td class="line"> <span class='string_literal'>"BONY"</span>, <span class='string_literal'>"BOOK"</span>, <span class='string_literal'>"BOOM"</span>, <span class='string_literal'>"BOON"</span>, <span class='string_literal'>"BOOT"</span>, <span class='string_literal'>"BORE"</span>, <span class='string_literal'>"BORG"</span>, <span class='string_literal'>"BORN"</span>, <span class='string_literal'>"BOSE"</span>,</td></tr>
+<tr class="codeline" data-linenumber="95"><td class="num" id="LN95">95</td><td class="line"> <span class='string_literal'>"BOSS"</span>, <span class='string_literal'>"BOTH"</span>, <span class='string_literal'>"BOUT"</span>, <span class='string_literal'>"BOWL"</span>, <span class='string_literal'>"BOYD"</span>, <span class='string_literal'>"BRAD"</span>, <span class='string_literal'>"BRAE"</span>, <span class='string_literal'>"BRAG"</span>, <span class='string_literal'>"BRAN"</span>,</td></tr>
+<tr class="codeline" data-linenumber="96"><td class="num" id="LN96">96</td><td class="line"> <span class='string_literal'>"BRAY"</span>, <span class='string_literal'>"BRED"</span>, <span class='string_literal'>"BREW"</span>, <span class='string_literal'>"BRIG"</span>, <span class='string_literal'>"BRIM"</span>, <span class='string_literal'>"BROW"</span>, <span class='string_literal'>"BUCK"</span>, <span class='string_literal'>"BUDD"</span>, <span class='string_literal'>"BUFF"</span>,</td></tr>
+<tr class="codeline" data-linenumber="97"><td class="num" id="LN97">97</td><td class="line"> <span class='string_literal'>"BULB"</span>, <span class='string_literal'>"BULK"</span>, <span class='string_literal'>"BULL"</span>, <span class='string_literal'>"BUNK"</span>, <span class='string_literal'>"BUNT"</span>, <span class='string_literal'>"BUOY"</span>, <span class='string_literal'>"BURG"</span>, <span class='string_literal'>"BURL"</span>, <span class='string_literal'>"BURN"</span>,</td></tr>
+<tr class="codeline" data-linenumber="98"><td class="num" id="LN98">98</td><td class="line"> <span class='string_literal'>"BURR"</span>, <span class='string_literal'>"BURT"</span>, <span class='string_literal'>"BURY"</span>, <span class='string_literal'>"BUSH"</span>, <span class='string_literal'>"BUSS"</span>, <span class='string_literal'>"BUST"</span>, <span class='string_literal'>"BUSY"</span>, <span class='string_literal'>"BYTE"</span>, <span class='string_literal'>"CADY"</span>,</td></tr>
+<tr class="codeline" data-linenumber="99"><td class="num" id="LN99">99</td><td class="line"> <span class='string_literal'>"CAFE"</span>, <span class='string_literal'>"CAGE"</span>, <span class='string_literal'>"CAIN"</span>, <span class='string_literal'>"CAKE"</span>, <span class='string_literal'>"CALF"</span>, <span class='string_literal'>"CALL"</span>, <span class='string_literal'>"CALM"</span>, <span class='string_literal'>"CAME"</span>, <span class='string_literal'>"CANE"</span>,</td></tr>
+<tr class="codeline" data-linenumber="100"><td class="num" id="LN100">100</td><td class="line"> <span class='string_literal'>"CANT"</span>, <span class='string_literal'>"CARD"</span>, <span class='string_literal'>"CARE"</span>, <span class='string_literal'>"CARL"</span>, <span class='string_literal'>"CARR"</span>, <span class='string_literal'>"CART"</span>, <span class='string_literal'>"CASE"</span>, <span class='string_literal'>"CASH"</span>, <span class='string_literal'>"CASK"</span>,</td></tr>
+<tr class="codeline" data-linenumber="101"><td class="num" id="LN101">101</td><td class="line"> <span class='string_literal'>"CAST"</span>, <span class='string_literal'>"CAVE"</span>, <span class='string_literal'>"CEIL"</span>, <span class='string_literal'>"CELL"</span>, <span class='string_literal'>"CENT"</span>, <span class='string_literal'>"CERN"</span>, <span class='string_literal'>"CHAD"</span>, <span class='string_literal'>"CHAR"</span>, <span class='string_literal'>"CHAT"</span>,</td></tr>
+<tr class="codeline" data-linenumber="102"><td class="num" id="LN102">102</td><td class="line"> <span class='string_literal'>"CHAW"</span>, <span class='string_literal'>"CHEF"</span>, <span class='string_literal'>"CHEN"</span>, <span class='string_literal'>"CHEW"</span>, <span class='string_literal'>"CHIC"</span>, <span class='string_literal'>"CHIN"</span>, <span class='string_literal'>"CHOU"</span>, <span class='string_literal'>"CHOW"</span>, <span class='string_literal'>"CHUB"</span>,</td></tr>
+<tr class="codeline" data-linenumber="103"><td class="num" id="LN103">103</td><td class="line"> <span class='string_literal'>"CHUG"</span>, <span class='string_literal'>"CHUM"</span>, <span class='string_literal'>"CITE"</span>, <span class='string_literal'>"CITY"</span>, <span class='string_literal'>"CLAD"</span>, <span class='string_literal'>"CLAM"</span>, <span class='string_literal'>"CLAN"</span>, <span class='string_literal'>"CLAW"</span>, <span class='string_literal'>"CLAY"</span>,</td></tr>
+<tr class="codeline" data-linenumber="104"><td class="num" id="LN104">104</td><td class="line"> <span class='string_literal'>"CLOD"</span>, <span class='string_literal'>"CLOG"</span>, <span class='string_literal'>"CLOT"</span>, <span class='string_literal'>"CLUB"</span>, <span class='string_literal'>"CLUE"</span>, <span class='string_literal'>"COAL"</span>, <span class='string_literal'>"COAT"</span>, <span class='string_literal'>"COCA"</span>, <span class='string_literal'>"COCK"</span>,</td></tr>
+<tr class="codeline" data-linenumber="105"><td class="num" id="LN105">105</td><td class="line"> <span class='string_literal'>"COCO"</span>, <span class='string_literal'>"CODA"</span>, <span class='string_literal'>"CODE"</span>, <span class='string_literal'>"CODY"</span>, <span class='string_literal'>"COED"</span>, <span class='string_literal'>"COIL"</span>, <span class='string_literal'>"COIN"</span>, <span class='string_literal'>"COKE"</span>, <span class='string_literal'>"COLA"</span>,</td></tr>
+<tr class="codeline" data-linenumber="106"><td class="num" id="LN106">106</td><td class="line"> <span class='string_literal'>"COLD"</span>, <span class='string_literal'>"COLT"</span>, <span class='string_literal'>"COMA"</span>, <span class='string_literal'>"COMB"</span>, <span class='string_literal'>"COME"</span>, <span class='string_literal'>"COOK"</span>, <span class='string_literal'>"COOL"</span>, <span class='string_literal'>"COON"</span>, <span class='string_literal'>"COOT"</span>,</td></tr>
+<tr class="codeline" data-linenumber="107"><td class="num" id="LN107">107</td><td class="line"> <span class='string_literal'>"CORD"</span>, <span class='string_literal'>"CORE"</span>, <span class='string_literal'>"CORK"</span>, <span class='string_literal'>"CORN"</span>, <span class='string_literal'>"COST"</span>, <span class='string_literal'>"COVE"</span>, <span class='string_literal'>"COWL"</span>, <span class='string_literal'>"CRAB"</span>, <span class='string_literal'>"CRAG"</span>,</td></tr>
+<tr class="codeline" data-linenumber="108"><td class="num" id="LN108">108</td><td class="line"> <span class='string_literal'>"CRAM"</span>, <span class='string_literal'>"CRAY"</span>, <span class='string_literal'>"CREW"</span>, <span class='string_literal'>"CRIB"</span>, <span class='string_literal'>"CROW"</span>, <span class='string_literal'>"CRUD"</span>, <span class='string_literal'>"CUBA"</span>, <span class='string_literal'>"CUBE"</span>, <span class='string_literal'>"CUFF"</span>,</td></tr>
+<tr class="codeline" data-linenumber="109"><td class="num" id="LN109">109</td><td class="line"> <span class='string_literal'>"CULL"</span>, <span class='string_literal'>"CULT"</span>, <span class='string_literal'>"CUNY"</span>, <span class='string_literal'>"CURB"</span>, <span class='string_literal'>"CURD"</span>, <span class='string_literal'>"CURE"</span>, <span class='string_literal'>"CURL"</span>, <span class='string_literal'>"CURT"</span>, <span class='string_literal'>"CUTS"</span>,</td></tr>
+<tr class="codeline" data-linenumber="110"><td class="num" id="LN110">110</td><td class="line"> <span class='string_literal'>"DADE"</span>, <span class='string_literal'>"DALE"</span>, <span class='string_literal'>"DAME"</span>, <span class='string_literal'>"DANA"</span>, <span class='string_literal'>"DANE"</span>, <span class='string_literal'>"DANG"</span>, <span class='string_literal'>"DANK"</span>, <span class='string_literal'>"DARE"</span>, <span class='string_literal'>"DARK"</span>,</td></tr>
+<tr class="codeline" data-linenumber="111"><td class="num" id="LN111">111</td><td class="line"> <span class='string_literal'>"DARN"</span>, <span class='string_literal'>"DART"</span>, <span class='string_literal'>"DASH"</span>, <span class='string_literal'>"DATA"</span>, <span class='string_literal'>"DATE"</span>, <span class='string_literal'>"DAVE"</span>, <span class='string_literal'>"DAVY"</span>, <span class='string_literal'>"DAWN"</span>, <span class='string_literal'>"DAYS"</span>,</td></tr>
+<tr class="codeline" data-linenumber="112"><td class="num" id="LN112">112</td><td class="line"> <span class='string_literal'>"DEAD"</span>, <span class='string_literal'>"DEAF"</span>, <span class='string_literal'>"DEAL"</span>, <span class='string_literal'>"DEAN"</span>, <span class='string_literal'>"DEAR"</span>, <span class='string_literal'>"DEBT"</span>, <span class='string_literal'>"DECK"</span>, <span class='string_literal'>"DEED"</span>, <span class='string_literal'>"DEEM"</span>,</td></tr>
+<tr class="codeline" data-linenumber="113"><td class="num" id="LN113">113</td><td class="line"> <span class='string_literal'>"DEER"</span>, <span class='string_literal'>"DEFT"</span>, <span class='string_literal'>"DEFY"</span>, <span class='string_literal'>"DELL"</span>, <span class='string_literal'>"DENT"</span>, <span class='string_literal'>"DENY"</span>, <span class='string_literal'>"DESK"</span>, <span class='string_literal'>"DIAL"</span>, <span class='string_literal'>"DICE"</span>,</td></tr>
+<tr class="codeline" data-linenumber="114"><td class="num" id="LN114">114</td><td class="line"> <span class='string_literal'>"DIED"</span>, <span class='string_literal'>"DIET"</span>, <span class='string_literal'>"DIME"</span>, <span class='string_literal'>"DINE"</span>, <span class='string_literal'>"DING"</span>, <span class='string_literal'>"DINT"</span>, <span class='string_literal'>"DIRE"</span>, <span class='string_literal'>"DIRT"</span>, <span class='string_literal'>"DISC"</span>,</td></tr>
+<tr class="codeline" data-linenumber="115"><td class="num" id="LN115">115</td><td class="line"> <span class='string_literal'>"DISH"</span>, <span class='string_literal'>"DISK"</span>, <span class='string_literal'>"DIVE"</span>, <span class='string_literal'>"DOCK"</span>, <span class='string_literal'>"DOES"</span>, <span class='string_literal'>"DOLE"</span>, <span class='string_literal'>"DOLL"</span>, <span class='string_literal'>"DOLT"</span>, <span class='string_literal'>"DOME"</span>,</td></tr>
+<tr class="codeline" data-linenumber="116"><td class="num" id="LN116">116</td><td class="line"> <span class='string_literal'>"DONE"</span>, <span class='string_literal'>"DOOM"</span>, <span class='string_literal'>"DOOR"</span>, <span class='string_literal'>"DORA"</span>, <span class='string_literal'>"DOSE"</span>, <span class='string_literal'>"DOTE"</span>, <span class='string_literal'>"DOUG"</span>, <span class='string_literal'>"DOUR"</span>, <span class='string_literal'>"DOVE"</span>,</td></tr>
+<tr class="codeline" data-linenumber="117"><td class="num" id="LN117">117</td><td class="line"> <span class='string_literal'>"DOWN"</span>, <span class='string_literal'>"DRAB"</span>, <span class='string_literal'>"DRAG"</span>, <span class='string_literal'>"DRAM"</span>, <span class='string_literal'>"DRAW"</span>, <span class='string_literal'>"DREW"</span>, <span class='string_literal'>"DRUB"</span>, <span class='string_literal'>"DRUG"</span>, <span class='string_literal'>"DRUM"</span>,</td></tr>
+<tr class="codeline" data-linenumber="118"><td class="num" id="LN118">118</td><td class="line"> <span class='string_literal'>"DUAL"</span>, <span class='string_literal'>"DUCK"</span>, <span class='string_literal'>"DUCT"</span>, <span class='string_literal'>"DUEL"</span>, <span class='string_literal'>"DUET"</span>, <span class='string_literal'>"DUKE"</span>, <span class='string_literal'>"DULL"</span>, <span class='string_literal'>"DUMB"</span>, <span class='string_literal'>"DUNE"</span>,</td></tr>
+<tr class="codeline" data-linenumber="119"><td class="num" id="LN119">119</td><td class="line"> <span class='string_literal'>"DUNK"</span>, <span class='string_literal'>"DUSK"</span>, <span class='string_literal'>"DUST"</span>, <span class='string_literal'>"DUTY"</span>, <span class='string_literal'>"EACH"</span>, <span class='string_literal'>"EARL"</span>, <span class='string_literal'>"EARN"</span>, <span class='string_literal'>"EASE"</span>, <span class='string_literal'>"EAST"</span>,</td></tr>
+<tr class="codeline" data-linenumber="120"><td class="num" id="LN120">120</td><td class="line"> <span class='string_literal'>"EASY"</span>, <span class='string_literal'>"EBEN"</span>, <span class='string_literal'>"ECHO"</span>, <span class='string_literal'>"EDDY"</span>, <span class='string_literal'>"EDEN"</span>, <span class='string_literal'>"EDGE"</span>, <span class='string_literal'>"EDGY"</span>, <span class='string_literal'>"EDIT"</span>, <span class='string_literal'>"EDNA"</span>,</td></tr>
+<tr class="codeline" data-linenumber="121"><td class="num" id="LN121">121</td><td class="line"> <span class='string_literal'>"EGAN"</span>, <span class='string_literal'>"ELAN"</span>, <span class='string_literal'>"ELBA"</span>, <span class='string_literal'>"ELLA"</span>, <span class='string_literal'>"ELSE"</span>, <span class='string_literal'>"EMIL"</span>, <span class='string_literal'>"EMIT"</span>, <span class='string_literal'>"EMMA"</span>, <span class='string_literal'>"ENDS"</span>,</td></tr>
+<tr class="codeline" data-linenumber="122"><td class="num" id="LN122">122</td><td class="line"> <span class='string_literal'>"ERIC"</span>, <span class='string_literal'>"EROS"</span>, <span class='string_literal'>"EVEN"</span>, <span class='string_literal'>"EVER"</span>, <span class='string_literal'>"EVIL"</span>, <span class='string_literal'>"EYED"</span>, <span class='string_literal'>"FACE"</span>, <span class='string_literal'>"FACT"</span>, <span class='string_literal'>"FADE"</span>,</td></tr>
+<tr class="codeline" data-linenumber="123"><td class="num" id="LN123">123</td><td class="line"> <span class='string_literal'>"FAIL"</span>, <span class='string_literal'>"FAIN"</span>, <span class='string_literal'>"FAIR"</span>, <span class='string_literal'>"FAKE"</span>, <span class='string_literal'>"FALL"</span>, <span class='string_literal'>"FAME"</span>, <span class='string_literal'>"FANG"</span>, <span class='string_literal'>"FARM"</span>, <span class='string_literal'>"FAST"</span>,</td></tr>
+<tr class="codeline" data-linenumber="124"><td class="num" id="LN124">124</td><td class="line"> <span class='string_literal'>"FATE"</span>, <span class='string_literal'>"FAWN"</span>, <span class='string_literal'>"FEAR"</span>, <span class='string_literal'>"FEAT"</span>, <span class='string_literal'>"FEED"</span>, <span class='string_literal'>"FEEL"</span>, <span class='string_literal'>"FEET"</span>, <span class='string_literal'>"FELL"</span>, <span class='string_literal'>"FELT"</span>,</td></tr>
+<tr class="codeline" data-linenumber="125"><td class="num" id="LN125">125</td><td class="line"> <span class='string_literal'>"FEND"</span>, <span class='string_literal'>"FERN"</span>, <span class='string_literal'>"FEST"</span>, <span class='string_literal'>"FEUD"</span>, <span class='string_literal'>"FIEF"</span>, <span class='string_literal'>"FIGS"</span>, <span class='string_literal'>"FILE"</span>, <span class='string_literal'>"FILL"</span>, <span class='string_literal'>"FILM"</span>,</td></tr>
+<tr class="codeline" data-linenumber="126"><td class="num" id="LN126">126</td><td class="line"> <span class='string_literal'>"FIND"</span>, <span class='string_literal'>"FINE"</span>, <span class='string_literal'>"FINK"</span>, <span class='string_literal'>"FIRE"</span>, <span class='string_literal'>"FIRM"</span>, <span class='string_literal'>"FISH"</span>, <span class='string_literal'>"FISK"</span>, <span class='string_literal'>"FIST"</span>, <span class='string_literal'>"FITS"</span>,</td></tr>
+<tr class="codeline" data-linenumber="127"><td class="num" id="LN127">127</td><td class="line"> <span class='string_literal'>"FIVE"</span>, <span class='string_literal'>"FLAG"</span>, <span class='string_literal'>"FLAK"</span>, <span class='string_literal'>"FLAM"</span>, <span class='string_literal'>"FLAT"</span>, <span class='string_literal'>"FLAW"</span>, <span class='string_literal'>"FLEA"</span>, <span class='string_literal'>"FLED"</span>, <span class='string_literal'>"FLEW"</span>,</td></tr>
+<tr class="codeline" data-linenumber="128"><td class="num" id="LN128">128</td><td class="line"> <span class='string_literal'>"FLIT"</span>, <span class='string_literal'>"FLOC"</span>, <span class='string_literal'>"FLOG"</span>, <span class='string_literal'>"FLOW"</span>, <span class='string_literal'>"FLUB"</span>, <span class='string_literal'>"FLUE"</span>, <span class='string_literal'>"FOAL"</span>, <span class='string_literal'>"FOAM"</span>, <span class='string_literal'>"FOGY"</span>,</td></tr>
+<tr class="codeline" data-linenumber="129"><td class="num" id="LN129">129</td><td class="line"> <span class='string_literal'>"FOIL"</span>, <span class='string_literal'>"FOLD"</span>, <span class='string_literal'>"FOLK"</span>, <span class='string_literal'>"FOND"</span>, <span class='string_literal'>"FONT"</span>, <span class='string_literal'>"FOOD"</span>, <span class='string_literal'>"FOOL"</span>, <span class='string_literal'>"FOOT"</span>, <span class='string_literal'>"FORD"</span>,</td></tr>
+<tr class="codeline" data-linenumber="130"><td class="num" id="LN130">130</td><td class="line"> <span class='string_literal'>"FORE"</span>, <span class='string_literal'>"FORK"</span>, <span class='string_literal'>"FORM"</span>, <span class='string_literal'>"FORT"</span>, <span class='string_literal'>"FOSS"</span>, <span class='string_literal'>"FOUL"</span>, <span class='string_literal'>"FOUR"</span>, <span class='string_literal'>"FOWL"</span>, <span class='string_literal'>"FRAU"</span>,</td></tr>
+<tr class="codeline" data-linenumber="131"><td class="num" id="LN131">131</td><td class="line"> <span class='string_literal'>"FRAY"</span>, <span class='string_literal'>"FRED"</span>, <span class='string_literal'>"FREE"</span>, <span class='string_literal'>"FRET"</span>, <span class='string_literal'>"FREY"</span>, <span class='string_literal'>"FROG"</span>, <span class='string_literal'>"FROM"</span>, <span class='string_literal'>"FUEL"</span>, <span class='string_literal'>"FULL"</span>,</td></tr>
+<tr class="codeline" data-linenumber="132"><td class="num" id="LN132">132</td><td class="line"> <span class='string_literal'>"FUME"</span>, <span class='string_literal'>"FUND"</span>, <span class='string_literal'>"FUNK"</span>, <span class='string_literal'>"FURY"</span>, <span class='string_literal'>"FUSE"</span>, <span class='string_literal'>"FUSS"</span>, <span class='string_literal'>"GAFF"</span>, <span class='string_literal'>"GAGE"</span>, <span class='string_literal'>"GAIL"</span>,</td></tr>
+<tr class="codeline" data-linenumber="133"><td class="num" id="LN133">133</td><td class="line"> <span class='string_literal'>"GAIN"</span>, <span class='string_literal'>"GAIT"</span>, <span class='string_literal'>"GALA"</span>, <span class='string_literal'>"GALE"</span>, <span class='string_literal'>"GALL"</span>, <span class='string_literal'>"GALT"</span>, <span class='string_literal'>"GAME"</span>, <span class='string_literal'>"GANG"</span>, <span class='string_literal'>"GARB"</span>,</td></tr>
+<tr class="codeline" data-linenumber="134"><td class="num" id="LN134">134</td><td class="line"> <span class='string_literal'>"GARY"</span>, <span class='string_literal'>"GASH"</span>, <span class='string_literal'>"GATE"</span>, <span class='string_literal'>"GAUL"</span>, <span class='string_literal'>"GAUR"</span>, <span class='string_literal'>"GAVE"</span>, <span class='string_literal'>"GAWK"</span>, <span class='string_literal'>"GEAR"</span>, <span class='string_literal'>"GELD"</span>,</td></tr>
+<tr class="codeline" data-linenumber="135"><td class="num" id="LN135">135</td><td class="line"> <span class='string_literal'>"GENE"</span>, <span class='string_literal'>"GENT"</span>, <span class='string_literal'>"GERM"</span>, <span class='string_literal'>"GETS"</span>, <span class='string_literal'>"GIBE"</span>, <span class='string_literal'>"GIFT"</span>, <span class='string_literal'>"GILD"</span>, <span class='string_literal'>"GILL"</span>, <span class='string_literal'>"GILT"</span>,</td></tr>
+<tr class="codeline" data-linenumber="136"><td class="num" id="LN136">136</td><td class="line"> <span class='string_literal'>"GINA"</span>, <span class='string_literal'>"GIRD"</span>, <span class='string_literal'>"GIRL"</span>, <span class='string_literal'>"GIST"</span>, <span class='string_literal'>"GIVE"</span>, <span class='string_literal'>"GLAD"</span>, <span class='string_literal'>"GLEE"</span>, <span class='string_literal'>"GLEN"</span>, <span class='string_literal'>"GLIB"</span>,</td></tr>
+<tr class="codeline" data-linenumber="137"><td class="num" id="LN137">137</td><td class="line"> <span class='string_literal'>"GLOB"</span>, <span class='string_literal'>"GLOM"</span>, <span class='string_literal'>"GLOW"</span>, <span class='string_literal'>"GLUE"</span>, <span class='string_literal'>"GLUM"</span>, <span class='string_literal'>"GLUT"</span>, <span class='string_literal'>"GOAD"</span>, <span class='string_literal'>"GOAL"</span>, <span class='string_literal'>"GOAT"</span>,</td></tr>
+<tr class="codeline" data-linenumber="138"><td class="num" id="LN138">138</td><td class="line"> <span class='string_literal'>"GOER"</span>, <span class='string_literal'>"GOES"</span>, <span class='string_literal'>"GOLD"</span>, <span class='string_literal'>"GOLF"</span>, <span class='string_literal'>"GONE"</span>, <span class='string_literal'>"GONG"</span>, <span class='string_literal'>"GOOD"</span>, <span class='string_literal'>"GOOF"</span>, <span class='string_literal'>"GORE"</span>,</td></tr>
+<tr class="codeline" data-linenumber="139"><td class="num" id="LN139">139</td><td class="line"> <span class='string_literal'>"GORY"</span>, <span class='string_literal'>"GOSH"</span>, <span class='string_literal'>"GOUT"</span>, <span class='string_literal'>"GOWN"</span>, <span class='string_literal'>"GRAB"</span>, <span class='string_literal'>"GRAD"</span>, <span class='string_literal'>"GRAY"</span>, <span class='string_literal'>"GREG"</span>, <span class='string_literal'>"GREW"</span>,</td></tr>
+<tr class="codeline" data-linenumber="140"><td class="num" id="LN140">140</td><td class="line"> <span class='string_literal'>"GREY"</span>, <span class='string_literal'>"GRID"</span>, <span class='string_literal'>"GRIM"</span>, <span class='string_literal'>"GRIN"</span>, <span class='string_literal'>"GRIT"</span>, <span class='string_literal'>"GROW"</span>, <span class='string_literal'>"GRUB"</span>, <span class='string_literal'>"GULF"</span>, <span class='string_literal'>"GULL"</span>,</td></tr>
+<tr class="codeline" data-linenumber="141"><td class="num" id="LN141">141</td><td class="line"> <span class='string_literal'>"GUNK"</span>, <span class='string_literal'>"GURU"</span>, <span class='string_literal'>"GUSH"</span>, <span class='string_literal'>"GUST"</span>, <span class='string_literal'>"GWEN"</span>, <span class='string_literal'>"GWYN"</span>, <span class='string_literal'>"HAAG"</span>, <span class='string_literal'>"HAAS"</span>, <span class='string_literal'>"HACK"</span>,</td></tr>
+<tr class="codeline" data-linenumber="142"><td class="num" id="LN142">142</td><td class="line"> <span class='string_literal'>"HAIL"</span>, <span class='string_literal'>"HAIR"</span>, <span class='string_literal'>"HALE"</span>, <span class='string_literal'>"HALF"</span>, <span class='string_literal'>"HALL"</span>, <span class='string_literal'>"HALO"</span>, <span class='string_literal'>"HALT"</span>, <span class='string_literal'>"HAND"</span>, <span class='string_literal'>"HANG"</span>,</td></tr>
+<tr class="codeline" data-linenumber="143"><td class="num" id="LN143">143</td><td class="line"> <span class='string_literal'>"HANK"</span>, <span class='string_literal'>"HANS"</span>, <span class='string_literal'>"HARD"</span>, <span class='string_literal'>"HARK"</span>, <span class='string_literal'>"HARM"</span>, <span class='string_literal'>"HART"</span>, <span class='string_literal'>"HASH"</span>, <span class='string_literal'>"HAST"</span>, <span class='string_literal'>"HATE"</span>,</td></tr>
+<tr class="codeline" data-linenumber="144"><td class="num" id="LN144">144</td><td class="line"> <span class='string_literal'>"HATH"</span>, <span class='string_literal'>"HAUL"</span>, <span class='string_literal'>"HAVE"</span>, <span class='string_literal'>"HAWK"</span>, <span class='string_literal'>"HAYS"</span>, <span class='string_literal'>"HEAD"</span>, <span class='string_literal'>"HEAL"</span>, <span class='string_literal'>"HEAR"</span>, <span class='string_literal'>"HEAT"</span>,</td></tr>
+<tr class="codeline" data-linenumber="145"><td class="num" id="LN145">145</td><td class="line"> <span class='string_literal'>"HEBE"</span>, <span class='string_literal'>"HECK"</span>, <span class='string_literal'>"HEED"</span>, <span class='string_literal'>"HEEL"</span>, <span class='string_literal'>"HEFT"</span>, <span class='string_literal'>"HELD"</span>, <span class='string_literal'>"HELL"</span>, <span class='string_literal'>"HELM"</span>, <span class='string_literal'>"HERB"</span>,</td></tr>
+<tr class="codeline" data-linenumber="146"><td class="num" id="LN146">146</td><td class="line"> <span class='string_literal'>"HERD"</span>, <span class='string_literal'>"HERE"</span>, <span class='string_literal'>"HERO"</span>, <span class='string_literal'>"HERS"</span>, <span class='string_literal'>"HESS"</span>, <span class='string_literal'>"HEWN"</span>, <span class='string_literal'>"HICK"</span>, <span class='string_literal'>"HIDE"</span>, <span class='string_literal'>"HIGH"</span>,</td></tr>
+<tr class="codeline" data-linenumber="147"><td class="num" id="LN147">147</td><td class="line"> <span class='string_literal'>"HIKE"</span>, <span class='string_literal'>"HILL"</span>, <span class='string_literal'>"HILT"</span>, <span class='string_literal'>"HIND"</span>, <span class='string_literal'>"HINT"</span>, <span class='string_literal'>"HIRE"</span>, <span class='string_literal'>"HISS"</span>, <span class='string_literal'>"HIVE"</span>, <span class='string_literal'>"HOBO"</span>,</td></tr>
+<tr class="codeline" data-linenumber="148"><td class="num" id="LN148">148</td><td class="line"> <span class='string_literal'>"HOCK"</span>, <span class='string_literal'>"HOFF"</span>, <span class='string_literal'>"HOLD"</span>, <span class='string_literal'>"HOLE"</span>, <span class='string_literal'>"HOLM"</span>, <span class='string_literal'>"HOLT"</span>, <span class='string_literal'>"HOME"</span>, <span class='string_literal'>"HONE"</span>, <span class='string_literal'>"HONK"</span>,</td></tr>
+<tr class="codeline" data-linenumber="149"><td class="num" id="LN149">149</td><td class="line"> <span class='string_literal'>"HOOD"</span>, <span class='string_literal'>"HOOF"</span>, <span class='string_literal'>"HOOK"</span>, <span class='string_literal'>"HOOT"</span>, <span class='string_literal'>"HORN"</span>, <span class='string_literal'>"HOSE"</span>, <span class='string_literal'>"HOST"</span>, <span class='string_literal'>"HOUR"</span>, <span class='string_literal'>"HOVE"</span>,</td></tr>
+<tr class="codeline" data-linenumber="150"><td class="num" id="LN150">150</td><td class="line"> <span class='string_literal'>"HOWE"</span>, <span class='string_literal'>"HOWL"</span>, <span class='string_literal'>"HOYT"</span>, <span class='string_literal'>"HUCK"</span>, <span class='string_literal'>"HUED"</span>, <span class='string_literal'>"HUFF"</span>, <span class='string_literal'>"HUGE"</span>, <span class='string_literal'>"HUGH"</span>, <span class='string_literal'>"HUGO"</span>,</td></tr>
+<tr class="codeline" data-linenumber="151"><td class="num" id="LN151">151</td><td class="line"> <span class='string_literal'>"HULK"</span>, <span class='string_literal'>"HULL"</span>, <span class='string_literal'>"HUNK"</span>, <span class='string_literal'>"HUNT"</span>, <span class='string_literal'>"HURD"</span>, <span class='string_literal'>"HURL"</span>, <span class='string_literal'>"HURT"</span>, <span class='string_literal'>"HUSH"</span>, <span class='string_literal'>"HYDE"</span>,</td></tr>
+<tr class="codeline" data-linenumber="152"><td class="num" id="LN152">152</td><td class="line"> <span class='string_literal'>"HYMN"</span>, <span class='string_literal'>"IBIS"</span>, <span class='string_literal'>"ICON"</span>, <span class='string_literal'>"IDEA"</span>, <span class='string_literal'>"IDLE"</span>, <span class='string_literal'>"IFFY"</span>, <span class='string_literal'>"INCA"</span>, <span class='string_literal'>"INCH"</span>, <span class='string_literal'>"INTO"</span>,</td></tr>
+<tr class="codeline" data-linenumber="153"><td class="num" id="LN153">153</td><td class="line"> <span class='string_literal'>"IONS"</span>, <span class='string_literal'>"IOTA"</span>, <span class='string_literal'>"IOWA"</span>, <span class='string_literal'>"IRIS"</span>, <span class='string_literal'>"IRMA"</span>, <span class='string_literal'>"IRON"</span>, <span class='string_literal'>"ISLE"</span>, <span class='string_literal'>"ITCH"</span>, <span class='string_literal'>"ITEM"</span>,</td></tr>
+<tr class="codeline" data-linenumber="154"><td class="num" id="LN154">154</td><td class="line"> <span class='string_literal'>"IVAN"</span>, <span class='string_literal'>"JACK"</span>, <span class='string_literal'>"JADE"</span>, <span class='string_literal'>"JAIL"</span>, <span class='string_literal'>"JAKE"</span>, <span class='string_literal'>"JANE"</span>, <span class='string_literal'>"JAVA"</span>, <span class='string_literal'>"JEAN"</span>, <span class='string_literal'>"JEFF"</span>,</td></tr>
+<tr class="codeline" data-linenumber="155"><td class="num" id="LN155">155</td><td class="line"> <span class='string_literal'>"JERK"</span>, <span class='string_literal'>"JESS"</span>, <span class='string_literal'>"JEST"</span>, <span class='string_literal'>"JIBE"</span>, <span class='string_literal'>"JILL"</span>, <span class='string_literal'>"JILT"</span>, <span class='string_literal'>"JIVE"</span>, <span class='string_literal'>"JOAN"</span>, <span class='string_literal'>"JOBS"</span>,</td></tr>
+<tr class="codeline" data-linenumber="156"><td class="num" id="LN156">156</td><td class="line"> <span class='string_literal'>"JOCK"</span>, <span class='string_literal'>"JOEL"</span>, <span class='string_literal'>"JOEY"</span>, <span class='string_literal'>"JOHN"</span>, <span class='string_literal'>"JOIN"</span>, <span class='string_literal'>"JOKE"</span>, <span class='string_literal'>"JOLT"</span>, <span class='string_literal'>"JOVE"</span>, <span class='string_literal'>"JUDD"</span>,</td></tr>
+<tr class="codeline" data-linenumber="157"><td class="num" id="LN157">157</td><td class="line"> <span class='string_literal'>"JUDE"</span>, <span class='string_literal'>"JUDO"</span>, <span class='string_literal'>"JUDY"</span>, <span class='string_literal'>"JUJU"</span>, <span class='string_literal'>"JUKE"</span>, <span class='string_literal'>"JULY"</span>, <span class='string_literal'>"JUNE"</span>, <span class='string_literal'>"JUNK"</span>, <span class='string_literal'>"JUNO"</span>,</td></tr>
+<tr class="codeline" data-linenumber="158"><td class="num" id="LN158">158</td><td class="line"> <span class='string_literal'>"JURY"</span>, <span class='string_literal'>"JUST"</span>, <span class='string_literal'>"JUTE"</span>, <span class='string_literal'>"KAHN"</span>, <span class='string_literal'>"KALE"</span>, <span class='string_literal'>"KANE"</span>, <span class='string_literal'>"KANT"</span>, <span class='string_literal'>"KARL"</span>, <span class='string_literal'>"KATE"</span>,</td></tr>
+<tr class="codeline" data-linenumber="159"><td class="num" id="LN159">159</td><td class="line"> <span class='string_literal'>"KEEL"</span>, <span class='string_literal'>"KEEN"</span>, <span class='string_literal'>"KENO"</span>, <span class='string_literal'>"KENT"</span>, <span class='string_literal'>"KERN"</span>, <span class='string_literal'>"KERR"</span>, <span class='string_literal'>"KEYS"</span>, <span class='string_literal'>"KICK"</span>, <span class='string_literal'>"KILL"</span>,</td></tr>
+<tr class="codeline" data-linenumber="160"><td class="num" id="LN160">160</td><td class="line"> <span class='string_literal'>"KIND"</span>, <span class='string_literal'>"KING"</span>, <span class='string_literal'>"KIRK"</span>, <span class='string_literal'>"KISS"</span>, <span class='string_literal'>"KITE"</span>, <span class='string_literal'>"KLAN"</span>, <span class='string_literal'>"KNEE"</span>, <span class='string_literal'>"KNEW"</span>, <span class='string_literal'>"KNIT"</span>,</td></tr>
+<tr class="codeline" data-linenumber="161"><td class="num" id="LN161">161</td><td class="line"> <span class='string_literal'>"KNOB"</span>, <span class='string_literal'>"KNOT"</span>, <span class='string_literal'>"KNOW"</span>, <span class='string_literal'>"KOCH"</span>, <span class='string_literal'>"KONG"</span>, <span class='string_literal'>"KUDO"</span>, <span class='string_literal'>"KURD"</span>, <span class='string_literal'>"KURT"</span>, <span class='string_literal'>"KYLE"</span>,</td></tr>
+<tr class="codeline" data-linenumber="162"><td class="num" id="LN162">162</td><td class="line"> <span class='string_literal'>"LACE"</span>, <span class='string_literal'>"LACK"</span>, <span class='string_literal'>"LACY"</span>, <span class='string_literal'>"LADY"</span>, <span class='string_literal'>"LAID"</span>, <span class='string_literal'>"LAIN"</span>, <span class='string_literal'>"LAIR"</span>, <span class='string_literal'>"LAKE"</span>, <span class='string_literal'>"LAMB"</span>,</td></tr>
+<tr class="codeline" data-linenumber="163"><td class="num" id="LN163">163</td><td class="line"> <span class='string_literal'>"LAME"</span>, <span class='string_literal'>"LAND"</span>, <span class='string_literal'>"LANE"</span>, <span class='string_literal'>"LANG"</span>, <span class='string_literal'>"LARD"</span>, <span class='string_literal'>"LARK"</span>, <span class='string_literal'>"LASS"</span>, <span class='string_literal'>"LAST"</span>, <span class='string_literal'>"LATE"</span>,</td></tr>
+<tr class="codeline" data-linenumber="164"><td class="num" id="LN164">164</td><td class="line"> <span class='string_literal'>"LAUD"</span>, <span class='string_literal'>"LAVA"</span>, <span class='string_literal'>"LAWN"</span>, <span class='string_literal'>"LAWS"</span>, <span class='string_literal'>"LAYS"</span>, <span class='string_literal'>"LEAD"</span>, <span class='string_literal'>"LEAF"</span>, <span class='string_literal'>"LEAK"</span>, <span class='string_literal'>"LEAN"</span>,</td></tr>
+<tr class="codeline" data-linenumber="165"><td class="num" id="LN165">165</td><td class="line"> <span class='string_literal'>"LEAR"</span>, <span class='string_literal'>"LEEK"</span>, <span class='string_literal'>"LEER"</span>, <span class='string_literal'>"LEFT"</span>, <span class='string_literal'>"LEND"</span>, <span class='string_literal'>"LENS"</span>, <span class='string_literal'>"LENT"</span>, <span class='string_literal'>"LEON"</span>, <span class='string_literal'>"LESK"</span>,</td></tr>
+<tr class="codeline" data-linenumber="166"><td class="num" id="LN166">166</td><td class="line"> <span class='string_literal'>"LESS"</span>, <span class='string_literal'>"LEST"</span>, <span class='string_literal'>"LETS"</span>, <span class='string_literal'>"LIAR"</span>, <span class='string_literal'>"LICE"</span>, <span class='string_literal'>"LICK"</span>, <span class='string_literal'>"LIED"</span>, <span class='string_literal'>"LIEN"</span>, <span class='string_literal'>"LIES"</span>,</td></tr>
+<tr class="codeline" data-linenumber="167"><td class="num" id="LN167">167</td><td class="line"> <span class='string_literal'>"LIEU"</span>, <span class='string_literal'>"LIFE"</span>, <span class='string_literal'>"LIFT"</span>, <span class='string_literal'>"LIKE"</span>, <span class='string_literal'>"LILA"</span>, <span class='string_literal'>"LILT"</span>, <span class='string_literal'>"LILY"</span>, <span class='string_literal'>"LIMA"</span>, <span class='string_literal'>"LIMB"</span>,</td></tr>
+<tr class="codeline" data-linenumber="168"><td class="num" id="LN168">168</td><td class="line"> <span class='string_literal'>"LIME"</span>, <span class='string_literal'>"LIND"</span>, <span class='string_literal'>"LINE"</span>, <span class='string_literal'>"LINK"</span>, <span class='string_literal'>"LINT"</span>, <span class='string_literal'>"LION"</span>, <span class='string_literal'>"LISA"</span>, <span class='string_literal'>"LIST"</span>, <span class='string_literal'>"LIVE"</span>,</td></tr>
+<tr class="codeline" data-linenumber="169"><td class="num" id="LN169">169</td><td class="line"> <span class='string_literal'>"LOAD"</span>, <span class='string_literal'>"LOAF"</span>, <span class='string_literal'>"LOAM"</span>, <span class='string_literal'>"LOAN"</span>, <span class='string_literal'>"LOCK"</span>, <span class='string_literal'>"LOFT"</span>, <span class='string_literal'>"LOGE"</span>, <span class='string_literal'>"LOIS"</span>, <span class='string_literal'>"LOLA"</span>,</td></tr>
+<tr class="codeline" data-linenumber="170"><td class="num" id="LN170">170</td><td class="line"> <span class='string_literal'>"LONE"</span>, <span class='string_literal'>"LONG"</span>, <span class='string_literal'>"LOOK"</span>, <span class='string_literal'>"LOON"</span>, <span class='string_literal'>"LOOT"</span>, <span class='string_literal'>"LORD"</span>, <span class='string_literal'>"LORE"</span>, <span class='string_literal'>"LOSE"</span>, <span class='string_literal'>"LOSS"</span>,</td></tr>
+<tr class="codeline" data-linenumber="171"><td class="num" id="LN171">171</td><td class="line"> <span class='string_literal'>"LOST"</span>, <span class='string_literal'>"LOUD"</span>, <span class='string_literal'>"LOVE"</span>, <span class='string_literal'>"LOWE"</span>, <span class='string_literal'>"LUCK"</span>, <span class='string_literal'>"LUCY"</span>, <span class='string_literal'>"LUGE"</span>, <span class='string_literal'>"LUKE"</span>, <span class='string_literal'>"LULU"</span>,</td></tr>
+<tr class="codeline" data-linenumber="172"><td class="num" id="LN172">172</td><td class="line"> <span class='string_literal'>"LUND"</span>, <span class='string_literal'>"LUNG"</span>, <span class='string_literal'>"LURA"</span>, <span class='string_literal'>"LURE"</span>, <span class='string_literal'>"LURK"</span>, <span class='string_literal'>"LUSH"</span>, <span class='string_literal'>"LUST"</span>, <span class='string_literal'>"LYLE"</span>, <span class='string_literal'>"LYNN"</span>,</td></tr>
+<tr class="codeline" data-linenumber="173"><td class="num" id="LN173">173</td><td class="line"> <span class='string_literal'>"LYON"</span>, <span class='string_literal'>"LYRA"</span>, <span class='string_literal'>"MACE"</span>, <span class='string_literal'>"MADE"</span>, <span class='string_literal'>"MAGI"</span>, <span class='string_literal'>"MAID"</span>, <span class='string_literal'>"MAIL"</span>, <span class='string_literal'>"MAIN"</span>, <span class='string_literal'>"MAKE"</span>,</td></tr>
+<tr class="codeline" data-linenumber="174"><td class="num" id="LN174">174</td><td class="line"> <span class='string_literal'>"MALE"</span>, <span class='string_literal'>"MALI"</span>, <span class='string_literal'>"MALL"</span>, <span class='string_literal'>"MALT"</span>, <span class='string_literal'>"MANA"</span>, <span class='string_literal'>"MANN"</span>, <span class='string_literal'>"MANY"</span>, <span class='string_literal'>"MARC"</span>, <span class='string_literal'>"MARE"</span>,</td></tr>
+<tr class="codeline" data-linenumber="175"><td class="num" id="LN175">175</td><td class="line"> <span class='string_literal'>"MARK"</span>, <span class='string_literal'>"MARS"</span>, <span class='string_literal'>"MART"</span>, <span class='string_literal'>"MARY"</span>, <span class='string_literal'>"MASH"</span>, <span class='string_literal'>"MASK"</span>, <span class='string_literal'>"MASS"</span>, <span class='string_literal'>"MAST"</span>, <span class='string_literal'>"MATE"</span>,</td></tr>
+<tr class="codeline" data-linenumber="176"><td class="num" id="LN176">176</td><td class="line"> <span class='string_literal'>"MATH"</span>, <span class='string_literal'>"MAUL"</span>, <span class='string_literal'>"MAYO"</span>, <span class='string_literal'>"MEAD"</span>, <span class='string_literal'>"MEAL"</span>, <span class='string_literal'>"MEAN"</span>, <span class='string_literal'>"MEAT"</span>, <span class='string_literal'>"MEEK"</span>, <span class='string_literal'>"MEET"</span>,</td></tr>
+<tr class="codeline" data-linenumber="177"><td class="num" id="LN177">177</td><td class="line"> <span class='string_literal'>"MELD"</span>, <span class='string_literal'>"MELT"</span>, <span class='string_literal'>"MEMO"</span>, <span class='string_literal'>"MEND"</span>, <span class='string_literal'>"MENU"</span>, <span class='string_literal'>"MERT"</span>, <span class='string_literal'>"MESH"</span>, <span class='string_literal'>"MESS"</span>, <span class='string_literal'>"MICE"</span>,</td></tr>
+<tr class="codeline" data-linenumber="178"><td class="num" id="LN178">178</td><td class="line"> <span class='string_literal'>"MIKE"</span>, <span class='string_literal'>"MILD"</span>, <span class='string_literal'>"MILE"</span>, <span class='string_literal'>"MILK"</span>, <span class='string_literal'>"MILL"</span>, <span class='string_literal'>"MILT"</span>, <span class='string_literal'>"MIMI"</span>, <span class='string_literal'>"MIND"</span>, <span class='string_literal'>"MINE"</span>,</td></tr>
+<tr class="codeline" data-linenumber="179"><td class="num" id="LN179">179</td><td class="line"> <span class='string_literal'>"MINI"</span>, <span class='string_literal'>"MINK"</span>, <span class='string_literal'>"MINT"</span>, <span class='string_literal'>"MIRE"</span>, <span class='string_literal'>"MISS"</span>, <span class='string_literal'>"MIST"</span>, <span class='string_literal'>"MITE"</span>, <span class='string_literal'>"MITT"</span>, <span class='string_literal'>"MOAN"</span>,</td></tr>
+<tr class="codeline" data-linenumber="180"><td class="num" id="LN180">180</td><td class="line"> <span class='string_literal'>"MOAT"</span>, <span class='string_literal'>"MOCK"</span>, <span class='string_literal'>"MODE"</span>, <span class='string_literal'>"MOLD"</span>, <span class='string_literal'>"MOLE"</span>, <span class='string_literal'>"MOLL"</span>, <span class='string_literal'>"MOLT"</span>, <span class='string_literal'>"MONA"</span>, <span class='string_literal'>"MONK"</span>,</td></tr>
+<tr class="codeline" data-linenumber="181"><td class="num" id="LN181">181</td><td class="line"> <span class='string_literal'>"MONT"</span>, <span class='string_literal'>"MOOD"</span>, <span class='string_literal'>"MOON"</span>, <span class='string_literal'>"MOOR"</span>, <span class='string_literal'>"MOOT"</span>, <span class='string_literal'>"MORE"</span>, <span class='string_literal'>"MORN"</span>, <span class='string_literal'>"MORT"</span>, <span class='string_literal'>"MOSS"</span>,</td></tr>
+<tr class="codeline" data-linenumber="182"><td class="num" id="LN182">182</td><td class="line"> <span class='string_literal'>"MOST"</span>, <span class='string_literal'>"MOTH"</span>, <span class='string_literal'>"MOVE"</span>, <span class='string_literal'>"MUCH"</span>, <span class='string_literal'>"MUCK"</span>, <span class='string_literal'>"MUDD"</span>, <span class='string_literal'>"MUFF"</span>, <span class='string_literal'>"MULE"</span>, <span class='string_literal'>"MULL"</span>,</td></tr>
+<tr class="codeline" data-linenumber="183"><td class="num" id="LN183">183</td><td class="line"> <span class='string_literal'>"MURK"</span>, <span class='string_literal'>"MUSH"</span>, <span class='string_literal'>"MUST"</span>, <span class='string_literal'>"MUTE"</span>, <span class='string_literal'>"MUTT"</span>, <span class='string_literal'>"MYRA"</span>, <span class='string_literal'>"MYTH"</span>, <span class='string_literal'>"NAGY"</span>, <span class='string_literal'>"NAIL"</span>,</td></tr>
+<tr class="codeline" data-linenumber="184"><td class="num" id="LN184">184</td><td class="line"> <span class='string_literal'>"NAIR"</span>, <span class='string_literal'>"NAME"</span>, <span class='string_literal'>"NARY"</span>, <span class='string_literal'>"NASH"</span>, <span class='string_literal'>"NAVE"</span>, <span class='string_literal'>"NAVY"</span>, <span class='string_literal'>"NEAL"</span>, <span class='string_literal'>"NEAR"</span>, <span class='string_literal'>"NEAT"</span>,</td></tr>
+<tr class="codeline" data-linenumber="185"><td class="num" id="LN185">185</td><td class="line"> <span class='string_literal'>"NECK"</span>, <span class='string_literal'>"NEED"</span>, <span class='string_literal'>"NEIL"</span>, <span class='string_literal'>"NELL"</span>, <span class='string_literal'>"NEON"</span>, <span class='string_literal'>"NERO"</span>, <span class='string_literal'>"NESS"</span>, <span class='string_literal'>"NEST"</span>, <span class='string_literal'>"NEWS"</span>,</td></tr>
+<tr class="codeline" data-linenumber="186"><td class="num" id="LN186">186</td><td class="line"> <span class='string_literal'>"NEWT"</span>, <span class='string_literal'>"NIBS"</span>, <span class='string_literal'>"NICE"</span>, <span class='string_literal'>"NICK"</span>, <span class='string_literal'>"NILE"</span>, <span class='string_literal'>"NINA"</span>, <span class='string_literal'>"NINE"</span>, <span class='string_literal'>"NOAH"</span>, <span class='string_literal'>"NODE"</span>,</td></tr>
+<tr class="codeline" data-linenumber="187"><td class="num" id="LN187">187</td><td class="line"> <span class='string_literal'>"NOEL"</span>, <span class='string_literal'>"NOLL"</span>, <span class='string_literal'>"NONE"</span>, <span class='string_literal'>"NOOK"</span>, <span class='string_literal'>"NOON"</span>, <span class='string_literal'>"NORM"</span>, <span class='string_literal'>"NOSE"</span>, <span class='string_literal'>"NOTE"</span>, <span class='string_literal'>"NOUN"</span>,</td></tr>
+<tr class="codeline" data-linenumber="188"><td class="num" id="LN188">188</td><td class="line"> <span class='string_literal'>"NOVA"</span>, <span class='string_literal'>"NUDE"</span>, <span class='string_literal'>"NULL"</span>, <span class='string_literal'>"NUMB"</span>, <span class='string_literal'>"OATH"</span>, <span class='string_literal'>"OBEY"</span>, <span class='string_literal'>"OBOE"</span>, <span class='string_literal'>"ODIN"</span>, <span class='string_literal'>"OHIO"</span>,</td></tr>
+<tr class="codeline" data-linenumber="189"><td class="num" id="LN189">189</td><td class="line"> <span class='string_literal'>"OILY"</span>, <span class='string_literal'>"OINT"</span>, <span class='string_literal'>"OKAY"</span>, <span class='string_literal'>"OLAF"</span>, <span class='string_literal'>"OLDY"</span>, <span class='string_literal'>"OLGA"</span>, <span class='string_literal'>"OLIN"</span>, <span class='string_literal'>"OMAN"</span>, <span class='string_literal'>"OMEN"</span>,</td></tr>
+<tr class="codeline" data-linenumber="190"><td class="num" id="LN190">190</td><td class="line"> <span class='string_literal'>"OMIT"</span>, <span class='string_literal'>"ONCE"</span>, <span class='string_literal'>"ONES"</span>, <span class='string_literal'>"ONLY"</span>, <span class='string_literal'>"ONTO"</span>, <span class='string_literal'>"ONUS"</span>, <span class='string_literal'>"ORAL"</span>, <span class='string_literal'>"ORGY"</span>, <span class='string_literal'>"OSLO"</span>,</td></tr>
+<tr class="codeline" data-linenumber="191"><td class="num" id="LN191">191</td><td class="line"> <span class='string_literal'>"OTIS"</span>, <span class='string_literal'>"OTTO"</span>, <span class='string_literal'>"OUCH"</span>, <span class='string_literal'>"OUST"</span>, <span class='string_literal'>"OUTS"</span>, <span class='string_literal'>"OVAL"</span>, <span class='string_literal'>"OVEN"</span>, <span class='string_literal'>"OVER"</span>, <span class='string_literal'>"OWLY"</span>,</td></tr>
+<tr class="codeline" data-linenumber="192"><td class="num" id="LN192">192</td><td class="line"> <span class='string_literal'>"OWNS"</span>, <span class='string_literal'>"QUAD"</span>, <span class='string_literal'>"QUIT"</span>, <span class='string_literal'>"QUOD"</span>, <span class='string_literal'>"RACE"</span>, <span class='string_literal'>"RACK"</span>, <span class='string_literal'>"RACY"</span>, <span class='string_literal'>"RAFT"</span>, <span class='string_literal'>"RAGE"</span>,</td></tr>
+<tr class="codeline" data-linenumber="193"><td class="num" id="LN193">193</td><td class="line"> <span class='string_literal'>"RAID"</span>, <span class='string_literal'>"RAIL"</span>, <span class='string_literal'>"RAIN"</span>, <span class='string_literal'>"RAKE"</span>, <span class='string_literal'>"RANK"</span>, <span class='string_literal'>"RANT"</span>, <span class='string_literal'>"RARE"</span>, <span class='string_literal'>"RASH"</span>, <span class='string_literal'>"RATE"</span>,</td></tr>
+<tr class="codeline" data-linenumber="194"><td class="num" id="LN194">194</td><td class="line"> <span class='string_literal'>"RAVE"</span>, <span class='string_literal'>"RAYS"</span>, <span class='string_literal'>"READ"</span>, <span class='string_literal'>"REAL"</span>, <span class='string_literal'>"REAM"</span>, <span class='string_literal'>"REAR"</span>, <span class='string_literal'>"RECK"</span>, <span class='string_literal'>"REED"</span>, <span class='string_literal'>"REEF"</span>,</td></tr>
+<tr class="codeline" data-linenumber="195"><td class="num" id="LN195">195</td><td class="line"> <span class='string_literal'>"REEK"</span>, <span class='string_literal'>"REEL"</span>, <span class='string_literal'>"REID"</span>, <span class='string_literal'>"REIN"</span>, <span class='string_literal'>"RENA"</span>, <span class='string_literal'>"REND"</span>, <span class='string_literal'>"RENT"</span>, <span class='string_literal'>"REST"</span>, <span class='string_literal'>"RICE"</span>,</td></tr>
+<tr class="codeline" data-linenumber="196"><td class="num" id="LN196">196</td><td class="line"> <span class='string_literal'>"RICH"</span>, <span class='string_literal'>"RICK"</span>, <span class='string_literal'>"RIDE"</span>, <span class='string_literal'>"RIFT"</span>, <span class='string_literal'>"RILL"</span>, <span class='string_literal'>"RIME"</span>, <span class='string_literal'>"RING"</span>, <span class='string_literal'>"RINK"</span>, <span class='string_literal'>"RISE"</span>,</td></tr>
+<tr class="codeline" data-linenumber="197"><td class="num" id="LN197">197</td><td class="line"> <span class='string_literal'>"RISK"</span>, <span class='string_literal'>"RITE"</span>, <span class='string_literal'>"ROAD"</span>, <span class='string_literal'>"ROAM"</span>, <span class='string_literal'>"ROAR"</span>, <span class='string_literal'>"ROBE"</span>, <span class='string_literal'>"ROCK"</span>, <span class='string_literal'>"RODE"</span>, <span class='string_literal'>"ROIL"</span>,</td></tr>
+<tr class="codeline" data-linenumber="198"><td class="num" id="LN198">198</td><td class="line"> <span class='string_literal'>"ROLL"</span>, <span class='string_literal'>"ROME"</span>, <span class='string_literal'>"ROOD"</span>, <span class='string_literal'>"ROOF"</span>, <span class='string_literal'>"ROOK"</span>, <span class='string_literal'>"ROOM"</span>, <span class='string_literal'>"ROOT"</span>, <span class='string_literal'>"ROSA"</span>, <span class='string_literal'>"ROSE"</span>,</td></tr>
+<tr class="codeline" data-linenumber="199"><td class="num" id="LN199">199</td><td class="line"> <span class='string_literal'>"ROSS"</span>, <span class='string_literal'>"ROSY"</span>, <span class='string_literal'>"ROTH"</span>, <span class='string_literal'>"ROUT"</span>, <span class='string_literal'>"ROVE"</span>, <span class='string_literal'>"ROWE"</span>, <span class='string_literal'>"ROWS"</span>, <span class='string_literal'>"RUBE"</span>, <span class='string_literal'>"RUBY"</span>,</td></tr>
+<tr class="codeline" data-linenumber="200"><td class="num" id="LN200">200</td><td class="line"> <span class='string_literal'>"RUDE"</span>, <span class='string_literal'>"RUDY"</span>, <span class='string_literal'>"RUIN"</span>, <span class='string_literal'>"RULE"</span>, <span class='string_literal'>"RUNG"</span>, <span class='string_literal'>"RUNS"</span>, <span class='string_literal'>"RUNT"</span>, <span class='string_literal'>"RUSE"</span>, <span class='string_literal'>"RUSH"</span>,</td></tr>
+<tr class="codeline" data-linenumber="201"><td class="num" id="LN201">201</td><td class="line"> <span class='string_literal'>"RUSK"</span>, <span class='string_literal'>"RUSS"</span>, <span class='string_literal'>"RUST"</span>, <span class='string_literal'>"RUTH"</span>, <span class='string_literal'>"SACK"</span>, <span class='string_literal'>"SAFE"</span>, <span class='string_literal'>"SAGE"</span>, <span class='string_literal'>"SAID"</span>, <span class='string_literal'>"SAIL"</span>,</td></tr>
+<tr class="codeline" data-linenumber="202"><td class="num" id="LN202">202</td><td class="line"> <span class='string_literal'>"SALE"</span>, <span class='string_literal'>"SALK"</span>, <span class='string_literal'>"SALT"</span>, <span class='string_literal'>"SAME"</span>, <span class='string_literal'>"SAND"</span>, <span class='string_literal'>"SANE"</span>, <span class='string_literal'>"SANG"</span>, <span class='string_literal'>"SANK"</span>, <span class='string_literal'>"SARA"</span>,</td></tr>
+<tr class="codeline" data-linenumber="203"><td class="num" id="LN203">203</td><td class="line"> <span class='string_literal'>"SAUL"</span>, <span class='string_literal'>"SAVE"</span>, <span class='string_literal'>"SAYS"</span>, <span class='string_literal'>"SCAN"</span>, <span class='string_literal'>"SCAR"</span>, <span class='string_literal'>"SCAT"</span>, <span class='string_literal'>"SCOT"</span>, <span class='string_literal'>"SEAL"</span>, <span class='string_literal'>"SEAM"</span>,</td></tr>
+<tr class="codeline" data-linenumber="204"><td class="num" id="LN204">204</td><td class="line"> <span class='string_literal'>"SEAR"</span>, <span class='string_literal'>"SEAT"</span>, <span class='string_literal'>"SEED"</span>, <span class='string_literal'>"SEEK"</span>, <span class='string_literal'>"SEEM"</span>, <span class='string_literal'>"SEEN"</span>, <span class='string_literal'>"SEES"</span>, <span class='string_literal'>"SELF"</span>, <span class='string_literal'>"SELL"</span>,</td></tr>
+<tr class="codeline" data-linenumber="205"><td class="num" id="LN205">205</td><td class="line"> <span class='string_literal'>"SEND"</span>, <span class='string_literal'>"SENT"</span>, <span class='string_literal'>"SETS"</span>, <span class='string_literal'>"SEWN"</span>, <span class='string_literal'>"SHAG"</span>, <span class='string_literal'>"SHAM"</span>, <span class='string_literal'>"SHAW"</span>, <span class='string_literal'>"SHAY"</span>, <span class='string_literal'>"SHED"</span>,</td></tr>
+<tr class="codeline" data-linenumber="206"><td class="num" id="LN206">206</td><td class="line"> <span class='string_literal'>"SHIM"</span>, <span class='string_literal'>"SHIN"</span>, <span class='string_literal'>"SHOD"</span>, <span class='string_literal'>"SHOE"</span>, <span class='string_literal'>"SHOT"</span>, <span class='string_literal'>"SHOW"</span>, <span class='string_literal'>"SHUN"</span>, <span class='string_literal'>"SHUT"</span>, <span class='string_literal'>"SICK"</span>,</td></tr>
+<tr class="codeline" data-linenumber="207"><td class="num" id="LN207">207</td><td class="line"> <span class='string_literal'>"SIDE"</span>, <span class='string_literal'>"SIFT"</span>, <span class='string_literal'>"SIGH"</span>, <span class='string_literal'>"SIGN"</span>, <span class='string_literal'>"SILK"</span>, <span class='string_literal'>"SILL"</span>, <span class='string_literal'>"SILO"</span>, <span class='string_literal'>"SILT"</span>, <span class='string_literal'>"SINE"</span>,</td></tr>
+<tr class="codeline" data-linenumber="208"><td class="num" id="LN208">208</td><td class="line"> <span class='string_literal'>"SING"</span>, <span class='string_literal'>"SINK"</span>, <span class='string_literal'>"SIRE"</span>, <span class='string_literal'>"SITE"</span>, <span class='string_literal'>"SITS"</span>, <span class='string_literal'>"SITU"</span>, <span class='string_literal'>"SKAT"</span>, <span class='string_literal'>"SKEW"</span>, <span class='string_literal'>"SKID"</span>,</td></tr>
+<tr class="codeline" data-linenumber="209"><td class="num" id="LN209">209</td><td class="line"> <span class='string_literal'>"SKIM"</span>, <span class='string_literal'>"SKIN"</span>, <span class='string_literal'>"SKIT"</span>, <span class='string_literal'>"SLAB"</span>, <span class='string_literal'>"SLAM"</span>, <span class='string_literal'>"SLAT"</span>, <span class='string_literal'>"SLAY"</span>, <span class='string_literal'>"SLED"</span>, <span class='string_literal'>"SLEW"</span>,</td></tr>
+<tr class="codeline" data-linenumber="210"><td class="num" id="LN210">210</td><td class="line"> <span class='string_literal'>"SLID"</span>, <span class='string_literal'>"SLIM"</span>, <span class='string_literal'>"SLIT"</span>, <span class='string_literal'>"SLOB"</span>, <span class='string_literal'>"SLOG"</span>, <span class='string_literal'>"SLOT"</span>, <span class='string_literal'>"SLOW"</span>, <span class='string_literal'>"SLUG"</span>, <span class='string_literal'>"SLUM"</span>,</td></tr>
+<tr class="codeline" data-linenumber="211"><td class="num" id="LN211">211</td><td class="line"> <span class='string_literal'>"SLUR"</span>, <span class='string_literal'>"SMOG"</span>, <span class='string_literal'>"SMUG"</span>, <span class='string_literal'>"SNAG"</span>, <span class='string_literal'>"SNOB"</span>, <span class='string_literal'>"SNOW"</span>, <span class='string_literal'>"SNUB"</span>, <span class='string_literal'>"SNUG"</span>, <span class='string_literal'>"SOAK"</span>,</td></tr>
+<tr class="codeline" data-linenumber="212"><td class="num" id="LN212">212</td><td class="line"> <span class='string_literal'>"SOAR"</span>, <span class='string_literal'>"SOCK"</span>, <span class='string_literal'>"SODA"</span>, <span class='string_literal'>"SOFA"</span>, <span class='string_literal'>"SOFT"</span>, <span class='string_literal'>"SOIL"</span>, <span class='string_literal'>"SOLD"</span>, <span class='string_literal'>"SOME"</span>, <span class='string_literal'>"SONG"</span>,</td></tr>
+<tr class="codeline" data-linenumber="213"><td class="num" id="LN213">213</td><td class="line"> <span class='string_literal'>"SOON"</span>, <span class='string_literal'>"SOOT"</span>, <span class='string_literal'>"SORE"</span>, <span class='string_literal'>"SORT"</span>, <span class='string_literal'>"SOUL"</span>, <span class='string_literal'>"SOUR"</span>, <span class='string_literal'>"SOWN"</span>, <span class='string_literal'>"STAB"</span>, <span class='string_literal'>"STAG"</span>,</td></tr>
+<tr class="codeline" data-linenumber="214"><td class="num" id="LN214">214</td><td class="line"> <span class='string_literal'>"STAN"</span>, <span class='string_literal'>"STAR"</span>, <span class='string_literal'>"STAY"</span>, <span class='string_literal'>"STEM"</span>, <span class='string_literal'>"STEW"</span>, <span class='string_literal'>"STIR"</span>, <span class='string_literal'>"STOW"</span>, <span class='string_literal'>"STUB"</span>, <span class='string_literal'>"STUN"</span>,</td></tr>
+<tr class="codeline" data-linenumber="215"><td class="num" id="LN215">215</td><td class="line"> <span class='string_literal'>"SUCH"</span>, <span class='string_literal'>"SUDS"</span>, <span class='string_literal'>"SUIT"</span>, <span class='string_literal'>"SULK"</span>, <span class='string_literal'>"SUMS"</span>, <span class='string_literal'>"SUNG"</span>, <span class='string_literal'>"SUNK"</span>, <span class='string_literal'>"SURE"</span>, <span class='string_literal'>"SURF"</span>,</td></tr>
+<tr class="codeline" data-linenumber="216"><td class="num" id="LN216">216</td><td class="line"> <span class='string_literal'>"SWAB"</span>, <span class='string_literal'>"SWAG"</span>, <span class='string_literal'>"SWAM"</span>, <span class='string_literal'>"SWAN"</span>, <span class='string_literal'>"SWAT"</span>, <span class='string_literal'>"SWAY"</span>, <span class='string_literal'>"SWIM"</span>, <span class='string_literal'>"SWUM"</span>, <span class='string_literal'>"TACK"</span>,</td></tr>
+<tr class="codeline" data-linenumber="217"><td class="num" id="LN217">217</td><td class="line"> <span class='string_literal'>"TACT"</span>, <span class='string_literal'>"TAIL"</span>, <span class='string_literal'>"TAKE"</span>, <span class='string_literal'>"TALE"</span>, <span class='string_literal'>"TALK"</span>, <span class='string_literal'>"TALL"</span>, <span class='string_literal'>"TANK"</span>, <span class='string_literal'>"TASK"</span>, <span class='string_literal'>"TATE"</span>,</td></tr>
+<tr class="codeline" data-linenumber="218"><td class="num" id="LN218">218</td><td class="line"> <span class='string_literal'>"TAUT"</span>, <span class='string_literal'>"TEAL"</span>, <span class='string_literal'>"TEAM"</span>, <span class='string_literal'>"TEAR"</span>, <span class='string_literal'>"TECH"</span>, <span class='string_literal'>"TEEM"</span>, <span class='string_literal'>"TEEN"</span>, <span class='string_literal'>"TEET"</span>, <span class='string_literal'>"TELL"</span>,</td></tr>
+<tr class="codeline" data-linenumber="219"><td class="num" id="LN219">219</td><td class="line"> <span class='string_literal'>"TEND"</span>, <span class='string_literal'>"TENT"</span>, <span class='string_literal'>"TERM"</span>, <span class='string_literal'>"TERN"</span>, <span class='string_literal'>"TESS"</span>, <span class='string_literal'>"TEST"</span>, <span class='string_literal'>"THAN"</span>, <span class='string_literal'>"THAT"</span>, <span class='string_literal'>"THEE"</span>,</td></tr>
+<tr class="codeline" data-linenumber="220"><td class="num" id="LN220">220</td><td class="line"> <span class='string_literal'>"THEM"</span>, <span class='string_literal'>"THEN"</span>, <span class='string_literal'>"THEY"</span>, <span class='string_literal'>"THIN"</span>, <span class='string_literal'>"THIS"</span>, <span class='string_literal'>"THUD"</span>, <span class='string_literal'>"THUG"</span>, <span class='string_literal'>"TICK"</span>, <span class='string_literal'>"TIDE"</span>,</td></tr>
+<tr class="codeline" data-linenumber="221"><td class="num" id="LN221">221</td><td class="line"> <span class='string_literal'>"TIDY"</span>, <span class='string_literal'>"TIED"</span>, <span class='string_literal'>"TIER"</span>, <span class='string_literal'>"TILE"</span>, <span class='string_literal'>"TILL"</span>, <span class='string_literal'>"TILT"</span>, <span class='string_literal'>"TIME"</span>, <span class='string_literal'>"TINA"</span>, <span class='string_literal'>"TINE"</span>,</td></tr>
+<tr class="codeline" data-linenumber="222"><td class="num" id="LN222">222</td><td class="line"> <span class='string_literal'>"TINT"</span>, <span class='string_literal'>"TINY"</span>, <span class='string_literal'>"TIRE"</span>, <span class='string_literal'>"TOAD"</span>, <span class='string_literal'>"TOGO"</span>, <span class='string_literal'>"TOIL"</span>, <span class='string_literal'>"TOLD"</span>, <span class='string_literal'>"TOLL"</span>, <span class='string_literal'>"TONE"</span>,</td></tr>
+<tr class="codeline" data-linenumber="223"><td class="num" id="LN223">223</td><td class="line"> <span class='string_literal'>"TONG"</span>, <span class='string_literal'>"TONY"</span>, <span class='string_literal'>"TOOK"</span>, <span class='string_literal'>"TOOL"</span>, <span class='string_literal'>"TOOT"</span>, <span class='string_literal'>"TORE"</span>, <span class='string_literal'>"TORN"</span>, <span class='string_literal'>"TOTE"</span>, <span class='string_literal'>"TOUR"</span>,</td></tr>
+<tr class="codeline" data-linenumber="224"><td class="num" id="LN224">224</td><td class="line"> <span class='string_literal'>"TOUT"</span>, <span class='string_literal'>"TOWN"</span>, <span class='string_literal'>"TRAG"</span>, <span class='string_literal'>"TRAM"</span>, <span class='string_literal'>"TRAY"</span>, <span class='string_literal'>"TREE"</span>, <span class='string_literal'>"TREK"</span>, <span class='string_literal'>"TRIG"</span>, <span class='string_literal'>"TRIM"</span>,</td></tr>
+<tr class="codeline" data-linenumber="225"><td class="num" id="LN225">225</td><td class="line"> <span class='string_literal'>"TRIO"</span>, <span class='string_literal'>"TROD"</span>, <span class='string_literal'>"TROT"</span>, <span class='string_literal'>"TROY"</span>, <span class='string_literal'>"TRUE"</span>, <span class='string_literal'>"TUBA"</span>, <span class='string_literal'>"TUBE"</span>, <span class='string_literal'>"TUCK"</span>, <span class='string_literal'>"TUFT"</span>,</td></tr>
+<tr class="codeline" data-linenumber="226"><td class="num" id="LN226">226</td><td class="line"> <span class='string_literal'>"TUNA"</span>, <span class='string_literal'>"TUNE"</span>, <span class='string_literal'>"TUNG"</span>, <span class='string_literal'>"TURF"</span>, <span class='string_literal'>"TURN"</span>, <span class='string_literal'>"TUSK"</span>, <span class='string_literal'>"TWIG"</span>, <span class='string_literal'>"TWIN"</span>, <span class='string_literal'>"TWIT"</span>,</td></tr>
+<tr class="codeline" data-linenumber="227"><td class="num" id="LN227">227</td><td class="line"> <span class='string_literal'>"ULAN"</span>, <span class='string_literal'>"UNIT"</span>, <span class='string_literal'>"URGE"</span>, <span class='string_literal'>"USED"</span>, <span class='string_literal'>"USER"</span>, <span class='string_literal'>"USES"</span>, <span class='string_literal'>"UTAH"</span>, <span class='string_literal'>"VAIL"</span>, <span class='string_literal'>"VAIN"</span>,</td></tr>
+<tr class="codeline" data-linenumber="228"><td class="num" id="LN228">228</td><td class="line"> <span class='string_literal'>"VALE"</span>, <span class='string_literal'>"VARY"</span>, <span class='string_literal'>"VASE"</span>, <span class='string_literal'>"VAST"</span>, <span class='string_literal'>"VEAL"</span>, <span class='string_literal'>"VEDA"</span>, <span class='string_literal'>"VEIL"</span>, <span class='string_literal'>"VEIN"</span>, <span class='string_literal'>"VEND"</span>,</td></tr>
+<tr class="codeline" data-linenumber="229"><td class="num" id="LN229">229</td><td class="line"> <span class='string_literal'>"VENT"</span>, <span class='string_literal'>"VERB"</span>, <span class='string_literal'>"VERY"</span>, <span class='string_literal'>"VETO"</span>, <span class='string_literal'>"VICE"</span>, <span class='string_literal'>"VIEW"</span>, <span class='string_literal'>"VINE"</span>, <span class='string_literal'>"VISE"</span>, <span class='string_literal'>"VOID"</span>,</td></tr>
+<tr class="codeline" data-linenumber="230"><td class="num" id="LN230">230</td><td class="line"> <span class='string_literal'>"VOLT"</span>, <span class='string_literal'>"VOTE"</span>, <span class='string_literal'>"WACK"</span>, <span class='string_literal'>"WADE"</span>, <span class='string_literal'>"WAGE"</span>, <span class='string_literal'>"WAIL"</span>, <span class='string_literal'>"WAIT"</span>, <span class='string_literal'>"WAKE"</span>, <span class='string_literal'>"WALE"</span>,</td></tr>
+<tr class="codeline" data-linenumber="231"><td class="num" id="LN231">231</td><td class="line"> <span class='string_literal'>"WALK"</span>, <span class='string_literal'>"WALL"</span>, <span class='string_literal'>"WALT"</span>, <span class='string_literal'>"WAND"</span>, <span class='string_literal'>"WANE"</span>, <span class='string_literal'>"WANG"</span>, <span class='string_literal'>"WANT"</span>, <span class='string_literal'>"WARD"</span>, <span class='string_literal'>"WARM"</span>,</td></tr>
+<tr class="codeline" data-linenumber="232"><td class="num" id="LN232">232</td><td class="line"> <span class='string_literal'>"WARN"</span>, <span class='string_literal'>"WART"</span>, <span class='string_literal'>"WASH"</span>, <span class='string_literal'>"WAST"</span>, <span class='string_literal'>"WATS"</span>, <span class='string_literal'>"WATT"</span>, <span class='string_literal'>"WAVE"</span>, <span class='string_literal'>"WAVY"</span>, <span class='string_literal'>"WAYS"</span>,</td></tr>
+<tr class="codeline" data-linenumber="233"><td class="num" id="LN233">233</td><td class="line"> <span class='string_literal'>"WEAK"</span>, <span class='string_literal'>"WEAL"</span>, <span class='string_literal'>"WEAN"</span>, <span class='string_literal'>"WEAR"</span>, <span class='string_literal'>"WEED"</span>, <span class='string_literal'>"WEEK"</span>, <span class='string_literal'>"WEIR"</span>, <span class='string_literal'>"WELD"</span>, <span class='string_literal'>"WELL"</span>,</td></tr>
+<tr class="codeline" data-linenumber="234"><td class="num" id="LN234">234</td><td class="line"> <span class='string_literal'>"WELT"</span>, <span class='string_literal'>"WENT"</span>, <span class='string_literal'>"WERE"</span>, <span class='string_literal'>"WERT"</span>, <span class='string_literal'>"WEST"</span>, <span class='string_literal'>"WHAM"</span>, <span class='string_literal'>"WHAT"</span>, <span class='string_literal'>"WHEE"</span>, <span class='string_literal'>"WHEN"</span>,</td></tr>
+<tr class="codeline" data-linenumber="235"><td class="num" id="LN235">235</td><td class="line"> <span class='string_literal'>"WHET"</span>, <span class='string_literal'>"WHOA"</span>, <span class='string_literal'>"WHOM"</span>, <span class='string_literal'>"WICK"</span>, <span class='string_literal'>"WIFE"</span>, <span class='string_literal'>"WILD"</span>, <span class='string_literal'>"WILL"</span>, <span class='string_literal'>"WIND"</span>, <span class='string_literal'>"WINE"</span>,</td></tr>
+<tr class="codeline" data-linenumber="236"><td class="num" id="LN236">236</td><td class="line"> <span class='string_literal'>"WING"</span>, <span class='string_literal'>"WINK"</span>, <span class='string_literal'>"WINO"</span>, <span class='string_literal'>"WIRE"</span>, <span class='string_literal'>"WISE"</span>, <span class='string_literal'>"WISH"</span>, <span class='string_literal'>"WITH"</span>, <span class='string_literal'>"WOLF"</span>, <span class='string_literal'>"WONT"</span>,</td></tr>
+<tr class="codeline" data-linenumber="237"><td class="num" id="LN237">237</td><td class="line"> <span class='string_literal'>"WOOD"</span>, <span class='string_literal'>"WOOL"</span>, <span class='string_literal'>"WORD"</span>, <span class='string_literal'>"WORE"</span>, <span class='string_literal'>"WORK"</span>, <span class='string_literal'>"WORM"</span>, <span class='string_literal'>"WORN"</span>, <span class='string_literal'>"WOVE"</span>, <span class='string_literal'>"WRIT"</span>,</td></tr>
+<tr class="codeline" data-linenumber="238"><td class="num" id="LN238">238</td><td class="line"> <span class='string_literal'>"WYNN"</span>, <span class='string_literal'>"YALE"</span>, <span class='string_literal'>"YANG"</span>, <span class='string_literal'>"YANK"</span>, <span class='string_literal'>"YARD"</span>, <span class='string_literal'>"YARN"</span>, <span class='string_literal'>"YAWL"</span>, <span class='string_literal'>"YAWN"</span>, <span class='string_literal'>"YEAH"</span>,</td></tr>
+<tr class="codeline" data-linenumber="239"><td class="num" id="LN239">239</td><td class="line"> <span class='string_literal'>"YEAR"</span>, <span class='string_literal'>"YELL"</span>, <span class='string_literal'>"YOGA"</span>, <span class='string_literal'>"YOKE"</span></td></tr>
+<tr class="codeline" data-linenumber="240"><td class="num" id="LN240">240</td><td class="line"> };</td></tr>
+<tr class="codeline" data-linenumber="241"><td class="num" id="LN241">241</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="242"><td class="num" id="LN242">242</td><td class="line"><span class='comment'>/*</span></td></tr>
+<tr class="codeline" data-linenumber="243"><td class="num" id="LN243">243</td><td class="line"> <span class='comment'>* Encode 8 bytes in 'c' as a string of English words.</span></td></tr>
+<tr class="codeline" data-linenumber="244"><td class="num" id="LN244">244</td><td class="line"> <span class='comment'>* Returns a pointer to a static buffer</span></td></tr>
+<tr class="codeline" data-linenumber="245"><td class="num" id="LN245">245</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="246"><td class="num" id="LN246">246</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="247"><td class="num" id="LN247">247</td><td class="line"><span class='keyword'>char</span> *btoe(<span class='keyword'>unsigned</span> <span class='keyword'>char</span> *md)</td></tr>
+<tr class="codeline" data-linenumber="248"><td class="num" id="LN248">248</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="249"><td class="num" id="LN249">249</td><td class="line"> <span class='keyword'>char</span> cp[9]; <span class='comment'>/* 64 + 2 = 66 bits */</span></td></tr>
+<tr class="codeline" data-linenumber="250"><td class="num" id="LN250">250</td><td class="line"> <span class='keyword'>int</span> p, i;</td></tr>
+<tr class="codeline" data-linenumber="251"><td class="num" id="LN251">251</td><td class="line"> <span class='keyword'>static</span> <span class='keyword'>int</span> buf[<span class='macro'>BUFSIZ<span class='macro_popup'>8192</span></span>];</td></tr>
+<tr class="codeline" data-linenumber="252"><td class="num" id="LN252">252</td><td class="line"> <span class='keyword'>char</span> *engout = (<span class='keyword'>char</span> *)buf;</td></tr>
+<tr class="codeline" data-linenumber="253"><td class="num" id="LN253">253</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="254"><td class="num" id="LN254">254</td><td class="line"> memcpy(cp, md, <span class='macro'>SKEY_SIZE<span class='macro_popup'>8</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="255"><td class="num" id="LN255">255</td><td class="line"> <span class='comment'>/* compute parity */</span></td></tr>
+<tr class="codeline" data-linenumber="256"><td class="num" id="LN256">256</td><td class="line"> <span class='keyword'>for</span>(p = 0, i = 0; i &lt; 64; i += 2)</td></tr>
+<tr class="codeline" data-linenumber="257"><td class="num" id="LN257">257</td><td class="line"> p += extract(cp, i, 2);</td></tr>
+<tr class="codeline" data-linenumber="258"><td class="num" id="LN258">258</td><td class="line"> cp[8] = (<span class='keyword'>char</span>)p &lt;&lt; 6;</td></tr>
+<tr class="codeline" data-linenumber="259"><td class="num" id="LN259">259</td><td class="line"> <span class='comment'>/* now 66 bits */</span></td></tr>
+<tr class="codeline" data-linenumber="260"><td class="num" id="LN260">260</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="261"><td class="num" id="LN261">261</td><td class="line"> engout[0] = '\0';</td></tr>
+<tr class="codeline" data-linenumber="262"><td class="num" id="LN262">262</td><td class="line"> strncat(engout, &amp;Wp[extract(cp, 0, 11)][0], 4);</td></tr>
+<tr class="codeline" data-linenumber="263"><td class="num" id="LN263">263</td><td class="line"> <span class="mrange">strcat</span> (engout,<span class='string_literal'>" "</span>);</td></tr>
+<tr><td class="num"></td><td class="line"><div id="EndPath" class="msg msgEvent" style="margin-left:9ex; max-width:52em">Call to function 'strcat' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcat'. CWE-119</div></td></tr>
+<tr class="codeline" data-linenumber="264"><td class="num" id="LN264">264</td><td class="line"> strncat(engout, &amp;Wp[extract(cp, 11, 11)][0], 4);</td></tr>
+<tr class="codeline" data-linenumber="265"><td class="num" id="LN265">265</td><td class="line"> strcat (engout,<span class='string_literal'>" "</span>);</td></tr>
+<tr class="codeline" data-linenumber="266"><td class="num" id="LN266">266</td><td class="line"> strncat(engout, &amp;Wp[extract(cp, 22, 11)][0], 4);</td></tr>
+<tr class="codeline" data-linenumber="267"><td class="num" id="LN267">267</td><td class="line"> strcat (engout,<span class='string_literal'>" "</span>);</td></tr>
+<tr class="codeline" data-linenumber="268"><td class="num" id="LN268">268</td><td class="line"> strncat(engout, &amp;Wp[extract(cp, 33, 11)][0], 4);</td></tr>
+<tr class="codeline" data-linenumber="269"><td class="num" id="LN269">269</td><td class="line"> strcat (engout,<span class='string_literal'>" "</span>);</td></tr>
+<tr class="codeline" data-linenumber="270"><td class="num" id="LN270">270</td><td class="line"> strncat(engout, &amp;Wp[extract(cp, 44, 11)][0], 4);</td></tr>
+<tr class="codeline" data-linenumber="271"><td class="num" id="LN271">271</td><td class="line"> strcat (engout,<span class='string_literal'>" "</span>);</td></tr>
+<tr class="codeline" data-linenumber="272"><td class="num" id="LN272">272</td><td class="line"> strncat(engout, &amp;Wp[extract(cp, 55, 11)][0], 4);</td></tr>
+<tr class="codeline" data-linenumber="273"><td class="num" id="LN273">273</td><td class="line"> <span class='keyword'>return</span> (engout);</td></tr>
+<tr class="codeline" data-linenumber="274"><td class="num" id="LN274">274</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="275"><td class="num" id="LN275">275</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="276"><td class="num" id="LN276">276</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="277"><td class="num" id="LN277">277</td><td class="line"><span class='comment'>/*</span></td></tr>
+<tr class="codeline" data-linenumber="278"><td class="num" id="LN278">278</td><td class="line"> <span class='comment'>* Extract 'length' bits from the char array 's'</span></td></tr>
+<tr class="codeline" data-linenumber="279"><td class="num" id="LN279">279</td><td class="line"> <span class='comment'>* starting with bit 'start'</span></td></tr>
+<tr class="codeline" data-linenumber="280"><td class="num" id="LN280">280</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="281"><td class="num" id="LN281">281</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="282"><td class="num" id="LN282">282</td><td class="line"><span class='keyword'>static</span> guint32 extract(<span class='keyword'>char</span> *s, <span class='keyword'>int</span> start, <span class='keyword'>int</span> length)</td></tr>
+<tr class="codeline" data-linenumber="283"><td class="num" id="LN283">283</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="284"><td class="num" id="LN284">284</td><td class="line"> guint8 cl;</td></tr>
+<tr class="codeline" data-linenumber="285"><td class="num" id="LN285">285</td><td class="line"> guint8 cc;</td></tr>
+<tr class="codeline" data-linenumber="286"><td class="num" id="LN286">286</td><td class="line"> guint8 cr;</td></tr>
+<tr class="codeline" data-linenumber="287"><td class="num" id="LN287">287</td><td class="line"> guint32 x;</td></tr>
+<tr class="codeline" data-linenumber="288"><td class="num" id="LN288">288</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="289"><td class="num" id="LN289">289</td><td class="line"> <span class='comment'>/* 66 = 11 x 6 */</span></td></tr>
+<tr class="codeline" data-linenumber="290"><td class="num" id="LN290">290</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="291"><td class="num" id="LN291">291</td><td class="line"> <span class='macro'>g_assert(length &gt;= 0)<span class='macro_popup'>do { if (length &gt;= 0) ; else g_assertion_message_expr (((gchar<br>*) 0), "btoe.c", 291, ((const char*) (__func__)), "length &gt;= 0"<br>); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="292"><td class="num" id="LN292">292</td><td class="line"> <span class='macro'>g_assert(length &lt;= 11)<span class='macro_popup'>do { if (length &lt;= 11) ; else g_assertion_message_expr (((<br>gchar*) 0), "btoe.c", 292, ((const char*) (__func__)), "length &lt;= 11"<br>); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="293"><td class="num" id="LN293">293</td><td class="line"> <span class='macro'>g_assert(start &gt;= 0)<span class='macro_popup'>do { if (start &gt;= 0) ; else g_assertion_message_expr (((gchar<br>*) 0), "btoe.c", 293, ((const char*) (__func__)), "start &gt;= 0"<br>); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="294"><td class="num" id="LN294">294</td><td class="line"> <span class='macro'>g_assert(start + length &lt;= 66)<span class='macro_popup'>do { if (start + length &lt;= 66) ; else g_assertion_message_expr<br> (((gchar*) 0), "btoe.c", 294, ((const char*) (__func__)), "start + length &lt;= 66"<br>); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="295"><td class="num" id="LN295">295</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="296"><td class="num" id="LN296">296</td><td class="line"> cl = s[start/8];</td></tr>
+<tr class="codeline" data-linenumber="297"><td class="num" id="LN297">297</td><td class="line"> cc = s[start/8 + 1];</td></tr>
+<tr class="codeline" data-linenumber="298"><td class="num" id="LN298">298</td><td class="line"> cr = s[start/8 + 2];</td></tr>
+<tr class="codeline" data-linenumber="299"><td class="num" id="LN299">299</td><td class="line"> x = (guint32) ((((cl &lt;&lt; 8) | cc) &lt;&lt; 8) | cr); <span class='comment'>/* 24 bits */</span></td></tr>
+<tr class="codeline" data-linenumber="300"><td class="num" id="LN300">300</td><td class="line"> x = x &gt;&gt; (24 - (length + (start % 8))); <span class='comment'>/* cut tail */</span></td></tr>
+<tr class="codeline" data-linenumber="301"><td class="num" id="LN301">301</td><td class="line"> x = (x &amp; (0xffff &gt;&gt; (16 - length))); <span class='comment'>/* cut head */</span></td></tr>
+<tr class="codeline" data-linenumber="302"><td class="num" id="LN302">302</td><td class="line"> <span class='keyword'>return</span>(x); <span class='comment'>/* length */</span></td></tr>
+<tr class="codeline" data-linenumber="303"><td class="num" id="LN303">303</td><td class="line">}</td></tr>
+</table></body></html>
diff --git a/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-eb3cb1.html b/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-eb3cb1.html
new file mode 100644
index 0000000..7d0d2dc
--- /dev/null
+++ b/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-eb3cb1.html
@@ -0,0 +1,5495 @@
+<!doctype html>
+<html>
+<head>
+<title>terminal-window.c</title>
+
+<style type="text/css">
+body { color:#000000; background-color:#ffffff }
+body { font-family:Helvetica, sans-serif; font-size:10pt }
+h1 { font-size:14pt }
+.FileName { margin-top: 5px; margin-bottom: 5px; display: inline; }
+.FileNav { margin-left: 5px; margin-right: 5px; display: inline; }
+.FileNav a { text-decoration:none; font-size: larger; }
+.divider { margin-top: 30px; margin-bottom: 30px; height: 15px; }
+.divider { background-color: gray; }
+.code { border-collapse:collapse; width:100%; }
+.code { font-family: "Monospace", monospace; font-size:10pt }
+.code { line-height: 1.2em }
+.comment { color: green; font-style: oblique }
+.keyword { color: blue }
+.string_literal { color: red }
+.directive { color: darkmagenta }
+
+/* Macros and variables could have pop-up notes hidden by default.
+ - Macro pop-up: expansion of the macro
+ - Variable pop-up: value (table) of the variable */
+.macro_popup, .variable_popup { display: none; }
+
+/* Pop-up appears on mouse-hover event. */
+.macro:hover .macro_popup, .variable:hover .variable_popup {
+ display: block;
+ padding: 2px;
+ -webkit-border-radius:5px;
+ -webkit-box-shadow:1px 1px 7px #000;
+ border-radius:5px;
+ box-shadow:1px 1px 7px #000;
+ position: absolute;
+ top: -1em;
+ left:10em;
+ z-index: 1
+}
+
+.macro_popup {
+ border: 2px solid red;
+ background-color:#FFF0F0;
+ font-weight: normal;
+}
+
+.variable_popup {
+ border: 2px solid blue;
+ background-color:#F0F0FF;
+ font-weight: bold;
+ font-family: Helvetica, sans-serif;
+ font-size: 9pt;
+}
+
+/* Pop-up notes needs a relative position as a base where they pops up. */
+.macro, .variable {
+ background-color: PaleGoldenRod;
+ position: relative;
+}
+.macro { color: DarkMagenta; }
+
+#tooltiphint {
+ position: fixed;
+ width: 50em;
+ margin-left: -25em;
+ left: 50%;
+ padding: 10px;
+ border: 1px solid #b0b0b0;
+ border-radius: 2px;
+ box-shadow: 1px 1px 7px black;
+ background-color: #c0c0c0;
+ z-index: 2;
+}
+
+.num { width:2.5em; padding-right:2ex; background-color:#eeeeee }
+.num { text-align:right; font-size:8pt }
+.num { color:#444444 }
+.line { padding-left: 1ex; border-left: 3px solid #ccc }
+.line { white-space: pre }
+.msg { -webkit-box-shadow:1px 1px 7px #000 }
+.msg { box-shadow:1px 1px 7px #000 }
+.msg { -webkit-border-radius:5px }
+.msg { border-radius:5px }
+.msg { font-family:Helvetica, sans-serif; font-size:8pt }
+.msg { float:left }
+.msg { position:relative }
+.msg { padding:0.25em 1ex 0.25em 1ex }
+.msg { margin-top:10px; margin-bottom:10px }
+.msg { font-weight:bold }
+.msg { max-width:60em; word-wrap: break-word; white-space: pre-wrap }
+.msgT { padding:0x; spacing:0x }
+.msgEvent { background-color:#fff8b4; color:#000000 }
+.msgControl { background-color:#bbbbbb; color:#000000 }
+.msgNote { background-color:#ddeeff; color:#000000 }
+.mrange { background-color:#dfddf3 }
+.mrange { border-bottom:1px solid #6F9DBE }
+.PathIndex { font-weight: bold; padding:0px 5px; margin-right:5px; }
+.PathIndex { -webkit-border-radius:8px }
+.PathIndex { border-radius:8px }
+.PathIndexEvent { background-color:#bfba87 }
+.PathIndexControl { background-color:#8c8c8c }
+.PathIndexPopUp { background-color: #879abc; }
+.PathNav a { text-decoration:none; font-size: larger }
+.CodeInsertionHint { font-weight: bold; background-color: #10dd10 }
+.CodeRemovalHint { background-color:#de1010 }
+.CodeRemovalHint { border-bottom:1px solid #6F9DBE }
+.msg.selected{ background-color:orange !important; }
+
+table.simpletable {
+ padding: 5px;
+ font-size:12pt;
+ margin:20px;
+ border-collapse: collapse; border-spacing: 0px;
+}
+td.rowname {
+ text-align: right;
+ vertical-align: top;
+ font-weight: bold;
+ color:#444444;
+ padding-right:2ex;
+}
+
+/* Hidden text. */
+input.spoilerhider + label {
+ cursor: pointer;
+ text-decoration: underline;
+ display: block;
+}
+input.spoilerhider {
+ display: none;
+}
+input.spoilerhider ~ .spoiler {
+ overflow: hidden;
+ margin: 10px auto 0;
+ height: 0;
+ opacity: 0;
+}
+input.spoilerhider:checked + label + .spoiler{
+ height: auto;
+ opacity: 1;
+}
+</style>
+</head>
+<body>
+<!-- BUGDESC Branch condition evaluates to a garbage value -->
+
+<!-- BUGTYPE Branch condition evaluates to a garbage value -->
+
+<!-- BUGCATEGORY Logic error -->
+
+<!-- BUGFILE /rootdir/src/terminal-window.c -->
+
+<!-- FILENAME terminal-window.c -->
+
+<!-- FUNCTIONNAME confirm_close_window_or_tab -->
+
+<!-- ISSUEHASHCONTENTOFLINEINCONTEXT eb3cb1681d9ac539f1637bbfaa555a35 -->
+
+<!-- BUGLINE 3718 -->
+
+<!-- BUGCOLUMN 9 -->
+
+<!-- BUGPATHLENGTH 9 -->
+
+<!-- BUGMETAEND -->
+<!-- REPORTHEADER -->
+<h3>Bug Summary</h3>
+<table class="simpletable">
+<tr><td class="rowname">File:</td><td>terminal-window.c</td></tr>
+<tr><td class="rowname">Warning:</td><td><a href="#EndPath">line 3718, column 9</a><br />Branch condition evaluates to a garbage value</td></tr>
+
+</table>
+<!-- REPORTSUMMARYEXTRA -->
+<h3>Annotated Source Code</h3>
+<p>Press <a href="#" onclick="toggleHelp(); return false;">'?'</a>
+ to see keyboard shortcuts</p>
+<input type="checkbox" class="spoilerhider" id="showinvocation" />
+<label for="showinvocation" >Show analyzer invocation</label>
+<div class="spoiler">clang -cc1 -cc1 -triple x86_64-redhat-linux-gnu -analyze -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name terminal-window.c -analyzer-checker=core -analyzer-checker=apiModeling -analyzer-checker=unix -analyzer-checker=deadcode -analyzer-checker=security.insecureAPI.UncheckedReturn -analyzer-checker=security.insecureAPI.getpw -analyzer-checker=security.insecureAPI.gets -analyzer-checker=security.insecureAPI.mktemp -analyzer-checker=security.insecureAPI.mkstemp -analyzer-checker=security.insecureAPI.vfork -analyzer-checker=nullability.NullPassedToNonnull -analyzer-checker=nullability.NullReturnedFromNonnull -analyzer-output plist -w -setup-static-analyzer -mrelocation-model static -mframe-pointer=all -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -tune-cpu generic -debugger-tuning=gdb -fcoverage-compilation-dir=/rootdir/src -resource-dir /usr/bin/../lib/clang/17 -D HAVE_CONFIG_H -I . -I .. -I ../src/mate-submodules/libegg -D TERMINAL_COMPILATION -D TERMINAL_RESOURCES_PATH_PREFIX="/org/mate/terminal" -D TERM_DATADIR="/usr/local/share" -D TERM_LOCALEDIR="/usr/local/share/locale" -D TERM_PKGDATADIR="/usr/local/share/mate-terminal" -D TERM_HELPDIR="/usr/local/share/help" -D SN_API_NOT_YET_FROZEN -D GDK_MULTIHEAD_SAFE -D G_DISABLE_SINGLE_INCLUDES -D PANGO_DISABLE_SINGLE_INCLUDES -D ATK_DISABLE_SINGLE_INCLUDES -D GDK_DISABLE_SINGLE_INCLUDES -D GDK_PIXBUF_DISABLE_SINGLE_INCLUDES -D GTK_DISABLE_SINGLE_INCLUDES -I /usr/include/dconf -I /usr/include/vte-2.91 -I /usr/include/pango-1.0 -I /usr/include/gtk-3.0 -I /usr/include/gdk-pixbuf-2.0 -I /usr/include/cairo -I /usr/include/dbus-1.0 -I /usr/lib64/dbus-1.0/include -I /usr/include/atk-1.0 -I /usr/include/harfbuzz -I /usr/include/freetype2 -I /usr/include/glib-2.0 -I /usr/lib64/glib-2.0/include -I /usr/include/cloudproviders -I /usr/include/at-spi2-atk/2.0 -I /usr/include/at-spi-2.0 -I /usr/include/blkid -I /usr/include/gio-unix-2.0 -I /usr/include/pixman-1 -I /usr/include/libmount -I /usr/include/libxml2 -I /usr/include/fribidi -I /usr/include/libpng16 -I /usr/include/sysprof-6 -internal-isystem /usr/bin/../lib/clang/17/include -internal-isystem /usr/local/include -internal-isystem /usr/bin/../lib/gcc/x86_64-redhat-linux/13/../../../../x86_64-redhat-linux/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -Wno-unused-parameter -fdebug-compilation-dir=/rootdir/src -ferror-limit 19 -fgnuc-version=4.2.1 -analyzer-checker deadcode.DeadStores -analyzer-checker alpha.deadcode.UnreachableCode -analyzer-checker alpha.core.CastSize -analyzer-checker alpha.core.CastToStruct -analyzer-checker alpha.core.IdenticalExpr -analyzer-checker alpha.core.SizeofPtr -analyzer-checker alpha.security.ArrayBoundV2 -analyzer-checker alpha.security.MallocOverflow -analyzer-checker alpha.security.ReturnPtrRange -analyzer-checker alpha.unix.SimpleStream -analyzer-checker alpha.unix.cstring.BufferOverlap -analyzer-checker alpha.unix.cstring.NotNullTerminated -analyzer-checker alpha.unix.cstring.OutOfBounds -analyzer-checker alpha.core.FixedAddr -analyzer-checker security.insecureAPI.strcpy -analyzer-output=html -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /rootdir/html-report/2024-02-18-131424-5067-1 -x c terminal-window.c
+</div>
+<div id='tooltiphint' hidden="true">
+ <p>Keyboard shortcuts: </p>
+ <ul>
+ <li>Use 'j/k' keys for keyboard navigation</li>
+ <li>Use 'Shift+S' to show/hide relevant lines</li>
+ <li>Use '?' to toggle this window</li>
+ </ul>
+ <a href="#" onclick="toggleHelp(); return false;">Close</a>
+</div>
+<script type='text/javascript'>
+var relevant_lines = {"1": {"2787": 1, "2788": 1, "2789": 1, "2790": 1, "2793": 1, "3680": 1, "3681": 1, "3682": 1, "3683": 1, "3684": 1, "3685": 1, "3686": 1, "3687": 1, "3688": 1, "3689": 1, "3691": 1, "3694": 1, "3701": 1, "3703": 1, "3704": 1, "3706": 1, "3715": 1, "3718": 1, "3757": 1, "3758": 1, "3759": 1, "3760": 1, "3761": 1}};
+
+var filterCounterexample = function (hide) {
+ var tables = document.getElementsByClassName("code");
+ for (var t=0; t<tables.length; t++) {
+ var table = tables[t];
+ var file_id = table.getAttribute("data-fileid");
+ var lines_in_fid = relevant_lines[file_id];
+ if (!lines_in_fid) {
+ lines_in_fid = {};
+ }
+ var lines = table.getElementsByClassName("codeline");
+ for (var i=0; i<lines.length; i++) {
+ var el = lines[i];
+ var lineNo = el.getAttribute("data-linenumber");
+ if (!lines_in_fid[lineNo]) {
+ if (hide) {
+ el.setAttribute("hidden", "");
+ } else {
+ el.removeAttribute("hidden");
+ }
+ }
+ }
+ }
+}
+
+window.addEventListener("keydown", function (event) {
+ if (event.defaultPrevented) {
+ return;
+ }
+ // SHIFT + S
+ if (event.shiftKey && event.keyCode == 83) {
+ var checked = document.getElementsByName("showCounterexample")[0].checked;
+ filterCounterexample(!checked);
+ document.getElementsByName("showCounterexample")[0].click();
+ } else {
+ return;
+ }
+ event.preventDefault();
+}, true);
+
+document.addEventListener("DOMContentLoaded", function() {
+ document.querySelector('input[name="showCounterexample"]').onchange=
+ function (event) {
+ filterCounterexample(this.checked);
+ };
+});
+</script>
+
+<form>
+ <input type="checkbox" name="showCounterexample" id="showCounterexample" />
+ <label for="showCounterexample">
+ Show only relevant lines
+ </label>
+ <input type="checkbox" name="showArrows"
+ id="showArrows" style="margin-left: 10px" />
+ <label for="showArrows">
+ Show control flow arrows
+ </label>
+</form>
+
+<script type='text/javascript'>
+// Return range of numbers from a range [lower, upper).
+function range(lower, upper) {
+ var array = [];
+ for (var i = lower; i <= upper; ++i) {
+ array.push(i);
+ }
+ return array;
+}
+
+var getRelatedArrowIndices = function(pathId) {
+ // HTML numeration of events is a bit different than it is in the path.
+ // Everything is rotated one step to the right, so the last element
+ // (error diagnostic) has index 0.
+ if (pathId == 0) {
+ // arrowIndices has at least 2 elements
+ pathId = arrowIndices.length - 1;
+ }
+
+ return range(arrowIndices[pathId], arrowIndices[pathId - 1]);
+}
+
+var highlightArrowsForSelectedEvent = function() {
+ const selectedNum = findNum();
+ const arrowIndicesToHighlight = getRelatedArrowIndices(selectedNum);
+ arrowIndicesToHighlight.forEach((index) => {
+ var arrow = document.querySelector("#arrow" + index);
+ if(arrow) {
+ classListAdd(arrow, "selected")
+ }
+ });
+}
+
+var getAbsoluteBoundingRect = function(element) {
+ const relative = element.getBoundingClientRect();
+ return {
+ left: relative.left + window.pageXOffset,
+ right: relative.right + window.pageXOffset,
+ top: relative.top + window.pageYOffset,
+ bottom: relative.bottom + window.pageYOffset,
+ height: relative.height,
+ width: relative.width
+ };
+}
+
+var drawArrow = function(index) {
+ // This function is based on the great answer from SO:
+ // https://stackoverflow.com/a/39575674/11582326
+ var start = document.querySelector("#start" + index);
+ var end = document.querySelector("#end" + index);
+ var arrow = document.querySelector("#arrow" + index);
+
+ var startRect = getAbsoluteBoundingRect(start);
+ var endRect = getAbsoluteBoundingRect(end);
+
+ // It is an arrow from a token to itself, no need to visualize it.
+ if (startRect.top == endRect.top &&
+ startRect.left == endRect.left)
+ return;
+
+ // Each arrow is a very simple Bézier curve, with two nodes and
+ // two handles. So, we need to calculate four points in the window:
+ // * start node
+ var posStart = { x: 0, y: 0 };
+ // * end node
+ var posEnd = { x: 0, y: 0 };
+ // * handle for the start node
+ var startHandle = { x: 0, y: 0 };
+ // * handle for the end node
+ var endHandle = { x: 0, y: 0 };
+ // One can visualize it as follows:
+ //
+ // start handle
+ // /
+ // X"""_.-""""X
+ // .' \
+ // / start node
+ // |
+ // |
+ // | end node
+ // \ /
+ // `->X
+ // X-'
+ // \
+ // end handle
+ //
+ // NOTE: (0, 0) is the top left corner of the window.
+
+ // We have 3 similar, but still different scenarios to cover:
+ //
+ // 1. Two tokens on different lines.
+ // -xxx
+ // /
+ // \
+ // -> xxx
+ // In this situation, we draw arrow on the left curving to the left.
+ // 2. Two tokens on the same line, and the destination is on the right.
+ // ____
+ // / \
+ // / V
+ // xxx xxx
+ // In this situation, we draw arrow above curving upwards.
+ // 3. Two tokens on the same line, and the destination is on the left.
+ // xxx xxx
+ // ^ /
+ // \____/
+ // In this situation, we draw arrow below curving downwards.
+ const onDifferentLines = startRect.top <= endRect.top - 5 ||
+ startRect.top >= endRect.top + 5;
+ const leftToRight = startRect.left < endRect.left;
+
+ // NOTE: various magic constants are chosen empirically for
+ // better positioning and look
+ if (onDifferentLines) {
+ // Case #1
+ const topToBottom = startRect.top < endRect.top;
+ posStart.x = startRect.left - 1;
+ // We don't want to start it at the top left corner of the token,
+ // it doesn't feel like this is where the arrow comes from.
+ // For this reason, we start it in the middle of the left side
+ // of the token.
+ posStart.y = startRect.top + startRect.height / 2;
+
+ // End node has arrow head and we give it a bit more space.
+ posEnd.x = endRect.left - 4;
+ posEnd.y = endRect.top;
+
+ // Utility object with x and y offsets for handles.
+ var curvature = {
+ // We want bottom-to-top arrow to curve a bit more, so it doesn't
+ // overlap much with top-to-bottom curves (much more frequent).
+ x: topToBottom ? 15 : 25,
+ y: Math.min((posEnd.y - posStart.y) / 3, 10)
+ }
+
+ // When destination is on the different line, we can make a
+ // curvier arrow because we have space for it.
+ // So, instead of using
+ //
+ // startHandle.x = posStart.x - curvature.x
+ // endHandle.x = posEnd.x - curvature.x
+ //
+ // We use the leftmost of these two values for both handles.
+ startHandle.x = Math.min(posStart.x, posEnd.x) - curvature.x;
+ endHandle.x = startHandle.x;
+
+ // Curving downwards from the start node...
+ startHandle.y = posStart.y + curvature.y;
+ // ... and upwards from the end node.
+ endHandle.y = posEnd.y - curvature.y;
+
+ } else if (leftToRight) {
+ // Case #2
+ // Starting from the top right corner...
+ posStart.x = startRect.right - 1;
+ posStart.y = startRect.top;
+
+ // ...and ending at the top left corner of the end token.
+ posEnd.x = endRect.left + 1;
+ posEnd.y = endRect.top - 1;
+
+ // Utility object with x and y offsets for handles.
+ var curvature = {
+ x: Math.min((posEnd.x - posStart.x) / 3, 15),
+ y: 5
+ }
+
+ // Curving to the right...
+ startHandle.x = posStart.x + curvature.x;
+ // ... and upwards from the start node.
+ startHandle.y = posStart.y - curvature.y;
+
+ // And to the left...
+ endHandle.x = posEnd.x - curvature.x;
+ // ... and upwards from the end node.
+ endHandle.y = posEnd.y - curvature.y;
+
+ } else {
+ // Case #3
+ // Starting from the bottom right corner...
+ posStart.x = startRect.right;
+ posStart.y = startRect.bottom;
+
+ // ...and ending also at the bottom right corner, but of the end token.
+ posEnd.x = endRect.right - 1;
+ posEnd.y = endRect.bottom + 1;
+
+ // Utility object with x and y offsets for handles.
+ var curvature = {
+ x: Math.min((posStart.x - posEnd.x) / 3, 15),
+ y: 5
+ }
+
+ // Curving to the left...
+ startHandle.x = posStart.x - curvature.x;
+ // ... and downwards from the start node.
+ startHandle.y = posStart.y + curvature.y;
+
+ // And to the right...
+ endHandle.x = posEnd.x + curvature.x;
+ // ... and downwards from the end node.
+ endHandle.y = posEnd.y + curvature.y;
+ }
+
+ // Put it all together into a path.
+ // More information on the format:
+ // https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths
+ var pathStr = "M" + posStart.x + "," + posStart.y + " " +
+ "C" + startHandle.x + "," + startHandle.y + " " +
+ endHandle.x + "," + endHandle.y + " " +
+ posEnd.x + "," + posEnd.y;
+
+ arrow.setAttribute("d", pathStr);
+};
+
+var drawArrows = function() {
+ const numOfArrows = document.querySelectorAll("path[id^=arrow]").length;
+ for (var i = 0; i < numOfArrows; ++i) {
+ drawArrow(i);
+ }
+}
+
+var toggleArrows = function(event) {
+ const arrows = document.querySelector("#arrows");
+ if (event.target.checked) {
+ arrows.setAttribute("visibility", "visible");
+ } else {
+ arrows.setAttribute("visibility", "hidden");
+ }
+}
+
+window.addEventListener("resize", drawArrows);
+document.addEventListener("DOMContentLoaded", function() {
+ // Whenever we show invocation, locations change, i.e. we
+ // need to redraw arrows.
+ document
+ .querySelector('input[id="showinvocation"]')
+ .addEventListener("click", drawArrows);
+ // Hiding irrelevant lines also should cause arrow rerender.
+ document
+ .querySelector('input[name="showCounterexample"]')
+ .addEventListener("change", drawArrows);
+ document
+ .querySelector('input[name="showArrows"]')
+ .addEventListener("change", toggleArrows);
+ drawArrows();
+ // Default highlighting for the last event.
+ highlightArrowsForSelectedEvent();
+});
+</script>
+
+<script type='text/javascript'>
+var digitMatcher = new RegExp("[0-9]+");
+
+var querySelectorAllArray = function(selector) {
+ return Array.prototype.slice.call(
+ document.querySelectorAll(selector));
+}
+
+document.addEventListener("DOMContentLoaded", function() {
+ querySelectorAllArray(".PathNav > a").forEach(
+ function(currentValue, currentIndex) {
+ var hrefValue = currentValue.getAttribute("href");
+ currentValue.onclick = function() {
+ scrollTo(document.querySelector(hrefValue));
+ return false;
+ };
+ });
+});
+
+var findNum = function() {
+ var s = document.querySelector(".msg.selected");
+ if (!s || s.id == "EndPath") {
+ return 0;
+ }
+ var out = parseInt(digitMatcher.exec(s.id)[0]);
+ return out;
+};
+
+var classListAdd = function(el, theClass) {
+ if(!el.className.baseVal)
+ el.className += " " + theClass;
+ else
+ el.className.baseVal += " " + theClass;
+};
+
+var classListRemove = function(el, theClass) {
+ var className = (!el.className.baseVal) ?
+ el.className : el.className.baseVal;
+ className = className.replace(" " + theClass, "");
+ if(!el.className.baseVal)
+ el.className = className;
+ else
+ el.className.baseVal = className;
+};
+
+var scrollTo = function(el) {
+ querySelectorAllArray(".selected").forEach(function(s) {
+ classListRemove(s, "selected");
+ });
+ classListAdd(el, "selected");
+ window.scrollBy(0, el.getBoundingClientRect().top -
+ (window.innerHeight / 2));
+ highlightArrowsForSelectedEvent();
+};
+
+var move = function(num, up, numItems) {
+ if (num == 1 && up || num == numItems - 1 && !up) {
+ return 0;
+ } else if (num == 0 && up) {
+ return numItems - 1;
+ } else if (num == 0 && !up) {
+ return 1 % numItems;
+ }
+ return up ? num - 1 : num + 1;
+}
+
+var numToId = function(num) {
+ if (num == 0) {
+ return document.getElementById("EndPath")
+ }
+ return document.getElementById("Path" + num);
+};
+
+var navigateTo = function(up) {
+ var numItems = document.querySelectorAll(
+ ".line > .msgEvent, .line > .msgControl").length;
+ var currentSelected = findNum();
+ var newSelected = move(currentSelected, up, numItems);
+ var newEl = numToId(newSelected, numItems);
+
+ // Scroll element into center.
+ scrollTo(newEl);
+};
+
+window.addEventListener("keydown", function (event) {
+ if (event.defaultPrevented) {
+ return;
+ }
+ // key 'j'
+ if (event.keyCode == 74) {
+ navigateTo(/*up=*/false);
+ // key 'k'
+ } else if (event.keyCode == 75) {
+ navigateTo(/*up=*/true);
+ } else {
+ return;
+ }
+ event.preventDefault();
+}, true);
+</script>
+
+<script type='text/javascript'>
+
+var toggleHelp = function() {
+ var hint = document.querySelector("#tooltiphint");
+ var attributeName = "hidden";
+ if (hint.hasAttribute(attributeName)) {
+ hint.removeAttribute(attributeName);
+ } else {
+ hint.setAttribute("hidden", "true");
+ }
+};
+window.addEventListener("keydown", function (event) {
+ if (event.defaultPrevented) {
+ return;
+ }
+ if (event.key == "?") {
+ toggleHelp();
+ } else {
+ return;
+ }
+ event.preventDefault();
+});
+</script>
+
+<style type="text/css">
+ svg {
+ position:absolute;
+ top:0;
+ left:0;
+ height:100%;
+ width:100%;
+ pointer-events: none;
+ overflow: visible
+ }
+ .arrow {
+ stroke-opacity: 0.2;
+ stroke-width: 1;
+ marker-end: url(#arrowhead);
+ }
+
+ .arrow.selected {
+ stroke-opacity: 0.6;
+ stroke-width: 2;
+ marker-end: url(#arrowheadSelected);
+ }
+
+ .arrowhead {
+ orient: auto;
+ stroke: none;
+ opacity: 0.6;
+ fill: blue;
+ }
+</style>
+<svg xmlns="http://www.w3.org/2000/svg">
+ <defs>
+ <marker id="arrowheadSelected" class="arrowhead" opacity="0.6"
+ viewBox="0 0 10 10" refX="3" refY="5"
+ markerWidth="4" markerHeight="4">
+ <path d="M 0 0 L 10 5 L 0 10 z" />
+ </marker>
+ <marker id="arrowhead" class="arrowhead" opacity="0.2"
+ viewBox="0 0 10 10" refX="3" refY="5"
+ markerWidth="4" markerHeight="4">
+ <path d="M 0 0 L 10 5 L 0 10 z" />
+ </marker>
+ </defs>
+ <g id="arrows" fill="none" stroke="blue" visibility="hidden">
+ <path class="arrow" id="arrow0"/>
+ <path class="arrow" id="arrow1"/>
+ <path class="arrow" id="arrow2"/>
+ <path class="arrow" id="arrow3"/>
+ <path class="arrow" id="arrow4"/>
+ <path class="arrow" id="arrow5"/>
+ <path class="arrow" id="arrow6"/>
+ <path class="arrow" id="arrow7"/>
+ <path class="arrow" id="arrow8"/>
+ <path class="arrow" id="arrow9"/>
+ <path class="arrow" id="arrow10"/>
+ <path class="arrow" id="arrow11"/>
+ <path class="arrow" id="arrow12"/>
+
+ </g>
+</svg>
+<script type='text/javascript'>
+const arrowIndices = [ 13,12,10,8,6,5,3,2,0 ]
+</script>
+<table class="code" data-fileid="1">
+<tr class="codeline" data-linenumber="1"><td class="num" id="LN1">1</td><td class="line"><span class='comment'>/*</span></td></tr>
+<tr class="codeline" data-linenumber="2"><td class="num" id="LN2">2</td><td class="line"> <span class='comment'>* Copyright © 2001 Havoc Pennington</span></td></tr>
+<tr class="codeline" data-linenumber="3"><td class="num" id="LN3">3</td><td class="line"> <span class='comment'>* Copyright © 2002 Red Hat, Inc.</span></td></tr>
+<tr class="codeline" data-linenumber="4"><td class="num" id="LN4">4</td><td class="line"> <span class='comment'>* Copyright © 2007, 2008, 2009 Christian Persch</span></td></tr>
+<tr class="codeline" data-linenumber="5"><td class="num" id="LN5">5</td><td class="line"> <span class='comment'>* Copyright (C) 2012-2021 MATE Developers</span></td></tr>
+<tr class="codeline" data-linenumber="6"><td class="num" id="LN6">6</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="7"><td class="num" id="LN7">7</td><td class="line"> <span class='comment'>* Mate-terminal is free software; you can redistribute it and/or modify</span></td></tr>
+<tr class="codeline" data-linenumber="8"><td class="num" id="LN8">8</td><td class="line"> <span class='comment'>* it under the terms of the GNU General Public License as published by</span></td></tr>
+<tr class="codeline" data-linenumber="9"><td class="num" id="LN9">9</td><td class="line"> <span class='comment'>* the Free Software Foundation; either version 3 of the License, or</span></td></tr>
+<tr class="codeline" data-linenumber="10"><td class="num" id="LN10">10</td><td class="line"> <span class='comment'>* (at your option) any later version.</span></td></tr>
+<tr class="codeline" data-linenumber="11"><td class="num" id="LN11">11</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="12"><td class="num" id="LN12">12</td><td class="line"> <span class='comment'>* Mate-terminal is distributed in the hope that it will be useful,</span></td></tr>
+<tr class="codeline" data-linenumber="13"><td class="num" id="LN13">13</td><td class="line"> <span class='comment'>* but WITHOUT ANY WARRANTY; without even the implied warranty of</span></td></tr>
+<tr class="codeline" data-linenumber="14"><td class="num" id="LN14">14</td><td class="line"> <span class='comment'>* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></td></tr>
+<tr class="codeline" data-linenumber="15"><td class="num" id="LN15">15</td><td class="line"> <span class='comment'>* GNU General Public License for more details.</span></td></tr>
+<tr class="codeline" data-linenumber="16"><td class="num" id="LN16">16</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="17"><td class="num" id="LN17">17</td><td class="line"> <span class='comment'>* You should have received a copy of the GNU General Public License</span></td></tr>
+<tr class="codeline" data-linenumber="18"><td class="num" id="LN18">18</td><td class="line"> <span class='comment'>* along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.</span></td></tr>
+<tr class="codeline" data-linenumber="19"><td class="num" id="LN19">19</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="20"><td class="num" id="LN20">20</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="21"><td class="num" id="LN21">21</td><td class="line"><span class='directive'>#include &lt;config.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="22"><td class="num" id="LN22">22</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="23"><td class="num" id="LN23">23</td><td class="line"><span class='directive'>#include &lt;string.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="24"><td class="num" id="LN24">24</td><td class="line"><span class='directive'>#include &lt;stdlib.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="25"><td class="num" id="LN25">25</td><td class="line"><span class='directive'>#include &lt;gtk/gtk.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="26"><td class="num" id="LN26">26</td><td class="line"><span class='directive'>#include &lt;gdk/gdk.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="27"><td class="num" id="LN27">27</td><td class="line"><span class='directive'>#ifdef GDK_WINDOWING_X11</span></td></tr>
+<tr class="codeline" data-linenumber="28"><td class="num" id="LN28">28</td><td class="line"><span class='directive'>#include &lt;gdk/gdkx.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="29"><td class="num" id="LN29">29</td><td class="line"><span class='directive'>#endif</span></td></tr>
+<tr class="codeline" data-linenumber="30"><td class="num" id="LN30">30</td><td class="line"><span class='directive'>#include &lt;gdk/gdkkeysyms.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="31"><td class="num" id="LN31">31</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="32"><td class="num" id="LN32">32</td><td class="line"><span class='directive'>#include "terminal-accels.h"</span></td></tr>
+<tr class="codeline" data-linenumber="33"><td class="num" id="LN33">33</td><td class="line"><span class='directive'>#include "terminal-app.h"</span></td></tr>
+<tr class="codeline" data-linenumber="34"><td class="num" id="LN34">34</td><td class="line"><span class='directive'>#include "terminal-debug.h"</span></td></tr>
+<tr class="codeline" data-linenumber="35"><td class="num" id="LN35">35</td><td class="line"><span class='directive'>#include "terminal-encoding.h"</span></td></tr>
+<tr class="codeline" data-linenumber="36"><td class="num" id="LN36">36</td><td class="line"><span class='directive'>#include "terminal-intl.h"</span></td></tr>
+<tr class="codeline" data-linenumber="37"><td class="num" id="LN37">37</td><td class="line"><span class='directive'>#include "terminal-screen-container.h"</span></td></tr>
+<tr class="codeline" data-linenumber="38"><td class="num" id="LN38">38</td><td class="line"><span class='directive'>#include "terminal-search-dialog.h"</span></td></tr>
+<tr class="codeline" data-linenumber="39"><td class="num" id="LN39">39</td><td class="line"><span class='directive'>#include "terminal-tab-label.h"</span></td></tr>
+<tr class="codeline" data-linenumber="40"><td class="num" id="LN40">40</td><td class="line"><span class='directive'>#include "terminal-tabs-menu.h"</span></td></tr>
+<tr class="codeline" data-linenumber="41"><td class="num" id="LN41">41</td><td class="line"><span class='directive'>#include "terminal-util.h"</span></td></tr>
+<tr class="codeline" data-linenumber="42"><td class="num" id="LN42">42</td><td class="line"><span class='directive'>#include "terminal-window.h"</span></td></tr>
+<tr class="codeline" data-linenumber="43"><td class="num" id="LN43">43</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="44"><td class="num" id="LN44">44</td><td class="line"><span class='directive'>#ifdef <span class='macro'>ENABLE_SKEY<span class='macro_popup'>1</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="45"><td class="num" id="LN45">45</td><td class="line"><span class='directive'>#include "skey-popup.h"</span></td></tr>
+<tr class="codeline" data-linenumber="46"><td class="num" id="LN46">46</td><td class="line"><span class='directive'>#endif</span></td></tr>
+<tr class="codeline" data-linenumber="47"><td class="num" id="LN47">47</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="48"><td class="num" id="LN48">48</td><td class="line"><span class='keyword'>static</span> gboolean detach_tab = <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="49"><td class="num" id="LN49">49</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="50"><td class="num" id="LN50">50</td><td class="line"><span class='keyword'>struct</span> _TerminalWindowPrivate</td></tr>
+<tr class="codeline" data-linenumber="51"><td class="num" id="LN51">51</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="52"><td class="num" id="LN52">52</td><td class="line"> GtkActionGroup *action_group;</td></tr>
+<tr class="codeline" data-linenumber="53"><td class="num" id="LN53">53</td><td class="line"> GtkUIManager *ui_manager;</td></tr>
+<tr class="codeline" data-linenumber="54"><td class="num" id="LN54">54</td><td class="line"> guint ui_id;</td></tr>
+<tr class="codeline" data-linenumber="55"><td class="num" id="LN55">55</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="56"><td class="num" id="LN56">56</td><td class="line"> GtkActionGroup *profiles_action_group;</td></tr>
+<tr class="codeline" data-linenumber="57"><td class="num" id="LN57">57</td><td class="line"> guint profiles_ui_id;</td></tr>
+<tr class="codeline" data-linenumber="58"><td class="num" id="LN58">58</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="59"><td class="num" id="LN59">59</td><td class="line"> GtkActionGroup *encodings_action_group;</td></tr>
+<tr class="codeline" data-linenumber="60"><td class="num" id="LN60">60</td><td class="line"> guint encodings_ui_id;</td></tr>
+<tr class="codeline" data-linenumber="61"><td class="num" id="LN61">61</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="62"><td class="num" id="LN62">62</td><td class="line"> TerminalTabsMenu *tabs_menu;</td></tr>
+<tr class="codeline" data-linenumber="63"><td class="num" id="LN63">63</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="64"><td class="num" id="LN64">64</td><td class="line"> TerminalScreenPopupInfo *popup_info;</td></tr>
+<tr class="codeline" data-linenumber="65"><td class="num" id="LN65">65</td><td class="line"> guint remove_popup_info_idle;</td></tr>
+<tr class="codeline" data-linenumber="66"><td class="num" id="LN66">66</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="67"><td class="num" id="LN67">67</td><td class="line"> GtkActionGroup *new_terminal_action_group;</td></tr>
+<tr class="codeline" data-linenumber="68"><td class="num" id="LN68">68</td><td class="line"> guint new_terminal_ui_id;</td></tr>
+<tr class="codeline" data-linenumber="69"><td class="num" id="LN69">69</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="70"><td class="num" id="LN70">70</td><td class="line"> GtkWidget *menubar;</td></tr>
+<tr class="codeline" data-linenumber="71"><td class="num" id="LN71">71</td><td class="line"> GtkWidget *notebook;</td></tr>
+<tr class="codeline" data-linenumber="72"><td class="num" id="LN72">72</td><td class="line"> GtkWidget *main_vbox;</td></tr>
+<tr class="codeline" data-linenumber="73"><td class="num" id="LN73">73</td><td class="line"> TerminalScreen *active_screen;</td></tr>
+<tr class="codeline" data-linenumber="74"><td class="num" id="LN74">74</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="75"><td class="num" id="LN75">75</td><td class="line"> <span class='comment'>/* Size of a character cell in pixels */</span></td></tr>
+<tr class="codeline" data-linenumber="76"><td class="num" id="LN76">76</td><td class="line"> <span class='keyword'>int</span> old_char_width;</td></tr>
+<tr class="codeline" data-linenumber="77"><td class="num" id="LN77">77</td><td class="line"> <span class='keyword'>int</span> old_char_height;</td></tr>
+<tr class="codeline" data-linenumber="78"><td class="num" id="LN78">78</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="79"><td class="num" id="LN79">79</td><td class="line"> <span class='comment'>/* Width and height added to the actual terminal grid by "chrome" inside</span></td></tr>
+<tr class="codeline" data-linenumber="80"><td class="num" id="LN80">80</td><td class="line"> <span class='comment'>* what was traditionally the X11 window: menu bar, title bar,</span></td></tr>
+<tr class="codeline" data-linenumber="81"><td class="num" id="LN81">81</td><td class="line"> <span class='comment'>* style-provided padding. This must be included when resizing the window</span></td></tr>
+<tr class="codeline" data-linenumber="82"><td class="num" id="LN82">82</td><td class="line"> <span class='comment'>* and also included in geometry hints. */</span></td></tr>
+<tr class="codeline" data-linenumber="83"><td class="num" id="LN83">83</td><td class="line"> <span class='keyword'>int</span> old_chrome_width;</td></tr>
+<tr class="codeline" data-linenumber="84"><td class="num" id="LN84">84</td><td class="line"> <span class='keyword'>int</span> old_chrome_height;</td></tr>
+<tr class="codeline" data-linenumber="85"><td class="num" id="LN85">85</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="86"><td class="num" id="LN86">86</td><td class="line"> <span class='comment'>/* Width and height of the padding around the geometry widget. */</span></td></tr>
+<tr class="codeline" data-linenumber="87"><td class="num" id="LN87">87</td><td class="line"> <span class='keyword'>int</span> old_padding_width;</td></tr>
+<tr class="codeline" data-linenumber="88"><td class="num" id="LN88">88</td><td class="line"> <span class='keyword'>int</span> old_padding_height;</td></tr>
+<tr class="codeline" data-linenumber="89"><td class="num" id="LN89">89</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="90"><td class="num" id="LN90">90</td><td class="line"> <span class='keyword'>void</span> *old_geometry_widget; <span class='comment'>/* only used for pointer value as it may be freed */</span></td></tr>
+<tr class="codeline" data-linenumber="91"><td class="num" id="LN91">91</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="92"><td class="num" id="LN92">92</td><td class="line"> GtkWidget *confirm_close_dialog;</td></tr>
+<tr class="codeline" data-linenumber="93"><td class="num" id="LN93">93</td><td class="line"> GtkWidget *search_find_dialog;</td></tr>
+<tr class="codeline" data-linenumber="94"><td class="num" id="LN94">94</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="95"><td class="num" id="LN95">95</td><td class="line"> guint menubar_visible : 1;</td></tr>
+<tr class="codeline" data-linenumber="96"><td class="num" id="LN96">96</td><td class="line"> guint use_default_menubar_visibility : 1;</td></tr>
+<tr class="codeline" data-linenumber="97"><td class="num" id="LN97">97</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="98"><td class="num" id="LN98">98</td><td class="line"> <span class='comment'>/* Compositing manager integration */</span></td></tr>
+<tr class="codeline" data-linenumber="99"><td class="num" id="LN99">99</td><td class="line"> guint have_argb_visual : 1;</td></tr>
+<tr class="codeline" data-linenumber="100"><td class="num" id="LN100">100</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="101"><td class="num" id="LN101">101</td><td class="line"> <span class='comment'>/* Used to clear stray "demands attention" flashing on our window when we</span></td></tr>
+<tr class="codeline" data-linenumber="102"><td class="num" id="LN102">102</td><td class="line"> <span class='comment'>* unmap and map it to switch to an ARGB visual.</span></td></tr>
+<tr class="codeline" data-linenumber="103"><td class="num" id="LN103">103</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="104"><td class="num" id="LN104">104</td><td class="line"> guint clear_demands_attention : 1;</td></tr>
+<tr class="codeline" data-linenumber="105"><td class="num" id="LN105">105</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="106"><td class="num" id="LN106">106</td><td class="line"> guint disposed : 1;</td></tr>
+<tr class="codeline" data-linenumber="107"><td class="num" id="LN107">107</td><td class="line"> guint present_on_insert : 1;</td></tr>
+<tr class="codeline" data-linenumber="108"><td class="num" id="LN108">108</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="109"><td class="num" id="LN109">109</td><td class="line"> <span class='comment'>/* Workaround until gtk+ bug #535557 is fixed */</span></td></tr>
+<tr class="codeline" data-linenumber="110"><td class="num" id="LN110">110</td><td class="line"> guint icon_title_set : 1;</td></tr>
+<tr class="codeline" data-linenumber="111"><td class="num" id="LN111">111</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="112"><td class="num" id="LN112">112</td><td class="line"> gint64 focus_time;</td></tr>
+<tr class="codeline" data-linenumber="113"><td class="num" id="LN113">113</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="114"><td class="num" id="LN114">114</td><td class="line"> <span class='comment'>/* should we copy selection to clibpoard */</span></td></tr>
+<tr class="codeline" data-linenumber="115"><td class="num" id="LN115">115</td><td class="line"> <span class='keyword'>int</span> copy_selection;</td></tr>
+<tr class="codeline" data-linenumber="116"><td class="num" id="LN116">116</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="117"><td class="num" id="LN117">117</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="118"><td class="num" id="LN118">118</td><td class="line"><span class='directive'>#define <span class='macro'>PROFILE_DATA_KEY<span class='macro_popup'>"GT::Profile"</span></span> "GT::Profile"</span></td></tr>
+<tr class="codeline" data-linenumber="119"><td class="num" id="LN119">119</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="120"><td class="num" id="LN120">120</td><td class="line"><span class='directive'>#define <span class='macro'>FILE_NEW_TERMINAL_TAB_UI_PATH<span class='macro_popup'>"/menubar/File/FileNewTabProfiles"</span></span> "/menubar/File/FileNewTabProfiles"</span></td></tr>
+<tr class="codeline" data-linenumber="121"><td class="num" id="LN121">121</td><td class="line"><span class='directive'>#define <span class='macro'>FILE_NEW_TERMINAL_WINDOW_UI_PATH<span class='macro_popup'>"/menubar/File/FileNewWindowProfiles"</span></span> "/menubar/File/FileNewWindowProfiles"</span></td></tr>
+<tr class="codeline" data-linenumber="122"><td class="num" id="LN122">122</td><td class="line"><span class='directive'>#define <span class='macro'>SET_ENCODING_UI_PATH<span class='macro_popup'>"/menubar/Terminal/TerminalSetEncoding/EncodingsPH"</span></span> "/menubar/Terminal/TerminalSetEncoding/EncodingsPH"</span></td></tr>
+<tr class="codeline" data-linenumber="123"><td class="num" id="LN123">123</td><td class="line"><span class='directive'>#define <span class='macro'>SET_ENCODING_ACTION_NAME_PREFIX<span class='macro_popup'>"TerminalSetEncoding"</span></span> "TerminalSetEncoding"</span></td></tr>
+<tr class="codeline" data-linenumber="124"><td class="num" id="LN124">124</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="125"><td class="num" id="LN125">125</td><td class="line"><span class='directive'>#define <span class='macro'>PROFILES_UI_PATH<span class='macro_popup'>"/menubar/Terminal/TerminalProfiles/ProfilesPH"</span></span> "/menubar/Terminal/TerminalProfiles/ProfilesPH"</span></td></tr>
+<tr class="codeline" data-linenumber="126"><td class="num" id="LN126">126</td><td class="line"><span class='directive'>#define <span class='macro'>PROFILES_POPUP_UI_PATH<span class='macro_popup'>"/Popup/PopupTerminalProfiles/ProfilesPH"</span></span> "/Popup/PopupTerminalProfiles/ProfilesPH"</span></td></tr>
+<tr class="codeline" data-linenumber="127"><td class="num" id="LN127">127</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="128"><td class="num" id="LN128">128</td><td class="line"><span class='directive'>#define <span class='macro'>SIZE_TO_UI_PATH<span class='macro_popup'>"/menubar/Terminal/TerminalSizeToPH"</span></span> "/menubar/Terminal/TerminalSizeToPH"</span></td></tr>
+<tr class="codeline" data-linenumber="129"><td class="num" id="LN129">129</td><td class="line"><span class='directive'>#define <span class='macro'>SIZE_TO_ACTION_NAME_PREFIX<span class='macro_popup'>"TerminalSizeTo"</span></span> "TerminalSizeTo"</span></td></tr>
+<tr class="codeline" data-linenumber="130"><td class="num" id="LN130">130</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="131"><td class="num" id="LN131">131</td><td class="line"><span class='directive'>#define <span class='macro'>STOCK_NEW_TAB<span class='macro_popup'>"tab-new"</span></span> "tab-new"</span></td></tr>
+<tr class="codeline" data-linenumber="132"><td class="num" id="LN132">132</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="133"><td class="num" id="LN133">133</td><td class="line"><span class='directive'>#define <span class='macro'>ENCODING_DATA_KEY<span class='macro_popup'>"encoding"</span></span> "encoding"</span></td></tr>
+<tr class="codeline" data-linenumber="134"><td class="num" id="LN134">134</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="135"><td class="num" id="LN135">135</td><td class="line"><span class='directive'>#if 1</span></td></tr>
+<tr class="codeline" data-linenumber="136"><td class="num" id="LN136">136</td><td class="line"><span class='comment'>/*</span></td></tr>
+<tr class="codeline" data-linenumber="137"><td class="num" id="LN137">137</td><td class="line"> <span class='comment'>* We don't want to enable content saving until vte supports it async.</span></td></tr>
+<tr class="codeline" data-linenumber="138"><td class="num" id="LN138">138</td><td class="line"> <span class='comment'>* So we disable this code for stable versions.</span></td></tr>
+<tr class="codeline" data-linenumber="139"><td class="num" id="LN139">139</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="140"><td class="num" id="LN140">140</td><td class="line"><span class='directive'>#include "terminal-version.h"</span></td></tr>
+<tr class="codeline" data-linenumber="141"><td class="num" id="LN141">141</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="142"><td class="num" id="LN142">142</td><td class="line"><span class='directive'>#if (<span class='macro'>TERMINAL_MINOR_VERSION<span class='macro_popup'>(27)</span></span> &amp; 1) != 0</span></td></tr>
+<tr class="codeline" data-linenumber="143"><td class="num" id="LN143">143</td><td class="line"><span class='directive'>#define ENABLE_SAVE</span></td></tr>
+<tr class="codeline" data-linenumber="144"><td class="num" id="LN144">144</td><td class="line"><span class='directive'>#else</span></td></tr>
+<tr class="codeline" data-linenumber="145"><td class="num" id="LN145">145</td><td class="line"><span class='directive'>#undef ENABLE_SAVE</span></td></tr>
+<tr class="codeline" data-linenumber="146"><td class="num" id="LN146">146</td><td class="line"><span class='directive'>#endif</span></td></tr>
+<tr class="codeline" data-linenumber="147"><td class="num" id="LN147">147</td><td class="line"><span class='directive'>#endif</span></td></tr>
+<tr class="codeline" data-linenumber="148"><td class="num" id="LN148">148</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="149"><td class="num" id="LN149">149</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> terminal_window_dispose (GObject *object);</td></tr>
+<tr class="codeline" data-linenumber="150"><td class="num" id="LN150">150</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> terminal_window_finalize (GObject *object);</td></tr>
+<tr class="codeline" data-linenumber="151"><td class="num" id="LN151">151</td><td class="line"><span class='keyword'>static</span> gboolean terminal_window_state_event (GtkWidget *widget,</td></tr>
+<tr class="codeline" data-linenumber="152"><td class="num" id="LN152">152</td><td class="line"> GdkEventWindowState *event);</td></tr>
+<tr class="codeline" data-linenumber="153"><td class="num" id="LN153">153</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="154"><td class="num" id="LN154">154</td><td class="line"><span class='keyword'>static</span> gboolean terminal_window_delete_event (GtkWidget *widget,</td></tr>
+<tr class="codeline" data-linenumber="155"><td class="num" id="LN155">155</td><td class="line"> GdkEvent *event,</td></tr>
+<tr class="codeline" data-linenumber="156"><td class="num" id="LN156">156</td><td class="line"> gpointer data);</td></tr>
+<tr class="codeline" data-linenumber="157"><td class="num" id="LN157">157</td><td class="line"><span class='keyword'>static</span> gboolean terminal_window_focus_in_event (GtkWidget *widget,</td></tr>
+<tr class="codeline" data-linenumber="158"><td class="num" id="LN158">158</td><td class="line"> GdkEventFocus *event,</td></tr>
+<tr class="codeline" data-linenumber="159"><td class="num" id="LN159">159</td><td class="line"> gpointer data);</td></tr>
+<tr class="codeline" data-linenumber="160"><td class="num" id="LN160">160</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="161"><td class="num" id="LN161">161</td><td class="line"><span class='keyword'>static</span> gboolean notebook_button_press_cb (GtkWidget *notebook,</td></tr>
+<tr class="codeline" data-linenumber="162"><td class="num" id="LN162">162</td><td class="line"> GdkEventButton *event,</td></tr>
+<tr class="codeline" data-linenumber="163"><td class="num" id="LN163">163</td><td class="line"> GSettings *settings);</td></tr>
+<tr class="codeline" data-linenumber="164"><td class="num" id="LN164">164</td><td class="line"><span class='keyword'>static</span> gboolean window_key_press_cb (GtkWidget *notebook,</td></tr>
+<tr class="codeline" data-linenumber="165"><td class="num" id="LN165">165</td><td class="line"> GdkEventKey *event,</td></tr>
+<tr class="codeline" data-linenumber="166"><td class="num" id="LN166">166</td><td class="line"> GSettings *settings);</td></tr>
+<tr class="codeline" data-linenumber="167"><td class="num" id="LN167">167</td><td class="line"><span class='keyword'>static</span> gboolean notebook_popup_menu_cb (GtkWidget *notebook,</td></tr>
+<tr class="codeline" data-linenumber="168"><td class="num" id="LN168">168</td><td class="line"> TerminalWindow *window);</td></tr>
+<tr class="codeline" data-linenumber="169"><td class="num" id="LN169">169</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> notebook_page_selected_callback (GtkWidget *notebook,</td></tr>
+<tr class="codeline" data-linenumber="170"><td class="num" id="LN170">170</td><td class="line"> GtkWidget *page,</td></tr>
+<tr class="codeline" data-linenumber="171"><td class="num" id="LN171">171</td><td class="line"> guint page_num,</td></tr>
+<tr class="codeline" data-linenumber="172"><td class="num" id="LN172">172</td><td class="line"> TerminalWindow *window);</td></tr>
+<tr class="codeline" data-linenumber="173"><td class="num" id="LN173">173</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> notebook_page_added_callback (GtkWidget *notebook,</td></tr>
+<tr class="codeline" data-linenumber="174"><td class="num" id="LN174">174</td><td class="line"> GtkWidget *container,</td></tr>
+<tr class="codeline" data-linenumber="175"><td class="num" id="LN175">175</td><td class="line"> guint page_num,</td></tr>
+<tr class="codeline" data-linenumber="176"><td class="num" id="LN176">176</td><td class="line"> TerminalWindow *window);</td></tr>
+<tr class="codeline" data-linenumber="177"><td class="num" id="LN177">177</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> notebook_page_removed_callback (GtkWidget *notebook,</td></tr>
+<tr class="codeline" data-linenumber="178"><td class="num" id="LN178">178</td><td class="line"> GtkWidget *container,</td></tr>
+<tr class="codeline" data-linenumber="179"><td class="num" id="LN179">179</td><td class="line"> guint page_num,</td></tr>
+<tr class="codeline" data-linenumber="180"><td class="num" id="LN180">180</td><td class="line"> TerminalWindow *window);</td></tr>
+<tr class="codeline" data-linenumber="181"><td class="num" id="LN181">181</td><td class="line"><span class='keyword'>static</span> gboolean notebook_scroll_event_cb (GtkWidget *notebook,</td></tr>
+<tr class="codeline" data-linenumber="182"><td class="num" id="LN182">182</td><td class="line"> GdkEventScroll *event,</td></tr>
+<tr class="codeline" data-linenumber="183"><td class="num" id="LN183">183</td><td class="line"> TerminalWindow *window);</td></tr>
+<tr class="codeline" data-linenumber="184"><td class="num" id="LN184">184</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="185"><td class="num" id="LN185">185</td><td class="line"><span class='comment'>/* Menu action callbacks */</span></td></tr>
+<tr class="codeline" data-linenumber="186"><td class="num" id="LN186">186</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> file_new_window_callback (GtkAction *action,</td></tr>
+<tr class="codeline" data-linenumber="187"><td class="num" id="LN187">187</td><td class="line"> TerminalWindow *window);</td></tr>
+<tr class="codeline" data-linenumber="188"><td class="num" id="LN188">188</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> file_new_tab_callback (GtkAction *action,</td></tr>
+<tr class="codeline" data-linenumber="189"><td class="num" id="LN189">189</td><td class="line"> TerminalWindow *window);</td></tr>
+<tr class="codeline" data-linenumber="190"><td class="num" id="LN190">190</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> file_new_profile_callback (GtkAction *action,</td></tr>
+<tr class="codeline" data-linenumber="191"><td class="num" id="LN191">191</td><td class="line"> TerminalWindow *window);</td></tr>
+<tr class="codeline" data-linenumber="192"><td class="num" id="LN192">192</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> file_close_window_callback (GtkAction *action,</td></tr>
+<tr class="codeline" data-linenumber="193"><td class="num" id="LN193">193</td><td class="line"> TerminalWindow *window);</td></tr>
+<tr class="codeline" data-linenumber="194"><td class="num" id="LN194">194</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> file_save_contents_callback (GtkAction *action,</td></tr>
+<tr class="codeline" data-linenumber="195"><td class="num" id="LN195">195</td><td class="line"> TerminalWindow *window);</td></tr>
+<tr class="codeline" data-linenumber="196"><td class="num" id="LN196">196</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> file_close_tab_callback (GtkAction *action,</td></tr>
+<tr class="codeline" data-linenumber="197"><td class="num" id="LN197">197</td><td class="line"> TerminalWindow *window);</td></tr>
+<tr class="codeline" data-linenumber="198"><td class="num" id="LN198">198</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> edit_copy_callback (GtkAction *action,</td></tr>
+<tr class="codeline" data-linenumber="199"><td class="num" id="LN199">199</td><td class="line"> TerminalWindow *window);</td></tr>
+<tr class="codeline" data-linenumber="200"><td class="num" id="LN200">200</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> edit_paste_callback (GtkAction *action,</td></tr>
+<tr class="codeline" data-linenumber="201"><td class="num" id="LN201">201</td><td class="line"> TerminalWindow *window);</td></tr>
+<tr class="codeline" data-linenumber="202"><td class="num" id="LN202">202</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> edit_select_all_callback (GtkAction *action,</td></tr>
+<tr class="codeline" data-linenumber="203"><td class="num" id="LN203">203</td><td class="line"> TerminalWindow *window);</td></tr>
+<tr class="codeline" data-linenumber="204"><td class="num" id="LN204">204</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> edit_keybindings_callback (GtkAction *action,</td></tr>
+<tr class="codeline" data-linenumber="205"><td class="num" id="LN205">205</td><td class="line"> TerminalWindow *window);</td></tr>
+<tr class="codeline" data-linenumber="206"><td class="num" id="LN206">206</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> edit_profiles_callback (GtkAction *action,</td></tr>
+<tr class="codeline" data-linenumber="207"><td class="num" id="LN207">207</td><td class="line"> TerminalWindow *window);</td></tr>
+<tr class="codeline" data-linenumber="208"><td class="num" id="LN208">208</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> edit_current_profile_callback (GtkAction *action,</td></tr>
+<tr class="codeline" data-linenumber="209"><td class="num" id="LN209">209</td><td class="line"> TerminalWindow *window);</td></tr>
+<tr class="codeline" data-linenumber="210"><td class="num" id="LN210">210</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> view_menubar_toggled_callback (GtkToggleAction *action,</td></tr>
+<tr class="codeline" data-linenumber="211"><td class="num" id="LN211">211</td><td class="line"> TerminalWindow *window);</td></tr>
+<tr class="codeline" data-linenumber="212"><td class="num" id="LN212">212</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> view_fullscreen_toggled_callback (GtkToggleAction *action,</td></tr>
+<tr class="codeline" data-linenumber="213"><td class="num" id="LN213">213</td><td class="line"> TerminalWindow *window);</td></tr>
+<tr class="codeline" data-linenumber="214"><td class="num" id="LN214">214</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> view_zoom_in_callback (GtkAction *action,</td></tr>
+<tr class="codeline" data-linenumber="215"><td class="num" id="LN215">215</td><td class="line"> TerminalWindow *window);</td></tr>
+<tr class="codeline" data-linenumber="216"><td class="num" id="LN216">216</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> view_zoom_out_callback (GtkAction *action,</td></tr>
+<tr class="codeline" data-linenumber="217"><td class="num" id="LN217">217</td><td class="line"> TerminalWindow *window);</td></tr>
+<tr class="codeline" data-linenumber="218"><td class="num" id="LN218">218</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> view_zoom_normal_callback (GtkAction *action,</td></tr>
+<tr class="codeline" data-linenumber="219"><td class="num" id="LN219">219</td><td class="line"> TerminalWindow *window);</td></tr>
+<tr class="codeline" data-linenumber="220"><td class="num" id="LN220">220</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> search_find_callback (GtkAction *action,</td></tr>
+<tr class="codeline" data-linenumber="221"><td class="num" id="LN221">221</td><td class="line"> TerminalWindow *window);</td></tr>
+<tr class="codeline" data-linenumber="222"><td class="num" id="LN222">222</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> search_find_next_callback (GtkAction *action,</td></tr>
+<tr class="codeline" data-linenumber="223"><td class="num" id="LN223">223</td><td class="line"> TerminalWindow *window);</td></tr>
+<tr class="codeline" data-linenumber="224"><td class="num" id="LN224">224</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> search_find_prev_callback (GtkAction *action,</td></tr>
+<tr class="codeline" data-linenumber="225"><td class="num" id="LN225">225</td><td class="line"> TerminalWindow *window);</td></tr>
+<tr class="codeline" data-linenumber="226"><td class="num" id="LN226">226</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> search_clear_highlight_callback (GtkAction *action,</td></tr>
+<tr class="codeline" data-linenumber="227"><td class="num" id="LN227">227</td><td class="line"> TerminalWindow *window);</td></tr>
+<tr class="codeline" data-linenumber="228"><td class="num" id="LN228">228</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> terminal_next_or_previous_profile_cb (GtkAction *action,</td></tr>
+<tr class="codeline" data-linenumber="229"><td class="num" id="LN229">229</td><td class="line"> TerminalWindow *window);</td></tr>
+<tr class="codeline" data-linenumber="230"><td class="num" id="LN230">230</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> terminal_set_title_callback (GtkAction *action,</td></tr>
+<tr class="codeline" data-linenumber="231"><td class="num" id="LN231">231</td><td class="line"> TerminalWindow *window);</td></tr>
+<tr class="codeline" data-linenumber="232"><td class="num" id="LN232">232</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> terminal_add_encoding_callback (GtkAction *action,</td></tr>
+<tr class="codeline" data-linenumber="233"><td class="num" id="LN233">233</td><td class="line"> TerminalWindow *window);</td></tr>
+<tr class="codeline" data-linenumber="234"><td class="num" id="LN234">234</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> terminal_reset_callback (GtkAction *action,</td></tr>
+<tr class="codeline" data-linenumber="235"><td class="num" id="LN235">235</td><td class="line"> TerminalWindow *window);</td></tr>
+<tr class="codeline" data-linenumber="236"><td class="num" id="LN236">236</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> terminal_reset_clear_callback (GtkAction *action,</td></tr>
+<tr class="codeline" data-linenumber="237"><td class="num" id="LN237">237</td><td class="line"> TerminalWindow *window);</td></tr>
+<tr class="codeline" data-linenumber="238"><td class="num" id="LN238">238</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> tabs_next_or_previous_tab_cb (GtkAction *action,</td></tr>
+<tr class="codeline" data-linenumber="239"><td class="num" id="LN239">239</td><td class="line"> TerminalWindow *window);</td></tr>
+<tr class="codeline" data-linenumber="240"><td class="num" id="LN240">240</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> tabs_move_left_callback (GtkAction *action,</td></tr>
+<tr class="codeline" data-linenumber="241"><td class="num" id="LN241">241</td><td class="line"> TerminalWindow *window);</td></tr>
+<tr class="codeline" data-linenumber="242"><td class="num" id="LN242">242</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> tabs_move_right_callback (GtkAction *action,</td></tr>
+<tr class="codeline" data-linenumber="243"><td class="num" id="LN243">243</td><td class="line"> TerminalWindow *window);</td></tr>
+<tr class="codeline" data-linenumber="244"><td class="num" id="LN244">244</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> tabs_detach_tab_callback (GtkAction *action,</td></tr>
+<tr class="codeline" data-linenumber="245"><td class="num" id="LN245">245</td><td class="line"> TerminalWindow *window);</td></tr>
+<tr class="codeline" data-linenumber="246"><td class="num" id="LN246">246</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> help_contents_callback (GtkAction *action,</td></tr>
+<tr class="codeline" data-linenumber="247"><td class="num" id="LN247">247</td><td class="line"> TerminalWindow *window);</td></tr>
+<tr class="codeline" data-linenumber="248"><td class="num" id="LN248">248</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> help_about_callback (GtkAction *action,</td></tr>
+<tr class="codeline" data-linenumber="249"><td class="num" id="LN249">249</td><td class="line"> TerminalWindow *window);</td></tr>
+<tr class="codeline" data-linenumber="250"><td class="num" id="LN250">250</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="251"><td class="num" id="LN251">251</td><td class="line"><span class='keyword'>static</span> gboolean find_larger_zoom_factor (<span class='keyword'>double</span> current,</td></tr>
+<tr class="codeline" data-linenumber="252"><td class="num" id="LN252">252</td><td class="line"> <span class='keyword'>double</span> *found);</td></tr>
+<tr class="codeline" data-linenumber="253"><td class="num" id="LN253">253</td><td class="line"><span class='keyword'>static</span> gboolean find_smaller_zoom_factor (<span class='keyword'>double</span> current,</td></tr>
+<tr class="codeline" data-linenumber="254"><td class="num" id="LN254">254</td><td class="line"> <span class='keyword'>double</span> *found);</td></tr>
+<tr class="codeline" data-linenumber="255"><td class="num" id="LN255">255</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="256"><td class="num" id="LN256">256</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> terminal_window_show (GtkWidget *widget);</td></tr>
+<tr class="codeline" data-linenumber="257"><td class="num" id="LN257">257</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="258"><td class="num" id="LN258">258</td><td class="line"><span class='keyword'>static</span> gboolean confirm_close_window_or_tab (TerminalWindow *window,</td></tr>
+<tr class="codeline" data-linenumber="259"><td class="num" id="LN259">259</td><td class="line"> TerminalScreen *screen);</td></tr>
+<tr class="codeline" data-linenumber="260"><td class="num" id="LN260">260</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="261"><td class="num" id="LN261">261</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="262"><td class="num" id="LN262">262</td><td class="line">profile_set_callback (TerminalScreen *screen,</td></tr>
+<tr class="codeline" data-linenumber="263"><td class="num" id="LN263">263</td><td class="line"> TerminalProfile *old_profile,</td></tr>
+<tr class="codeline" data-linenumber="264"><td class="num" id="LN264">264</td><td class="line"> TerminalWindow *window);</td></tr>
+<tr class="codeline" data-linenumber="265"><td class="num" id="LN265">265</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="266"><td class="num" id="LN266">266</td><td class="line">sync_screen_icon_title (TerminalScreen *screen,</td></tr>
+<tr class="codeline" data-linenumber="267"><td class="num" id="LN267">267</td><td class="line"> GParamSpec *psepc,</td></tr>
+<tr class="codeline" data-linenumber="268"><td class="num" id="LN268">268</td><td class="line"> TerminalWindow *window);</td></tr>
+<tr class="codeline" data-linenumber="269"><td class="num" id="LN269">269</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="270"><td class="num" id="LN270">270</td><td class="line"><span class='macro'>G_DEFINE_TYPE_WITH_PRIVATE (TerminalWindow, terminal_window, GTK_TYPE_WINDOW)<span class='macro_popup'>static void terminal_window_init (TerminalWindow *self); static<br> void terminal_window_class_init (TerminalWindowClass *klass)<br>; static GType terminal_window_get_type_once (void); static gpointer<br> terminal_window_parent_class = ((void*)0); static gint TerminalWindow_private_offset<br>; static void terminal_window_class_intern_init (gpointer klass<br>) { terminal_window_parent_class = g_type_class_peek_parent (<br>klass); if (TerminalWindow_private_offset != 0) g_type_class_adjust_private_offset<br> (klass, &amp;TerminalWindow_private_offset); terminal_window_class_init<br> ((TerminalWindowClass*) klass); } __attribute__ ((__unused__<br>)) static inline gpointer terminal_window_get_instance_private<br> (TerminalWindow *self) { return (((gpointer) ((guint8*) (self<br>) + (glong) (TerminalWindow_private_offset)))); } GType terminal_window_get_type<br> (void) { static gsize static_g_define_type_id = 0; if ((__extension__<br> ({ _Static_assert (sizeof *(&amp;static_g_define_type_id) ==<br> sizeof (gpointer), "Expression evaluates to false"); (void) (<br>0 ? (gpointer) *(&amp;static_g_define_type_id) : ((void*)0));<br> (!(__extension__ ({ _Static_assert (sizeof *(&amp;static_g_define_type_id<br>) == sizeof (gpointer), "Expression evaluates to false"); __typeof__<br> (*(&amp;static_g_define_type_id)) gapg_temp_newval; __typeof__<br> ((&amp;static_g_define_type_id)) gapg_temp_atomic = (&amp;static_g_define_type_id<br>); __atomic_load (gapg_temp_atomic, &amp;gapg_temp_newval, 5)<br>; gapg_temp_newval; })) &amp;&amp; g_once_init_enter (&amp;static_g_define_type_id<br>)); }))) { GType g_define_type_id = terminal_window_get_type_once<br> (); (__extension__ ({ _Static_assert (sizeof *(&amp;static_g_define_type_id<br>) == sizeof (gpointer), "Expression evaluates to false"); 0 ?<br> (void) (*(&amp;static_g_define_type_id) = (g_define_type_id)<br>) : (void) 0; g_once_init_leave ((&amp;static_g_define_type_id<br>), (gsize) (g_define_type_id)); })); } return static_g_define_type_id<br>; } __attribute__ ((__noinline__)) static GType terminal_window_get_type_once<br> (void) { GType g_define_type_id = g_type_register_static_simple<br> ((gtk_window_get_type ()), g_intern_static_string ("TerminalWindow"<br>), sizeof (TerminalWindowClass), (GClassInitFunc)(void (*)(void<br>)) terminal_window_class_intern_init, sizeof (TerminalWindow)<br>, (GInstanceInitFunc)(void (*)(void)) terminal_window_init, (<br>GTypeFlags) 0); { {{ TerminalWindow_private_offset = g_type_add_instance_private<br> (g_define_type_id, sizeof (TerminalWindowPrivate)); };} } return<br> g_define_type_id; }</span></span></td></tr>
+<tr class="codeline" data-linenumber="271"><td class="num" id="LN271">271</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="272"><td class="num" id="LN272">272</td><td class="line"><span class='comment'>/* Menubar mnemonics &amp; accel settings handling */</span></td></tr>
+<tr class="codeline" data-linenumber="273"><td class="num" id="LN273">273</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="274"><td class="num" id="LN274">274</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="275"><td class="num" id="LN275">275</td><td class="line">app_setting_notify_cb (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="276"><td class="num" id="LN276">276</td><td class="line"> GParamSpec *pspec,</td></tr>
+<tr class="codeline" data-linenumber="277"><td class="num" id="LN277">277</td><td class="line"> GdkScreen *screen)</td></tr>
+<tr class="codeline" data-linenumber="278"><td class="num" id="LN278">278</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="279"><td class="num" id="LN279">279</td><td class="line"> GtkSettings *settings;</td></tr>
+<tr class="codeline" data-linenumber="280"><td class="num" id="LN280">280</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *prop_name;</td></tr>
+<tr class="codeline" data-linenumber="281"><td class="num" id="LN281">281</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="282"><td class="num" id="LN282">282</td><td class="line"> <span class='keyword'>if</span> (pspec)</td></tr>
+<tr class="codeline" data-linenumber="283"><td class="num" id="LN283">283</td><td class="line"> prop_name = pspec-&gt;name;</td></tr>
+<tr class="codeline" data-linenumber="284"><td class="num" id="LN284">284</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="285"><td class="num" id="LN285">285</td><td class="line"> prop_name = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="286"><td class="num" id="LN286">286</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="287"><td class="num" id="LN287">287</td><td class="line"> settings = gtk_settings_get_for_screen (screen);</td></tr>
+<tr class="codeline" data-linenumber="288"><td class="num" id="LN288">288</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="289"><td class="num" id="LN289">289</td><td class="line"> <span class='keyword'>if</span> (!prop_name || prop_name == <span class='macro'>I_(TERMINAL_APP_ENABLE_MNEMONICS)<span class='macro_popup'>g_intern_static_string ("enable-mnemonics")</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="290"><td class="num" id="LN290">290</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="291"><td class="num" id="LN291">291</td><td class="line"> gboolean enable_mnemonics;</td></tr>
+<tr class="codeline" data-linenumber="292"><td class="num" id="LN292">292</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="293"><td class="num" id="LN293">293</td><td class="line"> g_object_get (app, <span class='macro'>TERMINAL_APP_ENABLE_MNEMONICS<span class='macro_popup'>"enable-mnemonics"</span></span>, &amp;enable_mnemonics, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="294"><td class="num" id="LN294">294</td><td class="line"> g_object_set (settings, <span class='string_literal'>"gtk-enable-mnemonics"</span>, enable_mnemonics, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="295"><td class="num" id="LN295">295</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="296"><td class="num" id="LN296">296</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="297"><td class="num" id="LN297">297</td><td class="line"> <span class='keyword'>if</span> (!prop_name || prop_name == <span class='macro'>I_(TERMINAL_APP_ENABLE_MENU_BAR_ACCEL)<span class='macro_popup'>g_intern_static_string ("enable-menu-accels")</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="298"><td class="num" id="LN298">298</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="299"><td class="num" id="LN299">299</td><td class="line"> <span class='comment'>/* const */</span> <span class='keyword'>char</span> *saved_menubar_accel;</td></tr>
+<tr class="codeline" data-linenumber="300"><td class="num" id="LN300">300</td><td class="line"> gboolean enable_menubar_accel;</td></tr>
+<tr class="codeline" data-linenumber="301"><td class="num" id="LN301">301</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="302"><td class="num" id="LN302">302</td><td class="line"> <span class='comment'>/* FIXME: Once gtk+ bug 507398 is fixed, use that to reset the property instead */</span></td></tr>
+<tr class="codeline" data-linenumber="303"><td class="num" id="LN303">303</td><td class="line"> <span class='comment'>/* Now this is a bad hack on so many levels. */</span></td></tr>
+<tr class="codeline" data-linenumber="304"><td class="num" id="LN304">304</td><td class="line"> saved_menubar_accel = g_object_get_data (<span class='macro'>G_OBJECT (settings)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((settings)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, <span class='string_literal'>"GT::gtk-menu-bar-accel"</span>);</td></tr>
+<tr class="codeline" data-linenumber="305"><td class="num" id="LN305">305</td><td class="line"> <span class='keyword'>if</span> (!saved_menubar_accel)</td></tr>
+<tr class="codeline" data-linenumber="306"><td class="num" id="LN306">306</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="307"><td class="num" id="LN307">307</td><td class="line"> g_object_get (settings, <span class='string_literal'>"gtk-menu-bar-accel"</span>, &amp;saved_menubar_accel, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="308"><td class="num" id="LN308">308</td><td class="line"> g_object_set_data_full (<span class='macro'>G_OBJECT (settings)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((settings)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, <span class='string_literal'>"GT::gtk-menu-bar-accel"</span>,</td></tr>
+<tr class="codeline" data-linenumber="309"><td class="num" id="LN309">309</td><td class="line"> saved_menubar_accel, (GDestroyNotify) g_free);</td></tr>
+<tr class="codeline" data-linenumber="310"><td class="num" id="LN310">310</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="311"><td class="num" id="LN311">311</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="312"><td class="num" id="LN312">312</td><td class="line"> g_object_get (app, <span class='macro'>TERMINAL_APP_ENABLE_MENU_BAR_ACCEL<span class='macro_popup'>"enable-menu-accels"</span></span>, &amp;enable_menubar_accel, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="313"><td class="num" id="LN313">313</td><td class="line"> <span class='keyword'>if</span> (enable_menubar_accel)</td></tr>
+<tr class="codeline" data-linenumber="314"><td class="num" id="LN314">314</td><td class="line"> g_object_set (settings, <span class='string_literal'>"gtk-menu-bar-accel"</span>, saved_menubar_accel, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="315"><td class="num" id="LN315">315</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="316"><td class="num" id="LN316">316</td><td class="line"> g_object_set (settings, <span class='string_literal'>"gtk-menu-bar-accel"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="317"><td class="num" id="LN317">317</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="318"><td class="num" id="LN318">318</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="319"><td class="num" id="LN319">319</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="320"><td class="num" id="LN320">320</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="321"><td class="num" id="LN321">321</td><td class="line">app_setting_notify_destroy_cb (GdkScreen *screen)</td></tr>
+<tr class="codeline" data-linenumber="322"><td class="num" id="LN322">322</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="323"><td class="num" id="LN323">323</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (terminal_app_get (),<span class='macro_popup'>g_signal_handlers_disconnect_matched ((terminal_app_get ()), (<br>GSignalMatchType) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA)<br>, 0, 0, ((void*)0), (((GCallback) (app_setting_notify_cb))), (<br>screen))</span></span></td></tr>
+<tr class="codeline" data-linenumber="324"><td class="num" id="LN324">324</td><td class="line"> <span class='macro'>G_CALLBACK (app_setting_notify_cb),<span class='macro_popup'>g_signal_handlers_disconnect_matched ((terminal_app_get ()), (<br>GSignalMatchType) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA)<br>, 0, 0, ((void*)0), (((GCallback) (app_setting_notify_cb))), (<br>screen))</span></span></td></tr>
+<tr class="codeline" data-linenumber="325"><td class="num" id="LN325">325</td><td class="line"> <span class='macro'>screen)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((terminal_app_get ()), (<br>GSignalMatchType) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA)<br>, 0, 0, ((void*)0), (((GCallback) (app_setting_notify_cb))), (<br>screen))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="326"><td class="num" id="LN326">326</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="327"><td class="num" id="LN327">327</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="328"><td class="num" id="LN328">328</td><td class="line"><span class='comment'>/* utility functions */</span></td></tr>
+<tr class="codeline" data-linenumber="329"><td class="num" id="LN329">329</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="330"><td class="num" id="LN330">330</td><td class="line"><span class='comment'>/*</span></td></tr>
+<tr class="codeline" data-linenumber="331"><td class="num" id="LN331">331</td><td class="line"> <span class='comment'>Derived from XParseGeometry() in X.org</span></td></tr>
+<tr class="codeline" data-linenumber="332"><td class="num" id="LN332">332</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="333"><td class="num" id="LN333">333</td><td class="line"> <span class='comment'>Copyright 1985, 1986, 1987, 1998 The Open Group</span></td></tr>
+<tr class="codeline" data-linenumber="334"><td class="num" id="LN334">334</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="335"><td class="num" id="LN335">335</td><td class="line"> <span class='comment'>All Rights Reserved.</span></td></tr>
+<tr class="codeline" data-linenumber="336"><td class="num" id="LN336">336</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="337"><td class="num" id="LN337">337</td><td class="line"> <span class='comment'>The above copyright notice and this permission notice shall be included</span></td></tr>
+<tr class="codeline" data-linenumber="338"><td class="num" id="LN338">338</td><td class="line"> <span class='comment'>in all copies or substantial portions of the Software.</span></td></tr>
+<tr class="codeline" data-linenumber="339"><td class="num" id="LN339">339</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="340"><td class="num" id="LN340">340</td><td class="line"> <span class='comment'>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS</span></td></tr>
+<tr class="codeline" data-linenumber="341"><td class="num" id="LN341">341</td><td class="line"> <span class='comment'>OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF</span></td></tr>
+<tr class="codeline" data-linenumber="342"><td class="num" id="LN342">342</td><td class="line"> <span class='comment'>MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.</span></td></tr>
+<tr class="codeline" data-linenumber="343"><td class="num" id="LN343">343</td><td class="line"> <span class='comment'>IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR</span></td></tr>
+<tr class="codeline" data-linenumber="344"><td class="num" id="LN344">344</td><td class="line"> <span class='comment'>OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,</span></td></tr>
+<tr class="codeline" data-linenumber="345"><td class="num" id="LN345">345</td><td class="line"> <span class='comment'>ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR</span></td></tr>
+<tr class="codeline" data-linenumber="346"><td class="num" id="LN346">346</td><td class="line"> <span class='comment'>OTHER DEALINGS IN THE SOFTWARE.</span></td></tr>
+<tr class="codeline" data-linenumber="347"><td class="num" id="LN347">347</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="348"><td class="num" id="LN348">348</td><td class="line"> <span class='comment'>Except as contained in this notice, the name of The Open Group shall</span></td></tr>
+<tr class="codeline" data-linenumber="349"><td class="num" id="LN349">349</td><td class="line"> <span class='comment'>not be used in advertising or otherwise to promote the sale, use or</span></td></tr>
+<tr class="codeline" data-linenumber="350"><td class="num" id="LN350">350</td><td class="line"> <span class='comment'>other dealings in this Software without prior written authorization</span></td></tr>
+<tr class="codeline" data-linenumber="351"><td class="num" id="LN351">351</td><td class="line"> <span class='comment'>from The Open Group.</span></td></tr>
+<tr class="codeline" data-linenumber="352"><td class="num" id="LN352">352</td><td class="line"><span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="353"><td class="num" id="LN353">353</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="354"><td class="num" id="LN354">354</td><td class="line"><span class='comment'>/*</span></td></tr>
+<tr class="codeline" data-linenumber="355"><td class="num" id="LN355">355</td><td class="line"> <span class='comment'>* XParseGeometry parses strings of the form</span></td></tr>
+<tr class="codeline" data-linenumber="356"><td class="num" id="LN356">356</td><td class="line"> <span class='comment'>* "=&lt;width&gt;x&lt;height&gt;{+-}&lt;xoffset&gt;{+-}&lt;yoffset&gt;", where</span></td></tr>
+<tr class="codeline" data-linenumber="357"><td class="num" id="LN357">357</td><td class="line"> <span class='comment'>* width, height, xoffset, and yoffset are unsigned integers.</span></td></tr>
+<tr class="codeline" data-linenumber="358"><td class="num" id="LN358">358</td><td class="line"> <span class='comment'>* Example: "=80x24+300-49"</span></td></tr>
+<tr class="codeline" data-linenumber="359"><td class="num" id="LN359">359</td><td class="line"> <span class='comment'>* The equal sign is optional.</span></td></tr>
+<tr class="codeline" data-linenumber="360"><td class="num" id="LN360">360</td><td class="line"> <span class='comment'>* It returns a bitmask that indicates which of the four values</span></td></tr>
+<tr class="codeline" data-linenumber="361"><td class="num" id="LN361">361</td><td class="line"> <span class='comment'>* were actually found in the string. For each value found,</span></td></tr>
+<tr class="codeline" data-linenumber="362"><td class="num" id="LN362">362</td><td class="line"> <span class='comment'>* the corresponding argument is updated; for each value</span></td></tr>
+<tr class="codeline" data-linenumber="363"><td class="num" id="LN363">363</td><td class="line"> <span class='comment'>* not found, the corresponding argument is left unchanged.</span></td></tr>
+<tr class="codeline" data-linenumber="364"><td class="num" id="LN364">364</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="365"><td class="num" id="LN365">365</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="366"><td class="num" id="LN366">366</td><td class="line"><span class='comment'>/* The following code is from Xlib, and is minimally modified, so we</span></td></tr>
+<tr class="codeline" data-linenumber="367"><td class="num" id="LN367">367</td><td class="line"> <span class='comment'>* can track any upstream changes if required. Don’t change this</span></td></tr>
+<tr class="codeline" data-linenumber="368"><td class="num" id="LN368">368</td><td class="line"> <span class='comment'>* code. Or if you do, put in a huge comment marking which thing</span></td></tr>
+<tr class="codeline" data-linenumber="369"><td class="num" id="LN369">369</td><td class="line"> <span class='comment'>* changed.</span></td></tr>
+<tr class="codeline" data-linenumber="370"><td class="num" id="LN370">370</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="371"><td class="num" id="LN371">371</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="372"><td class="num" id="LN372">372</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>int</span></td></tr>
+<tr class="codeline" data-linenumber="373"><td class="num" id="LN373">373</td><td class="line">terminal_window_ReadInteger (<span class='keyword'>char</span> *string,</td></tr>
+<tr class="codeline" data-linenumber="374"><td class="num" id="LN374">374</td><td class="line"> <span class='keyword'>char</span> **NextString)</td></tr>
+<tr class="codeline" data-linenumber="375"><td class="num" id="LN375">375</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="376"><td class="num" id="LN376">376</td><td class="line"> <span class='keyword'>register</span> <span class='keyword'>int</span> Result = 0;</td></tr>
+<tr class="codeline" data-linenumber="377"><td class="num" id="LN377">377</td><td class="line"> <span class='keyword'>int</span> Sign = 1;</td></tr>
+<tr class="codeline" data-linenumber="378"><td class="num" id="LN378">378</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="379"><td class="num" id="LN379">379</td><td class="line"> <span class='keyword'>if</span> (*string == '+')</td></tr>
+<tr class="codeline" data-linenumber="380"><td class="num" id="LN380">380</td><td class="line"> string++;</td></tr>
+<tr class="codeline" data-linenumber="381"><td class="num" id="LN381">381</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (*string == '-')</td></tr>
+<tr class="codeline" data-linenumber="382"><td class="num" id="LN382">382</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="383"><td class="num" id="LN383">383</td><td class="line"> string++;</td></tr>
+<tr class="codeline" data-linenumber="384"><td class="num" id="LN384">384</td><td class="line"> Sign = -1;</td></tr>
+<tr class="codeline" data-linenumber="385"><td class="num" id="LN385">385</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="386"><td class="num" id="LN386">386</td><td class="line"> <span class='keyword'>for</span> (; (*string &gt;= '0') &amp;&amp; (*string &lt;= '9'); string++)</td></tr>
+<tr class="codeline" data-linenumber="387"><td class="num" id="LN387">387</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="388"><td class="num" id="LN388">388</td><td class="line"> Result = (Result * 10) + (*string - '0');</td></tr>
+<tr class="codeline" data-linenumber="389"><td class="num" id="LN389">389</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="390"><td class="num" id="LN390">390</td><td class="line"> *NextString = string;</td></tr>
+<tr class="codeline" data-linenumber="391"><td class="num" id="LN391">391</td><td class="line"> <span class='keyword'>if</span> (Sign &gt;= 0)</td></tr>
+<tr class="codeline" data-linenumber="392"><td class="num" id="LN392">392</td><td class="line"> <span class='keyword'>return</span> (Result);</td></tr>
+<tr class="codeline" data-linenumber="393"><td class="num" id="LN393">393</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="394"><td class="num" id="LN394">394</td><td class="line"> <span class='keyword'>return</span> (-Result);</td></tr>
+<tr class="codeline" data-linenumber="395"><td class="num" id="LN395">395</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="396"><td class="num" id="LN396">396</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="397"><td class="num" id="LN397">397</td><td class="line"><span class='comment'>/*</span></td></tr>
+<tr class="codeline" data-linenumber="398"><td class="num" id="LN398">398</td><td class="line"> <span class='comment'>* Bitmask returned by XParseGeometry(). Each bit tells if the corresponding</span></td></tr>
+<tr class="codeline" data-linenumber="399"><td class="num" id="LN399">399</td><td class="line"> <span class='comment'>* value (x, y, width, height) was found in the parsed string.</span></td></tr>
+<tr class="codeline" data-linenumber="400"><td class="num" id="LN400">400</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="401"><td class="num" id="LN401">401</td><td class="line"><span class='directive'>#define <span class='macro'>NoValue<span class='macro_popup'>0x0000</span></span> 0x0000</span></td></tr>
+<tr class="codeline" data-linenumber="402"><td class="num" id="LN402">402</td><td class="line"><span class='directive'>#define <span class='macro'>XValue<span class='macro_popup'>0x0001</span></span> 0x0001</span></td></tr>
+<tr class="codeline" data-linenumber="403"><td class="num" id="LN403">403</td><td class="line"><span class='directive'>#define <span class='macro'>YValue<span class='macro_popup'>0x0002</span></span> 0x0002</span></td></tr>
+<tr class="codeline" data-linenumber="404"><td class="num" id="LN404">404</td><td class="line"><span class='directive'>#define <span class='macro'>WidthValue<span class='macro_popup'>0x0004</span></span> 0x0004</span></td></tr>
+<tr class="codeline" data-linenumber="405"><td class="num" id="LN405">405</td><td class="line"><span class='directive'>#define <span class='macro'>HeightValue<span class='macro_popup'>0x0008</span></span> 0x0008</span></td></tr>
+<tr class="codeline" data-linenumber="406"><td class="num" id="LN406">406</td><td class="line"><span class='directive'>#define <span class='macro'>XNegative<span class='macro_popup'>0x0010</span></span> 0x0010</span></td></tr>
+<tr class="codeline" data-linenumber="407"><td class="num" id="LN407">407</td><td class="line"><span class='directive'>#define <span class='macro'>YNegative<span class='macro_popup'>0x0020</span></span> 0x0020</span></td></tr>
+<tr class="codeline" data-linenumber="408"><td class="num" id="LN408">408</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="409"><td class="num" id="LN409">409</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>int</span></td></tr>
+<tr class="codeline" data-linenumber="410"><td class="num" id="LN410">410</td><td class="line">terminal_window_XParseGeometry (<span class='keyword'>const</span> <span class='keyword'>char</span> *string,</td></tr>
+<tr class="codeline" data-linenumber="411"><td class="num" id="LN411">411</td><td class="line"> <span class='keyword'>int</span> *x, <span class='keyword'>int</span> *y,</td></tr>
+<tr class="codeline" data-linenumber="412"><td class="num" id="LN412">412</td><td class="line"> <span class='keyword'>unsigned</span> <span class='keyword'>int</span> *width,</td></tr>
+<tr class="codeline" data-linenumber="413"><td class="num" id="LN413">413</td><td class="line"> <span class='keyword'>unsigned</span> <span class='keyword'>int</span> *height)</td></tr>
+<tr class="codeline" data-linenumber="414"><td class="num" id="LN414">414</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="415"><td class="num" id="LN415">415</td><td class="line"> <span class='keyword'>int</span> mask = <span class='macro'>NoValue<span class='macro_popup'>0x0000</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="416"><td class="num" id="LN416">416</td><td class="line"> <span class='keyword'>register</span> <span class='keyword'>char</span> *strind;</td></tr>
+<tr class="codeline" data-linenumber="417"><td class="num" id="LN417">417</td><td class="line"> <span class='keyword'>unsigned</span> <span class='keyword'>int</span> tempWidth = 0, tempHeight = 0;</td></tr>
+<tr class="codeline" data-linenumber="418"><td class="num" id="LN418">418</td><td class="line"> <span class='keyword'>int</span> tempX = 0, tempY = 0;</td></tr>
+<tr class="codeline" data-linenumber="419"><td class="num" id="LN419">419</td><td class="line"> <span class='keyword'>char</span> *nextCharacter;</td></tr>
+<tr class="codeline" data-linenumber="420"><td class="num" id="LN420">420</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="421"><td class="num" id="LN421">421</td><td class="line"> <span class='keyword'>if</span> ( (string == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>) || (*string == '\0')) <span class='keyword'>return</span>(mask);</td></tr>
+<tr class="codeline" data-linenumber="422"><td class="num" id="LN422">422</td><td class="line"> <span class='keyword'>if</span> (*string == '=')</td></tr>
+<tr class="codeline" data-linenumber="423"><td class="num" id="LN423">423</td><td class="line"> string++; <span class='comment'>/* ignore possible '=' at beg of geometry spec */</span></td></tr>
+<tr class="codeline" data-linenumber="424"><td class="num" id="LN424">424</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="425"><td class="num" id="LN425">425</td><td class="line"> strind = (<span class='keyword'>char</span> *)string;</td></tr>
+<tr class="codeline" data-linenumber="426"><td class="num" id="LN426">426</td><td class="line"> <span class='keyword'>if</span> (*strind != '+' &amp;&amp; *strind != '-' &amp;&amp; *strind != 'x') {</td></tr>
+<tr class="codeline" data-linenumber="427"><td class="num" id="LN427">427</td><td class="line"> tempWidth = terminal_window_ReadInteger(strind, &amp;nextCharacter);</td></tr>
+<tr class="codeline" data-linenumber="428"><td class="num" id="LN428">428</td><td class="line"> <span class='keyword'>if</span> (strind == nextCharacter)</td></tr>
+<tr class="codeline" data-linenumber="429"><td class="num" id="LN429">429</td><td class="line"> <span class='keyword'>return</span> (0);</td></tr>
+<tr class="codeline" data-linenumber="430"><td class="num" id="LN430">430</td><td class="line"> strind = nextCharacter;</td></tr>
+<tr class="codeline" data-linenumber="431"><td class="num" id="LN431">431</td><td class="line"> mask |= <span class='macro'>WidthValue<span class='macro_popup'>0x0004</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="432"><td class="num" id="LN432">432</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="433"><td class="num" id="LN433">433</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="434"><td class="num" id="LN434">434</td><td class="line"> <span class='keyword'>if</span> (*strind == 'x' || *strind == 'X') {</td></tr>
+<tr class="codeline" data-linenumber="435"><td class="num" id="LN435">435</td><td class="line"> strind++;</td></tr>
+<tr class="codeline" data-linenumber="436"><td class="num" id="LN436">436</td><td class="line"> tempHeight = terminal_window_ReadInteger(strind, &amp;nextCharacter);</td></tr>
+<tr class="codeline" data-linenumber="437"><td class="num" id="LN437">437</td><td class="line"> <span class='keyword'>if</span> (strind == nextCharacter)</td></tr>
+<tr class="codeline" data-linenumber="438"><td class="num" id="LN438">438</td><td class="line"> <span class='keyword'>return</span> (0);</td></tr>
+<tr class="codeline" data-linenumber="439"><td class="num" id="LN439">439</td><td class="line"> strind = nextCharacter;</td></tr>
+<tr class="codeline" data-linenumber="440"><td class="num" id="LN440">440</td><td class="line"> mask |= <span class='macro'>HeightValue<span class='macro_popup'>0x0008</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="441"><td class="num" id="LN441">441</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="442"><td class="num" id="LN442">442</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="443"><td class="num" id="LN443">443</td><td class="line"> <span class='keyword'>if</span> ((*strind == '+') || (*strind == '-')) {</td></tr>
+<tr class="codeline" data-linenumber="444"><td class="num" id="LN444">444</td><td class="line"> <span class='keyword'>if</span> (*strind == '-') {</td></tr>
+<tr class="codeline" data-linenumber="445"><td class="num" id="LN445">445</td><td class="line"> strind++;</td></tr>
+<tr class="codeline" data-linenumber="446"><td class="num" id="LN446">446</td><td class="line"> tempX = -terminal_window_ReadInteger(strind, &amp;nextCharacter);</td></tr>
+<tr class="codeline" data-linenumber="447"><td class="num" id="LN447">447</td><td class="line"> <span class='keyword'>if</span> (strind == nextCharacter)</td></tr>
+<tr class="codeline" data-linenumber="448"><td class="num" id="LN448">448</td><td class="line"> <span class='keyword'>return</span> (0);</td></tr>
+<tr class="codeline" data-linenumber="449"><td class="num" id="LN449">449</td><td class="line"> strind = nextCharacter;</td></tr>
+<tr class="codeline" data-linenumber="450"><td class="num" id="LN450">450</td><td class="line"> mask |= <span class='macro'>XNegative<span class='macro_popup'>0x0010</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="451"><td class="num" id="LN451">451</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="452"><td class="num" id="LN452">452</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="453"><td class="num" id="LN453">453</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="454"><td class="num" id="LN454">454</td><td class="line"> { strind++;</td></tr>
+<tr class="codeline" data-linenumber="455"><td class="num" id="LN455">455</td><td class="line"> tempX = terminal_window_ReadInteger(strind, &amp;nextCharacter);</td></tr>
+<tr class="codeline" data-linenumber="456"><td class="num" id="LN456">456</td><td class="line"> <span class='keyword'>if</span> (strind == nextCharacter)</td></tr>
+<tr class="codeline" data-linenumber="457"><td class="num" id="LN457">457</td><td class="line"> <span class='keyword'>return</span>(0);</td></tr>
+<tr class="codeline" data-linenumber="458"><td class="num" id="LN458">458</td><td class="line"> strind = nextCharacter;</td></tr>
+<tr class="codeline" data-linenumber="459"><td class="num" id="LN459">459</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="460"><td class="num" id="LN460">460</td><td class="line"> mask |= <span class='macro'>XValue<span class='macro_popup'>0x0001</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="461"><td class="num" id="LN461">461</td><td class="line"> <span class='keyword'>if</span> ((*strind == '+') || (*strind == '-')) {</td></tr>
+<tr class="codeline" data-linenumber="462"><td class="num" id="LN462">462</td><td class="line"> <span class='keyword'>if</span> (*strind == '-') {</td></tr>
+<tr class="codeline" data-linenumber="463"><td class="num" id="LN463">463</td><td class="line"> strind++;</td></tr>
+<tr class="codeline" data-linenumber="464"><td class="num" id="LN464">464</td><td class="line"> tempY = -terminal_window_ReadInteger(strind, &amp;nextCharacter);</td></tr>
+<tr class="codeline" data-linenumber="465"><td class="num" id="LN465">465</td><td class="line"> <span class='keyword'>if</span> (strind == nextCharacter)</td></tr>
+<tr class="codeline" data-linenumber="466"><td class="num" id="LN466">466</td><td class="line"> <span class='keyword'>return</span>(0);</td></tr>
+<tr class="codeline" data-linenumber="467"><td class="num" id="LN467">467</td><td class="line"> strind = nextCharacter;</td></tr>
+<tr class="codeline" data-linenumber="468"><td class="num" id="LN468">468</td><td class="line"> mask |= <span class='macro'>YNegative<span class='macro_popup'>0x0020</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="469"><td class="num" id="LN469">469</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="470"><td class="num" id="LN470">470</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="471"><td class="num" id="LN471">471</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="472"><td class="num" id="LN472">472</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="473"><td class="num" id="LN473">473</td><td class="line"> strind++;</td></tr>
+<tr class="codeline" data-linenumber="474"><td class="num" id="LN474">474</td><td class="line"> tempY = terminal_window_ReadInteger(strind, &amp;nextCharacter);</td></tr>
+<tr class="codeline" data-linenumber="475"><td class="num" id="LN475">475</td><td class="line"> <span class='keyword'>if</span> (strind == nextCharacter)</td></tr>
+<tr class="codeline" data-linenumber="476"><td class="num" id="LN476">476</td><td class="line"> <span class='keyword'>return</span>(0);</td></tr>
+<tr class="codeline" data-linenumber="477"><td class="num" id="LN477">477</td><td class="line"> strind = nextCharacter;</td></tr>
+<tr class="codeline" data-linenumber="478"><td class="num" id="LN478">478</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="479"><td class="num" id="LN479">479</td><td class="line"> mask |= <span class='macro'>YValue<span class='macro_popup'>0x0002</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="480"><td class="num" id="LN480">480</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="481"><td class="num" id="LN481">481</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="482"><td class="num" id="LN482">482</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="483"><td class="num" id="LN483">483</td><td class="line"> <span class='comment'>/* If strind isn't at the end of the string the it's an invalid</span></td></tr>
+<tr class="codeline" data-linenumber="484"><td class="num" id="LN484">484</td><td class="line"> <span class='comment'>geometry specification. */</span></td></tr>
+<tr class="codeline" data-linenumber="485"><td class="num" id="LN485">485</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="486"><td class="num" id="LN486">486</td><td class="line"> <span class='keyword'>if</span> (*strind != '\0') <span class='keyword'>return</span> (0);</td></tr>
+<tr class="codeline" data-linenumber="487"><td class="num" id="LN487">487</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="488"><td class="num" id="LN488">488</td><td class="line"> <span class='keyword'>if</span> (mask &amp; <span class='macro'>XValue<span class='macro_popup'>0x0001</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="489"><td class="num" id="LN489">489</td><td class="line"> *x = tempX;</td></tr>
+<tr class="codeline" data-linenumber="490"><td class="num" id="LN490">490</td><td class="line"> <span class='keyword'>if</span> (mask &amp; <span class='macro'>YValue<span class='macro_popup'>0x0002</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="491"><td class="num" id="LN491">491</td><td class="line"> *y = tempY;</td></tr>
+<tr class="codeline" data-linenumber="492"><td class="num" id="LN492">492</td><td class="line"> <span class='keyword'>if</span> (mask &amp; <span class='macro'>WidthValue<span class='macro_popup'>0x0004</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="493"><td class="num" id="LN493">493</td><td class="line"> *width = tempWidth;</td></tr>
+<tr class="codeline" data-linenumber="494"><td class="num" id="LN494">494</td><td class="line"> <span class='keyword'>if</span> (mask &amp; <span class='macro'>HeightValue<span class='macro_popup'>0x0008</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="495"><td class="num" id="LN495">495</td><td class="line"> *height = tempHeight;</td></tr>
+<tr class="codeline" data-linenumber="496"><td class="num" id="LN496">496</td><td class="line"> <span class='keyword'>return</span> (mask);</td></tr>
+<tr class="codeline" data-linenumber="497"><td class="num" id="LN497">497</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="498"><td class="num" id="LN498">498</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="499"><td class="num" id="LN499">499</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>char</span> *</td></tr>
+<tr class="codeline" data-linenumber="500"><td class="num" id="LN500">500</td><td class="line">escape_underscores (<span class='keyword'>const</span> <span class='keyword'>char</span> *name)</td></tr>
+<tr class="codeline" data-linenumber="501"><td class="num" id="LN501">501</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="502"><td class="num" id="LN502">502</td><td class="line"> GString *escaped_name;</td></tr>
+<tr class="codeline" data-linenumber="503"><td class="num" id="LN503">503</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="504"><td class="num" id="LN504">504</td><td class="line"> <span class='macro'>g_assert (name != NULL)<span class='macro_popup'>do { if (name != ((void*)0)) ; else g_assertion_message_expr (<br>((gchar*) 0), "terminal-window.c", 504, ((const char*) (__func__<br>)), "name != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="505"><td class="num" id="LN505">505</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="506"><td class="num" id="LN506">506</td><td class="line"> <span class='comment'>/* Who'd use more that 4 underscores in a profile name... */</span></td></tr>
+<tr class="codeline" data-linenumber="507"><td class="num" id="LN507">507</td><td class="line"> escaped_name = g_string_sized_new (strlen (name) + 4 + 1);</td></tr>
+<tr class="codeline" data-linenumber="508"><td class="num" id="LN508">508</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="509"><td class="num" id="LN509">509</td><td class="line"> <span class='keyword'>while</span> (*name)</td></tr>
+<tr class="codeline" data-linenumber="510"><td class="num" id="LN510">510</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="511"><td class="num" id="LN511">511</td><td class="line"> <span class='keyword'>if</span> (*name == '_')</td></tr>
+<tr class="codeline" data-linenumber="512"><td class="num" id="LN512">512</td><td class="line"> <span class='macro'>g_string_append (escaped_name, <span class='string_literal'>"__"</span>)<span class='macro_popup'>(__builtin_constant_p ("__") ? __extension__ ({ const char * const<br> __val = ("__"); g_string_append_len_inline (escaped_name, __val<br>, (__val != ((void*)0)) ? (gssize) strlen (((__val) + !(__val<br>))) : (gssize) -1); }) : g_string_append_len_inline (escaped_name<br>, "__", (gssize) -1))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="513"><td class="num" id="LN513">513</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="514"><td class="num" id="LN514">514</td><td class="line"> <span class='macro'>g_string_append_c (escaped_name, *name)<span class='macro_popup'>g_string_append_c_inline (escaped_name, *name)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="515"><td class="num" id="LN515">515</td><td class="line"> name++;</td></tr>
+<tr class="codeline" data-linenumber="516"><td class="num" id="LN516">516</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="517"><td class="num" id="LN517">517</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="518"><td class="num" id="LN518">518</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>g_string_free (escaped_name, FALSE)<span class='macro_popup'>(__builtin_constant_p ((0)) ? (((0)) ? (g_string_free) ((escaped_name<br>), ((0))) : g_string_free_and_steal (escaped_name)) : (g_string_free<br>) ((escaped_name), ((0))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="519"><td class="num" id="LN519">519</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="520"><td class="num" id="LN520">520</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="521"><td class="num" id="LN521">521</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>int</span></td></tr>
+<tr class="codeline" data-linenumber="522"><td class="num" id="LN522">522</td><td class="line">find_tab_num_at_pos (GtkNotebook *nb,</td></tr>
+<tr class="codeline" data-linenumber="523"><td class="num" id="LN523">523</td><td class="line"> <span class='keyword'>int</span> screen_x,</td></tr>
+<tr class="codeline" data-linenumber="524"><td class="num" id="LN524">524</td><td class="line"> <span class='keyword'>int</span> screen_y)</td></tr>
+<tr class="codeline" data-linenumber="525"><td class="num" id="LN525">525</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="526"><td class="num" id="LN526">526</td><td class="line"> <span class='keyword'>int</span> page_num = 0;</td></tr>
+<tr class="codeline" data-linenumber="527"><td class="num" id="LN527">527</td><td class="line"> GtkWidget *page;</td></tr>
+<tr class="codeline" data-linenumber="528"><td class="num" id="LN528">528</td><td class="line"> GtkAllocation tab_allocation;</td></tr>
+<tr class="codeline" data-linenumber="529"><td class="num" id="LN529">529</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="530"><td class="num" id="LN530">530</td><td class="line"> <span class='keyword'>while</span> ((page = gtk_notebook_get_nth_page (nb, page_num)))</td></tr>
+<tr class="codeline" data-linenumber="531"><td class="num" id="LN531">531</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="532"><td class="num" id="LN532">532</td><td class="line"> GtkWidget *tab;</td></tr>
+<tr class="codeline" data-linenumber="533"><td class="num" id="LN533">533</td><td class="line"> <span class='keyword'>int</span> x_root, y_root;</td></tr>
+<tr class="codeline" data-linenumber="534"><td class="num" id="LN534">534</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="535"><td class="num" id="LN535">535</td><td class="line"> tab = gtk_notebook_get_tab_label (nb, page);</td></tr>
+<tr class="codeline" data-linenumber="536"><td class="num" id="LN536">536</td><td class="line"> <span class='macro'>g_return_val_if_fail (tab != NULL, -1)<span class='macro_popup'>do { if ((tab != ((void*)0))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "tab != NULL"); return<br> (-1); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="537"><td class="num" id="LN537">537</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="538"><td class="num" id="LN538">538</td><td class="line"> <span class='keyword'>if</span> (!gtk_widget_get_mapped (tab))</td></tr>
+<tr class="codeline" data-linenumber="539"><td class="num" id="LN539">539</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="540"><td class="num" id="LN540">540</td><td class="line"> page_num++;</td></tr>
+<tr class="codeline" data-linenumber="541"><td class="num" id="LN541">541</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="542"><td class="num" id="LN542">542</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="543"><td class="num" id="LN543">543</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="544"><td class="num" id="LN544">544</td><td class="line"> gdk_window_get_origin (gtk_widget_get_window (tab), &amp;x_root, &amp;y_root);</td></tr>
+<tr class="codeline" data-linenumber="545"><td class="num" id="LN545">545</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="546"><td class="num" id="LN546">546</td><td class="line"> gtk_widget_get_allocation (tab, &amp;tab_allocation);</td></tr>
+<tr class="codeline" data-linenumber="547"><td class="num" id="LN547">547</td><td class="line"> <span class='keyword'>if</span> (screen_x &gt;= x_root + tab_allocation.x &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="548"><td class="num" id="LN548">548</td><td class="line"> screen_x &lt;= x_root + tab_allocation.x + tab_allocation.width &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="549"><td class="num" id="LN549">549</td><td class="line"> screen_y &gt;= y_root + tab_allocation.y &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="550"><td class="num" id="LN550">550</td><td class="line"> screen_y &lt;= y_root + tab_allocation.y + tab_allocation.height)</td></tr>
+<tr class="codeline" data-linenumber="551"><td class="num" id="LN551">551</td><td class="line"> <span class='keyword'>return</span> page_num;</td></tr>
+<tr class="codeline" data-linenumber="552"><td class="num" id="LN552">552</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="553"><td class="num" id="LN553">553</td><td class="line"> page_num++;</td></tr>
+<tr class="codeline" data-linenumber="554"><td class="num" id="LN554">554</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="555"><td class="num" id="LN555">555</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="556"><td class="num" id="LN556">556</td><td class="line"> <span class='keyword'>return</span> -1;</td></tr>
+<tr class="codeline" data-linenumber="557"><td class="num" id="LN557">557</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="558"><td class="num" id="LN558">558</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="559"><td class="num" id="LN559">559</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="560"><td class="num" id="LN560">560</td><td class="line">terminal_set_profile_toggled_callback (GtkToggleAction *action,</td></tr>
+<tr class="codeline" data-linenumber="561"><td class="num" id="LN561">561</td><td class="line"> TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="562"><td class="num" id="LN562">562</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="563"><td class="num" id="LN563">563</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="564"><td class="num" id="LN564">564</td><td class="line"> TerminalProfile *profile;</td></tr>
+<tr class="codeline" data-linenumber="565"><td class="num" id="LN565">565</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="566"><td class="num" id="LN566">566</td><td class="line"> <span class='macro'>G_GNUC_BEGIN_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic push
+ clang diagnostic ignored "-Wdeprecated-declarations"<br>
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="567"><td class="num" id="LN567">567</td><td class="line"> <span class='keyword'>if</span> (!gtk_toggle_action_get_active (action))</td></tr>
+<tr class="codeline" data-linenumber="568"><td class="num" id="LN568">568</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="569"><td class="num" id="LN569">569</td><td class="line"> <span class='macro'>G_GNUC_END_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic pop
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="570"><td class="num" id="LN570">570</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="571"><td class="num" id="LN571">571</td><td class="line"> <span class='keyword'>if</span> (priv-&gt;active_screen == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="572"><td class="num" id="LN572">572</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="573"><td class="num" id="LN573">573</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="574"><td class="num" id="LN574">574</td><td class="line"> profile = g_object_get_data (<span class='macro'>G_OBJECT (action)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((action)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, <span class='macro'>PROFILE_DATA_KEY<span class='macro_popup'>"GT::Profile"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="575"><td class="num" id="LN575">575</td><td class="line"> <span class='macro'>g_assert (profile)<span class='macro_popup'>do { if (profile) ; else g_assertion_message_expr (((gchar*) 0<br>), "terminal-window.c", 575, ((const char*) (__func__)), "profile"<br>); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="576"><td class="num" id="LN576">576</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="577"><td class="num" id="LN577">577</td><td class="line"> <span class='keyword'>if</span> (_terminal_profile_get_forgotten (profile))</td></tr>
+<tr class="codeline" data-linenumber="578"><td class="num" id="LN578">578</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="579"><td class="num" id="LN579">579</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="580"><td class="num" id="LN580">580</td><td class="line"> <span class='macro'>g_signal_handlers_block_by_func (priv-&gt;active_screen, G_CALLBACK (profile_set_callback), window)<span class='macro_popup'>g_signal_handlers_block_matched ((priv-&gt;active_screen), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (profile_set_callback))), (window))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="581"><td class="num" id="LN581">581</td><td class="line"> terminal_screen_set_profile (priv-&gt;active_screen, profile);</td></tr>
+<tr class="codeline" data-linenumber="582"><td class="num" id="LN582">582</td><td class="line"> <span class='macro'>g_signal_handlers_unblock_by_func (priv-&gt;active_screen, G_CALLBACK (profile_set_callback), window)<span class='macro_popup'>g_signal_handlers_unblock_matched ((priv-&gt;active_screen), (<br>GSignalMatchType) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA)<br>, 0, 0, ((void*)0), (((GCallback) (profile_set_callback))), (<br>window))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="583"><td class="num" id="LN583">583</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="584"><td class="num" id="LN584">584</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="585"><td class="num" id="LN585">585</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="586"><td class="num" id="LN586">586</td><td class="line">profile_visible_name_notify_cb (TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="587"><td class="num" id="LN587">587</td><td class="line"> GParamSpec *pspec,</td></tr>
+<tr class="codeline" data-linenumber="588"><td class="num" id="LN588">588</td><td class="line"> GtkAction *action)</td></tr>
+<tr class="codeline" data-linenumber="589"><td class="num" id="LN589">589</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="590"><td class="num" id="LN590">590</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *visible_name;</td></tr>
+<tr class="codeline" data-linenumber="591"><td class="num" id="LN591">591</td><td class="line"> <span class='keyword'>char</span> *dot, *display_name;</td></tr>
+<tr class="codeline" data-linenumber="592"><td class="num" id="LN592">592</td><td class="line"> guint num;</td></tr>
+<tr class="codeline" data-linenumber="593"><td class="num" id="LN593">593</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="594"><td class="num" id="LN594">594</td><td class="line"> visible_name = terminal_profile_get_property_string (profile, <span class='macro'>TERMINAL_PROFILE_VISIBLE_NAME<span class='macro_popup'>"visible-name"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="595"><td class="num" id="LN595">595</td><td class="line"> display_name = escape_underscores (visible_name);</td></tr>
+<tr class="codeline" data-linenumber="596"><td class="num" id="LN596">596</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="597"><td class="num" id="LN597">597</td><td class="line"> <span class='macro'>G_GNUC_BEGIN_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic push
+ clang diagnostic ignored "-Wdeprecated-declarations"<br>
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="598"><td class="num" id="LN598">598</td><td class="line"> dot = strchr (gtk_action_get_name (action), '.');</td></tr>
+<tr class="codeline" data-linenumber="599"><td class="num" id="LN599">599</td><td class="line"> <span class='macro'>G_GNUC_END_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic pop
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="600"><td class="num" id="LN600">600</td><td class="line"> <span class='keyword'>if</span> (dot != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="601"><td class="num" id="LN601">601</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="602"><td class="num" id="LN602">602</td><td class="line"> <span class='keyword'>char</span> *free_me;</td></tr>
+<tr class="codeline" data-linenumber="603"><td class="num" id="LN603">603</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="604"><td class="num" id="LN604">604</td><td class="line"> num = g_ascii_strtoll (dot + 1, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, 10);</td></tr>
+<tr class="codeline" data-linenumber="605"><td class="num" id="LN605">605</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="606"><td class="num" id="LN606">606</td><td class="line"> free_me = display_name;</td></tr>
+<tr class="codeline" data-linenumber="607"><td class="num" id="LN607">607</td><td class="line"> <span class='keyword'>if</span> (num &lt; 10)</td></tr>
+<tr class="codeline" data-linenumber="608"><td class="num" id="LN608">608</td><td class="line"> <span class='comment'>/* Translators: This is the label of a menu item to choose a profile.</span></td></tr>
+<tr class="codeline" data-linenumber="609"><td class="num" id="LN609">609</td><td class="line"> <span class='comment'>* _%d is used as the accelerator (with d between 1 and 9), and</span></td></tr>
+<tr class="codeline" data-linenumber="610"><td class="num" id="LN610">610</td><td class="line"> <span class='comment'>* the %s is the name of the terminal profile.</span></td></tr>
+<tr class="codeline" data-linenumber="611"><td class="num" id="LN611">611</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="612"><td class="num" id="LN612">612</td><td class="line"> display_name = g_strdup_printf (<span class='macro'>_(<span class='string_literal'>"_%d. %s"</span>)<span class='macro_popup'>gettext ("_%d. %s")</span></span>, num, display_name);</td></tr>
+<tr class="codeline" data-linenumber="613"><td class="num" id="LN613">613</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (num &lt; 36)</td></tr>
+<tr class="codeline" data-linenumber="614"><td class="num" id="LN614">614</td><td class="line"> <span class='comment'>/* Translators: This is the label of a menu item to choose a profile.</span></td></tr>
+<tr class="codeline" data-linenumber="615"><td class="num" id="LN615">615</td><td class="line"> <span class='comment'>* _%c is used as the accelerator (it will be a character between A and Z),</span></td></tr>
+<tr class="codeline" data-linenumber="616"><td class="num" id="LN616">616</td><td class="line"> <span class='comment'>* and the %s is the name of the terminal profile.</span></td></tr>
+<tr class="codeline" data-linenumber="617"><td class="num" id="LN617">617</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="618"><td class="num" id="LN618">618</td><td class="line"> display_name = g_strdup_printf (<span class='macro'>_(<span class='string_literal'>"_%c. %s"</span>)<span class='macro_popup'>gettext ("_%c. %s")</span></span>, ('A' + num - 10), display_name);</td></tr>
+<tr class="codeline" data-linenumber="619"><td class="num" id="LN619">619</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="620"><td class="num" id="LN620">620</td><td class="line"> free_me = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="621"><td class="num" id="LN621">621</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="622"><td class="num" id="LN622">622</td><td class="line"> g_free (free_me);</td></tr>
+<tr class="codeline" data-linenumber="623"><td class="num" id="LN623">623</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="624"><td class="num" id="LN624">624</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="625"><td class="num" id="LN625">625</td><td class="line"> g_object_set (action, <span class='string_literal'>"label"</span>, display_name, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="626"><td class="num" id="LN626">626</td><td class="line"> g_free (display_name);</td></tr>
+<tr class="codeline" data-linenumber="627"><td class="num" id="LN627">627</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="628"><td class="num" id="LN628">628</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="629"><td class="num" id="LN629">629</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="630"><td class="num" id="LN630">630</td><td class="line">disconnect_profiles_from_actions_in_group (GtkActionGroup *action_group)</td></tr>
+<tr class="codeline" data-linenumber="631"><td class="num" id="LN631">631</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="632"><td class="num" id="LN632">632</td><td class="line"> GList *actions, *l;</td></tr>
+<tr class="codeline" data-linenumber="633"><td class="num" id="LN633">633</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="634"><td class="num" id="LN634">634</td><td class="line"> <span class='macro'>G_GNUC_BEGIN_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic push
+ clang diagnostic ignored "-Wdeprecated-declarations"<br>
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="635"><td class="num" id="LN635">635</td><td class="line"> actions = gtk_action_group_list_actions (action_group);</td></tr>
+<tr class="codeline" data-linenumber="636"><td class="num" id="LN636">636</td><td class="line"> <span class='macro'>G_GNUC_END_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic pop
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="637"><td class="num" id="LN637">637</td><td class="line"> <span class='keyword'>for</span> (l = actions; l != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; l = l-&gt;next)</td></tr>
+<tr class="codeline" data-linenumber="638"><td class="num" id="LN638">638</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="639"><td class="num" id="LN639">639</td><td class="line"> GObject *action = <span class='macro'>G_OBJECT (l-&gt;data)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((l-&gt;data)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="640"><td class="num" id="LN640">640</td><td class="line"> TerminalProfile *profile;</td></tr>
+<tr class="codeline" data-linenumber="641"><td class="num" id="LN641">641</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="642"><td class="num" id="LN642">642</td><td class="line"> profile = g_object_get_data (action, <span class='macro'>PROFILE_DATA_KEY<span class='macro_popup'>"GT::Profile"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="643"><td class="num" id="LN643">643</td><td class="line"> <span class='keyword'>if</span> (!profile)</td></tr>
+<tr class="codeline" data-linenumber="644"><td class="num" id="LN644">644</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="645"><td class="num" id="LN645">645</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="646"><td class="num" id="LN646">646</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (profile, G_CALLBACK (profile_visible_name_notify_cb), action)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((profile), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (profile_visible_name_notify_cb))), (action<br>))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="647"><td class="num" id="LN647">647</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="648"><td class="num" id="LN648">648</td><td class="line"> g_list_free (actions);</td></tr>
+<tr class="codeline" data-linenumber="649"><td class="num" id="LN649">649</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="650"><td class="num" id="LN650">650</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="651"><td class="num" id="LN651">651</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="652"><td class="num" id="LN652">652</td><td class="line">terminal_window_update_set_profile_menu_active_profile (TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="653"><td class="num" id="LN653">653</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="654"><td class="num" id="LN654">654</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="655"><td class="num" id="LN655">655</td><td class="line"> TerminalProfile *new_active_profile;</td></tr>
+<tr class="codeline" data-linenumber="656"><td class="num" id="LN656">656</td><td class="line"> GList *actions, *l;</td></tr>
+<tr class="codeline" data-linenumber="657"><td class="num" id="LN657">657</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="658"><td class="num" id="LN658">658</td><td class="line"> <span class='keyword'>if</span> (!priv-&gt;profiles_action_group)</td></tr>
+<tr class="codeline" data-linenumber="659"><td class="num" id="LN659">659</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="660"><td class="num" id="LN660">660</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="661"><td class="num" id="LN661">661</td><td class="line"> <span class='keyword'>if</span> (!priv-&gt;active_screen)</td></tr>
+<tr class="codeline" data-linenumber="662"><td class="num" id="LN662">662</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="663"><td class="num" id="LN663">663</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="664"><td class="num" id="LN664">664</td><td class="line"> new_active_profile = terminal_screen_get_profile (priv-&gt;active_screen);</td></tr>
+<tr class="codeline" data-linenumber="665"><td class="num" id="LN665">665</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="666"><td class="num" id="LN666">666</td><td class="line"> <span class='macro'>G_GNUC_BEGIN_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic push
+ clang diagnostic ignored "-Wdeprecated-declarations"<br>
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="667"><td class="num" id="LN667">667</td><td class="line"> actions = gtk_action_group_list_actions (priv-&gt;profiles_action_group);</td></tr>
+<tr class="codeline" data-linenumber="668"><td class="num" id="LN668">668</td><td class="line"> <span class='macro'>G_GNUC_END_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic pop
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="669"><td class="num" id="LN669">669</td><td class="line"> <span class='keyword'>for</span> (l = actions; l != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; l = l-&gt;next)</td></tr>
+<tr class="codeline" data-linenumber="670"><td class="num" id="LN670">670</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="671"><td class="num" id="LN671">671</td><td class="line"> GObject *action = <span class='macro'>G_OBJECT (l-&gt;data)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((l-&gt;data)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="672"><td class="num" id="LN672">672</td><td class="line"> TerminalProfile *profile;</td></tr>
+<tr class="codeline" data-linenumber="673"><td class="num" id="LN673">673</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="674"><td class="num" id="LN674">674</td><td class="line"> profile = g_object_get_data (action, <span class='macro'>PROFILE_DATA_KEY<span class='macro_popup'>"GT::Profile"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="675"><td class="num" id="LN675">675</td><td class="line"> <span class='keyword'>if</span> (profile != new_active_profile)</td></tr>
+<tr class="codeline" data-linenumber="676"><td class="num" id="LN676">676</td><td class="line"> <span class='keyword'>continue</span>;</td></tr>
+<tr class="codeline" data-linenumber="677"><td class="num" id="LN677">677</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="678"><td class="num" id="LN678">678</td><td class="line"> <span class='macro'>g_signal_handlers_block_by_func (action, G_CALLBACK (terminal_set_profile_toggled_callback), window)<span class='macro_popup'>g_signal_handlers_block_matched ((action), (GSignalMatchType)<br> (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)0<br>), (((GCallback) (terminal_set_profile_toggled_callback))), (<br>window))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="679"><td class="num" id="LN679">679</td><td class="line"> <span class='macro'>G_GNUC_BEGIN_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic push
+ clang diagnostic ignored "-Wdeprecated-declarations"<br>
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="680"><td class="num" id="LN680">680</td><td class="line"> gtk_toggle_action_set_active (<span class='macro'>GTK_TOGGLE_ACTION (action)<span class='macro_popup'>((((GtkToggleAction*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((action)), ((gtk_toggle_action_get_type ()))))))</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="681"><td class="num" id="LN681">681</td><td class="line"> <span class='macro'>G_GNUC_END_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic pop
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="682"><td class="num" id="LN682">682</td><td class="line"> <span class='macro'>g_signal_handlers_unblock_by_func (action, G_CALLBACK (terminal_set_profile_toggled_callback), window)<span class='macro_popup'>g_signal_handlers_unblock_matched ((action), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_set_profile_toggled_callback))), (<br>window))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="683"><td class="num" id="LN683">683</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="684"><td class="num" id="LN684">684</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="685"><td class="num" id="LN685">685</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="686"><td class="num" id="LN686">686</td><td class="line"> g_list_free (actions);</td></tr>
+<tr class="codeline" data-linenumber="687"><td class="num" id="LN687">687</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="688"><td class="num" id="LN688">688</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="689"><td class="num" id="LN689">689</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="690"><td class="num" id="LN690">690</td><td class="line">terminal_window_update_set_profile_menu (TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="691"><td class="num" id="LN691">691</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="692"><td class="num" id="LN692">692</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="693"><td class="num" id="LN693">693</td><td class="line"> TerminalProfile *active_profile;</td></tr>
+<tr class="codeline" data-linenumber="694"><td class="num" id="LN694">694</td><td class="line"> GtkActionGroup *action_group;</td></tr>
+<tr class="codeline" data-linenumber="695"><td class="num" id="LN695">695</td><td class="line"> GtkAction *action;</td></tr>
+<tr class="codeline" data-linenumber="696"><td class="num" id="LN696">696</td><td class="line"> GList *profiles, *p;</td></tr>
+<tr class="codeline" data-linenumber="697"><td class="num" id="LN697">697</td><td class="line"> GSList *group;</td></tr>
+<tr class="codeline" data-linenumber="698"><td class="num" id="LN698">698</td><td class="line"> guint n;</td></tr>
+<tr class="codeline" data-linenumber="699"><td class="num" id="LN699">699</td><td class="line"> gboolean single_profile;</td></tr>
+<tr class="codeline" data-linenumber="700"><td class="num" id="LN700">700</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="701"><td class="num" id="LN701">701</td><td class="line"> <span class='comment'>/* Remove the old UI */</span></td></tr>
+<tr class="codeline" data-linenumber="702"><td class="num" id="LN702">702</td><td class="line"> <span class='keyword'>if</span> (priv-&gt;profiles_ui_id != 0)</td></tr>
+<tr class="codeline" data-linenumber="703"><td class="num" id="LN703">703</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="704"><td class="num" id="LN704">704</td><td class="line"> gtk_ui_manager_remove_ui (priv-&gt;ui_manager, priv-&gt;profiles_ui_id);</td></tr>
+<tr class="codeline" data-linenumber="705"><td class="num" id="LN705">705</td><td class="line"> priv-&gt;profiles_ui_id = 0;</td></tr>
+<tr class="codeline" data-linenumber="706"><td class="num" id="LN706">706</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="707"><td class="num" id="LN707">707</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="708"><td class="num" id="LN708">708</td><td class="line"> <span class='keyword'>if</span> (priv-&gt;profiles_action_group != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="709"><td class="num" id="LN709">709</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="710"><td class="num" id="LN710">710</td><td class="line"> disconnect_profiles_from_actions_in_group (priv-&gt;profiles_action_group);</td></tr>
+<tr class="codeline" data-linenumber="711"><td class="num" id="LN711">711</td><td class="line"> gtk_ui_manager_remove_action_group (priv-&gt;ui_manager,</td></tr>
+<tr class="codeline" data-linenumber="712"><td class="num" id="LN712">712</td><td class="line"> priv-&gt;profiles_action_group);</td></tr>
+<tr class="codeline" data-linenumber="713"><td class="num" id="LN713">713</td><td class="line"> priv-&gt;profiles_action_group = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="714"><td class="num" id="LN714">714</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="715"><td class="num" id="LN715">715</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="716"><td class="num" id="LN716">716</td><td class="line"> profiles = terminal_app_get_profile_list (terminal_app_get ());</td></tr>
+<tr class="codeline" data-linenumber="717"><td class="num" id="LN717">717</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="718"><td class="num" id="LN718">718</td><td class="line"> <span class='macro'>G_GNUC_BEGIN_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic push
+ clang diagnostic ignored "-Wdeprecated-declarations"<br>
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="719"><td class="num" id="LN719">719</td><td class="line"> action = gtk_action_group_get_action (priv-&gt;action_group, <span class='string_literal'>"TerminalProfiles"</span>);</td></tr>
+<tr class="codeline" data-linenumber="720"><td class="num" id="LN720">720</td><td class="line"> single_profile = !profiles || profiles-&gt;next == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; <span class='comment'>/* list length &lt;= 1 */</span></td></tr>
+<tr class="codeline" data-linenumber="721"><td class="num" id="LN721">721</td><td class="line"> gtk_action_set_sensitive (action, !single_profile);</td></tr>
+<tr class="codeline" data-linenumber="722"><td class="num" id="LN722">722</td><td class="line"> <span class='macro'>G_GNUC_END_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic pop
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="723"><td class="num" id="LN723">723</td><td class="line"> <span class='keyword'>if</span> (profiles == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="724"><td class="num" id="LN724">724</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="725"><td class="num" id="LN725">725</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="726"><td class="num" id="LN726">726</td><td class="line"> <span class='keyword'>if</span> (priv-&gt;active_screen)</td></tr>
+<tr class="codeline" data-linenumber="727"><td class="num" id="LN727">727</td><td class="line"> active_profile = terminal_screen_get_profile (priv-&gt;active_screen);</td></tr>
+<tr class="codeline" data-linenumber="728"><td class="num" id="LN728">728</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="729"><td class="num" id="LN729">729</td><td class="line"> active_profile = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="730"><td class="num" id="LN730">730</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="731"><td class="num" id="LN731">731</td><td class="line"> <span class='macro'>G_GNUC_BEGIN_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic push
+ clang diagnostic ignored "-Wdeprecated-declarations"<br>
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="732"><td class="num" id="LN732">732</td><td class="line"> action_group = priv-&gt;profiles_action_group = gtk_action_group_new (<span class='string_literal'>"Profiles"</span>);</td></tr>
+<tr class="codeline" data-linenumber="733"><td class="num" id="LN733">733</td><td class="line"> <span class='macro'>G_GNUC_END_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic pop
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="734"><td class="num" id="LN734">734</td><td class="line"> gtk_ui_manager_insert_action_group (priv-&gt;ui_manager, action_group, -1);</td></tr>
+<tr class="codeline" data-linenumber="735"><td class="num" id="LN735">735</td><td class="line"> g_object_unref (action_group);</td></tr>
+<tr class="codeline" data-linenumber="736"><td class="num" id="LN736">736</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="737"><td class="num" id="LN737">737</td><td class="line"> priv-&gt;profiles_ui_id = gtk_ui_manager_new_merge_id (priv-&gt;ui_manager);</td></tr>
+<tr class="codeline" data-linenumber="738"><td class="num" id="LN738">738</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="739"><td class="num" id="LN739">739</td><td class="line"> group = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="740"><td class="num" id="LN740">740</td><td class="line"> n = 0;</td></tr>
+<tr class="codeline" data-linenumber="741"><td class="num" id="LN741">741</td><td class="line"> <span class='keyword'>for</span> (p = profiles; p != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; p = p-&gt;next)</td></tr>
+<tr class="codeline" data-linenumber="742"><td class="num" id="LN742">742</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="743"><td class="num" id="LN743">743</td><td class="line"> TerminalProfile *profile = (TerminalProfile *) p-&gt;data;</td></tr>
+<tr class="codeline" data-linenumber="744"><td class="num" id="LN744">744</td><td class="line"> GtkRadioAction *profile_action;</td></tr>
+<tr class="codeline" data-linenumber="745"><td class="num" id="LN745">745</td><td class="line"> <span class='keyword'>char</span> name[32];</td></tr>
+<tr class="codeline" data-linenumber="746"><td class="num" id="LN746">746</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="747"><td class="num" id="LN747">747</td><td class="line"> g_snprintf (name, <span class='keyword'>sizeof</span> (name), <span class='string_literal'>"TerminalSetProfile%u"</span>, n++);</td></tr>
+<tr class="codeline" data-linenumber="748"><td class="num" id="LN748">748</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="749"><td class="num" id="LN749">749</td><td class="line"> <span class='macro'>G_GNUC_BEGIN_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic push
+ clang diagnostic ignored "-Wdeprecated-declarations"<br>
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="750"><td class="num" id="LN750">750</td><td class="line"> profile_action = gtk_radio_action_new (name,</td></tr>
+<tr class="codeline" data-linenumber="751"><td class="num" id="LN751">751</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="752"><td class="num" id="LN752">752</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="753"><td class="num" id="LN753">753</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="754"><td class="num" id="LN754">754</td><td class="line"> n);</td></tr>
+<tr class="codeline" data-linenumber="755"><td class="num" id="LN755">755</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="756"><td class="num" id="LN756">756</td><td class="line"> gtk_radio_action_set_group (profile_action, group);</td></tr>
+<tr class="codeline" data-linenumber="757"><td class="num" id="LN757">757</td><td class="line"> group = gtk_radio_action_get_group (profile_action);</td></tr>
+<tr class="codeline" data-linenumber="758"><td class="num" id="LN758">758</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="759"><td class="num" id="LN759">759</td><td class="line"> <span class='keyword'>if</span> (profile == active_profile)</td></tr>
+<tr class="codeline" data-linenumber="760"><td class="num" id="LN760">760</td><td class="line"> gtk_toggle_action_set_active (<span class='macro'>GTK_TOGGLE_ACTION (profile_action)<span class='macro_popup'>((((GtkToggleAction*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((profile_action)), ((gtk_toggle_action_get_type ()))))))</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="761"><td class="num" id="LN761">761</td><td class="line"> <span class='macro'>G_GNUC_END_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic pop
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="762"><td class="num" id="LN762">762</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="763"><td class="num" id="LN763">763</td><td class="line"> g_object_set_data_full (<span class='macro'>G_OBJECT (profile_action)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((profile_action)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="764"><td class="num" id="LN764">764</td><td class="line"> <span class='macro'>PROFILE_DATA_KEY<span class='macro_popup'>"GT::Profile"</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="765"><td class="num" id="LN765">765</td><td class="line"> <span class='macro'>g_object_ref (profile)<span class='macro_popup'>((__typeof__ (profile)) (g_object_ref) (profile))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="766"><td class="num" id="LN766">766</td><td class="line"> (GDestroyNotify) g_object_unref);</td></tr>
+<tr class="codeline" data-linenumber="767"><td class="num" id="LN767">767</td><td class="line"> profile_visible_name_notify_cb (profile, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>GTK_ACTION (profile_action)<span class='macro_popup'>((((GtkAction*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((profile_action)), ((gtk_action_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="768"><td class="num" id="LN768">768</td><td class="line"> <span class='macro'>g_signal_connect (profile, <span class='string_literal'>"notify::"</span> TERMINAL_PROFILE_VISIBLE_NAME,<span class='macro_popup'>g_signal_connect_data ((profile), ("notify::" "visible-name")<br>, (((GCallback) (profile_visible_name_notify_cb))), (profile_action<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="769"><td class="num" id="LN769">769</td><td class="line"> <span class='macro'>G_CALLBACK (profile_visible_name_notify_cb), profile_action)<span class='macro_popup'>g_signal_connect_data ((profile), ("notify::" "visible-name")<br>, (((GCallback) (profile_visible_name_notify_cb))), (profile_action<br>), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="770"><td class="num" id="LN770">770</td><td class="line"> <span class='macro'>g_signal_connect (profile_action, <span class='string_literal'>"toggled"</span>,<span class='macro_popup'>g_signal_connect_data ((profile_action), ("toggled"), (((GCallback<br>) (terminal_set_profile_toggled_callback))), (window), ((void<br>*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="771"><td class="num" id="LN771">771</td><td class="line"> <span class='macro'>G_CALLBACK (terminal_set_profile_toggled_callback), window)<span class='macro_popup'>g_signal_connect_data ((profile_action), ("toggled"), (((GCallback<br>) (terminal_set_profile_toggled_callback))), (window), ((void<br>*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="772"><td class="num" id="LN772">772</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="773"><td class="num" id="LN773">773</td><td class="line"> <span class='macro'>G_GNUC_BEGIN_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic push
+ clang diagnostic ignored "-Wdeprecated-declarations"<br>
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="774"><td class="num" id="LN774">774</td><td class="line"> gtk_action_group_add_action (action_group, <span class='macro'>GTK_ACTION (profile_action)<span class='macro_popup'>((((GtkAction*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((profile_action)), ((gtk_action_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="775"><td class="num" id="LN775">775</td><td class="line"> <span class='macro'>G_GNUC_END_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic pop
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="776"><td class="num" id="LN776">776</td><td class="line"> g_object_unref (profile_action);</td></tr>
+<tr class="codeline" data-linenumber="777"><td class="num" id="LN777">777</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="778"><td class="num" id="LN778">778</td><td class="line"> gtk_ui_manager_add_ui (priv-&gt;ui_manager, priv-&gt;profiles_ui_id,</td></tr>
+<tr class="codeline" data-linenumber="779"><td class="num" id="LN779">779</td><td class="line"> <span class='macro'>PROFILES_UI_PATH<span class='macro_popup'>"/menubar/Terminal/TerminalProfiles/ProfilesPH"</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="780"><td class="num" id="LN780">780</td><td class="line"> name, name,</td></tr>
+<tr class="codeline" data-linenumber="781"><td class="num" id="LN781">781</td><td class="line"> GTK_UI_MANAGER_MENUITEM, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="782"><td class="num" id="LN782">782</td><td class="line"> gtk_ui_manager_add_ui (priv-&gt;ui_manager, priv-&gt;profiles_ui_id,</td></tr>
+<tr class="codeline" data-linenumber="783"><td class="num" id="LN783">783</td><td class="line"> <span class='macro'>PROFILES_POPUP_UI_PATH<span class='macro_popup'>"/Popup/PopupTerminalProfiles/ProfilesPH"</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="784"><td class="num" id="LN784">784</td><td class="line"> name, name,</td></tr>
+<tr class="codeline" data-linenumber="785"><td class="num" id="LN785">785</td><td class="line"> GTK_UI_MANAGER_MENUITEM, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="786"><td class="num" id="LN786">786</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="787"><td class="num" id="LN787">787</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="788"><td class="num" id="LN788">788</td><td class="line"> g_list_free (profiles);</td></tr>
+<tr class="codeline" data-linenumber="789"><td class="num" id="LN789">789</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="790"><td class="num" id="LN790">790</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="791"><td class="num" id="LN791">791</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="792"><td class="num" id="LN792">792</td><td class="line">terminal_window_create_new_terminal_action (TerminalWindow *window,</td></tr>
+<tr class="codeline" data-linenumber="793"><td class="num" id="LN793">793</td><td class="line"> TerminalProfile *profile,</td></tr>
+<tr class="codeline" data-linenumber="794"><td class="num" id="LN794">794</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *name,</td></tr>
+<tr class="codeline" data-linenumber="795"><td class="num" id="LN795">795</td><td class="line"> guint num,</td></tr>
+<tr class="codeline" data-linenumber="796"><td class="num" id="LN796">796</td><td class="line"> GCallback callback)</td></tr>
+<tr class="codeline" data-linenumber="797"><td class="num" id="LN797">797</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="798"><td class="num" id="LN798">798</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="799"><td class="num" id="LN799">799</td><td class="line"> GtkAction *action;</td></tr>
+<tr class="codeline" data-linenumber="800"><td class="num" id="LN800">800</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="801"><td class="num" id="LN801">801</td><td class="line"> <span class='macro'>G_GNUC_BEGIN_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic push
+ clang diagnostic ignored "-Wdeprecated-declarations"<br>
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="802"><td class="num" id="LN802">802</td><td class="line"> action = gtk_action_new (name, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="803"><td class="num" id="LN803">803</td><td class="line"> <span class='macro'>G_GNUC_END_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic pop
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="804"><td class="num" id="LN804">804</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="805"><td class="num" id="LN805">805</td><td class="line"> g_object_set_data_full (<span class='macro'>G_OBJECT (action)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((action)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="806"><td class="num" id="LN806">806</td><td class="line"> <span class='macro'>PROFILE_DATA_KEY<span class='macro_popup'>"GT::Profile"</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="807"><td class="num" id="LN807">807</td><td class="line"> <span class='macro'>g_object_ref (profile)<span class='macro_popup'>((__typeof__ (profile)) (g_object_ref) (profile))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="808"><td class="num" id="LN808">808</td><td class="line"> (GDestroyNotify) g_object_unref);</td></tr>
+<tr class="codeline" data-linenumber="809"><td class="num" id="LN809">809</td><td class="line"> profile_visible_name_notify_cb (profile, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, action);</td></tr>
+<tr class="codeline" data-linenumber="810"><td class="num" id="LN810">810</td><td class="line"> <span class='macro'>g_signal_connect (profile, <span class='string_literal'>"notify::"</span> TERMINAL_PROFILE_VISIBLE_NAME,<span class='macro_popup'>g_signal_connect_data ((profile), ("notify::" "visible-name")<br>, (((GCallback) (profile_visible_name_notify_cb))), (action),<br> ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="811"><td class="num" id="LN811">811</td><td class="line"> <span class='macro'>G_CALLBACK (profile_visible_name_notify_cb), action)<span class='macro_popup'>g_signal_connect_data ((profile), ("notify::" "visible-name")<br>, (((GCallback) (profile_visible_name_notify_cb))), (action),<br> ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="812"><td class="num" id="LN812">812</td><td class="line"> <span class='macro'>g_signal_connect (action, <span class='string_literal'>"activate"</span>, callback, window)<span class='macro_popup'>g_signal_connect_data ((action), ("activate"), (callback), (window<br>), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="813"><td class="num" id="LN813">813</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="814"><td class="num" id="LN814">814</td><td class="line"> <span class='macro'>G_GNUC_BEGIN_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic push
+ clang diagnostic ignored "-Wdeprecated-declarations"<br>
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="815"><td class="num" id="LN815">815</td><td class="line"> gtk_action_group_add_action (priv-&gt;new_terminal_action_group, action);</td></tr>
+<tr class="codeline" data-linenumber="816"><td class="num" id="LN816">816</td><td class="line"> <span class='macro'>G_GNUC_END_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic pop
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="817"><td class="num" id="LN817">817</td><td class="line"> g_object_unref (action);</td></tr>
+<tr class="codeline" data-linenumber="818"><td class="num" id="LN818">818</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="819"><td class="num" id="LN819">819</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="820"><td class="num" id="LN820">820</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="821"><td class="num" id="LN821">821</td><td class="line">terminal_window_update_new_terminal_menus (TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="822"><td class="num" id="LN822">822</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="823"><td class="num" id="LN823">823</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="824"><td class="num" id="LN824">824</td><td class="line"> GtkActionGroup *action_group;</td></tr>
+<tr class="codeline" data-linenumber="825"><td class="num" id="LN825">825</td><td class="line"> GtkAction *action;</td></tr>
+<tr class="codeline" data-linenumber="826"><td class="num" id="LN826">826</td><td class="line"> GList *profiles, *p;</td></tr>
+<tr class="codeline" data-linenumber="827"><td class="num" id="LN827">827</td><td class="line"> guint n;</td></tr>
+<tr class="codeline" data-linenumber="828"><td class="num" id="LN828">828</td><td class="line"> gboolean have_single_profile;</td></tr>
+<tr class="codeline" data-linenumber="829"><td class="num" id="LN829">829</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="830"><td class="num" id="LN830">830</td><td class="line"> <span class='comment'>/* Remove the old UI */</span></td></tr>
+<tr class="codeline" data-linenumber="831"><td class="num" id="LN831">831</td><td class="line"> <span class='keyword'>if</span> (priv-&gt;new_terminal_ui_id != 0)</td></tr>
+<tr class="codeline" data-linenumber="832"><td class="num" id="LN832">832</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="833"><td class="num" id="LN833">833</td><td class="line"> gtk_ui_manager_remove_ui (priv-&gt;ui_manager, priv-&gt;new_terminal_ui_id);</td></tr>
+<tr class="codeline" data-linenumber="834"><td class="num" id="LN834">834</td><td class="line"> priv-&gt;new_terminal_ui_id = 0;</td></tr>
+<tr class="codeline" data-linenumber="835"><td class="num" id="LN835">835</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="836"><td class="num" id="LN836">836</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="837"><td class="num" id="LN837">837</td><td class="line"> <span class='keyword'>if</span> (priv-&gt;new_terminal_action_group != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="838"><td class="num" id="LN838">838</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="839"><td class="num" id="LN839">839</td><td class="line"> disconnect_profiles_from_actions_in_group (priv-&gt;new_terminal_action_group);</td></tr>
+<tr class="codeline" data-linenumber="840"><td class="num" id="LN840">840</td><td class="line"> gtk_ui_manager_remove_action_group (priv-&gt;ui_manager,</td></tr>
+<tr class="codeline" data-linenumber="841"><td class="num" id="LN841">841</td><td class="line"> priv-&gt;new_terminal_action_group);</td></tr>
+<tr class="codeline" data-linenumber="842"><td class="num" id="LN842">842</td><td class="line"> priv-&gt;new_terminal_action_group = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="843"><td class="num" id="LN843">843</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="844"><td class="num" id="LN844">844</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="845"><td class="num" id="LN845">845</td><td class="line"> profiles = terminal_app_get_profile_list (terminal_app_get ());</td></tr>
+<tr class="codeline" data-linenumber="846"><td class="num" id="LN846">846</td><td class="line"> have_single_profile = !profiles || !profiles-&gt;next;</td></tr>
+<tr class="codeline" data-linenumber="847"><td class="num" id="LN847">847</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="848"><td class="num" id="LN848">848</td><td class="line"> <span class='macro'>G_GNUC_BEGIN_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic push
+ clang diagnostic ignored "-Wdeprecated-declarations"<br>
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="849"><td class="num" id="LN849">849</td><td class="line"> action = gtk_action_group_get_action (priv-&gt;action_group, <span class='string_literal'>"FileNewTab"</span>);</td></tr>
+<tr class="codeline" data-linenumber="850"><td class="num" id="LN850">850</td><td class="line"> gtk_action_set_visible (action, have_single_profile);</td></tr>
+<tr class="codeline" data-linenumber="851"><td class="num" id="LN851">851</td><td class="line"> action = gtk_action_group_get_action (priv-&gt;action_group, <span class='string_literal'>"FileNewWindow"</span>);</td></tr>
+<tr class="codeline" data-linenumber="852"><td class="num" id="LN852">852</td><td class="line"> gtk_action_set_visible (action, have_single_profile);</td></tr>
+<tr class="codeline" data-linenumber="853"><td class="num" id="LN853">853</td><td class="line"> <span class='macro'>G_GNUC_END_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic pop
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="854"><td class="num" id="LN854">854</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="855"><td class="num" id="LN855">855</td><td class="line"> <span class='keyword'>if</span> (have_single_profile)</td></tr>
+<tr class="codeline" data-linenumber="856"><td class="num" id="LN856">856</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="857"><td class="num" id="LN857">857</td><td class="line"> g_list_free (profiles);</td></tr>
+<tr class="codeline" data-linenumber="858"><td class="num" id="LN858">858</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="859"><td class="num" id="LN859">859</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="860"><td class="num" id="LN860">860</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="861"><td class="num" id="LN861">861</td><td class="line"> <span class='comment'>/* Now build the submenus */</span></td></tr>
+<tr class="codeline" data-linenumber="862"><td class="num" id="LN862">862</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="863"><td class="num" id="LN863">863</td><td class="line"> <span class='macro'>G_GNUC_BEGIN_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic push
+ clang diagnostic ignored "-Wdeprecated-declarations"<br>
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="864"><td class="num" id="LN864">864</td><td class="line"> action_group = priv-&gt;new_terminal_action_group = gtk_action_group_new (<span class='string_literal'>"NewTerminal"</span>);</td></tr>
+<tr class="codeline" data-linenumber="865"><td class="num" id="LN865">865</td><td class="line"> <span class='macro'>G_GNUC_END_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic pop
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="866"><td class="num" id="LN866">866</td><td class="line"> gtk_ui_manager_insert_action_group (priv-&gt;ui_manager, action_group, -1);</td></tr>
+<tr class="codeline" data-linenumber="867"><td class="num" id="LN867">867</td><td class="line"> g_object_unref (action_group);</td></tr>
+<tr class="codeline" data-linenumber="868"><td class="num" id="LN868">868</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="869"><td class="num" id="LN869">869</td><td class="line"> priv-&gt;new_terminal_ui_id = gtk_ui_manager_new_merge_id (priv-&gt;ui_manager);</td></tr>
+<tr class="codeline" data-linenumber="870"><td class="num" id="LN870">870</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="871"><td class="num" id="LN871">871</td><td class="line"> n = 0;</td></tr>
+<tr class="codeline" data-linenumber="872"><td class="num" id="LN872">872</td><td class="line"> <span class='keyword'>for</span> (p = profiles; p != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; p = p-&gt;next)</td></tr>
+<tr class="codeline" data-linenumber="873"><td class="num" id="LN873">873</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="874"><td class="num" id="LN874">874</td><td class="line"> TerminalProfile *profile = (TerminalProfile *) p-&gt;data;</td></tr>
+<tr class="codeline" data-linenumber="875"><td class="num" id="LN875">875</td><td class="line"> <span class='keyword'>char</span> name[32];</td></tr>
+<tr class="codeline" data-linenumber="876"><td class="num" id="LN876">876</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="877"><td class="num" id="LN877">877</td><td class="line"> g_snprintf (name, <span class='keyword'>sizeof</span> (name), <span class='string_literal'>"FileNewTab.%u"</span>, n);</td></tr>
+<tr class="codeline" data-linenumber="878"><td class="num" id="LN878">878</td><td class="line"> terminal_window_create_new_terminal_action (window,</td></tr>
+<tr class="codeline" data-linenumber="879"><td class="num" id="LN879">879</td><td class="line"> profile,</td></tr>
+<tr class="codeline" data-linenumber="880"><td class="num" id="LN880">880</td><td class="line"> name,</td></tr>
+<tr class="codeline" data-linenumber="881"><td class="num" id="LN881">881</td><td class="line"> n,</td></tr>
+<tr class="codeline" data-linenumber="882"><td class="num" id="LN882">882</td><td class="line"> <span class='macro'>G_CALLBACK (file_new_tab_callback)<span class='macro_popup'>((GCallback) (file_new_tab_callback))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="883"><td class="num" id="LN883">883</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="884"><td class="num" id="LN884">884</td><td class="line"> gtk_ui_manager_add_ui (priv-&gt;ui_manager, priv-&gt;new_terminal_ui_id,</td></tr>
+<tr class="codeline" data-linenumber="885"><td class="num" id="LN885">885</td><td class="line"> <span class='macro'>FILE_NEW_TERMINAL_TAB_UI_PATH<span class='macro_popup'>"/menubar/File/FileNewTabProfiles"</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="886"><td class="num" id="LN886">886</td><td class="line"> name, name,</td></tr>
+<tr class="codeline" data-linenumber="887"><td class="num" id="LN887">887</td><td class="line"> GTK_UI_MANAGER_MENUITEM, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="888"><td class="num" id="LN888">888</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="889"><td class="num" id="LN889">889</td><td class="line"> g_snprintf (name, <span class='keyword'>sizeof</span> (name), <span class='string_literal'>"FileNewWindow.%u"</span>, n);</td></tr>
+<tr class="codeline" data-linenumber="890"><td class="num" id="LN890">890</td><td class="line"> terminal_window_create_new_terminal_action (window,</td></tr>
+<tr class="codeline" data-linenumber="891"><td class="num" id="LN891">891</td><td class="line"> profile,</td></tr>
+<tr class="codeline" data-linenumber="892"><td class="num" id="LN892">892</td><td class="line"> name,</td></tr>
+<tr class="codeline" data-linenumber="893"><td class="num" id="LN893">893</td><td class="line"> n,</td></tr>
+<tr class="codeline" data-linenumber="894"><td class="num" id="LN894">894</td><td class="line"> <span class='macro'>G_CALLBACK (file_new_window_callback)<span class='macro_popup'>((GCallback) (file_new_window_callback))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="895"><td class="num" id="LN895">895</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="896"><td class="num" id="LN896">896</td><td class="line"> gtk_ui_manager_add_ui (priv-&gt;ui_manager, priv-&gt;new_terminal_ui_id,</td></tr>
+<tr class="codeline" data-linenumber="897"><td class="num" id="LN897">897</td><td class="line"> <span class='macro'>FILE_NEW_TERMINAL_WINDOW_UI_PATH<span class='macro_popup'>"/menubar/File/FileNewWindowProfiles"</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="898"><td class="num" id="LN898">898</td><td class="line"> name, name,</td></tr>
+<tr class="codeline" data-linenumber="899"><td class="num" id="LN899">899</td><td class="line"> GTK_UI_MANAGER_MENUITEM, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="900"><td class="num" id="LN900">900</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="901"><td class="num" id="LN901">901</td><td class="line"> ++n;</td></tr>
+<tr class="codeline" data-linenumber="902"><td class="num" id="LN902">902</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="903"><td class="num" id="LN903">903</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="904"><td class="num" id="LN904">904</td><td class="line"> g_list_free (profiles);</td></tr>
+<tr class="codeline" data-linenumber="905"><td class="num" id="LN905">905</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="906"><td class="num" id="LN906">906</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="907"><td class="num" id="LN907">907</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="908"><td class="num" id="LN908">908</td><td class="line">terminal_set_encoding_callback (GtkToggleAction *action,</td></tr>
+<tr class="codeline" data-linenumber="909"><td class="num" id="LN909">909</td><td class="line"> TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="910"><td class="num" id="LN910">910</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="911"><td class="num" id="LN911">911</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="912"><td class="num" id="LN912">912</td><td class="line"> TerminalEncoding *encoding;</td></tr>
+<tr class="codeline" data-linenumber="913"><td class="num" id="LN913">913</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="914"><td class="num" id="LN914">914</td><td class="line"> <span class='macro'>G_GNUC_BEGIN_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic push
+ clang diagnostic ignored "-Wdeprecated-declarations"<br>
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="915"><td class="num" id="LN915">915</td><td class="line"> <span class='keyword'>if</span> (!gtk_toggle_action_get_active (action))</td></tr>
+<tr class="codeline" data-linenumber="916"><td class="num" id="LN916">916</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="917"><td class="num" id="LN917">917</td><td class="line"> <span class='macro'>G_GNUC_END_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic pop
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="918"><td class="num" id="LN918">918</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="919"><td class="num" id="LN919">919</td><td class="line"> <span class='keyword'>if</span> (priv-&gt;active_screen == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="920"><td class="num" id="LN920">920</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="921"><td class="num" id="LN921">921</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="922"><td class="num" id="LN922">922</td><td class="line"> encoding = g_object_get_data (<span class='macro'>G_OBJECT (action)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((action)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, <span class='macro'>ENCODING_DATA_KEY<span class='macro_popup'>"encoding"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="923"><td class="num" id="LN923">923</td><td class="line"> <span class='macro'>g_assert (encoding)<span class='macro_popup'>do { if (encoding) ; else g_assertion_message_expr (((gchar*)<br> 0), "terminal-window.c", 923, ((const char*) (__func__)), "encoding"<br>); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="924"><td class="num" id="LN924">924</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="925"><td class="num" id="LN925">925</td><td class="line"> vte_terminal_set_encoding (<span class='macro'>VTE_TERMINAL (priv-&gt;active_screen)<span class='macro_popup'>((((VteTerminal*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((priv-&gt;active_screen)), ((vte_terminal_get_type())))))<br>)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="926"><td class="num" id="LN926">926</td><td class="line"> terminal_encoding_get_charset (encoding), <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="927"><td class="num" id="LN927">927</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="928"><td class="num" id="LN928">928</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="929"><td class="num" id="LN929">929</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="930"><td class="num" id="LN930">930</td><td class="line">terminal_window_update_encoding_menu (TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="931"><td class="num" id="LN931">931</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="932"><td class="num" id="LN932">932</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="933"><td class="num" id="LN933">933</td><td class="line"> TerminalApp *app;</td></tr>
+<tr class="codeline" data-linenumber="934"><td class="num" id="LN934">934</td><td class="line"> GtkActionGroup *action_group;</td></tr>
+<tr class="codeline" data-linenumber="935"><td class="num" id="LN935">935</td><td class="line"> GSList *group;</td></tr>
+<tr class="codeline" data-linenumber="936"><td class="num" id="LN936">936</td><td class="line"> guint n;</td></tr>
+<tr class="codeline" data-linenumber="937"><td class="num" id="LN937">937</td><td class="line"> GSList *encodings, *l;</td></tr>
+<tr class="codeline" data-linenumber="938"><td class="num" id="LN938">938</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *charset;</td></tr>
+<tr class="codeline" data-linenumber="939"><td class="num" id="LN939">939</td><td class="line"> TerminalEncoding *active_encoding;</td></tr>
+<tr class="codeline" data-linenumber="940"><td class="num" id="LN940">940</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="941"><td class="num" id="LN941">941</td><td class="line"> <span class='comment'>/* Remove the old UI */</span></td></tr>
+<tr class="codeline" data-linenumber="942"><td class="num" id="LN942">942</td><td class="line"> <span class='keyword'>if</span> (priv-&gt;encodings_ui_id != 0)</td></tr>
+<tr class="codeline" data-linenumber="943"><td class="num" id="LN943">943</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="944"><td class="num" id="LN944">944</td><td class="line"> gtk_ui_manager_remove_ui (priv-&gt;ui_manager, priv-&gt;encodings_ui_id);</td></tr>
+<tr class="codeline" data-linenumber="945"><td class="num" id="LN945">945</td><td class="line"> priv-&gt;encodings_ui_id = 0;</td></tr>
+<tr class="codeline" data-linenumber="946"><td class="num" id="LN946">946</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="947"><td class="num" id="LN947">947</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="948"><td class="num" id="LN948">948</td><td class="line"> <span class='keyword'>if</span> (priv-&gt;encodings_action_group != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="949"><td class="num" id="LN949">949</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="950"><td class="num" id="LN950">950</td><td class="line"> gtk_ui_manager_remove_action_group (priv-&gt;ui_manager,</td></tr>
+<tr class="codeline" data-linenumber="951"><td class="num" id="LN951">951</td><td class="line"> priv-&gt;encodings_action_group);</td></tr>
+<tr class="codeline" data-linenumber="952"><td class="num" id="LN952">952</td><td class="line"> priv-&gt;encodings_action_group = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="953"><td class="num" id="LN953">953</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="954"><td class="num" id="LN954">954</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="955"><td class="num" id="LN955">955</td><td class="line"> <span class='macro'>G_GNUC_BEGIN_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic push
+ clang diagnostic ignored "-Wdeprecated-declarations"<br>
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="956"><td class="num" id="LN956">956</td><td class="line"> action_group = priv-&gt;encodings_action_group = gtk_action_group_new (<span class='string_literal'>"Encodings"</span>);</td></tr>
+<tr class="codeline" data-linenumber="957"><td class="num" id="LN957">957</td><td class="line"> <span class='macro'>G_GNUC_END_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic pop
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="958"><td class="num" id="LN958">958</td><td class="line"> gtk_ui_manager_insert_action_group (priv-&gt;ui_manager, action_group, -1);</td></tr>
+<tr class="codeline" data-linenumber="959"><td class="num" id="LN959">959</td><td class="line"> g_object_unref (action_group);</td></tr>
+<tr class="codeline" data-linenumber="960"><td class="num" id="LN960">960</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="961"><td class="num" id="LN961">961</td><td class="line"> priv-&gt;encodings_ui_id = gtk_ui_manager_new_merge_id (priv-&gt;ui_manager);</td></tr>
+<tr class="codeline" data-linenumber="962"><td class="num" id="LN962">962</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="963"><td class="num" id="LN963">963</td><td class="line"> <span class='keyword'>if</span> (priv-&gt;active_screen)</td></tr>
+<tr class="codeline" data-linenumber="964"><td class="num" id="LN964">964</td><td class="line"> charset = vte_terminal_get_encoding (<span class='macro'>VTE_TERMINAL (priv-&gt;active_screen)<span class='macro_popup'>((((VteTerminal*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((priv-&gt;active_screen)), ((vte_terminal_get_type())))))<br>)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="965"><td class="num" id="LN965">965</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="966"><td class="num" id="LN966">966</td><td class="line"> charset = <span class='string_literal'>"current"</span>;</td></tr>
+<tr class="codeline" data-linenumber="967"><td class="num" id="LN967">967</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="968"><td class="num" id="LN968">968</td><td class="line"> app = terminal_app_get ();</td></tr>
+<tr class="codeline" data-linenumber="969"><td class="num" id="LN969">969</td><td class="line"> active_encoding = terminal_app_ensure_encoding (app, charset);</td></tr>
+<tr class="codeline" data-linenumber="970"><td class="num" id="LN970">970</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="971"><td class="num" id="LN971">971</td><td class="line"> encodings = terminal_app_get_active_encodings (app);</td></tr>
+<tr class="codeline" data-linenumber="972"><td class="num" id="LN972">972</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="973"><td class="num" id="LN973">973</td><td class="line"> <span class='keyword'>if</span> (g_slist_find (encodings, active_encoding) == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="974"><td class="num" id="LN974">974</td><td class="line"> encodings = g_slist_append (encodings, terminal_encoding_ref (active_encoding));</td></tr>
+<tr class="codeline" data-linenumber="975"><td class="num" id="LN975">975</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="976"><td class="num" id="LN976">976</td><td class="line"> group = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="977"><td class="num" id="LN977">977</td><td class="line"> n = 0;</td></tr>
+<tr class="codeline" data-linenumber="978"><td class="num" id="LN978">978</td><td class="line"> <span class='keyword'>for</span> (l = encodings; l != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; l = l-&gt;next)</td></tr>
+<tr class="codeline" data-linenumber="979"><td class="num" id="LN979">979</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="980"><td class="num" id="LN980">980</td><td class="line"> TerminalEncoding *e = (TerminalEncoding *) l-&gt;data;</td></tr>
+<tr class="codeline" data-linenumber="981"><td class="num" id="LN981">981</td><td class="line"> GtkRadioAction *encoding_action;</td></tr>
+<tr class="codeline" data-linenumber="982"><td class="num" id="LN982">982</td><td class="line"> <span class='keyword'>char</span> name[128];</td></tr>
+<tr class="codeline" data-linenumber="983"><td class="num" id="LN983">983</td><td class="line"> <span class='keyword'>char</span> *display_name;</td></tr>
+<tr class="codeline" data-linenumber="984"><td class="num" id="LN984">984</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="985"><td class="num" id="LN985">985</td><td class="line"> g_snprintf (name, <span class='keyword'>sizeof</span> (name), <span class='macro'>SET_ENCODING_ACTION_NAME_PREFIX<span class='macro_popup'>"TerminalSetEncoding"</span></span> <span class='string_literal'>"%s"</span>, terminal_encoding_get_id (e));</td></tr>
+<tr class="codeline" data-linenumber="986"><td class="num" id="LN986">986</td><td class="line"> display_name = g_strdup_printf (<span class='string_literal'>"%s (%s)"</span>, e-&gt;name, terminal_encoding_get_charset (e));</td></tr>
+<tr class="codeline" data-linenumber="987"><td class="num" id="LN987">987</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="988"><td class="num" id="LN988">988</td><td class="line"> <span class='macro'>G_GNUC_BEGIN_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic push
+ clang diagnostic ignored "-Wdeprecated-declarations"<br>
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="989"><td class="num" id="LN989">989</td><td class="line"> encoding_action = gtk_radio_action_new (name,</td></tr>
+<tr class="codeline" data-linenumber="990"><td class="num" id="LN990">990</td><td class="line"> display_name,</td></tr>
+<tr class="codeline" data-linenumber="991"><td class="num" id="LN991">991</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="992"><td class="num" id="LN992">992</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="993"><td class="num" id="LN993">993</td><td class="line"> n);</td></tr>
+<tr class="codeline" data-linenumber="994"><td class="num" id="LN994">994</td><td class="line"> g_free (display_name);</td></tr>
+<tr class="codeline" data-linenumber="995"><td class="num" id="LN995">995</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="996"><td class="num" id="LN996">996</td><td class="line"> gtk_radio_action_set_group (encoding_action, group);</td></tr>
+<tr class="codeline" data-linenumber="997"><td class="num" id="LN997">997</td><td class="line"> group = gtk_radio_action_get_group (encoding_action);</td></tr>
+<tr class="codeline" data-linenumber="998"><td class="num" id="LN998">998</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="999"><td class="num" id="LN999">999</td><td class="line"> <span class='keyword'>if</span> (charset &amp;&amp; strcmp (terminal_encoding_get_id (e), charset) == 0)</td></tr>
+<tr class="codeline" data-linenumber="1000"><td class="num" id="LN1000">1000</td><td class="line"> gtk_toggle_action_set_active (<span class='macro'>GTK_TOGGLE_ACTION (encoding_action)<span class='macro_popup'>((((GtkToggleAction*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((encoding_action)), ((gtk_toggle_action_get_type ()))))))</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1001"><td class="num" id="LN1001">1001</td><td class="line"> <span class='macro'>G_GNUC_END_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic pop
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1002"><td class="num" id="LN1002">1002</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1003"><td class="num" id="LN1003">1003</td><td class="line"> <span class='macro'>g_signal_connect (encoding_action, <span class='string_literal'>"toggled"</span>,<span class='macro_popup'>g_signal_connect_data ((encoding_action), ("toggled"), (((GCallback<br>) (terminal_set_encoding_callback))), (window), ((void*)0), (<br>GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1004"><td class="num" id="LN1004">1004</td><td class="line"> <span class='macro'>G_CALLBACK (terminal_set_encoding_callback), window)<span class='macro_popup'>g_signal_connect_data ((encoding_action), ("toggled"), (((GCallback<br>) (terminal_set_encoding_callback))), (window), ((void*)0), (<br>GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1005"><td class="num" id="LN1005">1005</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1006"><td class="num" id="LN1006">1006</td><td class="line"> g_object_set_data_full (<span class='macro'>G_OBJECT (encoding_action)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((encoding_action)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, <span class='macro'>ENCODING_DATA_KEY<span class='macro_popup'>"encoding"</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1007"><td class="num" id="LN1007">1007</td><td class="line"> terminal_encoding_ref (e),</td></tr>
+<tr class="codeline" data-linenumber="1008"><td class="num" id="LN1008">1008</td><td class="line"> (GDestroyNotify) terminal_encoding_unref);</td></tr>
+<tr class="codeline" data-linenumber="1009"><td class="num" id="LN1009">1009</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1010"><td class="num" id="LN1010">1010</td><td class="line"> <span class='macro'>G_GNUC_BEGIN_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic push
+ clang diagnostic ignored "-Wdeprecated-declarations"<br>
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1011"><td class="num" id="LN1011">1011</td><td class="line"> gtk_action_group_add_action (action_group, <span class='macro'>GTK_ACTION (encoding_action)<span class='macro_popup'>((((GtkAction*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((encoding_action)), ((gtk_action_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1012"><td class="num" id="LN1012">1012</td><td class="line"> <span class='macro'>G_GNUC_END_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic pop
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1013"><td class="num" id="LN1013">1013</td><td class="line"> g_object_unref (encoding_action);</td></tr>
+<tr class="codeline" data-linenumber="1014"><td class="num" id="LN1014">1014</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1015"><td class="num" id="LN1015">1015</td><td class="line"> gtk_ui_manager_add_ui (priv-&gt;ui_manager, priv-&gt;encodings_ui_id,</td></tr>
+<tr class="codeline" data-linenumber="1016"><td class="num" id="LN1016">1016</td><td class="line"> <span class='macro'>SET_ENCODING_UI_PATH<span class='macro_popup'>"/menubar/Terminal/TerminalSetEncoding/EncodingsPH"</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1017"><td class="num" id="LN1017">1017</td><td class="line"> name, name,</td></tr>
+<tr class="codeline" data-linenumber="1018"><td class="num" id="LN1018">1018</td><td class="line"> GTK_UI_MANAGER_MENUITEM, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1019"><td class="num" id="LN1019">1019</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1020"><td class="num" id="LN1020">1020</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1021"><td class="num" id="LN1021">1021</td><td class="line"> g_slist_foreach (encodings, (GFunc) terminal_encoding_unref, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1022"><td class="num" id="LN1022">1022</td><td class="line"> g_slist_free (encodings);</td></tr>
+<tr class="codeline" data-linenumber="1023"><td class="num" id="LN1023">1023</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1024"><td class="num" id="LN1024">1024</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1025"><td class="num" id="LN1025">1025</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1026"><td class="num" id="LN1026">1026</td><td class="line">terminal_window_update_encoding_menu_active_encoding (TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="1027"><td class="num" id="LN1027">1027</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1028"><td class="num" id="LN1028">1028</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1029"><td class="num" id="LN1029">1029</td><td class="line"> GtkAction *action;</td></tr>
+<tr class="codeline" data-linenumber="1030"><td class="num" id="LN1030">1030</td><td class="line"> <span class='keyword'>char</span> name[128];</td></tr>
+<tr class="codeline" data-linenumber="1031"><td class="num" id="LN1031">1031</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1032"><td class="num" id="LN1032">1032</td><td class="line"> <span class='keyword'>if</span> (!priv-&gt;active_screen)</td></tr>
+<tr class="codeline" data-linenumber="1033"><td class="num" id="LN1033">1033</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1034"><td class="num" id="LN1034">1034</td><td class="line"> <span class='keyword'>if</span> (!priv-&gt;encodings_action_group)</td></tr>
+<tr class="codeline" data-linenumber="1035"><td class="num" id="LN1035">1035</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1036"><td class="num" id="LN1036">1036</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1037"><td class="num" id="LN1037">1037</td><td class="line"> g_snprintf (name, <span class='keyword'>sizeof</span> (name), <span class='macro'>SET_ENCODING_ACTION_NAME_PREFIX<span class='macro_popup'>"TerminalSetEncoding"</span></span> <span class='string_literal'>"%s"</span>,</td></tr>
+<tr class="codeline" data-linenumber="1038"><td class="num" id="LN1038">1038</td><td class="line"> vte_terminal_get_encoding (<span class='macro'>VTE_TERMINAL (priv-&gt;active_screen)<span class='macro_popup'>((((VteTerminal*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((priv-&gt;active_screen)), ((vte_terminal_get_type())))))<br>)</span></span>));</td></tr>
+<tr class="codeline" data-linenumber="1039"><td class="num" id="LN1039">1039</td><td class="line"> <span class='macro'>G_GNUC_BEGIN_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic push
+ clang diagnostic ignored "-Wdeprecated-declarations"<br>
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1040"><td class="num" id="LN1040">1040</td><td class="line"> action = gtk_action_group_get_action (priv-&gt;encodings_action_group, name);</td></tr>
+<tr class="codeline" data-linenumber="1041"><td class="num" id="LN1041">1041</td><td class="line"> <span class='macro'>G_GNUC_END_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic pop
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1042"><td class="num" id="LN1042">1042</td><td class="line"> <span class='keyword'>if</span> (!action)</td></tr>
+<tr class="codeline" data-linenumber="1043"><td class="num" id="LN1043">1043</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1044"><td class="num" id="LN1044">1044</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1045"><td class="num" id="LN1045">1045</td><td class="line"> <span class='macro'>g_signal_handlers_block_by_func (action, G_CALLBACK (terminal_set_encoding_callback), window)<span class='macro_popup'>g_signal_handlers_block_matched ((action), (GSignalMatchType)<br> (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)0<br>), (((GCallback) (terminal_set_encoding_callback))), (window)<br>)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1046"><td class="num" id="LN1046">1046</td><td class="line"> <span class='macro'>G_GNUC_BEGIN_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic push
+ clang diagnostic ignored "-Wdeprecated-declarations"<br>
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1047"><td class="num" id="LN1047">1047</td><td class="line"> gtk_toggle_action_set_active (<span class='macro'>GTK_TOGGLE_ACTION (action)<span class='macro_popup'>((((GtkToggleAction*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((action)), ((gtk_toggle_action_get_type ()))))))</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1048"><td class="num" id="LN1048">1048</td><td class="line"> <span class='macro'>G_GNUC_END_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic pop
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1049"><td class="num" id="LN1049">1049</td><td class="line"> <span class='macro'>g_signal_handlers_unblock_by_func (action, G_CALLBACK (terminal_set_encoding_callback), window)<span class='macro_popup'>g_signal_handlers_unblock_matched ((action), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_set_encoding_callback))), (window<br>))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1050"><td class="num" id="LN1050">1050</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1051"><td class="num" id="LN1051">1051</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1052"><td class="num" id="LN1052">1052</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1053"><td class="num" id="LN1053">1053</td><td class="line">terminal_size_to_cb (GtkAction *action,</td></tr>
+<tr class="codeline" data-linenumber="1054"><td class="num" id="LN1054">1054</td><td class="line"> TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="1055"><td class="num" id="LN1055">1055</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1056"><td class="num" id="LN1056">1056</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1057"><td class="num" id="LN1057">1057</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *name;</td></tr>
+<tr class="codeline" data-linenumber="1058"><td class="num" id="LN1058">1058</td><td class="line"> <span class='keyword'>char</span> *end = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1059"><td class="num" id="LN1059">1059</td><td class="line"> guint width, height;</td></tr>
+<tr class="codeline" data-linenumber="1060"><td class="num" id="LN1060">1060</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1061"><td class="num" id="LN1061">1061</td><td class="line"> <span class='keyword'>if</span> (priv-&gt;active_screen == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1062"><td class="num" id="LN1062">1062</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1063"><td class="num" id="LN1063">1063</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1064"><td class="num" id="LN1064">1064</td><td class="line"> <span class='macro'>G_GNUC_BEGIN_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic push
+ clang diagnostic ignored "-Wdeprecated-declarations"<br>
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1065"><td class="num" id="LN1065">1065</td><td class="line"> name = gtk_action_get_name (action) + strlen (<span class='macro'>SIZE_TO_ACTION_NAME_PREFIX<span class='macro_popup'>"TerminalSizeTo"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1066"><td class="num" id="LN1066">1066</td><td class="line"> <span class='macro'>G_GNUC_END_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic pop
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1067"><td class="num" id="LN1067">1067</td><td class="line"> width = g_ascii_strtoull (name, &amp;end, 10);</td></tr>
+<tr class="codeline" data-linenumber="1068"><td class="num" id="LN1068">1068</td><td class="line"> <span class='macro'>g_assert (end &amp;&amp; *end == 'x')<span class='macro_popup'>do { if (end &amp;&amp; *end == 'x') ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-window.c", 1068, ((const char*) (__func__<br>)), "end &amp;&amp; *end == 'x'"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1069"><td class="num" id="LN1069">1069</td><td class="line"> height = g_ascii_strtoull (end + 1, &amp;end, 10);</td></tr>
+<tr class="codeline" data-linenumber="1070"><td class="num" id="LN1070">1070</td><td class="line"> <span class='macro'>g_assert (end &amp;&amp; *end == '\0')<span class='macro_popup'>do { if (end &amp;&amp; *end == '\0') ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-window.c", 1070, ((const char*) (__func__<br>)), "end &amp;&amp; *end == '\\0'"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1071"><td class="num" id="LN1071">1071</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1072"><td class="num" id="LN1072">1072</td><td class="line"> vte_terminal_set_size (<span class='macro'>VTE_TERMINAL (priv-&gt;active_screen)<span class='macro_popup'>((((VteTerminal*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((priv-&gt;active_screen)), ((vte_terminal_get_type())))))<br>)</span></span>, width, height);</td></tr>
+<tr class="codeline" data-linenumber="1073"><td class="num" id="LN1073">1073</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1074"><td class="num" id="LN1074">1074</td><td class="line"> terminal_window_update_size (window, priv-&gt;active_screen, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1075"><td class="num" id="LN1075">1075</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1076"><td class="num" id="LN1076">1076</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1077"><td class="num" id="LN1077">1077</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1078"><td class="num" id="LN1078">1078</td><td class="line">terminal_window_update_size_to_menu (TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="1079"><td class="num" id="LN1079">1079</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1080"><td class="num" id="LN1080">1080</td><td class="line"> <span class='keyword'>static</span> <span class='keyword'>const</span> <span class='keyword'>struct</span></td></tr>
+<tr class="codeline" data-linenumber="1081"><td class="num" id="LN1081">1081</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1082"><td class="num" id="LN1082">1082</td><td class="line"> guint grid_width;</td></tr>
+<tr class="codeline" data-linenumber="1083"><td class="num" id="LN1083">1083</td><td class="line"> guint grid_height;</td></tr>
+<tr class="codeline" data-linenumber="1084"><td class="num" id="LN1084">1084</td><td class="line"> } predefined_sizes[] =</td></tr>
+<tr class="codeline" data-linenumber="1085"><td class="num" id="LN1085">1085</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1086"><td class="num" id="LN1086">1086</td><td class="line"> { 80, 24 },</td></tr>
+<tr class="codeline" data-linenumber="1087"><td class="num" id="LN1087">1087</td><td class="line"> { 80, 43 },</td></tr>
+<tr class="codeline" data-linenumber="1088"><td class="num" id="LN1088">1088</td><td class="line"> { 132, 24 },</td></tr>
+<tr class="codeline" data-linenumber="1089"><td class="num" id="LN1089">1089</td><td class="line"> { 132, 43 }</td></tr>
+<tr class="codeline" data-linenumber="1090"><td class="num" id="LN1090">1090</td><td class="line"> };</td></tr>
+<tr class="codeline" data-linenumber="1091"><td class="num" id="LN1091">1091</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1092"><td class="num" id="LN1092">1092</td><td class="line"> guint i;</td></tr>
+<tr class="codeline" data-linenumber="1093"><td class="num" id="LN1093">1093</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1094"><td class="num" id="LN1094">1094</td><td class="line"> <span class='comment'>/* We only install this once, so there's no need for a separate action group</span></td></tr>
+<tr class="codeline" data-linenumber="1095"><td class="num" id="LN1095">1095</td><td class="line"> <span class='comment'>* and any cleanup + build-new-one action here.</span></td></tr>
+<tr class="codeline" data-linenumber="1096"><td class="num" id="LN1096">1096</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="1097"><td class="num" id="LN1097">1097</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1098"><td class="num" id="LN1098">1098</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; <span class='macro'>G_N_ELEMENTS (predefined_sizes)<span class='macro_popup'>(sizeof (predefined_sizes) / sizeof ((predefined_sizes)[0]))</span></span>; ++i)</td></tr>
+<tr class="codeline" data-linenumber="1099"><td class="num" id="LN1099">1099</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1100"><td class="num" id="LN1100">1100</td><td class="line"> guint grid_width = predefined_sizes[i].grid_width;</td></tr>
+<tr class="codeline" data-linenumber="1101"><td class="num" id="LN1101">1101</td><td class="line"> guint grid_height = predefined_sizes[i].grid_height;</td></tr>
+<tr class="codeline" data-linenumber="1102"><td class="num" id="LN1102">1102</td><td class="line"> GtkAction *action;</td></tr>
+<tr class="codeline" data-linenumber="1103"><td class="num" id="LN1103">1103</td><td class="line"> <span class='keyword'>char</span> name[40];</td></tr>
+<tr class="codeline" data-linenumber="1104"><td class="num" id="LN1104">1104</td><td class="line"> <span class='keyword'>char</span> *display_name;</td></tr>
+<tr class="codeline" data-linenumber="1105"><td class="num" id="LN1105">1105</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1106"><td class="num" id="LN1106">1106</td><td class="line"> g_snprintf (name, <span class='keyword'>sizeof</span> (name), <span class='macro'>SIZE_TO_ACTION_NAME_PREFIX<span class='macro_popup'>"TerminalSizeTo"</span></span> <span class='string_literal'>"%ux%u"</span>,</td></tr>
+<tr class="codeline" data-linenumber="1107"><td class="num" id="LN1107">1107</td><td class="line"> grid_width, grid_height);</td></tr>
+<tr class="codeline" data-linenumber="1108"><td class="num" id="LN1108">1108</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1109"><td class="num" id="LN1109">1109</td><td class="line"> <span class='comment'>/* If there are ever more than 9 of these, extend this to use A..Z as mnemonics,</span></td></tr>
+<tr class="codeline" data-linenumber="1110"><td class="num" id="LN1110">1110</td><td class="line"> <span class='comment'>* like we do for the profiles menu.</span></td></tr>
+<tr class="codeline" data-linenumber="1111"><td class="num" id="LN1111">1111</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="1112"><td class="num" id="LN1112">1112</td><td class="line"> display_name = g_strdup_printf (<span class='string_literal'>"_%u. %ux%u"</span>, i + 1, grid_width, grid_height);</td></tr>
+<tr class="codeline" data-linenumber="1113"><td class="num" id="LN1113">1113</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1114"><td class="num" id="LN1114">1114</td><td class="line"> <span class='macro'>G_GNUC_BEGIN_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic push
+ clang diagnostic ignored "-Wdeprecated-declarations"<br>
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1115"><td class="num" id="LN1115">1115</td><td class="line"> action = gtk_action_new (name, display_name, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1116"><td class="num" id="LN1116">1116</td><td class="line"> <span class='macro'>G_GNUC_END_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic pop
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1117"><td class="num" id="LN1117">1117</td><td class="line"> g_free (display_name);</td></tr>
+<tr class="codeline" data-linenumber="1118"><td class="num" id="LN1118">1118</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1119"><td class="num" id="LN1119">1119</td><td class="line"> <span class='macro'>g_signal_connect (action, <span class='string_literal'>"activate"</span>,<span class='macro_popup'>g_signal_connect_data ((action), ("activate"), (((GCallback) (<br>terminal_size_to_cb))), (window), ((void*)0), (GConnectFlags)<br> 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1120"><td class="num" id="LN1120">1120</td><td class="line"> <span class='macro'>G_CALLBACK (terminal_size_to_cb), window)<span class='macro_popup'>g_signal_connect_data ((action), ("activate"), (((GCallback) (<br>terminal_size_to_cb))), (window), ((void*)0), (GConnectFlags)<br> 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1121"><td class="num" id="LN1121">1121</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1122"><td class="num" id="LN1122">1122</td><td class="line"> <span class='macro'>G_GNUC_BEGIN_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic push
+ clang diagnostic ignored "-Wdeprecated-declarations"<br>
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1123"><td class="num" id="LN1123">1123</td><td class="line"> gtk_action_group_add_action (priv-&gt;action_group, action);</td></tr>
+<tr class="codeline" data-linenumber="1124"><td class="num" id="LN1124">1124</td><td class="line"> <span class='macro'>G_GNUC_END_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic pop
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1125"><td class="num" id="LN1125">1125</td><td class="line"> g_object_unref (action);</td></tr>
+<tr class="codeline" data-linenumber="1126"><td class="num" id="LN1126">1126</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1127"><td class="num" id="LN1127">1127</td><td class="line"> gtk_ui_manager_add_ui (priv-&gt;ui_manager, priv-&gt;ui_id,</td></tr>
+<tr class="codeline" data-linenumber="1128"><td class="num" id="LN1128">1128</td><td class="line"> <span class='macro'>SIZE_TO_UI_PATH<span class='macro_popup'>"/menubar/Terminal/TerminalSizeToPH"</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1129"><td class="num" id="LN1129">1129</td><td class="line"> name, name,</td></tr>
+<tr class="codeline" data-linenumber="1130"><td class="num" id="LN1130">1130</td><td class="line"> GTK_UI_MANAGER_MENUITEM, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1131"><td class="num" id="LN1131">1131</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1132"><td class="num" id="LN1132">1132</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1133"><td class="num" id="LN1133">1133</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1134"><td class="num" id="LN1134">1134</td><td class="line"><span class='comment'>/* Actions stuff */</span></td></tr>
+<tr class="codeline" data-linenumber="1135"><td class="num" id="LN1135">1135</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1136"><td class="num" id="LN1136">1136</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1137"><td class="num" id="LN1137">1137</td><td class="line">terminal_window_update_copy_sensitivity (TerminalScreen *screen,</td></tr>
+<tr class="codeline" data-linenumber="1138"><td class="num" id="LN1138">1138</td><td class="line"> TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="1139"><td class="num" id="LN1139">1139</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1140"><td class="num" id="LN1140">1140</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1141"><td class="num" id="LN1141">1141</td><td class="line"> GtkAction *action;</td></tr>
+<tr class="codeline" data-linenumber="1142"><td class="num" id="LN1142">1142</td><td class="line"> gboolean can_copy;</td></tr>
+<tr class="codeline" data-linenumber="1143"><td class="num" id="LN1143">1143</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1144"><td class="num" id="LN1144">1144</td><td class="line"> <span class='keyword'>if</span> (screen != priv-&gt;active_screen)</td></tr>
+<tr class="codeline" data-linenumber="1145"><td class="num" id="LN1145">1145</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1146"><td class="num" id="LN1146">1146</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1147"><td class="num" id="LN1147">1147</td><td class="line"> can_copy = vte_terminal_get_has_selection (<span class='macro'>VTE_TERMINAL (screen)<span class='macro_popup'>((((VteTerminal*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((screen)), ((vte_terminal_get_type()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1148"><td class="num" id="LN1148">1148</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1149"><td class="num" id="LN1149">1149</td><td class="line"> <span class='macro'>G_GNUC_BEGIN_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic push
+ clang diagnostic ignored "-Wdeprecated-declarations"<br>
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1150"><td class="num" id="LN1150">1150</td><td class="line"> action = gtk_action_group_get_action (priv-&gt;action_group, <span class='string_literal'>"EditCopy"</span>);</td></tr>
+<tr class="codeline" data-linenumber="1151"><td class="num" id="LN1151">1151</td><td class="line"> gtk_action_set_sensitive (action, can_copy);</td></tr>
+<tr class="codeline" data-linenumber="1152"><td class="num" id="LN1152">1152</td><td class="line"> <span class='macro'>G_GNUC_END_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic pop
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1153"><td class="num" id="LN1153">1153</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1154"><td class="num" id="LN1154">1154</td><td class="line"> <span class='keyword'>if</span> (can_copy &amp;&amp; priv-&gt;copy_selection)</td></tr>
+<tr class="codeline" data-linenumber="1155"><td class="num" id="LN1155">1155</td><td class="line"><span class='directive'>#if <span class='macro'>VTE_CHECK_VERSION (0, 50, 0)<span class='macro_popup'>((0) &gt; (0) || ((0) == (0) &amp;&amp; (74) &gt; (50)) || ((<br>0) == (0) &amp;&amp; (74) == (50) &amp;&amp; (2) &gt;= (0)))</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1156"><td class="num" id="LN1156">1156</td><td class="line"> vte_terminal_copy_clipboard_format (<span class='macro'>VTE_TERMINAL(screen)<span class='macro_popup'>((((VteTerminal*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((screen)), ((vte_terminal_get_type()))))))</span></span>, VTE_FORMAT_TEXT);</td></tr>
+<tr class="codeline" data-linenumber="1157"><td class="num" id="LN1157">1157</td><td class="line"><span class='directive'>#else</span></td></tr>
+<tr class="codeline" data-linenumber="1158"><td class="num" id="LN1158">1158</td><td class="line"> vte_terminal_copy_clipboard(<span class='macro'>VTE_TERMINAL(screen)<span class='macro_popup'>((((VteTerminal*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((screen)), ((vte_terminal_get_type()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1159"><td class="num" id="LN1159">1159</td><td class="line"><span class='directive'>#endif</span></td></tr>
+<tr class="codeline" data-linenumber="1160"><td class="num" id="LN1160">1160</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1161"><td class="num" id="LN1161">1161</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1162"><td class="num" id="LN1162">1162</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1163"><td class="num" id="LN1163">1163</td><td class="line">terminal_window_update_zoom_sensitivity (TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="1164"><td class="num" id="LN1164">1164</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1165"><td class="num" id="LN1165">1165</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1166"><td class="num" id="LN1166">1166</td><td class="line"> TerminalScreen *screen;</td></tr>
+<tr class="codeline" data-linenumber="1167"><td class="num" id="LN1167">1167</td><td class="line"> GtkAction *action;</td></tr>
+<tr class="codeline" data-linenumber="1168"><td class="num" id="LN1168">1168</td><td class="line"> <span class='keyword'>double</span> current, zoom;</td></tr>
+<tr class="codeline" data-linenumber="1169"><td class="num" id="LN1169">1169</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1170"><td class="num" id="LN1170">1170</td><td class="line"> screen = priv-&gt;active_screen;</td></tr>
+<tr class="codeline" data-linenumber="1171"><td class="num" id="LN1171">1171</td><td class="line"> <span class='keyword'>if</span> (screen == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1172"><td class="num" id="LN1172">1172</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1173"><td class="num" id="LN1173">1173</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1174"><td class="num" id="LN1174">1174</td><td class="line"> current = terminal_screen_get_font_scale (screen);</td></tr>
+<tr class="codeline" data-linenumber="1175"><td class="num" id="LN1175">1175</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1176"><td class="num" id="LN1176">1176</td><td class="line"> <span class='macro'>G_GNUC_BEGIN_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic push
+ clang diagnostic ignored "-Wdeprecated-declarations"<br>
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1177"><td class="num" id="LN1177">1177</td><td class="line"> action = gtk_action_group_get_action (priv-&gt;action_group, <span class='string_literal'>"ViewZoomOut"</span>);</td></tr>
+<tr class="codeline" data-linenumber="1178"><td class="num" id="LN1178">1178</td><td class="line"> gtk_action_set_sensitive (action, find_smaller_zoom_factor (current, &amp;zoom));</td></tr>
+<tr class="codeline" data-linenumber="1179"><td class="num" id="LN1179">1179</td><td class="line"> action = gtk_action_group_get_action (priv-&gt;action_group, <span class='string_literal'>"ViewZoomIn"</span>);</td></tr>
+<tr class="codeline" data-linenumber="1180"><td class="num" id="LN1180">1180</td><td class="line"> gtk_action_set_sensitive (action, find_larger_zoom_factor (current, &amp;zoom));</td></tr>
+<tr class="codeline" data-linenumber="1181"><td class="num" id="LN1181">1181</td><td class="line"> <span class='macro'>G_GNUC_END_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic pop
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1182"><td class="num" id="LN1182">1182</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1183"><td class="num" id="LN1183">1183</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1184"><td class="num" id="LN1184">1184</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1185"><td class="num" id="LN1185">1185</td><td class="line">terminal_window_update_search_sensitivity (TerminalScreen *screen,</td></tr>
+<tr class="codeline" data-linenumber="1186"><td class="num" id="LN1186">1186</td><td class="line"> TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="1187"><td class="num" id="LN1187">1187</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1188"><td class="num" id="LN1188">1188</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1189"><td class="num" id="LN1189">1189</td><td class="line"> GtkAction *action;</td></tr>
+<tr class="codeline" data-linenumber="1190"><td class="num" id="LN1190">1190</td><td class="line"> gboolean can_search;</td></tr>
+<tr class="codeline" data-linenumber="1191"><td class="num" id="LN1191">1191</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1192"><td class="num" id="LN1192">1192</td><td class="line"> <span class='keyword'>if</span> (screen != priv-&gt;active_screen)</td></tr>
+<tr class="codeline" data-linenumber="1193"><td class="num" id="LN1193">1193</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1194"><td class="num" id="LN1194">1194</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1195"><td class="num" id="LN1195">1195</td><td class="line"> can_search = vte_terminal_search_get_regex (<span class='macro'>VTE_TERMINAL (screen)<span class='macro_popup'>((((VteTerminal*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((screen)), ((vte_terminal_get_type()))))))</span></span>) != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1196"><td class="num" id="LN1196">1196</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1197"><td class="num" id="LN1197">1197</td><td class="line"> <span class='macro'>G_GNUC_BEGIN_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic push
+ clang diagnostic ignored "-Wdeprecated-declarations"<br>
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1198"><td class="num" id="LN1198">1198</td><td class="line"> action = gtk_action_group_get_action (priv-&gt;action_group, <span class='string_literal'>"SearchFindNext"</span>);</td></tr>
+<tr class="codeline" data-linenumber="1199"><td class="num" id="LN1199">1199</td><td class="line"> gtk_action_set_sensitive (action, can_search);</td></tr>
+<tr class="codeline" data-linenumber="1200"><td class="num" id="LN1200">1200</td><td class="line"> action = gtk_action_group_get_action (priv-&gt;action_group, <span class='string_literal'>"SearchFindPrevious"</span>);</td></tr>
+<tr class="codeline" data-linenumber="1201"><td class="num" id="LN1201">1201</td><td class="line"> gtk_action_set_sensitive (action, can_search);</td></tr>
+<tr class="codeline" data-linenumber="1202"><td class="num" id="LN1202">1202</td><td class="line"> action = gtk_action_group_get_action (priv-&gt;action_group, <span class='string_literal'>"SearchClearHighlight"</span>);</td></tr>
+<tr class="codeline" data-linenumber="1203"><td class="num" id="LN1203">1203</td><td class="line"> gtk_action_set_sensitive (action, can_search);</td></tr>
+<tr class="codeline" data-linenumber="1204"><td class="num" id="LN1204">1204</td><td class="line"> <span class='macro'>G_GNUC_END_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic pop
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1205"><td class="num" id="LN1205">1205</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1206"><td class="num" id="LN1206">1206</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1207"><td class="num" id="LN1207">1207</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1208"><td class="num" id="LN1208">1208</td><td class="line">update_edit_menu_cb (GtkClipboard *clipboard,</td></tr>
+<tr class="codeline" data-linenumber="1209"><td class="num" id="LN1209">1209</td><td class="line"> GdkAtom *targets,</td></tr>
+<tr class="codeline" data-linenumber="1210"><td class="num" id="LN1210">1210</td><td class="line"> <span class='keyword'>int</span> n_targets,</td></tr>
+<tr class="codeline" data-linenumber="1211"><td class="num" id="LN1211">1211</td><td class="line"> TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="1212"><td class="num" id="LN1212">1212</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1213"><td class="num" id="LN1213">1213</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1214"><td class="num" id="LN1214">1214</td><td class="line"> GtkAction *action;</td></tr>
+<tr class="codeline" data-linenumber="1215"><td class="num" id="LN1215">1215</td><td class="line"> gboolean can_paste, can_paste_uris;</td></tr>
+<tr class="codeline" data-linenumber="1216"><td class="num" id="LN1216">1216</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1217"><td class="num" id="LN1217">1217</td><td class="line"> can_paste = targets != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span> &amp;&amp; gtk_targets_include_text (targets, n_targets);</td></tr>
+<tr class="codeline" data-linenumber="1218"><td class="num" id="LN1218">1218</td><td class="line"> can_paste_uris = targets != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span> &amp;&amp; gtk_targets_include_uri (targets, n_targets);</td></tr>
+<tr class="codeline" data-linenumber="1219"><td class="num" id="LN1219">1219</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1220"><td class="num" id="LN1220">1220</td><td class="line"> <span class='macro'>G_GNUC_BEGIN_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic push
+ clang diagnostic ignored "-Wdeprecated-declarations"<br>
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1221"><td class="num" id="LN1221">1221</td><td class="line"> action = gtk_action_group_get_action (priv-&gt;action_group, <span class='string_literal'>"EditPaste"</span>);</td></tr>
+<tr class="codeline" data-linenumber="1222"><td class="num" id="LN1222">1222</td><td class="line"> gtk_action_set_sensitive (action, can_paste);</td></tr>
+<tr class="codeline" data-linenumber="1223"><td class="num" id="LN1223">1223</td><td class="line"> action = gtk_action_group_get_action (priv-&gt;action_group, <span class='string_literal'>"EditPasteURIPaths"</span>);</td></tr>
+<tr class="codeline" data-linenumber="1224"><td class="num" id="LN1224">1224</td><td class="line"> gtk_action_set_visible (action, can_paste_uris);</td></tr>
+<tr class="codeline" data-linenumber="1225"><td class="num" id="LN1225">1225</td><td class="line"> gtk_action_set_sensitive (action, can_paste_uris);</td></tr>
+<tr class="codeline" data-linenumber="1226"><td class="num" id="LN1226">1226</td><td class="line"> <span class='macro'>G_GNUC_END_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic pop
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1227"><td class="num" id="LN1227">1227</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1228"><td class="num" id="LN1228">1228</td><td class="line"> <span class='comment'>/* Ref was added in gtk_clipboard_request_targets below */</span></td></tr>
+<tr class="codeline" data-linenumber="1229"><td class="num" id="LN1229">1229</td><td class="line"> g_object_unref (window);</td></tr>
+<tr class="codeline" data-linenumber="1230"><td class="num" id="LN1230">1230</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1231"><td class="num" id="LN1231">1231</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1232"><td class="num" id="LN1232">1232</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1233"><td class="num" id="LN1233">1233</td><td class="line">update_edit_menu(TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="1234"><td class="num" id="LN1234">1234</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1235"><td class="num" id="LN1235">1235</td><td class="line"> GtkClipboard *clipboard;</td></tr>
+<tr class="codeline" data-linenumber="1236"><td class="num" id="LN1236">1236</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1237"><td class="num" id="LN1237">1237</td><td class="line"> clipboard = gtk_widget_get_clipboard (<span class='macro'>GTK_WIDGET (window)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_widget_get_type ()))))))</span></span>, <span class='macro'>GDK_SELECTION_CLIPBOARD<span class='macro_popup'>((GdkAtom)((gpointer) (gulong) (69)))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1238"><td class="num" id="LN1238">1238</td><td class="line"> gtk_clipboard_request_targets (clipboard,</td></tr>
+<tr class="codeline" data-linenumber="1239"><td class="num" id="LN1239">1239</td><td class="line"> (GtkClipboardTargetsReceivedFunc) update_edit_menu_cb,</td></tr>
+<tr class="codeline" data-linenumber="1240"><td class="num" id="LN1240">1240</td><td class="line"> <span class='macro'>g_object_ref (window)<span class='macro_popup'>((__typeof__ (window)) (g_object_ref) (window))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1241"><td class="num" id="LN1241">1241</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1242"><td class="num" id="LN1242">1242</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1243"><td class="num" id="LN1243">1243</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1244"><td class="num" id="LN1244">1244</td><td class="line">screen_resize_window_cb (TerminalScreen *screen,</td></tr>
+<tr class="codeline" data-linenumber="1245"><td class="num" id="LN1245">1245</td><td class="line"> guint width,</td></tr>
+<tr class="codeline" data-linenumber="1246"><td class="num" id="LN1246">1246</td><td class="line"> guint height,</td></tr>
+<tr class="codeline" data-linenumber="1247"><td class="num" id="LN1247">1247</td><td class="line"> TerminalWindow* window)</td></tr>
+<tr class="codeline" data-linenumber="1248"><td class="num" id="LN1248">1248</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1249"><td class="num" id="LN1249">1249</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1250"><td class="num" id="LN1250">1250</td><td class="line"> VteTerminal *terminal = <span class='macro'>VTE_TERMINAL (screen)<span class='macro_popup'>((((VteTerminal*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((screen)), ((vte_terminal_get_type()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1251"><td class="num" id="LN1251">1251</td><td class="line"> GtkWidget *widget = <span class='macro'>GTK_WIDGET (screen)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((screen)), ((gtk_widget_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1252"><td class="num" id="LN1252">1252</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1253"><td class="num" id="LN1253">1253</td><td class="line"> <span class='comment'>/* Don't do anything if we're maximised or fullscreened */</span></td></tr>
+<tr class="codeline" data-linenumber="1254"><td class="num" id="LN1254">1254</td><td class="line"> <span class='comment'>// FIXME: realized &amp;&amp; ... instead?</span></td></tr>
+<tr class="codeline" data-linenumber="1255"><td class="num" id="LN1255">1255</td><td class="line"> <span class='keyword'>if</span> (!gtk_widget_get_realized (widget) ||</td></tr>
+<tr class="codeline" data-linenumber="1256"><td class="num" id="LN1256">1256</td><td class="line"> (gdk_window_get_state (gtk_widget_get_window (widget)) &amp; (GDK_WINDOW_STATE_MAXIMIZED | GDK_WINDOW_STATE_FULLSCREEN)) != 0)</td></tr>
+<tr class="codeline" data-linenumber="1257"><td class="num" id="LN1257">1257</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1258"><td class="num" id="LN1258">1258</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1259"><td class="num" id="LN1259">1259</td><td class="line"> vte_terminal_set_size (terminal, width, height);</td></tr>
+<tr class="codeline" data-linenumber="1260"><td class="num" id="LN1260">1260</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1261"><td class="num" id="LN1261">1261</td><td class="line"> <span class='keyword'>if</span> (screen != priv-&gt;active_screen)</td></tr>
+<tr class="codeline" data-linenumber="1262"><td class="num" id="LN1262">1262</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1263"><td class="num" id="LN1263">1263</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1264"><td class="num" id="LN1264">1264</td><td class="line"> terminal_window_update_size (window, screen, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1265"><td class="num" id="LN1265">1265</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1266"><td class="num" id="LN1266">1266</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1267"><td class="num" id="LN1267">1267</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1268"><td class="num" id="LN1268">1268</td><td class="line">terminal_window_update_tabs_menu_sensitivity (TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="1269"><td class="num" id="LN1269">1269</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1270"><td class="num" id="LN1270">1270</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1271"><td class="num" id="LN1271">1271</td><td class="line"> GtkNotebook *notebook = <span class='macro'>GTK_NOTEBOOK (priv-&gt;notebook)<span class='macro_popup'>((((GtkNotebook*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((priv-&gt;notebook)), ((gtk_notebook_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1272"><td class="num" id="LN1272">1272</td><td class="line"> GtkActionGroup *action_group = priv-&gt;action_group;</td></tr>
+<tr class="codeline" data-linenumber="1273"><td class="num" id="LN1273">1273</td><td class="line"> GtkAction *action;</td></tr>
+<tr class="codeline" data-linenumber="1274"><td class="num" id="LN1274">1274</td><td class="line"> <span class='keyword'>int</span> num_pages, page_num;</td></tr>
+<tr class="codeline" data-linenumber="1275"><td class="num" id="LN1275">1275</td><td class="line"> gboolean not_first, not_last;</td></tr>
+<tr class="codeline" data-linenumber="1276"><td class="num" id="LN1276">1276</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1277"><td class="num" id="LN1277">1277</td><td class="line"> <span class='keyword'>if</span> (priv-&gt;disposed)</td></tr>
+<tr class="codeline" data-linenumber="1278"><td class="num" id="LN1278">1278</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1279"><td class="num" id="LN1279">1279</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1280"><td class="num" id="LN1280">1280</td><td class="line"> num_pages = gtk_notebook_get_n_pages (notebook);</td></tr>
+<tr class="codeline" data-linenumber="1281"><td class="num" id="LN1281">1281</td><td class="line"> page_num = gtk_notebook_get_current_page (notebook);</td></tr>
+<tr class="codeline" data-linenumber="1282"><td class="num" id="LN1282">1282</td><td class="line"> not_first = page_num &gt; 0;</td></tr>
+<tr class="codeline" data-linenumber="1283"><td class="num" id="LN1283">1283</td><td class="line"> not_last = page_num + 1 &lt; num_pages;</td></tr>
+<tr class="codeline" data-linenumber="1284"><td class="num" id="LN1284">1284</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1285"><td class="num" id="LN1285">1285</td><td class="line"> <span class='comment'>/* Hide the tabs menu in single-tab windows */</span></td></tr>
+<tr class="codeline" data-linenumber="1286"><td class="num" id="LN1286">1286</td><td class="line"> <span class='macro'>G_GNUC_BEGIN_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic push
+ clang diagnostic ignored "-Wdeprecated-declarations"<br>
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1287"><td class="num" id="LN1287">1287</td><td class="line"> action = gtk_action_group_get_action (action_group, <span class='string_literal'>"Tabs"</span>);</td></tr>
+<tr class="codeline" data-linenumber="1288"><td class="num" id="LN1288">1288</td><td class="line"> gtk_action_set_visible (action, num_pages &gt; 1);</td></tr>
+<tr class="codeline" data-linenumber="1289"><td class="num" id="LN1289">1289</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1290"><td class="num" id="LN1290">1290</td><td class="line"><span class='directive'>#if 1</span></td></tr>
+<tr class="codeline" data-linenumber="1291"><td class="num" id="LN1291">1291</td><td class="line"> <span class='comment'>/* NOTE: We always make next/prev actions sensitive except in</span></td></tr>
+<tr class="codeline" data-linenumber="1292"><td class="num" id="LN1292">1292</td><td class="line"> <span class='comment'>* single-tab windows, so the corresponding shortcut key escape code</span></td></tr>
+<tr class="codeline" data-linenumber="1293"><td class="num" id="LN1293">1293</td><td class="line"> <span class='comment'>* isn't sent to the terminal. See bug #453193 and bug #138609.</span></td></tr>
+<tr class="codeline" data-linenumber="1294"><td class="num" id="LN1294">1294</td><td class="line"> <span class='comment'>* This also makes tab cycling work, bug #92139.</span></td></tr>
+<tr class="codeline" data-linenumber="1295"><td class="num" id="LN1295">1295</td><td class="line"> <span class='comment'>* FIXME: Find a better way to do this.</span></td></tr>
+<tr class="codeline" data-linenumber="1296"><td class="num" id="LN1296">1296</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="1297"><td class="num" id="LN1297">1297</td><td class="line"> action = gtk_action_group_get_action (action_group, <span class='string_literal'>"TabsPrevious"</span>);</td></tr>
+<tr class="codeline" data-linenumber="1298"><td class="num" id="LN1298">1298</td><td class="line"> gtk_action_set_sensitive (action, num_pages &gt; 1);</td></tr>
+<tr class="codeline" data-linenumber="1299"><td class="num" id="LN1299">1299</td><td class="line"> action = gtk_action_group_get_action (action_group, <span class='string_literal'>"TabsNext"</span>);</td></tr>
+<tr class="codeline" data-linenumber="1300"><td class="num" id="LN1300">1300</td><td class="line"> gtk_action_set_sensitive (action, num_pages &gt; 1);</td></tr>
+<tr class="codeline" data-linenumber="1301"><td class="num" id="LN1301">1301</td><td class="line"><span class='directive'>#else</span></td></tr>
+<tr class="codeline" data-linenumber="1302"><td class="num" id="LN1302">1302</td><td class="line"> <span class='comment'>/* This would be correct, but see the comment above. */</span></td></tr>
+<tr class="codeline" data-linenumber="1303"><td class="num" id="LN1303">1303</td><td class="line"> action = gtk_action_group_get_action (action_group, <span class='string_literal'>"TabsPrevious"</span>);</td></tr>
+<tr class="codeline" data-linenumber="1304"><td class="num" id="LN1304">1304</td><td class="line"> gtk_action_set_sensitive (action, not_first);</td></tr>
+<tr class="codeline" data-linenumber="1305"><td class="num" id="LN1305">1305</td><td class="line"> action = gtk_action_group_get_action (action_group, <span class='string_literal'>"TabsNext"</span>);</td></tr>
+<tr class="codeline" data-linenumber="1306"><td class="num" id="LN1306">1306</td><td class="line"> gtk_action_set_sensitive (action, not_last);</td></tr>
+<tr class="codeline" data-linenumber="1307"><td class="num" id="LN1307">1307</td><td class="line"><span class='directive'>#endif</span></td></tr>
+<tr class="codeline" data-linenumber="1308"><td class="num" id="LN1308">1308</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1309"><td class="num" id="LN1309">1309</td><td class="line"> action = gtk_action_group_get_action (action_group, <span class='string_literal'>"TabsMoveLeft"</span>);</td></tr>
+<tr class="codeline" data-linenumber="1310"><td class="num" id="LN1310">1310</td><td class="line"> gtk_action_set_sensitive (action, not_first);</td></tr>
+<tr class="codeline" data-linenumber="1311"><td class="num" id="LN1311">1311</td><td class="line"> action = gtk_action_group_get_action (action_group, <span class='string_literal'>"TabsMoveRight"</span>);</td></tr>
+<tr class="codeline" data-linenumber="1312"><td class="num" id="LN1312">1312</td><td class="line"> gtk_action_set_sensitive (action, not_last);</td></tr>
+<tr class="codeline" data-linenumber="1313"><td class="num" id="LN1313">1313</td><td class="line"> action = gtk_action_group_get_action (action_group, <span class='string_literal'>"TabsDetach"</span>);</td></tr>
+<tr class="codeline" data-linenumber="1314"><td class="num" id="LN1314">1314</td><td class="line"> gtk_action_set_sensitive (action, num_pages &gt; 1);</td></tr>
+<tr class="codeline" data-linenumber="1315"><td class="num" id="LN1315">1315</td><td class="line"> action = gtk_action_group_get_action (action_group, <span class='string_literal'>"FileCloseTab"</span>);</td></tr>
+<tr class="codeline" data-linenumber="1316"><td class="num" id="LN1316">1316</td><td class="line"> gtk_action_set_sensitive (action, num_pages &gt; 1);</td></tr>
+<tr class="codeline" data-linenumber="1317"><td class="num" id="LN1317">1317</td><td class="line"> <span class='macro'>G_GNUC_END_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic pop
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1318"><td class="num" id="LN1318">1318</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1319"><td class="num" id="LN1319">1319</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1320"><td class="num" id="LN1320">1320</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1321"><td class="num" id="LN1321">1321</td><td class="line">update_tab_visibility (TerminalWindow *window,</td></tr>
+<tr class="codeline" data-linenumber="1322"><td class="num" id="LN1322">1322</td><td class="line"> <span class='keyword'>int</span> change)</td></tr>
+<tr class="codeline" data-linenumber="1323"><td class="num" id="LN1323">1323</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1324"><td class="num" id="LN1324">1324</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1325"><td class="num" id="LN1325">1325</td><td class="line"> gboolean show_tabs;</td></tr>
+<tr class="codeline" data-linenumber="1326"><td class="num" id="LN1326">1326</td><td class="line"> guint num;</td></tr>
+<tr class="codeline" data-linenumber="1327"><td class="num" id="LN1327">1327</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1328"><td class="num" id="LN1328">1328</td><td class="line"> num = gtk_notebook_get_n_pages (<span class='macro'>GTK_NOTEBOOK (priv-&gt;notebook)<span class='macro_popup'>((((GtkNotebook*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((priv-&gt;notebook)), ((gtk_notebook_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1329"><td class="num" id="LN1329">1329</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1330"><td class="num" id="LN1330">1330</td><td class="line"> show_tabs = (num + change) &gt; 1;</td></tr>
+<tr class="codeline" data-linenumber="1331"><td class="num" id="LN1331">1331</td><td class="line"> gtk_notebook_set_show_tabs (<span class='macro'>GTK_NOTEBOOK (priv-&gt;notebook)<span class='macro_popup'>((((GtkNotebook*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((priv-&gt;notebook)), ((gtk_notebook_get_type ()))))))</span></span>, show_tabs);</td></tr>
+<tr class="codeline" data-linenumber="1332"><td class="num" id="LN1332">1332</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1333"><td class="num" id="LN1333">1333</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1334"><td class="num" id="LN1334">1334</td><td class="line"><span class='keyword'>static</span> GtkNotebook *</td></tr>
+<tr class="codeline" data-linenumber="1335"><td class="num" id="LN1335">1335</td><td class="line">handle_tab_droped_on_desktop (GtkNotebook *source_notebook,</td></tr>
+<tr class="codeline" data-linenumber="1336"><td class="num" id="LN1336">1336</td><td class="line"> GtkWidget *container,</td></tr>
+<tr class="codeline" data-linenumber="1337"><td class="num" id="LN1337">1337</td><td class="line"> gint x,</td></tr>
+<tr class="codeline" data-linenumber="1338"><td class="num" id="LN1338">1338</td><td class="line"> gint y,</td></tr>
+<tr class="codeline" data-linenumber="1339"><td class="num" id="LN1339">1339</td><td class="line"> gpointer data)</td></tr>
+<tr class="codeline" data-linenumber="1340"><td class="num" id="LN1340">1340</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1341"><td class="num" id="LN1341">1341</td><td class="line"> TerminalWindow *source_window;</td></tr>
+<tr class="codeline" data-linenumber="1342"><td class="num" id="LN1342">1342</td><td class="line"> TerminalWindow *new_window;</td></tr>
+<tr class="codeline" data-linenumber="1343"><td class="num" id="LN1343">1343</td><td class="line"> TerminalWindowPrivate *new_priv;</td></tr>
+<tr class="codeline" data-linenumber="1344"><td class="num" id="LN1344">1344</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1345"><td class="num" id="LN1345">1345</td><td class="line"> source_window = <span class='macro'>TERMINAL_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (source_notebook)))<span class='macro_popup'>((((TerminalWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((gtk_widget_get_toplevel (((((GtkWidget*) (void *) g_type_check_instance_cast<br> ((GTypeInstance*) ((source_notebook)), ((gtk_widget_get_type<br> ()))))))))), ((terminal_window_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1346"><td class="num" id="LN1346">1346</td><td class="line"> <span class='macro'>g_return_val_if_fail (TERMINAL_IS_WINDOW (source_window), NULL)<span class='macro_popup'>do { if (((((__extension__ ({ GTypeInstance *__inst = (GTypeInstance<br>*) ((source_window)); GType __t = ((terminal_window_get_type (<br>))); gboolean __r; if (!__inst) __r = (0); else if (__inst-&gt;<br>g_class &amp;&amp; __inst-&gt;g_class-&gt;g_type == __t) __r =<br> (!(0)); else __r = g_type_check_instance_is_a (__inst, __t);<br> __r; })))))) { } else { g_return_if_fail_warning (((gchar*) 0<br>), ((const char*) (__func__)), "TERMINAL_IS_WINDOW (source_window)"<br>); return (((void*)0)); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1347"><td class="num" id="LN1347">1347</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1348"><td class="num" id="LN1348">1348</td><td class="line"> new_window = terminal_app_new_window (terminal_app_get (),</td></tr>
+<tr class="codeline" data-linenumber="1349"><td class="num" id="LN1349">1349</td><td class="line"> gtk_widget_get_screen (<span class='macro'>GTK_WIDGET (source_window)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((source_window)), ((gtk_widget_get_type ()))))))</span></span>));</td></tr>
+<tr class="codeline" data-linenumber="1350"><td class="num" id="LN1350">1350</td><td class="line"> new_priv = new_window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1351"><td class="num" id="LN1351">1351</td><td class="line"> new_priv-&gt;present_on_insert = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1352"><td class="num" id="LN1352">1352</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1353"><td class="num" id="LN1353">1353</td><td class="line"> update_tab_visibility (source_window, -1);</td></tr>
+<tr class="codeline" data-linenumber="1354"><td class="num" id="LN1354">1354</td><td class="line"> update_tab_visibility (new_window, +1);</td></tr>
+<tr class="codeline" data-linenumber="1355"><td class="num" id="LN1355">1355</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1356"><td class="num" id="LN1356">1356</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>GTK_NOTEBOOK (new_priv-&gt;notebook)<span class='macro_popup'>((((GtkNotebook*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((new_priv-&gt;notebook)), ((gtk_notebook_get_type ())))))<br>)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1357"><td class="num" id="LN1357">1357</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1358"><td class="num" id="LN1358">1358</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1359"><td class="num" id="LN1359">1359</td><td class="line"><span class='comment'>/* Terminal screen popup menu handling */</span></td></tr>
+<tr class="codeline" data-linenumber="1360"><td class="num" id="LN1360">1360</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1361"><td class="num" id="LN1361">1361</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1362"><td class="num" id="LN1362">1362</td><td class="line">popup_open_hyperlink_callback (GtkAction *action,</td></tr>
+<tr class="codeline" data-linenumber="1363"><td class="num" id="LN1363">1363</td><td class="line"> TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="1364"><td class="num" id="LN1364">1364</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1365"><td class="num" id="LN1365">1365</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1366"><td class="num" id="LN1366">1366</td><td class="line"> TerminalScreenPopupInfo *info = priv-&gt;popup_info;</td></tr>
+<tr class="codeline" data-linenumber="1367"><td class="num" id="LN1367">1367</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1368"><td class="num" id="LN1368">1368</td><td class="line"> <span class='keyword'>if</span> (info == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1369"><td class="num" id="LN1369">1369</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1370"><td class="num" id="LN1370">1370</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1371"><td class="num" id="LN1371">1371</td><td class="line"> terminal_util_open_url (<span class='macro'>GTK_WIDGET (window)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_widget_get_type ()))))))</span></span>, info-&gt;hyperlink, FLAVOR_AS_IS,</td></tr>
+<tr class="codeline" data-linenumber="1372"><td class="num" id="LN1372">1372</td><td class="line"> gtk_get_current_event_time ());</td></tr>
+<tr class="codeline" data-linenumber="1373"><td class="num" id="LN1373">1373</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1374"><td class="num" id="LN1374">1374</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1375"><td class="num" id="LN1375">1375</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1376"><td class="num" id="LN1376">1376</td><td class="line">popup_copy_hyperlink_callback (GtkAction *action,</td></tr>
+<tr class="codeline" data-linenumber="1377"><td class="num" id="LN1377">1377</td><td class="line"> TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="1378"><td class="num" id="LN1378">1378</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1379"><td class="num" id="LN1379">1379</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1380"><td class="num" id="LN1380">1380</td><td class="line"> TerminalScreenPopupInfo *info = priv-&gt;popup_info;</td></tr>
+<tr class="codeline" data-linenumber="1381"><td class="num" id="LN1381">1381</td><td class="line"> GtkClipboard *clipboard;</td></tr>
+<tr class="codeline" data-linenumber="1382"><td class="num" id="LN1382">1382</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1383"><td class="num" id="LN1383">1383</td><td class="line"> <span class='keyword'>if</span> (info == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1384"><td class="num" id="LN1384">1384</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1385"><td class="num" id="LN1385">1385</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1386"><td class="num" id="LN1386">1386</td><td class="line"> <span class='keyword'>if</span> (info-&gt;hyperlink == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1387"><td class="num" id="LN1387">1387</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1388"><td class="num" id="LN1388">1388</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1389"><td class="num" id="LN1389">1389</td><td class="line"> clipboard = gtk_widget_get_clipboard (<span class='macro'>GTK_WIDGET (window)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_widget_get_type ()))))))</span></span>, <span class='macro'>GDK_SELECTION_CLIPBOARD<span class='macro_popup'>((GdkAtom)((gpointer) (gulong) (69)))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1390"><td class="num" id="LN1390">1390</td><td class="line"> gtk_clipboard_set_text (clipboard, info-&gt;hyperlink, -1);</td></tr>
+<tr class="codeline" data-linenumber="1391"><td class="num" id="LN1391">1391</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1392"><td class="num" id="LN1392">1392</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1393"><td class="num" id="LN1393">1393</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1394"><td class="num" id="LN1394">1394</td><td class="line">popup_open_url_callback (GtkAction *action,</td></tr>
+<tr class="codeline" data-linenumber="1395"><td class="num" id="LN1395">1395</td><td class="line"> TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="1396"><td class="num" id="LN1396">1396</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1397"><td class="num" id="LN1397">1397</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1398"><td class="num" id="LN1398">1398</td><td class="line"> TerminalScreenPopupInfo *info = priv-&gt;popup_info;</td></tr>
+<tr class="codeline" data-linenumber="1399"><td class="num" id="LN1399">1399</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1400"><td class="num" id="LN1400">1400</td><td class="line"> <span class='keyword'>if</span> (info == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1401"><td class="num" id="LN1401">1401</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1402"><td class="num" id="LN1402">1402</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1403"><td class="num" id="LN1403">1403</td><td class="line"> terminal_util_open_url (<span class='macro'>GTK_WIDGET (window)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_widget_get_type ()))))))</span></span>, info-&gt;url, info-&gt;flavor,</td></tr>
+<tr class="codeline" data-linenumber="1404"><td class="num" id="LN1404">1404</td><td class="line"> gtk_get_current_event_time ());</td></tr>
+<tr class="codeline" data-linenumber="1405"><td class="num" id="LN1405">1405</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1406"><td class="num" id="LN1406">1406</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1407"><td class="num" id="LN1407">1407</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1408"><td class="num" id="LN1408">1408</td><td class="line">popup_copy_url_callback (GtkAction *action,</td></tr>
+<tr class="codeline" data-linenumber="1409"><td class="num" id="LN1409">1409</td><td class="line"> TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="1410"><td class="num" id="LN1410">1410</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1411"><td class="num" id="LN1411">1411</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1412"><td class="num" id="LN1412">1412</td><td class="line"> TerminalScreenPopupInfo *info = priv-&gt;popup_info;</td></tr>
+<tr class="codeline" data-linenumber="1413"><td class="num" id="LN1413">1413</td><td class="line"> GtkClipboard *clipboard;</td></tr>
+<tr class="codeline" data-linenumber="1414"><td class="num" id="LN1414">1414</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1415"><td class="num" id="LN1415">1415</td><td class="line"> <span class='keyword'>if</span> (info == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1416"><td class="num" id="LN1416">1416</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1417"><td class="num" id="LN1417">1417</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1418"><td class="num" id="LN1418">1418</td><td class="line"> <span class='keyword'>if</span> (info-&gt;url == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1419"><td class="num" id="LN1419">1419</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1420"><td class="num" id="LN1420">1420</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1421"><td class="num" id="LN1421">1421</td><td class="line"> clipboard = gtk_widget_get_clipboard (<span class='macro'>GTK_WIDGET (window)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_widget_get_type ()))))))</span></span>, <span class='macro'>GDK_SELECTION_CLIPBOARD<span class='macro_popup'>((GdkAtom)((gpointer) (gulong) (69)))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1422"><td class="num" id="LN1422">1422</td><td class="line"> gtk_clipboard_set_text (clipboard, info-&gt;url, -1);</td></tr>
+<tr class="codeline" data-linenumber="1423"><td class="num" id="LN1423">1423</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1424"><td class="num" id="LN1424">1424</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1425"><td class="num" id="LN1425">1425</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1426"><td class="num" id="LN1426">1426</td><td class="line">popup_leave_fullscreen_callback (GtkAction *action,</td></tr>
+<tr class="codeline" data-linenumber="1427"><td class="num" id="LN1427">1427</td><td class="line"> TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="1428"><td class="num" id="LN1428">1428</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1429"><td class="num" id="LN1429">1429</td><td class="line"> gtk_window_unfullscreen (<span class='macro'>GTK_WINDOW (window)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_window_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1430"><td class="num" id="LN1430">1430</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1431"><td class="num" id="LN1431">1431</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1432"><td class="num" id="LN1432">1432</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1433"><td class="num" id="LN1433">1433</td><td class="line">remove_popup_info (TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="1434"><td class="num" id="LN1434">1434</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1435"><td class="num" id="LN1435">1435</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1436"><td class="num" id="LN1436">1436</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1437"><td class="num" id="LN1437">1437</td><td class="line"> <span class='keyword'>if</span> (priv-&gt;remove_popup_info_idle != 0)</td></tr>
+<tr class="codeline" data-linenumber="1438"><td class="num" id="LN1438">1438</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1439"><td class="num" id="LN1439">1439</td><td class="line"> g_source_remove (priv-&gt;remove_popup_info_idle);</td></tr>
+<tr class="codeline" data-linenumber="1440"><td class="num" id="LN1440">1440</td><td class="line"> priv-&gt;remove_popup_info_idle = 0;</td></tr>
+<tr class="codeline" data-linenumber="1441"><td class="num" id="LN1441">1441</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1442"><td class="num" id="LN1442">1442</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1443"><td class="num" id="LN1443">1443</td><td class="line"> <span class='keyword'>if</span> (priv-&gt;popup_info != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1444"><td class="num" id="LN1444">1444</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1445"><td class="num" id="LN1445">1445</td><td class="line"> terminal_screen_popup_info_unref (priv-&gt;popup_info);</td></tr>
+<tr class="codeline" data-linenumber="1446"><td class="num" id="LN1446">1446</td><td class="line"> priv-&gt;popup_info = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1447"><td class="num" id="LN1447">1447</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1448"><td class="num" id="LN1448">1448</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1449"><td class="num" id="LN1449">1449</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1450"><td class="num" id="LN1450">1450</td><td class="line"><span class='keyword'>static</span> gboolean</td></tr>
+<tr class="codeline" data-linenumber="1451"><td class="num" id="LN1451">1451</td><td class="line">idle_remove_popup_info (TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="1452"><td class="num" id="LN1452">1452</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1453"><td class="num" id="LN1453">1453</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1454"><td class="num" id="LN1454">1454</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1455"><td class="num" id="LN1455">1455</td><td class="line"> priv-&gt;remove_popup_info_idle = 0;</td></tr>
+<tr class="codeline" data-linenumber="1456"><td class="num" id="LN1456">1456</td><td class="line"> remove_popup_info (window);</td></tr>
+<tr class="codeline" data-linenumber="1457"><td class="num" id="LN1457">1457</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1458"><td class="num" id="LN1458">1458</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1459"><td class="num" id="LN1459">1459</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1460"><td class="num" id="LN1460">1460</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1461"><td class="num" id="LN1461">1461</td><td class="line">unset_popup_info (TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="1462"><td class="num" id="LN1462">1462</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1463"><td class="num" id="LN1463">1463</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1464"><td class="num" id="LN1464">1464</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1465"><td class="num" id="LN1465">1465</td><td class="line"> <span class='comment'>/* Unref the event from idle since we still need it</span></td></tr>
+<tr class="codeline" data-linenumber="1466"><td class="num" id="LN1466">1466</td><td class="line"> <span class='comment'>* from the action callbacks which will run before idle.</span></td></tr>
+<tr class="codeline" data-linenumber="1467"><td class="num" id="LN1467">1467</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="1468"><td class="num" id="LN1468">1468</td><td class="line"> <span class='keyword'>if</span> (priv-&gt;remove_popup_info_idle == 0 &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="1469"><td class="num" id="LN1469">1469</td><td class="line"> priv-&gt;popup_info != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1470"><td class="num" id="LN1470">1470</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1471"><td class="num" id="LN1471">1471</td><td class="line"> priv-&gt;remove_popup_info_idle =</td></tr>
+<tr class="codeline" data-linenumber="1472"><td class="num" id="LN1472">1472</td><td class="line"> g_idle_add ((GSourceFunc) idle_remove_popup_info, window);</td></tr>
+<tr class="codeline" data-linenumber="1473"><td class="num" id="LN1473">1473</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1474"><td class="num" id="LN1474">1474</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1475"><td class="num" id="LN1475">1475</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1476"><td class="num" id="LN1476">1476</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1477"><td class="num" id="LN1477">1477</td><td class="line">popup_menu_deactivate_callback (GtkWidget *popup,</td></tr>
+<tr class="codeline" data-linenumber="1478"><td class="num" id="LN1478">1478</td><td class="line"> TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="1479"><td class="num" id="LN1479">1479</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1480"><td class="num" id="LN1480">1480</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1481"><td class="num" id="LN1481">1481</td><td class="line"> GtkWidget *im_menu_item;</td></tr>
+<tr class="codeline" data-linenumber="1482"><td class="num" id="LN1482">1482</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1483"><td class="num" id="LN1483">1483</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func<span class='macro_popup'>g_signal_handlers_disconnect_matched ((popup), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (popup_menu_deactivate_callback))), (window<br>))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1484"><td class="num" id="LN1484">1484</td><td class="line"> <span class='macro'>(popup, G_CALLBACK (popup_menu_deactivate_callback), window)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((popup), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (popup_menu_deactivate_callback))), (window<br>))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1485"><td class="num" id="LN1485">1485</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1486"><td class="num" id="LN1486">1486</td><td class="line"> im_menu_item = gtk_ui_manager_get_widget (priv-&gt;ui_manager,</td></tr>
+<tr class="codeline" data-linenumber="1487"><td class="num" id="LN1487">1487</td><td class="line"> <span class='string_literal'>"/Popup/PopupInputMethods"</span>);</td></tr>
+<tr class="codeline" data-linenumber="1488"><td class="num" id="LN1488">1488</td><td class="line"> gtk_menu_item_set_submenu (<span class='macro'>GTK_MENU_ITEM (im_menu_item)<span class='macro_popup'>((((GtkMenuItem*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((im_menu_item)), ((gtk_menu_item_get_type ()))))))</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1489"><td class="num" id="LN1489">1489</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1490"><td class="num" id="LN1490">1490</td><td class="line"> unset_popup_info (window);</td></tr>
+<tr class="codeline" data-linenumber="1491"><td class="num" id="LN1491">1491</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1492"><td class="num" id="LN1492">1492</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1493"><td class="num" id="LN1493">1493</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1494"><td class="num" id="LN1494">1494</td><td class="line">popup_clipboard_targets_received_cb (GtkClipboard *clipboard,</td></tr>
+<tr class="codeline" data-linenumber="1495"><td class="num" id="LN1495">1495</td><td class="line"> GdkAtom *targets,</td></tr>
+<tr class="codeline" data-linenumber="1496"><td class="num" id="LN1496">1496</td><td class="line"> <span class='keyword'>int</span> n_targets,</td></tr>
+<tr class="codeline" data-linenumber="1497"><td class="num" id="LN1497">1497</td><td class="line"> TerminalScreenPopupInfo *info)</td></tr>
+<tr class="codeline" data-linenumber="1498"><td class="num" id="LN1498">1498</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1499"><td class="num" id="LN1499">1499</td><td class="line"> TerminalWindow *window = info-&gt;window;</td></tr>
+<tr class="codeline" data-linenumber="1500"><td class="num" id="LN1500">1500</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1501"><td class="num" id="LN1501">1501</td><td class="line"> TerminalScreen *screen = info-&gt;screen;</td></tr>
+<tr class="codeline" data-linenumber="1502"><td class="num" id="LN1502">1502</td><td class="line"> GtkWidget *popup_menu;</td></tr>
+<tr class="codeline" data-linenumber="1503"><td class="num" id="LN1503">1503</td><td class="line"> GtkAction *action;</td></tr>
+<tr class="codeline" data-linenumber="1504"><td class="num" id="LN1504">1504</td><td class="line"> gboolean can_paste, can_paste_uris, show_hyperlink, show_link, show_email_link, show_call_link, show_input_method_menu;</td></tr>
+<tr class="codeline" data-linenumber="1505"><td class="num" id="LN1505">1505</td><td class="line"> <span class='keyword'>int</span> n_pages;</td></tr>
+<tr class="codeline" data-linenumber="1506"><td class="num" id="LN1506">1506</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1507"><td class="num" id="LN1507">1507</td><td class="line"> <span class='keyword'>if</span> (!gtk_widget_get_realized (<span class='macro'>GTK_WIDGET (screen)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((screen)), ((gtk_widget_get_type ()))))))</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="1508"><td class="num" id="LN1508">1508</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1509"><td class="num" id="LN1509">1509</td><td class="line"> terminal_screen_popup_info_unref (info);</td></tr>
+<tr class="codeline" data-linenumber="1510"><td class="num" id="LN1510">1510</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1511"><td class="num" id="LN1511">1511</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1512"><td class="num" id="LN1512">1512</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1513"><td class="num" id="LN1513">1513</td><td class="line"> <span class='comment'>/* Now we know that the screen is realized, we know that the window is still alive */</span></td></tr>
+<tr class="codeline" data-linenumber="1514"><td class="num" id="LN1514">1514</td><td class="line"> remove_popup_info (window);</td></tr>
+<tr class="codeline" data-linenumber="1515"><td class="num" id="LN1515">1515</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1516"><td class="num" id="LN1516">1516</td><td class="line"> priv-&gt;popup_info = info; <span class='comment'>/* adopt the ref added when requesting the clipboard */</span></td></tr>
+<tr class="codeline" data-linenumber="1517"><td class="num" id="LN1517">1517</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1518"><td class="num" id="LN1518">1518</td><td class="line"> n_pages = gtk_notebook_get_n_pages (<span class='macro'>GTK_NOTEBOOK (priv-&gt;notebook)<span class='macro_popup'>((((GtkNotebook*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((priv-&gt;notebook)), ((gtk_notebook_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1519"><td class="num" id="LN1519">1519</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1520"><td class="num" id="LN1520">1520</td><td class="line"> can_paste = targets != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span> &amp;&amp; gtk_targets_include_text (targets, n_targets);</td></tr>
+<tr class="codeline" data-linenumber="1521"><td class="num" id="LN1521">1521</td><td class="line"> can_paste_uris = targets != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span> &amp;&amp; gtk_targets_include_uri (targets, n_targets);</td></tr>
+<tr class="codeline" data-linenumber="1522"><td class="num" id="LN1522">1522</td><td class="line"> show_hyperlink = info-&gt;hyperlink != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1523"><td class="num" id="LN1523">1523</td><td class="line"> show_link = !show_hyperlink &amp;&amp; info-&gt;url != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span> &amp;&amp; (info-&gt;flavor == FLAVOR_AS_IS || info-&gt;flavor == FLAVOR_DEFAULT_TO_HTTP);</td></tr>
+<tr class="codeline" data-linenumber="1524"><td class="num" id="LN1524">1524</td><td class="line"> show_email_link = !show_hyperlink &amp;&amp; info-&gt;url != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span> &amp;&amp; info-&gt;flavor == FLAVOR_EMAIL;</td></tr>
+<tr class="codeline" data-linenumber="1525"><td class="num" id="LN1525">1525</td><td class="line"> show_call_link = !show_hyperlink &amp;&amp; info-&gt;url != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span> &amp;&amp; info-&gt;flavor == FLAVOR_VOIP_CALL;</td></tr>
+<tr class="codeline" data-linenumber="1526"><td class="num" id="LN1526">1526</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1527"><td class="num" id="LN1527">1527</td><td class="line"> <span class='macro'>G_GNUC_BEGIN_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic push
+ clang diagnostic ignored "-Wdeprecated-declarations"<br>
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1528"><td class="num" id="LN1528">1528</td><td class="line"> action = gtk_action_group_get_action (priv-&gt;action_group, <span class='string_literal'>"PopupOpenHyperlink"</span>);</td></tr>
+<tr class="codeline" data-linenumber="1529"><td class="num" id="LN1529">1529</td><td class="line"> gtk_action_set_visible (action, show_hyperlink);</td></tr>
+<tr class="codeline" data-linenumber="1530"><td class="num" id="LN1530">1530</td><td class="line"> action = gtk_action_group_get_action (priv-&gt;action_group, <span class='string_literal'>"PopupCopyHyperlinkAddress"</span>);</td></tr>
+<tr class="codeline" data-linenumber="1531"><td class="num" id="LN1531">1531</td><td class="line"> gtk_action_set_visible (action, show_hyperlink);</td></tr>
+<tr class="codeline" data-linenumber="1532"><td class="num" id="LN1532">1532</td><td class="line"> action = gtk_action_group_get_action (priv-&gt;action_group, <span class='string_literal'>"PopupSendEmail"</span>);</td></tr>
+<tr class="codeline" data-linenumber="1533"><td class="num" id="LN1533">1533</td><td class="line"> gtk_action_set_visible (action, show_email_link);</td></tr>
+<tr class="codeline" data-linenumber="1534"><td class="num" id="LN1534">1534</td><td class="line"> action = gtk_action_group_get_action (priv-&gt;action_group, <span class='string_literal'>"PopupCopyEmailAddress"</span>);</td></tr>
+<tr class="codeline" data-linenumber="1535"><td class="num" id="LN1535">1535</td><td class="line"> gtk_action_set_visible (action, show_email_link);</td></tr>
+<tr class="codeline" data-linenumber="1536"><td class="num" id="LN1536">1536</td><td class="line"> action = gtk_action_group_get_action (priv-&gt;action_group, <span class='string_literal'>"PopupCall"</span>);</td></tr>
+<tr class="codeline" data-linenumber="1537"><td class="num" id="LN1537">1537</td><td class="line"> gtk_action_set_visible (action, show_call_link);</td></tr>
+<tr class="codeline" data-linenumber="1538"><td class="num" id="LN1538">1538</td><td class="line"> action = gtk_action_group_get_action (priv-&gt;action_group, <span class='string_literal'>"PopupCopyCallAddress"</span>);</td></tr>
+<tr class="codeline" data-linenumber="1539"><td class="num" id="LN1539">1539</td><td class="line"> gtk_action_set_visible (action, show_call_link);</td></tr>
+<tr class="codeline" data-linenumber="1540"><td class="num" id="LN1540">1540</td><td class="line"> action = gtk_action_group_get_action (priv-&gt;action_group, <span class='string_literal'>"PopupOpenLink"</span>);</td></tr>
+<tr class="codeline" data-linenumber="1541"><td class="num" id="LN1541">1541</td><td class="line"> gtk_action_set_visible (action, show_link);</td></tr>
+<tr class="codeline" data-linenumber="1542"><td class="num" id="LN1542">1542</td><td class="line"> action = gtk_action_group_get_action (priv-&gt;action_group, <span class='string_literal'>"PopupCopyLinkAddress"</span>);</td></tr>
+<tr class="codeline" data-linenumber="1543"><td class="num" id="LN1543">1543</td><td class="line"> gtk_action_set_visible (action, show_link);</td></tr>
+<tr class="codeline" data-linenumber="1544"><td class="num" id="LN1544">1544</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1545"><td class="num" id="LN1545">1545</td><td class="line"> action = gtk_action_group_get_action (priv-&gt;action_group, <span class='string_literal'>"PopupCloseWindow"</span>);</td></tr>
+<tr class="codeline" data-linenumber="1546"><td class="num" id="LN1546">1546</td><td class="line"> gtk_action_set_visible (action, n_pages &lt;= 1);</td></tr>
+<tr class="codeline" data-linenumber="1547"><td class="num" id="LN1547">1547</td><td class="line"> action = gtk_action_group_get_action (priv-&gt;action_group, <span class='string_literal'>"PopupCloseTab"</span>);</td></tr>
+<tr class="codeline" data-linenumber="1548"><td class="num" id="LN1548">1548</td><td class="line"> gtk_action_set_visible (action, n_pages &gt; 1);</td></tr>
+<tr class="codeline" data-linenumber="1549"><td class="num" id="LN1549">1549</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1550"><td class="num" id="LN1550">1550</td><td class="line"> action = gtk_action_group_get_action (priv-&gt;action_group, <span class='string_literal'>"PopupCopy"</span>);</td></tr>
+<tr class="codeline" data-linenumber="1551"><td class="num" id="LN1551">1551</td><td class="line"> gtk_action_set_sensitive (action, vte_terminal_get_has_selection (<span class='macro'>VTE_TERMINAL (screen)<span class='macro_popup'>((((VteTerminal*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((screen)), ((vte_terminal_get_type()))))))</span></span>));</td></tr>
+<tr class="codeline" data-linenumber="1552"><td class="num" id="LN1552">1552</td><td class="line"> action = gtk_action_group_get_action (priv-&gt;action_group, <span class='string_literal'>"PopupPaste"</span>);</td></tr>
+<tr class="codeline" data-linenumber="1553"><td class="num" id="LN1553">1553</td><td class="line"> gtk_action_set_sensitive (action, can_paste);</td></tr>
+<tr class="codeline" data-linenumber="1554"><td class="num" id="LN1554">1554</td><td class="line"> action = gtk_action_group_get_action (priv-&gt;action_group, <span class='string_literal'>"PopupPasteURIPaths"</span>);</td></tr>
+<tr class="codeline" data-linenumber="1555"><td class="num" id="LN1555">1555</td><td class="line"> gtk_action_set_visible (action, can_paste_uris);</td></tr>
+<tr class="codeline" data-linenumber="1556"><td class="num" id="LN1556">1556</td><td class="line"> <span class='macro'>G_GNUC_END_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic pop
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1557"><td class="num" id="LN1557">1557</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1558"><td class="num" id="LN1558">1558</td><td class="line"> g_object_get (gtk_widget_get_settings (<span class='macro'>GTK_WIDGET (window)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_widget_get_type ()))))))</span></span>),</td></tr>
+<tr class="codeline" data-linenumber="1559"><td class="num" id="LN1559">1559</td><td class="line"> <span class='string_literal'>"gtk-show-input-method-menu"</span>, &amp;show_input_method_menu,</td></tr>
+<tr class="codeline" data-linenumber="1560"><td class="num" id="LN1560">1560</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1561"><td class="num" id="LN1561">1561</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1562"><td class="num" id="LN1562">1562</td><td class="line"> <span class='macro'>G_GNUC_BEGIN_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic push
+ clang diagnostic ignored "-Wdeprecated-declarations"<br>
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1563"><td class="num" id="LN1563">1563</td><td class="line"> action = gtk_action_group_get_action (priv-&gt;action_group, <span class='string_literal'>"PopupInputMethods"</span>);</td></tr>
+<tr class="codeline" data-linenumber="1564"><td class="num" id="LN1564">1564</td><td class="line"> gtk_action_set_visible (action, show_input_method_menu);</td></tr>
+<tr class="codeline" data-linenumber="1565"><td class="num" id="LN1565">1565</td><td class="line"> <span class='macro'>G_GNUC_END_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic pop
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1566"><td class="num" id="LN1566">1566</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1567"><td class="num" id="LN1567">1567</td><td class="line"> popup_menu = gtk_ui_manager_get_widget (priv-&gt;ui_manager, <span class='string_literal'>"/Popup"</span>);</td></tr>
+<tr class="codeline" data-linenumber="1568"><td class="num" id="LN1568">1568</td><td class="line"> <span class='macro'>g_signal_connect (popup_menu, <span class='string_literal'>"deactivate"</span>,<span class='macro_popup'>g_signal_connect_data ((popup_menu), ("deactivate"), (((GCallback<br>) (popup_menu_deactivate_callback))), (window), ((void*)0), (<br>GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1569"><td class="num" id="LN1569">1569</td><td class="line"> <span class='macro'>G_CALLBACK (popup_menu_deactivate_callback), window)<span class='macro_popup'>g_signal_connect_data ((popup_menu), ("deactivate"), (((GCallback<br>) (popup_menu_deactivate_callback))), (window), ((void*)0), (<br>GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1570"><td class="num" id="LN1570">1570</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1571"><td class="num" id="LN1571">1571</td><td class="line"> <span class='comment'>/* Pseudo activation of the popup menu's action */</span></td></tr>
+<tr class="codeline" data-linenumber="1572"><td class="num" id="LN1572">1572</td><td class="line"> <span class='macro'>G_GNUC_BEGIN_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic push
+ clang diagnostic ignored "-Wdeprecated-declarations"<br>
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1573"><td class="num" id="LN1573">1573</td><td class="line"> action = gtk_action_group_get_action (priv-&gt;action_group, <span class='string_literal'>"Popup"</span>);</td></tr>
+<tr class="codeline" data-linenumber="1574"><td class="num" id="LN1574">1574</td><td class="line"> gtk_action_activate (action);</td></tr>
+<tr class="codeline" data-linenumber="1575"><td class="num" id="LN1575">1575</td><td class="line"> <span class='macro'>G_GNUC_END_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic pop
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1576"><td class="num" id="LN1576">1576</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1577"><td class="num" id="LN1577">1577</td><td class="line"> <span class='keyword'>if</span> (info-&gt;button == 0)</td></tr>
+<tr class="codeline" data-linenumber="1578"><td class="num" id="LN1578">1578</td><td class="line"> gtk_menu_shell_select_first (<span class='macro'>GTK_MENU_SHELL (popup_menu)<span class='macro_popup'>((((GtkMenuShell*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((popup_menu)), ((gtk_menu_shell_get_type ()))))))</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1579"><td class="num" id="LN1579">1579</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1580"><td class="num" id="LN1580">1580</td><td class="line"> <span class='keyword'>if</span> (!gtk_menu_get_attach_widget (<span class='macro'>GTK_MENU (popup_menu)<span class='macro_popup'>((((GtkMenu*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((popup_menu)), ((gtk_menu_get_type ()))))))</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="1581"><td class="num" id="LN1581">1581</td><td class="line"> gtk_menu_attach_to_widget (<span class='macro'>GTK_MENU (popup_menu)<span class='macro_popup'>((((GtkMenu*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((popup_menu)), ((gtk_menu_get_type ()))))))</span></span>,<span class='macro'>GTK_WIDGET (screen)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((screen)), ((gtk_widget_get_type ()))))))</span></span>,<span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1582"><td class="num" id="LN1582">1582</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1583"><td class="num" id="LN1583">1583</td><td class="line"> gtk_menu_popup (<span class='macro'>GTK_MENU (popup_menu)<span class='macro_popup'>((((GtkMenu*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((popup_menu)), ((gtk_menu_get_type ()))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1584"><td class="num" id="LN1584">1584</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1585"><td class="num" id="LN1585">1585</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1586"><td class="num" id="LN1586">1586</td><td class="line"> info-&gt;button,</td></tr>
+<tr class="codeline" data-linenumber="1587"><td class="num" id="LN1587">1587</td><td class="line"> info-&gt;timestamp);</td></tr>
+<tr class="codeline" data-linenumber="1588"><td class="num" id="LN1588">1588</td><td class="line"> gtk_style_context_add_class(gtk_widget_get_style_context (popup_menu),</td></tr>
+<tr class="codeline" data-linenumber="1589"><td class="num" id="LN1589">1589</td><td class="line"> <span class='macro'>GTK_STYLE_CLASS_CONTEXT_MENU<span class='macro_popup'>"context-menu"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1590"><td class="num" id="LN1590">1590</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1591"><td class="num" id="LN1591">1591</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1592"><td class="num" id="LN1592">1592</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1593"><td class="num" id="LN1593">1593</td><td class="line">screen_show_popup_menu_callback (TerminalScreen *screen,</td></tr>
+<tr class="codeline" data-linenumber="1594"><td class="num" id="LN1594">1594</td><td class="line"> TerminalScreenPopupInfo *info,</td></tr>
+<tr class="codeline" data-linenumber="1595"><td class="num" id="LN1595">1595</td><td class="line"> TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="1596"><td class="num" id="LN1596">1596</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1597"><td class="num" id="LN1597">1597</td><td class="line"> GtkClipboard *clipboard;</td></tr>
+<tr class="codeline" data-linenumber="1598"><td class="num" id="LN1598">1598</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1599"><td class="num" id="LN1599">1599</td><td class="line"> <span class='macro'>g_return_if_fail (info-&gt;window == window)<span class='macro_popup'>do { if ((info-&gt;window == window)) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "info-&gt;window == window"<br>); return; } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1600"><td class="num" id="LN1600">1600</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1601"><td class="num" id="LN1601">1601</td><td class="line"> clipboard = gtk_widget_get_clipboard (<span class='macro'>GTK_WIDGET (window)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_widget_get_type ()))))))</span></span>, <span class='macro'>GDK_SELECTION_CLIPBOARD<span class='macro_popup'>((GdkAtom)((gpointer) (gulong) (69)))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1602"><td class="num" id="LN1602">1602</td><td class="line"> gtk_clipboard_request_targets (clipboard,</td></tr>
+<tr class="codeline" data-linenumber="1603"><td class="num" id="LN1603">1603</td><td class="line"> (GtkClipboardTargetsReceivedFunc) popup_clipboard_targets_received_cb,</td></tr>
+<tr class="codeline" data-linenumber="1604"><td class="num" id="LN1604">1604</td><td class="line"> terminal_screen_popup_info_ref (info));</td></tr>
+<tr class="codeline" data-linenumber="1605"><td class="num" id="LN1605">1605</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1606"><td class="num" id="LN1606">1606</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1607"><td class="num" id="LN1607">1607</td><td class="line"><span class='keyword'>static</span> gboolean</td></tr>
+<tr class="codeline" data-linenumber="1608"><td class="num" id="LN1608">1608</td><td class="line">screen_match_clicked_cb (TerminalScreen *screen,</td></tr>
+<tr class="codeline" data-linenumber="1609"><td class="num" id="LN1609">1609</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *url,</td></tr>
+<tr class="codeline" data-linenumber="1610"><td class="num" id="LN1610">1610</td><td class="line"> <span class='keyword'>int</span> url_flavor,</td></tr>
+<tr class="codeline" data-linenumber="1611"><td class="num" id="LN1611">1611</td><td class="line"> guint state,</td></tr>
+<tr class="codeline" data-linenumber="1612"><td class="num" id="LN1612">1612</td><td class="line"> TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="1613"><td class="num" id="LN1613">1613</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1614"><td class="num" id="LN1614">1614</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1615"><td class="num" id="LN1615">1615</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1616"><td class="num" id="LN1616">1616</td><td class="line"> <span class='keyword'>if</span> (screen != priv-&gt;active_screen)</td></tr>
+<tr class="codeline" data-linenumber="1617"><td class="num" id="LN1617">1617</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1618"><td class="num" id="LN1618">1618</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1619"><td class="num" id="LN1619">1619</td><td class="line"> <span class='keyword'>switch</span> (url_flavor)</td></tr>
+<tr class="codeline" data-linenumber="1620"><td class="num" id="LN1620">1620</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1621"><td class="num" id="LN1621">1621</td><td class="line"><span class='directive'>#ifdef <span class='macro'>ENABLE_SKEY<span class='macro_popup'>1</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="1622"><td class="num" id="LN1622">1622</td><td class="line"> <span class='keyword'>case</span> FLAVOR_SKEY:</td></tr>
+<tr class="codeline" data-linenumber="1623"><td class="num" id="LN1623">1623</td><td class="line"> terminal_skey_do_popup (<span class='macro'>GTK_WINDOW (window)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_window_get_type ()))))))</span></span>, screen, url);</td></tr>
+<tr class="codeline" data-linenumber="1624"><td class="num" id="LN1624">1624</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1625"><td class="num" id="LN1625">1625</td><td class="line"><span class='directive'>#endif</span></td></tr>
+<tr class="codeline" data-linenumber="1626"><td class="num" id="LN1626">1626</td><td class="line"> <span class='keyword'>default</span>:</td></tr>
+<tr class="codeline" data-linenumber="1627"><td class="num" id="LN1627">1627</td><td class="line"> gtk_widget_grab_focus (<span class='macro'>GTK_WIDGET (screen)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((screen)), ((gtk_widget_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1628"><td class="num" id="LN1628">1628</td><td class="line"> terminal_util_open_url (<span class='macro'>GTK_WIDGET (window)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_widget_get_type ()))))))</span></span>, url, url_flavor,</td></tr>
+<tr class="codeline" data-linenumber="1629"><td class="num" id="LN1629">1629</td><td class="line"> gtk_get_current_event_time ());</td></tr>
+<tr class="codeline" data-linenumber="1630"><td class="num" id="LN1630">1630</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="1631"><td class="num" id="LN1631">1631</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1632"><td class="num" id="LN1632">1632</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1633"><td class="num" id="LN1633">1633</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1634"><td class="num" id="LN1634">1634</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1635"><td class="num" id="LN1635">1635</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1636"><td class="num" id="LN1636">1636</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1637"><td class="num" id="LN1637">1637</td><td class="line">screen_close_cb (TerminalScreen *screen,</td></tr>
+<tr class="codeline" data-linenumber="1638"><td class="num" id="LN1638">1638</td><td class="line"> TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="1639"><td class="num" id="LN1639">1639</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1640"><td class="num" id="LN1640">1640</td><td class="line"> terminal_window_remove_screen (window, screen);</td></tr>
+<tr class="codeline" data-linenumber="1641"><td class="num" id="LN1641">1641</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1642"><td class="num" id="LN1642">1642</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1643"><td class="num" id="LN1643">1643</td><td class="line"><span class='keyword'>static</span> gboolean</td></tr>
+<tr class="codeline" data-linenumber="1644"><td class="num" id="LN1644">1644</td><td class="line">terminal_window_accel_activate_cb (GtkAccelGroup *accel_group,</td></tr>
+<tr class="codeline" data-linenumber="1645"><td class="num" id="LN1645">1645</td><td class="line"> GObject *acceleratable,</td></tr>
+<tr class="codeline" data-linenumber="1646"><td class="num" id="LN1646">1646</td><td class="line"> guint keyval,</td></tr>
+<tr class="codeline" data-linenumber="1647"><td class="num" id="LN1647">1647</td><td class="line"> GdkModifierType modifier,</td></tr>
+<tr class="codeline" data-linenumber="1648"><td class="num" id="LN1648">1648</td><td class="line"> TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="1649"><td class="num" id="LN1649">1649</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1650"><td class="num" id="LN1650">1650</td><td class="line"> GtkAccelGroupEntry *entries;</td></tr>
+<tr class="codeline" data-linenumber="1651"><td class="num" id="LN1651">1651</td><td class="line"> guint n_entries;</td></tr>
+<tr class="codeline" data-linenumber="1652"><td class="num" id="LN1652">1652</td><td class="line"> gboolean retval = <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1653"><td class="num" id="LN1653">1653</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1654"><td class="num" id="LN1654">1654</td><td class="line"> entries = gtk_accel_group_query (accel_group, keyval, modifier, &amp;n_entries);</td></tr>
+<tr class="codeline" data-linenumber="1655"><td class="num" id="LN1655">1655</td><td class="line"> <span class='keyword'>if</span> (n_entries &gt; 0)</td></tr>
+<tr class="codeline" data-linenumber="1656"><td class="num" id="LN1656">1656</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1657"><td class="num" id="LN1657">1657</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *accel_path;</td></tr>
+<tr class="codeline" data-linenumber="1658"><td class="num" id="LN1658">1658</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1659"><td class="num" id="LN1659">1659</td><td class="line"> accel_path = g_quark_to_string (entries[0].accel_path_quark);</td></tr>
+<tr class="codeline" data-linenumber="1660"><td class="num" id="LN1660">1660</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1661"><td class="num" id="LN1661">1661</td><td class="line"> <span class='keyword'>if</span> (<span class='macro'>g_str_has_prefix (accel_path, <span class='string_literal'>"&lt;Actions&gt;/Main/"</span>)<span class='macro_popup'>(__builtin_constant_p ("&lt;Actions&gt;/Main/")? __extension__<br> ({ const char * const __str = (accel_path); const char * const<br> __prefix = ("&lt;Actions&gt;/Main/"); gboolean __result = (0<br>); if (__str == ((void*)0) || __prefix == ((void*)0)) __result<br> = (g_str_has_prefix) (__str, __prefix); else { const size_t __str_len<br> = strlen (((__str) + !(__str))); const size_t __prefix_len =<br> strlen (((__prefix) + !(__prefix))); if (__str_len &gt;= __prefix_len<br>) __result = memcmp (((__str) + !(__str)), ((__prefix) + !(__prefix<br>)), __prefix_len) == 0; } __result; }) : (g_str_has_prefix) (<br>accel_path, "&lt;Actions&gt;/Main/") )</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1662"><td class="num" id="LN1662">1662</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1663"><td class="num" id="LN1663">1663</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *action_name;</td></tr>
+<tr class="codeline" data-linenumber="1664"><td class="num" id="LN1664">1664</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1665"><td class="num" id="LN1665">1665</td><td class="line"> <span class='comment'>/* We want to always consume these accelerators, even if the corresponding</span></td></tr>
+<tr class="codeline" data-linenumber="1666"><td class="num" id="LN1666">1666</td><td class="line"> <span class='comment'>* action is insensitive, so the corresponding shortcut key escape code</span></td></tr>
+<tr class="codeline" data-linenumber="1667"><td class="num" id="LN1667">1667</td><td class="line"> <span class='comment'>* isn't sent to the terminal. See bug #453193, bug #138609 and bug #559728.</span></td></tr>
+<tr class="codeline" data-linenumber="1668"><td class="num" id="LN1668">1668</td><td class="line"> <span class='comment'>* This also makes tab cycling work, bug #92139. (NOT!)</span></td></tr>
+<tr class="codeline" data-linenumber="1669"><td class="num" id="LN1669">1669</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="1670"><td class="num" id="LN1670">1670</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1671"><td class="num" id="LN1671">1671</td><td class="line"> action_name = <span class='macro'>I_(accel_path + strlen (<span class='string_literal'>"&lt;Actions&gt;/Main/"</span>))<span class='macro_popup'>g_intern_static_string (accel_path + strlen ("&lt;Actions&gt;/Main/"<br>))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1672"><td class="num" id="LN1672">1672</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1673"><td class="num" id="LN1673">1673</td><td class="line"><span class='directive'>#if 0</span></td></tr>
+<tr class="codeline" data-linenumber="1674"><td class="num" id="LN1674">1674</td><td class="line"> <span class='keyword'>if</span> (gtk_notebook_get_n_pages (<span class='macro'>GTK_NOTEBOOK (priv-&gt;notebook)<span class='macro_popup'>((((GtkNotebook*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((priv-&gt;notebook)), ((gtk_notebook_get_type ()))))))</span></span>) &gt; 1 &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="1675"><td class="num" id="LN1675">1675</td><td class="line"> (action_name == <span class='macro'>I_(<span class='string_literal'>"TabsPrevious"</span>)<span class='macro_popup'>g_intern_static_string ("TabsPrevious")</span></span> || action_name == <span class='macro'>I_(<span class='string_literal'>"TabsNext"</span>)<span class='macro_popup'>g_intern_static_string ("TabsNext")</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="1676"><td class="num" id="LN1676">1676</td><td class="line"> retval = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1677"><td class="num" id="LN1677">1677</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="1678"><td class="num" id="LN1678">1678</td><td class="line"><span class='directive'>#endif</span></td></tr>
+<tr class="codeline" data-linenumber="1679"><td class="num" id="LN1679">1679</td><td class="line"> <span class='keyword'>if</span> (action_name == <span class='macro'>I_(<span class='string_literal'>"EditCopy"</span>)<span class='macro_popup'>g_intern_static_string ("EditCopy")</span></span> ||</td></tr>
+<tr class="codeline" data-linenumber="1680"><td class="num" id="LN1680">1680</td><td class="line"> action_name == <span class='macro'>I_(<span class='string_literal'>"PopupCopy"</span>)<span class='macro_popup'>g_intern_static_string ("PopupCopy")</span></span> ||</td></tr>
+<tr class="codeline" data-linenumber="1681"><td class="num" id="LN1681">1681</td><td class="line"> action_name == <span class='macro'>I_(<span class='string_literal'>"EditPaste"</span>)<span class='macro_popup'>g_intern_static_string ("EditPaste")</span></span> ||</td></tr>
+<tr class="codeline" data-linenumber="1682"><td class="num" id="LN1682">1682</td><td class="line"> action_name == <span class='macro'>I_(<span class='string_literal'>"PopupPaste"</span>)<span class='macro_popup'>g_intern_static_string ("PopupPaste")</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1683"><td class="num" id="LN1683">1683</td><td class="line"> retval = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1684"><td class="num" id="LN1684">1684</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1685"><td class="num" id="LN1685">1685</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1686"><td class="num" id="LN1686">1686</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1687"><td class="num" id="LN1687">1687</td><td class="line"> <span class='keyword'>return</span> retval;</td></tr>
+<tr class="codeline" data-linenumber="1688"><td class="num" id="LN1688">1688</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1689"><td class="num" id="LN1689">1689</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1690"><td class="num" id="LN1690">1690</td><td class="line"><span class='comment'>/*****************************************/</span></td></tr>
+<tr class="codeline" data-linenumber="1691"><td class="num" id="LN1691">1691</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1692"><td class="num" id="LN1692">1692</td><td class="line"><span class='directive'>#ifdef MATE_ENABLE_DEBUG</span></td></tr>
+<tr class="codeline" data-linenumber="1693"><td class="num" id="LN1693">1693</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1694"><td class="num" id="LN1694">1694</td><td class="line">terminal_window_size_allocate_cb (GtkWidget *widget,</td></tr>
+<tr class="codeline" data-linenumber="1695"><td class="num" id="LN1695">1695</td><td class="line"> GtkAllocation *allocation)</td></tr>
+<tr class="codeline" data-linenumber="1696"><td class="num" id="LN1696">1696</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1697"><td class="num" id="LN1697">1697</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_GEOMETRY,<span class='macro_popup'>do { if (0) g_printerr("[window %p] size-alloc result %d : %d at (%d, %d)\n"<br>, widget, allocation-&gt;width, allocation-&gt;height, allocation<br>-&gt;x, allocation-&gt;y); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1698"><td class="num" id="LN1698">1698</td><td class="line"> <span class='string_literal'><span class='macro'>"[window %p] size-alloc result %d : %d at (%d, %d)\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("[window %p] size-alloc result %d : %d at (%d, %d)\n"<br>, widget, allocation-&gt;width, allocation-&gt;height, allocation<br>-&gt;x, allocation-&gt;y); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1699"><td class="num" id="LN1699">1699</td><td class="line"> <span class='macro'>widget,<span class='macro_popup'>do { if (0) g_printerr("[window %p] size-alloc result %d : %d at (%d, %d)\n"<br>, widget, allocation-&gt;width, allocation-&gt;height, allocation<br>-&gt;x, allocation-&gt;y); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1700"><td class="num" id="LN1700">1700</td><td class="line"> <span class='macro'>allocation-&gt;width, allocation-&gt;height,<span class='macro_popup'>do { if (0) g_printerr("[window %p] size-alloc result %d : %d at (%d, %d)\n"<br>, widget, allocation-&gt;width, allocation-&gt;height, allocation<br>-&gt;x, allocation-&gt;y); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1701"><td class="num" id="LN1701">1701</td><td class="line"> <span class='macro'>allocation-&gt;x, allocation-&gt;y)<span class='macro_popup'>do { if (0) g_printerr("[window %p] size-alloc result %d : %d at (%d, %d)\n"<br>, widget, allocation-&gt;width, allocation-&gt;height, allocation<br>-&gt;x, allocation-&gt;y); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1702"><td class="num" id="LN1702">1702</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1703"><td class="num" id="LN1703">1703</td><td class="line"><span class='directive'>#endif /* MATE_ENABLE_DEBUG */</span></td></tr>
+<tr class="codeline" data-linenumber="1704"><td class="num" id="LN1704">1704</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1705"><td class="num" id="LN1705">1705</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1706"><td class="num" id="LN1706">1706</td><td class="line">terminal_window_realize (GtkWidget *widget)</td></tr>
+<tr class="codeline" data-linenumber="1707"><td class="num" id="LN1707">1707</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1708"><td class="num" id="LN1708">1708</td><td class="line"> TerminalWindow *window = <span class='macro'>TERMINAL_WINDOW (widget)<span class='macro_popup'>((((TerminalWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((widget)), ((terminal_window_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1709"><td class="num" id="LN1709">1709</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1710"><td class="num" id="LN1710">1710</td><td class="line"><span class='directive'>#if defined(GDK_WINDOWING_X11) || defined(GDK_WINDOWING_WAYLAND)</span></td></tr>
+<tr class="codeline" data-linenumber="1711"><td class="num" id="LN1711">1711</td><td class="line"> GdkScreen *screen;</td></tr>
+<tr class="codeline" data-linenumber="1712"><td class="num" id="LN1712">1712</td><td class="line"> GtkAllocation widget_allocation;</td></tr>
+<tr class="codeline" data-linenumber="1713"><td class="num" id="LN1713">1713</td><td class="line"> GdkVisual *visual;</td></tr>
+<tr class="codeline" data-linenumber="1714"><td class="num" id="LN1714">1714</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1715"><td class="num" id="LN1715">1715</td><td class="line"> gtk_widget_get_allocation (widget, &amp;widget_allocation);</td></tr>
+<tr class="codeline" data-linenumber="1716"><td class="num" id="LN1716">1716</td><td class="line"> screen = gtk_widget_get_screen (<span class='macro'>GTK_WIDGET (window)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_widget_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1717"><td class="num" id="LN1717">1717</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1718"><td class="num" id="LN1718">1718</td><td class="line"> <span class='keyword'>if</span> (gdk_screen_is_composited (screen) &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="1719"><td class="num" id="LN1719">1719</td><td class="line"> (visual = gdk_screen_get_rgba_visual (screen)) != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1720"><td class="num" id="LN1720">1720</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1721"><td class="num" id="LN1721">1721</td><td class="line"> <span class='comment'>/* Set RGBA visual if possible so VTE can use real transparency */</span></td></tr>
+<tr class="codeline" data-linenumber="1722"><td class="num" id="LN1722">1722</td><td class="line"> gtk_widget_set_visual (<span class='macro'>GTK_WIDGET (widget)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((widget)), ((gtk_widget_get_type ()))))))</span></span>, visual);</td></tr>
+<tr class="codeline" data-linenumber="1723"><td class="num" id="LN1723">1723</td><td class="line"> priv-&gt;have_argb_visual = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1724"><td class="num" id="LN1724">1724</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1725"><td class="num" id="LN1725">1725</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="1726"><td class="num" id="LN1726">1726</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1727"><td class="num" id="LN1727">1727</td><td class="line"> gtk_widget_set_visual (<span class='macro'>GTK_WIDGET (window)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_widget_get_type ()))))))</span></span>, gdk_screen_get_system_visual (screen));</td></tr>
+<tr class="codeline" data-linenumber="1728"><td class="num" id="LN1728">1728</td><td class="line"> priv-&gt;have_argb_visual = <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1729"><td class="num" id="LN1729">1729</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1730"><td class="num" id="LN1730">1730</td><td class="line"><span class='directive'>#endif</span></td></tr>
+<tr class="codeline" data-linenumber="1731"><td class="num" id="LN1731">1731</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1732"><td class="num" id="LN1732">1732</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_GEOMETRY,<span class='macro_popup'>do { if (0) g_printerr("[window %p] realize, size %d : %d at (%d, %d)\n"<br>, widget, widget_allocation.width, widget_allocation.height, widget_allocation<br>.x, widget_allocation.y); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1733"><td class="num" id="LN1733">1733</td><td class="line"> <span class='string_literal'><span class='macro'>"[window %p] realize, size %d : %d at (%d, %d)\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("[window %p] realize, size %d : %d at (%d, %d)\n"<br>, widget, widget_allocation.width, widget_allocation.height, widget_allocation<br>.x, widget_allocation.y); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1734"><td class="num" id="LN1734">1734</td><td class="line"> <span class='macro'>widget,<span class='macro_popup'>do { if (0) g_printerr("[window %p] realize, size %d : %d at (%d, %d)\n"<br>, widget, widget_allocation.width, widget_allocation.height, widget_allocation<br>.x, widget_allocation.y); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1735"><td class="num" id="LN1735">1735</td><td class="line"> <span class='macro'>widget_allocation.width, widget_allocation.height,<span class='macro_popup'>do { if (0) g_printerr("[window %p] realize, size %d : %d at (%d, %d)\n"<br>, widget, widget_allocation.width, widget_allocation.height, widget_allocation<br>.x, widget_allocation.y); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1736"><td class="num" id="LN1736">1736</td><td class="line"> <span class='macro'>widget_allocation.x, widget_allocation.y)<span class='macro_popup'>do { if (0) g_printerr("[window %p] realize, size %d : %d at (%d, %d)\n"<br>, widget, widget_allocation.width, widget_allocation.height, widget_allocation<br>.x, widget_allocation.y); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1737"><td class="num" id="LN1737">1737</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1738"><td class="num" id="LN1738">1738</td><td class="line"> <span class='macro'>GTK_WIDGET_CLASS (terminal_window_parent_class)<span class='macro_popup'>((((GtkWidgetClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((terminal_window_parent_class)), ((gtk_widget_get_type ()<br>))))))</span></span>-&gt;realize (widget);</td></tr>
+<tr class="codeline" data-linenumber="1739"><td class="num" id="LN1739">1739</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1740"><td class="num" id="LN1740">1740</td><td class="line"> <span class='comment'>/* Need to do this now since this requires the window to be realized */</span></td></tr>
+<tr class="codeline" data-linenumber="1741"><td class="num" id="LN1741">1741</td><td class="line"> <span class='keyword'>if</span> (priv-&gt;active_screen != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1742"><td class="num" id="LN1742">1742</td><td class="line"> sync_screen_icon_title (priv-&gt;active_screen, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, window);</td></tr>
+<tr class="codeline" data-linenumber="1743"><td class="num" id="LN1743">1743</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1744"><td class="num" id="LN1744">1744</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1745"><td class="num" id="LN1745">1745</td><td class="line"><span class='keyword'>static</span> gboolean</td></tr>
+<tr class="codeline" data-linenumber="1746"><td class="num" id="LN1746">1746</td><td class="line">terminal_window_draw (GtkWidget *widget,</td></tr>
+<tr class="codeline" data-linenumber="1747"><td class="num" id="LN1747">1747</td><td class="line"> cairo_t *cr)</td></tr>
+<tr class="codeline" data-linenumber="1748"><td class="num" id="LN1748">1748</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1749"><td class="num" id="LN1749">1749</td><td class="line"> <span class='keyword'>if</span> (gtk_widget_get_app_paintable(widget))</td></tr>
+<tr class="codeline" data-linenumber="1750"><td class="num" id="LN1750">1750</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1751"><td class="num" id="LN1751">1751</td><td class="line"> GtkAllocation child_allocation;</td></tr>
+<tr class="codeline" data-linenumber="1752"><td class="num" id="LN1752">1752</td><td class="line"> GtkStyleContext *context;</td></tr>
+<tr class="codeline" data-linenumber="1753"><td class="num" id="LN1753">1753</td><td class="line"> <span class='keyword'>int</span> width;</td></tr>
+<tr class="codeline" data-linenumber="1754"><td class="num" id="LN1754">1754</td><td class="line"> <span class='keyword'>int</span> height;</td></tr>
+<tr class="codeline" data-linenumber="1755"><td class="num" id="LN1755">1755</td><td class="line"> GtkWidget *child;</td></tr>
+<tr class="codeline" data-linenumber="1756"><td class="num" id="LN1756">1756</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1757"><td class="num" id="LN1757">1757</td><td class="line"> <span class='comment'>/* Get the *child* allocation, so we don't overwrite window borders */</span></td></tr>
+<tr class="codeline" data-linenumber="1758"><td class="num" id="LN1758">1758</td><td class="line"> child = gtk_bin_get_child (<span class='macro'>GTK_BIN (widget)<span class='macro_popup'>((((GtkBin*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((widget)), ((gtk_bin_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="1759"><td class="num" id="LN1759">1759</td><td class="line"> gtk_widget_get_allocation (child, &amp;child_allocation);</td></tr>
+<tr class="codeline" data-linenumber="1760"><td class="num" id="LN1760">1760</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1761"><td class="num" id="LN1761">1761</td><td class="line"> context = gtk_widget_get_style_context (widget);</td></tr>
+<tr class="codeline" data-linenumber="1762"><td class="num" id="LN1762">1762</td><td class="line"> width = gtk_widget_get_allocated_width (widget);</td></tr>
+<tr class="codeline" data-linenumber="1763"><td class="num" id="LN1763">1763</td><td class="line"> height = gtk_widget_get_allocated_height (widget);</td></tr>
+<tr class="codeline" data-linenumber="1764"><td class="num" id="LN1764">1764</td><td class="line"> gtk_render_background (context, cr, 0, 0, width, height);</td></tr>
+<tr class="codeline" data-linenumber="1765"><td class="num" id="LN1765">1765</td><td class="line"> gtk_render_frame (context, cr, 0, 0, width, height);</td></tr>
+<tr class="codeline" data-linenumber="1766"><td class="num" id="LN1766">1766</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1767"><td class="num" id="LN1767">1767</td><td class="line"> gtk_render_background (context, cr,</td></tr>
+<tr class="codeline" data-linenumber="1768"><td class="num" id="LN1768">1768</td><td class="line"> child_allocation.x, child_allocation.y,</td></tr>
+<tr class="codeline" data-linenumber="1769"><td class="num" id="LN1769">1769</td><td class="line"> child_allocation.width, child_allocation.height);</td></tr>
+<tr class="codeline" data-linenumber="1770"><td class="num" id="LN1770">1770</td><td class="line"> gtk_render_frame (context, cr,</td></tr>
+<tr class="codeline" data-linenumber="1771"><td class="num" id="LN1771">1771</td><td class="line"> child_allocation.x, child_allocation.y,</td></tr>
+<tr class="codeline" data-linenumber="1772"><td class="num" id="LN1772">1772</td><td class="line"> child_allocation.width, child_allocation.height);</td></tr>
+<tr class="codeline" data-linenumber="1773"><td class="num" id="LN1773">1773</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1774"><td class="num" id="LN1774">1774</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1775"><td class="num" id="LN1775">1775</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>GTK_WIDGET_CLASS (terminal_window_parent_class)<span class='macro_popup'>((((GtkWidgetClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((terminal_window_parent_class)), ((gtk_widget_get_type ()<br>))))))</span></span>-&gt;draw (widget, cr);</td></tr>
+<tr class="codeline" data-linenumber="1776"><td class="num" id="LN1776">1776</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1777"><td class="num" id="LN1777">1777</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1778"><td class="num" id="LN1778">1778</td><td class="line"><span class='keyword'>static</span> gboolean</td></tr>
+<tr class="codeline" data-linenumber="1779"><td class="num" id="LN1779">1779</td><td class="line">terminal_window_map_event (GtkWidget *widget,</td></tr>
+<tr class="codeline" data-linenumber="1780"><td class="num" id="LN1780">1780</td><td class="line"> GdkEventAny *event)</td></tr>
+<tr class="codeline" data-linenumber="1781"><td class="num" id="LN1781">1781</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1782"><td class="num" id="LN1782">1782</td><td class="line"> TerminalWindow *window = <span class='macro'>TERMINAL_WINDOW (widget)<span class='macro_popup'>((((TerminalWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((widget)), ((terminal_window_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1783"><td class="num" id="LN1783">1783</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1784"><td class="num" id="LN1784">1784</td><td class="line"> gboolean (* map_event) (GtkWidget *, GdkEventAny *) =</td></tr>
+<tr class="codeline" data-linenumber="1785"><td class="num" id="LN1785">1785</td><td class="line"> <span class='macro'>GTK_WIDGET_CLASS (terminal_window_parent_class)<span class='macro_popup'>((((GtkWidgetClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((terminal_window_parent_class)), ((gtk_widget_get_type ()<br>))))))</span></span>-&gt;map_event;</td></tr>
+<tr class="codeline" data-linenumber="1786"><td class="num" id="LN1786">1786</td><td class="line"> GtkAllocation widget_allocation;</td></tr>
+<tr class="codeline" data-linenumber="1787"><td class="num" id="LN1787">1787</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1788"><td class="num" id="LN1788">1788</td><td class="line"> gtk_widget_get_allocation (widget, &amp;widget_allocation);</td></tr>
+<tr class="codeline" data-linenumber="1789"><td class="num" id="LN1789">1789</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_GEOMETRY,<span class='macro_popup'>do { if (0) g_printerr("[window %p] map-event, size %d : %d at (%d, %d)\n"<br>, widget, widget_allocation.width, widget_allocation.height, widget_allocation<br>.x, widget_allocation.y); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1790"><td class="num" id="LN1790">1790</td><td class="line"> <span class='string_literal'><span class='macro'>"[window %p] map-event, size %d : %d at (%d, %d)\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("[window %p] map-event, size %d : %d at (%d, %d)\n"<br>, widget, widget_allocation.width, widget_allocation.height, widget_allocation<br>.x, widget_allocation.y); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1791"><td class="num" id="LN1791">1791</td><td class="line"> <span class='macro'>widget,<span class='macro_popup'>do { if (0) g_printerr("[window %p] map-event, size %d : %d at (%d, %d)\n"<br>, widget, widget_allocation.width, widget_allocation.height, widget_allocation<br>.x, widget_allocation.y); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1792"><td class="num" id="LN1792">1792</td><td class="line"> <span class='macro'>widget_allocation.width, widget_allocation.height,<span class='macro_popup'>do { if (0) g_printerr("[window %p] map-event, size %d : %d at (%d, %d)\n"<br>, widget, widget_allocation.width, widget_allocation.height, widget_allocation<br>.x, widget_allocation.y); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1793"><td class="num" id="LN1793">1793</td><td class="line"> <span class='macro'>widget_allocation.x, widget_allocation.y)<span class='macro_popup'>do { if (0) g_printerr("[window %p] map-event, size %d : %d at (%d, %d)\n"<br>, widget, widget_allocation.width, widget_allocation.height, widget_allocation<br>.x, widget_allocation.y); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1794"><td class="num" id="LN1794">1794</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1795"><td class="num" id="LN1795">1795</td><td class="line"> <span class='keyword'>if</span> (priv-&gt;clear_demands_attention)</td></tr>
+<tr class="codeline" data-linenumber="1796"><td class="num" id="LN1796">1796</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1797"><td class="num" id="LN1797">1797</td><td class="line"><span class='directive'>#ifdef GDK_WINDOWING_X11</span></td></tr>
+<tr class="codeline" data-linenumber="1798"><td class="num" id="LN1798">1798</td><td class="line"> terminal_util_x11_clear_demands_attention (gtk_widget_get_window (widget));</td></tr>
+<tr class="codeline" data-linenumber="1799"><td class="num" id="LN1799">1799</td><td class="line"><span class='directive'>#endif</span></td></tr>
+<tr class="codeline" data-linenumber="1800"><td class="num" id="LN1800">1800</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1801"><td class="num" id="LN1801">1801</td><td class="line"> priv-&gt;clear_demands_attention = <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1802"><td class="num" id="LN1802">1802</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1803"><td class="num" id="LN1803">1803</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1804"><td class="num" id="LN1804">1804</td><td class="line"> <span class='keyword'>if</span> (map_event)</td></tr>
+<tr class="codeline" data-linenumber="1805"><td class="num" id="LN1805">1805</td><td class="line"> <span class='keyword'>return</span> map_event (widget, event);</td></tr>
+<tr class="codeline" data-linenumber="1806"><td class="num" id="LN1806">1806</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1807"><td class="num" id="LN1807">1807</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1808"><td class="num" id="LN1808">1808</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1809"><td class="num" id="LN1809">1809</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1810"><td class="num" id="LN1810">1810</td><td class="line"><span class='keyword'>static</span> gboolean</td></tr>
+<tr class="codeline" data-linenumber="1811"><td class="num" id="LN1811">1811</td><td class="line">terminal_window_state_event (GtkWidget *widget,</td></tr>
+<tr class="codeline" data-linenumber="1812"><td class="num" id="LN1812">1812</td><td class="line"> GdkEventWindowState *event)</td></tr>
+<tr class="codeline" data-linenumber="1813"><td class="num" id="LN1813">1813</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1814"><td class="num" id="LN1814">1814</td><td class="line"> gboolean (* window_state_event) (GtkWidget *, GdkEventWindowState *event) =</td></tr>
+<tr class="codeline" data-linenumber="1815"><td class="num" id="LN1815">1815</td><td class="line"> <span class='macro'>GTK_WIDGET_CLASS (terminal_window_parent_class)<span class='macro_popup'>((((GtkWidgetClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((terminal_window_parent_class)), ((gtk_widget_get_type ()<br>))))))</span></span>-&gt;window_state_event;</td></tr>
+<tr class="codeline" data-linenumber="1816"><td class="num" id="LN1816">1816</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1817"><td class="num" id="LN1817">1817</td><td class="line"> <span class='keyword'>if</span> (event-&gt;changed_mask &amp; GDK_WINDOW_STATE_FULLSCREEN)</td></tr>
+<tr class="codeline" data-linenumber="1818"><td class="num" id="LN1818">1818</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1819"><td class="num" id="LN1819">1819</td><td class="line"> TerminalWindow *window = <span class='macro'>TERMINAL_WINDOW (widget)<span class='macro_popup'>((((TerminalWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((widget)), ((terminal_window_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1820"><td class="num" id="LN1820">1820</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1821"><td class="num" id="LN1821">1821</td><td class="line"> GtkAction *action;</td></tr>
+<tr class="codeline" data-linenumber="1822"><td class="num" id="LN1822">1822</td><td class="line"> gboolean is_fullscreen;</td></tr>
+<tr class="codeline" data-linenumber="1823"><td class="num" id="LN1823">1823</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1824"><td class="num" id="LN1824">1824</td><td class="line"> is_fullscreen = (event-&gt;new_window_state &amp; GDK_WINDOW_STATE_FULLSCREEN) != 0;</td></tr>
+<tr class="codeline" data-linenumber="1825"><td class="num" id="LN1825">1825</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1826"><td class="num" id="LN1826">1826</td><td class="line"> <span class='macro'>G_GNUC_BEGIN_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic push
+ clang diagnostic ignored "-Wdeprecated-declarations"<br>
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1827"><td class="num" id="LN1827">1827</td><td class="line"> action = gtk_action_group_get_action (priv-&gt;action_group, <span class='string_literal'>"ViewFullscreen"</span>);</td></tr>
+<tr class="codeline" data-linenumber="1828"><td class="num" id="LN1828">1828</td><td class="line"> gtk_toggle_action_set_active (<span class='macro'>GTK_TOGGLE_ACTION (action)<span class='macro_popup'>((((GtkToggleAction*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((action)), ((gtk_toggle_action_get_type ()))))))</span></span>, is_fullscreen);</td></tr>
+<tr class="codeline" data-linenumber="1829"><td class="num" id="LN1829">1829</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1830"><td class="num" id="LN1830">1830</td><td class="line"> action = gtk_action_group_get_action (priv-&gt;action_group, <span class='string_literal'>"PopupLeaveFullscreen"</span>);</td></tr>
+<tr class="codeline" data-linenumber="1831"><td class="num" id="LN1831">1831</td><td class="line"> gtk_action_set_visible (action, is_fullscreen);</td></tr>
+<tr class="codeline" data-linenumber="1832"><td class="num" id="LN1832">1832</td><td class="line"> <span class='macro'>G_GNUC_END_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic pop
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1833"><td class="num" id="LN1833">1833</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1834"><td class="num" id="LN1834">1834</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1835"><td class="num" id="LN1835">1835</td><td class="line"> <span class='keyword'>if</span> (window_state_event)</td></tr>
+<tr class="codeline" data-linenumber="1836"><td class="num" id="LN1836">1836</td><td class="line"> <span class='keyword'>return</span> window_state_event (widget, event);</td></tr>
+<tr class="codeline" data-linenumber="1837"><td class="num" id="LN1837">1837</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1838"><td class="num" id="LN1838">1838</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1839"><td class="num" id="LN1839">1839</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1840"><td class="num" id="LN1840">1840</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1841"><td class="num" id="LN1841">1841</td><td class="line"><span class='directive'>#ifdef GDK_WINDOWING_X11</span></td></tr>
+<tr class="codeline" data-linenumber="1842"><td class="num" id="LN1842">1842</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1843"><td class="num" id="LN1843">1843</td><td class="line">terminal_window_window_manager_changed_cb (GdkScreen *screen,</td></tr>
+<tr class="codeline" data-linenumber="1844"><td class="num" id="LN1844">1844</td><td class="line"> TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="1845"><td class="num" id="LN1845">1845</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1846"><td class="num" id="LN1846">1846</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="1847"><td class="num" id="LN1847">1847</td><td class="line"> GtkAction *action;</td></tr>
+<tr class="codeline" data-linenumber="1848"><td class="num" id="LN1848">1848</td><td class="line"> gboolean supports_fs;</td></tr>
+<tr class="codeline" data-linenumber="1849"><td class="num" id="LN1849">1849</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1850"><td class="num" id="LN1850">1850</td><td class="line"> supports_fs = gdk_x11_screen_supports_net_wm_hint (screen, gdk_atom_intern (<span class='string_literal'>"_NET_WM_STATE_FULLSCREEN"</span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>));</td></tr>
+<tr class="codeline" data-linenumber="1851"><td class="num" id="LN1851">1851</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1852"><td class="num" id="LN1852">1852</td><td class="line"> <span class='macro'>G_GNUC_BEGIN_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic push
+ clang diagnostic ignored "-Wdeprecated-declarations"<br>
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1853"><td class="num" id="LN1853">1853</td><td class="line"> action = gtk_action_group_get_action (priv-&gt;action_group, <span class='string_literal'>"ViewFullscreen"</span>);</td></tr>
+<tr class="codeline" data-linenumber="1854"><td class="num" id="LN1854">1854</td><td class="line"> gtk_action_set_sensitive (action, supports_fs);</td></tr>
+<tr class="codeline" data-linenumber="1855"><td class="num" id="LN1855">1855</td><td class="line"> <span class='macro'>G_GNUC_END_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic pop
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1856"><td class="num" id="LN1856">1856</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1857"><td class="num" id="LN1857">1857</td><td class="line"><span class='directive'>#endif</span></td></tr>
+<tr class="codeline" data-linenumber="1858"><td class="num" id="LN1858">1858</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1859"><td class="num" id="LN1859">1859</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1860"><td class="num" id="LN1860">1860</td><td class="line">terminal_window_screen_update (TerminalWindow *window,</td></tr>
+<tr class="codeline" data-linenumber="1861"><td class="num" id="LN1861">1861</td><td class="line"> GdkScreen *screen)</td></tr>
+<tr class="codeline" data-linenumber="1862"><td class="num" id="LN1862">1862</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1863"><td class="num" id="LN1863">1863</td><td class="line"> TerminalApp *app;</td></tr>
+<tr class="codeline" data-linenumber="1864"><td class="num" id="LN1864">1864</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1865"><td class="num" id="LN1865">1865</td><td class="line"><span class='directive'>#ifdef GDK_WINDOWING_X11</span></td></tr>
+<tr class="codeline" data-linenumber="1866"><td class="num" id="LN1866">1866</td><td class="line"> <span class='keyword'>if</span> (screen &amp;&amp; <span class='macro'>GDK_IS_X11_SCREEN (screen)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(screen)); GType __t = ((gdk_x11_screen_get_type ())); gboolean<br> __r; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1867"><td class="num" id="LN1867">1867</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1868"><td class="num" id="LN1868">1868</td><td class="line"> terminal_window_window_manager_changed_cb (screen, window);</td></tr>
+<tr class="codeline" data-linenumber="1869"><td class="num" id="LN1869">1869</td><td class="line"> <span class='macro'>g_signal_connect (screen, <span class='string_literal'>"window-manager-changed"</span>,<span class='macro_popup'>g_signal_connect_data ((screen), ("window-manager-changed"), (<br>((GCallback) (terminal_window_window_manager_changed_cb))), (<br>window), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1870"><td class="num" id="LN1870">1870</td><td class="line"> <span class='macro'>G_CALLBACK (terminal_window_window_manager_changed_cb), window)<span class='macro_popup'>g_signal_connect_data ((screen), ("window-manager-changed"), (<br>((GCallback) (terminal_window_window_manager_changed_cb))), (<br>window), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1871"><td class="num" id="LN1871">1871</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1872"><td class="num" id="LN1872">1872</td><td class="line"><span class='directive'>#endif</span></td></tr>
+<tr class="codeline" data-linenumber="1873"><td class="num" id="LN1873">1873</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1874"><td class="num" id="LN1874">1874</td><td class="line"> <span class='keyword'>if</span> (<span class='macro'>GPOINTER_TO_INT (g_object_get_data (G_OBJECT (screen), <span class='string_literal'>"GT::HasSettingsConnection"</span>))<span class='macro_popup'>((gint) (glong) (g_object_get_data (((((GObject*) (void *) g_type_check_instance_cast<br> ((GTypeInstance*) ((screen)), (((GType) ((20) &lt;&lt; (2)))<br>))))), "GT::HasSettingsConnection")))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1875"><td class="num" id="LN1875">1875</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1876"><td class="num" id="LN1876">1876</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1877"><td class="num" id="LN1877">1877</td><td class="line"> g_object_set_data_full (<span class='macro'>G_OBJECT (screen)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((screen)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, <span class='string_literal'>"GT::HasSettingsConnection"</span>,</td></tr>
+<tr class="codeline" data-linenumber="1878"><td class="num" id="LN1878">1878</td><td class="line"> <span class='macro'>GINT_TO_POINTER (TRUE)<span class='macro_popup'>((gpointer) (glong) ((!(0))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1879"><td class="num" id="LN1879">1879</td><td class="line"> (GDestroyNotify) app_setting_notify_destroy_cb);</td></tr>
+<tr class="codeline" data-linenumber="1880"><td class="num" id="LN1880">1880</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1881"><td class="num" id="LN1881">1881</td><td class="line"> app = terminal_app_get ();</td></tr>
+<tr class="codeline" data-linenumber="1882"><td class="num" id="LN1882">1882</td><td class="line"> app_setting_notify_cb (app, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, screen);</td></tr>
+<tr class="codeline" data-linenumber="1883"><td class="num" id="LN1883">1883</td><td class="line"> <span class='macro'>g_signal_connect (app, <span class='string_literal'>"notify::"</span> TERMINAL_APP_ENABLE_MNEMONICS,<span class='macro_popup'>g_signal_connect_data ((app), ("notify::" "enable-mnemonics")<br>, (((GCallback) (app_setting_notify_cb))), (screen), ((void*)<br>0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1884"><td class="num" id="LN1884">1884</td><td class="line"> <span class='macro'>G_CALLBACK (app_setting_notify_cb), screen)<span class='macro_popup'>g_signal_connect_data ((app), ("notify::" "enable-mnemonics")<br>, (((GCallback) (app_setting_notify_cb))), (screen), ((void*)<br>0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1885"><td class="num" id="LN1885">1885</td><td class="line"> <span class='macro'>g_signal_connect (app, <span class='string_literal'>"notify::"</span> TERMINAL_APP_ENABLE_MENU_BAR_ACCEL,<span class='macro_popup'>g_signal_connect_data ((app), ("notify::" "enable-menu-accels"<br>), (((GCallback) (app_setting_notify_cb))), (screen), ((void*<br>)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="1886"><td class="num" id="LN1886">1886</td><td class="line"> <span class='macro'>G_CALLBACK (app_setting_notify_cb), screen)<span class='macro_popup'>g_signal_connect_data ((app), ("notify::" "enable-menu-accels"<br>), (((GCallback) (app_setting_notify_cb))), (screen), ((void*<br>)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1887"><td class="num" id="LN1887">1887</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1888"><td class="num" id="LN1888">1888</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1889"><td class="num" id="LN1889">1889</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1890"><td class="num" id="LN1890">1890</td><td class="line">terminal_window_screen_changed (GtkWidget *widget,</td></tr>
+<tr class="codeline" data-linenumber="1891"><td class="num" id="LN1891">1891</td><td class="line"> GdkScreen *previous_screen)</td></tr>
+<tr class="codeline" data-linenumber="1892"><td class="num" id="LN1892">1892</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1893"><td class="num" id="LN1893">1893</td><td class="line"> TerminalWindow *window = <span class='macro'>TERMINAL_WINDOW (widget)<span class='macro_popup'>((((TerminalWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((widget)), ((terminal_window_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1894"><td class="num" id="LN1894">1894</td><td class="line"> <span class='keyword'>void</span> (* screen_changed) (GtkWidget *, GdkScreen *) =</td></tr>
+<tr class="codeline" data-linenumber="1895"><td class="num" id="LN1895">1895</td><td class="line"> <span class='macro'>GTK_WIDGET_CLASS (terminal_window_parent_class)<span class='macro_popup'>((((GtkWidgetClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((terminal_window_parent_class)), ((gtk_widget_get_type ()<br>))))))</span></span>-&gt;screen_changed;</td></tr>
+<tr class="codeline" data-linenumber="1896"><td class="num" id="LN1896">1896</td><td class="line"> GdkScreen *screen;</td></tr>
+<tr class="codeline" data-linenumber="1897"><td class="num" id="LN1897">1897</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1898"><td class="num" id="LN1898">1898</td><td class="line"> <span class='keyword'>if</span> (screen_changed)</td></tr>
+<tr class="codeline" data-linenumber="1899"><td class="num" id="LN1899">1899</td><td class="line"> screen_changed (widget, previous_screen);</td></tr>
+<tr class="codeline" data-linenumber="1900"><td class="num" id="LN1900">1900</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1901"><td class="num" id="LN1901">1901</td><td class="line"> screen = gtk_widget_get_screen (widget);</td></tr>
+<tr class="codeline" data-linenumber="1902"><td class="num" id="LN1902">1902</td><td class="line"> <span class='keyword'>if</span> (previous_screen == screen)</td></tr>
+<tr class="codeline" data-linenumber="1903"><td class="num" id="LN1903">1903</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1904"><td class="num" id="LN1904">1904</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1905"><td class="num" id="LN1905">1905</td><td class="line"><span class='directive'>#ifdef GDK_WINDOWING_X11</span></td></tr>
+<tr class="codeline" data-linenumber="1906"><td class="num" id="LN1906">1906</td><td class="line"> <span class='keyword'>if</span> (previous_screen &amp;&amp; <span class='macro'>GDK_IS_X11_SCREEN (previous_screen)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(previous_screen)); GType __t = ((gdk_x11_screen_get_type ())<br>); gboolean __r; if (!__inst) __r = (0); else if (__inst-&gt;<br>g_class &amp;&amp; __inst-&gt;g_class-&gt;g_type == __t) __r =<br> (!(0)); else __r = g_type_check_instance_is_a (__inst, __t);<br> __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="1907"><td class="num" id="LN1907">1907</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1908"><td class="num" id="LN1908">1908</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (previous_screen,<span class='macro_popup'>g_signal_handlers_disconnect_matched ((previous_screen), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_window_window_manager_changed_cb)<br>)), (window))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1909"><td class="num" id="LN1909">1909</td><td class="line"> <span class='macro'>G_CALLBACK (terminal_window_window_manager_changed_cb),<span class='macro_popup'>g_signal_handlers_disconnect_matched ((previous_screen), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_window_window_manager_changed_cb)<br>)), (window))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1910"><td class="num" id="LN1910">1910</td><td class="line"> <span class='macro'>window)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((previous_screen), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_window_window_manager_changed_cb)<br>)), (window))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="1911"><td class="num" id="LN1911">1911</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="1912"><td class="num" id="LN1912">1912</td><td class="line"><span class='directive'>#endif</span></td></tr>
+<tr class="codeline" data-linenumber="1913"><td class="num" id="LN1913">1913</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1914"><td class="num" id="LN1914">1914</td><td class="line"> <span class='keyword'>if</span> (!screen)</td></tr>
+<tr class="codeline" data-linenumber="1915"><td class="num" id="LN1915">1915</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="1916"><td class="num" id="LN1916">1916</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1917"><td class="num" id="LN1917">1917</td><td class="line"> terminal_window_screen_update (window, screen);</td></tr>
+<tr class="codeline" data-linenumber="1918"><td class="num" id="LN1918">1918</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1919"><td class="num" id="LN1919">1919</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1920"><td class="num" id="LN1920">1920</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1921"><td class="num" id="LN1921">1921</td><td class="line">terminal_window_profile_list_changed_cb (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="1922"><td class="num" id="LN1922">1922</td><td class="line"> TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="1923"><td class="num" id="LN1923">1923</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1924"><td class="num" id="LN1924">1924</td><td class="line"> terminal_window_update_set_profile_menu (window);</td></tr>
+<tr class="codeline" data-linenumber="1925"><td class="num" id="LN1925">1925</td><td class="line"> terminal_window_update_new_terminal_menus (window);</td></tr>
+<tr class="codeline" data-linenumber="1926"><td class="num" id="LN1926">1926</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1927"><td class="num" id="LN1927">1927</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1928"><td class="num" id="LN1928">1928</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1929"><td class="num" id="LN1929">1929</td><td class="line">terminal_window_encoding_list_changed_cb (TerminalApp *app,</td></tr>
+<tr class="codeline" data-linenumber="1930"><td class="num" id="LN1930">1930</td><td class="line"> TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="1931"><td class="num" id="LN1931">1931</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1932"><td class="num" id="LN1932">1932</td><td class="line"> terminal_window_update_encoding_menu (window);</td></tr>
+<tr class="codeline" data-linenumber="1933"><td class="num" id="LN1933">1933</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="1934"><td class="num" id="LN1934">1934</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1935"><td class="num" id="LN1935">1935</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="1936"><td class="num" id="LN1936">1936</td><td class="line">terminal_window_init (TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="1937"><td class="num" id="LN1937">1937</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="1938"><td class="num" id="LN1938">1938</td><td class="line"> <span class='keyword'>const</span> GtkActionEntry menu_entries[] =</td></tr>
+<tr class="codeline" data-linenumber="1939"><td class="num" id="LN1939">1939</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1940"><td class="num" id="LN1940">1940</td><td class="line"> <span class='comment'>/* Toplevel */</span></td></tr>
+<tr class="codeline" data-linenumber="1941"><td class="num" id="LN1941">1941</td><td class="line"> { <span class='string_literal'>"File"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>N_(<span class='string_literal'>"_File"</span>)<span class='macro_popup'>("_File")</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span> },</td></tr>
+<tr class="codeline" data-linenumber="1942"><td class="num" id="LN1942">1942</td><td class="line"> { <span class='string_literal'>"FileNewWindowProfiles"</span>, <span class='string_literal'>"utilities-terminal"</span>, <span class='macro'>N_(<span class='string_literal'>"Open _Terminal"</span>)<span class='macro_popup'>("Open _Terminal")</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span> },</td></tr>
+<tr class="codeline" data-linenumber="1943"><td class="num" id="LN1943">1943</td><td class="line"> { <span class='string_literal'>"FileNewTabProfiles"</span>, <span class='macro'>STOCK_NEW_TAB<span class='macro_popup'>"tab-new"</span></span>, <span class='macro'>N_(<span class='string_literal'>"Open Ta_b"</span>)<span class='macro_popup'>("Open Ta_b")</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span> },</td></tr>
+<tr class="codeline" data-linenumber="1944"><td class="num" id="LN1944">1944</td><td class="line"> { <span class='string_literal'>"Edit"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>N_(<span class='string_literal'>"_Edit"</span>)<span class='macro_popup'>("_Edit")</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span> },</td></tr>
+<tr class="codeline" data-linenumber="1945"><td class="num" id="LN1945">1945</td><td class="line"> { <span class='string_literal'>"View"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>N_(<span class='string_literal'>"_View"</span>)<span class='macro_popup'>("_View")</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span> },</td></tr>
+<tr class="codeline" data-linenumber="1946"><td class="num" id="LN1946">1946</td><td class="line"> { <span class='string_literal'>"Search"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>N_(<span class='string_literal'>"_Search"</span>)<span class='macro_popup'>("_Search")</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span> },</td></tr>
+<tr class="codeline" data-linenumber="1947"><td class="num" id="LN1947">1947</td><td class="line"> { <span class='string_literal'>"Terminal"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>N_(<span class='string_literal'>"_Terminal"</span>)<span class='macro_popup'>("_Terminal")</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span> },</td></tr>
+<tr class="codeline" data-linenumber="1948"><td class="num" id="LN1948">1948</td><td class="line"> { <span class='string_literal'>"Tabs"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>N_(<span class='string_literal'>"Ta_bs"</span>)<span class='macro_popup'>("Ta_bs")</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span> },</td></tr>
+<tr class="codeline" data-linenumber="1949"><td class="num" id="LN1949">1949</td><td class="line"> { <span class='string_literal'>"Help"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>N_(<span class='string_literal'>"_Help"</span>)<span class='macro_popup'>("_Help")</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span> },</td></tr>
+<tr class="codeline" data-linenumber="1950"><td class="num" id="LN1950">1950</td><td class="line"> { <span class='string_literal'>"Popup"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span> },</td></tr>
+<tr class="codeline" data-linenumber="1951"><td class="num" id="LN1951">1951</td><td class="line"> { <span class='string_literal'>"NotebookPopup"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='string_literal'>""</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span> },</td></tr>
+<tr class="codeline" data-linenumber="1952"><td class="num" id="LN1952">1952</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1953"><td class="num" id="LN1953">1953</td><td class="line"> <span class='comment'>/* File menu */</span></td></tr>
+<tr class="codeline" data-linenumber="1954"><td class="num" id="LN1954">1954</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1955"><td class="num" id="LN1955">1955</td><td class="line"> <span class='string_literal'>"FileNewWindow"</span>, <span class='string_literal'>"utilities-terminal"</span>, <span class='macro'>N_(<span class='string_literal'>"Open _Terminal"</span>)<span class='macro_popup'>("Open _Terminal")</span></span>, <span class='string_literal'>"&lt;shift&gt;&lt;control&gt;N"</span>,</td></tr>
+<tr class="codeline" data-linenumber="1956"><td class="num" id="LN1956">1956</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1957"><td class="num" id="LN1957">1957</td><td class="line"> <span class='macro'>G_CALLBACK (file_new_window_callback)<span class='macro_popup'>((GCallback) (file_new_window_callback))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1958"><td class="num" id="LN1958">1958</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="1959"><td class="num" id="LN1959">1959</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1960"><td class="num" id="LN1960">1960</td><td class="line"> <span class='string_literal'>"FileNewTab"</span>, <span class='macro'>STOCK_NEW_TAB<span class='macro_popup'>"tab-new"</span></span>, <span class='macro'>N_(<span class='string_literal'>"Open Ta_b"</span>)<span class='macro_popup'>("Open Ta_b")</span></span>, <span class='string_literal'>"&lt;shift&gt;&lt;control&gt;T"</span>,</td></tr>
+<tr class="codeline" data-linenumber="1961"><td class="num" id="LN1961">1961</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1962"><td class="num" id="LN1962">1962</td><td class="line"> <span class='macro'>G_CALLBACK (file_new_tab_callback)<span class='macro_popup'>((GCallback) (file_new_tab_callback))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1963"><td class="num" id="LN1963">1963</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="1964"><td class="num" id="LN1964">1964</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1965"><td class="num" id="LN1965">1965</td><td class="line"> <span class='string_literal'>"FileNewProfile"</span>, <span class='string_literal'>"document-open"</span>, <span class='macro'>N_(<span class='string_literal'>"New _Profile…"</span>)<span class='macro_popup'>("New _Profile…")</span></span>, <span class='string_literal'>""</span>,</td></tr>
+<tr class="codeline" data-linenumber="1966"><td class="num" id="LN1966">1966</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1967"><td class="num" id="LN1967">1967</td><td class="line"> <span class='macro'>G_CALLBACK (file_new_profile_callback)<span class='macro_popup'>((GCallback) (file_new_profile_callback))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1968"><td class="num" id="LN1968">1968</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="1969"><td class="num" id="LN1969">1969</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1970"><td class="num" id="LN1970">1970</td><td class="line"> <span class='string_literal'>"FileSaveContents"</span>, <span class='string_literal'>"document-save"</span>, <span class='macro'>N_(<span class='string_literal'>"_Save Contents"</span>)<span class='macro_popup'>("_Save Contents")</span></span>, <span class='string_literal'>""</span>,</td></tr>
+<tr class="codeline" data-linenumber="1971"><td class="num" id="LN1971">1971</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1972"><td class="num" id="LN1972">1972</td><td class="line"> <span class='macro'>G_CALLBACK (file_save_contents_callback)<span class='macro_popup'>((GCallback) (file_save_contents_callback))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1973"><td class="num" id="LN1973">1973</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="1974"><td class="num" id="LN1974">1974</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1975"><td class="num" id="LN1975">1975</td><td class="line"> <span class='string_literal'>"FileCloseTab"</span>, <span class='string_literal'>"window-close"</span>, <span class='macro'>N_(<span class='string_literal'>"C_lose Tab"</span>)<span class='macro_popup'>("C_lose Tab")</span></span>, <span class='string_literal'>"&lt;shift&gt;&lt;control&gt;W"</span>,</td></tr>
+<tr class="codeline" data-linenumber="1976"><td class="num" id="LN1976">1976</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1977"><td class="num" id="LN1977">1977</td><td class="line"> <span class='macro'>G_CALLBACK (file_close_tab_callback)<span class='macro_popup'>((GCallback) (file_close_tab_callback))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1978"><td class="num" id="LN1978">1978</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="1979"><td class="num" id="LN1979">1979</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1980"><td class="num" id="LN1980">1980</td><td class="line"> <span class='string_literal'>"FileCloseWindow"</span>, <span class='string_literal'>"window-close"</span>, <span class='macro'>N_(<span class='string_literal'>"_Close Window"</span>)<span class='macro_popup'>("_Close Window")</span></span>, <span class='string_literal'>"&lt;shift&gt;&lt;control&gt;Q"</span>,</td></tr>
+<tr class="codeline" data-linenumber="1981"><td class="num" id="LN1981">1981</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1982"><td class="num" id="LN1982">1982</td><td class="line"> <span class='macro'>G_CALLBACK (file_close_window_callback)<span class='macro_popup'>((GCallback) (file_close_window_callback))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1983"><td class="num" id="LN1983">1983</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="1984"><td class="num" id="LN1984">1984</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="1985"><td class="num" id="LN1985">1985</td><td class="line"> <span class='comment'>/* Edit menu */</span></td></tr>
+<tr class="codeline" data-linenumber="1986"><td class="num" id="LN1986">1986</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1987"><td class="num" id="LN1987">1987</td><td class="line"> <span class='string_literal'>"EditCopy"</span>, <span class='string_literal'>"edit-copy"</span>, <span class='macro'>N_(<span class='string_literal'>"_Copy"</span>)<span class='macro_popup'>("_Copy")</span></span>, <span class='string_literal'>"&lt;shift&gt;&lt;control&gt;C"</span>,</td></tr>
+<tr class="codeline" data-linenumber="1988"><td class="num" id="LN1988">1988</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1989"><td class="num" id="LN1989">1989</td><td class="line"> <span class='macro'>G_CALLBACK (edit_copy_callback)<span class='macro_popup'>((GCallback) (edit_copy_callback))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1990"><td class="num" id="LN1990">1990</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="1991"><td class="num" id="LN1991">1991</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1992"><td class="num" id="LN1992">1992</td><td class="line"> <span class='string_literal'>"EditPaste"</span>, <span class='string_literal'>"edit-paste"</span>, <span class='macro'>N_(<span class='string_literal'>"_Paste"</span>)<span class='macro_popup'>("_Paste")</span></span>, <span class='string_literal'>"&lt;shift&gt;&lt;control&gt;V"</span>,</td></tr>
+<tr class="codeline" data-linenumber="1993"><td class="num" id="LN1993">1993</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1994"><td class="num" id="LN1994">1994</td><td class="line"> <span class='macro'>G_CALLBACK (edit_paste_callback)<span class='macro_popup'>((GCallback) (edit_paste_callback))</span></span></td></tr>
+<tr class="codeline" data-linenumber="1995"><td class="num" id="LN1995">1995</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="1996"><td class="num" id="LN1996">1996</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="1997"><td class="num" id="LN1997">1997</td><td class="line"> <span class='string_literal'>"EditPasteURIPaths"</span>, <span class='string_literal'>"edit-paste"</span>, <span class='macro'>N_(<span class='string_literal'>"Paste _Filenames"</span>)<span class='macro_popup'>("Paste _Filenames")</span></span>, <span class='string_literal'>""</span>,</td></tr>
+<tr class="codeline" data-linenumber="1998"><td class="num" id="LN1998">1998</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="1999"><td class="num" id="LN1999">1999</td><td class="line"> <span class='macro'>G_CALLBACK (edit_paste_callback)<span class='macro_popup'>((GCallback) (edit_paste_callback))</span></span></td></tr>
+<tr class="codeline" data-linenumber="2000"><td class="num" id="LN2000">2000</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="2001"><td class="num" id="LN2001">2001</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="2002"><td class="num" id="LN2002">2002</td><td class="line"> <span class='string_literal'>"EditSelectAll"</span>, <span class='string_literal'>"edit-select-all"</span>, <span class='macro'>N_(<span class='string_literal'>"Select _All"</span>)<span class='macro_popup'>("Select _All")</span></span>, <span class='string_literal'>"&lt;shift&gt;&lt;control&gt;A"</span>,</td></tr>
+<tr class="codeline" data-linenumber="2003"><td class="num" id="LN2003">2003</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2004"><td class="num" id="LN2004">2004</td><td class="line"> <span class='macro'>G_CALLBACK (edit_select_all_callback)<span class='macro_popup'>((GCallback) (edit_select_all_callback))</span></span></td></tr>
+<tr class="codeline" data-linenumber="2005"><td class="num" id="LN2005">2005</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="2006"><td class="num" id="LN2006">2006</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="2007"><td class="num" id="LN2007">2007</td><td class="line"> <span class='string_literal'>"EditProfiles"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>N_(<span class='string_literal'>"P_rofiles…"</span>)<span class='macro_popup'>("P_rofiles…")</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2008"><td class="num" id="LN2008">2008</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2009"><td class="num" id="LN2009">2009</td><td class="line"> <span class='macro'>G_CALLBACK (edit_profiles_callback)<span class='macro_popup'>((GCallback) (edit_profiles_callback))</span></span></td></tr>
+<tr class="codeline" data-linenumber="2010"><td class="num" id="LN2010">2010</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="2011"><td class="num" id="LN2011">2011</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="2012"><td class="num" id="LN2012">2012</td><td class="line"> <span class='string_literal'>"EditKeybindings"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>N_(<span class='string_literal'>"_Keyboard Shortcuts…"</span>)<span class='macro_popup'>("_Keyboard Shortcuts…")</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2013"><td class="num" id="LN2013">2013</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2014"><td class="num" id="LN2014">2014</td><td class="line"> <span class='macro'>G_CALLBACK (edit_keybindings_callback)<span class='macro_popup'>((GCallback) (edit_keybindings_callback))</span></span></td></tr>
+<tr class="codeline" data-linenumber="2015"><td class="num" id="LN2015">2015</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="2016"><td class="num" id="LN2016">2016</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="2017"><td class="num" id="LN2017">2017</td><td class="line"> <span class='string_literal'>"EditCurrentProfile"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>N_(<span class='string_literal'>"Pr_ofile Preferences"</span>)<span class='macro_popup'>("Pr_ofile Preferences")</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2018"><td class="num" id="LN2018">2018</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2019"><td class="num" id="LN2019">2019</td><td class="line"> <span class='macro'>G_CALLBACK (edit_current_profile_callback)<span class='macro_popup'>((GCallback) (edit_current_profile_callback))</span></span></td></tr>
+<tr class="codeline" data-linenumber="2020"><td class="num" id="LN2020">2020</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="2021"><td class="num" id="LN2021">2021</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2022"><td class="num" id="LN2022">2022</td><td class="line"> <span class='comment'>/* View menu */</span></td></tr>
+<tr class="codeline" data-linenumber="2023"><td class="num" id="LN2023">2023</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="2024"><td class="num" id="LN2024">2024</td><td class="line"> <span class='string_literal'>"ViewZoomIn"</span>, <span class='string_literal'>"zoom-in"</span>, <span class='macro'>N_(<span class='string_literal'>"Zoom _In"</span>)<span class='macro_popup'>("Zoom _In")</span></span>, <span class='string_literal'>"&lt;control&gt;plus"</span>,</td></tr>
+<tr class="codeline" data-linenumber="2025"><td class="num" id="LN2025">2025</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2026"><td class="num" id="LN2026">2026</td><td class="line"> <span class='macro'>G_CALLBACK (view_zoom_in_callback)<span class='macro_popup'>((GCallback) (view_zoom_in_callback))</span></span></td></tr>
+<tr class="codeline" data-linenumber="2027"><td class="num" id="LN2027">2027</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="2028"><td class="num" id="LN2028">2028</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="2029"><td class="num" id="LN2029">2029</td><td class="line"> <span class='string_literal'>"ViewZoomOut"</span>, <span class='string_literal'>"zoom-out"</span>, <span class='macro'>N_(<span class='string_literal'>"Zoom _Out"</span>)<span class='macro_popup'>("Zoom _Out")</span></span>, <span class='string_literal'>"&lt;control&gt;minus"</span>,</td></tr>
+<tr class="codeline" data-linenumber="2030"><td class="num" id="LN2030">2030</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2031"><td class="num" id="LN2031">2031</td><td class="line"> <span class='macro'>G_CALLBACK (view_zoom_out_callback)<span class='macro_popup'>((GCallback) (view_zoom_out_callback))</span></span></td></tr>
+<tr class="codeline" data-linenumber="2032"><td class="num" id="LN2032">2032</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="2033"><td class="num" id="LN2033">2033</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="2034"><td class="num" id="LN2034">2034</td><td class="line"> <span class='string_literal'>"ViewZoom100"</span>, <span class='string_literal'>"zoom-original"</span>, <span class='macro'>N_(<span class='string_literal'>"_Normal Size"</span>)<span class='macro_popup'>("_Normal Size")</span></span>, <span class='string_literal'>"&lt;control&gt;0"</span>,</td></tr>
+<tr class="codeline" data-linenumber="2035"><td class="num" id="LN2035">2035</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2036"><td class="num" id="LN2036">2036</td><td class="line"> <span class='macro'>G_CALLBACK (view_zoom_normal_callback)<span class='macro_popup'>((GCallback) (view_zoom_normal_callback))</span></span></td></tr>
+<tr class="codeline" data-linenumber="2037"><td class="num" id="LN2037">2037</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="2038"><td class="num" id="LN2038">2038</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2039"><td class="num" id="LN2039">2039</td><td class="line"> <span class='comment'>/* Search menu */</span></td></tr>
+<tr class="codeline" data-linenumber="2040"><td class="num" id="LN2040">2040</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="2041"><td class="num" id="LN2041">2041</td><td class="line"> <span class='string_literal'>"SearchFind"</span>, <span class='string_literal'>"edit-find"</span>, <span class='macro'>N_(<span class='string_literal'>"_Find..."</span>)<span class='macro_popup'>("_Find...")</span></span>, <span class='string_literal'>"&lt;shift&gt;&lt;control&gt;F"</span>,</td></tr>
+<tr class="codeline" data-linenumber="2042"><td class="num" id="LN2042">2042</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2043"><td class="num" id="LN2043">2043</td><td class="line"> <span class='macro'>G_CALLBACK (search_find_callback)<span class='macro_popup'>((GCallback) (search_find_callback))</span></span></td></tr>
+<tr class="codeline" data-linenumber="2044"><td class="num" id="LN2044">2044</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="2045"><td class="num" id="LN2045">2045</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="2046"><td class="num" id="LN2046">2046</td><td class="line"> <span class='string_literal'>"SearchFindNext"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>N_(<span class='string_literal'>"Find Ne_xt"</span>)<span class='macro_popup'>("Find Ne_xt")</span></span>, <span class='string_literal'>"&lt;shift&gt;&lt;control&gt;H"</span>,</td></tr>
+<tr class="codeline" data-linenumber="2047"><td class="num" id="LN2047">2047</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2048"><td class="num" id="LN2048">2048</td><td class="line"> <span class='macro'>G_CALLBACK (search_find_next_callback)<span class='macro_popup'>((GCallback) (search_find_next_callback))</span></span></td></tr>
+<tr class="codeline" data-linenumber="2049"><td class="num" id="LN2049">2049</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="2050"><td class="num" id="LN2050">2050</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="2051"><td class="num" id="LN2051">2051</td><td class="line"> <span class='string_literal'>"SearchFindPrevious"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>N_(<span class='string_literal'>"Find Pre_vious"</span>)<span class='macro_popup'>("Find Pre_vious")</span></span>, <span class='string_literal'>"&lt;shift&gt;&lt;control&gt;G"</span>,</td></tr>
+<tr class="codeline" data-linenumber="2052"><td class="num" id="LN2052">2052</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2053"><td class="num" id="LN2053">2053</td><td class="line"> <span class='macro'>G_CALLBACK (search_find_prev_callback)<span class='macro_popup'>((GCallback) (search_find_prev_callback))</span></span></td></tr>
+<tr class="codeline" data-linenumber="2054"><td class="num" id="LN2054">2054</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="2055"><td class="num" id="LN2055">2055</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="2056"><td class="num" id="LN2056">2056</td><td class="line"> <span class='string_literal'>"SearchClearHighlight"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>N_(<span class='string_literal'>"_Clear Highlight"</span>)<span class='macro_popup'>("_Clear Highlight")</span></span>, <span class='string_literal'>"&lt;shift&gt;&lt;control&gt;J"</span>,</td></tr>
+<tr class="codeline" data-linenumber="2057"><td class="num" id="LN2057">2057</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2058"><td class="num" id="LN2058">2058</td><td class="line"> <span class='macro'>G_CALLBACK (search_clear_highlight_callback)<span class='macro_popup'>((GCallback) (search_clear_highlight_callback))</span></span></td></tr>
+<tr class="codeline" data-linenumber="2059"><td class="num" id="LN2059">2059</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="2060"><td class="num" id="LN2060">2060</td><td class="line"><span class='directive'>#if 0</span></td></tr>
+<tr class="codeline" data-linenumber="2061"><td class="num" id="LN2061">2061</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="2062"><td class="num" id="LN2062">2062</td><td class="line"> <span class='string_literal'>"SearchGoToLine"</span>, <span class='string_literal'>"go-jump"</span>, <span class='macro'>N_(<span class='string_literal'>"Go to _Line..."</span>)<span class='macro_popup'>("Go to _Line...")</span></span>, <span class='string_literal'>"&lt;shift&gt;&lt;control&gt;I"</span>,</td></tr>
+<tr class="codeline" data-linenumber="2063"><td class="num" id="LN2063">2063</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2064"><td class="num" id="LN2064">2064</td><td class="line"> <span class='macro'>G_CALLBACK (search_goto_line_callback)<span class='macro_popup'>((GCallback) (search_goto_line_callback))</span></span></td></tr>
+<tr class="codeline" data-linenumber="2065"><td class="num" id="LN2065">2065</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="2066"><td class="num" id="LN2066">2066</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="2067"><td class="num" id="LN2067">2067</td><td class="line"> <span class='string_literal'>"SearchIncrementalSearch"</span>, <span class='string_literal'>"edit-find"</span>, <span class='macro'>N_(<span class='string_literal'>"_Incremental Search..."</span>)<span class='macro_popup'>("_Incremental Search...")</span></span>, <span class='string_literal'>"&lt;shift&gt;&lt;control&gt;K"</span>,</td></tr>
+<tr class="codeline" data-linenumber="2068"><td class="num" id="LN2068">2068</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2069"><td class="num" id="LN2069">2069</td><td class="line"> <span class='macro'>G_CALLBACK (search_incremental_search_callback)<span class='macro_popup'>((GCallback) (search_incremental_search_callback))</span></span></td></tr>
+<tr class="codeline" data-linenumber="2070"><td class="num" id="LN2070">2070</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="2071"><td class="num" id="LN2071">2071</td><td class="line"><span class='directive'>#endif</span></td></tr>
+<tr class="codeline" data-linenumber="2072"><td class="num" id="LN2072">2072</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2073"><td class="num" id="LN2073">2073</td><td class="line"> <span class='comment'>/* Terminal menu */</span></td></tr>
+<tr class="codeline" data-linenumber="2074"><td class="num" id="LN2074">2074</td><td class="line"> { <span class='string_literal'>"TerminalProfiles"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>N_(<span class='string_literal'>"Change _Profile"</span>)<span class='macro_popup'>("Change _Profile")</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span> },</td></tr>
+<tr class="codeline" data-linenumber="2075"><td class="num" id="LN2075">2075</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="2076"><td class="num" id="LN2076">2076</td><td class="line"> <span class='string_literal'>"ProfilePrevious"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>N_(<span class='string_literal'>"_Previous Profile"</span>)<span class='macro_popup'>("_Previous Profile")</span></span>, <span class='string_literal'>"&lt;alt&gt;Page_Up"</span>,</td></tr>
+<tr class="codeline" data-linenumber="2077"><td class="num" id="LN2077">2077</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2078"><td class="num" id="LN2078">2078</td><td class="line"> <span class='macro'>G_CALLBACK (terminal_next_or_previous_profile_cb)<span class='macro_popup'>((GCallback) (terminal_next_or_previous_profile_cb))</span></span></td></tr>
+<tr class="codeline" data-linenumber="2079"><td class="num" id="LN2079">2079</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="2080"><td class="num" id="LN2080">2080</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="2081"><td class="num" id="LN2081">2081</td><td class="line"> <span class='string_literal'>"ProfileNext"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>N_(<span class='string_literal'>"_Next Profile"</span>)<span class='macro_popup'>("_Next Profile")</span></span>, <span class='string_literal'>"&lt;alt&gt;Page_Down"</span>,</td></tr>
+<tr class="codeline" data-linenumber="2082"><td class="num" id="LN2082">2082</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2083"><td class="num" id="LN2083">2083</td><td class="line"> <span class='macro'>G_CALLBACK (terminal_next_or_previous_profile_cb)<span class='macro_popup'>((GCallback) (terminal_next_or_previous_profile_cb))</span></span></td></tr>
+<tr class="codeline" data-linenumber="2084"><td class="num" id="LN2084">2084</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="2085"><td class="num" id="LN2085">2085</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="2086"><td class="num" id="LN2086">2086</td><td class="line"> <span class='string_literal'>"TerminalSetTitle"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>N_(<span class='string_literal'>"_Set Title…"</span>)<span class='macro_popup'>("_Set Title…")</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2087"><td class="num" id="LN2087">2087</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2088"><td class="num" id="LN2088">2088</td><td class="line"> <span class='macro'>G_CALLBACK (terminal_set_title_callback)<span class='macro_popup'>((GCallback) (terminal_set_title_callback))</span></span></td></tr>
+<tr class="codeline" data-linenumber="2089"><td class="num" id="LN2089">2089</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="2090"><td class="num" id="LN2090">2090</td><td class="line"> { <span class='string_literal'>"TerminalSetEncoding"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>N_(<span class='string_literal'>"Set _Character Encoding"</span>)<span class='macro_popup'>("Set _Character Encoding")</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span> },</td></tr>
+<tr class="codeline" data-linenumber="2091"><td class="num" id="LN2091">2091</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="2092"><td class="num" id="LN2092">2092</td><td class="line"> <span class='string_literal'>"TerminalReset"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>N_(<span class='string_literal'>"_Reset"</span>)<span class='macro_popup'>("_Reset")</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2093"><td class="num" id="LN2093">2093</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2094"><td class="num" id="LN2094">2094</td><td class="line"> <span class='macro'>G_CALLBACK (terminal_reset_callback)<span class='macro_popup'>((GCallback) (terminal_reset_callback))</span></span></td></tr>
+<tr class="codeline" data-linenumber="2095"><td class="num" id="LN2095">2095</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="2096"><td class="num" id="LN2096">2096</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="2097"><td class="num" id="LN2097">2097</td><td class="line"> <span class='string_literal'>"TerminalResetClear"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>N_(<span class='string_literal'>"Reset and C_lear"</span>)<span class='macro_popup'>("Reset and C_lear")</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2098"><td class="num" id="LN2098">2098</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2099"><td class="num" id="LN2099">2099</td><td class="line"> <span class='macro'>G_CALLBACK (terminal_reset_clear_callback)<span class='macro_popup'>((GCallback) (terminal_reset_clear_callback))</span></span></td></tr>
+<tr class="codeline" data-linenumber="2100"><td class="num" id="LN2100">2100</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="2101"><td class="num" id="LN2101">2101</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2102"><td class="num" id="LN2102">2102</td><td class="line"> <span class='comment'>/* Terminal/Encodings menu */</span></td></tr>
+<tr class="codeline" data-linenumber="2103"><td class="num" id="LN2103">2103</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="2104"><td class="num" id="LN2104">2104</td><td class="line"> <span class='string_literal'>"TerminalAddEncoding"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>N_(<span class='string_literal'>"_Add or Remove…"</span>)<span class='macro_popup'>("_Add or Remove…")</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2105"><td class="num" id="LN2105">2105</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2106"><td class="num" id="LN2106">2106</td><td class="line"> <span class='macro'>G_CALLBACK (terminal_add_encoding_callback)<span class='macro_popup'>((GCallback) (terminal_add_encoding_callback))</span></span></td></tr>
+<tr class="codeline" data-linenumber="2107"><td class="num" id="LN2107">2107</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="2108"><td class="num" id="LN2108">2108</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2109"><td class="num" id="LN2109">2109</td><td class="line"> <span class='comment'>/* Tabs menu */</span></td></tr>
+<tr class="codeline" data-linenumber="2110"><td class="num" id="LN2110">2110</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="2111"><td class="num" id="LN2111">2111</td><td class="line"> <span class='string_literal'>"TabsPrevious"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>N_(<span class='string_literal'>"_Previous Tab"</span>)<span class='macro_popup'>("_Previous Tab")</span></span>, <span class='string_literal'>"&lt;control&gt;Page_Up"</span>,</td></tr>
+<tr class="codeline" data-linenumber="2112"><td class="num" id="LN2112">2112</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2113"><td class="num" id="LN2113">2113</td><td class="line"> <span class='macro'>G_CALLBACK (tabs_next_or_previous_tab_cb)<span class='macro_popup'>((GCallback) (tabs_next_or_previous_tab_cb))</span></span></td></tr>
+<tr class="codeline" data-linenumber="2114"><td class="num" id="LN2114">2114</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="2115"><td class="num" id="LN2115">2115</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="2116"><td class="num" id="LN2116">2116</td><td class="line"> <span class='string_literal'>"TabsNext"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>N_(<span class='string_literal'>"_Next Tab"</span>)<span class='macro_popup'>("_Next Tab")</span></span>, <span class='string_literal'>"&lt;control&gt;Page_Down"</span>,</td></tr>
+<tr class="codeline" data-linenumber="2117"><td class="num" id="LN2117">2117</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2118"><td class="num" id="LN2118">2118</td><td class="line"> <span class='macro'>G_CALLBACK (tabs_next_or_previous_tab_cb)<span class='macro_popup'>((GCallback) (tabs_next_or_previous_tab_cb))</span></span></td></tr>
+<tr class="codeline" data-linenumber="2119"><td class="num" id="LN2119">2119</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="2120"><td class="num" id="LN2120">2120</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="2121"><td class="num" id="LN2121">2121</td><td class="line"> <span class='string_literal'>"TabsMoveLeft"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>N_(<span class='string_literal'>"Move Tab _Left"</span>)<span class='macro_popup'>("Move Tab _Left")</span></span>, <span class='string_literal'>"&lt;shift&gt;&lt;control&gt;Page_Up"</span>,</td></tr>
+<tr class="codeline" data-linenumber="2122"><td class="num" id="LN2122">2122</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2123"><td class="num" id="LN2123">2123</td><td class="line"> <span class='macro'>G_CALLBACK (tabs_move_left_callback)<span class='macro_popup'>((GCallback) (tabs_move_left_callback))</span></span></td></tr>
+<tr class="codeline" data-linenumber="2124"><td class="num" id="LN2124">2124</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="2125"><td class="num" id="LN2125">2125</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="2126"><td class="num" id="LN2126">2126</td><td class="line"> <span class='string_literal'>"TabsMoveRight"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>N_(<span class='string_literal'>"Move Tab _Right"</span>)<span class='macro_popup'>("Move Tab _Right")</span></span>, <span class='string_literal'>"&lt;shift&gt;&lt;control&gt;Page_Down"</span>,</td></tr>
+<tr class="codeline" data-linenumber="2127"><td class="num" id="LN2127">2127</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2128"><td class="num" id="LN2128">2128</td><td class="line"> <span class='macro'>G_CALLBACK (tabs_move_right_callback)<span class='macro_popup'>((GCallback) (tabs_move_right_callback))</span></span></td></tr>
+<tr class="codeline" data-linenumber="2129"><td class="num" id="LN2129">2129</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="2130"><td class="num" id="LN2130">2130</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="2131"><td class="num" id="LN2131">2131</td><td class="line"> <span class='string_literal'>"TabsDetach"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>N_(<span class='string_literal'>"_Detach tab"</span>)<span class='macro_popup'>("_Detach tab")</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2132"><td class="num" id="LN2132">2132</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2133"><td class="num" id="LN2133">2133</td><td class="line"> <span class='macro'>G_CALLBACK (tabs_detach_tab_callback)<span class='macro_popup'>((GCallback) (tabs_detach_tab_callback))</span></span></td></tr>
+<tr class="codeline" data-linenumber="2134"><td class="num" id="LN2134">2134</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="2135"><td class="num" id="LN2135">2135</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2136"><td class="num" id="LN2136">2136</td><td class="line"> <span class='comment'>/* Help menu */</span></td></tr>
+<tr class="codeline" data-linenumber="2137"><td class="num" id="LN2137">2137</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="2138"><td class="num" id="LN2138">2138</td><td class="line"> <span class='string_literal'>"HelpContents"</span>, <span class='string_literal'>"help-browser"</span>, <span class='macro'>N_(<span class='string_literal'>"_Contents"</span>)<span class='macro_popup'>("_Contents")</span></span>, <span class='string_literal'>"F1"</span>,</td></tr>
+<tr class="codeline" data-linenumber="2139"><td class="num" id="LN2139">2139</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2140"><td class="num" id="LN2140">2140</td><td class="line"> <span class='macro'>G_CALLBACK (help_contents_callback)<span class='macro_popup'>((GCallback) (help_contents_callback))</span></span></td></tr>
+<tr class="codeline" data-linenumber="2141"><td class="num" id="LN2141">2141</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="2142"><td class="num" id="LN2142">2142</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="2143"><td class="num" id="LN2143">2143</td><td class="line"> <span class='string_literal'>"HelpAbout"</span>, <span class='string_literal'>"help-about"</span>, <span class='macro'>N_(<span class='string_literal'>"_About"</span>)<span class='macro_popup'>("_About")</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2144"><td class="num" id="LN2144">2144</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2145"><td class="num" id="LN2145">2145</td><td class="line"> <span class='macro'>G_CALLBACK (help_about_callback)<span class='macro_popup'>((GCallback) (help_about_callback))</span></span></td></tr>
+<tr class="codeline" data-linenumber="2146"><td class="num" id="LN2146">2146</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="2147"><td class="num" id="LN2147">2147</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2148"><td class="num" id="LN2148">2148</td><td class="line"> <span class='comment'>/* Popup menu */</span></td></tr>
+<tr class="codeline" data-linenumber="2149"><td class="num" id="LN2149">2149</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="2150"><td class="num" id="LN2150">2150</td><td class="line"> <span class='string_literal'>"PopupOpenHyperlink"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>N_(<span class='string_literal'>"_Open Hyperlink"</span>)<span class='macro_popup'>("_Open Hyperlink")</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2151"><td class="num" id="LN2151">2151</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2152"><td class="num" id="LN2152">2152</td><td class="line"> <span class='macro'>G_CALLBACK (popup_open_hyperlink_callback)<span class='macro_popup'>((GCallback) (popup_open_hyperlink_callback))</span></span></td></tr>
+<tr class="codeline" data-linenumber="2153"><td class="num" id="LN2153">2153</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="2154"><td class="num" id="LN2154">2154</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="2155"><td class="num" id="LN2155">2155</td><td class="line"> <span class='string_literal'>"PopupCopyHyperlinkAddress"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>N_(<span class='string_literal'>"_Copy Hyperlink Address"</span>)<span class='macro_popup'>("_Copy Hyperlink Address")</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2156"><td class="num" id="LN2156">2156</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2157"><td class="num" id="LN2157">2157</td><td class="line"> <span class='macro'>G_CALLBACK (popup_copy_hyperlink_callback)<span class='macro_popup'>((GCallback) (popup_copy_hyperlink_callback))</span></span></td></tr>
+<tr class="codeline" data-linenumber="2158"><td class="num" id="LN2158">2158</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="2159"><td class="num" id="LN2159">2159</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="2160"><td class="num" id="LN2160">2160</td><td class="line"> <span class='string_literal'>"PopupSendEmail"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>N_(<span class='string_literal'>"_Send Mail To…"</span>)<span class='macro_popup'>("_Send Mail To…")</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2161"><td class="num" id="LN2161">2161</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2162"><td class="num" id="LN2162">2162</td><td class="line"> <span class='macro'>G_CALLBACK (popup_open_url_callback)<span class='macro_popup'>((GCallback) (popup_open_url_callback))</span></span></td></tr>
+<tr class="codeline" data-linenumber="2163"><td class="num" id="LN2163">2163</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="2164"><td class="num" id="LN2164">2164</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="2165"><td class="num" id="LN2165">2165</td><td class="line"> <span class='string_literal'>"PopupCopyEmailAddress"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>N_(<span class='string_literal'>"_Copy E-mail Address"</span>)<span class='macro_popup'>("_Copy E-mail Address")</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2166"><td class="num" id="LN2166">2166</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2167"><td class="num" id="LN2167">2167</td><td class="line"> <span class='macro'>G_CALLBACK (popup_copy_url_callback)<span class='macro_popup'>((GCallback) (popup_copy_url_callback))</span></span></td></tr>
+<tr class="codeline" data-linenumber="2168"><td class="num" id="LN2168">2168</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="2169"><td class="num" id="LN2169">2169</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="2170"><td class="num" id="LN2170">2170</td><td class="line"> <span class='string_literal'>"PopupCall"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>N_(<span class='string_literal'>"C_all To…"</span>)<span class='macro_popup'>("C_all To…")</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2171"><td class="num" id="LN2171">2171</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2172"><td class="num" id="LN2172">2172</td><td class="line"> <span class='macro'>G_CALLBACK (popup_open_url_callback)<span class='macro_popup'>((GCallback) (popup_open_url_callback))</span></span></td></tr>
+<tr class="codeline" data-linenumber="2173"><td class="num" id="LN2173">2173</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="2174"><td class="num" id="LN2174">2174</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="2175"><td class="num" id="LN2175">2175</td><td class="line"> <span class='string_literal'>"PopupCopyCallAddress"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>N_(<span class='string_literal'>"_Copy Call Address"</span>)<span class='macro_popup'>("_Copy Call Address")</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2176"><td class="num" id="LN2176">2176</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2177"><td class="num" id="LN2177">2177</td><td class="line"> <span class='macro'>G_CALLBACK (popup_copy_url_callback)<span class='macro_popup'>((GCallback) (popup_copy_url_callback))</span></span></td></tr>
+<tr class="codeline" data-linenumber="2178"><td class="num" id="LN2178">2178</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="2179"><td class="num" id="LN2179">2179</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="2180"><td class="num" id="LN2180">2180</td><td class="line"> <span class='string_literal'>"PopupOpenLink"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>N_(<span class='string_literal'>"_Open Link"</span>)<span class='macro_popup'>("_Open Link")</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2181"><td class="num" id="LN2181">2181</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2182"><td class="num" id="LN2182">2182</td><td class="line"> <span class='macro'>G_CALLBACK (popup_open_url_callback)<span class='macro_popup'>((GCallback) (popup_open_url_callback))</span></span></td></tr>
+<tr class="codeline" data-linenumber="2183"><td class="num" id="LN2183">2183</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="2184"><td class="num" id="LN2184">2184</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="2185"><td class="num" id="LN2185">2185</td><td class="line"> <span class='string_literal'>"PopupCopyLinkAddress"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>N_(<span class='string_literal'>"_Copy Link Address"</span>)<span class='macro_popup'>("_Copy Link Address")</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2186"><td class="num" id="LN2186">2186</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2187"><td class="num" id="LN2187">2187</td><td class="line"> <span class='macro'>G_CALLBACK (popup_copy_url_callback)<span class='macro_popup'>((GCallback) (popup_copy_url_callback))</span></span></td></tr>
+<tr class="codeline" data-linenumber="2188"><td class="num" id="LN2188">2188</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="2189"><td class="num" id="LN2189">2189</td><td class="line"> { <span class='string_literal'>"PopupTerminalProfiles"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>N_(<span class='string_literal'>"P_rofiles"</span>)<span class='macro_popup'>("P_rofiles")</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span> },</td></tr>
+<tr class="codeline" data-linenumber="2190"><td class="num" id="LN2190">2190</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="2191"><td class="num" id="LN2191">2191</td><td class="line"> <span class='string_literal'>"PopupCopy"</span>, <span class='string_literal'>"edit-copy"</span>, <span class='macro'>N_(<span class='string_literal'>"_Copy"</span>)<span class='macro_popup'>("_Copy")</span></span>, <span class='string_literal'>""</span>,</td></tr>
+<tr class="codeline" data-linenumber="2192"><td class="num" id="LN2192">2192</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2193"><td class="num" id="LN2193">2193</td><td class="line"> <span class='macro'>G_CALLBACK (edit_copy_callback)<span class='macro_popup'>((GCallback) (edit_copy_callback))</span></span></td></tr>
+<tr class="codeline" data-linenumber="2194"><td class="num" id="LN2194">2194</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="2195"><td class="num" id="LN2195">2195</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="2196"><td class="num" id="LN2196">2196</td><td class="line"> <span class='string_literal'>"PopupPaste"</span>, <span class='string_literal'>"edit-paste"</span>, <span class='macro'>N_(<span class='string_literal'>"_Paste"</span>)<span class='macro_popup'>("_Paste")</span></span>, <span class='string_literal'>""</span>,</td></tr>
+<tr class="codeline" data-linenumber="2197"><td class="num" id="LN2197">2197</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2198"><td class="num" id="LN2198">2198</td><td class="line"> <span class='macro'>G_CALLBACK (edit_paste_callback)<span class='macro_popup'>((GCallback) (edit_paste_callback))</span></span></td></tr>
+<tr class="codeline" data-linenumber="2199"><td class="num" id="LN2199">2199</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="2200"><td class="num" id="LN2200">2200</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="2201"><td class="num" id="LN2201">2201</td><td class="line"> <span class='string_literal'>"PopupPasteURIPaths"</span>, <span class='string_literal'>"edit-paste"</span>, <span class='macro'>N_(<span class='string_literal'>"Paste _Filenames"</span>)<span class='macro_popup'>("Paste _Filenames")</span></span>, <span class='string_literal'>""</span>,</td></tr>
+<tr class="codeline" data-linenumber="2202"><td class="num" id="LN2202">2202</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2203"><td class="num" id="LN2203">2203</td><td class="line"> <span class='macro'>G_CALLBACK (edit_paste_callback)<span class='macro_popup'>((GCallback) (edit_paste_callback))</span></span></td></tr>
+<tr class="codeline" data-linenumber="2204"><td class="num" id="LN2204">2204</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="2205"><td class="num" id="LN2205">2205</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="2206"><td class="num" id="LN2206">2206</td><td class="line"> <span class='string_literal'>"PopupNewTerminal"</span>, <span class='string_literal'>"utilities-terminal"</span>, <span class='macro'>N_(<span class='string_literal'>"Open _Terminal"</span>)<span class='macro_popup'>("Open _Terminal")</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2207"><td class="num" id="LN2207">2207</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2208"><td class="num" id="LN2208">2208</td><td class="line"> <span class='macro'>G_CALLBACK (file_new_window_callback)<span class='macro_popup'>((GCallback) (file_new_window_callback))</span></span></td></tr>
+<tr class="codeline" data-linenumber="2209"><td class="num" id="LN2209">2209</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="2210"><td class="num" id="LN2210">2210</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="2211"><td class="num" id="LN2211">2211</td><td class="line"> <span class='string_literal'>"PopupNewTab"</span>, <span class='string_literal'>"tab-new"</span>, <span class='macro'>N_(<span class='string_literal'>"Open Ta_b"</span>)<span class='macro_popup'>("Open Ta_b")</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2212"><td class="num" id="LN2212">2212</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2213"><td class="num" id="LN2213">2213</td><td class="line"> <span class='macro'>G_CALLBACK (file_new_tab_callback)<span class='macro_popup'>((GCallback) (file_new_tab_callback))</span></span></td></tr>
+<tr class="codeline" data-linenumber="2214"><td class="num" id="LN2214">2214</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="2215"><td class="num" id="LN2215">2215</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="2216"><td class="num" id="LN2216">2216</td><td class="line"> <span class='string_literal'>"PopupCloseWindow"</span>, <span class='string_literal'>"window-close"</span>, <span class='macro'>N_(<span class='string_literal'>"C_lose Window"</span>)<span class='macro_popup'>("C_lose Window")</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2217"><td class="num" id="LN2217">2217</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2218"><td class="num" id="LN2218">2218</td><td class="line"> <span class='macro'>G_CALLBACK (file_close_window_callback)<span class='macro_popup'>((GCallback) (file_close_window_callback))</span></span></td></tr>
+<tr class="codeline" data-linenumber="2219"><td class="num" id="LN2219">2219</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="2220"><td class="num" id="LN2220">2220</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="2221"><td class="num" id="LN2221">2221</td><td class="line"> <span class='string_literal'>"PopupCloseTab"</span>, <span class='string_literal'>"window-close"</span>, <span class='macro'>N_(<span class='string_literal'>"C_lose Tab"</span>)<span class='macro_popup'>("C_lose Tab")</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2222"><td class="num" id="LN2222">2222</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2223"><td class="num" id="LN2223">2223</td><td class="line"> <span class='macro'>G_CALLBACK (file_close_tab_callback)<span class='macro_popup'>((GCallback) (file_close_tab_callback))</span></span></td></tr>
+<tr class="codeline" data-linenumber="2224"><td class="num" id="LN2224">2224</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="2225"><td class="num" id="LN2225">2225</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="2226"><td class="num" id="LN2226">2226</td><td class="line"> <span class='string_literal'>"PopupLeaveFullscreen"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>N_(<span class='string_literal'>"L_eave Full Screen"</span>)<span class='macro_popup'>("L_eave Full Screen")</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2227"><td class="num" id="LN2227">2227</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2228"><td class="num" id="LN2228">2228</td><td class="line"> <span class='macro'>G_CALLBACK (popup_leave_fullscreen_callback)<span class='macro_popup'>((GCallback) (popup_leave_fullscreen_callback))</span></span></td></tr>
+<tr class="codeline" data-linenumber="2229"><td class="num" id="LN2229">2229</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="2230"><td class="num" id="LN2230">2230</td><td class="line"> { <span class='string_literal'>"PopupInputMethods"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>N_(<span class='string_literal'>"_Input Methods"</span>)<span class='macro_popup'>("_Input Methods")</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span> }</td></tr>
+<tr class="codeline" data-linenumber="2231"><td class="num" id="LN2231">2231</td><td class="line"> };</td></tr>
+<tr class="codeline" data-linenumber="2232"><td class="num" id="LN2232">2232</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2233"><td class="num" id="LN2233">2233</td><td class="line"> <span class='keyword'>const</span> GtkToggleActionEntry toggle_menu_entries[] =</td></tr>
+<tr class="codeline" data-linenumber="2234"><td class="num" id="LN2234">2234</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="2235"><td class="num" id="LN2235">2235</td><td class="line"> <span class='comment'>/* View Menu */</span></td></tr>
+<tr class="codeline" data-linenumber="2236"><td class="num" id="LN2236">2236</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="2237"><td class="num" id="LN2237">2237</td><td class="line"> <span class='string_literal'>"ViewMenubar"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>N_(<span class='string_literal'>"Show _Menubar"</span>)<span class='macro_popup'>("Show _Menubar")</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2238"><td class="num" id="LN2238">2238</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2239"><td class="num" id="LN2239">2239</td><td class="line"> <span class='macro'>G_CALLBACK (view_menubar_toggled_callback)<span class='macro_popup'>((GCallback) (view_menubar_toggled_callback))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2240"><td class="num" id="LN2240">2240</td><td class="line"> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="2241"><td class="num" id="LN2241">2241</td><td class="line"> },</td></tr>
+<tr class="codeline" data-linenumber="2242"><td class="num" id="LN2242">2242</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="2243"><td class="num" id="LN2243">2243</td><td class="line"> <span class='string_literal'>"ViewFullscreen"</span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>N_(<span class='string_literal'>"_Full Screen"</span>)<span class='macro_popup'>("_Full Screen")</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2244"><td class="num" id="LN2244">2244</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2245"><td class="num" id="LN2245">2245</td><td class="line"> <span class='macro'>G_CALLBACK (view_fullscreen_toggled_callback)<span class='macro_popup'>((GCallback) (view_fullscreen_toggled_callback))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2246"><td class="num" id="LN2246">2246</td><td class="line"> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="2247"><td class="num" id="LN2247">2247</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="2248"><td class="num" id="LN2248">2248</td><td class="line"> };</td></tr>
+<tr class="codeline" data-linenumber="2249"><td class="num" id="LN2249">2249</td><td class="line"> TerminalWindowPrivate *priv;</td></tr>
+<tr class="codeline" data-linenumber="2250"><td class="num" id="LN2250">2250</td><td class="line"> TerminalApp *app;</td></tr>
+<tr class="codeline" data-linenumber="2251"><td class="num" id="LN2251">2251</td><td class="line"> GtkActionGroup *action_group;</td></tr>
+<tr class="codeline" data-linenumber="2252"><td class="num" id="LN2252">2252</td><td class="line"> GtkAction *action;</td></tr>
+<tr class="codeline" data-linenumber="2253"><td class="num" id="LN2253">2253</td><td class="line"> GtkUIManager *manager;</td></tr>
+<tr class="codeline" data-linenumber="2254"><td class="num" id="LN2254">2254</td><td class="line"> GError *error;</td></tr>
+<tr class="codeline" data-linenumber="2255"><td class="num" id="LN2255">2255</td><td class="line"> GtkWindowGroup *window_group;</td></tr>
+<tr class="codeline" data-linenumber="2256"><td class="num" id="LN2256">2256</td><td class="line"> GtkAccelGroup *accel_group;</td></tr>
+<tr class="codeline" data-linenumber="2257"><td class="num" id="LN2257">2257</td><td class="line"> GtkClipboard *clipboard;</td></tr>
+<tr class="codeline" data-linenumber="2258"><td class="num" id="LN2258">2258</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2259"><td class="num" id="LN2259">2259</td><td class="line"> priv = window-&gt;priv = terminal_window_get_instance_private (window);</td></tr>
+<tr class="codeline" data-linenumber="2260"><td class="num" id="LN2260">2260</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2261"><td class="num" id="LN2261">2261</td><td class="line"> <span class='macro'>g_signal_connect (G_OBJECT (window), <span class='string_literal'>"delete_event"</span>,<span class='macro_popup'>g_signal_connect_data ((((((GObject*) (void *) g_type_check_instance_cast<br> ((GTypeInstance*) ((window)), (((GType) ((20) &lt;&lt; (2)))<br>)))))), ("delete_event"), (((GCallback) (terminal_window_delete_event<br>))), (((void*)0)), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="2262"><td class="num" id="LN2262">2262</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_window_delete_event),<span class='macro_popup'>g_signal_connect_data ((((((GObject*) (void *) g_type_check_instance_cast<br> ((GTypeInstance*) ((window)), (((GType) ((20) &lt;&lt; (2)))<br>)))))), ("delete_event"), (((GCallback) (terminal_window_delete_event<br>))), (((void*)0)), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="2263"><td class="num" id="LN2263">2263</td><td class="line"> <span class='macro'>NULL)<span class='macro_popup'>g_signal_connect_data ((((((GObject*) (void *) g_type_check_instance_cast<br> ((GTypeInstance*) ((window)), (((GType) ((20) &lt;&lt; (2)))<br>)))))), ("delete_event"), (((GCallback) (terminal_window_delete_event<br>))), (((void*)0)), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2264"><td class="num" id="LN2264">2264</td><td class="line"> <span class='macro'>g_signal_connect (G_OBJECT (window), <span class='string_literal'>"focus_in_event"</span>,<span class='macro_popup'>g_signal_connect_data ((((((GObject*) (void *) g_type_check_instance_cast<br> ((GTypeInstance*) ((window)), (((GType) ((20) &lt;&lt; (2)))<br>)))))), ("focus_in_event"), (((GCallback) (terminal_window_focus_in_event<br>))), (((void*)0)), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="2265"><td class="num" id="LN2265">2265</td><td class="line"> <span class='macro'>G_CALLBACK(terminal_window_focus_in_event),<span class='macro_popup'>g_signal_connect_data ((((((GObject*) (void *) g_type_check_instance_cast<br> ((GTypeInstance*) ((window)), (((GType) ((20) &lt;&lt; (2)))<br>)))))), ("focus_in_event"), (((GCallback) (terminal_window_focus_in_event<br>))), (((void*)0)), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="2266"><td class="num" id="LN2266">2266</td><td class="line"> <span class='macro'>NULL)<span class='macro_popup'>g_signal_connect_data ((((((GObject*) (void *) g_type_check_instance_cast<br> ((GTypeInstance*) ((window)), (((GType) ((20) &lt;&lt; (2)))<br>)))))), ("focus_in_event"), (((GCallback) (terminal_window_focus_in_event<br>))), (((void*)0)), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2267"><td class="num" id="LN2267">2267</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2268"><td class="num" id="LN2268">2268</td><td class="line"><span class='directive'>#ifdef MATE_ENABLE_DEBUG</span></td></tr>
+<tr class="codeline" data-linenumber="2269"><td class="num" id="LN2269">2269</td><td class="line"> <span class='macro'>_TERMINAL_DEBUG_IF (TERMINAL_DEBUG_GEOMETRY)<span class='macro_popup'>if (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="2270"><td class="num" id="LN2270">2270</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="2271"><td class="num" id="LN2271">2271</td><td class="line"> <span class='macro'>g_signal_connect_after (window, <span class='string_literal'>"size-allocate"</span>, G_CALLBACK (terminal_window_size_allocate_cb), NULL)<span class='macro_popup'>g_signal_connect_data ((window), ("size-allocate"), (((GCallback<br>) (terminal_window_size_allocate_cb))), (((void*)0)), ((void*<br>)0), G_CONNECT_AFTER)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2272"><td class="num" id="LN2272">2272</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="2273"><td class="num" id="LN2273">2273</td><td class="line"><span class='directive'>#endif</span></td></tr>
+<tr class="codeline" data-linenumber="2274"><td class="num" id="LN2274">2274</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2275"><td class="num" id="LN2275">2275</td><td class="line"> GtkStyleContext *context;</td></tr>
+<tr class="codeline" data-linenumber="2276"><td class="num" id="LN2276">2276</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2277"><td class="num" id="LN2277">2277</td><td class="line"> context = gtk_widget_get_style_context (<span class='macro'>GTK_WIDGET (window)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_widget_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="2278"><td class="num" id="LN2278">2278</td><td class="line"> gtk_style_context_add_class (context, <span class='string_literal'>"mate-terminal"</span>);</td></tr>
+<tr class="codeline" data-linenumber="2279"><td class="num" id="LN2279">2279</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2280"><td class="num" id="LN2280">2280</td><td class="line"> gtk_window_set_title (<span class='macro'>GTK_WINDOW (window)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_window_get_type ()))))))</span></span>, <span class='macro'>_(<span class='string_literal'>"Terminal"</span>)<span class='macro_popup'>gettext ("Terminal")</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="2281"><td class="num" id="LN2281">2281</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2282"><td class="num" id="LN2282">2282</td><td class="line"> priv-&gt;active_screen = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2283"><td class="num" id="LN2283">2283</td><td class="line"> priv-&gt;menubar_visible = <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2284"><td class="num" id="LN2284">2284</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2285"><td class="num" id="LN2285">2285</td><td class="line"> priv-&gt;main_vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);</td></tr>
+<tr class="codeline" data-linenumber="2286"><td class="num" id="LN2286">2286</td><td class="line"> gtk_container_add (<span class='macro'>GTK_CONTAINER (window)<span class='macro_popup'>((((GtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_container_get_type ()))))))</span></span>, priv-&gt;main_vbox);</td></tr>
+<tr class="codeline" data-linenumber="2287"><td class="num" id="LN2287">2287</td><td class="line"> gtk_widget_show (priv-&gt;main_vbox);</td></tr>
+<tr class="codeline" data-linenumber="2288"><td class="num" id="LN2288">2288</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2289"><td class="num" id="LN2289">2289</td><td class="line"> priv-&gt;notebook = gtk_notebook_new ();</td></tr>
+<tr class="codeline" data-linenumber="2290"><td class="num" id="LN2290">2290</td><td class="line"> gtk_notebook_set_scrollable (<span class='macro'>GTK_NOTEBOOK (priv-&gt;notebook)<span class='macro_popup'>((((GtkNotebook*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((priv-&gt;notebook)), ((gtk_notebook_get_type ()))))))</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="2291"><td class="num" id="LN2291">2291</td><td class="line"> gtk_notebook_set_show_border (<span class='macro'>GTK_NOTEBOOK (priv-&gt;notebook)<span class='macro_popup'>((((GtkNotebook*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((priv-&gt;notebook)), ((gtk_notebook_get_type ()))))))</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="2292"><td class="num" id="LN2292">2292</td><td class="line"> gtk_notebook_set_show_tabs (<span class='macro'>GTK_NOTEBOOK (priv-&gt;notebook)<span class='macro_popup'>((((GtkNotebook*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((priv-&gt;notebook)), ((gtk_notebook_get_type ()))))))</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="2293"><td class="num" id="LN2293">2293</td><td class="line"> gtk_notebook_set_group_name (<span class='macro'>GTK_NOTEBOOK (priv-&gt;notebook)<span class='macro_popup'>((((GtkNotebook*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((priv-&gt;notebook)), ((gtk_notebook_get_type ()))))))</span></span>, <span class='macro'>I_(<span class='string_literal'>"mate-terminal-window"</span>)<span class='macro_popup'>g_intern_static_string ("mate-terminal-window")</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="2294"><td class="num" id="LN2294">2294</td><td class="line"> <span class='macro'>g_signal_connect (priv-&gt;notebook, <span class='string_literal'>"button-press-event"</span>,<span class='macro_popup'>g_signal_connect_data ((priv-&gt;notebook), ("button-press-event"<br>), (((GCallback) (notebook_button_press_cb))), (settings_global<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="2295"><td class="num" id="LN2295">2295</td><td class="line"> <span class='macro'>G_CALLBACK (notebook_button_press_cb), settings_global)<span class='macro_popup'>g_signal_connect_data ((priv-&gt;notebook), ("button-press-event"<br>), (((GCallback) (notebook_button_press_cb))), (settings_global<br>), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2296"><td class="num" id="LN2296">2296</td><td class="line"> <span class='macro'>g_signal_connect (window, <span class='string_literal'>"key-press-event"</span>,<span class='macro_popup'>g_signal_connect_data ((window), ("key-press-event"), (((GCallback<br>) (window_key_press_cb))), (settings_global), ((void*)0), (GConnectFlags<br>) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="2297"><td class="num" id="LN2297">2297</td><td class="line"> <span class='macro'>G_CALLBACK (window_key_press_cb), settings_global)<span class='macro_popup'>g_signal_connect_data ((window), ("key-press-event"), (((GCallback<br>) (window_key_press_cb))), (settings_global), ((void*)0), (GConnectFlags<br>) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2298"><td class="num" id="LN2298">2298</td><td class="line"> <span class='macro'>g_signal_connect (priv-&gt;notebook, <span class='string_literal'>"popup-menu"</span>,<span class='macro_popup'>g_signal_connect_data ((priv-&gt;notebook), ("popup-menu"), (<br>((GCallback) (notebook_popup_menu_cb))), (window), ((void*)0)<br>, (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="2299"><td class="num" id="LN2299">2299</td><td class="line"> <span class='macro'>G_CALLBACK (notebook_popup_menu_cb), window)<span class='macro_popup'>g_signal_connect_data ((priv-&gt;notebook), ("popup-menu"), (<br>((GCallback) (notebook_popup_menu_cb))), (window), ((void*)0)<br>, (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2300"><td class="num" id="LN2300">2300</td><td class="line"> <span class='macro'>g_signal_connect_after (priv-&gt;notebook, <span class='string_literal'>"switch-page"</span>,<span class='macro_popup'>g_signal_connect_data ((priv-&gt;notebook), ("switch-page"), (<br>((GCallback) (notebook_page_selected_callback))), (window), (<br>(void*)0), G_CONNECT_AFTER)</span></span></td></tr>
+<tr class="codeline" data-linenumber="2301"><td class="num" id="LN2301">2301</td><td class="line"> <span class='macro'>G_CALLBACK (notebook_page_selected_callback), window)<span class='macro_popup'>g_signal_connect_data ((priv-&gt;notebook), ("switch-page"), (<br>((GCallback) (notebook_page_selected_callback))), (window), (<br>(void*)0), G_CONNECT_AFTER)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2302"><td class="num" id="LN2302">2302</td><td class="line"> <span class='macro'>g_signal_connect_after (priv-&gt;notebook, <span class='string_literal'>"page-added"</span>,<span class='macro_popup'>g_signal_connect_data ((priv-&gt;notebook), ("page-added"), (<br>((GCallback) (notebook_page_added_callback))), (window), ((void<br>*)0), G_CONNECT_AFTER)</span></span></td></tr>
+<tr class="codeline" data-linenumber="2303"><td class="num" id="LN2303">2303</td><td class="line"> <span class='macro'>G_CALLBACK (notebook_page_added_callback), window)<span class='macro_popup'>g_signal_connect_data ((priv-&gt;notebook), ("page-added"), (<br>((GCallback) (notebook_page_added_callback))), (window), ((void<br>*)0), G_CONNECT_AFTER)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2304"><td class="num" id="LN2304">2304</td><td class="line"> <span class='macro'>g_signal_connect_after (priv-&gt;notebook, <span class='string_literal'>"page-removed"</span>,<span class='macro_popup'>g_signal_connect_data ((priv-&gt;notebook), ("page-removed"),<br> (((GCallback) (notebook_page_removed_callback))), (window), (<br>(void*)0), G_CONNECT_AFTER)</span></span></td></tr>
+<tr class="codeline" data-linenumber="2305"><td class="num" id="LN2305">2305</td><td class="line"> <span class='macro'>G_CALLBACK (notebook_page_removed_callback), window)<span class='macro_popup'>g_signal_connect_data ((priv-&gt;notebook), ("page-removed"),<br> (((GCallback) (notebook_page_removed_callback))), (window), (<br>(void*)0), G_CONNECT_AFTER)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2306"><td class="num" id="LN2306">2306</td><td class="line"> g_signal_connect_data (priv-&gt;notebook, <span class='string_literal'>"page-reordered"</span>,</td></tr>
+<tr class="codeline" data-linenumber="2307"><td class="num" id="LN2307">2307</td><td class="line"> <span class='macro'>G_CALLBACK (terminal_window_update_tabs_menu_sensitivity)<span class='macro_popup'>((GCallback) (terminal_window_update_tabs_menu_sensitivity))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2308"><td class="num" id="LN2308">2308</td><td class="line"> window, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, G_CONNECT_SWAPPED | G_CONNECT_AFTER);</td></tr>
+<tr class="codeline" data-linenumber="2309"><td class="num" id="LN2309">2309</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2310"><td class="num" id="LN2310">2310</td><td class="line"> gtk_widget_add_events (priv-&gt;notebook, GDK_SCROLL_MASK);</td></tr>
+<tr class="codeline" data-linenumber="2311"><td class="num" id="LN2311">2311</td><td class="line"> <span class='macro'>g_signal_connect (priv-&gt;notebook, <span class='string_literal'>"scroll-event"</span>,<span class='macro_popup'>g_signal_connect_data ((priv-&gt;notebook), ("scroll-event"),<br> (((GCallback) (notebook_scroll_event_cb))), (window), ((void<br>*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="2312"><td class="num" id="LN2312">2312</td><td class="line"> <span class='macro'>G_CALLBACK (notebook_scroll_event_cb), window)<span class='macro_popup'>g_signal_connect_data ((priv-&gt;notebook), ("scroll-event"),<br> (((GCallback) (notebook_scroll_event_cb))), (window), ((void<br>*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2313"><td class="num" id="LN2313">2313</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2314"><td class="num" id="LN2314">2314</td><td class="line"> <span class='macro'>g_signal_connect (priv-&gt;notebook, <span class='string_literal'>"create-window"</span>,<span class='macro_popup'>g_signal_connect_data ((priv-&gt;notebook), ("create-window")<br>, (((GCallback) (handle_tab_droped_on_desktop))), (window), (<br>(void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="2315"><td class="num" id="LN2315">2315</td><td class="line"> <span class='macro'>G_CALLBACK (handle_tab_droped_on_desktop), window)<span class='macro_popup'>g_signal_connect_data ((priv-&gt;notebook), ("create-window")<br>, (((GCallback) (handle_tab_droped_on_desktop))), (window), (<br>(void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2316"><td class="num" id="LN2316">2316</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2317"><td class="num" id="LN2317">2317</td><td class="line"> gtk_box_pack_end (<span class='macro'>GTK_BOX (priv-&gt;main_vbox)<span class='macro_popup'>((((GtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((priv-&gt;main_vbox)), ((gtk_box_get_type ()))))))</span></span>, priv-&gt;notebook, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>, 0);</td></tr>
+<tr class="codeline" data-linenumber="2318"><td class="num" id="LN2318">2318</td><td class="line"> gtk_widget_show (priv-&gt;notebook);</td></tr>
+<tr class="codeline" data-linenumber="2319"><td class="num" id="LN2319">2319</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2320"><td class="num" id="LN2320">2320</td><td class="line"> priv-&gt;old_char_width = -1;</td></tr>
+<tr class="codeline" data-linenumber="2321"><td class="num" id="LN2321">2321</td><td class="line"> priv-&gt;old_char_height = -1;</td></tr>
+<tr class="codeline" data-linenumber="2322"><td class="num" id="LN2322">2322</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2323"><td class="num" id="LN2323">2323</td><td class="line"> priv-&gt;old_chrome_width = -1;</td></tr>
+<tr class="codeline" data-linenumber="2324"><td class="num" id="LN2324">2324</td><td class="line"> priv-&gt;old_chrome_height = -1;</td></tr>
+<tr class="codeline" data-linenumber="2325"><td class="num" id="LN2325">2325</td><td class="line"> priv-&gt;old_padding_width = -1;</td></tr>
+<tr class="codeline" data-linenumber="2326"><td class="num" id="LN2326">2326</td><td class="line"> priv-&gt;old_padding_height = -1;</td></tr>
+<tr class="codeline" data-linenumber="2327"><td class="num" id="LN2327">2327</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2328"><td class="num" id="LN2328">2328</td><td class="line"> priv-&gt;old_geometry_widget = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2329"><td class="num" id="LN2329">2329</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2330"><td class="num" id="LN2330">2330</td><td class="line"> <span class='comment'>/* Create the UI manager */</span></td></tr>
+<tr class="codeline" data-linenumber="2331"><td class="num" id="LN2331">2331</td><td class="line"> manager = priv-&gt;ui_manager = gtk_ui_manager_new ();</td></tr>
+<tr class="codeline" data-linenumber="2332"><td class="num" id="LN2332">2332</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2333"><td class="num" id="LN2333">2333</td><td class="line"> accel_group = gtk_ui_manager_get_accel_group (manager);</td></tr>
+<tr class="codeline" data-linenumber="2334"><td class="num" id="LN2334">2334</td><td class="line"> gtk_window_add_accel_group (<span class='macro'>GTK_WINDOW (window)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_window_get_type ()))))))</span></span>, accel_group);</td></tr>
+<tr class="codeline" data-linenumber="2335"><td class="num" id="LN2335">2335</td><td class="line"> <span class='comment'>/* Workaround for bug #453193, bug #138609 and bug #559728 */</span></td></tr>
+<tr class="codeline" data-linenumber="2336"><td class="num" id="LN2336">2336</td><td class="line"> <span class='macro'>g_signal_connect_after (accel_group, <span class='string_literal'>"accel-activate"</span>,<span class='macro_popup'>g_signal_connect_data ((accel_group), ("accel-activate"), (((<br>GCallback) (terminal_window_accel_activate_cb))), (window), (<br>(void*)0), G_CONNECT_AFTER)</span></span></td></tr>
+<tr class="codeline" data-linenumber="2337"><td class="num" id="LN2337">2337</td><td class="line"> <span class='macro'>G_CALLBACK (terminal_window_accel_activate_cb), window)<span class='macro_popup'>g_signal_connect_data ((accel_group), ("accel-activate"), (((<br>GCallback) (terminal_window_accel_activate_cb))), (window), (<br>(void*)0), G_CONNECT_AFTER)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2338"><td class="num" id="LN2338">2338</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2339"><td class="num" id="LN2339">2339</td><td class="line"> <span class='comment'>/* Create the actions */</span></td></tr>
+<tr class="codeline" data-linenumber="2340"><td class="num" id="LN2340">2340</td><td class="line"> <span class='comment'>/* Note that this action group name is used in terminal-accels.c; do not change it */</span></td></tr>
+<tr class="codeline" data-linenumber="2341"><td class="num" id="LN2341">2341</td><td class="line"> <span class='macro'>G_GNUC_BEGIN_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic push
+ clang diagnostic ignored "-Wdeprecated-declarations"<br>
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2342"><td class="num" id="LN2342">2342</td><td class="line"> priv-&gt;action_group = action_group = gtk_action_group_new (<span class='string_literal'>"Main"</span>);</td></tr>
+<tr class="codeline" data-linenumber="2343"><td class="num" id="LN2343">2343</td><td class="line"> gtk_action_group_set_translation_domain (action_group, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="2344"><td class="num" id="LN2344">2344</td><td class="line"> gtk_action_group_add_actions (action_group, menu_entries,</td></tr>
+<tr class="codeline" data-linenumber="2345"><td class="num" id="LN2345">2345</td><td class="line"> <span class='macro'>G_N_ELEMENTS (menu_entries)<span class='macro_popup'>(sizeof (menu_entries) / sizeof ((menu_entries)[0]))</span></span>, window);</td></tr>
+<tr class="codeline" data-linenumber="2346"><td class="num" id="LN2346">2346</td><td class="line"> gtk_action_group_add_toggle_actions (action_group,</td></tr>
+<tr class="codeline" data-linenumber="2347"><td class="num" id="LN2347">2347</td><td class="line"> toggle_menu_entries,</td></tr>
+<tr class="codeline" data-linenumber="2348"><td class="num" id="LN2348">2348</td><td class="line"> <span class='macro'>G_N_ELEMENTS (toggle_menu_entries)<span class='macro_popup'>(sizeof (toggle_menu_entries) / sizeof ((toggle_menu_entries)<br>[0]))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2349"><td class="num" id="LN2349">2349</td><td class="line"> window);</td></tr>
+<tr class="codeline" data-linenumber="2350"><td class="num" id="LN2350">2350</td><td class="line"> <span class='macro'>G_GNUC_END_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic pop
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2351"><td class="num" id="LN2351">2351</td><td class="line"> gtk_ui_manager_insert_action_group (manager, action_group, 0);</td></tr>
+<tr class="codeline" data-linenumber="2352"><td class="num" id="LN2352">2352</td><td class="line"> g_object_unref (action_group);</td></tr>
+<tr class="codeline" data-linenumber="2353"><td class="num" id="LN2353">2353</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2354"><td class="num" id="LN2354">2354</td><td class="line"> clipboard = gtk_widget_get_clipboard (<span class='macro'>GTK_WIDGET (window)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_widget_get_type ()))))))</span></span>, <span class='macro'>GDK_SELECTION_CLIPBOARD<span class='macro_popup'>((GdkAtom)((gpointer) (gulong) (69)))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="2355"><td class="num" id="LN2355">2355</td><td class="line"> <span class='macro'>g_signal_connect_swapped (clipboard, <span class='string_literal'>"owner-change"</span>,<span class='macro_popup'>g_signal_connect_data ((clipboard), ("owner-change"), (((GCallback<br>) (update_edit_menu))), (window), ((void*)0), G_CONNECT_SWAPPED<br>)</span></span></td></tr>
+<tr class="codeline" data-linenumber="2356"><td class="num" id="LN2356">2356</td><td class="line"> <span class='macro'>G_CALLBACK (update_edit_menu), window)<span class='macro_popup'>g_signal_connect_data ((clipboard), ("owner-change"), (((GCallback<br>) (update_edit_menu))), (window), ((void*)0), G_CONNECT_SWAPPED<br>)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2357"><td class="num" id="LN2357">2357</td><td class="line"> update_edit_menu (window);</td></tr>
+<tr class="codeline" data-linenumber="2358"><td class="num" id="LN2358">2358</td><td class="line"> <span class='comment'>/* Idem for this action, since the window is not fullscreen. */</span></td></tr>
+<tr class="codeline" data-linenumber="2359"><td class="num" id="LN2359">2359</td><td class="line"> <span class='macro'>G_GNUC_BEGIN_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic push
+ clang diagnostic ignored "-Wdeprecated-declarations"<br>
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2360"><td class="num" id="LN2360">2360</td><td class="line"> action = gtk_action_group_get_action (priv-&gt;action_group, <span class='string_literal'>"PopupLeaveFullscreen"</span>);</td></tr>
+<tr class="codeline" data-linenumber="2361"><td class="num" id="LN2361">2361</td><td class="line"> gtk_action_set_visible (action, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="2362"><td class="num" id="LN2362">2362</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2363"><td class="num" id="LN2363">2363</td><td class="line"><span class='directive'>#ifndef ENABLE_SAVE</span></td></tr>
+<tr class="codeline" data-linenumber="2364"><td class="num" id="LN2364">2364</td><td class="line"> action = gtk_action_group_get_action (priv-&gt;action_group, <span class='string_literal'>"FileSaveContents"</span>);</td></tr>
+<tr class="codeline" data-linenumber="2365"><td class="num" id="LN2365">2365</td><td class="line"> gtk_action_set_visible (action, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="2366"><td class="num" id="LN2366">2366</td><td class="line"><span class='directive'>#endif</span></td></tr>
+<tr class="codeline" data-linenumber="2367"><td class="num" id="LN2367">2367</td><td class="line"> <span class='macro'>G_GNUC_END_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic pop
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2368"><td class="num" id="LN2368">2368</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2369"><td class="num" id="LN2369">2369</td><td class="line"> <span class='comment'>/* Load the UI */</span></td></tr>
+<tr class="codeline" data-linenumber="2370"><td class="num" id="LN2370">2370</td><td class="line"> error = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2371"><td class="num" id="LN2371">2371</td><td class="line"> priv-&gt;ui_id = gtk_ui_manager_add_ui_from_resource (manager,</td></tr>
+<tr class="codeline" data-linenumber="2372"><td class="num" id="LN2372">2372</td><td class="line"> <span class='macro'>TERMINAL_RESOURCES_PATH_PREFIX<span class='macro_popup'>"/org/mate/terminal"</span></span> <span class='macro'>G_DIR_SEPARATOR_S<span class='macro_popup'>"/"</span></span> <span class='string_literal'>"ui/terminal.xml"</span>,</td></tr>
+<tr class="codeline" data-linenumber="2373"><td class="num" id="LN2373">2373</td><td class="line"> &amp;error);</td></tr>
+<tr class="codeline" data-linenumber="2374"><td class="num" id="LN2374">2374</td><td class="line"> <span class='macro'>g_assert_no_error (error)<span class='macro_popup'>do { if (error) g_assertion_message_error (((gchar*) 0), "terminal-window.c"<br>, 2374, ((const char*) (__func__)), "error", error, 0, 0); } while<br> (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2375"><td class="num" id="LN2375">2375</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2376"><td class="num" id="LN2376">2376</td><td class="line"> priv-&gt;menubar = gtk_ui_manager_get_widget (manager, <span class='string_literal'>"/menubar"</span>);</td></tr>
+<tr class="codeline" data-linenumber="2377"><td class="num" id="LN2377">2377</td><td class="line"> gtk_box_pack_start (<span class='macro'>GTK_BOX (priv-&gt;main_vbox)<span class='macro_popup'>((((GtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((priv-&gt;main_vbox)), ((gtk_box_get_type ()))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2378"><td class="num" id="LN2378">2378</td><td class="line"> priv-&gt;menubar,</td></tr>
+<tr class="codeline" data-linenumber="2379"><td class="num" id="LN2379">2379</td><td class="line"> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>, 0);</td></tr>
+<tr class="codeline" data-linenumber="2380"><td class="num" id="LN2380">2380</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2381"><td class="num" id="LN2381">2381</td><td class="line"> <span class='comment'>/* Add tabs menu */</span></td></tr>
+<tr class="codeline" data-linenumber="2382"><td class="num" id="LN2382">2382</td><td class="line"> priv-&gt;tabs_menu = terminal_tabs_menu_new (window);</td></tr>
+<tr class="codeline" data-linenumber="2383"><td class="num" id="LN2383">2383</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2384"><td class="num" id="LN2384">2384</td><td class="line"> app = terminal_app_get ();</td></tr>
+<tr class="codeline" data-linenumber="2385"><td class="num" id="LN2385">2385</td><td class="line"> terminal_window_profile_list_changed_cb (app, window);</td></tr>
+<tr class="codeline" data-linenumber="2386"><td class="num" id="LN2386">2386</td><td class="line"> <span class='macro'>g_signal_connect (app, <span class='string_literal'>"profile-list-changed"</span>,<span class='macro_popup'>g_signal_connect_data ((app), ("profile-list-changed"), (((GCallback<br>) (terminal_window_profile_list_changed_cb))), (window), ((void<br>*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="2387"><td class="num" id="LN2387">2387</td><td class="line"> <span class='macro'>G_CALLBACK (terminal_window_profile_list_changed_cb), window)<span class='macro_popup'>g_signal_connect_data ((app), ("profile-list-changed"), (((GCallback<br>) (terminal_window_profile_list_changed_cb))), (window), ((void<br>*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2388"><td class="num" id="LN2388">2388</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2389"><td class="num" id="LN2389">2389</td><td class="line"> terminal_window_encoding_list_changed_cb (app, window);</td></tr>
+<tr class="codeline" data-linenumber="2390"><td class="num" id="LN2390">2390</td><td class="line"> <span class='macro'>g_signal_connect (app, <span class='string_literal'>"encoding-list-changed"</span>,<span class='macro_popup'>g_signal_connect_data ((app), ("encoding-list-changed"), (((GCallback<br>) (terminal_window_encoding_list_changed_cb))), (window), ((void<br>*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="2391"><td class="num" id="LN2391">2391</td><td class="line"> <span class='macro'>G_CALLBACK (terminal_window_encoding_list_changed_cb), window)<span class='macro_popup'>g_signal_connect_data ((app), ("encoding-list-changed"), (((GCallback<br>) (terminal_window_encoding_list_changed_cb))), (window), ((void<br>*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2392"><td class="num" id="LN2392">2392</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2393"><td class="num" id="LN2393">2393</td><td class="line"> terminal_window_set_menubar_visible (window, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="2394"><td class="num" id="LN2394">2394</td><td class="line"> priv-&gt;use_default_menubar_visibility = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2395"><td class="num" id="LN2395">2395</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2396"><td class="num" id="LN2396">2396</td><td class="line"> terminal_window_update_size_to_menu (window);</td></tr>
+<tr class="codeline" data-linenumber="2397"><td class="num" id="LN2397">2397</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2398"><td class="num" id="LN2398">2398</td><td class="line"> <span class='comment'>/* We have to explicitly call this, since screen-changed is NOT</span></td></tr>
+<tr class="codeline" data-linenumber="2399"><td class="num" id="LN2399">2399</td><td class="line"> <span class='comment'>* emitted for the toplevel the first time!</span></td></tr>
+<tr class="codeline" data-linenumber="2400"><td class="num" id="LN2400">2400</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="2401"><td class="num" id="LN2401">2401</td><td class="line"> terminal_window_screen_update (window, gtk_widget_get_screen (<span class='macro'>GTK_WIDGET (window)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_widget_get_type ()))))))</span></span>));</td></tr>
+<tr class="codeline" data-linenumber="2402"><td class="num" id="LN2402">2402</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2403"><td class="num" id="LN2403">2403</td><td class="line"> window_group = gtk_window_group_new ();</td></tr>
+<tr class="codeline" data-linenumber="2404"><td class="num" id="LN2404">2404</td><td class="line"> gtk_window_group_add_window (window_group, <span class='macro'>GTK_WINDOW (window)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_window_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="2405"><td class="num" id="LN2405">2405</td><td class="line"> g_object_unref (window_group);</td></tr>
+<tr class="codeline" data-linenumber="2406"><td class="num" id="LN2406">2406</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2407"><td class="num" id="LN2407">2407</td><td class="line"> terminal_util_set_unique_role (<span class='macro'>GTK_WINDOW (window)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_window_get_type ()))))))</span></span>, <span class='string_literal'>"mate-terminal-window"</span>);</td></tr>
+<tr class="codeline" data-linenumber="2408"><td class="num" id="LN2408">2408</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="2409"><td class="num" id="LN2409">2409</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2410"><td class="num" id="LN2410">2410</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="2411"><td class="num" id="LN2411">2411</td><td class="line">terminal_window_class_init (TerminalWindowClass *klass)</td></tr>
+<tr class="codeline" data-linenumber="2412"><td class="num" id="LN2412">2412</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="2413"><td class="num" id="LN2413">2413</td><td class="line"> GObjectClass *object_class = <span class='macro'>G_OBJECT_CLASS (klass)<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((klass)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2414"><td class="num" id="LN2414">2414</td><td class="line"> GtkWidgetClass *widget_class = <span class='macro'>GTK_WIDGET_CLASS (klass)<span class='macro_popup'>((((GtkWidgetClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((klass)), ((gtk_widget_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2415"><td class="num" id="LN2415">2415</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2416"><td class="num" id="LN2416">2416</td><td class="line"> object_class-&gt;dispose = terminal_window_dispose;</td></tr>
+<tr class="codeline" data-linenumber="2417"><td class="num" id="LN2417">2417</td><td class="line"> object_class-&gt;finalize = terminal_window_finalize;</td></tr>
+<tr class="codeline" data-linenumber="2418"><td class="num" id="LN2418">2418</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2419"><td class="num" id="LN2419">2419</td><td class="line"> widget_class-&gt;show = terminal_window_show;</td></tr>
+<tr class="codeline" data-linenumber="2420"><td class="num" id="LN2420">2420</td><td class="line"> widget_class-&gt;realize = terminal_window_realize;</td></tr>
+<tr class="codeline" data-linenumber="2421"><td class="num" id="LN2421">2421</td><td class="line"> widget_class-&gt;draw = terminal_window_draw;</td></tr>
+<tr class="codeline" data-linenumber="2422"><td class="num" id="LN2422">2422</td><td class="line"> widget_class-&gt;map_event = terminal_window_map_event;</td></tr>
+<tr class="codeline" data-linenumber="2423"><td class="num" id="LN2423">2423</td><td class="line"> widget_class-&gt;window_state_event = terminal_window_state_event;</td></tr>
+<tr class="codeline" data-linenumber="2424"><td class="num" id="LN2424">2424</td><td class="line"> widget_class-&gt;screen_changed = terminal_window_screen_changed;</td></tr>
+<tr class="codeline" data-linenumber="2425"><td class="num" id="LN2425">2425</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="2426"><td class="num" id="LN2426">2426</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2427"><td class="num" id="LN2427">2427</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="2428"><td class="num" id="LN2428">2428</td><td class="line">terminal_window_dispose (GObject *object)</td></tr>
+<tr class="codeline" data-linenumber="2429"><td class="num" id="LN2429">2429</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="2430"><td class="num" id="LN2430">2430</td><td class="line"> TerminalWindow *window = <span class='macro'>TERMINAL_WINDOW (object)<span class='macro_popup'>((((TerminalWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((object)), ((terminal_window_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2431"><td class="num" id="LN2431">2431</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="2432"><td class="num" id="LN2432">2432</td><td class="line"> TerminalApp *app;</td></tr>
+<tr class="codeline" data-linenumber="2433"><td class="num" id="LN2433">2433</td><td class="line"> GdkScreen *screen;</td></tr>
+<tr class="codeline" data-linenumber="2434"><td class="num" id="LN2434">2434</td><td class="line"> GtkClipboard *clipboard;</td></tr>
+<tr class="codeline" data-linenumber="2435"><td class="num" id="LN2435">2435</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2436"><td class="num" id="LN2436">2436</td><td class="line"> remove_popup_info (window);</td></tr>
+<tr class="codeline" data-linenumber="2437"><td class="num" id="LN2437">2437</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2438"><td class="num" id="LN2438">2438</td><td class="line"> priv-&gt;disposed = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2439"><td class="num" id="LN2439">2439</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2440"><td class="num" id="LN2440">2440</td><td class="line"> <span class='keyword'>if</span> (priv-&gt;tabs_menu)</td></tr>
+<tr class="codeline" data-linenumber="2441"><td class="num" id="LN2441">2441</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="2442"><td class="num" id="LN2442">2442</td><td class="line"> g_object_unref (priv-&gt;tabs_menu);</td></tr>
+<tr class="codeline" data-linenumber="2443"><td class="num" id="LN2443">2443</td><td class="line"> priv-&gt;tabs_menu = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2444"><td class="num" id="LN2444">2444</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="2445"><td class="num" id="LN2445">2445</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2446"><td class="num" id="LN2446">2446</td><td class="line"> <span class='keyword'>if</span> (priv-&gt;profiles_action_group != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="2447"><td class="num" id="LN2447">2447</td><td class="line"> disconnect_profiles_from_actions_in_group (priv-&gt;profiles_action_group);</td></tr>
+<tr class="codeline" data-linenumber="2448"><td class="num" id="LN2448">2448</td><td class="line"> <span class='keyword'>if</span> (priv-&gt;new_terminal_action_group != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="2449"><td class="num" id="LN2449">2449</td><td class="line"> disconnect_profiles_from_actions_in_group (priv-&gt;new_terminal_action_group);</td></tr>
+<tr class="codeline" data-linenumber="2450"><td class="num" id="LN2450">2450</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2451"><td class="num" id="LN2451">2451</td><td class="line"> app = terminal_app_get ();</td></tr>
+<tr class="codeline" data-linenumber="2452"><td class="num" id="LN2452">2452</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (app,<span class='macro_popup'>g_signal_handlers_disconnect_matched ((app), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_window_profile_list_changed_cb)))<br>, (window))</span></span></td></tr>
+<tr class="codeline" data-linenumber="2453"><td class="num" id="LN2453">2453</td><td class="line"> <span class='macro'>G_CALLBACK (terminal_window_profile_list_changed_cb),<span class='macro_popup'>g_signal_handlers_disconnect_matched ((app), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_window_profile_list_changed_cb)))<br>, (window))</span></span></td></tr>
+<tr class="codeline" data-linenumber="2454"><td class="num" id="LN2454">2454</td><td class="line"> <span class='macro'>window)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((app), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_window_profile_list_changed_cb)))<br>, (window))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2455"><td class="num" id="LN2455">2455</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (app,<span class='macro_popup'>g_signal_handlers_disconnect_matched ((app), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_window_encoding_list_changed_cb))<br>), (window))</span></span></td></tr>
+<tr class="codeline" data-linenumber="2456"><td class="num" id="LN2456">2456</td><td class="line"> <span class='macro'>G_CALLBACK (terminal_window_encoding_list_changed_cb),<span class='macro_popup'>g_signal_handlers_disconnect_matched ((app), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_window_encoding_list_changed_cb))<br>), (window))</span></span></td></tr>
+<tr class="codeline" data-linenumber="2457"><td class="num" id="LN2457">2457</td><td class="line"> <span class='macro'>window)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((app), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_window_encoding_list_changed_cb))<br>), (window))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2458"><td class="num" id="LN2458">2458</td><td class="line"> clipboard = gtk_widget_get_clipboard (<span class='macro'>GTK_WIDGET (window)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_widget_get_type ()))))))</span></span>, <span class='macro'>GDK_SELECTION_CLIPBOARD<span class='macro_popup'>((GdkAtom)((gpointer) (gulong) (69)))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="2459"><td class="num" id="LN2459">2459</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (clipboard,<span class='macro_popup'>g_signal_handlers_disconnect_matched ((clipboard), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (update_edit_menu))), (window))</span></span></td></tr>
+<tr class="codeline" data-linenumber="2460"><td class="num" id="LN2460">2460</td><td class="line"> <span class='macro'>G_CALLBACK (update_edit_menu),<span class='macro_popup'>g_signal_handlers_disconnect_matched ((clipboard), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (update_edit_menu))), (window))</span></span></td></tr>
+<tr class="codeline" data-linenumber="2461"><td class="num" id="LN2461">2461</td><td class="line"> <span class='macro'>window)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((clipboard), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (update_edit_menu))), (window))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2462"><td class="num" id="LN2462">2462</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2463"><td class="num" id="LN2463">2463</td><td class="line"><span class='directive'>#ifdef GDK_WINDOWING_X11</span></td></tr>
+<tr class="codeline" data-linenumber="2464"><td class="num" id="LN2464">2464</td><td class="line"> screen = gtk_widget_get_screen (<span class='macro'>GTK_WIDGET (object)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((object)), ((gtk_widget_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="2465"><td class="num" id="LN2465">2465</td><td class="line"> <span class='keyword'>if</span> (screen &amp;&amp; <span class='macro'>GDK_IS_X11_SCREEN (screen)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(screen)); GType __t = ((gdk_x11_screen_get_type ())); gboolean<br> __r; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="2466"><td class="num" id="LN2466">2466</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="2467"><td class="num" id="LN2467">2467</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (screen,<span class='macro_popup'>g_signal_handlers_disconnect_matched ((screen), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_window_window_manager_changed_cb)<br>)), (window))</span></span></td></tr>
+<tr class="codeline" data-linenumber="2468"><td class="num" id="LN2468">2468</td><td class="line"> <span class='macro'>G_CALLBACK (terminal_window_window_manager_changed_cb),<span class='macro_popup'>g_signal_handlers_disconnect_matched ((screen), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_window_window_manager_changed_cb)<br>)), (window))</span></span></td></tr>
+<tr class="codeline" data-linenumber="2469"><td class="num" id="LN2469">2469</td><td class="line"> <span class='macro'>window)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((screen), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (terminal_window_window_manager_changed_cb)<br>)), (window))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2470"><td class="num" id="LN2470">2470</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="2471"><td class="num" id="LN2471">2471</td><td class="line"><span class='directive'>#endif</span></td></tr>
+<tr class="codeline" data-linenumber="2472"><td class="num" id="LN2472">2472</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2473"><td class="num" id="LN2473">2473</td><td class="line"> <span class='macro'>G_OBJECT_CLASS (terminal_window_parent_class)<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((terminal_window_parent_class)), (((GType) ((20) &lt;&lt;<br> (2))))))))</span></span>-&gt;dispose (object);</td></tr>
+<tr class="codeline" data-linenumber="2474"><td class="num" id="LN2474">2474</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="2475"><td class="num" id="LN2475">2475</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2476"><td class="num" id="LN2476">2476</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="2477"><td class="num" id="LN2477">2477</td><td class="line">terminal_window_finalize (GObject *object)</td></tr>
+<tr class="codeline" data-linenumber="2478"><td class="num" id="LN2478">2478</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="2479"><td class="num" id="LN2479">2479</td><td class="line"> TerminalWindow *window = <span class='macro'>TERMINAL_WINDOW (object)<span class='macro_popup'>((((TerminalWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((object)), ((terminal_window_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2480"><td class="num" id="LN2480">2480</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="2481"><td class="num" id="LN2481">2481</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2482"><td class="num" id="LN2482">2482</td><td class="line"> g_object_unref (priv-&gt;ui_manager);</td></tr>
+<tr class="codeline" data-linenumber="2483"><td class="num" id="LN2483">2483</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2484"><td class="num" id="LN2484">2484</td><td class="line"> <span class='keyword'>if</span> (priv-&gt;confirm_close_dialog)</td></tr>
+<tr class="codeline" data-linenumber="2485"><td class="num" id="LN2485">2485</td><td class="line"> gtk_dialog_response (<span class='macro'>GTK_DIALOG (priv-&gt;confirm_close_dialog)<span class='macro_popup'>((((GtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((priv-&gt;confirm_close_dialog)), ((gtk_dialog_get_type (<br>)))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2486"><td class="num" id="LN2486">2486</td><td class="line"> GTK_RESPONSE_DELETE_EVENT);</td></tr>
+<tr class="codeline" data-linenumber="2487"><td class="num" id="LN2487">2487</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2488"><td class="num" id="LN2488">2488</td><td class="line"> <span class='keyword'>if</span> (priv-&gt;search_find_dialog)</td></tr>
+<tr class="codeline" data-linenumber="2489"><td class="num" id="LN2489">2489</td><td class="line"> gtk_dialog_response (<span class='macro'>GTK_DIALOG (priv-&gt;search_find_dialog)<span class='macro_popup'>((((GtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((priv-&gt;search_find_dialog)), ((gtk_dialog_get_type ())<br>)))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2490"><td class="num" id="LN2490">2490</td><td class="line"> GTK_RESPONSE_DELETE_EVENT);</td></tr>
+<tr class="codeline" data-linenumber="2491"><td class="num" id="LN2491">2491</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2492"><td class="num" id="LN2492">2492</td><td class="line"> <span class='macro'>G_OBJECT_CLASS (terminal_window_parent_class)<span class='macro_popup'>((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((terminal_window_parent_class)), (((GType) ((20) &lt;&lt;<br> (2))))))))</span></span>-&gt;finalize (object);</td></tr>
+<tr class="codeline" data-linenumber="2493"><td class="num" id="LN2493">2493</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="2494"><td class="num" id="LN2494">2494</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2495"><td class="num" id="LN2495">2495</td><td class="line"><span class='keyword'>static</span> gboolean</td></tr>
+<tr class="codeline" data-linenumber="2496"><td class="num" id="LN2496">2496</td><td class="line">terminal_window_delete_event (GtkWidget *widget,</td></tr>
+<tr class="codeline" data-linenumber="2497"><td class="num" id="LN2497">2497</td><td class="line"> GdkEvent *event,</td></tr>
+<tr class="codeline" data-linenumber="2498"><td class="num" id="LN2498">2498</td><td class="line"> gpointer data)</td></tr>
+<tr class="codeline" data-linenumber="2499"><td class="num" id="LN2499">2499</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="2500"><td class="num" id="LN2500">2500</td><td class="line"> <span class='keyword'>return</span> confirm_close_window_or_tab (<span class='macro'>TERMINAL_WINDOW (widget)<span class='macro_popup'>((((TerminalWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((widget)), ((terminal_window_get_type ()))))))</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="2501"><td class="num" id="LN2501">2501</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="2502"><td class="num" id="LN2502">2502</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2503"><td class="num" id="LN2503">2503</td><td class="line"><span class='keyword'>static</span> gboolean</td></tr>
+<tr class="codeline" data-linenumber="2504"><td class="num" id="LN2504">2504</td><td class="line">terminal_window_focus_in_event (GtkWidget *widget,</td></tr>
+<tr class="codeline" data-linenumber="2505"><td class="num" id="LN2505">2505</td><td class="line"> GdkEventFocus *event,</td></tr>
+<tr class="codeline" data-linenumber="2506"><td class="num" id="LN2506">2506</td><td class="line"> gpointer data)</td></tr>
+<tr class="codeline" data-linenumber="2507"><td class="num" id="LN2507">2507</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="2508"><td class="num" id="LN2508">2508</td><td class="line"> TerminalWindow *window = <span class='macro'>TERMINAL_WINDOW (widget)<span class='macro_popup'>((((TerminalWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((widget)), ((terminal_window_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2509"><td class="num" id="LN2509">2509</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="2510"><td class="num" id="LN2510">2510</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2511"><td class="num" id="LN2511">2511</td><td class="line"> <span class='keyword'>if</span> (event-&gt;in)</td></tr>
+<tr class="codeline" data-linenumber="2512"><td class="num" id="LN2512">2512</td><td class="line"> priv-&gt;focus_time = g_get_real_time () / <span class='macro'>G_USEC_PER_SEC<span class='macro_popup'>1000000</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2513"><td class="num" id="LN2513">2513</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2514"><td class="num" id="LN2514">2514</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2515"><td class="num" id="LN2515">2515</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="2516"><td class="num" id="LN2516">2516</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2517"><td class="num" id="LN2517">2517</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="2518"><td class="num" id="LN2518">2518</td><td class="line">terminal_window_show (GtkWidget *widget)</td></tr>
+<tr class="codeline" data-linenumber="2519"><td class="num" id="LN2519">2519</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="2520"><td class="num" id="LN2520">2520</td><td class="line"> TerminalWindow *window = <span class='macro'>TERMINAL_WINDOW (widget)<span class='macro_popup'>((((TerminalWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((widget)), ((terminal_window_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2521"><td class="num" id="LN2521">2521</td><td class="line"> GtkAllocation widget_allocation;</td></tr>
+<tr class="codeline" data-linenumber="2522"><td class="num" id="LN2522">2522</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2523"><td class="num" id="LN2523">2523</td><td class="line"> gtk_widget_get_allocation (widget, &amp;widget_allocation);</td></tr>
+<tr class="codeline" data-linenumber="2524"><td class="num" id="LN2524">2524</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2525"><td class="num" id="LN2525">2525</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="2526"><td class="num" id="LN2526">2526</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2527"><td class="num" id="LN2527">2527</td><td class="line"> <span class='keyword'>if</span> (priv-&gt;active_screen != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="2528"><td class="num" id="LN2528">2528</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="2529"><td class="num" id="LN2529">2529</td><td class="line"> terminal_window_update_copy_selection (priv-&gt;active_screen, window);</td></tr>
+<tr class="codeline" data-linenumber="2530"><td class="num" id="LN2530">2530</td><td class="line"><span class='directive'>#if 0</span></td></tr>
+<tr class="codeline" data-linenumber="2531"><td class="num" id="LN2531">2531</td><td class="line"> <span class='comment'>/* At this point, we have our GdkScreen, and hence the right</span></td></tr>
+<tr class="codeline" data-linenumber="2532"><td class="num" id="LN2532">2532</td><td class="line"> <span class='comment'>* font size, so we can go ahead and size the window. */</span></td></tr>
+<tr class="codeline" data-linenumber="2533"><td class="num" id="LN2533">2533</td><td class="line"> terminal_window_update_size (window, priv-&gt;active_screen, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="2534"><td class="num" id="LN2534">2534</td><td class="line"><span class='directive'>#endif</span></td></tr>
+<tr class="codeline" data-linenumber="2535"><td class="num" id="LN2535">2535</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="2536"><td class="num" id="LN2536">2536</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2537"><td class="num" id="LN2537">2537</td><td class="line"> terminal_window_update_geometry (window);</td></tr>
+<tr class="codeline" data-linenumber="2538"><td class="num" id="LN2538">2538</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2539"><td class="num" id="LN2539">2539</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_GEOMETRY,<span class='macro_popup'>do { if (0) g_printerr("[window %p] show, size %d : %d at (%d, %d)\n"<br>, widget, widget_allocation.width, widget_allocation.height, widget_allocation<br>.x, widget_allocation.y); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="2540"><td class="num" id="LN2540">2540</td><td class="line"> <span class='string_literal'><span class='macro'>"[window %p] show, size %d : %d at (%d, %d)\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("[window %p] show, size %d : %d at (%d, %d)\n"<br>, widget, widget_allocation.width, widget_allocation.height, widget_allocation<br>.x, widget_allocation.y); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="2541"><td class="num" id="LN2541">2541</td><td class="line"> <span class='macro'>widget,<span class='macro_popup'>do { if (0) g_printerr("[window %p] show, size %d : %d at (%d, %d)\n"<br>, widget, widget_allocation.width, widget_allocation.height, widget_allocation<br>.x, widget_allocation.y); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="2542"><td class="num" id="LN2542">2542</td><td class="line"> <span class='macro'>widget_allocation.width, widget_allocation.height,<span class='macro_popup'>do { if (0) g_printerr("[window %p] show, size %d : %d at (%d, %d)\n"<br>, widget, widget_allocation.width, widget_allocation.height, widget_allocation<br>.x, widget_allocation.y); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="2543"><td class="num" id="LN2543">2543</td><td class="line"> <span class='macro'>widget_allocation.x, widget_allocation.y)<span class='macro_popup'>do { if (0) g_printerr("[window %p] show, size %d : %d at (%d, %d)\n"<br>, widget, widget_allocation.width, widget_allocation.height, widget_allocation<br>.x, widget_allocation.y); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2544"><td class="num" id="LN2544">2544</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2545"><td class="num" id="LN2545">2545</td><td class="line"> <span class='macro'>GTK_WIDGET_CLASS (terminal_window_parent_class)<span class='macro_popup'>((((GtkWidgetClass*) (void *) g_type_check_class_cast ((GTypeClass<br>*) ((terminal_window_parent_class)), ((gtk_widget_get_type ()<br>))))))</span></span>-&gt;show (widget);</td></tr>
+<tr class="codeline" data-linenumber="2546"><td class="num" id="LN2546">2546</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="2547"><td class="num" id="LN2547">2547</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2548"><td class="num" id="LN2548">2548</td><td class="line">TerminalWindow*</td></tr>
+<tr class="codeline" data-linenumber="2549"><td class="num" id="LN2549">2549</td><td class="line">terminal_window_new (<span class='keyword'>void</span>)</td></tr>
+<tr class="codeline" data-linenumber="2550"><td class="num" id="LN2550">2550</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="2551"><td class="num" id="LN2551">2551</td><td class="line"> <span class='keyword'>return</span> g_object_new (<span class='macro'>TERMINAL_TYPE_WINDOW<span class='macro_popup'>(terminal_window_get_type ())</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="2552"><td class="num" id="LN2552">2552</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="2553"><td class="num" id="LN2553">2553</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2554"><td class="num" id="LN2554">2554</td><td class="line"><span class='comment'>/**</span></td></tr>
+<tr class="codeline" data-linenumber="2555"><td class="num" id="LN2555">2555</td><td class="line"> <span class='comment'>* terminal_window_set_is_restored:</span></td></tr>
+<tr class="codeline" data-linenumber="2556"><td class="num" id="LN2556">2556</td><td class="line"> <span class='comment'>* @window:</span></td></tr>
+<tr class="codeline" data-linenumber="2557"><td class="num" id="LN2557">2557</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="2558"><td class="num" id="LN2558">2558</td><td class="line"> <span class='comment'>* Marks the window as restored from session.</span></td></tr>
+<tr class="codeline" data-linenumber="2559"><td class="num" id="LN2559">2559</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="2560"><td class="num" id="LN2560">2560</td><td class="line"><span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="2561"><td class="num" id="LN2561">2561</td><td class="line">terminal_window_set_is_restored (TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="2562"><td class="num" id="LN2562">2562</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="2563"><td class="num" id="LN2563">2563</td><td class="line"> <span class='macro'>g_return_if_fail (TERMINAL_IS_WINDOW (window))<span class='macro_popup'>do { if (((((__extension__ ({ GTypeInstance *__inst = (GTypeInstance<br>*) ((window)); GType __t = ((terminal_window_get_type ())); gboolean<br> __r; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; })))))) { }<br> else { g_return_if_fail_warning (((gchar*) 0), ((const char*<br>) (__func__)), "TERMINAL_IS_WINDOW (window)"); return; } } while<br> (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2564"><td class="num" id="LN2564">2564</td><td class="line"> <span class='macro'>g_return_if_fail (!gtk_widget_get_mapped (GTK_WIDGET (window)))<span class='macro_popup'>do { if ((!gtk_widget_get_mapped (((((GtkWidget*) (void *) g_type_check_instance_cast<br> ((GTypeInstance*) ((window)), ((gtk_widget_get_type ()))))))<br>))) { } else { g_return_if_fail_warning (((gchar*) 0), ((const<br> char*) (__func__)), "!gtk_widget_get_mapped (GTK_WIDGET (window))"<br>); return; } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2565"><td class="num" id="LN2565">2565</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2566"><td class="num" id="LN2566">2566</td><td class="line"> window-&gt;priv-&gt;clear_demands_attention = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2567"><td class="num" id="LN2567">2567</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="2568"><td class="num" id="LN2568">2568</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2569"><td class="num" id="LN2569">2569</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="2570"><td class="num" id="LN2570">2570</td><td class="line">profile_set_callback (TerminalScreen *screen,</td></tr>
+<tr class="codeline" data-linenumber="2571"><td class="num" id="LN2571">2571</td><td class="line"> TerminalProfile *old_profile,</td></tr>
+<tr class="codeline" data-linenumber="2572"><td class="num" id="LN2572">2572</td><td class="line"> TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="2573"><td class="num" id="LN2573">2573</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="2574"><td class="num" id="LN2574">2574</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="2575"><td class="num" id="LN2575">2575</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2576"><td class="num" id="LN2576">2576</td><td class="line"> <span class='keyword'>if</span> (!gtk_widget_get_realized (<span class='macro'>GTK_WIDGET (window)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_widget_get_type ()))))))</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="2577"><td class="num" id="LN2577">2577</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="2578"><td class="num" id="LN2578">2578</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2579"><td class="num" id="LN2579">2579</td><td class="line"> <span class='keyword'>if</span> (screen != priv-&gt;active_screen)</td></tr>
+<tr class="codeline" data-linenumber="2580"><td class="num" id="LN2580">2580</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="2581"><td class="num" id="LN2581">2581</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2582"><td class="num" id="LN2582">2582</td><td class="line"> terminal_window_update_set_profile_menu_active_profile (window);</td></tr>
+<tr class="codeline" data-linenumber="2583"><td class="num" id="LN2583">2583</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="2584"><td class="num" id="LN2584">2584</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2585"><td class="num" id="LN2585">2585</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="2586"><td class="num" id="LN2586">2586</td><td class="line">sync_screen_title (TerminalScreen *screen,</td></tr>
+<tr class="codeline" data-linenumber="2587"><td class="num" id="LN2587">2587</td><td class="line"> GParamSpec *psepc,</td></tr>
+<tr class="codeline" data-linenumber="2588"><td class="num" id="LN2588">2588</td><td class="line"> TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="2589"><td class="num" id="LN2589">2589</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="2590"><td class="num" id="LN2590">2590</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="2591"><td class="num" id="LN2591">2591</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2592"><td class="num" id="LN2592">2592</td><td class="line"> <span class='keyword'>if</span> (screen != priv-&gt;active_screen)</td></tr>
+<tr class="codeline" data-linenumber="2593"><td class="num" id="LN2593">2593</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="2594"><td class="num" id="LN2594">2594</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2595"><td class="num" id="LN2595">2595</td><td class="line"> gtk_window_set_title (<span class='macro'>GTK_WINDOW (window)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_window_get_type ()))))))</span></span>, terminal_screen_get_title (screen));</td></tr>
+<tr class="codeline" data-linenumber="2596"><td class="num" id="LN2596">2596</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="2597"><td class="num" id="LN2597">2597</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2598"><td class="num" id="LN2598">2598</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="2599"><td class="num" id="LN2599">2599</td><td class="line">sync_screen_icon_title (TerminalScreen *screen,</td></tr>
+<tr class="codeline" data-linenumber="2600"><td class="num" id="LN2600">2600</td><td class="line"> GParamSpec *psepc,</td></tr>
+<tr class="codeline" data-linenumber="2601"><td class="num" id="LN2601">2601</td><td class="line"> TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="2602"><td class="num" id="LN2602">2602</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="2603"><td class="num" id="LN2603">2603</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="2604"><td class="num" id="LN2604">2604</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2605"><td class="num" id="LN2605">2605</td><td class="line"> <span class='keyword'>if</span> (!gtk_widget_get_realized (<span class='macro'>GTK_WIDGET (window)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_widget_get_type ()))))))</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="2606"><td class="num" id="LN2606">2606</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="2607"><td class="num" id="LN2607">2607</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2608"><td class="num" id="LN2608">2608</td><td class="line"> <span class='keyword'>if</span> (screen != priv-&gt;active_screen)</td></tr>
+<tr class="codeline" data-linenumber="2609"><td class="num" id="LN2609">2609</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="2610"><td class="num" id="LN2610">2610</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2611"><td class="num" id="LN2611">2611</td><td class="line"> <span class='keyword'>if</span> (!terminal_screen_get_icon_title_set (screen))</td></tr>
+<tr class="codeline" data-linenumber="2612"><td class="num" id="LN2612">2612</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="2613"><td class="num" id="LN2613">2613</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2614"><td class="num" id="LN2614">2614</td><td class="line"> gdk_window_set_icon_name (gtk_widget_get_window (<span class='macro'>GTK_WIDGET (window)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_widget_get_type ()))))))</span></span>), terminal_screen_get_icon_title (screen));</td></tr>
+<tr class="codeline" data-linenumber="2615"><td class="num" id="LN2615">2615</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="2616"><td class="num" id="LN2616">2616</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2617"><td class="num" id="LN2617">2617</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="2618"><td class="num" id="LN2618">2618</td><td class="line">sync_screen_icon_title_set (TerminalScreen *screen,</td></tr>
+<tr class="codeline" data-linenumber="2619"><td class="num" id="LN2619">2619</td><td class="line"> GParamSpec *psepc,</td></tr>
+<tr class="codeline" data-linenumber="2620"><td class="num" id="LN2620">2620</td><td class="line"> TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="2621"><td class="num" id="LN2621">2621</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="2622"><td class="num" id="LN2622">2622</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="2623"><td class="num" id="LN2623">2623</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2624"><td class="num" id="LN2624">2624</td><td class="line"> <span class='keyword'>if</span> (!gtk_widget_get_realized (<span class='macro'>GTK_WIDGET (window)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_widget_get_type ()))))))</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="2625"><td class="num" id="LN2625">2625</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="2626"><td class="num" id="LN2626">2626</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2627"><td class="num" id="LN2627">2627</td><td class="line"> <span class='keyword'>if</span> (screen != priv-&gt;active_screen)</td></tr>
+<tr class="codeline" data-linenumber="2628"><td class="num" id="LN2628">2628</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="2629"><td class="num" id="LN2629">2629</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2630"><td class="num" id="LN2630">2630</td><td class="line"> <span class='keyword'>if</span> (terminal_screen_get_icon_title_set (screen))</td></tr>
+<tr class="codeline" data-linenumber="2631"><td class="num" id="LN2631">2631</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="2632"><td class="num" id="LN2632">2632</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2633"><td class="num" id="LN2633">2633</td><td class="line"> <span class='comment'>/* Need to reset the icon name */</span></td></tr>
+<tr class="codeline" data-linenumber="2634"><td class="num" id="LN2634">2634</td><td class="line"> gdk_window_set_icon_name (gtk_widget_get_window (<span class='macro'>GTK_WIDGET (window)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_widget_get_type ()))))))</span></span>), <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="2635"><td class="num" id="LN2635">2635</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2636"><td class="num" id="LN2636">2636</td><td class="line"> <span class='comment'>/* Re-setting the right title will be done by the notify::title handler which comes after this one */</span></td></tr>
+<tr class="codeline" data-linenumber="2637"><td class="num" id="LN2637">2637</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="2638"><td class="num" id="LN2638">2638</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2639"><td class="num" id="LN2639">2639</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="2640"><td class="num" id="LN2640">2640</td><td class="line">screen_hyperlink_hover_uri_changed (TerminalScreen *screen,</td></tr>
+<tr class="codeline" data-linenumber="2641"><td class="num" id="LN2641">2641</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *uri,</td></tr>
+<tr class="codeline" data-linenumber="2642"><td class="num" id="LN2642">2642</td><td class="line"> <span class='keyword'>const</span> GdkRectangle *bbox <span class='macro'>G_GNUC_UNUSED<span class='macro_popup'>__attribute__ ((__unused__))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2643"><td class="num" id="LN2643">2643</td><td class="line"> TerminalWindow *window <span class='macro'>G_GNUC_UNUSED<span class='macro_popup'>__attribute__ ((__unused__))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="2644"><td class="num" id="LN2644">2644</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="2645"><td class="num" id="LN2645">2645</td><td class="line"> <span class='keyword'>char</span> *label = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2646"><td class="num" id="LN2646">2646</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2647"><td class="num" id="LN2647">2647</td><td class="line"> <span class='keyword'>if</span> (!gtk_widget_get_realized (<span class='macro'>GTK_WIDGET (screen)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((screen)), ((gtk_widget_get_type ()))))))</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="2648"><td class="num" id="LN2648">2648</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="2649"><td class="num" id="LN2649">2649</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2650"><td class="num" id="LN2650">2650</td><td class="line"> label = terminal_util_hyperlink_uri_label (uri);</td></tr>
+<tr class="codeline" data-linenumber="2651"><td class="num" id="LN2651">2651</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2652"><td class="num" id="LN2652">2652</td><td class="line"> gtk_widget_set_tooltip_text (<span class='macro'>GTK_WIDGET (screen)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((screen)), ((gtk_widget_get_type ()))))))</span></span>, label);</td></tr>
+<tr class="codeline" data-linenumber="2653"><td class="num" id="LN2653">2653</td><td class="line"> g_free(label);</td></tr>
+<tr class="codeline" data-linenumber="2654"><td class="num" id="LN2654">2654</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="2655"><td class="num" id="LN2655">2655</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2656"><td class="num" id="LN2656">2656</td><td class="line"><span class='comment'>/* Notebook callbacks */</span></td></tr>
+<tr class="codeline" data-linenumber="2657"><td class="num" id="LN2657">2657</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2658"><td class="num" id="LN2658">2658</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="2659"><td class="num" id="LN2659">2659</td><td class="line">close_button_clicked_cb (GtkWidget *tab_label,</td></tr>
+<tr class="codeline" data-linenumber="2660"><td class="num" id="LN2660">2660</td><td class="line"> GtkWidget *screen_container)</td></tr>
+<tr class="codeline" data-linenumber="2661"><td class="num" id="LN2661">2661</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="2662"><td class="num" id="LN2662">2662</td><td class="line"> GtkWidget *toplevel;</td></tr>
+<tr class="codeline" data-linenumber="2663"><td class="num" id="LN2663">2663</td><td class="line"> TerminalWindow *window;</td></tr>
+<tr class="codeline" data-linenumber="2664"><td class="num" id="LN2664">2664</td><td class="line"> TerminalScreen *screen;</td></tr>
+<tr class="codeline" data-linenumber="2665"><td class="num" id="LN2665">2665</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2666"><td class="num" id="LN2666">2666</td><td class="line"> toplevel = gtk_widget_get_toplevel (screen_container);</td></tr>
+<tr class="codeline" data-linenumber="2667"><td class="num" id="LN2667">2667</td><td class="line"> <span class='keyword'>if</span> (!gtk_widget_is_toplevel (toplevel))</td></tr>
+<tr class="codeline" data-linenumber="2668"><td class="num" id="LN2668">2668</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="2669"><td class="num" id="LN2669">2669</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2670"><td class="num" id="LN2670">2670</td><td class="line"> <span class='keyword'>if</span> (!<span class='macro'>TERMINAL_IS_WINDOW (toplevel)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(toplevel)); GType __t = ((terminal_window_get_type ())); gboolean<br> __r; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="2671"><td class="num" id="LN2671">2671</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="2672"><td class="num" id="LN2672">2672</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2673"><td class="num" id="LN2673">2673</td><td class="line"> window = <span class='macro'>TERMINAL_WINDOW (toplevel)<span class='macro_popup'>((((TerminalWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((toplevel)), ((terminal_window_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2674"><td class="num" id="LN2674">2674</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2675"><td class="num" id="LN2675">2675</td><td class="line"> screen = terminal_screen_container_get_screen (<span class='macro'>TERMINAL_SCREEN_CONTAINER (screen_container)<span class='macro_popup'>((((TerminalScreenContainer*) (void *) g_type_check_instance_cast<br> ((GTypeInstance*) ((screen_container)), ((terminal_screen_container_get_type<br> ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="2676"><td class="num" id="LN2676">2676</td><td class="line"> <span class='keyword'>if</span> (confirm_close_window_or_tab (window, screen))</td></tr>
+<tr class="codeline" data-linenumber="2677"><td class="num" id="LN2677">2677</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="2678"><td class="num" id="LN2678">2678</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2679"><td class="num" id="LN2679">2679</td><td class="line"> terminal_window_remove_screen (window, screen);</td></tr>
+<tr class="codeline" data-linenumber="2680"><td class="num" id="LN2680">2680</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="2681"><td class="num" id="LN2681">2681</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2682"><td class="num" id="LN2682">2682</td><td class="line"><span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="2683"><td class="num" id="LN2683">2683</td><td class="line">terminal_window_add_screen (TerminalWindow *window,</td></tr>
+<tr class="codeline" data-linenumber="2684"><td class="num" id="LN2684">2684</td><td class="line"> TerminalScreen *screen,</td></tr>
+<tr class="codeline" data-linenumber="2685"><td class="num" id="LN2685">2685</td><td class="line"> <span class='keyword'>int</span> position)</td></tr>
+<tr class="codeline" data-linenumber="2686"><td class="num" id="LN2686">2686</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="2687"><td class="num" id="LN2687">2687</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="2688"><td class="num" id="LN2688">2688</td><td class="line"> GtkWidget *old_window;</td></tr>
+<tr class="codeline" data-linenumber="2689"><td class="num" id="LN2689">2689</td><td class="line"> GtkWidget *screen_container, *tab_label;</td></tr>
+<tr class="codeline" data-linenumber="2690"><td class="num" id="LN2690">2690</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2691"><td class="num" id="LN2691">2691</td><td class="line"> old_window = gtk_widget_get_toplevel (<span class='macro'>GTK_WIDGET (screen)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((screen)), ((gtk_widget_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="2692"><td class="num" id="LN2692">2692</td><td class="line"> <span class='keyword'>if</span> (gtk_widget_is_toplevel (old_window) &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="2693"><td class="num" id="LN2693">2693</td><td class="line"> <span class='macro'>TERMINAL_IS_WINDOW (old_window)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(old_window)); GType __t = ((terminal_window_get_type ())); gboolean<br> __r; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span> &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="2694"><td class="num" id="LN2694">2694</td><td class="line"> <span class='macro'>TERMINAL_WINDOW (old_window)<span class='macro_popup'>((((TerminalWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((old_window)), ((terminal_window_get_type ()))))))</span></span>== window)</td></tr>
+<tr class="codeline" data-linenumber="2695"><td class="num" id="LN2695">2695</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="2696"><td class="num" id="LN2696">2696</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2697"><td class="num" id="LN2697">2697</td><td class="line"> <span class='keyword'>if</span> (<span class='macro'>TERMINAL_IS_WINDOW (old_window)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(old_window)); GType __t = ((terminal_window_get_type ())); gboolean<br> __r; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="2698"><td class="num" id="LN2698">2698</td><td class="line"> terminal_window_remove_screen (<span class='macro'>TERMINAL_WINDOW (old_window)<span class='macro_popup'>((((TerminalWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((old_window)), ((terminal_window_get_type ()))))))</span></span>, screen);</td></tr>
+<tr class="codeline" data-linenumber="2699"><td class="num" id="LN2699">2699</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2700"><td class="num" id="LN2700">2700</td><td class="line"> screen_container = terminal_screen_container_new (screen);</td></tr>
+<tr class="codeline" data-linenumber="2701"><td class="num" id="LN2701">2701</td><td class="line"> gtk_widget_show (screen_container);</td></tr>
+<tr class="codeline" data-linenumber="2702"><td class="num" id="LN2702">2702</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2703"><td class="num" id="LN2703">2703</td><td class="line"> update_tab_visibility (window, +1);</td></tr>
+<tr class="codeline" data-linenumber="2704"><td class="num" id="LN2704">2704</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2705"><td class="num" id="LN2705">2705</td><td class="line"> tab_label = terminal_tab_label_new (screen);</td></tr>
+<tr class="codeline" data-linenumber="2706"><td class="num" id="LN2706">2706</td><td class="line"> <span class='macro'>g_signal_connect (tab_label, <span class='string_literal'>"close-button-clicked"</span>,<span class='macro_popup'>g_signal_connect_data ((tab_label), ("close-button-clicked"),<br> (((GCallback) (close_button_clicked_cb))), (screen_container<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="2707"><td class="num" id="LN2707">2707</td><td class="line"> <span class='macro'>G_CALLBACK (close_button_clicked_cb), screen_container)<span class='macro_popup'>g_signal_connect_data ((tab_label), ("close-button-clicked"),<br> (((GCallback) (close_button_clicked_cb))), (screen_container<br>), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2708"><td class="num" id="LN2708">2708</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2709"><td class="num" id="LN2709">2709</td><td class="line"> gtk_notebook_insert_page (<span class='macro'>GTK_NOTEBOOK (priv-&gt;notebook)<span class='macro_popup'>((((GtkNotebook*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((priv-&gt;notebook)), ((gtk_notebook_get_type ()))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2710"><td class="num" id="LN2710">2710</td><td class="line"> screen_container,</td></tr>
+<tr class="codeline" data-linenumber="2711"><td class="num" id="LN2711">2711</td><td class="line"> tab_label,</td></tr>
+<tr class="codeline" data-linenumber="2712"><td class="num" id="LN2712">2712</td><td class="line"> position);</td></tr>
+<tr class="codeline" data-linenumber="2713"><td class="num" id="LN2713">2713</td><td class="line"> gtk_container_child_set (<span class='macro'>GTK_CONTAINER (priv-&gt;notebook)<span class='macro_popup'>((((GtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((priv-&gt;notebook)), ((gtk_container_get_type ()))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2714"><td class="num" id="LN2714">2714</td><td class="line"> screen_container,</td></tr>
+<tr class="codeline" data-linenumber="2715"><td class="num" id="LN2715">2715</td><td class="line"> <span class='string_literal'>"tab-expand"</span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2716"><td class="num" id="LN2716">2716</td><td class="line"> <span class='string_literal'>"tab-fill"</span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2717"><td class="num" id="LN2717">2717</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="2718"><td class="num" id="LN2718">2718</td><td class="line"> gtk_notebook_set_tab_reorderable (<span class='macro'>GTK_NOTEBOOK (priv-&gt;notebook)<span class='macro_popup'>((((GtkNotebook*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((priv-&gt;notebook)), ((gtk_notebook_get_type ()))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2719"><td class="num" id="LN2719">2719</td><td class="line"> screen_container,</td></tr>
+<tr class="codeline" data-linenumber="2720"><td class="num" id="LN2720">2720</td><td class="line"> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="2721"><td class="num" id="LN2721">2721</td><td class="line"> gtk_notebook_set_tab_detachable (<span class='macro'>GTK_NOTEBOOK (priv-&gt;notebook)<span class='macro_popup'>((((GtkNotebook*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((priv-&gt;notebook)), ((gtk_notebook_get_type ()))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2722"><td class="num" id="LN2722">2722</td><td class="line"> screen_container,</td></tr>
+<tr class="codeline" data-linenumber="2723"><td class="num" id="LN2723">2723</td><td class="line"> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="2724"><td class="num" id="LN2724">2724</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="2725"><td class="num" id="LN2725">2725</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2726"><td class="num" id="LN2726">2726</td><td class="line"><span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="2727"><td class="num" id="LN2727">2727</td><td class="line">terminal_window_remove_screen (TerminalWindow *window,</td></tr>
+<tr class="codeline" data-linenumber="2728"><td class="num" id="LN2728">2728</td><td class="line"> TerminalScreen *screen)</td></tr>
+<tr class="codeline" data-linenumber="2729"><td class="num" id="LN2729">2729</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="2730"><td class="num" id="LN2730">2730</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="2731"><td class="num" id="LN2731">2731</td><td class="line"> TerminalScreenContainer *screen_container;</td></tr>
+<tr class="codeline" data-linenumber="2732"><td class="num" id="LN2732">2732</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2733"><td class="num" id="LN2733">2733</td><td class="line"> <span class='macro'>g_return_if_fail (gtk_widget_get_toplevel (GTK_WIDGET (screen)) == GTK_WIDGET (window))<span class='macro_popup'>do { if ((gtk_widget_get_toplevel (((((GtkWidget*) (void *) g_type_check_instance_cast<br> ((GTypeInstance*) ((screen)), ((gtk_widget_get_type ()))))))<br>) == ((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_widget_get_type ())))))))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "gtk_widget_get_toplevel (GTK_WIDGET (screen)) == GTK_WIDGET (window)"<br>); return; } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2734"><td class="num" id="LN2734">2734</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2735"><td class="num" id="LN2735">2735</td><td class="line"> update_tab_visibility (window, -1);</td></tr>
+<tr class="codeline" data-linenumber="2736"><td class="num" id="LN2736">2736</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2737"><td class="num" id="LN2737">2737</td><td class="line"> screen_container = terminal_screen_container_get_from_screen (screen);</td></tr>
+<tr class="codeline" data-linenumber="2738"><td class="num" id="LN2738">2738</td><td class="line"> <span class='keyword'>if</span> (detach_tab)</td></tr>
+<tr class="codeline" data-linenumber="2739"><td class="num" id="LN2739">2739</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="2740"><td class="num" id="LN2740">2740</td><td class="line"> gtk_notebook_detach_tab (<span class='macro'>GTK_NOTEBOOK (priv-&gt;notebook)<span class='macro_popup'>((((GtkNotebook*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((priv-&gt;notebook)), ((gtk_notebook_get_type ()))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2741"><td class="num" id="LN2741">2741</td><td class="line"> <span class='macro'>GTK_WIDGET (screen_container)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((screen_container)), ((gtk_widget_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="2742"><td class="num" id="LN2742">2742</td><td class="line"> detach_tab = <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2743"><td class="num" id="LN2743">2743</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="2744"><td class="num" id="LN2744">2744</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="2745"><td class="num" id="LN2745">2745</td><td class="line"> gtk_container_remove (<span class='macro'>GTK_CONTAINER (priv-&gt;notebook)<span class='macro_popup'>((((GtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((priv-&gt;notebook)), ((gtk_container_get_type ()))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2746"><td class="num" id="LN2746">2746</td><td class="line"> <span class='macro'>GTK_WIDGET (screen_container)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((screen_container)), ((gtk_widget_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="2747"><td class="num" id="LN2747">2747</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="2748"><td class="num" id="LN2748">2748</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2749"><td class="num" id="LN2749">2749</td><td class="line"><span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="2750"><td class="num" id="LN2750">2750</td><td class="line">terminal_window_move_screen (TerminalWindow *source_window,</td></tr>
+<tr class="codeline" data-linenumber="2751"><td class="num" id="LN2751">2751</td><td class="line"> TerminalWindow *dest_window,</td></tr>
+<tr class="codeline" data-linenumber="2752"><td class="num" id="LN2752">2752</td><td class="line"> TerminalScreen *screen,</td></tr>
+<tr class="codeline" data-linenumber="2753"><td class="num" id="LN2753">2753</td><td class="line"> <span class='keyword'>int</span> dest_position)</td></tr>
+<tr class="codeline" data-linenumber="2754"><td class="num" id="LN2754">2754</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="2755"><td class="num" id="LN2755">2755</td><td class="line"> TerminalScreenContainer *screen_container;</td></tr>
+<tr class="codeline" data-linenumber="2756"><td class="num" id="LN2756">2756</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2757"><td class="num" id="LN2757">2757</td><td class="line"> <span class='macro'>g_return_if_fail (TERMINAL_IS_WINDOW (source_window))<span class='macro_popup'>do { if (((((__extension__ ({ GTypeInstance *__inst = (GTypeInstance<br>*) ((source_window)); GType __t = ((terminal_window_get_type (<br>))); gboolean __r; if (!__inst) __r = (0); else if (__inst-&gt;<br>g_class &amp;&amp; __inst-&gt;g_class-&gt;g_type == __t) __r =<br> (!(0)); else __r = g_type_check_instance_is_a (__inst, __t);<br> __r; })))))) { } else { g_return_if_fail_warning (((gchar*) 0<br>), ((const char*) (__func__)), "TERMINAL_IS_WINDOW (source_window)"<br>); return; } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2758"><td class="num" id="LN2758">2758</td><td class="line"> <span class='macro'>g_return_if_fail (TERMINAL_IS_WINDOW (dest_window))<span class='macro_popup'>do { if (((((__extension__ ({ GTypeInstance *__inst = (GTypeInstance<br>*) ((dest_window)); GType __t = ((terminal_window_get_type ()<br>)); gboolean __r; if (!__inst) __r = (0); else if (__inst-&gt;<br>g_class &amp;&amp; __inst-&gt;g_class-&gt;g_type == __t) __r =<br> (!(0)); else __r = g_type_check_instance_is_a (__inst, __t);<br> __r; })))))) { } else { g_return_if_fail_warning (((gchar*) 0<br>), ((const char*) (__func__)), "TERMINAL_IS_WINDOW (dest_window)"<br>); return; } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2759"><td class="num" id="LN2759">2759</td><td class="line"> <span class='macro'>g_return_if_fail (TERMINAL_IS_SCREEN (screen))<span class='macro_popup'>do { if (((((__extension__ ({ GTypeInstance *__inst = (GTypeInstance<br>*) ((screen)); GType __t = ((terminal_screen_get_type ())); gboolean<br> __r; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; })))))) { }<br> else { g_return_if_fail_warning (((gchar*) 0), ((const char*<br>) (__func__)), "TERMINAL_IS_SCREEN (screen)"); return; } } while<br> (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2760"><td class="num" id="LN2760">2760</td><td class="line"> <span class='macro'>g_return_if_fail (gtk_widget_get_toplevel (GTK_WIDGET (screen)) == GTK_WIDGET (source_window))<span class='macro_popup'>do { if ((gtk_widget_get_toplevel (((((GtkWidget*) (void *) g_type_check_instance_cast<br> ((GTypeInstance*) ((screen)), ((gtk_widget_get_type ()))))))<br>) == ((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((source_window)), ((gtk_widget_get_type ())))))))) { } else<br> { g_return_if_fail_warning (((gchar*) 0), ((const char*) (__func__<br>)), "gtk_widget_get_toplevel (GTK_WIDGET (screen)) == GTK_WIDGET (source_window)"<br>); return; } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2761"><td class="num" id="LN2761">2761</td><td class="line"> <span class='macro'>g_return_if_fail (dest_position &gt;= -1)<span class='macro_popup'>do { if ((dest_position &gt;= -1)) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "dest_position &gt;= -1"<br>); return; } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2762"><td class="num" id="LN2762">2762</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2763"><td class="num" id="LN2763">2763</td><td class="line"> screen_container = terminal_screen_container_get_from_screen (screen);</td></tr>
+<tr class="codeline" data-linenumber="2764"><td class="num" id="LN2764">2764</td><td class="line"> <span class='macro'>g_assert (TERMINAL_IS_SCREEN_CONTAINER (screen_container))<span class='macro_popup'>do { if ((((__extension__ ({ GTypeInstance *__inst = (GTypeInstance<br>*) ((screen_container)); GType __t = ((terminal_screen_container_get_type<br> ())); gboolean __r; if (!__inst) __r = (0); else if (__inst-&gt;<br>g_class &amp;&amp; __inst-&gt;g_class-&gt;g_type == __t) __r =<br> (!(0)); else __r = g_type_check_instance_is_a (__inst, __t);<br> __r; }))))) ; else g_assertion_message_expr (((gchar*) 0), "terminal-window.c"<br>, 2764, ((const char*) (__func__)), "TERMINAL_IS_SCREEN_CONTAINER (screen_container)"<br>); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2765"><td class="num" id="LN2765">2765</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2766"><td class="num" id="LN2766">2766</td><td class="line"> <span class='comment'>/* We have to ref the screen container as well as the screen,</span></td></tr>
+<tr class="codeline" data-linenumber="2767"><td class="num" id="LN2767">2767</td><td class="line"> <span class='comment'>* because otherwise removing the screen container from the source</span></td></tr>
+<tr class="codeline" data-linenumber="2768"><td class="num" id="LN2768">2768</td><td class="line"> <span class='comment'>* window's notebook will cause the container and its containing</span></td></tr>
+<tr class="codeline" data-linenumber="2769"><td class="num" id="LN2769">2769</td><td class="line"> <span class='comment'>* screen to be gtk_widget_destroy()ed!</span></td></tr>
+<tr class="codeline" data-linenumber="2770"><td class="num" id="LN2770">2770</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="2771"><td class="num" id="LN2771">2771</td><td class="line"> <span class='macro'>g_object_ref_sink (screen_container)<span class='macro_popup'>((__typeof__ (screen_container)) (g_object_ref_sink) (screen_container<br>))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2772"><td class="num" id="LN2772">2772</td><td class="line"> <span class='macro'>g_object_ref_sink (screen)<span class='macro_popup'>((__typeof__ (screen)) (g_object_ref_sink) (screen))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2773"><td class="num" id="LN2773">2773</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2774"><td class="num" id="LN2774">2774</td><td class="line"> detach_tab = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2775"><td class="num" id="LN2775">2775</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2776"><td class="num" id="LN2776">2776</td><td class="line"> terminal_window_remove_screen (source_window, screen);</td></tr>
+<tr class="codeline" data-linenumber="2777"><td class="num" id="LN2777">2777</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2778"><td class="num" id="LN2778">2778</td><td class="line"> <span class='comment'>/* Now we can safely remove the screen from the container and let the container die */</span></td></tr>
+<tr class="codeline" data-linenumber="2779"><td class="num" id="LN2779">2779</td><td class="line"> gtk_container_remove (<span class='macro'>GTK_CONTAINER (gtk_widget_get_parent (GTK_WIDGET (screen)))<span class='macro_popup'>((((GtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((gtk_widget_get_parent (((((GtkWidget*) (void *) g_type_check_instance_cast<br> ((GTypeInstance*) ((screen)), ((gtk_widget_get_type ()))))))<br>))), ((gtk_container_get_type ()))))))</span></span>, <span class='macro'>GTK_WIDGET (screen)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((screen)), ((gtk_widget_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="2780"><td class="num" id="LN2780">2780</td><td class="line"> g_object_unref (screen_container);</td></tr>
+<tr class="codeline" data-linenumber="2781"><td class="num" id="LN2781">2781</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2782"><td class="num" id="LN2782">2782</td><td class="line"> terminal_window_add_screen (dest_window, screen, dest_position);</td></tr>
+<tr class="codeline" data-linenumber="2783"><td class="num" id="LN2783">2783</td><td class="line"> gtk_notebook_set_current_page (<span class='macro'>GTK_NOTEBOOK (dest_window-&gt;priv-&gt;notebook)<span class='macro_popup'>((((GtkNotebook*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((dest_window-&gt;priv-&gt;notebook)), ((gtk_notebook_get_type<br> ()))))))</span></span>, dest_position);</td></tr>
+<tr class="codeline" data-linenumber="2784"><td class="num" id="LN2784">2784</td><td class="line"> g_object_unref (screen);</td></tr>
+<tr class="codeline" data-linenumber="2785"><td class="num" id="LN2785">2785</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="2786"><td class="num" id="LN2786">2786</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2787"><td class="num" id="LN2787">2787</td><td class="line">GList*</td></tr>
+<tr class="codeline" data-linenumber="2788"><td class="num" id="LN2788">2788</td><td class="line">terminal_window_list_screen_containers (TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="2789"><td class="num" id="LN2789">2789</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="2790"><td class="num" id="LN2790">2790</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="2791"><td class="num" id="LN2791">2791</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2792"><td class="num" id="LN2792">2792</td><td class="line"> <span class='comment'>/* We are trusting that GtkNotebook will return pages in order */</span></td></tr>
+<tr class="codeline" data-linenumber="2793"><td class="num" id="LN2793">2793</td><td class="line"> <span class='keyword'>return</span> gtk_container_get_children (<span class='macro'>GTK_CONTAINER (priv-&gt;notebook)<span class='macro_popup'>((((GtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((priv-&gt;notebook)), ((gtk_container_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="2794"><td class="num" id="LN2794">2794</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="2795"><td class="num" id="LN2795">2795</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2796"><td class="num" id="LN2796">2796</td><td class="line"><span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="2797"><td class="num" id="LN2797">2797</td><td class="line">terminal_window_set_menubar_visible (TerminalWindow *window,</td></tr>
+<tr class="codeline" data-linenumber="2798"><td class="num" id="LN2798">2798</td><td class="line"> gboolean setting)</td></tr>
+<tr class="codeline" data-linenumber="2799"><td class="num" id="LN2799">2799</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="2800"><td class="num" id="LN2800">2800</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="2801"><td class="num" id="LN2801">2801</td><td class="line"> GtkAction *action;</td></tr>
+<tr class="codeline" data-linenumber="2802"><td class="num" id="LN2802">2802</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2803"><td class="num" id="LN2803">2803</td><td class="line"> <span class='comment'>/* it's been set now, so don't override when adding a screen.</span></td></tr>
+<tr class="codeline" data-linenumber="2804"><td class="num" id="LN2804">2804</td><td class="line"> <span class='comment'>* this side effect must happen before we short-circuit below.</span></td></tr>
+<tr class="codeline" data-linenumber="2805"><td class="num" id="LN2805">2805</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="2806"><td class="num" id="LN2806">2806</td><td class="line"> priv-&gt;use_default_menubar_visibility = <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2807"><td class="num" id="LN2807">2807</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2808"><td class="num" id="LN2808">2808</td><td class="line"> <span class='keyword'>if</span> (setting == priv-&gt;menubar_visible)</td></tr>
+<tr class="codeline" data-linenumber="2809"><td class="num" id="LN2809">2809</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="2810"><td class="num" id="LN2810">2810</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2811"><td class="num" id="LN2811">2811</td><td class="line"> priv-&gt;menubar_visible = (setting != <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="2812"><td class="num" id="LN2812">2812</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2813"><td class="num" id="LN2813">2813</td><td class="line"> <span class='macro'>G_GNUC_BEGIN_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic push
+ clang diagnostic ignored "-Wdeprecated-declarations"<br>
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2814"><td class="num" id="LN2814">2814</td><td class="line"> action = gtk_action_group_get_action (priv-&gt;action_group, <span class='string_literal'>"ViewMenubar"</span>);</td></tr>
+<tr class="codeline" data-linenumber="2815"><td class="num" id="LN2815">2815</td><td class="line"> gtk_toggle_action_set_active (<span class='macro'>GTK_TOGGLE_ACTION (action)<span class='macro_popup'>((((GtkToggleAction*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((action)), ((gtk_toggle_action_get_type ()))))))</span></span>, setting);</td></tr>
+<tr class="codeline" data-linenumber="2816"><td class="num" id="LN2816">2816</td><td class="line"> <span class='macro'>G_GNUC_END_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic pop
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2817"><td class="num" id="LN2817">2817</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2818"><td class="num" id="LN2818">2818</td><td class="line"> g_object_set (priv-&gt;menubar, <span class='string_literal'>"visible"</span>, setting, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="2819"><td class="num" id="LN2819">2819</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2820"><td class="num" id="LN2820">2820</td><td class="line"> <span class='comment'>/* FIXMEchpe: use gtk_widget_get_realized instead? */</span></td></tr>
+<tr class="codeline" data-linenumber="2821"><td class="num" id="LN2821">2821</td><td class="line"> <span class='keyword'>if</span> (priv-&gt;active_screen)</td></tr>
+<tr class="codeline" data-linenumber="2822"><td class="num" id="LN2822">2822</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="2823"><td class="num" id="LN2823">2823</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_GEOMETRY,<span class='macro_popup'>do { if (0) g_printerr("[window %p] setting size after toggling menubar visibility\n"<br>, window); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="2824"><td class="num" id="LN2824">2824</td><td class="line"> <span class='string_literal'><span class='macro'>"[window %p] setting size after toggling menubar visibility\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("[window %p] setting size after toggling menubar visibility\n"<br>, window); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="2825"><td class="num" id="LN2825">2825</td><td class="line"> <span class='macro'>window)<span class='macro_popup'>do { if (0) g_printerr("[window %p] setting size after toggling menubar visibility\n"<br>, window); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2826"><td class="num" id="LN2826">2826</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2827"><td class="num" id="LN2827">2827</td><td class="line"> terminal_window_update_size (window, priv-&gt;active_screen, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="2828"><td class="num" id="LN2828">2828</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="2829"><td class="num" id="LN2829">2829</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="2830"><td class="num" id="LN2830">2830</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2831"><td class="num" id="LN2831">2831</td><td class="line">gboolean</td></tr>
+<tr class="codeline" data-linenumber="2832"><td class="num" id="LN2832">2832</td><td class="line">terminal_window_get_menubar_visible (TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="2833"><td class="num" id="LN2833">2833</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="2834"><td class="num" id="LN2834">2834</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="2835"><td class="num" id="LN2835">2835</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2836"><td class="num" id="LN2836">2836</td><td class="line"> <span class='keyword'>return</span> priv-&gt;menubar_visible;</td></tr>
+<tr class="codeline" data-linenumber="2837"><td class="num" id="LN2837">2837</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="2838"><td class="num" id="LN2838">2838</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2839"><td class="num" id="LN2839">2839</td><td class="line">GtkWidget *</td></tr>
+<tr class="codeline" data-linenumber="2840"><td class="num" id="LN2840">2840</td><td class="line">terminal_window_get_notebook (TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="2841"><td class="num" id="LN2841">2841</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="2842"><td class="num" id="LN2842">2842</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="2843"><td class="num" id="LN2843">2843</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2844"><td class="num" id="LN2844">2844</td><td class="line"> <span class='macro'>g_return_val_if_fail (TERMINAL_IS_WINDOW (window), NULL)<span class='macro_popup'>do { if (((((__extension__ ({ GTypeInstance *__inst = (GTypeInstance<br>*) ((window)); GType __t = ((terminal_window_get_type ())); gboolean<br> __r; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; })))))) { }<br> else { g_return_if_fail_warning (((gchar*) 0), ((const char*<br>) (__func__)), "TERMINAL_IS_WINDOW (window)"); return (((void<br>*)0)); } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2845"><td class="num" id="LN2845">2845</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2846"><td class="num" id="LN2846">2846</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>GTK_WIDGET (priv-&gt;notebook)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((priv-&gt;notebook)), ((gtk_widget_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2847"><td class="num" id="LN2847">2847</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="2848"><td class="num" id="LN2848">2848</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2849"><td class="num" id="LN2849">2849</td><td class="line"><span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="2850"><td class="num" id="LN2850">2850</td><td class="line">terminal_window_update_size (TerminalWindow *window,</td></tr>
+<tr class="codeline" data-linenumber="2851"><td class="num" id="LN2851">2851</td><td class="line"> TerminalScreen *screen,</td></tr>
+<tr class="codeline" data-linenumber="2852"><td class="num" id="LN2852">2852</td><td class="line"> gboolean even_if_mapped)</td></tr>
+<tr class="codeline" data-linenumber="2853"><td class="num" id="LN2853">2853</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="2854"><td class="num" id="LN2854">2854</td><td class="line"> terminal_window_update_size_set_geometry (window, screen,</td></tr>
+<tr class="codeline" data-linenumber="2855"><td class="num" id="LN2855">2855</td><td class="line"> even_if_mapped, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="2856"><td class="num" id="LN2856">2856</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="2857"><td class="num" id="LN2857">2857</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2858"><td class="num" id="LN2858">2858</td><td class="line">gboolean</td></tr>
+<tr class="codeline" data-linenumber="2859"><td class="num" id="LN2859">2859</td><td class="line">terminal_window_update_size_set_geometry (TerminalWindow *window,</td></tr>
+<tr class="codeline" data-linenumber="2860"><td class="num" id="LN2860">2860</td><td class="line"> TerminalScreen *screen,</td></tr>
+<tr class="codeline" data-linenumber="2861"><td class="num" id="LN2861">2861</td><td class="line"> gboolean even_if_mapped,</td></tr>
+<tr class="codeline" data-linenumber="2862"><td class="num" id="LN2862">2862</td><td class="line"> gchar *geometry_string)</td></tr>
+<tr class="codeline" data-linenumber="2863"><td class="num" id="LN2863">2863</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="2864"><td class="num" id="LN2864">2864</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="2865"><td class="num" id="LN2865">2865</td><td class="line"> GtkWidget *widget;</td></tr>
+<tr class="codeline" data-linenumber="2866"><td class="num" id="LN2866">2866</td><td class="line"> GtkWidget *app;</td></tr>
+<tr class="codeline" data-linenumber="2867"><td class="num" id="LN2867">2867</td><td class="line"> gboolean result;</td></tr>
+<tr class="codeline" data-linenumber="2868"><td class="num" id="LN2868">2868</td><td class="line"> <span class='keyword'>int</span> geom_result;</td></tr>
+<tr class="codeline" data-linenumber="2869"><td class="num" id="LN2869">2869</td><td class="line"> gint force_pos_x = 0, force_pos_y = 0;</td></tr>
+<tr class="codeline" data-linenumber="2870"><td class="num" id="LN2870">2870</td><td class="line"> <span class='keyword'>unsigned</span> <span class='keyword'>int</span> force_grid_width = 0, force_grid_height = 0;</td></tr>
+<tr class="codeline" data-linenumber="2871"><td class="num" id="LN2871">2871</td><td class="line"> <span class='keyword'>int</span> grid_width, grid_height;</td></tr>
+<tr class="codeline" data-linenumber="2872"><td class="num" id="LN2872">2872</td><td class="line"> gint pixel_width, pixel_height;</td></tr>
+<tr class="codeline" data-linenumber="2873"><td class="num" id="LN2873">2873</td><td class="line"> GdkWindow *gdk_window;</td></tr>
+<tr class="codeline" data-linenumber="2874"><td class="num" id="LN2874">2874</td><td class="line"> GdkGravity pos_gravity;</td></tr>
+<tr class="codeline" data-linenumber="2875"><td class="num" id="LN2875">2875</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2876"><td class="num" id="LN2876">2876</td><td class="line"> gdk_window = gtk_widget_get_window (<span class='macro'>GTK_WIDGET (window)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_widget_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="2877"><td class="num" id="LN2877">2877</td><td class="line"> result = <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2878"><td class="num" id="LN2878">2878</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2879"><td class="num" id="LN2879">2879</td><td class="line"> <span class='keyword'>if</span> (gdk_window != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span> &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="2880"><td class="num" id="LN2880">2880</td><td class="line"> (gdk_window_get_state (gdk_window) &amp;</td></tr>
+<tr class="codeline" data-linenumber="2881"><td class="num" id="LN2881">2881</td><td class="line"> (GDK_WINDOW_STATE_MAXIMIZED | GDK_WINDOW_STATE_TILED)))</td></tr>
+<tr class="codeline" data-linenumber="2882"><td class="num" id="LN2882">2882</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="2883"><td class="num" id="LN2883">2883</td><td class="line"> <span class='comment'>/* Don't adjust the size of maximized or tiled (snapped, half-maximized)</span></td></tr>
+<tr class="codeline" data-linenumber="2884"><td class="num" id="LN2884">2884</td><td class="line"> <span class='comment'>* windows: if we do, there will be ugly gaps of up to 1 character cell</span></td></tr>
+<tr class="codeline" data-linenumber="2885"><td class="num" id="LN2885">2885</td><td class="line"> <span class='comment'>* around otherwise tiled windows. */</span></td></tr>
+<tr class="codeline" data-linenumber="2886"><td class="num" id="LN2886">2886</td><td class="line"> <span class='keyword'>return</span> result;</td></tr>
+<tr class="codeline" data-linenumber="2887"><td class="num" id="LN2887">2887</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="2888"><td class="num" id="LN2888">2888</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2889"><td class="num" id="LN2889">2889</td><td class="line"> <span class='comment'>/* be sure our geometry is up-to-date */</span></td></tr>
+<tr class="codeline" data-linenumber="2890"><td class="num" id="LN2890">2890</td><td class="line"> terminal_window_update_geometry (window);</td></tr>
+<tr class="codeline" data-linenumber="2891"><td class="num" id="LN2891">2891</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2892"><td class="num" id="LN2892">2892</td><td class="line"> <span class='keyword'>if</span> (<span class='macro'>GTK_IS_WIDGET (screen)<span class='macro_popup'>(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (<br>(screen)); GType __t = ((gtk_widget_get_type ())); gboolean __r<br>; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; }))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="2893"><td class="num" id="LN2893">2893</td><td class="line"> widget = <span class='macro'>GTK_WIDGET (screen)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((screen)), ((gtk_widget_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2894"><td class="num" id="LN2894">2894</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="2895"><td class="num" id="LN2895">2895</td><td class="line"> widget = <span class='macro'>GTK_WIDGET (window)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_widget_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2896"><td class="num" id="LN2896">2896</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2897"><td class="num" id="LN2897">2897</td><td class="line"> app = gtk_widget_get_toplevel (widget);</td></tr>
+<tr class="codeline" data-linenumber="2898"><td class="num" id="LN2898">2898</td><td class="line"> <span class='macro'>g_assert (app != NULL)<span class='macro_popup'>do { if (app != ((void*)0)) ; else g_assertion_message_expr (<br>((gchar*) 0), "terminal-window.c", 2898, ((const char*) (__func__<br>)), "app != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2899"><td class="num" id="LN2899">2899</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2900"><td class="num" id="LN2900">2900</td><td class="line"> terminal_screen_get_size (screen, &amp;grid_width, &amp;grid_height);</td></tr>
+<tr class="codeline" data-linenumber="2901"><td class="num" id="LN2901">2901</td><td class="line"> <span class='keyword'>if</span> (geometry_string != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="2902"><td class="num" id="LN2902">2902</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="2903"><td class="num" id="LN2903">2903</td><td class="line"> geom_result = terminal_window_XParseGeometry (geometry_string,</td></tr>
+<tr class="codeline" data-linenumber="2904"><td class="num" id="LN2904">2904</td><td class="line"> &amp;force_pos_x,</td></tr>
+<tr class="codeline" data-linenumber="2905"><td class="num" id="LN2905">2905</td><td class="line"> &amp;force_pos_y,</td></tr>
+<tr class="codeline" data-linenumber="2906"><td class="num" id="LN2906">2906</td><td class="line"> &amp;force_grid_width,</td></tr>
+<tr class="codeline" data-linenumber="2907"><td class="num" id="LN2907">2907</td><td class="line"> &amp;force_grid_height);</td></tr>
+<tr class="codeline" data-linenumber="2908"><td class="num" id="LN2908">2908</td><td class="line"> <span class='keyword'>if</span> (geom_result == <span class='macro'>NoValue<span class='macro_popup'>0x0000</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="2909"><td class="num" id="LN2909">2909</td><td class="line"> result = <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2910"><td class="num" id="LN2910">2910</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="2911"><td class="num" id="LN2911">2911</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="2912"><td class="num" id="LN2912">2912</td><td class="line"> geom_result = <span class='macro'>NoValue<span class='macro_popup'>0x0000</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2913"><td class="num" id="LN2913">2913</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2914"><td class="num" id="LN2914">2914</td><td class="line"> <span class='keyword'>if</span> ((geom_result &amp; <span class='macro'>WidthValue<span class='macro_popup'>0x0004</span></span>) != 0)</td></tr>
+<tr class="codeline" data-linenumber="2915"><td class="num" id="LN2915">2915</td><td class="line"> grid_width = force_grid_width;</td></tr>
+<tr class="codeline" data-linenumber="2916"><td class="num" id="LN2916">2916</td><td class="line"> <span class='keyword'>if</span> ((geom_result &amp; <span class='macro'>HeightValue<span class='macro_popup'>0x0008</span></span>) != 0)</td></tr>
+<tr class="codeline" data-linenumber="2917"><td class="num" id="LN2917">2917</td><td class="line"> grid_height = force_grid_height;</td></tr>
+<tr class="codeline" data-linenumber="2918"><td class="num" id="LN2918">2918</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2919"><td class="num" id="LN2919">2919</td><td class="line"> <span class='comment'>/* the "old" struct members were updated by update_geometry */</span></td></tr>
+<tr class="codeline" data-linenumber="2920"><td class="num" id="LN2920">2920</td><td class="line"> pixel_width = priv-&gt;old_chrome_width + grid_width * priv-&gt;old_char_width;</td></tr>
+<tr class="codeline" data-linenumber="2921"><td class="num" id="LN2921">2921</td><td class="line"> pixel_height = priv-&gt;old_chrome_height + grid_height * priv-&gt;old_char_height;</td></tr>
+<tr class="codeline" data-linenumber="2922"><td class="num" id="LN2922">2922</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2923"><td class="num" id="LN2923">2923</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_GEOMETRY,<span class='macro_popup'>do { if (0) g_printerr("[window %p] size is %dx%d cells of %dx%d px\n"<br>, window, grid_width, grid_height, priv-&gt;old_char_width, priv<br>-&gt;old_char_height); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="2924"><td class="num" id="LN2924">2924</td><td class="line"> <span class='string_literal'><span class='macro'>"[window %p] size is %dx%d cells of %dx%d px\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("[window %p] size is %dx%d cells of %dx%d px\n"<br>, window, grid_width, grid_height, priv-&gt;old_char_width, priv<br>-&gt;old_char_height); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="2925"><td class="num" id="LN2925">2925</td><td class="line"> <span class='macro'>window, grid_width, grid_height,<span class='macro_popup'>do { if (0) g_printerr("[window %p] size is %dx%d cells of %dx%d px\n"<br>, window, grid_width, grid_height, priv-&gt;old_char_width, priv<br>-&gt;old_char_height); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="2926"><td class="num" id="LN2926">2926</td><td class="line"> <span class='macro'>priv-&gt;old_char_width, priv-&gt;old_char_height)<span class='macro_popup'>do { if (0) g_printerr("[window %p] size is %dx%d cells of %dx%d px\n"<br>, window, grid_width, grid_height, priv-&gt;old_char_width, priv<br>-&gt;old_char_height); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2927"><td class="num" id="LN2927">2927</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2928"><td class="num" id="LN2928">2928</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_GEOMETRY,<span class='macro_popup'>do { if (0) g_printerr("[window %p] %dx%d + %dx%d = %dx%d\n",<br> window, grid_width * priv-&gt;old_char_width, grid_height * priv<br>-&gt;old_char_height, priv-&gt;old_chrome_width, priv-&gt;old_chrome_height<br>, pixel_width, pixel_height); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="2929"><td class="num" id="LN2929">2929</td><td class="line"> <span class='string_literal'><span class='macro'>"[window %p] %dx%d + %dx%d = %dx%d\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("[window %p] %dx%d + %dx%d = %dx%d\n",<br> window, grid_width * priv-&gt;old_char_width, grid_height * priv<br>-&gt;old_char_height, priv-&gt;old_chrome_width, priv-&gt;old_chrome_height<br>, pixel_width, pixel_height); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="2930"><td class="num" id="LN2930">2930</td><td class="line"> <span class='macro'>window, grid_width * priv-&gt;old_char_width,<span class='macro_popup'>do { if (0) g_printerr("[window %p] %dx%d + %dx%d = %dx%d\n",<br> window, grid_width * priv-&gt;old_char_width, grid_height * priv<br>-&gt;old_char_height, priv-&gt;old_chrome_width, priv-&gt;old_chrome_height<br>, pixel_width, pixel_height); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="2931"><td class="num" id="LN2931">2931</td><td class="line"> <span class='macro'>grid_height * priv-&gt;old_char_height,<span class='macro_popup'>do { if (0) g_printerr("[window %p] %dx%d + %dx%d = %dx%d\n",<br> window, grid_width * priv-&gt;old_char_width, grid_height * priv<br>-&gt;old_char_height, priv-&gt;old_chrome_width, priv-&gt;old_chrome_height<br>, pixel_width, pixel_height); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="2932"><td class="num" id="LN2932">2932</td><td class="line"> <span class='macro'>priv-&gt;old_chrome_width, priv-&gt;old_chrome_height,<span class='macro_popup'>do { if (0) g_printerr("[window %p] %dx%d + %dx%d = %dx%d\n",<br> window, grid_width * priv-&gt;old_char_width, grid_height * priv<br>-&gt;old_char_height, priv-&gt;old_chrome_width, priv-&gt;old_chrome_height<br>, pixel_width, pixel_height); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="2933"><td class="num" id="LN2933">2933</td><td class="line"> <span class='macro'>pixel_width, pixel_height)<span class='macro_popup'>do { if (0) g_printerr("[window %p] %dx%d + %dx%d = %dx%d\n",<br> window, grid_width * priv-&gt;old_char_width, grid_height * priv<br>-&gt;old_char_height, priv-&gt;old_chrome_width, priv-&gt;old_chrome_height<br>, pixel_width, pixel_height); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2934"><td class="num" id="LN2934">2934</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2935"><td class="num" id="LN2935">2935</td><td class="line"> pos_gravity = GDK_GRAVITY_NORTH_WEST;</td></tr>
+<tr class="codeline" data-linenumber="2936"><td class="num" id="LN2936">2936</td><td class="line"> <span class='keyword'>if</span> ((geom_result &amp; <span class='macro'>XNegative<span class='macro_popup'>0x0010</span></span>) != 0 &amp;&amp; (geom_result &amp; <span class='macro'>YNegative<span class='macro_popup'>0x0020</span></span>) != 0)</td></tr>
+<tr class="codeline" data-linenumber="2937"><td class="num" id="LN2937">2937</td><td class="line"> pos_gravity = GDK_GRAVITY_SOUTH_EAST;</td></tr>
+<tr class="codeline" data-linenumber="2938"><td class="num" id="LN2938">2938</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> ((geom_result &amp; <span class='macro'>XNegative<span class='macro_popup'>0x0010</span></span>) != 0)</td></tr>
+<tr class="codeline" data-linenumber="2939"><td class="num" id="LN2939">2939</td><td class="line"> pos_gravity = GDK_GRAVITY_NORTH_EAST;</td></tr>
+<tr class="codeline" data-linenumber="2940"><td class="num" id="LN2940">2940</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> ((geom_result &amp; <span class='macro'>YNegative<span class='macro_popup'>0x0020</span></span>) != 0)</td></tr>
+<tr class="codeline" data-linenumber="2941"><td class="num" id="LN2941">2941</td><td class="line"> pos_gravity = GDK_GRAVITY_SOUTH_WEST;</td></tr>
+<tr class="codeline" data-linenumber="2942"><td class="num" id="LN2942">2942</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2943"><td class="num" id="LN2943">2943</td><td class="line"> <span class='keyword'>if</span> ((geom_result &amp; <span class='macro'>XValue<span class='macro_popup'>0x0001</span></span>) == 0)</td></tr>
+<tr class="codeline" data-linenumber="2944"><td class="num" id="LN2944">2944</td><td class="line"> force_pos_x = 0;</td></tr>
+<tr class="codeline" data-linenumber="2945"><td class="num" id="LN2945">2945</td><td class="line"> <span class='keyword'>if</span> ((geom_result &amp; <span class='macro'>YValue<span class='macro_popup'>0x0002</span></span>) == 0)</td></tr>
+<tr class="codeline" data-linenumber="2946"><td class="num" id="LN2946">2946</td><td class="line"> force_pos_y = 0;</td></tr>
+<tr class="codeline" data-linenumber="2947"><td class="num" id="LN2947">2947</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2948"><td class="num" id="LN2948">2948</td><td class="line"> <span class='keyword'>if</span> (pos_gravity == GDK_GRAVITY_SOUTH_EAST ||</td></tr>
+<tr class="codeline" data-linenumber="2949"><td class="num" id="LN2949">2949</td><td class="line"> pos_gravity == GDK_GRAVITY_NORTH_EAST)</td></tr>
+<tr class="codeline" data-linenumber="2950"><td class="num" id="LN2950">2950</td><td class="line"> force_pos_x = <span class='macro'>WidthOfScreen (gdk_x11_screen_get_xscreen (gtk_widget_get_screen (app)))<span class='macro_popup'>((gdk_x11_screen_get_xscreen (gtk_widget_get_screen (app)))-&gt;<br>width)</span></span> -</td></tr>
+<tr class="codeline" data-linenumber="2951"><td class="num" id="LN2951">2951</td><td class="line"> pixel_width + force_pos_x;</td></tr>
+<tr class="codeline" data-linenumber="2952"><td class="num" id="LN2952">2952</td><td class="line"> <span class='keyword'>if</span> (pos_gravity == GDK_GRAVITY_SOUTH_WEST ||</td></tr>
+<tr class="codeline" data-linenumber="2953"><td class="num" id="LN2953">2953</td><td class="line"> pos_gravity == GDK_GRAVITY_SOUTH_EAST)</td></tr>
+<tr class="codeline" data-linenumber="2954"><td class="num" id="LN2954">2954</td><td class="line"> force_pos_y = <span class='macro'>HeightOfScreen (gdk_x11_screen_get_xscreen (gtk_widget_get_screen (app)))<span class='macro_popup'>((gdk_x11_screen_get_xscreen (gtk_widget_get_screen (app)))-&gt;<br>height)</span></span> -</td></tr>
+<tr class="codeline" data-linenumber="2955"><td class="num" id="LN2955">2955</td><td class="line"> pixel_height + force_pos_y;</td></tr>
+<tr class="codeline" data-linenumber="2956"><td class="num" id="LN2956">2956</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2957"><td class="num" id="LN2957">2957</td><td class="line"> <span class='comment'>/* we don't let you put a window offscreen; maybe some people would</span></td></tr>
+<tr class="codeline" data-linenumber="2958"><td class="num" id="LN2958">2958</td><td class="line"> <span class='comment'>* prefer to be able to, but it's kind of a bogus thing to do.</span></td></tr>
+<tr class="codeline" data-linenumber="2959"><td class="num" id="LN2959">2959</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="2960"><td class="num" id="LN2960">2960</td><td class="line"> <span class='keyword'>if</span> (force_pos_x &lt; 0)</td></tr>
+<tr class="codeline" data-linenumber="2961"><td class="num" id="LN2961">2961</td><td class="line"> force_pos_x = 0;</td></tr>
+<tr class="codeline" data-linenumber="2962"><td class="num" id="LN2962">2962</td><td class="line"> <span class='keyword'>if</span> (force_pos_y &lt; 0)</td></tr>
+<tr class="codeline" data-linenumber="2963"><td class="num" id="LN2963">2963</td><td class="line"> force_pos_y = 0;</td></tr>
+<tr class="codeline" data-linenumber="2964"><td class="num" id="LN2964">2964</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2965"><td class="num" id="LN2965">2965</td><td class="line"> <span class='keyword'>if</span> (even_if_mapped &amp;&amp; gtk_widget_get_mapped (app))</td></tr>
+<tr class="codeline" data-linenumber="2966"><td class="num" id="LN2966">2966</td><td class="line"> gtk_window_resize (<span class='macro'>GTK_WINDOW (app)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app)), ((gtk_window_get_type ()))))))</span></span>, pixel_width, pixel_height);</td></tr>
+<tr class="codeline" data-linenumber="2967"><td class="num" id="LN2967">2967</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="2968"><td class="num" id="LN2968">2968</td><td class="line"> gtk_window_set_default_size (<span class='macro'>GTK_WINDOW (app)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app)), ((gtk_window_get_type ()))))))</span></span>, pixel_width, pixel_height);</td></tr>
+<tr class="codeline" data-linenumber="2969"><td class="num" id="LN2969">2969</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2970"><td class="num" id="LN2970">2970</td><td class="line"> <span class='keyword'>if</span> ((geom_result &amp; <span class='macro'>XValue<span class='macro_popup'>0x0001</span></span>) != 0 || (geom_result &amp; <span class='macro'>YValue<span class='macro_popup'>0x0002</span></span>) != 0)</td></tr>
+<tr class="codeline" data-linenumber="2971"><td class="num" id="LN2971">2971</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="2972"><td class="num" id="LN2972">2972</td><td class="line"> gtk_window_set_gravity (<span class='macro'>GTK_WINDOW (app)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app)), ((gtk_window_get_type ()))))))</span></span>, pos_gravity);</td></tr>
+<tr class="codeline" data-linenumber="2973"><td class="num" id="LN2973">2973</td><td class="line"> gtk_window_move (<span class='macro'>GTK_WINDOW (app)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((app)), ((gtk_window_get_type ()))))))</span></span>, force_pos_x, force_pos_y);</td></tr>
+<tr class="codeline" data-linenumber="2974"><td class="num" id="LN2974">2974</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="2975"><td class="num" id="LN2975">2975</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2976"><td class="num" id="LN2976">2976</td><td class="line"> <span class='keyword'>return</span> result;</td></tr>
+<tr class="codeline" data-linenumber="2977"><td class="num" id="LN2977">2977</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="2978"><td class="num" id="LN2978">2978</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2979"><td class="num" id="LN2979">2979</td><td class="line"><span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="2980"><td class="num" id="LN2980">2980</td><td class="line">terminal_window_switch_screen (TerminalWindow *window,</td></tr>
+<tr class="codeline" data-linenumber="2981"><td class="num" id="LN2981">2981</td><td class="line"> TerminalScreen *screen)</td></tr>
+<tr class="codeline" data-linenumber="2982"><td class="num" id="LN2982">2982</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="2983"><td class="num" id="LN2983">2983</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="2984"><td class="num" id="LN2984">2984</td><td class="line"> TerminalScreenContainer *screen_container;</td></tr>
+<tr class="codeline" data-linenumber="2985"><td class="num" id="LN2985">2985</td><td class="line"> <span class='keyword'>int</span> page_num;</td></tr>
+<tr class="codeline" data-linenumber="2986"><td class="num" id="LN2986">2986</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2987"><td class="num" id="LN2987">2987</td><td class="line"> screen_container = terminal_screen_container_get_from_screen (screen);</td></tr>
+<tr class="codeline" data-linenumber="2988"><td class="num" id="LN2988">2988</td><td class="line"> <span class='macro'>g_assert (TERMINAL_IS_SCREEN_CONTAINER (screen_container))<span class='macro_popup'>do { if ((((__extension__ ({ GTypeInstance *__inst = (GTypeInstance<br>*) ((screen_container)); GType __t = ((terminal_screen_container_get_type<br> ())); gboolean __r; if (!__inst) __r = (0); else if (__inst-&gt;<br>g_class &amp;&amp; __inst-&gt;g_class-&gt;g_type == __t) __r =<br> (!(0)); else __r = g_type_check_instance_is_a (__inst, __t);<br> __r; }))))) ; else g_assertion_message_expr (((gchar*) 0), "terminal-window.c"<br>, 2988, ((const char*) (__func__)), "TERMINAL_IS_SCREEN_CONTAINER (screen_container)"<br>); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="2989"><td class="num" id="LN2989">2989</td><td class="line"> page_num = gtk_notebook_page_num (<span class='macro'>GTK_NOTEBOOK (priv-&gt;notebook)<span class='macro_popup'>((((GtkNotebook*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((priv-&gt;notebook)), ((gtk_notebook_get_type ()))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="2990"><td class="num" id="LN2990">2990</td><td class="line"> <span class='macro'>GTK_WIDGET (screen_container)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((screen_container)), ((gtk_widget_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="2991"><td class="num" id="LN2991">2991</td><td class="line"> gtk_notebook_set_current_page (<span class='macro'>GTK_NOTEBOOK (priv-&gt;notebook)<span class='macro_popup'>((((GtkNotebook*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((priv-&gt;notebook)), ((gtk_notebook_get_type ()))))))</span></span>, page_num);</td></tr>
+<tr class="codeline" data-linenumber="2992"><td class="num" id="LN2992">2992</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="2993"><td class="num" id="LN2993">2993</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2994"><td class="num" id="LN2994">2994</td><td class="line">TerminalScreen*</td></tr>
+<tr class="codeline" data-linenumber="2995"><td class="num" id="LN2995">2995</td><td class="line">terminal_window_get_active (TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="2996"><td class="num" id="LN2996">2996</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="2997"><td class="num" id="LN2997">2997</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="2998"><td class="num" id="LN2998">2998</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="2999"><td class="num" id="LN2999">2999</td><td class="line"> <span class='keyword'>return</span> priv-&gt;active_screen;</td></tr>
+<tr class="codeline" data-linenumber="3000"><td class="num" id="LN3000">3000</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="3001"><td class="num" id="LN3001">3001</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3002"><td class="num" id="LN3002">3002</td><td class="line"><span class='keyword'>static</span> gboolean</td></tr>
+<tr class="codeline" data-linenumber="3003"><td class="num" id="LN3003">3003</td><td class="line">notebook_button_press_cb (GtkWidget *widget,</td></tr>
+<tr class="codeline" data-linenumber="3004"><td class="num" id="LN3004">3004</td><td class="line"> GdkEventButton *event,</td></tr>
+<tr class="codeline" data-linenumber="3005"><td class="num" id="LN3005">3005</td><td class="line"> GSettings *settings)</td></tr>
+<tr class="codeline" data-linenumber="3006"><td class="num" id="LN3006">3006</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="3007"><td class="num" id="LN3007">3007</td><td class="line"> TerminalWindow *window = <span class='macro'>TERMINAL_WINDOW (gtk_widget_get_toplevel (widget))<span class='macro_popup'>((((TerminalWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((gtk_widget_get_toplevel (widget))), ((terminal_window_get_type<br> ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3008"><td class="num" id="LN3008">3008</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="3009"><td class="num" id="LN3009">3009</td><td class="line"> GtkNotebook *notebook = <span class='macro'>GTK_NOTEBOOK (widget)<span class='macro_popup'>((((GtkNotebook*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((widget)), ((gtk_notebook_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3010"><td class="num" id="LN3010">3010</td><td class="line"> GtkWidget *tab;</td></tr>
+<tr class="codeline" data-linenumber="3011"><td class="num" id="LN3011">3011</td><td class="line"> GtkWidget *menu;</td></tr>
+<tr class="codeline" data-linenumber="3012"><td class="num" id="LN3012">3012</td><td class="line"> GtkAction *action;</td></tr>
+<tr class="codeline" data-linenumber="3013"><td class="num" id="LN3013">3013</td><td class="line"> <span class='keyword'>int</span> tab_clicked;</td></tr>
+<tr class="codeline" data-linenumber="3014"><td class="num" id="LN3014">3014</td><td class="line"> <span class='keyword'>int</span> page_num;</td></tr>
+<tr class="codeline" data-linenumber="3015"><td class="num" id="LN3015">3015</td><td class="line"> <span class='keyword'>int</span> before_pages;</td></tr>
+<tr class="codeline" data-linenumber="3016"><td class="num" id="LN3016">3016</td><td class="line"> <span class='keyword'>int</span> later_pages;</td></tr>
+<tr class="codeline" data-linenumber="3017"><td class="num" id="LN3017">3017</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3018"><td class="num" id="LN3018">3018</td><td class="line"> <span class='keyword'>if</span> ((event-&gt;type == GDK_BUTTON_PRESS &amp;&amp; event-&gt;button == 2) &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="3019"><td class="num" id="LN3019">3019</td><td class="line"> (g_settings_get_boolean (settings, <span class='string_literal'>"middle-click-closes-tabs"</span>)))</td></tr>
+<tr class="codeline" data-linenumber="3020"><td class="num" id="LN3020">3020</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="3021"><td class="num" id="LN3021">3021</td><td class="line"> tab_clicked = find_tab_num_at_pos (notebook,</td></tr>
+<tr class="codeline" data-linenumber="3022"><td class="num" id="LN3022">3022</td><td class="line"> (<span class='keyword'>int</span>)event-&gt;x_root,</td></tr>
+<tr class="codeline" data-linenumber="3023"><td class="num" id="LN3023">3023</td><td class="line"> (<span class='keyword'>int</span>)event-&gt;y_root);</td></tr>
+<tr class="codeline" data-linenumber="3024"><td class="num" id="LN3024">3024</td><td class="line"> <span class='keyword'>if</span> (tab_clicked &gt;= 0)</td></tr>
+<tr class="codeline" data-linenumber="3025"><td class="num" id="LN3025">3025</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="3026"><td class="num" id="LN3026">3026</td><td class="line"> before_pages = gtk_notebook_get_n_pages (<span class='macro'>GTK_NOTEBOOK (notebook)<span class='macro_popup'>((((GtkNotebook*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((notebook)), ((gtk_notebook_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="3027"><td class="num" id="LN3027">3027</td><td class="line"> page_num = gtk_notebook_get_current_page (notebook);</td></tr>
+<tr class="codeline" data-linenumber="3028"><td class="num" id="LN3028">3028</td><td class="line"> gtk_notebook_set_current_page (notebook, tab_clicked);</td></tr>
+<tr class="codeline" data-linenumber="3029"><td class="num" id="LN3029">3029</td><td class="line"> TerminalScreen *active_screen = priv-&gt;active_screen;</td></tr>
+<tr class="codeline" data-linenumber="3030"><td class="num" id="LN3030">3030</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3031"><td class="num" id="LN3031">3031</td><td class="line"> <span class='keyword'>if</span> (!(confirm_close_window_or_tab (window, active_screen)))</td></tr>
+<tr class="codeline" data-linenumber="3032"><td class="num" id="LN3032">3032</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="3033"><td class="num" id="LN3033">3033</td><td class="line"> update_tab_visibility (window, -1);</td></tr>
+<tr class="codeline" data-linenumber="3034"><td class="num" id="LN3034">3034</td><td class="line"> gtk_notebook_remove_page(notebook, tab_clicked);</td></tr>
+<tr class="codeline" data-linenumber="3035"><td class="num" id="LN3035">3035</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="3036"><td class="num" id="LN3036">3036</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3037"><td class="num" id="LN3037">3037</td><td class="line"> later_pages = gtk_notebook_get_n_pages (<span class='macro'>GTK_NOTEBOOK (notebook)<span class='macro_popup'>((((GtkNotebook*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((notebook)), ((gtk_notebook_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="3038"><td class="num" id="LN3038">3038</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3039"><td class="num" id="LN3039">3039</td><td class="line"> <span class='keyword'>if</span> (before_pages &gt; later_pages) {</td></tr>
+<tr class="codeline" data-linenumber="3040"><td class="num" id="LN3040">3040</td><td class="line"> <span class='keyword'>if</span> (tab_clicked &gt; page_num)</td></tr>
+<tr class="codeline" data-linenumber="3041"><td class="num" id="LN3041">3041</td><td class="line"> gtk_notebook_set_current_page (notebook, page_num);</td></tr>
+<tr class="codeline" data-linenumber="3042"><td class="num" id="LN3042">3042</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (tab_clicked &lt; page_num)</td></tr>
+<tr class="codeline" data-linenumber="3043"><td class="num" id="LN3043">3043</td><td class="line"> gtk_notebook_set_current_page (notebook, page_num - 1);</td></tr>
+<tr class="codeline" data-linenumber="3044"><td class="num" id="LN3044">3044</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="3045"><td class="num" id="LN3045">3045</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="3046"><td class="num" id="LN3046">3046</td><td class="line"> gtk_notebook_set_current_page (notebook, page_num);</td></tr>
+<tr class="codeline" data-linenumber="3047"><td class="num" id="LN3047">3047</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3048"><td class="num" id="LN3048">3048</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="3049"><td class="num" id="LN3049">3049</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="3050"><td class="num" id="LN3050">3050</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3051"><td class="num" id="LN3051">3051</td><td class="line"> <span class='comment'>/* If the event is a double click, display the set title dialog */</span></td></tr>
+<tr class="codeline" data-linenumber="3052"><td class="num" id="LN3052">3052</td><td class="line"> <span class='keyword'>if</span> (event-&gt;type == GDK_DOUBLE_BUTTON_PRESS &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="3053"><td class="num" id="LN3053">3053</td><td class="line"> find_tab_num_at_pos (notebook, (<span class='keyword'>int</span>) event-&gt;x_root, (<span class='keyword'>int</span>) event-&gt;y_root) &gt;= 0)</td></tr>
+<tr class="codeline" data-linenumber="3054"><td class="num" id="LN3054">3054</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="3055"><td class="num" id="LN3055">3055</td><td class="line"> terminal_set_title_callback (<span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, window);</td></tr>
+<tr class="codeline" data-linenumber="3056"><td class="num" id="LN3056">3056</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3057"><td class="num" id="LN3057">3057</td><td class="line"> <span class='comment'>/* handle ONLY the double-click event */</span></td></tr>
+<tr class="codeline" data-linenumber="3058"><td class="num" id="LN3058">3058</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3059"><td class="num" id="LN3059">3059</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="3060"><td class="num" id="LN3060">3060</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3061"><td class="num" id="LN3061">3061</td><td class="line"> <span class='keyword'>if</span> (event-&gt;type != GDK_BUTTON_PRESS ||</td></tr>
+<tr class="codeline" data-linenumber="3062"><td class="num" id="LN3062">3062</td><td class="line"> event-&gt;button != 3 ||</td></tr>
+<tr class="codeline" data-linenumber="3063"><td class="num" id="LN3063">3063</td><td class="line"> (event-&gt;state &amp; gtk_accelerator_get_default_mod_mask ()) != 0)</td></tr>
+<tr class="codeline" data-linenumber="3064"><td class="num" id="LN3064">3064</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3065"><td class="num" id="LN3065">3065</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3066"><td class="num" id="LN3066">3066</td><td class="line"> tab_clicked = find_tab_num_at_pos (notebook,</td></tr>
+<tr class="codeline" data-linenumber="3067"><td class="num" id="LN3067">3067</td><td class="line"> (<span class='keyword'>int</span>)event-&gt;x_root,</td></tr>
+<tr class="codeline" data-linenumber="3068"><td class="num" id="LN3068">3068</td><td class="line"> (<span class='keyword'>int</span>)event-&gt;y_root);</td></tr>
+<tr class="codeline" data-linenumber="3069"><td class="num" id="LN3069">3069</td><td class="line"> <span class='keyword'>if</span> (tab_clicked &lt; 0)</td></tr>
+<tr class="codeline" data-linenumber="3070"><td class="num" id="LN3070">3070</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3071"><td class="num" id="LN3071">3071</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3072"><td class="num" id="LN3072">3072</td><td class="line"> <span class='comment'>/* switch to the page the mouse is over */</span></td></tr>
+<tr class="codeline" data-linenumber="3073"><td class="num" id="LN3073">3073</td><td class="line"> gtk_notebook_set_current_page (notebook, tab_clicked);</td></tr>
+<tr class="codeline" data-linenumber="3074"><td class="num" id="LN3074">3074</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3075"><td class="num" id="LN3075">3075</td><td class="line"> <span class='macro'>G_GNUC_BEGIN_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic push
+ clang diagnostic ignored "-Wdeprecated-declarations"<br>
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3076"><td class="num" id="LN3076">3076</td><td class="line"> action = gtk_action_group_get_action (priv-&gt;action_group, <span class='string_literal'>"NotebookPopup"</span>);</td></tr>
+<tr class="codeline" data-linenumber="3077"><td class="num" id="LN3077">3077</td><td class="line"> gtk_action_activate (action);</td></tr>
+<tr class="codeline" data-linenumber="3078"><td class="num" id="LN3078">3078</td><td class="line"> <span class='macro'>G_GNUC_END_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic pop
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3079"><td class="num" id="LN3079">3079</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3080"><td class="num" id="LN3080">3080</td><td class="line"> menu = gtk_ui_manager_get_widget (priv-&gt;ui_manager, <span class='string_literal'>"/NotebookPopup"</span>);</td></tr>
+<tr class="codeline" data-linenumber="3081"><td class="num" id="LN3081">3081</td><td class="line"> <span class='keyword'>if</span> (gtk_menu_get_attach_widget (<span class='macro'>GTK_MENU (menu)<span class='macro_popup'>((((GtkMenu*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((menu)), ((gtk_menu_get_type ()))))))</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="3082"><td class="num" id="LN3082">3082</td><td class="line"> gtk_menu_detach (<span class='macro'>GTK_MENU (menu)<span class='macro_popup'>((((GtkMenu*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((menu)), ((gtk_menu_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="3083"><td class="num" id="LN3083">3083</td><td class="line"> tab = gtk_notebook_get_nth_page (notebook, tab_clicked);</td></tr>
+<tr class="codeline" data-linenumber="3084"><td class="num" id="LN3084">3084</td><td class="line"> gtk_menu_attach_to_widget (<span class='macro'>GTK_MENU (menu)<span class='macro_popup'>((((GtkMenu*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((menu)), ((gtk_menu_get_type ()))))))</span></span>, tab, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="3085"><td class="num" id="LN3085">3085</td><td class="line"> gtk_menu_popup_at_pointer (<span class='macro'>GTK_MENU (menu)<span class='macro_popup'>((((GtkMenu*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((menu)), ((gtk_menu_get_type ()))))))</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="3086"><td class="num" id="LN3086">3086</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3087"><td class="num" id="LN3087">3087</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3088"><td class="num" id="LN3088">3088</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="3089"><td class="num" id="LN3089">3089</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3090"><td class="num" id="LN3090">3090</td><td class="line"><span class='keyword'>static</span> gboolean</td></tr>
+<tr class="codeline" data-linenumber="3091"><td class="num" id="LN3091">3091</td><td class="line">window_key_press_cb (GtkWidget *widget,</td></tr>
+<tr class="codeline" data-linenumber="3092"><td class="num" id="LN3092">3092</td><td class="line"> GdkEventKey *event,</td></tr>
+<tr class="codeline" data-linenumber="3093"><td class="num" id="LN3093">3093</td><td class="line"> GSettings *settings)</td></tr>
+<tr class="codeline" data-linenumber="3094"><td class="num" id="LN3094">3094</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="3095"><td class="num" id="LN3095">3095</td><td class="line"> <span class='keyword'>if</span> (g_settings_get_boolean (settings, <span class='string_literal'>"ctrl-tab-switch-tabs"</span>) &amp;&amp;</td></tr>
+<tr class="codeline" data-linenumber="3096"><td class="num" id="LN3096">3096</td><td class="line"> event-&gt;state &amp; GDK_CONTROL_MASK)</td></tr>
+<tr class="codeline" data-linenumber="3097"><td class="num" id="LN3097">3097</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="3098"><td class="num" id="LN3098">3098</td><td class="line"> TerminalWindow *window = <span class='macro'>TERMINAL_WINDOW (widget)<span class='macro_popup'>((((TerminalWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((widget)), ((terminal_window_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3099"><td class="num" id="LN3099">3099</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="3100"><td class="num" id="LN3100">3100</td><td class="line"> GtkNotebook *notebook = <span class='macro'>GTK_NOTEBOOK (priv-&gt;notebook)<span class='macro_popup'>((((GtkNotebook*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((priv-&gt;notebook)), ((gtk_notebook_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3101"><td class="num" id="LN3101">3101</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3102"><td class="num" id="LN3102">3102</td><td class="line"> <span class='keyword'>int</span> pages = gtk_notebook_get_n_pages (notebook);</td></tr>
+<tr class="codeline" data-linenumber="3103"><td class="num" id="LN3103">3103</td><td class="line"> <span class='keyword'>int</span> page_num = gtk_notebook_get_current_page (notebook);</td></tr>
+<tr class="codeline" data-linenumber="3104"><td class="num" id="LN3104">3104</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3105"><td class="num" id="LN3105">3105</td><td class="line"> <span class='keyword'>if</span> (event-&gt;keyval == <span class='macro'>GDK_KEY_ISO_Left_Tab<span class='macro_popup'>0xfe20</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="3106"><td class="num" id="LN3106">3106</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="3107"><td class="num" id="LN3107">3107</td><td class="line"> <span class='keyword'>if</span> (page_num != 0)</td></tr>
+<tr class="codeline" data-linenumber="3108"><td class="num" id="LN3108">3108</td><td class="line"> gtk_notebook_prev_page (notebook);</td></tr>
+<tr class="codeline" data-linenumber="3109"><td class="num" id="LN3109">3109</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="3110"><td class="num" id="LN3110">3110</td><td class="line"> gtk_notebook_set_current_page (notebook, (pages - 1));</td></tr>
+<tr class="codeline" data-linenumber="3111"><td class="num" id="LN3111">3111</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3112"><td class="num" id="LN3112">3112</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="3113"><td class="num" id="LN3113">3113</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3114"><td class="num" id="LN3114">3114</td><td class="line"> <span class='keyword'>if</span> (event-&gt;keyval == <span class='macro'>GDK_KEY_Tab<span class='macro_popup'>0xff09</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="3115"><td class="num" id="LN3115">3115</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="3116"><td class="num" id="LN3116">3116</td><td class="line"> <span class='keyword'>if</span> (page_num != (pages -1))</td></tr>
+<tr class="codeline" data-linenumber="3117"><td class="num" id="LN3117">3117</td><td class="line"> gtk_notebook_next_page (notebook);</td></tr>
+<tr class="codeline" data-linenumber="3118"><td class="num" id="LN3118">3118</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="3119"><td class="num" id="LN3119">3119</td><td class="line"> gtk_notebook_set_current_page (notebook, 0);</td></tr>
+<tr class="codeline" data-linenumber="3120"><td class="num" id="LN3120">3120</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3121"><td class="num" id="LN3121">3121</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="3122"><td class="num" id="LN3122">3122</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="3123"><td class="num" id="LN3123">3123</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3124"><td class="num" id="LN3124">3124</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="3125"><td class="num" id="LN3125">3125</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3126"><td class="num" id="LN3126">3126</td><td class="line"><span class='keyword'>static</span> gboolean</td></tr>
+<tr class="codeline" data-linenumber="3127"><td class="num" id="LN3127">3127</td><td class="line">notebook_popup_menu_cb (GtkWidget *widget,</td></tr>
+<tr class="codeline" data-linenumber="3128"><td class="num" id="LN3128">3128</td><td class="line"> TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="3129"><td class="num" id="LN3129">3129</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="3130"><td class="num" id="LN3130">3130</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="3131"><td class="num" id="LN3131">3131</td><td class="line"> GtkNotebook *notebook = <span class='macro'>GTK_NOTEBOOK (priv-&gt;notebook)<span class='macro_popup'>((((GtkNotebook*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((priv-&gt;notebook)), ((gtk_notebook_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3132"><td class="num" id="LN3132">3132</td><td class="line"> GtkWidget *focus_widget, *tab, *tab_label, *menu;</td></tr>
+<tr class="codeline" data-linenumber="3133"><td class="num" id="LN3133">3133</td><td class="line"> GtkAction *action;</td></tr>
+<tr class="codeline" data-linenumber="3134"><td class="num" id="LN3134">3134</td><td class="line"> <span class='keyword'>int</span> page_num;</td></tr>
+<tr class="codeline" data-linenumber="3135"><td class="num" id="LN3135">3135</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3136"><td class="num" id="LN3136">3136</td><td class="line"> focus_widget = gtk_window_get_focus (<span class='macro'>GTK_WINDOW (window)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_window_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="3137"><td class="num" id="LN3137">3137</td><td class="line"> <span class='comment'>/* Only respond if the notebook is the actual focus */</span></td></tr>
+<tr class="codeline" data-linenumber="3138"><td class="num" id="LN3138">3138</td><td class="line"> <span class='keyword'>if</span> (focus_widget != priv-&gt;notebook)</td></tr>
+<tr class="codeline" data-linenumber="3139"><td class="num" id="LN3139">3139</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3140"><td class="num" id="LN3140">3140</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3141"><td class="num" id="LN3141">3141</td><td class="line"> page_num = gtk_notebook_get_current_page (notebook);</td></tr>
+<tr class="codeline" data-linenumber="3142"><td class="num" id="LN3142">3142</td><td class="line"> tab = gtk_notebook_get_nth_page (notebook, page_num);</td></tr>
+<tr class="codeline" data-linenumber="3143"><td class="num" id="LN3143">3143</td><td class="line"> tab_label = gtk_notebook_get_tab_label (notebook, tab);</td></tr>
+<tr class="codeline" data-linenumber="3144"><td class="num" id="LN3144">3144</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3145"><td class="num" id="LN3145">3145</td><td class="line"> <span class='macro'>G_GNUC_BEGIN_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic push
+ clang diagnostic ignored "-Wdeprecated-declarations"<br>
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3146"><td class="num" id="LN3146">3146</td><td class="line"> action = gtk_action_group_get_action (priv-&gt;action_group, <span class='string_literal'>"NotebookPopup"</span>);</td></tr>
+<tr class="codeline" data-linenumber="3147"><td class="num" id="LN3147">3147</td><td class="line"> gtk_action_activate (action);</td></tr>
+<tr class="codeline" data-linenumber="3148"><td class="num" id="LN3148">3148</td><td class="line"> <span class='macro'>G_GNUC_END_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic pop
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3149"><td class="num" id="LN3149">3149</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3150"><td class="num" id="LN3150">3150</td><td class="line"> menu = gtk_ui_manager_get_widget (priv-&gt;ui_manager, <span class='string_literal'>"/NotebookPopup"</span>);</td></tr>
+<tr class="codeline" data-linenumber="3151"><td class="num" id="LN3151">3151</td><td class="line"> <span class='keyword'>if</span> (gtk_menu_get_attach_widget (<span class='macro'>GTK_MENU (menu)<span class='macro_popup'>((((GtkMenu*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((menu)), ((gtk_menu_get_type ()))))))</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="3152"><td class="num" id="LN3152">3152</td><td class="line"> gtk_menu_detach (<span class='macro'>GTK_MENU (menu)<span class='macro_popup'>((((GtkMenu*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((menu)), ((gtk_menu_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="3153"><td class="num" id="LN3153">3153</td><td class="line"> gtk_menu_attach_to_widget (<span class='macro'>GTK_MENU (menu)<span class='macro_popup'>((((GtkMenu*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((menu)), ((gtk_menu_get_type ()))))))</span></span>, tab_label, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="3154"><td class="num" id="LN3154">3154</td><td class="line"> gtk_menu_popup_at_widget (<span class='macro'>GTK_MENU (menu)<span class='macro_popup'>((((GtkMenu*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((menu)), ((gtk_menu_get_type ()))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="3155"><td class="num" id="LN3155">3155</td><td class="line"> tab_label,</td></tr>
+<tr class="codeline" data-linenumber="3156"><td class="num" id="LN3156">3156</td><td class="line"> GDK_GRAVITY_SOUTH_WEST,</td></tr>
+<tr class="codeline" data-linenumber="3157"><td class="num" id="LN3157">3157</td><td class="line"> GDK_GRAVITY_NORTH_WEST,</td></tr>
+<tr class="codeline" data-linenumber="3158"><td class="num" id="LN3158">3158</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="3159"><td class="num" id="LN3159">3159</td><td class="line"> gtk_menu_shell_select_first (<span class='macro'>GTK_MENU_SHELL (menu)<span class='macro_popup'>((((GtkMenuShell*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((menu)), ((gtk_menu_shell_get_type ()))))))</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="3160"><td class="num" id="LN3160">3160</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3161"><td class="num" id="LN3161">3161</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3162"><td class="num" id="LN3162">3162</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="3163"><td class="num" id="LN3163">3163</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3164"><td class="num" id="LN3164">3164</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="3165"><td class="num" id="LN3165">3165</td><td class="line">notebook_page_selected_callback (GtkWidget *notebook,</td></tr>
+<tr class="codeline" data-linenumber="3166"><td class="num" id="LN3166">3166</td><td class="line"> GtkWidget *page_widget,</td></tr>
+<tr class="codeline" data-linenumber="3167"><td class="num" id="LN3167">3167</td><td class="line"> guint page_num,</td></tr>
+<tr class="codeline" data-linenumber="3168"><td class="num" id="LN3168">3168</td><td class="line"> TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="3169"><td class="num" id="LN3169">3169</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="3170"><td class="num" id="LN3170">3170</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="3171"><td class="num" id="LN3171">3171</td><td class="line"> GtkWidget *widget;</td></tr>
+<tr class="codeline" data-linenumber="3172"><td class="num" id="LN3172">3172</td><td class="line"> TerminalScreen *screen;</td></tr>
+<tr class="codeline" data-linenumber="3173"><td class="num" id="LN3173">3173</td><td class="line"> <span class='keyword'>int</span> old_grid_width, old_grid_height;</td></tr>
+<tr class="codeline" data-linenumber="3174"><td class="num" id="LN3174">3174</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3175"><td class="num" id="LN3175">3175</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_MDI,<span class='macro_popup'>do { if (0) g_printerr("[window %p] MDI: page-selected %d\n",<br> window, page_num); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="3176"><td class="num" id="LN3176">3176</td><td class="line"> <span class='string_literal'><span class='macro'>"[window %p] MDI: page-selected %d\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("[window %p] MDI: page-selected %d\n",<br> window, page_num); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="3177"><td class="num" id="LN3177">3177</td><td class="line"> <span class='macro'>window, page_num)<span class='macro_popup'>do { if (0) g_printerr("[window %p] MDI: page-selected %d\n",<br> window, page_num); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3178"><td class="num" id="LN3178">3178</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3179"><td class="num" id="LN3179">3179</td><td class="line"> <span class='keyword'>if</span> (priv-&gt;disposed)</td></tr>
+<tr class="codeline" data-linenumber="3180"><td class="num" id="LN3180">3180</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="3181"><td class="num" id="LN3181">3181</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3182"><td class="num" id="LN3182">3182</td><td class="line"> screen = terminal_screen_container_get_screen (<span class='macro'>TERMINAL_SCREEN_CONTAINER (page_widget)<span class='macro_popup'>((((TerminalScreenContainer*) (void *) g_type_check_instance_cast<br> ((GTypeInstance*) ((page_widget)), ((terminal_screen_container_get_type<br> ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="3183"><td class="num" id="LN3183">3183</td><td class="line"> widget = <span class='macro'>GTK_WIDGET (screen)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((screen)), ((gtk_widget_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3184"><td class="num" id="LN3184">3184</td><td class="line"> <span class='macro'>g_assert (screen != NULL)<span class='macro_popup'>do { if (screen != ((void*)0)) ; else g_assertion_message_expr<br> (((gchar*) 0), "terminal-window.c", 3184, ((const char*) (__func__<br>)), "screen != NULL"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3185"><td class="num" id="LN3185">3185</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3186"><td class="num" id="LN3186">3186</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_MDI,<span class='macro_popup'>do { if (0) g_printerr("[window %p] MDI: setting active tab to screen %p (old active screen %p)\n"<br>, window, screen, priv-&gt;active_screen); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="3187"><td class="num" id="LN3187">3187</td><td class="line"> <span class='string_literal'><span class='macro'>"[window %p] MDI: setting active tab to screen %p (old active screen %p)\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("[window %p] MDI: setting active tab to screen %p (old active screen %p)\n"<br>, window, screen, priv-&gt;active_screen); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="3188"><td class="num" id="LN3188">3188</td><td class="line"> <span class='macro'>window, screen, priv-&gt;active_screen)<span class='macro_popup'>do { if (0) g_printerr("[window %p] MDI: setting active tab to screen %p (old active screen %p)\n"<br>, window, screen, priv-&gt;active_screen); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3189"><td class="num" id="LN3189">3189</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3190"><td class="num" id="LN3190">3190</td><td class="line"> <span class='keyword'>if</span> (priv-&gt;active_screen == screen)</td></tr>
+<tr class="codeline" data-linenumber="3191"><td class="num" id="LN3191">3191</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="3192"><td class="num" id="LN3192">3192</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3193"><td class="num" id="LN3193">3193</td><td class="line"> <span class='keyword'>if</span> (priv-&gt;active_screen != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="3194"><td class="num" id="LN3194">3194</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="3195"><td class="num" id="LN3195">3195</td><td class="line"> terminal_screen_get_size (priv-&gt;active_screen, &amp;old_grid_width, &amp;old_grid_height);</td></tr>
+<tr class="codeline" data-linenumber="3196"><td class="num" id="LN3196">3196</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3197"><td class="num" id="LN3197">3197</td><td class="line"> <span class='comment'>/* This is so that we maintain the same grid */</span></td></tr>
+<tr class="codeline" data-linenumber="3198"><td class="num" id="LN3198">3198</td><td class="line"> vte_terminal_set_size (<span class='macro'>VTE_TERMINAL (screen)<span class='macro_popup'>((((VteTerminal*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((screen)), ((vte_terminal_get_type()))))))</span></span>, old_grid_width, old_grid_height);</td></tr>
+<tr class="codeline" data-linenumber="3199"><td class="num" id="LN3199">3199</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="3200"><td class="num" id="LN3200">3200</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3201"><td class="num" id="LN3201">3201</td><td class="line"> <span class='comment'>/* Workaround to remove gtknotebook's feature of computing its size based on</span></td></tr>
+<tr class="codeline" data-linenumber="3202"><td class="num" id="LN3202">3202</td><td class="line"> <span class='comment'>* all pages. When the widget is hidden, its size will not be taken into</span></td></tr>
+<tr class="codeline" data-linenumber="3203"><td class="num" id="LN3203">3203</td><td class="line"> <span class='comment'>* account.</span></td></tr>
+<tr class="codeline" data-linenumber="3204"><td class="num" id="LN3204">3204</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="3205"><td class="num" id="LN3205">3205</td><td class="line"> <span class='keyword'>if</span> (priv-&gt;active_screen)</td></tr>
+<tr class="codeline" data-linenumber="3206"><td class="num" id="LN3206">3206</td><td class="line"> gtk_widget_hide (<span class='macro'>GTK_WIDGET (priv-&gt;active_screen)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((priv-&gt;active_screen)), ((gtk_widget_get_type ()))))))</span></span>); <span class='comment'>/* FIXME */</span></td></tr>
+<tr class="codeline" data-linenumber="3207"><td class="num" id="LN3207">3207</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3208"><td class="num" id="LN3208">3208</td><td class="line"> <span class='comment'>/* Make sure that the widget is no longer hidden due to the workaround */</span></td></tr>
+<tr class="codeline" data-linenumber="3209"><td class="num" id="LN3209">3209</td><td class="line"> gtk_widget_show (widget);</td></tr>
+<tr class="codeline" data-linenumber="3210"><td class="num" id="LN3210">3210</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3211"><td class="num" id="LN3211">3211</td><td class="line"> priv-&gt;active_screen = screen;</td></tr>
+<tr class="codeline" data-linenumber="3212"><td class="num" id="LN3212">3212</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3213"><td class="num" id="LN3213">3213</td><td class="line"> <span class='comment'>/* Override menubar setting if it wasn't restored from session */</span></td></tr>
+<tr class="codeline" data-linenumber="3214"><td class="num" id="LN3214">3214</td><td class="line"> <span class='keyword'>if</span> (priv-&gt;use_default_menubar_visibility)</td></tr>
+<tr class="codeline" data-linenumber="3215"><td class="num" id="LN3215">3215</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="3216"><td class="num" id="LN3216">3216</td><td class="line"> gboolean setting =</td></tr>
+<tr class="codeline" data-linenumber="3217"><td class="num" id="LN3217">3217</td><td class="line"> terminal_profile_get_property_boolean (terminal_screen_get_profile (screen), <span class='macro'>TERMINAL_PROFILE_DEFAULT_SHOW_MENUBAR<span class='macro_popup'>"default-show-menubar"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="3218"><td class="num" id="LN3218">3218</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3219"><td class="num" id="LN3219">3219</td><td class="line"> terminal_window_set_menubar_visible (window, setting);</td></tr>
+<tr class="codeline" data-linenumber="3220"><td class="num" id="LN3220">3220</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="3221"><td class="num" id="LN3221">3221</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3222"><td class="num" id="LN3222">3222</td><td class="line"> sync_screen_icon_title_set (screen, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, window);</td></tr>
+<tr class="codeline" data-linenumber="3223"><td class="num" id="LN3223">3223</td><td class="line"> sync_screen_icon_title (screen, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, window);</td></tr>
+<tr class="codeline" data-linenumber="3224"><td class="num" id="LN3224">3224</td><td class="line"> sync_screen_title (screen, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, window);</td></tr>
+<tr class="codeline" data-linenumber="3225"><td class="num" id="LN3225">3225</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3226"><td class="num" id="LN3226">3226</td><td class="line"> <span class='comment'>/* set size of window to current grid size */</span></td></tr>
+<tr class="codeline" data-linenumber="3227"><td class="num" id="LN3227">3227</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_GEOMETRY,<span class='macro_popup'>do { if (0) g_printerr("[window %p] setting size after flipping notebook pages\n"<br>, window); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="3228"><td class="num" id="LN3228">3228</td><td class="line"> <span class='string_literal'><span class='macro'>"[window %p] setting size after flipping notebook pages\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("[window %p] setting size after flipping notebook pages\n"<br>, window); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="3229"><td class="num" id="LN3229">3229</td><td class="line"> <span class='macro'>window)<span class='macro_popup'>do { if (0) g_printerr("[window %p] setting size after flipping notebook pages\n"<br>, window); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3230"><td class="num" id="LN3230">3230</td><td class="line"> terminal_window_update_size (window, screen, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="3231"><td class="num" id="LN3231">3231</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3232"><td class="num" id="LN3232">3232</td><td class="line"> terminal_window_update_tabs_menu_sensitivity (window);</td></tr>
+<tr class="codeline" data-linenumber="3233"><td class="num" id="LN3233">3233</td><td class="line"> terminal_window_update_encoding_menu_active_encoding (window);</td></tr>
+<tr class="codeline" data-linenumber="3234"><td class="num" id="LN3234">3234</td><td class="line"> terminal_window_update_set_profile_menu_active_profile (window);</td></tr>
+<tr class="codeline" data-linenumber="3235"><td class="num" id="LN3235">3235</td><td class="line"> terminal_window_update_copy_sensitivity (screen, window);</td></tr>
+<tr class="codeline" data-linenumber="3236"><td class="num" id="LN3236">3236</td><td class="line"> terminal_window_update_zoom_sensitivity (window);</td></tr>
+<tr class="codeline" data-linenumber="3237"><td class="num" id="LN3237">3237</td><td class="line"> terminal_window_update_search_sensitivity (screen, window);</td></tr>
+<tr class="codeline" data-linenumber="3238"><td class="num" id="LN3238">3238</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="3239"><td class="num" id="LN3239">3239</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3240"><td class="num" id="LN3240">3240</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="3241"><td class="num" id="LN3241">3241</td><td class="line">notebook_page_added_callback (GtkWidget *notebook,</td></tr>
+<tr class="codeline" data-linenumber="3242"><td class="num" id="LN3242">3242</td><td class="line"> GtkWidget *container,</td></tr>
+<tr class="codeline" data-linenumber="3243"><td class="num" id="LN3243">3243</td><td class="line"> guint page_num,</td></tr>
+<tr class="codeline" data-linenumber="3244"><td class="num" id="LN3244">3244</td><td class="line"> TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="3245"><td class="num" id="LN3245">3245</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="3246"><td class="num" id="LN3246">3246</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="3247"><td class="num" id="LN3247">3247</td><td class="line"> TerminalScreen *screen;</td></tr>
+<tr class="codeline" data-linenumber="3248"><td class="num" id="LN3248">3248</td><td class="line"> <span class='keyword'>int</span> pages;</td></tr>
+<tr class="codeline" data-linenumber="3249"><td class="num" id="LN3249">3249</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3250"><td class="num" id="LN3250">3250</td><td class="line"> screen = terminal_screen_container_get_screen (<span class='macro'>TERMINAL_SCREEN_CONTAINER (container)<span class='macro_popup'>((((TerminalScreenContainer*) (void *) g_type_check_instance_cast<br> ((GTypeInstance*) ((container)), ((terminal_screen_container_get_type<br> ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="3251"><td class="num" id="LN3251">3251</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3252"><td class="num" id="LN3252">3252</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_MDI,<span class='macro_popup'>do { if (0) g_printerr("[window %p] MDI: screen %p inserted\n"<br>, window, screen); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="3253"><td class="num" id="LN3253">3253</td><td class="line"> <span class='string_literal'><span class='macro'>"[window %p] MDI: screen %p inserted\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("[window %p] MDI: screen %p inserted\n"<br>, window, screen); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="3254"><td class="num" id="LN3254">3254</td><td class="line"> <span class='macro'>window, screen)<span class='macro_popup'>do { if (0) g_printerr("[window %p] MDI: screen %p inserted\n"<br>, window, screen); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3255"><td class="num" id="LN3255">3255</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3256"><td class="num" id="LN3256">3256</td><td class="line"> <span class='macro'>g_signal_connect (G_OBJECT (screen),<span class='macro_popup'>g_signal_connect_data ((((((GObject*) (void *) g_type_check_instance_cast<br> ((GTypeInstance*) ((screen)), (((GType) ((20) &lt;&lt; (2)))<br>)))))), ("profile-set"), (((GCallback) (profile_set_callback)<br>)), (window), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="3257"><td class="num" id="LN3257">3257</td><td class="line"> <span class='string_literal'><span class='macro'>"profile-set"</span>,<span class='macro_popup'>g_signal_connect_data ((((((GObject*) (void *) g_type_check_instance_cast<br> ((GTypeInstance*) ((screen)), (((GType) ((20) &lt;&lt; (2)))<br>)))))), ("profile-set"), (((GCallback) (profile_set_callback)<br>)), (window), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="3258"><td class="num" id="LN3258">3258</td><td class="line"> <span class='macro'>G_CALLBACK (profile_set_callback),<span class='macro_popup'>g_signal_connect_data ((((((GObject*) (void *) g_type_check_instance_cast<br> ((GTypeInstance*) ((screen)), (((GType) ((20) &lt;&lt; (2)))<br>)))))), ("profile-set"), (((GCallback) (profile_set_callback)<br>)), (window), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="3259"><td class="num" id="LN3259">3259</td><td class="line"> <span class='macro'>window)<span class='macro_popup'>g_signal_connect_data ((((((GObject*) (void *) g_type_check_instance_cast<br> ((GTypeInstance*) ((screen)), (((GType) ((20) &lt;&lt; (2)))<br>)))))), ("profile-set"), (((GCallback) (profile_set_callback)<br>)), (window), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3260"><td class="num" id="LN3260">3260</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3261"><td class="num" id="LN3261">3261</td><td class="line"> <span class='comment'>/* FIXME: only connect on the active screen, not all screens! */</span></td></tr>
+<tr class="codeline" data-linenumber="3262"><td class="num" id="LN3262">3262</td><td class="line"> <span class='macro'>g_signal_connect (screen, <span class='string_literal'>"notify::title"</span>,<span class='macro_popup'>g_signal_connect_data ((screen), ("notify::title"), (((GCallback<br>) (sync_screen_title))), (window), ((void*)0), (GConnectFlags<br>) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="3263"><td class="num" id="LN3263">3263</td><td class="line"> <span class='macro'>G_CALLBACK (sync_screen_title), window)<span class='macro_popup'>g_signal_connect_data ((screen), ("notify::title"), (((GCallback<br>) (sync_screen_title))), (window), ((void*)0), (GConnectFlags<br>) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3264"><td class="num" id="LN3264">3264</td><td class="line"> <span class='macro'>g_signal_connect (screen, <span class='string_literal'>"notify::icon-title"</span>,<span class='macro_popup'>g_signal_connect_data ((screen), ("notify::icon-title"), (((GCallback<br>) (sync_screen_icon_title))), (window), ((void*)0), (GConnectFlags<br>) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="3265"><td class="num" id="LN3265">3265</td><td class="line"> <span class='macro'>G_CALLBACK (sync_screen_icon_title), window)<span class='macro_popup'>g_signal_connect_data ((screen), ("notify::icon-title"), (((GCallback<br>) (sync_screen_icon_title))), (window), ((void*)0), (GConnectFlags<br>) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3266"><td class="num" id="LN3266">3266</td><td class="line"> <span class='macro'>g_signal_connect (screen, <span class='string_literal'>"notify::icon-title-set"</span>,<span class='macro_popup'>g_signal_connect_data ((screen), ("notify::icon-title-set"), (<br>((GCallback) (sync_screen_icon_title_set))), (window), ((void<br>*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="3267"><td class="num" id="LN3267">3267</td><td class="line"> <span class='macro'>G_CALLBACK (sync_screen_icon_title_set), window)<span class='macro_popup'>g_signal_connect_data ((screen), ("notify::icon-title-set"), (<br>((GCallback) (sync_screen_icon_title_set))), (window), ((void<br>*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3268"><td class="num" id="LN3268">3268</td><td class="line"> <span class='macro'>g_signal_connect (screen, <span class='string_literal'>"selection-changed"</span>,<span class='macro_popup'>g_signal_connect_data ((screen), ("selection-changed"), (((GCallback<br>) (terminal_window_update_copy_sensitivity))), (window), ((void<br>*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="3269"><td class="num" id="LN3269">3269</td><td class="line"> <span class='macro'>G_CALLBACK (terminal_window_update_copy_sensitivity), window)<span class='macro_popup'>g_signal_connect_data ((screen), ("selection-changed"), (((GCallback<br>) (terminal_window_update_copy_sensitivity))), (window), ((void<br>*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3270"><td class="num" id="LN3270">3270</td><td class="line"> <span class='macro'>g_signal_connect (screen, <span class='string_literal'>"hyperlink-hover-uri-changed"</span>,<span class='macro_popup'>g_signal_connect_data ((screen), ("hyperlink-hover-uri-changed"<br>), (((GCallback) (screen_hyperlink_hover_uri_changed))), (window<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="3271"><td class="num" id="LN3271">3271</td><td class="line"> <span class='macro'>G_CALLBACK (screen_hyperlink_hover_uri_changed), window)<span class='macro_popup'>g_signal_connect_data ((screen), ("hyperlink-hover-uri-changed"<br>), (((GCallback) (screen_hyperlink_hover_uri_changed))), (window<br>), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3272"><td class="num" id="LN3272">3272</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3273"><td class="num" id="LN3273">3273</td><td class="line"> <span class='macro'>g_signal_connect (screen, <span class='string_literal'>"show-popup-menu"</span>,<span class='macro_popup'>g_signal_connect_data ((screen), ("show-popup-menu"), (((GCallback<br>) (screen_show_popup_menu_callback))), (window), ((void*)0), (<br>GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="3274"><td class="num" id="LN3274">3274</td><td class="line"> <span class='macro'>G_CALLBACK (screen_show_popup_menu_callback), window)<span class='macro_popup'>g_signal_connect_data ((screen), ("show-popup-menu"), (((GCallback<br>) (screen_show_popup_menu_callback))), (window), ((void*)0), (<br>GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3275"><td class="num" id="LN3275">3275</td><td class="line"> <span class='macro'>g_signal_connect (screen, <span class='string_literal'>"match-clicked"</span>,<span class='macro_popup'>g_signal_connect_data ((screen), ("match-clicked"), (((GCallback<br>) (screen_match_clicked_cb))), (window), ((void*)0), (GConnectFlags<br>) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="3276"><td class="num" id="LN3276">3276</td><td class="line"> <span class='macro'>G_CALLBACK (screen_match_clicked_cb), window)<span class='macro_popup'>g_signal_connect_data ((screen), ("match-clicked"), (((GCallback<br>) (screen_match_clicked_cb))), (window), ((void*)0), (GConnectFlags<br>) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3277"><td class="num" id="LN3277">3277</td><td class="line"> <span class='macro'>g_signal_connect (screen, <span class='string_literal'>"resize-window"</span>,<span class='macro_popup'>g_signal_connect_data ((screen), ("resize-window"), (((GCallback<br>) (screen_resize_window_cb))), (window), ((void*)0), (GConnectFlags<br>) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="3278"><td class="num" id="LN3278">3278</td><td class="line"> <span class='macro'>G_CALLBACK (screen_resize_window_cb), window)<span class='macro_popup'>g_signal_connect_data ((screen), ("resize-window"), (((GCallback<br>) (screen_resize_window_cb))), (window), ((void*)0), (GConnectFlags<br>) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3279"><td class="num" id="LN3279">3279</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3280"><td class="num" id="LN3280">3280</td><td class="line"> <span class='macro'>g_signal_connect (screen, <span class='string_literal'>"close-screen"</span>,<span class='macro_popup'>g_signal_connect_data ((screen), ("close-screen"), (((GCallback<br>) (screen_close_cb))), (window), ((void*)0), (GConnectFlags) 0<br>)</span></span></td></tr>
+<tr class="codeline" data-linenumber="3281"><td class="num" id="LN3281">3281</td><td class="line"> <span class='macro'>G_CALLBACK (screen_close_cb), window)<span class='macro_popup'>g_signal_connect_data ((screen), ("close-screen"), (((GCallback<br>) (screen_close_cb))), (window), ((void*)0), (GConnectFlags) 0<br>)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3282"><td class="num" id="LN3282">3282</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3283"><td class="num" id="LN3283">3283</td><td class="line"> update_tab_visibility (window, 0);</td></tr>
+<tr class="codeline" data-linenumber="3284"><td class="num" id="LN3284">3284</td><td class="line"> terminal_window_update_tabs_menu_sensitivity (window);</td></tr>
+<tr class="codeline" data-linenumber="3285"><td class="num" id="LN3285">3285</td><td class="line"> terminal_window_update_search_sensitivity (screen, window);</td></tr>
+<tr class="codeline" data-linenumber="3286"><td class="num" id="LN3286">3286</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3287"><td class="num" id="LN3287">3287</td><td class="line"><span class='directive'>#if 0</span></td></tr>
+<tr class="codeline" data-linenumber="3288"><td class="num" id="LN3288">3288</td><td class="line"> <span class='comment'>/* FIXMEchpe: wtf is this doing? */</span></td></tr>
+<tr class="codeline" data-linenumber="3289"><td class="num" id="LN3289">3289</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3290"><td class="num" id="LN3290">3290</td><td class="line"> <span class='comment'>/* If we have an active screen, match its size and zoom */</span></td></tr>
+<tr class="codeline" data-linenumber="3291"><td class="num" id="LN3291">3291</td><td class="line"> <span class='keyword'>if</span> (priv-&gt;active_screen)</td></tr>
+<tr class="codeline" data-linenumber="3292"><td class="num" id="LN3292">3292</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="3293"><td class="num" id="LN3293">3293</td><td class="line"> <span class='keyword'>int</span> current_width, current_height;</td></tr>
+<tr class="codeline" data-linenumber="3294"><td class="num" id="LN3294">3294</td><td class="line"> <span class='keyword'>double</span> scale;</td></tr>
+<tr class="codeline" data-linenumber="3295"><td class="num" id="LN3295">3295</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3296"><td class="num" id="LN3296">3296</td><td class="line"> terminal_screen_get_size (priv-&gt;active_screen, &amp;current_width, &amp;current_height);</td></tr>
+<tr class="codeline" data-linenumber="3297"><td class="num" id="LN3297">3297</td><td class="line"> vte_terminal_set_size (<span class='macro'>VTE_TERMINAL (screen)<span class='macro_popup'>((((VteTerminal*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((screen)), ((vte_terminal_get_type()))))))</span></span>, current_width, current_height);</td></tr>
+<tr class="codeline" data-linenumber="3298"><td class="num" id="LN3298">3298</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3299"><td class="num" id="LN3299">3299</td><td class="line"> scale = terminal_screen_get_font_scale (priv-&gt;active_screen);</td></tr>
+<tr class="codeline" data-linenumber="3300"><td class="num" id="LN3300">3300</td><td class="line"> terminal_screen_set_font_scale (screen, scale);</td></tr>
+<tr class="codeline" data-linenumber="3301"><td class="num" id="LN3301">3301</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="3302"><td class="num" id="LN3302">3302</td><td class="line"><span class='directive'>#endif</span></td></tr>
+<tr class="codeline" data-linenumber="3303"><td class="num" id="LN3303">3303</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3304"><td class="num" id="LN3304">3304</td><td class="line"> <span class='keyword'>if</span> (priv-&gt;present_on_insert)</td></tr>
+<tr class="codeline" data-linenumber="3305"><td class="num" id="LN3305">3305</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="3306"><td class="num" id="LN3306">3306</td><td class="line"> gtk_window_present_with_time (<span class='macro'>GTK_WINDOW (window)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_window_get_type ()))))))</span></span>, gtk_get_current_event_time ());</td></tr>
+<tr class="codeline" data-linenumber="3307"><td class="num" id="LN3307">3307</td><td class="line"> priv-&gt;present_on_insert = <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3308"><td class="num" id="LN3308">3308</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="3309"><td class="num" id="LN3309">3309</td><td class="line"> pages = gtk_notebook_get_n_pages (<span class='macro'>GTK_NOTEBOOK (notebook)<span class='macro_popup'>((((GtkNotebook*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((notebook)), ((gtk_notebook_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="3310"><td class="num" id="LN3310">3310</td><td class="line"> <span class='keyword'>if</span> (pages == 2) terminal_window_update_size (window, priv-&gt;active_screen, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="3311"><td class="num" id="LN3311">3311</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="3312"><td class="num" id="LN3312">3312</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3313"><td class="num" id="LN3313">3313</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="3314"><td class="num" id="LN3314">3314</td><td class="line">notebook_page_removed_callback (GtkWidget *notebook,</td></tr>
+<tr class="codeline" data-linenumber="3315"><td class="num" id="LN3315">3315</td><td class="line"> GtkWidget *container,</td></tr>
+<tr class="codeline" data-linenumber="3316"><td class="num" id="LN3316">3316</td><td class="line"> guint page_num,</td></tr>
+<tr class="codeline" data-linenumber="3317"><td class="num" id="LN3317">3317</td><td class="line"> TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="3318"><td class="num" id="LN3318">3318</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="3319"><td class="num" id="LN3319">3319</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="3320"><td class="num" id="LN3320">3320</td><td class="line"> TerminalScreen *screen;</td></tr>
+<tr class="codeline" data-linenumber="3321"><td class="num" id="LN3321">3321</td><td class="line"> <span class='keyword'>int</span> pages;</td></tr>
+<tr class="codeline" data-linenumber="3322"><td class="num" id="LN3322">3322</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3323"><td class="num" id="LN3323">3323</td><td class="line"> <span class='keyword'>if</span> (priv-&gt;disposed)</td></tr>
+<tr class="codeline" data-linenumber="3324"><td class="num" id="LN3324">3324</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="3325"><td class="num" id="LN3325">3325</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3326"><td class="num" id="LN3326">3326</td><td class="line"> screen = terminal_screen_container_get_screen (<span class='macro'>TERMINAL_SCREEN_CONTAINER (container)<span class='macro_popup'>((((TerminalScreenContainer*) (void *) g_type_check_instance_cast<br> ((GTypeInstance*) ((container)), ((terminal_screen_container_get_type<br> ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="3327"><td class="num" id="LN3327">3327</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3328"><td class="num" id="LN3328">3328</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_MDI,<span class='macro_popup'>do { if (0) g_printerr("[window %p] MDI: screen %p removed\n"<br>, window, screen); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="3329"><td class="num" id="LN3329">3329</td><td class="line"> <span class='string_literal'><span class='macro'>"[window %p] MDI: screen %p removed\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("[window %p] MDI: screen %p removed\n"<br>, window, screen); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="3330"><td class="num" id="LN3330">3330</td><td class="line"> <span class='macro'>window, screen)<span class='macro_popup'>do { if (0) g_printerr("[window %p] MDI: screen %p removed\n"<br>, window, screen); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3331"><td class="num" id="LN3331">3331</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3332"><td class="num" id="LN3332">3332</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (G_OBJECT (screen),<span class='macro_popup'>g_signal_handlers_disconnect_matched ((((((GObject*) (void *)<br> g_type_check_instance_cast ((GTypeInstance*) ((screen)), (((<br>GType) ((20) &lt;&lt; (2))))))))), (GSignalMatchType) (G_SIGNAL_MATCH_FUNC<br> | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)0), (((GCallback) (profile_set_callback<br>))), (window))</span></span></td></tr>
+<tr class="codeline" data-linenumber="3333"><td class="num" id="LN3333">3333</td><td class="line"> <span class='macro'>G_CALLBACK (profile_set_callback),<span class='macro_popup'>g_signal_handlers_disconnect_matched ((((((GObject*) (void *)<br> g_type_check_instance_cast ((GTypeInstance*) ((screen)), (((<br>GType) ((20) &lt;&lt; (2))))))))), (GSignalMatchType) (G_SIGNAL_MATCH_FUNC<br> | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)0), (((GCallback) (profile_set_callback<br>))), (window))</span></span></td></tr>
+<tr class="codeline" data-linenumber="3334"><td class="num" id="LN3334">3334</td><td class="line"> <span class='macro'>window)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((((((GObject*) (void *)<br> g_type_check_instance_cast ((GTypeInstance*) ((screen)), (((<br>GType) ((20) &lt;&lt; (2))))))))), (GSignalMatchType) (G_SIGNAL_MATCH_FUNC<br> | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)0), (((GCallback) (profile_set_callback<br>))), (window))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3335"><td class="num" id="LN3335">3335</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3336"><td class="num" id="LN3336">3336</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (G_OBJECT (screen),<span class='macro_popup'>g_signal_handlers_disconnect_matched ((((((GObject*) (void *)<br> g_type_check_instance_cast ((GTypeInstance*) ((screen)), (((<br>GType) ((20) &lt;&lt; (2))))))))), (GSignalMatchType) (G_SIGNAL_MATCH_FUNC<br> | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)0), (((GCallback) (sync_screen_title<br>))), (window))</span></span></td></tr>
+<tr class="codeline" data-linenumber="3337"><td class="num" id="LN3337">3337</td><td class="line"> <span class='macro'>G_CALLBACK (sync_screen_title),<span class='macro_popup'>g_signal_handlers_disconnect_matched ((((((GObject*) (void *)<br> g_type_check_instance_cast ((GTypeInstance*) ((screen)), (((<br>GType) ((20) &lt;&lt; (2))))))))), (GSignalMatchType) (G_SIGNAL_MATCH_FUNC<br> | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)0), (((GCallback) (sync_screen_title<br>))), (window))</span></span></td></tr>
+<tr class="codeline" data-linenumber="3338"><td class="num" id="LN3338">3338</td><td class="line"> <span class='macro'>window)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((((((GObject*) (void *)<br> g_type_check_instance_cast ((GTypeInstance*) ((screen)), (((<br>GType) ((20) &lt;&lt; (2))))))))), (GSignalMatchType) (G_SIGNAL_MATCH_FUNC<br> | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)0), (((GCallback) (sync_screen_title<br>))), (window))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3339"><td class="num" id="LN3339">3339</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3340"><td class="num" id="LN3340">3340</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (G_OBJECT (screen),<span class='macro_popup'>g_signal_handlers_disconnect_matched ((((((GObject*) (void *)<br> g_type_check_instance_cast ((GTypeInstance*) ((screen)), (((<br>GType) ((20) &lt;&lt; (2))))))))), (GSignalMatchType) (G_SIGNAL_MATCH_FUNC<br> | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)0), (((GCallback) (sync_screen_icon_title<br>))), (window))</span></span></td></tr>
+<tr class="codeline" data-linenumber="3341"><td class="num" id="LN3341">3341</td><td class="line"> <span class='macro'>G_CALLBACK (sync_screen_icon_title),<span class='macro_popup'>g_signal_handlers_disconnect_matched ((((((GObject*) (void *)<br> g_type_check_instance_cast ((GTypeInstance*) ((screen)), (((<br>GType) ((20) &lt;&lt; (2))))))))), (GSignalMatchType) (G_SIGNAL_MATCH_FUNC<br> | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)0), (((GCallback) (sync_screen_icon_title<br>))), (window))</span></span></td></tr>
+<tr class="codeline" data-linenumber="3342"><td class="num" id="LN3342">3342</td><td class="line"> <span class='macro'>window)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((((((GObject*) (void *)<br> g_type_check_instance_cast ((GTypeInstance*) ((screen)), (((<br>GType) ((20) &lt;&lt; (2))))))))), (GSignalMatchType) (G_SIGNAL_MATCH_FUNC<br> | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)0), (((GCallback) (sync_screen_icon_title<br>))), (window))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3343"><td class="num" id="LN3343">3343</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3344"><td class="num" id="LN3344">3344</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (G_OBJECT (screen),<span class='macro_popup'>g_signal_handlers_disconnect_matched ((((((GObject*) (void *)<br> g_type_check_instance_cast ((GTypeInstance*) ((screen)), (((<br>GType) ((20) &lt;&lt; (2))))))))), (GSignalMatchType) (G_SIGNAL_MATCH_FUNC<br> | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)0), (((GCallback) (sync_screen_icon_title_set<br>))), (window))</span></span></td></tr>
+<tr class="codeline" data-linenumber="3345"><td class="num" id="LN3345">3345</td><td class="line"> <span class='macro'>G_CALLBACK (sync_screen_icon_title_set),<span class='macro_popup'>g_signal_handlers_disconnect_matched ((((((GObject*) (void *)<br> g_type_check_instance_cast ((GTypeInstance*) ((screen)), (((<br>GType) ((20) &lt;&lt; (2))))))))), (GSignalMatchType) (G_SIGNAL_MATCH_FUNC<br> | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)0), (((GCallback) (sync_screen_icon_title_set<br>))), (window))</span></span></td></tr>
+<tr class="codeline" data-linenumber="3346"><td class="num" id="LN3346">3346</td><td class="line"> <span class='macro'>window)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((((((GObject*) (void *)<br> g_type_check_instance_cast ((GTypeInstance*) ((screen)), (((<br>GType) ((20) &lt;&lt; (2))))))))), (GSignalMatchType) (G_SIGNAL_MATCH_FUNC<br> | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)0), (((GCallback) (sync_screen_icon_title_set<br>))), (window))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3347"><td class="num" id="LN3347">3347</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3348"><td class="num" id="LN3348">3348</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (G_OBJECT (screen),<span class='macro_popup'>g_signal_handlers_disconnect_matched ((((((GObject*) (void *)<br> g_type_check_instance_cast ((GTypeInstance*) ((screen)), (((<br>GType) ((20) &lt;&lt; (2))))))))), (GSignalMatchType) (G_SIGNAL_MATCH_FUNC<br> | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)0), (((GCallback) (terminal_window_update_copy_sensitivity<br>))), (window))</span></span></td></tr>
+<tr class="codeline" data-linenumber="3349"><td class="num" id="LN3349">3349</td><td class="line"> <span class='macro'>G_CALLBACK (terminal_window_update_copy_sensitivity),<span class='macro_popup'>g_signal_handlers_disconnect_matched ((((((GObject*) (void *)<br> g_type_check_instance_cast ((GTypeInstance*) ((screen)), (((<br>GType) ((20) &lt;&lt; (2))))))))), (GSignalMatchType) (G_SIGNAL_MATCH_FUNC<br> | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)0), (((GCallback) (terminal_window_update_copy_sensitivity<br>))), (window))</span></span></td></tr>
+<tr class="codeline" data-linenumber="3350"><td class="num" id="LN3350">3350</td><td class="line"> <span class='macro'>window)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((((((GObject*) (void *)<br> g_type_check_instance_cast ((GTypeInstance*) ((screen)), (((<br>GType) ((20) &lt;&lt; (2))))))))), (GSignalMatchType) (G_SIGNAL_MATCH_FUNC<br> | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)0), (((GCallback) (terminal_window_update_copy_sensitivity<br>))), (window))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3351"><td class="num" id="LN3351">3351</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3352"><td class="num" id="LN3352">3352</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (G_OBJECT (screen),<span class='macro_popup'>g_signal_handlers_disconnect_matched ((((((GObject*) (void *)<br> g_type_check_instance_cast ((GTypeInstance*) ((screen)), (((<br>GType) ((20) &lt;&lt; (2))))))))), (GSignalMatchType) (G_SIGNAL_MATCH_FUNC<br> | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)0), (((GCallback) (screen_hyperlink_hover_uri_changed<br>))), (window))</span></span></td></tr>
+<tr class="codeline" data-linenumber="3353"><td class="num" id="LN3353">3353</td><td class="line"> <span class='macro'>G_CALLBACK (screen_hyperlink_hover_uri_changed),<span class='macro_popup'>g_signal_handlers_disconnect_matched ((((((GObject*) (void *)<br> g_type_check_instance_cast ((GTypeInstance*) ((screen)), (((<br>GType) ((20) &lt;&lt; (2))))))))), (GSignalMatchType) (G_SIGNAL_MATCH_FUNC<br> | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)0), (((GCallback) (screen_hyperlink_hover_uri_changed<br>))), (window))</span></span></td></tr>
+<tr class="codeline" data-linenumber="3354"><td class="num" id="LN3354">3354</td><td class="line"> <span class='macro'>window)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((((((GObject*) (void *)<br> g_type_check_instance_cast ((GTypeInstance*) ((screen)), (((<br>GType) ((20) &lt;&lt; (2))))))))), (GSignalMatchType) (G_SIGNAL_MATCH_FUNC<br> | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)0), (((GCallback) (screen_hyperlink_hover_uri_changed<br>))), (window))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3355"><td class="num" id="LN3355">3355</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3356"><td class="num" id="LN3356">3356</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (screen,<span class='macro_popup'>g_signal_handlers_disconnect_matched ((screen), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (screen_show_popup_menu_callback))), (window<br>))</span></span></td></tr>
+<tr class="codeline" data-linenumber="3357"><td class="num" id="LN3357">3357</td><td class="line"> <span class='macro'>G_CALLBACK (screen_show_popup_menu_callback),<span class='macro_popup'>g_signal_handlers_disconnect_matched ((screen), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (screen_show_popup_menu_callback))), (window<br>))</span></span></td></tr>
+<tr class="codeline" data-linenumber="3358"><td class="num" id="LN3358">3358</td><td class="line"> <span class='macro'>window)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((screen), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (screen_show_popup_menu_callback))), (window<br>))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3359"><td class="num" id="LN3359">3359</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3360"><td class="num" id="LN3360">3360</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (screen,<span class='macro_popup'>g_signal_handlers_disconnect_matched ((screen), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (screen_match_clicked_cb))), (window))</span></span></td></tr>
+<tr class="codeline" data-linenumber="3361"><td class="num" id="LN3361">3361</td><td class="line"> <span class='macro'>G_CALLBACK (screen_match_clicked_cb),<span class='macro_popup'>g_signal_handlers_disconnect_matched ((screen), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (screen_match_clicked_cb))), (window))</span></span></td></tr>
+<tr class="codeline" data-linenumber="3362"><td class="num" id="LN3362">3362</td><td class="line"> <span class='macro'>window)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((screen), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (screen_match_clicked_cb))), (window))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3363"><td class="num" id="LN3363">3363</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (screen,<span class='macro_popup'>g_signal_handlers_disconnect_matched ((screen), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (screen_resize_window_cb))), (window))</span></span></td></tr>
+<tr class="codeline" data-linenumber="3364"><td class="num" id="LN3364">3364</td><td class="line"> <span class='macro'>G_CALLBACK (screen_resize_window_cb),<span class='macro_popup'>g_signal_handlers_disconnect_matched ((screen), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (screen_resize_window_cb))), (window))</span></span></td></tr>
+<tr class="codeline" data-linenumber="3365"><td class="num" id="LN3365">3365</td><td class="line"> <span class='macro'>window)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((screen), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (screen_resize_window_cb))), (window))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3366"><td class="num" id="LN3366">3366</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3367"><td class="num" id="LN3367">3367</td><td class="line"> <span class='macro'>g_signal_handlers_disconnect_by_func (screen,<span class='macro_popup'>g_signal_handlers_disconnect_matched ((screen), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (screen_close_cb))), (window))</span></span></td></tr>
+<tr class="codeline" data-linenumber="3368"><td class="num" id="LN3368">3368</td><td class="line"> <span class='macro'>G_CALLBACK (screen_close_cb),<span class='macro_popup'>g_signal_handlers_disconnect_matched ((screen), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (screen_close_cb))), (window))</span></span></td></tr>
+<tr class="codeline" data-linenumber="3369"><td class="num" id="LN3369">3369</td><td class="line"> <span class='macro'>window)<span class='macro_popup'>g_signal_handlers_disconnect_matched ((screen), (GSignalMatchType<br>) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)<br>0), (((GCallback) (screen_close_cb))), (window))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3370"><td class="num" id="LN3370">3370</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3371"><td class="num" id="LN3371">3371</td><td class="line"> terminal_window_update_tabs_menu_sensitivity (window);</td></tr>
+<tr class="codeline" data-linenumber="3372"><td class="num" id="LN3372">3372</td><td class="line"> update_tab_visibility (window, 0);</td></tr>
+<tr class="codeline" data-linenumber="3373"><td class="num" id="LN3373">3373</td><td class="line"> terminal_window_update_search_sensitivity (screen, window);</td></tr>
+<tr class="codeline" data-linenumber="3374"><td class="num" id="LN3374">3374</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3375"><td class="num" id="LN3375">3375</td><td class="line"> pages = gtk_notebook_get_n_pages (<span class='macro'>GTK_NOTEBOOK (notebook)<span class='macro_popup'>((((GtkNotebook*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((notebook)), ((gtk_notebook_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="3376"><td class="num" id="LN3376">3376</td><td class="line"> <span class='keyword'>if</span> (pages == 1)</td></tr>
+<tr class="codeline" data-linenumber="3377"><td class="num" id="LN3377">3377</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="3378"><td class="num" id="LN3378">3378</td><td class="line"> terminal_window_update_size (window, priv-&gt;active_screen, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="3379"><td class="num" id="LN3379">3379</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="3380"><td class="num" id="LN3380">3380</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (pages == 0)</td></tr>
+<tr class="codeline" data-linenumber="3381"><td class="num" id="LN3381">3381</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="3382"><td class="num" id="LN3382">3382</td><td class="line"> gtk_widget_destroy (<span class='macro'>GTK_WIDGET (window)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_widget_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="3383"><td class="num" id="LN3383">3383</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="3384"><td class="num" id="LN3384">3384</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="3385"><td class="num" id="LN3385">3385</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3386"><td class="num" id="LN3386">3386</td><td class="line"><span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="3387"><td class="num" id="LN3387">3387</td><td class="line">terminal_window_update_copy_selection (TerminalScreen *screen,</td></tr>
+<tr class="codeline" data-linenumber="3388"><td class="num" id="LN3388">3388</td><td class="line"> TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="3389"><td class="num" id="LN3389">3389</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="3390"><td class="num" id="LN3390">3390</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="3391"><td class="num" id="LN3391">3391</td><td class="line"> priv-&gt;copy_selection =</td></tr>
+<tr class="codeline" data-linenumber="3392"><td class="num" id="LN3392">3392</td><td class="line"> terminal_profile_get_property_boolean (terminal_screen_get_profile (screen),</td></tr>
+<tr class="codeline" data-linenumber="3393"><td class="num" id="LN3393">3393</td><td class="line"> <span class='macro'>TERMINAL_PROFILE_COPY_SELECTION<span class='macro_popup'>"copy-selection"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="3394"><td class="num" id="LN3394">3394</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="3395"><td class="num" id="LN3395">3395</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3396"><td class="num" id="LN3396">3396</td><td class="line"><span class='keyword'>static</span> gboolean</td></tr>
+<tr class="codeline" data-linenumber="3397"><td class="num" id="LN3397">3397</td><td class="line">notebook_scroll_event_cb (GtkWidget *widget,</td></tr>
+<tr class="codeline" data-linenumber="3398"><td class="num" id="LN3398">3398</td><td class="line"> GdkEventScroll *event,</td></tr>
+<tr class="codeline" data-linenumber="3399"><td class="num" id="LN3399">3399</td><td class="line"> TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="3400"><td class="num" id="LN3400">3400</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="3401"><td class="num" id="LN3401">3401</td><td class="line"> GtkNotebook *notebook = <span class='macro'>GTK_NOTEBOOK (widget)<span class='macro_popup'>((((GtkNotebook*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((widget)), ((gtk_notebook_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3402"><td class="num" id="LN3402">3402</td><td class="line"> GtkWidget *child, *event_widget, *action_widget;</td></tr>
+<tr class="codeline" data-linenumber="3403"><td class="num" id="LN3403">3403</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3404"><td class="num" id="LN3404">3404</td><td class="line"> child = gtk_notebook_get_nth_page (notebook, gtk_notebook_get_current_page (notebook));</td></tr>
+<tr class="codeline" data-linenumber="3405"><td class="num" id="LN3405">3405</td><td class="line"> <span class='keyword'>if</span> (child == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="3406"><td class="num" id="LN3406">3406</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3407"><td class="num" id="LN3407">3407</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3408"><td class="num" id="LN3408">3408</td><td class="line"> event_widget = gtk_get_event_widget ((GdkEvent *) event);</td></tr>
+<tr class="codeline" data-linenumber="3409"><td class="num" id="LN3409">3409</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3410"><td class="num" id="LN3410">3410</td><td class="line"> <span class='comment'>/* Ignore scroll events from the content of the page */</span></td></tr>
+<tr class="codeline" data-linenumber="3411"><td class="num" id="LN3411">3411</td><td class="line"> <span class='keyword'>if</span> (event_widget == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span> ||</td></tr>
+<tr class="codeline" data-linenumber="3412"><td class="num" id="LN3412">3412</td><td class="line"> event_widget == child ||</td></tr>
+<tr class="codeline" data-linenumber="3413"><td class="num" id="LN3413">3413</td><td class="line"> gtk_widget_is_ancestor (event_widget, child))</td></tr>
+<tr class="codeline" data-linenumber="3414"><td class="num" id="LN3414">3414</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3415"><td class="num" id="LN3415">3415</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3416"><td class="num" id="LN3416">3416</td><td class="line"> <span class='comment'>/* And also from the action widgets */</span></td></tr>
+<tr class="codeline" data-linenumber="3417"><td class="num" id="LN3417">3417</td><td class="line"> action_widget = gtk_notebook_get_action_widget (notebook, GTK_PACK_START);</td></tr>
+<tr class="codeline" data-linenumber="3418"><td class="num" id="LN3418">3418</td><td class="line"> <span class='keyword'>if</span> (event_widget == action_widget ||</td></tr>
+<tr class="codeline" data-linenumber="3419"><td class="num" id="LN3419">3419</td><td class="line"> (action_widget != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span> &amp;&amp; gtk_widget_is_ancestor (event_widget, action_widget)))</td></tr>
+<tr class="codeline" data-linenumber="3420"><td class="num" id="LN3420">3420</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3421"><td class="num" id="LN3421">3421</td><td class="line"> action_widget = gtk_notebook_get_action_widget (notebook, GTK_PACK_END);</td></tr>
+<tr class="codeline" data-linenumber="3422"><td class="num" id="LN3422">3422</td><td class="line"> <span class='keyword'>if</span> (event_widget == action_widget ||</td></tr>
+<tr class="codeline" data-linenumber="3423"><td class="num" id="LN3423">3423</td><td class="line"> (action_widget != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span> &amp;&amp; gtk_widget_is_ancestor (event_widget, action_widget)))</td></tr>
+<tr class="codeline" data-linenumber="3424"><td class="num" id="LN3424">3424</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3425"><td class="num" id="LN3425">3425</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3426"><td class="num" id="LN3426">3426</td><td class="line"> <span class='keyword'>switch</span> (event-&gt;direction) {</td></tr>
+<tr class="codeline" data-linenumber="3427"><td class="num" id="LN3427">3427</td><td class="line"> <span class='keyword'>case</span> GDK_SCROLL_RIGHT:</td></tr>
+<tr class="codeline" data-linenumber="3428"><td class="num" id="LN3428">3428</td><td class="line"> <span class='keyword'>case</span> GDK_SCROLL_DOWN:</td></tr>
+<tr class="codeline" data-linenumber="3429"><td class="num" id="LN3429">3429</td><td class="line"> gtk_notebook_next_page (notebook);</td></tr>
+<tr class="codeline" data-linenumber="3430"><td class="num" id="LN3430">3430</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="3431"><td class="num" id="LN3431">3431</td><td class="line"> <span class='keyword'>case</span> GDK_SCROLL_LEFT:</td></tr>
+<tr class="codeline" data-linenumber="3432"><td class="num" id="LN3432">3432</td><td class="line"> <span class='keyword'>case</span> GDK_SCROLL_UP:</td></tr>
+<tr class="codeline" data-linenumber="3433"><td class="num" id="LN3433">3433</td><td class="line"> gtk_notebook_prev_page (notebook);</td></tr>
+<tr class="codeline" data-linenumber="3434"><td class="num" id="LN3434">3434</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="3435"><td class="num" id="LN3435">3435</td><td class="line"> <span class='keyword'>case</span> GDK_SCROLL_SMOOTH:</td></tr>
+<tr class="codeline" data-linenumber="3436"><td class="num" id="LN3436">3436</td><td class="line"> <span class='keyword'>switch</span> (gtk_notebook_get_tab_pos (notebook)) {</td></tr>
+<tr class="codeline" data-linenumber="3437"><td class="num" id="LN3437">3437</td><td class="line"> <span class='keyword'>case</span> GTK_POS_LEFT:</td></tr>
+<tr class="codeline" data-linenumber="3438"><td class="num" id="LN3438">3438</td><td class="line"> <span class='keyword'>case</span> GTK_POS_RIGHT:</td></tr>
+<tr class="codeline" data-linenumber="3439"><td class="num" id="LN3439">3439</td><td class="line"> <span class='keyword'>if</span> (event-&gt;delta_y &gt; 0)</td></tr>
+<tr class="codeline" data-linenumber="3440"><td class="num" id="LN3440">3440</td><td class="line"> gtk_notebook_next_page (notebook);</td></tr>
+<tr class="codeline" data-linenumber="3441"><td class="num" id="LN3441">3441</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (event-&gt;delta_y &lt; 0)</td></tr>
+<tr class="codeline" data-linenumber="3442"><td class="num" id="LN3442">3442</td><td class="line"> gtk_notebook_prev_page (notebook);</td></tr>
+<tr class="codeline" data-linenumber="3443"><td class="num" id="LN3443">3443</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="3444"><td class="num" id="LN3444">3444</td><td class="line"> <span class='keyword'>case</span> GTK_POS_TOP:</td></tr>
+<tr class="codeline" data-linenumber="3445"><td class="num" id="LN3445">3445</td><td class="line"> <span class='keyword'>case</span> GTK_POS_BOTTOM:</td></tr>
+<tr class="codeline" data-linenumber="3446"><td class="num" id="LN3446">3446</td><td class="line"> <span class='keyword'>if</span> (event-&gt;delta_x &gt; 0)</td></tr>
+<tr class="codeline" data-linenumber="3447"><td class="num" id="LN3447">3447</td><td class="line"> gtk_notebook_next_page (notebook);</td></tr>
+<tr class="codeline" data-linenumber="3448"><td class="num" id="LN3448">3448</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (event-&gt;delta_x &lt; 0)</td></tr>
+<tr class="codeline" data-linenumber="3449"><td class="num" id="LN3449">3449</td><td class="line"> gtk_notebook_prev_page (notebook);</td></tr>
+<tr class="codeline" data-linenumber="3450"><td class="num" id="LN3450">3450</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="3451"><td class="num" id="LN3451">3451</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="3452"><td class="num" id="LN3452">3452</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="3453"><td class="num" id="LN3453">3453</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="3454"><td class="num" id="LN3454">3454</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3455"><td class="num" id="LN3455">3455</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3456"><td class="num" id="LN3456">3456</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="3457"><td class="num" id="LN3457">3457</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3458"><td class="num" id="LN3458">3458</td><td class="line"><span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="3459"><td class="num" id="LN3459">3459</td><td class="line">terminal_window_update_geometry (TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="3460"><td class="num" id="LN3460">3460</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="3461"><td class="num" id="LN3461">3461</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="3462"><td class="num" id="LN3462">3462</td><td class="line"> GtkWidget *widget;</td></tr>
+<tr class="codeline" data-linenumber="3463"><td class="num" id="LN3463">3463</td><td class="line"> GdkGeometry hints;</td></tr>
+<tr class="codeline" data-linenumber="3464"><td class="num" id="LN3464">3464</td><td class="line"> GtkBorder padding;</td></tr>
+<tr class="codeline" data-linenumber="3465"><td class="num" id="LN3465">3465</td><td class="line"> GtkRequisition vbox_request;</td></tr>
+<tr class="codeline" data-linenumber="3466"><td class="num" id="LN3466">3466</td><td class="line"> <span class='keyword'>int</span> grid_width, grid_height;</td></tr>
+<tr class="codeline" data-linenumber="3467"><td class="num" id="LN3467">3467</td><td class="line"> <span class='keyword'>int</span> char_width, char_height;</td></tr>
+<tr class="codeline" data-linenumber="3468"><td class="num" id="LN3468">3468</td><td class="line"> <span class='keyword'>int</span> chrome_width, chrome_height;</td></tr>
+<tr class="codeline" data-linenumber="3469"><td class="num" id="LN3469">3469</td><td class="line"> <span class='keyword'>int</span> csd_width = 0, csd_height = 0;</td></tr>
+<tr class="codeline" data-linenumber="3470"><td class="num" id="LN3470">3470</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3471"><td class="num" id="LN3471">3471</td><td class="line"> <span class='keyword'>if</span> (priv-&gt;active_screen == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="3472"><td class="num" id="LN3472">3472</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="3473"><td class="num" id="LN3473">3473</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3474"><td class="num" id="LN3474">3474</td><td class="line"> widget = <span class='macro'>GTK_WIDGET (priv-&gt;active_screen)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((priv-&gt;active_screen)), ((gtk_widget_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3475"><td class="num" id="LN3475">3475</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3476"><td class="num" id="LN3476">3476</td><td class="line"> <span class='comment'>/* We set geometry hints from the active term; best thing</span></td></tr>
+<tr class="codeline" data-linenumber="3477"><td class="num" id="LN3477">3477</td><td class="line"> <span class='comment'>* I can think of to do. Other option would be to try to</span></td></tr>
+<tr class="codeline" data-linenumber="3478"><td class="num" id="LN3478">3478</td><td class="line"> <span class='comment'>* get some kind of union of all hints from all terms in the</span></td></tr>
+<tr class="codeline" data-linenumber="3479"><td class="num" id="LN3479">3479</td><td class="line"> <span class='comment'>* window, but that doesn't make too much sense.</span></td></tr>
+<tr class="codeline" data-linenumber="3480"><td class="num" id="LN3480">3480</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="3481"><td class="num" id="LN3481">3481</td><td class="line"> terminal_screen_get_cell_size (priv-&gt;active_screen, &amp;char_width, &amp;char_height);</td></tr>
+<tr class="codeline" data-linenumber="3482"><td class="num" id="LN3482">3482</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3483"><td class="num" id="LN3483">3483</td><td class="line"> terminal_screen_get_size (priv-&gt;active_screen, &amp;grid_width, &amp;grid_height);</td></tr>
+<tr class="codeline" data-linenumber="3484"><td class="num" id="LN3484">3484</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_GEOMETRY, <span class='string_literal'>"%dx%d cells of %dx%d px = %dx%d px\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("%dx%d cells of %dx%d px = %dx%d px\n"<br>, grid_width, grid_height, char_width, char_height, char_width<br> * grid_width, char_height * grid_height); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="3485"><td class="num" id="LN3485">3485</td><td class="line"> <span class='macro'>grid_width, grid_height, char_width, char_height,<span class='macro_popup'>do { if (0) g_printerr("%dx%d cells of %dx%d px = %dx%d px\n"<br>, grid_width, grid_height, char_width, char_height, char_width<br> * grid_width, char_height * grid_height); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="3486"><td class="num" id="LN3486">3486</td><td class="line"> <span class='macro'>char_width * grid_width, char_height * grid_height)<span class='macro_popup'>do { if (0) g_printerr("%dx%d cells of %dx%d px = %dx%d px\n"<br>, grid_width, grid_height, char_width, char_height, char_width<br> * grid_width, char_height * grid_height); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3487"><td class="num" id="LN3487">3487</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3488"><td class="num" id="LN3488">3488</td><td class="line"> gtk_style_context_get_padding(gtk_widget_get_style_context (widget),</td></tr>
+<tr class="codeline" data-linenumber="3489"><td class="num" id="LN3489">3489</td><td class="line"> gtk_widget_get_state_flags (widget),</td></tr>
+<tr class="codeline" data-linenumber="3490"><td class="num" id="LN3490">3490</td><td class="line"> &amp;padding);</td></tr>
+<tr class="codeline" data-linenumber="3491"><td class="num" id="LN3491">3491</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3492"><td class="num" id="LN3492">3492</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_GEOMETRY, <span class='string_literal'>"padding = %dx%d px\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("padding = %dx%d px\n", padding.left +<br> padding.right, padding.top + padding.bottom); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="3493"><td class="num" id="LN3493">3493</td><td class="line"> <span class='macro'>padding.left + padding.right,<span class='macro_popup'>do { if (0) g_printerr("padding = %dx%d px\n", padding.left +<br> padding.right, padding.top + padding.bottom); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="3494"><td class="num" id="LN3494">3494</td><td class="line"> <span class='macro'>padding.top + padding.bottom)<span class='macro_popup'>do { if (0) g_printerr("padding = %dx%d px\n", padding.left +<br> padding.right, padding.top + padding.bottom); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3495"><td class="num" id="LN3495">3495</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3496"><td class="num" id="LN3496">3496</td><td class="line"> gtk_widget_get_preferred_size (priv-&gt;main_vbox, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, &amp;vbox_request);</td></tr>
+<tr class="codeline" data-linenumber="3497"><td class="num" id="LN3497">3497</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_GEOMETRY, <span class='string_literal'>"content area requests %dx%d px\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("content area requests %dx%d px\n", vbox_request<br>.width, vbox_request.height); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="3498"><td class="num" id="LN3498">3498</td><td class="line"> <span class='macro'>vbox_request.width, vbox_request.height)<span class='macro_popup'>do { if (0) g_printerr("content area requests %dx%d px\n", vbox_request<br>.width, vbox_request.height); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3499"><td class="num" id="LN3499">3499</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3500"><td class="num" id="LN3500">3500</td><td class="line"> chrome_width = vbox_request.width - (char_width * grid_width);</td></tr>
+<tr class="codeline" data-linenumber="3501"><td class="num" id="LN3501">3501</td><td class="line"> chrome_height = vbox_request.height - (char_height * grid_height);</td></tr>
+<tr class="codeline" data-linenumber="3502"><td class="num" id="LN3502">3502</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_GEOMETRY, <span class='string_literal'>"chrome: %dx%d px\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("chrome: %dx%d px\n", chrome_width, chrome_height<br>); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="3503"><td class="num" id="LN3503">3503</td><td class="line"> <span class='macro'>chrome_width, chrome_height)<span class='macro_popup'>do { if (0) g_printerr("chrome: %dx%d px\n", chrome_width, chrome_height<br>); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3504"><td class="num" id="LN3504">3504</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3505"><td class="num" id="LN3505">3505</td><td class="line"> <span class='keyword'>if</span> (gtk_widget_get_realized (<span class='macro'>GTK_WIDGET (window)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_widget_get_type ()))))))</span></span>)) {</td></tr>
+<tr class="codeline" data-linenumber="3506"><td class="num" id="LN3506">3506</td><td class="line"> GtkAllocation toplevel_allocation, vbox_allocation;</td></tr>
+<tr class="codeline" data-linenumber="3507"><td class="num" id="LN3507">3507</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3508"><td class="num" id="LN3508">3508</td><td class="line"> gtk_widget_get_allocation (priv-&gt;main_vbox, &amp;vbox_allocation);</td></tr>
+<tr class="codeline" data-linenumber="3509"><td class="num" id="LN3509">3509</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_GEOMETRY,<span class='macro_popup'>do { if (0) g_printerr("terminal widget allocation %dx%d px\n"<br>, vbox_allocation.width, vbox_allocation.height); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="3510"><td class="num" id="LN3510">3510</td><td class="line"> <span class='string_literal'><span class='macro'>"terminal widget allocation %dx%d px\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("terminal widget allocation %dx%d px\n"<br>, vbox_allocation.width, vbox_allocation.height); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="3511"><td class="num" id="LN3511">3511</td><td class="line"> <span class='macro'>vbox_allocation.width, vbox_allocation.height)<span class='macro_popup'>do { if (0) g_printerr("terminal widget allocation %dx%d px\n"<br>, vbox_allocation.width, vbox_allocation.height); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3512"><td class="num" id="LN3512">3512</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3513"><td class="num" id="LN3513">3513</td><td class="line"> gtk_widget_get_allocation (<span class='macro'>GTK_WIDGET (window)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_widget_get_type ()))))))</span></span>, &amp;toplevel_allocation);</td></tr>
+<tr class="codeline" data-linenumber="3514"><td class="num" id="LN3514">3514</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_GEOMETRY, <span class='string_literal'>"window allocation %dx%d px\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("window allocation %dx%d px\n", toplevel_allocation<br>.width, toplevel_allocation.height); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="3515"><td class="num" id="LN3515">3515</td><td class="line"> <span class='macro'>toplevel_allocation.width, toplevel_allocation.height)<span class='macro_popup'>do { if (0) g_printerr("window allocation %dx%d px\n", toplevel_allocation<br>.width, toplevel_allocation.height); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3516"><td class="num" id="LN3516">3516</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3517"><td class="num" id="LN3517">3517</td><td class="line"> csd_width = toplevel_allocation.width - vbox_allocation.width;</td></tr>
+<tr class="codeline" data-linenumber="3518"><td class="num" id="LN3518">3518</td><td class="line"> csd_height = toplevel_allocation.height - vbox_allocation.height;</td></tr>
+<tr class="codeline" data-linenumber="3519"><td class="num" id="LN3519">3519</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_GEOMETRY, <span class='string_literal'>"CSDs: %dx%d px\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("CSDs: %dx%d px\n", csd_width, csd_height<br>); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="3520"><td class="num" id="LN3520">3520</td><td class="line"> <span class='macro'>csd_width, csd_height)<span class='macro_popup'>do { if (0) g_printerr("CSDs: %dx%d px\n", csd_width, csd_height<br>); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3521"><td class="num" id="LN3521">3521</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="3522"><td class="num" id="LN3522">3522</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3523"><td class="num" id="LN3523">3523</td><td class="line"> <span class='keyword'>if</span> (!gtk_widget_get_realized (<span class='macro'>GTK_WIDGET (window)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_widget_get_type ()))))))</span></span>))</td></tr>
+<tr class="codeline" data-linenumber="3524"><td class="num" id="LN3524">3524</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="3525"><td class="num" id="LN3525">3525</td><td class="line"> <span class='comment'>/* Don't actually set the geometry hints until we have been realized,</span></td></tr>
+<tr class="codeline" data-linenumber="3526"><td class="num" id="LN3526">3526</td><td class="line"> <span class='comment'>* because we don't know how large the client-side decorations are going</span></td></tr>
+<tr class="codeline" data-linenumber="3527"><td class="num" id="LN3527">3527</td><td class="line"> <span class='comment'>* to be.</span></td></tr>
+<tr class="codeline" data-linenumber="3528"><td class="num" id="LN3528">3528</td><td class="line"> <span class='comment'>*</span></td></tr>
+<tr class="codeline" data-linenumber="3529"><td class="num" id="LN3529">3529</td><td class="line"> <span class='comment'>* Similarly, the size request doesn't seem to include the padding</span></td></tr>
+<tr class="codeline" data-linenumber="3530"><td class="num" id="LN3530">3530</td><td class="line"> <span class='comment'>* until we've been redrawn at least once. Don't resize the window</span></td></tr>
+<tr class="codeline" data-linenumber="3531"><td class="num" id="LN3531">3531</td><td class="line"> <span class='comment'>* until we've done that. */</span></td></tr>
+<tr class="codeline" data-linenumber="3532"><td class="num" id="LN3532">3532</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_GEOMETRY, <span class='string_literal'>"not realized yet\n"</span>)<span class='macro_popup'>do { if (0) g_printerr("not realized yet\n"); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3533"><td class="num" id="LN3533">3533</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="3534"><td class="num" id="LN3534">3534</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (char_width != priv-&gt;old_char_width ||</td></tr>
+<tr class="codeline" data-linenumber="3535"><td class="num" id="LN3535">3535</td><td class="line"> char_height != priv-&gt;old_char_height ||</td></tr>
+<tr class="codeline" data-linenumber="3536"><td class="num" id="LN3536">3536</td><td class="line"> padding.left + padding.right != priv-&gt;old_padding_width ||</td></tr>
+<tr class="codeline" data-linenumber="3537"><td class="num" id="LN3537">3537</td><td class="line"> padding.top + padding.bottom != priv-&gt;old_padding_height ||</td></tr>
+<tr class="codeline" data-linenumber="3538"><td class="num" id="LN3538">3538</td><td class="line"> chrome_width != priv-&gt;old_chrome_width ||</td></tr>
+<tr class="codeline" data-linenumber="3539"><td class="num" id="LN3539">3539</td><td class="line"> chrome_height != priv-&gt;old_chrome_height ||</td></tr>
+<tr class="codeline" data-linenumber="3540"><td class="num" id="LN3540">3540</td><td class="line"> widget != <span class='macro'>GTK_WIDGET (priv-&gt;old_geometry_widget)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((priv-&gt;old_geometry_widget)), ((gtk_widget_get_type ()<br>))))))</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="3541"><td class="num" id="LN3541">3541</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="3542"><td class="num" id="LN3542">3542</td><td class="line"> hints.base_width = chrome_width + csd_width;</td></tr>
+<tr class="codeline" data-linenumber="3543"><td class="num" id="LN3543">3543</td><td class="line"> hints.base_height = chrome_height + csd_height;</td></tr>
+<tr class="codeline" data-linenumber="3544"><td class="num" id="LN3544">3544</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3545"><td class="num" id="LN3545">3545</td><td class="line"><span class='directive'>#define <span class='macro'>MIN_WIDTH_CHARS<span class='macro_popup'>4</span></span> 4</span></td></tr>
+<tr class="codeline" data-linenumber="3546"><td class="num" id="LN3546">3546</td><td class="line"><span class='directive'>#define <span class='macro'>MIN_HEIGHT_CHARS<span class='macro_popup'>1</span></span> 1</span></td></tr>
+<tr class="codeline" data-linenumber="3547"><td class="num" id="LN3547">3547</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3548"><td class="num" id="LN3548">3548</td><td class="line"> hints.width_inc = char_width;</td></tr>
+<tr class="codeline" data-linenumber="3549"><td class="num" id="LN3549">3549</td><td class="line"> hints.height_inc = char_height;</td></tr>
+<tr class="codeline" data-linenumber="3550"><td class="num" id="LN3550">3550</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3551"><td class="num" id="LN3551">3551</td><td class="line"> <span class='comment'>/* min size is min size of the whole window, remember. */</span></td></tr>
+<tr class="codeline" data-linenumber="3552"><td class="num" id="LN3552">3552</td><td class="line"> hints.min_width = hints.base_width + hints.width_inc * <span class='macro'>MIN_WIDTH_CHARS<span class='macro_popup'>4</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3553"><td class="num" id="LN3553">3553</td><td class="line"> hints.min_height = hints.base_height + hints.height_inc * <span class='macro'>MIN_HEIGHT_CHARS<span class='macro_popup'>1</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3554"><td class="num" id="LN3554">3554</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3555"><td class="num" id="LN3555">3555</td><td class="line"> gtk_window_set_geometry_hints (<span class='macro'>GTK_WINDOW (window)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_window_get_type ()))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="3556"><td class="num" id="LN3556">3556</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="3557"><td class="num" id="LN3557">3557</td><td class="line"> &amp;hints,</td></tr>
+<tr class="codeline" data-linenumber="3558"><td class="num" id="LN3558">3558</td><td class="line"> GDK_HINT_RESIZE_INC |</td></tr>
+<tr class="codeline" data-linenumber="3559"><td class="num" id="LN3559">3559</td><td class="line"> GDK_HINT_MIN_SIZE |</td></tr>
+<tr class="codeline" data-linenumber="3560"><td class="num" id="LN3560">3560</td><td class="line"> GDK_HINT_BASE_SIZE);</td></tr>
+<tr class="codeline" data-linenumber="3561"><td class="num" id="LN3561">3561</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3562"><td class="num" id="LN3562">3562</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_GEOMETRY,<span class='macro_popup'>do { if (0) g_printerr("[window %p] hints: base %dx%d min %dx%d inc %d %d\n"<br>, window, hints.base_width, hints.base_height, hints.min_width<br>, hints.min_height, hints.width_inc, hints.height_inc); } while<br> (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="3563"><td class="num" id="LN3563">3563</td><td class="line"> <span class='string_literal'><span class='macro'>"[window %p] hints: base %dx%d min %dx%d inc %d %d\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("[window %p] hints: base %dx%d min %dx%d inc %d %d\n"<br>, window, hints.base_width, hints.base_height, hints.min_width<br>, hints.min_height, hints.width_inc, hints.height_inc); } while<br> (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="3564"><td class="num" id="LN3564">3564</td><td class="line"> <span class='macro'>window,<span class='macro_popup'>do { if (0) g_printerr("[window %p] hints: base %dx%d min %dx%d inc %d %d\n"<br>, window, hints.base_width, hints.base_height, hints.min_width<br>, hints.min_height, hints.width_inc, hints.height_inc); } while<br> (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="3565"><td class="num" id="LN3565">3565</td><td class="line"> <span class='macro'>hints.base_width,<span class='macro_popup'>do { if (0) g_printerr("[window %p] hints: base %dx%d min %dx%d inc %d %d\n"<br>, window, hints.base_width, hints.base_height, hints.min_width<br>, hints.min_height, hints.width_inc, hints.height_inc); } while<br> (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="3566"><td class="num" id="LN3566">3566</td><td class="line"> <span class='macro'>hints.base_height,<span class='macro_popup'>do { if (0) g_printerr("[window %p] hints: base %dx%d min %dx%d inc %d %d\n"<br>, window, hints.base_width, hints.base_height, hints.min_width<br>, hints.min_height, hints.width_inc, hints.height_inc); } while<br> (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="3567"><td class="num" id="LN3567">3567</td><td class="line"> <span class='macro'>hints.min_width,<span class='macro_popup'>do { if (0) g_printerr("[window %p] hints: base %dx%d min %dx%d inc %d %d\n"<br>, window, hints.base_width, hints.base_height, hints.min_width<br>, hints.min_height, hints.width_inc, hints.height_inc); } while<br> (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="3568"><td class="num" id="LN3568">3568</td><td class="line"> <span class='macro'>hints.min_height,<span class='macro_popup'>do { if (0) g_printerr("[window %p] hints: base %dx%d min %dx%d inc %d %d\n"<br>, window, hints.base_width, hints.base_height, hints.min_width<br>, hints.min_height, hints.width_inc, hints.height_inc); } while<br> (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="3569"><td class="num" id="LN3569">3569</td><td class="line"> <span class='macro'>hints.width_inc,<span class='macro_popup'>do { if (0) g_printerr("[window %p] hints: base %dx%d min %dx%d inc %d %d\n"<br>, window, hints.base_width, hints.base_height, hints.min_width<br>, hints.min_height, hints.width_inc, hints.height_inc); } while<br> (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="3570"><td class="num" id="LN3570">3570</td><td class="line"> <span class='macro'>hints.height_inc)<span class='macro_popup'>do { if (0) g_printerr("[window %p] hints: base %dx%d min %dx%d inc %d %d\n"<br>, window, hints.base_width, hints.base_height, hints.min_width<br>, hints.min_height, hints.width_inc, hints.height_inc); } while<br> (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3571"><td class="num" id="LN3571">3571</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3572"><td class="num" id="LN3572">3572</td><td class="line"> priv-&gt;old_geometry_widget = widget;</td></tr>
+<tr class="codeline" data-linenumber="3573"><td class="num" id="LN3573">3573</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="3574"><td class="num" id="LN3574">3574</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="3575"><td class="num" id="LN3575">3575</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="3576"><td class="num" id="LN3576">3576</td><td class="line"> <span class='macro'>_terminal_debug_print (TERMINAL_DEBUG_GEOMETRY,<span class='macro_popup'>do { if (0) g_printerr("[window %p] hints: increment unchanged, not setting\n"<br>, window); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="3577"><td class="num" id="LN3577">3577</td><td class="line"> <span class='string_literal'><span class='macro'>"[window %p] hints: increment unchanged, not setting\n"</span>,<span class='macro_popup'>do { if (0) g_printerr("[window %p] hints: increment unchanged, not setting\n"<br>, window); } while (0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="3578"><td class="num" id="LN3578">3578</td><td class="line"> <span class='macro'>window)<span class='macro_popup'>do { if (0) g_printerr("[window %p] hints: increment unchanged, not setting\n"<br>, window); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3579"><td class="num" id="LN3579">3579</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="3580"><td class="num" id="LN3580">3580</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3581"><td class="num" id="LN3581">3581</td><td class="line"> <span class='comment'>/* We need these for the size calculation in terminal_window_update_size(),</span></td></tr>
+<tr class="codeline" data-linenumber="3582"><td class="num" id="LN3582">3582</td><td class="line"> <span class='comment'>* so we set them unconditionally. */</span></td></tr>
+<tr class="codeline" data-linenumber="3583"><td class="num" id="LN3583">3583</td><td class="line"> priv-&gt;old_char_width = char_width;</td></tr>
+<tr class="codeline" data-linenumber="3584"><td class="num" id="LN3584">3584</td><td class="line"> priv-&gt;old_char_height = char_height;</td></tr>
+<tr class="codeline" data-linenumber="3585"><td class="num" id="LN3585">3585</td><td class="line"> priv-&gt;old_chrome_width = chrome_width;</td></tr>
+<tr class="codeline" data-linenumber="3586"><td class="num" id="LN3586">3586</td><td class="line"> priv-&gt;old_chrome_height = chrome_height;</td></tr>
+<tr class="codeline" data-linenumber="3587"><td class="num" id="LN3587">3587</td><td class="line"> priv-&gt;old_padding_width = padding.left + padding.right;</td></tr>
+<tr class="codeline" data-linenumber="3588"><td class="num" id="LN3588">3588</td><td class="line"> priv-&gt;old_padding_height = padding.top + padding.bottom;</td></tr>
+<tr class="codeline" data-linenumber="3589"><td class="num" id="LN3589">3589</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="3590"><td class="num" id="LN3590">3590</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3591"><td class="num" id="LN3591">3591</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="3592"><td class="num" id="LN3592">3592</td><td class="line">file_new_window_callback (GtkAction *action,</td></tr>
+<tr class="codeline" data-linenumber="3593"><td class="num" id="LN3593">3593</td><td class="line"> TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="3594"><td class="num" id="LN3594">3594</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="3595"><td class="num" id="LN3595">3595</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="3596"><td class="num" id="LN3596">3596</td><td class="line"> TerminalApp *app;</td></tr>
+<tr class="codeline" data-linenumber="3597"><td class="num" id="LN3597">3597</td><td class="line"> TerminalWindow *new_window;</td></tr>
+<tr class="codeline" data-linenumber="3598"><td class="num" id="LN3598">3598</td><td class="line"> TerminalProfile *profile;</td></tr>
+<tr class="codeline" data-linenumber="3599"><td class="num" id="LN3599">3599</td><td class="line"> <span class='keyword'>char</span> *new_working_directory;</td></tr>
+<tr class="codeline" data-linenumber="3600"><td class="num" id="LN3600">3600</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3601"><td class="num" id="LN3601">3601</td><td class="line"> app = terminal_app_get ();</td></tr>
+<tr class="codeline" data-linenumber="3602"><td class="num" id="LN3602">3602</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3603"><td class="num" id="LN3603">3603</td><td class="line"> profile = g_object_get_data (<span class='macro'>G_OBJECT (action)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((action)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, <span class='macro'>PROFILE_DATA_KEY<span class='macro_popup'>"GT::Profile"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="3604"><td class="num" id="LN3604">3604</td><td class="line"> <span class='keyword'>if</span> (!profile)</td></tr>
+<tr class="codeline" data-linenumber="3605"><td class="num" id="LN3605">3605</td><td class="line"> profile = terminal_screen_get_profile (priv-&gt;active_screen);</td></tr>
+<tr class="codeline" data-linenumber="3606"><td class="num" id="LN3606">3606</td><td class="line"> <span class='keyword'>if</span> (!profile)</td></tr>
+<tr class="codeline" data-linenumber="3607"><td class="num" id="LN3607">3607</td><td class="line"> profile = terminal_app_get_profile_for_new_term (app);</td></tr>
+<tr class="codeline" data-linenumber="3608"><td class="num" id="LN3608">3608</td><td class="line"> <span class='keyword'>if</span> (!profile)</td></tr>
+<tr class="codeline" data-linenumber="3609"><td class="num" id="LN3609">3609</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="3610"><td class="num" id="LN3610">3610</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3611"><td class="num" id="LN3611">3611</td><td class="line"> <span class='keyword'>if</span> (_terminal_profile_get_forgotten (profile))</td></tr>
+<tr class="codeline" data-linenumber="3612"><td class="num" id="LN3612">3612</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="3613"><td class="num" id="LN3613">3613</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3614"><td class="num" id="LN3614">3614</td><td class="line"> new_window = terminal_app_new_window (app, gtk_widget_get_screen (<span class='macro'>GTK_WIDGET (window)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_widget_get_type ()))))))</span></span>));</td></tr>
+<tr class="codeline" data-linenumber="3615"><td class="num" id="LN3615">3615</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3616"><td class="num" id="LN3616">3616</td><td class="line"> new_working_directory = terminal_screen_get_current_dir_with_fallback (priv-&gt;active_screen);</td></tr>
+<tr class="codeline" data-linenumber="3617"><td class="num" id="LN3617">3617</td><td class="line"> terminal_app_new_terminal (app, new_window, profile,</td></tr>
+<tr class="codeline" data-linenumber="3618"><td class="num" id="LN3618">3618</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="3619"><td class="num" id="LN3619">3619</td><td class="line"> new_working_directory,</td></tr>
+<tr class="codeline" data-linenumber="3620"><td class="num" id="LN3620">3620</td><td class="line"> terminal_screen_get_initial_environment (priv-&gt;active_screen),</td></tr>
+<tr class="codeline" data-linenumber="3621"><td class="num" id="LN3621">3621</td><td class="line"> 1.0);</td></tr>
+<tr class="codeline" data-linenumber="3622"><td class="num" id="LN3622">3622</td><td class="line"> g_free (new_working_directory);</td></tr>
+<tr class="codeline" data-linenumber="3623"><td class="num" id="LN3623">3623</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3624"><td class="num" id="LN3624">3624</td><td class="line"> gtk_window_present (<span class='macro'>GTK_WINDOW (new_window)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((new_window)), ((gtk_window_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="3625"><td class="num" id="LN3625">3625</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="3626"><td class="num" id="LN3626">3626</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3627"><td class="num" id="LN3627">3627</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="3628"><td class="num" id="LN3628">3628</td><td class="line">file_new_tab_callback (GtkAction *action,</td></tr>
+<tr class="codeline" data-linenumber="3629"><td class="num" id="LN3629">3629</td><td class="line"> TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="3630"><td class="num" id="LN3630">3630</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="3631"><td class="num" id="LN3631">3631</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="3632"><td class="num" id="LN3632">3632</td><td class="line"> TerminalApp *app;</td></tr>
+<tr class="codeline" data-linenumber="3633"><td class="num" id="LN3633">3633</td><td class="line"> TerminalProfile *profile;</td></tr>
+<tr class="codeline" data-linenumber="3634"><td class="num" id="LN3634">3634</td><td class="line"> <span class='keyword'>char</span> *new_working_directory;</td></tr>
+<tr class="codeline" data-linenumber="3635"><td class="num" id="LN3635">3635</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3636"><td class="num" id="LN3636">3636</td><td class="line"> app = terminal_app_get ();</td></tr>
+<tr class="codeline" data-linenumber="3637"><td class="num" id="LN3637">3637</td><td class="line"> profile = g_object_get_data (<span class='macro'>G_OBJECT (action)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((action)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, <span class='macro'>PROFILE_DATA_KEY<span class='macro_popup'>"GT::Profile"</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="3638"><td class="num" id="LN3638">3638</td><td class="line"> <span class='keyword'>if</span> (!profile)</td></tr>
+<tr class="codeline" data-linenumber="3639"><td class="num" id="LN3639">3639</td><td class="line"> profile = terminal_screen_get_profile (priv-&gt;active_screen);</td></tr>
+<tr class="codeline" data-linenumber="3640"><td class="num" id="LN3640">3640</td><td class="line"> <span class='keyword'>if</span> (!profile)</td></tr>
+<tr class="codeline" data-linenumber="3641"><td class="num" id="LN3641">3641</td><td class="line"> profile = terminal_app_get_profile_for_new_term (app);</td></tr>
+<tr class="codeline" data-linenumber="3642"><td class="num" id="LN3642">3642</td><td class="line"> <span class='keyword'>if</span> (!profile)</td></tr>
+<tr class="codeline" data-linenumber="3643"><td class="num" id="LN3643">3643</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="3644"><td class="num" id="LN3644">3644</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3645"><td class="num" id="LN3645">3645</td><td class="line"> <span class='keyword'>if</span> (_terminal_profile_get_forgotten (profile))</td></tr>
+<tr class="codeline" data-linenumber="3646"><td class="num" id="LN3646">3646</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="3647"><td class="num" id="LN3647">3647</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3648"><td class="num" id="LN3648">3648</td><td class="line"> new_working_directory = terminal_screen_get_current_dir_with_fallback (priv-&gt;active_screen);</td></tr>
+<tr class="codeline" data-linenumber="3649"><td class="num" id="LN3649">3649</td><td class="line"> terminal_app_new_terminal (app, window, profile,</td></tr>
+<tr class="codeline" data-linenumber="3650"><td class="num" id="LN3650">3650</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="3651"><td class="num" id="LN3651">3651</td><td class="line"> new_working_directory,</td></tr>
+<tr class="codeline" data-linenumber="3652"><td class="num" id="LN3652">3652</td><td class="line"> terminal_screen_get_initial_environment (priv-&gt;active_screen),</td></tr>
+<tr class="codeline" data-linenumber="3653"><td class="num" id="LN3653">3653</td><td class="line"> 1.0);</td></tr>
+<tr class="codeline" data-linenumber="3654"><td class="num" id="LN3654">3654</td><td class="line"> g_free (new_working_directory);</td></tr>
+<tr class="codeline" data-linenumber="3655"><td class="num" id="LN3655">3655</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="3656"><td class="num" id="LN3656">3656</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3657"><td class="num" id="LN3657">3657</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="3658"><td class="num" id="LN3658">3658</td><td class="line">confirm_close_response_cb (GtkWidget *dialog,</td></tr>
+<tr class="codeline" data-linenumber="3659"><td class="num" id="LN3659">3659</td><td class="line"> <span class='keyword'>int</span> response,</td></tr>
+<tr class="codeline" data-linenumber="3660"><td class="num" id="LN3660">3660</td><td class="line"> TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="3661"><td class="num" id="LN3661">3661</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="3662"><td class="num" id="LN3662">3662</td><td class="line"> TerminalScreen *screen;</td></tr>
+<tr class="codeline" data-linenumber="3663"><td class="num" id="LN3663">3663</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3664"><td class="num" id="LN3664">3664</td><td class="line"> screen = g_object_get_data (<span class='macro'>G_OBJECT (dialog)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((dialog)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, <span class='string_literal'>"close-screen"</span>);</td></tr>
+<tr class="codeline" data-linenumber="3665"><td class="num" id="LN3665">3665</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3666"><td class="num" id="LN3666">3666</td><td class="line"> gtk_widget_destroy (dialog);</td></tr>
+<tr class="codeline" data-linenumber="3667"><td class="num" id="LN3667">3667</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3668"><td class="num" id="LN3668">3668</td><td class="line"> <span class='keyword'>if</span> (response != GTK_RESPONSE_ACCEPT)</td></tr>
+<tr class="codeline" data-linenumber="3669"><td class="num" id="LN3669">3669</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="3670"><td class="num" id="LN3670">3670</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3671"><td class="num" id="LN3671">3671</td><td class="line"> <span class='keyword'>if</span> (screen)</td></tr>
+<tr class="codeline" data-linenumber="3672"><td class="num" id="LN3672">3672</td><td class="line"> terminal_window_remove_screen (window, screen);</td></tr>
+<tr class="codeline" data-linenumber="3673"><td class="num" id="LN3673">3673</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="3674"><td class="num" id="LN3674">3674</td><td class="line"> gtk_widget_destroy (<span class='macro'>GTK_WIDGET (window)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_widget_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="3675"><td class="num" id="LN3675">3675</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="3676"><td class="num" id="LN3676">3676</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3677"><td class="num" id="LN3677">3677</td><td class="line"><span class='comment'>/* Returns: TRUE if closing needs to wait until user confirmation;</span></td></tr>
+<tr class="codeline" data-linenumber="3678"><td class="num" id="LN3678">3678</td><td class="line"> <span class='comment'>* FALSE if the terminal or window can close immediately.</span></td></tr>
+<tr class="codeline" data-linenumber="3679"><td class="num" id="LN3679">3679</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="3680"><td class="num" id="LN3680">3680</td><td class="line"><span id="start11"><span class='keyword'>static</span></span> gboolean</td></tr>
+<tr class="codeline" data-linenumber="3681"><td class="num" id="LN3681">3681</td><td class="line">confirm_close_window_or_tab (TerminalWindow *window,</td></tr>
+<tr class="codeline" data-linenumber="3682"><td class="num" id="LN3682">3682</td><td class="line"> TerminalScreen *screen)</td></tr>
+<tr class="codeline" data-linenumber="3683"><td class="num" id="LN3683">3683</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="3684"><td class="num" id="LN3684">3684</td><td class="line"> <span id="start10"><span id="end11">GtkBuilder</span></span> *builder;</td></tr>
+<tr class="codeline" data-linenumber="3685"><td class="num" id="LN3685">3685</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="3686"><td class="num" id="LN3686">3686</td><td class="line"> GtkWidget *dialog;</td></tr>
+<tr class="codeline" data-linenumber="3687"><td class="num" id="LN3687">3687</td><td class="line"> <span id="start9"><span class="mrange"><span id="end10">gboolean</span></span> has_processes</span>;</td></tr>
+<tr><td class="num"></td><td class="line"><div id="Path2" class="msg msgEvent" style="margin-left:5ex"><table class="msgT"><tr><td valign="top"><div class="PathIndex PathIndexEvent">2</div></td><td><div class="PathNav"><a href="#Path1" title="Previous event (1)">&#x2190;</a></div></td><td>'has_processes' declared without an initial value</td><td><div class="PathNav"><a href="#Path3" title="Next event (3)">&#x2192;</a></div></td></tr></table></div></td></tr>
+<tr class="codeline" data-linenumber="3688"><td class="num" id="LN3688">3688</td><td class="line"> <span class='keyword'>int</span> n_tabs;</td></tr>
+<tr class="codeline" data-linenumber="3689"><td class="num" id="LN3689">3689</td><td class="line"> <span class='keyword'>char</span> *confirm_msg;</td></tr>
+<tr class="codeline" data-linenumber="3690"><td class="num" id="LN3690">3690</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3691"><td class="num" id="LN3691">3691</td><td class="line"> <span id="start8"><span id="end9"><span class='keyword'>if</span></span></span> (<span id="start7"><span class="mrange"><span id="end8">!</span></span>g_settings_get_boolean (settings_global, <span class='string_literal'>"confirm-window-close"</span>)</span>)</td></tr>
+<tr><td class="num"></td><td class="line"><div id="Path3" class="msg msgEvent" style="margin-left:9ex"><table class="msgT"><tr><td valign="top"><div class="PathIndex PathIndexEvent">3</div></td><td><div class="PathNav"><a href="#Path2" title="Previous event (2)">&#x2190;</a></div></td><td>Assuming the condition is false</td><td><div class="PathNav"><a href="#Path4" title="Next event (4)">&#x2192;</a></div></td></tr></table></div></td></tr>
+<tr><td class="num"></td><td class="line"><div id="Path4" class="msg msgControl" style="margin-left:5ex"><table class="msgT"><tr><td valign="top"><div class="PathIndex PathIndexControl">4</div></td><td><div class="PathNav"><a href="#Path3" title="Previous event (3)">&#x2190;</a></div></td><td>Taking false branch</td><td><div class="PathNav"><a href="#Path5" title="Next event (5)">&#x2192;</a></div></td></tr></table></div></td></tr>
+<tr class="codeline" data-linenumber="3692"><td class="num" id="LN3692">3692</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3693"><td class="num" id="LN3693">3693</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3694"><td class="num" id="LN3694">3694</td><td class="line"> <span id="start6"><span id="end7"><span class='keyword'>if</span></span></span> (<span id="start5"><span id="end6"><span class='variable'>screen<table class='variable_popup'><tbody><tr><td valign='top'><div class='PathIndex PathIndexPopUp'>4.1</div></td><td>'screen' is null</td></tr></tbody></table></span></span></span>)</td></tr>
+<tr><td class="num"></td><td class="line"><div id="Path5" class="msg msgControl" style="margin-left:5ex"><table class="msgT"><tr><td valign="top"><div class="PathIndex PathIndexControl">5</div></td><td><div class="PathNav"><a href="#Path4" title="Previous event (4)">&#x2190;</a></div></td><td>Taking false branch</td><td><div class="PathNav"><a href="#Path6" title="Next event (6)">&#x2192;</a></div></td></tr></table></div></td></tr>
+<tr class="codeline" data-linenumber="3695"><td class="num" id="LN3695">3695</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="3696"><td class="num" id="LN3696">3696</td><td class="line"> has_processes = terminal_screen_has_foreground_process (screen);</td></tr>
+<tr class="codeline" data-linenumber="3697"><td class="num" id="LN3697">3697</td><td class="line"> n_tabs = 1;</td></tr>
+<tr class="codeline" data-linenumber="3698"><td class="num" id="LN3698">3698</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="3699"><td class="num" id="LN3699">3699</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="3700"><td class="num" id="LN3700">3700</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="3701"><td class="num" id="LN3701">3701</td><td class="line"> GList *<span id="start4"><span id="end5">tabs</span></span>, *t;</td></tr>
+<tr class="codeline" data-linenumber="3702"><td class="num" id="LN3702">3702</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3703"><td class="num" id="LN3703">3703</td><td class="line"> tabs = terminal_window_list_screen_containers (window);</td></tr>
+<tr class="codeline" data-linenumber="3704"><td class="num" id="LN3704">3704</td><td class="line"> n_tabs = g_list_length (tabs);</td></tr>
+<tr class="codeline" data-linenumber="3705"><td class="num" id="LN3705">3705</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3706"><td class="num" id="LN3706">3706</td><td class="line"> <span id="start3"><span id="end4"><span class='keyword'>for</span></span></span> (t = tabs; <span id="start2"><span class="mrange"><span id="end3">t</span></span> != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span></span>; t = t-&gt;next)</td></tr>
+<tr><td class="num"></td><td class="line"><div id="Path6" class="msg msgEvent" style="margin-left:24ex"><table class="msgT"><tr><td valign="top"><div class="PathIndex PathIndexEvent">6</div></td><td><div class="PathNav"><a href="#Path5" title="Previous event (5)">&#x2190;</a></div></td><td>Assuming 't' is equal to NULL</td><td><div class="PathNav"><a href="#Path7" title="Next event (7)">&#x2192;</a></div></td></tr></table></div></td></tr>
+<tr><td class="num"></td><td class="line"><div id="Path7" class="msg msgControl" style="margin-left:9ex"><table class="msgT"><tr><td valign="top"><div class="PathIndex PathIndexControl">7</div></td><td><div class="PathNav"><a href="#Path6" title="Previous event (6)">&#x2190;</a></div></td><td>Loop condition is false. Execution continues on line 3715</td><td><div class="PathNav"><a href="#EndPath" title="Next event (8)">&#x2192;</a></div></td></tr></table></div></td></tr>
+<tr class="codeline" data-linenumber="3707"><td class="num" id="LN3707">3707</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="3708"><td class="num" id="LN3708">3708</td><td class="line"> TerminalScreen *terminal_screen;</td></tr>
+<tr class="codeline" data-linenumber="3709"><td class="num" id="LN3709">3709</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3710"><td class="num" id="LN3710">3710</td><td class="line"> terminal_screen = terminal_screen_container_get_screen (<span class='macro'>TERMINAL_SCREEN_CONTAINER (t-&gt;data)<span class='macro_popup'>((((TerminalScreenContainer*) (void *) g_type_check_instance_cast<br> ((GTypeInstance*) ((t-&gt;data)), ((terminal_screen_container_get_type<br> ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="3711"><td class="num" id="LN3711">3711</td><td class="line"> has_processes = terminal_screen_has_foreground_process (terminal_screen);</td></tr>
+<tr class="codeline" data-linenumber="3712"><td class="num" id="LN3712">3712</td><td class="line"> <span class='keyword'>if</span> (has_processes)</td></tr>
+<tr class="codeline" data-linenumber="3713"><td class="num" id="LN3713">3713</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="3714"><td class="num" id="LN3714">3714</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="3715"><td class="num" id="LN3715">3715</td><td class="line"> <span id="start1"><span id="end2">g_list_free</span></span> (tabs);</td></tr>
+<tr class="codeline" data-linenumber="3716"><td class="num" id="LN3716">3716</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="3717"><td class="num" id="LN3717">3717</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3718"><td class="num" id="LN3718">3718</td><td class="line"> <span id="start0"><span id="end1"><span class='keyword'>if</span></span></span> (<span class="mrange"><span id="end0">has_processes</span></span>)</td></tr>
+<tr><td class="num"></td><td class="line"><div id="EndPath" class="msg msgEvent" style="margin-left:9ex"><table class="msgT"><tr><td valign="top"><div class="PathIndex PathIndexEvent">8</div></td><td><div class="PathNav"><a href="#Path7" title="Previous event (7)">&#x2190;</a></div></td><td>Branch condition evaluates to a garbage value</td></tr></table></div></td></tr>
+<tr class="codeline" data-linenumber="3719"><td class="num" id="LN3719">3719</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="3720"><td class="num" id="LN3720">3720</td><td class="line"> <span class='keyword'>if</span> (n_tabs &gt; 1)</td></tr>
+<tr class="codeline" data-linenumber="3721"><td class="num" id="LN3721">3721</td><td class="line"> confirm_msg = <span class='macro'>_(<span class='string_literal'>"There are still processes running in some terminals in this window.\n"<span class='macro_popup'>gettext ("There are still processes running in some terminals in this window.\n"<br> "Closing the window will kill all of them.")</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="3722"><td class="num" id="LN3722">3722</td><td class="line"> <span class='string_literal'><span class='macro'>"Closing the window will kill all of them."</span>)<span class='macro_popup'>gettext ("There are still processes running in some terminals in this window.\n"<br> "Closing the window will kill all of them.")</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3723"><td class="num" id="LN3723">3723</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="3724"><td class="num" id="LN3724">3724</td><td class="line"> confirm_msg = <span class='macro'>_(<span class='string_literal'>"There is still a process running in this terminal.\n"<span class='macro_popup'>gettext ("There is still a process running in this terminal.\n"<br> "Closing the terminal will kill it.")</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="3725"><td class="num" id="LN3725">3725</td><td class="line"> <span class='string_literal'><span class='macro'>"Closing the terminal will kill it."</span>)<span class='macro_popup'>gettext ("There is still a process running in this terminal.\n"<br> "Closing the terminal will kill it.")</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3726"><td class="num" id="LN3726">3726</td><td class="line"> } <span class='keyword'>else</span> <span class='keyword'>if</span> (n_tabs &gt; 1)</td></tr>
+<tr class="codeline" data-linenumber="3727"><td class="num" id="LN3727">3727</td><td class="line"> confirm_msg = <span class='macro'>_(<span class='string_literal'>"There are multiple tabs open in this window."</span>)<span class='macro_popup'>gettext ("There are multiple tabs open in this window.")</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3728"><td class="num" id="LN3728">3728</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="3729"><td class="num" id="LN3729">3729</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3730"><td class="num" id="LN3730">3730</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3731"><td class="num" id="LN3731">3731</td><td class="line"> builder = gtk_builder_new_from_resource (<span class='macro'>TERMINAL_RESOURCES_PATH_PREFIX<span class='macro_popup'>"/org/mate/terminal"</span></span> <span class='macro'>G_DIR_SEPARATOR_S<span class='macro_popup'>"/"</span></span> <span class='string_literal'>"ui/confirm-close-dialog.ui"</span>);</td></tr>
+<tr class="codeline" data-linenumber="3732"><td class="num" id="LN3732">3732</td><td class="line"> priv-&gt;confirm_close_dialog = dialog = <span class='macro'>GTK_WIDGET (gtk_builder_get_object (builder, <span class='string_literal'>"confirm_close_dialog"</span>))<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((gtk_builder_get_object (builder, "confirm_close_dialog")<br>)), ((gtk_widget_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3733"><td class="num" id="LN3733">3733</td><td class="line"> <span class='keyword'>if</span> (n_tabs &gt; 1) {</td></tr>
+<tr class="codeline" data-linenumber="3734"><td class="num" id="LN3734">3734</td><td class="line"> gtk_label_set_text (<span class='macro'>GTK_LABEL (gtk_builder_get_object (builder, <span class='string_literal'>"question_text"</span>))<span class='macro_popup'>((((GtkLabel*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((gtk_builder_get_object (builder, "question_text"))), ((gtk_label_get_type<br> ()))))))</span></span>, <span class='macro'>_(<span class='string_literal'>"Close this window?"</span>)<span class='macro_popup'>gettext ("Close this window?")</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="3735"><td class="num" id="LN3735">3735</td><td class="line"> gtk_button_set_label (<span class='macro'>GTK_BUTTON (gtk_builder_get_object (builder, <span class='string_literal'>"button_close"</span>))<span class='macro_popup'>((((GtkButton*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((gtk_builder_get_object (builder, "button_close"))), ((gtk_button_get_type<br> ()))))))</span></span>, <span class='macro'>_(<span class='string_literal'>"C_lose Window"</span>)<span class='macro_popup'>gettext ("C_lose Window")</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="3736"><td class="num" id="LN3736">3736</td><td class="line"> } <span class='keyword'>else</span> {</td></tr>
+<tr class="codeline" data-linenumber="3737"><td class="num" id="LN3737">3737</td><td class="line"> gtk_label_set_text (<span class='macro'>GTK_LABEL (gtk_builder_get_object (builder, <span class='string_literal'>"question_text"</span>))<span class='macro_popup'>((((GtkLabel*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((gtk_builder_get_object (builder, "question_text"))), ((gtk_label_get_type<br> ()))))))</span></span>, <span class='macro'>_(<span class='string_literal'>"Close this terminal?"</span>)<span class='macro_popup'>gettext ("Close this terminal?")</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="3738"><td class="num" id="LN3738">3738</td><td class="line"> gtk_button_set_label (<span class='macro'>GTK_BUTTON (gtk_builder_get_object (builder, <span class='string_literal'>"button_close"</span>))<span class='macro_popup'>((((GtkButton*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((gtk_builder_get_object (builder, "button_close"))), ((gtk_button_get_type<br> ()))))))</span></span>, <span class='macro'>_(<span class='string_literal'>"C_lose Terminal"</span>)<span class='macro_popup'>gettext ("C_lose Terminal")</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="3739"><td class="num" id="LN3739">3739</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="3740"><td class="num" id="LN3740">3740</td><td class="line"> gtk_label_set_text (<span class='macro'>GTK_LABEL (gtk_builder_get_object (builder, <span class='string_literal'>"description_text"</span>))<span class='macro_popup'>((((GtkLabel*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((gtk_builder_get_object (builder, "description_text"))), (<br>(gtk_label_get_type ()))))))</span></span>, confirm_msg);</td></tr>
+<tr class="codeline" data-linenumber="3741"><td class="num" id="LN3741">3741</td><td class="line"> g_object_unref (builder);</td></tr>
+<tr class="codeline" data-linenumber="3742"><td class="num" id="LN3742">3742</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3743"><td class="num" id="LN3743">3743</td><td class="line"> g_object_set_data (<span class='macro'>G_OBJECT (dialog)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((dialog)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, <span class='string_literal'>"close-screen"</span>, screen);</td></tr>
+<tr class="codeline" data-linenumber="3744"><td class="num" id="LN3744">3744</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3745"><td class="num" id="LN3745">3745</td><td class="line"> <span class='macro'>g_signal_connect (dialog, <span class='string_literal'>"destroy"</span>,<span class='macro_popup'>g_signal_connect_data ((dialog), ("destroy"), (((GCallback) (<br>gtk_widget_destroyed))), (&amp;priv-&gt;confirm_close_dialog)<br>, ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="3746"><td class="num" id="LN3746">3746</td><td class="line"> <span class='macro'>G_CALLBACK (gtk_widget_destroyed), &amp;priv-&gt;confirm_close_dialog)<span class='macro_popup'>g_signal_connect_data ((dialog), ("destroy"), (((GCallback) (<br>gtk_widget_destroyed))), (&amp;priv-&gt;confirm_close_dialog)<br>, ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3747"><td class="num" id="LN3747">3747</td><td class="line"> <span class='macro'>g_signal_connect (dialog, <span class='string_literal'>"response"</span>,<span class='macro_popup'>g_signal_connect_data ((dialog), ("response"), (((GCallback) (<br>confirm_close_response_cb))), (window), ((void*)0), (GConnectFlags<br>) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="3748"><td class="num" id="LN3748">3748</td><td class="line"> <span class='macro'>G_CALLBACK (confirm_close_response_cb), window)<span class='macro_popup'>g_signal_connect_data ((dialog), ("response"), (((GCallback) (<br>confirm_close_response_cb))), (window), ((void*)0), (GConnectFlags<br>) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3749"><td class="num" id="LN3749">3749</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3750"><td class="num" id="LN3750">3750</td><td class="line"> gtk_window_set_transient_for (<span class='macro'>GTK_WINDOW (dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((dialog)), ((gtk_window_get_type ()))))))</span></span>, <span class='macro'>GTK_WINDOW (window)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_window_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="3751"><td class="num" id="LN3751">3751</td><td class="line"> gtk_window_set_title (<span class='macro'>GTK_WINDOW (dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((dialog)), ((gtk_window_get_type ()))))))</span></span>, <span class='string_literal'>""</span>);</td></tr>
+<tr class="codeline" data-linenumber="3752"><td class="num" id="LN3752">3752</td><td class="line"> gtk_window_present (<span class='macro'>GTK_WINDOW (dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((dialog)), ((gtk_window_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="3753"><td class="num" id="LN3753">3753</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3754"><td class="num" id="LN3754">3754</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3755"><td class="num" id="LN3755">3755</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="3756"><td class="num" id="LN3756">3756</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3757"><td class="num" id="LN3757">3757</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="3758"><td class="num" id="LN3758">3758</td><td class="line">file_close_window_callback (GtkAction *action,</td></tr>
+<tr class="codeline" data-linenumber="3759"><td class="num" id="LN3759">3759</td><td class="line"> TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="3760"><td class="num" id="LN3760">3760</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="3761"><td class="num" id="LN3761">3761</td><td class="line"> <span id="start12"><span class='keyword'>if</span></span> (<span class="mrange"><span id="end12">confirm_close_window_or_tab</span> (window, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</span>)</td></tr>
+<tr><td class="num"></td><td class="line"><div id="Path1" class="msg msgEvent" style="margin-left:9ex"><table class="msgT"><tr><td valign="top"><div class="PathIndex PathIndexEvent">1</div></td><td>Calling 'confirm_close_window_or_tab'</td><td><div class="PathNav"><a href="#Path2" title="Next event (2)">&#x2192;</a></div></td></tr></table></div></td></tr>
+<tr class="codeline" data-linenumber="3762"><td class="num" id="LN3762">3762</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="3763"><td class="num" id="LN3763">3763</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3764"><td class="num" id="LN3764">3764</td><td class="line"> gtk_widget_destroy (<span class='macro'>GTK_WIDGET (window)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_widget_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="3765"><td class="num" id="LN3765">3765</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="3766"><td class="num" id="LN3766">3766</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3767"><td class="num" id="LN3767">3767</td><td class="line"><span class='directive'>#ifdef ENABLE_SAVE</span></td></tr>
+<tr class="codeline" data-linenumber="3768"><td class="num" id="LN3768">3768</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="3769"><td class="num" id="LN3769">3769</td><td class="line">save_contents_dialog_on_response (GtkDialog *dialog, gint response_id, gpointer terminal)</td></tr>
+<tr class="codeline" data-linenumber="3770"><td class="num" id="LN3770">3770</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="3771"><td class="num" id="LN3771">3771</td><td class="line"> GtkWindow *parent;</td></tr>
+<tr class="codeline" data-linenumber="3772"><td class="num" id="LN3772">3772</td><td class="line"> gchar *filename_uri = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3773"><td class="num" id="LN3773">3773</td><td class="line"> GFile *file;</td></tr>
+<tr class="codeline" data-linenumber="3774"><td class="num" id="LN3774">3774</td><td class="line"> GOutputStream *stream;</td></tr>
+<tr class="codeline" data-linenumber="3775"><td class="num" id="LN3775">3775</td><td class="line"> GError *error = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3776"><td class="num" id="LN3776">3776</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3777"><td class="num" id="LN3777">3777</td><td class="line"> <span class='keyword'>if</span> (response_id != GTK_RESPONSE_ACCEPT)</td></tr>
+<tr class="codeline" data-linenumber="3778"><td class="num" id="LN3778">3778</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="3779"><td class="num" id="LN3779">3779</td><td class="line"> gtk_widget_destroy (<span class='macro'>GTK_WIDGET (dialog)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((dialog)), ((gtk_widget_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="3780"><td class="num" id="LN3780">3780</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="3781"><td class="num" id="LN3781">3781</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="3782"><td class="num" id="LN3782">3782</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3783"><td class="num" id="LN3783">3783</td><td class="line"> parent = (GtkWindow*) gtk_widget_get_ancestor (<span class='macro'>GTK_WIDGET (terminal)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((terminal)), ((gtk_widget_get_type ()))))))</span></span>, <span class='macro'>GTK_TYPE_WINDOW<span class='macro_popup'>(gtk_window_get_type ())</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="3784"><td class="num" id="LN3784">3784</td><td class="line"> filename_uri = gtk_file_chooser_get_uri (<span class='macro'>GTK_FILE_CHOOSER (dialog)<span class='macro_popup'>((((GtkFileChooser*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((dialog)), ((gtk_file_chooser_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="3785"><td class="num" id="LN3785">3785</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3786"><td class="num" id="LN3786">3786</td><td class="line"> gtk_widget_destroy (<span class='macro'>GTK_WIDGET (dialog)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((dialog)), ((gtk_widget_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="3787"><td class="num" id="LN3787">3787</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3788"><td class="num" id="LN3788">3788</td><td class="line"> <span class='keyword'>if</span> (filename_uri == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="3789"><td class="num" id="LN3789">3789</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="3790"><td class="num" id="LN3790">3790</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3791"><td class="num" id="LN3791">3791</td><td class="line"> file = g_file_new_for_uri (filename_uri);</td></tr>
+<tr class="codeline" data-linenumber="3792"><td class="num" id="LN3792">3792</td><td class="line"> stream = <span class='macro'>G_OUTPUT_STREAM (g_file_replace (file, NULL, FALSE, G_FILE_CREATE_NONE, NULL, &amp;error))<span class='macro_popup'>((((GOutputStream*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((g_file_replace (file, ((void*)0), (0), G_FILE_CREATE_NONE<br>, ((void*)0), &amp;error))), ((g_output_stream_get_type ())))<br>)))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3793"><td class="num" id="LN3793">3793</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3794"><td class="num" id="LN3794">3794</td><td class="line"> <span class='keyword'>if</span> (stream)</td></tr>
+<tr class="codeline" data-linenumber="3795"><td class="num" id="LN3795">3795</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="3796"><td class="num" id="LN3796">3796</td><td class="line"> <span class='comment'>/* FIXME</span></td></tr>
+<tr class="codeline" data-linenumber="3797"><td class="num" id="LN3797">3797</td><td class="line"> <span class='comment'>* Should be replaced with the async version when vte implements that.</span></td></tr>
+<tr class="codeline" data-linenumber="3798"><td class="num" id="LN3798">3798</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="3799"><td class="num" id="LN3799">3799</td><td class="line"> vte_terminal_write_contents_sync (terminal, stream,</td></tr>
+<tr class="codeline" data-linenumber="3800"><td class="num" id="LN3800">3800</td><td class="line"> VTE_WRITE_DEFAULT,</td></tr>
+<tr class="codeline" data-linenumber="3801"><td class="num" id="LN3801">3801</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, &amp;error);</td></tr>
+<tr class="codeline" data-linenumber="3802"><td class="num" id="LN3802">3802</td><td class="line"> g_object_unref (stream);</td></tr>
+<tr class="codeline" data-linenumber="3803"><td class="num" id="LN3803">3803</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="3804"><td class="num" id="LN3804">3804</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3805"><td class="num" id="LN3805">3805</td><td class="line"> <span class='keyword'>if</span> (error)</td></tr>
+<tr class="codeline" data-linenumber="3806"><td class="num" id="LN3806">3806</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="3807"><td class="num" id="LN3807">3807</td><td class="line"> terminal_util_show_error_dialog (parent, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, error,</td></tr>
+<tr class="codeline" data-linenumber="3808"><td class="num" id="LN3808">3808</td><td class="line"> <span class='string_literal'>"%s"</span>, <span class='macro'>_(<span class='string_literal'>"Could not save contents"</span>)<span class='macro_popup'>gettext ("Could not save contents")</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="3809"><td class="num" id="LN3809">3809</td><td class="line"> g_error_free (error);</td></tr>
+<tr class="codeline" data-linenumber="3810"><td class="num" id="LN3810">3810</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="3811"><td class="num" id="LN3811">3811</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3812"><td class="num" id="LN3812">3812</td><td class="line"> g_object_unref(file);</td></tr>
+<tr class="codeline" data-linenumber="3813"><td class="num" id="LN3813">3813</td><td class="line"> g_free(filename_uri);</td></tr>
+<tr class="codeline" data-linenumber="3814"><td class="num" id="LN3814">3814</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="3815"><td class="num" id="LN3815">3815</td><td class="line"><span class='directive'>#endif /* ENABLE_SAVE */</span></td></tr>
+<tr class="codeline" data-linenumber="3816"><td class="num" id="LN3816">3816</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3817"><td class="num" id="LN3817">3817</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="3818"><td class="num" id="LN3818">3818</td><td class="line">file_save_contents_callback (GtkAction *action,</td></tr>
+<tr class="codeline" data-linenumber="3819"><td class="num" id="LN3819">3819</td><td class="line"> TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="3820"><td class="num" id="LN3820">3820</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="3821"><td class="num" id="LN3821">3821</td><td class="line"><span class='directive'>#ifdef ENABLE_SAVE</span></td></tr>
+<tr class="codeline" data-linenumber="3822"><td class="num" id="LN3822">3822</td><td class="line"> GtkWidget *dialog = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3823"><td class="num" id="LN3823">3823</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="3824"><td class="num" id="LN3824">3824</td><td class="line"> VteTerminal *terminal;</td></tr>
+<tr class="codeline" data-linenumber="3825"><td class="num" id="LN3825">3825</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3826"><td class="num" id="LN3826">3826</td><td class="line"> <span class='keyword'>if</span> (!priv-&gt;active_screen)</td></tr>
+<tr class="codeline" data-linenumber="3827"><td class="num" id="LN3827">3827</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="3828"><td class="num" id="LN3828">3828</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3829"><td class="num" id="LN3829">3829</td><td class="line"> terminal = <span class='macro'>VTE_TERMINAL (priv-&gt;active_screen)<span class='macro_popup'>((((VteTerminal*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((priv-&gt;active_screen)), ((vte_terminal_get_type())))))<br>)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3830"><td class="num" id="LN3830">3830</td><td class="line"> <span class='macro'>g_return_if_fail (VTE_IS_TERMINAL (terminal))<span class='macro_popup'>do { if (((((__extension__ ({ GTypeInstance *__inst = (GTypeInstance<br>*) ((terminal)); GType __t = ((vte_terminal_get_type())); gboolean<br> __r; if (!__inst) __r = (0); else if (__inst-&gt;g_class &amp;&amp;<br> __inst-&gt;g_class-&gt;g_type == __t) __r = (!(0)); else __r<br> = g_type_check_instance_is_a (__inst, __t); __r; })))))) { }<br> else { g_return_if_fail_warning (((gchar*) 0), ((const char*<br>) (__func__)), "VTE_IS_TERMINAL (terminal)"); return; } } while<br> (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3831"><td class="num" id="LN3831">3831</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3832"><td class="num" id="LN3832">3832</td><td class="line"> dialog = gtk_file_chooser_dialog_new (<span class='macro'>_(<span class='string_literal'>"Save as..."</span>)<span class='macro_popup'>gettext ("Save as...")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="3833"><td class="num" id="LN3833">3833</td><td class="line"> <span class='macro'>GTK_WINDOW(window)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_window_get_type ()))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="3834"><td class="num" id="LN3834">3834</td><td class="line"> GTK_FILE_CHOOSER_ACTION_SAVE,</td></tr>
+<tr class="codeline" data-linenumber="3835"><td class="num" id="LN3835">3835</td><td class="line"> <span class='string_literal'>"gtk-cancel"</span>, GTK_RESPONSE_CANCEL,</td></tr>
+<tr class="codeline" data-linenumber="3836"><td class="num" id="LN3836">3836</td><td class="line"> <span class='string_literal'>"gtk-save"</span>, GTK_RESPONSE_ACCEPT,</td></tr>
+<tr class="codeline" data-linenumber="3837"><td class="num" id="LN3837">3837</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="3838"><td class="num" id="LN3838">3838</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3839"><td class="num" id="LN3839">3839</td><td class="line"> gtk_file_chooser_set_do_overwrite_confirmation (<span class='macro'>GTK_FILE_CHOOSER (dialog)<span class='macro_popup'>((((GtkFileChooser*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((dialog)), ((gtk_file_chooser_get_type ()))))))</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="3840"><td class="num" id="LN3840">3840</td><td class="line"> <span class='comment'>/* XXX where should we save to? */</span></td></tr>
+<tr class="codeline" data-linenumber="3841"><td class="num" id="LN3841">3841</td><td class="line"> gtk_file_chooser_set_current_folder (<span class='macro'>GTK_FILE_CHOOSER (dialog)<span class='macro_popup'>((((GtkFileChooser*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((dialog)), ((gtk_file_chooser_get_type ()))))))</span></span>, g_get_user_special_dir (G_USER_DIRECTORY_DESKTOP));</td></tr>
+<tr class="codeline" data-linenumber="3842"><td class="num" id="LN3842">3842</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3843"><td class="num" id="LN3843">3843</td><td class="line"> gtk_window_set_transient_for (<span class='macro'>GTK_WINDOW (dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((dialog)), ((gtk_window_get_type ()))))))</span></span>, <span class='macro'>GTK_WINDOW(window)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_window_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="3844"><td class="num" id="LN3844">3844</td><td class="line"> gtk_window_set_modal (<span class='macro'>GTK_WINDOW (dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((dialog)), ((gtk_window_get_type ()))))))</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="3845"><td class="num" id="LN3845">3845</td><td class="line"> gtk_window_set_destroy_with_parent (<span class='macro'>GTK_WINDOW (dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((dialog)), ((gtk_window_get_type ()))))))</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="3846"><td class="num" id="LN3846">3846</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3847"><td class="num" id="LN3847">3847</td><td class="line"> <span class='macro'>g_signal_connect (dialog, <span class='string_literal'>"response"</span>, G_CALLBACK (save_contents_dialog_on_response), terminal)<span class='macro_popup'>g_signal_connect_data ((dialog), ("response"), (((GCallback) (<br>save_contents_dialog_on_response))), (terminal), ((void*)0), (<br>GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3848"><td class="num" id="LN3848">3848</td><td class="line"> <span class='macro'>g_signal_connect (dialog, <span class='string_literal'>"delete_event"</span>, G_CALLBACK (terminal_util_dialog_response_on_delete), NULL)<span class='macro_popup'>g_signal_connect_data ((dialog), ("delete_event"), (((GCallback<br>) (terminal_util_dialog_response_on_delete))), (((void*)0)), (<br>(void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3849"><td class="num" id="LN3849">3849</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3850"><td class="num" id="LN3850">3850</td><td class="line"> gtk_window_present (<span class='macro'>GTK_WINDOW (dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((dialog)), ((gtk_window_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="3851"><td class="num" id="LN3851">3851</td><td class="line"><span class='directive'>#endif /* ENABLE_SAVE */</span></td></tr>
+<tr class="codeline" data-linenumber="3852"><td class="num" id="LN3852">3852</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="3853"><td class="num" id="LN3853">3853</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3854"><td class="num" id="LN3854">3854</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="3855"><td class="num" id="LN3855">3855</td><td class="line">file_close_tab_callback (GtkAction *action,</td></tr>
+<tr class="codeline" data-linenumber="3856"><td class="num" id="LN3856">3856</td><td class="line"> TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="3857"><td class="num" id="LN3857">3857</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="3858"><td class="num" id="LN3858">3858</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="3859"><td class="num" id="LN3859">3859</td><td class="line"> TerminalScreen *active_screen = priv-&gt;active_screen;</td></tr>
+<tr class="codeline" data-linenumber="3860"><td class="num" id="LN3860">3860</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3861"><td class="num" id="LN3861">3861</td><td class="line"> <span class='keyword'>if</span> (!active_screen)</td></tr>
+<tr class="codeline" data-linenumber="3862"><td class="num" id="LN3862">3862</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="3863"><td class="num" id="LN3863">3863</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3864"><td class="num" id="LN3864">3864</td><td class="line"> <span class='keyword'>if</span> (confirm_close_window_or_tab (window, active_screen))</td></tr>
+<tr class="codeline" data-linenumber="3865"><td class="num" id="LN3865">3865</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="3866"><td class="num" id="LN3866">3866</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3867"><td class="num" id="LN3867">3867</td><td class="line"> terminal_window_remove_screen (window, active_screen);</td></tr>
+<tr class="codeline" data-linenumber="3868"><td class="num" id="LN3868">3868</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="3869"><td class="num" id="LN3869">3869</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3870"><td class="num" id="LN3870">3870</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="3871"><td class="num" id="LN3871">3871</td><td class="line">edit_copy_callback (GtkAction *action,</td></tr>
+<tr class="codeline" data-linenumber="3872"><td class="num" id="LN3872">3872</td><td class="line"> TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="3873"><td class="num" id="LN3873">3873</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="3874"><td class="num" id="LN3874">3874</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="3875"><td class="num" id="LN3875">3875</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3876"><td class="num" id="LN3876">3876</td><td class="line"> <span class='keyword'>if</span> (!priv-&gt;active_screen)</td></tr>
+<tr class="codeline" data-linenumber="3877"><td class="num" id="LN3877">3877</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="3878"><td class="num" id="LN3878">3878</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3879"><td class="num" id="LN3879">3879</td><td class="line"><span class='directive'>#if <span class='macro'>VTE_CHECK_VERSION (0, 50, 0)<span class='macro_popup'>((0) &gt; (0) || ((0) == (0) &amp;&amp; (74) &gt; (50)) || ((<br>0) == (0) &amp;&amp; (74) == (50) &amp;&amp; (2) &gt;= (0)))</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="3880"><td class="num" id="LN3880">3880</td><td class="line"> vte_terminal_copy_clipboard_format (<span class='macro'>VTE_TERMINAL (priv-&gt;active_screen)<span class='macro_popup'>((((VteTerminal*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((priv-&gt;active_screen)), ((vte_terminal_get_type())))))<br>)</span></span>, VTE_FORMAT_TEXT);</td></tr>
+<tr class="codeline" data-linenumber="3881"><td class="num" id="LN3881">3881</td><td class="line"><span class='directive'>#else</span></td></tr>
+<tr class="codeline" data-linenumber="3882"><td class="num" id="LN3882">3882</td><td class="line"> vte_terminal_copy_clipboard (<span class='macro'>VTE_TERMINAL (priv-&gt;active_screen)<span class='macro_popup'>((((VteTerminal*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((priv-&gt;active_screen)), ((vte_terminal_get_type())))))<br>)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="3883"><td class="num" id="LN3883">3883</td><td class="line"><span class='directive'>#endif</span></td></tr>
+<tr class="codeline" data-linenumber="3884"><td class="num" id="LN3884">3884</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="3885"><td class="num" id="LN3885">3885</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3886"><td class="num" id="LN3886">3886</td><td class="line"><span class='keyword'>typedef</span> <span class='keyword'>struct</span></td></tr>
+<tr class="codeline" data-linenumber="3887"><td class="num" id="LN3887">3887</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="3888"><td class="num" id="LN3888">3888</td><td class="line"> TerminalScreen *screen;</td></tr>
+<tr class="codeline" data-linenumber="3889"><td class="num" id="LN3889">3889</td><td class="line"> gboolean uris_as_paths;</td></tr>
+<tr class="codeline" data-linenumber="3890"><td class="num" id="LN3890">3890</td><td class="line">} PasteData;</td></tr>
+<tr class="codeline" data-linenumber="3891"><td class="num" id="LN3891">3891</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3892"><td class="num" id="LN3892">3892</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="3893"><td class="num" id="LN3893">3893</td><td class="line">clipboard_uris_received_cb (GtkClipboard *clipboard,</td></tr>
+<tr class="codeline" data-linenumber="3894"><td class="num" id="LN3894">3894</td><td class="line"> <span class='comment'>/* const */</span> <span class='keyword'>char</span> **uris,</td></tr>
+<tr class="codeline" data-linenumber="3895"><td class="num" id="LN3895">3895</td><td class="line"> PasteData *data)</td></tr>
+<tr class="codeline" data-linenumber="3896"><td class="num" id="LN3896">3896</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="3897"><td class="num" id="LN3897">3897</td><td class="line"> <span class='keyword'>char</span> *text;</td></tr>
+<tr class="codeline" data-linenumber="3898"><td class="num" id="LN3898">3898</td><td class="line"> gsize len;</td></tr>
+<tr class="codeline" data-linenumber="3899"><td class="num" id="LN3899">3899</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3900"><td class="num" id="LN3900">3900</td><td class="line"> <span class='keyword'>if</span> (!uris)</td></tr>
+<tr class="codeline" data-linenumber="3901"><td class="num" id="LN3901">3901</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="3902"><td class="num" id="LN3902">3902</td><td class="line"> g_object_unref (data-&gt;screen);</td></tr>
+<tr class="codeline" data-linenumber="3903"><td class="num" id="LN3903">3903</td><td class="line"> <span class='macro'>g_slice_free (PasteData, data)<span class='macro_popup'>do { if (1) g_slice_free1 (sizeof (PasteData), (data)); else (<br>void) ((PasteData*) 0 == (data)); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3904"><td class="num" id="LN3904">3904</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="3905"><td class="num" id="LN3905">3905</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="3906"><td class="num" id="LN3906">3906</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3907"><td class="num" id="LN3907">3907</td><td class="line"> <span class='comment'>/* This potentially modifies the strings in |uris| but that's ok */</span></td></tr>
+<tr class="codeline" data-linenumber="3908"><td class="num" id="LN3908">3908</td><td class="line"> terminal_util_transform_uris_to_quoted_fuse_paths (uris);</td></tr>
+<tr class="codeline" data-linenumber="3909"><td class="num" id="LN3909">3909</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3910"><td class="num" id="LN3910">3910</td><td class="line"> text = terminal_util_concat_uris (uris, &amp;len);</td></tr>
+<tr class="codeline" data-linenumber="3911"><td class="num" id="LN3911">3911</td><td class="line"> vte_terminal_feed_child (<span class='macro'>VTE_TERMINAL (data-&gt;screen)<span class='macro_popup'>((((VteTerminal*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((data-&gt;screen)), ((vte_terminal_get_type()))))))</span></span>, text, len);</td></tr>
+<tr class="codeline" data-linenumber="3912"><td class="num" id="LN3912">3912</td><td class="line"> g_free (text);</td></tr>
+<tr class="codeline" data-linenumber="3913"><td class="num" id="LN3913">3913</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3914"><td class="num" id="LN3914">3914</td><td class="line"> g_object_unref (data-&gt;screen);</td></tr>
+<tr class="codeline" data-linenumber="3915"><td class="num" id="LN3915">3915</td><td class="line"> <span class='macro'>g_slice_free (PasteData, data)<span class='macro_popup'>do { if (1) g_slice_free1 (sizeof (PasteData), (data)); else (<br>void) ((PasteData*) 0 == (data)); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3916"><td class="num" id="LN3916">3916</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="3917"><td class="num" id="LN3917">3917</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3918"><td class="num" id="LN3918">3918</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="3919"><td class="num" id="LN3919">3919</td><td class="line">clipboard_targets_received_cb (GtkClipboard *clipboard,</td></tr>
+<tr class="codeline" data-linenumber="3920"><td class="num" id="LN3920">3920</td><td class="line"> GdkAtom *targets,</td></tr>
+<tr class="codeline" data-linenumber="3921"><td class="num" id="LN3921">3921</td><td class="line"> <span class='keyword'>int</span> n_targets,</td></tr>
+<tr class="codeline" data-linenumber="3922"><td class="num" id="LN3922">3922</td><td class="line"> PasteData *data)</td></tr>
+<tr class="codeline" data-linenumber="3923"><td class="num" id="LN3923">3923</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="3924"><td class="num" id="LN3924">3924</td><td class="line"> <span class='keyword'>if</span> (!targets)</td></tr>
+<tr class="codeline" data-linenumber="3925"><td class="num" id="LN3925">3925</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="3926"><td class="num" id="LN3926">3926</td><td class="line"> g_object_unref (data-&gt;screen);</td></tr>
+<tr class="codeline" data-linenumber="3927"><td class="num" id="LN3927">3927</td><td class="line"> <span class='macro'>g_slice_free (PasteData, data)<span class='macro_popup'>do { if (1) g_slice_free1 (sizeof (PasteData), (data)); else (<br>void) ((PasteData*) 0 == (data)); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3928"><td class="num" id="LN3928">3928</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="3929"><td class="num" id="LN3929">3929</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="3930"><td class="num" id="LN3930">3930</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3931"><td class="num" id="LN3931">3931</td><td class="line"> <span class='keyword'>if</span> (data-&gt;uris_as_paths &amp;&amp; gtk_targets_include_uri (targets, n_targets))</td></tr>
+<tr class="codeline" data-linenumber="3932"><td class="num" id="LN3932">3932</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="3933"><td class="num" id="LN3933">3933</td><td class="line"> gtk_clipboard_request_uris (clipboard,</td></tr>
+<tr class="codeline" data-linenumber="3934"><td class="num" id="LN3934">3934</td><td class="line"> (GtkClipboardURIReceivedFunc) clipboard_uris_received_cb,</td></tr>
+<tr class="codeline" data-linenumber="3935"><td class="num" id="LN3935">3935</td><td class="line"> data);</td></tr>
+<tr class="codeline" data-linenumber="3936"><td class="num" id="LN3936">3936</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="3937"><td class="num" id="LN3937">3937</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="3938"><td class="num" id="LN3938">3938</td><td class="line"> <span class='keyword'>else</span> <span class='comment'>/* if (gtk_targets_include_text (targets, n_targets)) */</span></td></tr>
+<tr class="codeline" data-linenumber="3939"><td class="num" id="LN3939">3939</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="3940"><td class="num" id="LN3940">3940</td><td class="line"> vte_terminal_paste_clipboard (<span class='macro'>VTE_TERMINAL (data-&gt;screen)<span class='macro_popup'>((((VteTerminal*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((data-&gt;screen)), ((vte_terminal_get_type()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="3941"><td class="num" id="LN3941">3941</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="3942"><td class="num" id="LN3942">3942</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3943"><td class="num" id="LN3943">3943</td><td class="line"> g_object_unref (data-&gt;screen);</td></tr>
+<tr class="codeline" data-linenumber="3944"><td class="num" id="LN3944">3944</td><td class="line"> <span class='macro'>g_slice_free (PasteData, data)<span class='macro_popup'>do { if (1) g_slice_free1 (sizeof (PasteData), (data)); else (<br>void) ((PasteData*) 0 == (data)); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3945"><td class="num" id="LN3945">3945</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="3946"><td class="num" id="LN3946">3946</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3947"><td class="num" id="LN3947">3947</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="3948"><td class="num" id="LN3948">3948</td><td class="line">edit_paste_callback (GtkAction *action,</td></tr>
+<tr class="codeline" data-linenumber="3949"><td class="num" id="LN3949">3949</td><td class="line"> TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="3950"><td class="num" id="LN3950">3950</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="3951"><td class="num" id="LN3951">3951</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="3952"><td class="num" id="LN3952">3952</td><td class="line"> GtkClipboard *clipboard;</td></tr>
+<tr class="codeline" data-linenumber="3953"><td class="num" id="LN3953">3953</td><td class="line"> PasteData *data;</td></tr>
+<tr class="codeline" data-linenumber="3954"><td class="num" id="LN3954">3954</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *name;</td></tr>
+<tr class="codeline" data-linenumber="3955"><td class="num" id="LN3955">3955</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3956"><td class="num" id="LN3956">3956</td><td class="line"> <span class='keyword'>if</span> (!priv-&gt;active_screen)</td></tr>
+<tr class="codeline" data-linenumber="3957"><td class="num" id="LN3957">3957</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="3958"><td class="num" id="LN3958">3958</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3959"><td class="num" id="LN3959">3959</td><td class="line"> clipboard = gtk_widget_get_clipboard (<span class='macro'>GTK_WIDGET (window)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_widget_get_type ()))))))</span></span>, <span class='macro'>GDK_SELECTION_CLIPBOARD<span class='macro_popup'>((GdkAtom)((gpointer) (gulong) (69)))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="3960"><td class="num" id="LN3960">3960</td><td class="line"> <span class='macro'>G_GNUC_BEGIN_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic push
+ clang diagnostic ignored "-Wdeprecated-declarations"<br>
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3961"><td class="num" id="LN3961">3961</td><td class="line"> name = gtk_action_get_name (action);</td></tr>
+<tr class="codeline" data-linenumber="3962"><td class="num" id="LN3962">3962</td><td class="line"> <span class='macro'>G_GNUC_END_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic pop
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3963"><td class="num" id="LN3963">3963</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3964"><td class="num" id="LN3964">3964</td><td class="line"> data = <span class='macro'>g_slice_new (PasteData)<span class='macro_popup'>((PasteData*) g_slice_alloc (sizeof (PasteData)))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3965"><td class="num" id="LN3965">3965</td><td class="line"> data-&gt;screen = <span class='macro'>g_object_ref (priv-&gt;active_screen)<span class='macro_popup'>((__typeof__ (priv-&gt;active_screen)) (g_object_ref) (priv-&gt;<br>active_screen))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="3966"><td class="num" id="LN3966">3966</td><td class="line"> data-&gt;uris_as_paths = (name == <span class='macro'>I_(<span class='string_literal'>"EditPasteURIPaths"</span>)<span class='macro_popup'>g_intern_static_string ("EditPasteURIPaths")</span></span> || name == <span class='macro'>I_(<span class='string_literal'>"PopupPasteURIPaths"</span>)<span class='macro_popup'>g_intern_static_string ("PopupPasteURIPaths")</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="3967"><td class="num" id="LN3967">3967</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3968"><td class="num" id="LN3968">3968</td><td class="line"> gtk_clipboard_request_targets (clipboard,</td></tr>
+<tr class="codeline" data-linenumber="3969"><td class="num" id="LN3969">3969</td><td class="line"> (GtkClipboardTargetsReceivedFunc) clipboard_targets_received_cb,</td></tr>
+<tr class="codeline" data-linenumber="3970"><td class="num" id="LN3970">3970</td><td class="line"> data);</td></tr>
+<tr class="codeline" data-linenumber="3971"><td class="num" id="LN3971">3971</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="3972"><td class="num" id="LN3972">3972</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3973"><td class="num" id="LN3973">3973</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="3974"><td class="num" id="LN3974">3974</td><td class="line">edit_select_all_callback (GtkAction *action,</td></tr>
+<tr class="codeline" data-linenumber="3975"><td class="num" id="LN3975">3975</td><td class="line"> TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="3976"><td class="num" id="LN3976">3976</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="3977"><td class="num" id="LN3977">3977</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="3978"><td class="num" id="LN3978">3978</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3979"><td class="num" id="LN3979">3979</td><td class="line"> <span class='keyword'>if</span> (!priv-&gt;active_screen)</td></tr>
+<tr class="codeline" data-linenumber="3980"><td class="num" id="LN3980">3980</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="3981"><td class="num" id="LN3981">3981</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3982"><td class="num" id="LN3982">3982</td><td class="line"> vte_terminal_select_all (<span class='macro'>VTE_TERMINAL (priv-&gt;active_screen)<span class='macro_popup'>((((VteTerminal*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((priv-&gt;active_screen)), ((vte_terminal_get_type())))))<br>)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="3983"><td class="num" id="LN3983">3983</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="3984"><td class="num" id="LN3984">3984</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3985"><td class="num" id="LN3985">3985</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="3986"><td class="num" id="LN3986">3986</td><td class="line">edit_keybindings_callback (GtkAction *action,</td></tr>
+<tr class="codeline" data-linenumber="3987"><td class="num" id="LN3987">3987</td><td class="line"> TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="3988"><td class="num" id="LN3988">3988</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="3989"><td class="num" id="LN3989">3989</td><td class="line"> terminal_app_edit_keybindings (terminal_app_get (),</td></tr>
+<tr class="codeline" data-linenumber="3990"><td class="num" id="LN3990">3990</td><td class="line"> <span class='macro'>GTK_WINDOW (window)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_window_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="3991"><td class="num" id="LN3991">3991</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="3992"><td class="num" id="LN3992">3992</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3993"><td class="num" id="LN3993">3993</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="3994"><td class="num" id="LN3994">3994</td><td class="line">edit_current_profile_callback (GtkAction *action,</td></tr>
+<tr class="codeline" data-linenumber="3995"><td class="num" id="LN3995">3995</td><td class="line"> TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="3996"><td class="num" id="LN3996">3996</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="3997"><td class="num" id="LN3997">3997</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="3998"><td class="num" id="LN3998">3998</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3999"><td class="num" id="LN3999">3999</td><td class="line"> terminal_app_edit_profile (terminal_app_get (),</td></tr>
+<tr class="codeline" data-linenumber="4000"><td class="num" id="LN4000">4000</td><td class="line"> terminal_screen_get_profile (priv-&gt;active_screen),</td></tr>
+<tr class="codeline" data-linenumber="4001"><td class="num" id="LN4001">4001</td><td class="line"> <span class='macro'>GTK_WINDOW (window)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_window_get_type ()))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="4002"><td class="num" id="LN4002">4002</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="4003"><td class="num" id="LN4003">4003</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="4004"><td class="num" id="LN4004">4004</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4005"><td class="num" id="LN4005">4005</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="4006"><td class="num" id="LN4006">4006</td><td class="line">file_new_profile_callback (GtkAction *action,</td></tr>
+<tr class="codeline" data-linenumber="4007"><td class="num" id="LN4007">4007</td><td class="line"> TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="4008"><td class="num" id="LN4008">4008</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="4009"><td class="num" id="LN4009">4009</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="4010"><td class="num" id="LN4010">4010</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4011"><td class="num" id="LN4011">4011</td><td class="line"> terminal_app_new_profile (terminal_app_get (),</td></tr>
+<tr class="codeline" data-linenumber="4012"><td class="num" id="LN4012">4012</td><td class="line"> terminal_screen_get_profile (priv-&gt;active_screen),</td></tr>
+<tr class="codeline" data-linenumber="4013"><td class="num" id="LN4013">4013</td><td class="line"> <span class='macro'>GTK_WINDOW (window)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_window_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="4014"><td class="num" id="LN4014">4014</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="4015"><td class="num" id="LN4015">4015</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4016"><td class="num" id="LN4016">4016</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="4017"><td class="num" id="LN4017">4017</td><td class="line">edit_profiles_callback (GtkAction *action,</td></tr>
+<tr class="codeline" data-linenumber="4018"><td class="num" id="LN4018">4018</td><td class="line"> TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="4019"><td class="num" id="LN4019">4019</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="4020"><td class="num" id="LN4020">4020</td><td class="line"> terminal_app_manage_profiles (terminal_app_get (),</td></tr>
+<tr class="codeline" data-linenumber="4021"><td class="num" id="LN4021">4021</td><td class="line"> <span class='macro'>GTK_WINDOW (window)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_window_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="4022"><td class="num" id="LN4022">4022</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="4023"><td class="num" id="LN4023">4023</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4024"><td class="num" id="LN4024">4024</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="4025"><td class="num" id="LN4025">4025</td><td class="line">view_menubar_toggled_callback (GtkToggleAction *action,</td></tr>
+<tr class="codeline" data-linenumber="4026"><td class="num" id="LN4026">4026</td><td class="line"> TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="4027"><td class="num" id="LN4027">4027</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="4028"><td class="num" id="LN4028">4028</td><td class="line"> <span class='macro'>G_GNUC_BEGIN_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic push
+ clang diagnostic ignored "-Wdeprecated-declarations"<br>
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="4029"><td class="num" id="LN4029">4029</td><td class="line"> terminal_window_set_menubar_visible (window, gtk_toggle_action_get_active (action));</td></tr>
+<tr class="codeline" data-linenumber="4030"><td class="num" id="LN4030">4030</td><td class="line"> <span class='macro'>G_GNUC_END_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic pop
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="4031"><td class="num" id="LN4031">4031</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="4032"><td class="num" id="LN4032">4032</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4033"><td class="num" id="LN4033">4033</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="4034"><td class="num" id="LN4034">4034</td><td class="line">view_fullscreen_toggled_callback (GtkToggleAction *action,</td></tr>
+<tr class="codeline" data-linenumber="4035"><td class="num" id="LN4035">4035</td><td class="line"> TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="4036"><td class="num" id="LN4036">4036</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="4037"><td class="num" id="LN4037">4037</td><td class="line"> gboolean toggle_action_check;</td></tr>
+<tr class="codeline" data-linenumber="4038"><td class="num" id="LN4038">4038</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4039"><td class="num" id="LN4039">4039</td><td class="line"> <span class='macro'>g_return_if_fail (gtk_widget_get_realized (GTK_WIDGET (window)))<span class='macro_popup'>do { if ((gtk_widget_get_realized (((((GtkWidget*) (void *) g_type_check_instance_cast<br> ((GTypeInstance*) ((window)), ((gtk_widget_get_type ()))))))<br>))) { } else { g_return_if_fail_warning (((gchar*) 0), ((const<br> char*) (__func__)), "gtk_widget_get_realized (GTK_WIDGET (window))"<br>); return; } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="4040"><td class="num" id="LN4040">4040</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4041"><td class="num" id="LN4041">4041</td><td class="line"> <span class='macro'>G_GNUC_BEGIN_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic push
+ clang diagnostic ignored "-Wdeprecated-declarations"<br>
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="4042"><td class="num" id="LN4042">4042</td><td class="line"> toggle_action_check = gtk_toggle_action_get_active (action);</td></tr>
+<tr class="codeline" data-linenumber="4043"><td class="num" id="LN4043">4043</td><td class="line"> <span class='macro'>G_GNUC_END_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic pop
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="4044"><td class="num" id="LN4044">4044</td><td class="line"> <span class='keyword'>if</span> (toggle_action_check)</td></tr>
+<tr class="codeline" data-linenumber="4045"><td class="num" id="LN4045">4045</td><td class="line"> gtk_window_fullscreen (<span class='macro'>GTK_WINDOW (window)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_window_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="4046"><td class="num" id="LN4046">4046</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="4047"><td class="num" id="LN4047">4047</td><td class="line"> gtk_window_unfullscreen (<span class='macro'>GTK_WINDOW (window)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_window_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="4048"><td class="num" id="LN4048">4048</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="4049"><td class="num" id="LN4049">4049</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4050"><td class="num" id="LN4050">4050</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>const</span> <span class='keyword'>double</span> zoom_factors[] =</td></tr>
+<tr class="codeline" data-linenumber="4051"><td class="num" id="LN4051">4051</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="4052"><td class="num" id="LN4052">4052</td><td class="line"> <span class='macro'>TERMINAL_SCALE_MINIMUM<span class='macro_popup'>((((((double)0.5787037037037)/1.2)/1.2)/1.2)/1.2)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="4053"><td class="num" id="LN4053">4053</td><td class="line"> <span class='macro'>TERMINAL_SCALE_XXXXX_SMALL<span class='macro_popup'>(((((double)0.5787037037037)/1.2)/1.2)/1.2)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="4054"><td class="num" id="LN4054">4054</td><td class="line"> <span class='macro'>TERMINAL_SCALE_XXXX_SMALL<span class='macro_popup'>((((double)0.5787037037037)/1.2)/1.2)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="4055"><td class="num" id="LN4055">4055</td><td class="line"> <span class='macro'>TERMINAL_SCALE_XXX_SMALL<span class='macro_popup'>(((double)0.5787037037037)/1.2)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="4056"><td class="num" id="LN4056">4056</td><td class="line"> <span class='macro'>PANGO_SCALE_XX_SMALL<span class='macro_popup'>((double)0.5787037037037)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="4057"><td class="num" id="LN4057">4057</td><td class="line"> <span class='macro'>PANGO_SCALE_X_SMALL<span class='macro_popup'>((double)0.6944444444444)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="4058"><td class="num" id="LN4058">4058</td><td class="line"> <span class='macro'>PANGO_SCALE_SMALL<span class='macro_popup'>((double)0.8333333333333)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="4059"><td class="num" id="LN4059">4059</td><td class="line"> <span class='macro'>PANGO_SCALE_MEDIUM<span class='macro_popup'>((double)1.0)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="4060"><td class="num" id="LN4060">4060</td><td class="line"> <span class='macro'>PANGO_SCALE_LARGE<span class='macro_popup'>((double)1.2)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="4061"><td class="num" id="LN4061">4061</td><td class="line"> <span class='macro'>PANGO_SCALE_X_LARGE<span class='macro_popup'>((double)1.44)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="4062"><td class="num" id="LN4062">4062</td><td class="line"> <span class='macro'>PANGO_SCALE_XX_LARGE<span class='macro_popup'>((double)1.728)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="4063"><td class="num" id="LN4063">4063</td><td class="line"> <span class='macro'>TERMINAL_SCALE_XXX_LARGE<span class='macro_popup'>(((double)1.728)*1.2)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="4064"><td class="num" id="LN4064">4064</td><td class="line"> <span class='macro'>TERMINAL_SCALE_XXXX_LARGE<span class='macro_popup'>((((double)1.728)*1.2)*1.2)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="4065"><td class="num" id="LN4065">4065</td><td class="line"> <span class='macro'>TERMINAL_SCALE_XXXXX_LARGE<span class='macro_popup'>(((((double)1.728)*1.2)*1.2)*1.2)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="4066"><td class="num" id="LN4066">4066</td><td class="line"> <span class='macro'>TERMINAL_SCALE_MAXIMUM<span class='macro_popup'>((((((double)1.728)*1.2)*1.2)*1.2)*1.2)</span></span></td></tr>
+<tr class="codeline" data-linenumber="4067"><td class="num" id="LN4067">4067</td><td class="line">};</td></tr>
+<tr class="codeline" data-linenumber="4068"><td class="num" id="LN4068">4068</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4069"><td class="num" id="LN4069">4069</td><td class="line"><span class='keyword'>static</span> gboolean</td></tr>
+<tr class="codeline" data-linenumber="4070"><td class="num" id="LN4070">4070</td><td class="line">find_larger_zoom_factor (<span class='keyword'>double</span> current,</td></tr>
+<tr class="codeline" data-linenumber="4071"><td class="num" id="LN4071">4071</td><td class="line"> <span class='keyword'>double</span> *found)</td></tr>
+<tr class="codeline" data-linenumber="4072"><td class="num" id="LN4072">4072</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="4073"><td class="num" id="LN4073">4073</td><td class="line"> guint i;</td></tr>
+<tr class="codeline" data-linenumber="4074"><td class="num" id="LN4074">4074</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4075"><td class="num" id="LN4075">4075</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; <span class='macro'>G_N_ELEMENTS (zoom_factors)<span class='macro_popup'>(sizeof (zoom_factors) / sizeof ((zoom_factors)[0]))</span></span>; ++i)</td></tr>
+<tr class="codeline" data-linenumber="4076"><td class="num" id="LN4076">4076</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="4077"><td class="num" id="LN4077">4077</td><td class="line"> <span class='comment'>/* Find a font that's larger than this one */</span></td></tr>
+<tr class="codeline" data-linenumber="4078"><td class="num" id="LN4078">4078</td><td class="line"> <span class='keyword'>if</span> ((zoom_factors[i] - current) &gt; 1e-6)</td></tr>
+<tr class="codeline" data-linenumber="4079"><td class="num" id="LN4079">4079</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="4080"><td class="num" id="LN4080">4080</td><td class="line"> *found = zoom_factors[i];</td></tr>
+<tr class="codeline" data-linenumber="4081"><td class="num" id="LN4081">4081</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="4082"><td class="num" id="LN4082">4082</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="4083"><td class="num" id="LN4083">4083</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="4084"><td class="num" id="LN4084">4084</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4085"><td class="num" id="LN4085">4085</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="4086"><td class="num" id="LN4086">4086</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="4087"><td class="num" id="LN4087">4087</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4088"><td class="num" id="LN4088">4088</td><td class="line"><span class='keyword'>static</span> gboolean</td></tr>
+<tr class="codeline" data-linenumber="4089"><td class="num" id="LN4089">4089</td><td class="line">find_smaller_zoom_factor (<span class='keyword'>double</span> current,</td></tr>
+<tr class="codeline" data-linenumber="4090"><td class="num" id="LN4090">4090</td><td class="line"> <span class='keyword'>double</span> *found)</td></tr>
+<tr class="codeline" data-linenumber="4091"><td class="num" id="LN4091">4091</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="4092"><td class="num" id="LN4092">4092</td><td class="line"> <span class='keyword'>int</span> i;</td></tr>
+<tr class="codeline" data-linenumber="4093"><td class="num" id="LN4093">4093</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4094"><td class="num" id="LN4094">4094</td><td class="line"> i = (<span class='keyword'>int</span>) <span class='macro'>G_N_ELEMENTS (zoom_factors)<span class='macro_popup'>(sizeof (zoom_factors) / sizeof ((zoom_factors)[0]))</span></span> - 1;</td></tr>
+<tr class="codeline" data-linenumber="4095"><td class="num" id="LN4095">4095</td><td class="line"> <span class='keyword'>while</span> (i &gt;= 0)</td></tr>
+<tr class="codeline" data-linenumber="4096"><td class="num" id="LN4096">4096</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="4097"><td class="num" id="LN4097">4097</td><td class="line"> <span class='comment'>/* Find a font that's smaller than this one */</span></td></tr>
+<tr class="codeline" data-linenumber="4098"><td class="num" id="LN4098">4098</td><td class="line"> <span class='keyword'>if</span> ((current - zoom_factors[i]) &gt; 1e-6)</td></tr>
+<tr class="codeline" data-linenumber="4099"><td class="num" id="LN4099">4099</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="4100"><td class="num" id="LN4100">4100</td><td class="line"> *found = zoom_factors[i];</td></tr>
+<tr class="codeline" data-linenumber="4101"><td class="num" id="LN4101">4101</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="4102"><td class="num" id="LN4102">4102</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="4103"><td class="num" id="LN4103">4103</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4104"><td class="num" id="LN4104">4104</td><td class="line"> --i;</td></tr>
+<tr class="codeline" data-linenumber="4105"><td class="num" id="LN4105">4105</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="4106"><td class="num" id="LN4106">4106</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4107"><td class="num" id="LN4107">4107</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="4108"><td class="num" id="LN4108">4108</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="4109"><td class="num" id="LN4109">4109</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4110"><td class="num" id="LN4110">4110</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="4111"><td class="num" id="LN4111">4111</td><td class="line">view_zoom_in_callback (GtkAction *action,</td></tr>
+<tr class="codeline" data-linenumber="4112"><td class="num" id="LN4112">4112</td><td class="line"> TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="4113"><td class="num" id="LN4113">4113</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="4114"><td class="num" id="LN4114">4114</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="4115"><td class="num" id="LN4115">4115</td><td class="line"> <span class='keyword'>double</span> current;</td></tr>
+<tr class="codeline" data-linenumber="4116"><td class="num" id="LN4116">4116</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4117"><td class="num" id="LN4117">4117</td><td class="line"> <span class='keyword'>if</span> (priv-&gt;active_screen == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="4118"><td class="num" id="LN4118">4118</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="4119"><td class="num" id="LN4119">4119</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4120"><td class="num" id="LN4120">4120</td><td class="line"> current = terminal_screen_get_font_scale (priv-&gt;active_screen);</td></tr>
+<tr class="codeline" data-linenumber="4121"><td class="num" id="LN4121">4121</td><td class="line"> <span class='keyword'>if</span> (!find_larger_zoom_factor (current, &amp;current))</td></tr>
+<tr class="codeline" data-linenumber="4122"><td class="num" id="LN4122">4122</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="4123"><td class="num" id="LN4123">4123</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4124"><td class="num" id="LN4124">4124</td><td class="line"> terminal_screen_set_font_scale (priv-&gt;active_screen, current);</td></tr>
+<tr class="codeline" data-linenumber="4125"><td class="num" id="LN4125">4125</td><td class="line"> terminal_window_update_zoom_sensitivity (window);</td></tr>
+<tr class="codeline" data-linenumber="4126"><td class="num" id="LN4126">4126</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="4127"><td class="num" id="LN4127">4127</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4128"><td class="num" id="LN4128">4128</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="4129"><td class="num" id="LN4129">4129</td><td class="line">view_zoom_out_callback (GtkAction *action,</td></tr>
+<tr class="codeline" data-linenumber="4130"><td class="num" id="LN4130">4130</td><td class="line"> TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="4131"><td class="num" id="LN4131">4131</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="4132"><td class="num" id="LN4132">4132</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="4133"><td class="num" id="LN4133">4133</td><td class="line"> <span class='keyword'>double</span> current;</td></tr>
+<tr class="codeline" data-linenumber="4134"><td class="num" id="LN4134">4134</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4135"><td class="num" id="LN4135">4135</td><td class="line"> <span class='keyword'>if</span> (priv-&gt;active_screen == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="4136"><td class="num" id="LN4136">4136</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="4137"><td class="num" id="LN4137">4137</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4138"><td class="num" id="LN4138">4138</td><td class="line"> current = terminal_screen_get_font_scale (priv-&gt;active_screen);</td></tr>
+<tr class="codeline" data-linenumber="4139"><td class="num" id="LN4139">4139</td><td class="line"> <span class='keyword'>if</span> (!find_smaller_zoom_factor (current, &amp;current))</td></tr>
+<tr class="codeline" data-linenumber="4140"><td class="num" id="LN4140">4140</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="4141"><td class="num" id="LN4141">4141</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4142"><td class="num" id="LN4142">4142</td><td class="line"> terminal_screen_set_font_scale (priv-&gt;active_screen, current);</td></tr>
+<tr class="codeline" data-linenumber="4143"><td class="num" id="LN4143">4143</td><td class="line"> terminal_window_update_zoom_sensitivity (window);</td></tr>
+<tr class="codeline" data-linenumber="4144"><td class="num" id="LN4144">4144</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="4145"><td class="num" id="LN4145">4145</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4146"><td class="num" id="LN4146">4146</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="4147"><td class="num" id="LN4147">4147</td><td class="line">view_zoom_normal_callback (GtkAction *action,</td></tr>
+<tr class="codeline" data-linenumber="4148"><td class="num" id="LN4148">4148</td><td class="line"> TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="4149"><td class="num" id="LN4149">4149</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="4150"><td class="num" id="LN4150">4150</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="4151"><td class="num" id="LN4151">4151</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4152"><td class="num" id="LN4152">4152</td><td class="line"> <span class='keyword'>if</span> (priv-&gt;active_screen == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="4153"><td class="num" id="LN4153">4153</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="4154"><td class="num" id="LN4154">4154</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4155"><td class="num" id="LN4155">4155</td><td class="line"> terminal_screen_set_font_scale (priv-&gt;active_screen, <span class='macro'>PANGO_SCALE_MEDIUM<span class='macro_popup'>((double)1.0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="4156"><td class="num" id="LN4156">4156</td><td class="line"> terminal_window_update_zoom_sensitivity (window);</td></tr>
+<tr class="codeline" data-linenumber="4157"><td class="num" id="LN4157">4157</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="4158"><td class="num" id="LN4158">4158</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4159"><td class="num" id="LN4159">4159</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="4160"><td class="num" id="LN4160">4160</td><td class="line">search_find_response_callback (GtkWidget *dialog,</td></tr>
+<tr class="codeline" data-linenumber="4161"><td class="num" id="LN4161">4161</td><td class="line"> <span class='keyword'>int</span> response,</td></tr>
+<tr class="codeline" data-linenumber="4162"><td class="num" id="LN4162">4162</td><td class="line"> gpointer user_data)</td></tr>
+<tr class="codeline" data-linenumber="4163"><td class="num" id="LN4163">4163</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="4164"><td class="num" id="LN4164">4164</td><td class="line"> TerminalWindow *window = <span class='macro'>TERMINAL_WINDOW (user_data)<span class='macro_popup'>((((TerminalWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((user_data)), ((terminal_window_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="4165"><td class="num" id="LN4165">4165</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="4166"><td class="num" id="LN4166">4166</td><td class="line"> TerminalSearchFlags flags;</td></tr>
+<tr class="codeline" data-linenumber="4167"><td class="num" id="LN4167">4167</td><td class="line"> VteRegex *regex;</td></tr>
+<tr class="codeline" data-linenumber="4168"><td class="num" id="LN4168">4168</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4169"><td class="num" id="LN4169">4169</td><td class="line"> <span class='keyword'>if</span> (response != GTK_RESPONSE_ACCEPT)</td></tr>
+<tr class="codeline" data-linenumber="4170"><td class="num" id="LN4170">4170</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="4171"><td class="num" id="LN4171">4171</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4172"><td class="num" id="LN4172">4172</td><td class="line"> <span class='keyword'>if</span> (<span class='macro'>G_UNLIKELY (!priv-&gt;active_screen)<span class='macro_popup'>(!priv-&gt;active_screen)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="4173"><td class="num" id="LN4173">4173</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="4174"><td class="num" id="LN4174">4174</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4175"><td class="num" id="LN4175">4175</td><td class="line"> regex = terminal_search_dialog_get_regex (dialog);</td></tr>
+<tr class="codeline" data-linenumber="4176"><td class="num" id="LN4176">4176</td><td class="line"> <span class='macro'>g_return_if_fail (regex != NULL)<span class='macro_popup'>do { if ((regex != ((void*)0))) { } else { g_return_if_fail_warning<br> (((gchar*) 0), ((const char*) (__func__)), "regex != NULL");<br> return; } } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="4177"><td class="num" id="LN4177">4177</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4178"><td class="num" id="LN4178">4178</td><td class="line"> flags = terminal_search_dialog_get_search_flags (dialog);</td></tr>
+<tr class="codeline" data-linenumber="4179"><td class="num" id="LN4179">4179</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4180"><td class="num" id="LN4180">4180</td><td class="line"> vte_terminal_search_set_regex (<span class='macro'>VTE_TERMINAL (priv-&gt;active_screen)<span class='macro_popup'>((((VteTerminal*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((priv-&gt;active_screen)), ((vte_terminal_get_type())))))<br>)</span></span>, regex, 0);</td></tr>
+<tr class="codeline" data-linenumber="4181"><td class="num" id="LN4181">4181</td><td class="line"> vte_terminal_search_set_wrap_around (<span class='macro'>VTE_TERMINAL (priv-&gt;active_screen)<span class='macro_popup'>((((VteTerminal*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((priv-&gt;active_screen)), ((vte_terminal_get_type())))))<br>)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="4182"><td class="num" id="LN4182">4182</td><td class="line"> (flags &amp; TERMINAL_SEARCH_FLAG_WRAP_AROUND));</td></tr>
+<tr class="codeline" data-linenumber="4183"><td class="num" id="LN4183">4183</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4184"><td class="num" id="LN4184">4184</td><td class="line"> <span class='keyword'>if</span> (flags &amp; TERMINAL_SEARCH_FLAG_BACKWARDS)</td></tr>
+<tr class="codeline" data-linenumber="4185"><td class="num" id="LN4185">4185</td><td class="line"> vte_terminal_search_find_previous (<span class='macro'>VTE_TERMINAL (priv-&gt;active_screen)<span class='macro_popup'>((((VteTerminal*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((priv-&gt;active_screen)), ((vte_terminal_get_type())))))<br>)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="4186"><td class="num" id="LN4186">4186</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="4187"><td class="num" id="LN4187">4187</td><td class="line"> vte_terminal_search_find_next (<span class='macro'>VTE_TERMINAL (priv-&gt;active_screen)<span class='macro_popup'>((((VteTerminal*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((priv-&gt;active_screen)), ((vte_terminal_get_type())))))<br>)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="4188"><td class="num" id="LN4188">4188</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4189"><td class="num" id="LN4189">4189</td><td class="line"> terminal_window_update_search_sensitivity (priv-&gt;active_screen, window);</td></tr>
+<tr class="codeline" data-linenumber="4190"><td class="num" id="LN4190">4190</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="4191"><td class="num" id="LN4191">4191</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4192"><td class="num" id="LN4192">4192</td><td class="line"><span class='keyword'>static</span> gboolean</td></tr>
+<tr class="codeline" data-linenumber="4193"><td class="num" id="LN4193">4193</td><td class="line">search_dialog_delete_event_cb (GtkWidget *widget,</td></tr>
+<tr class="codeline" data-linenumber="4194"><td class="num" id="LN4194">4194</td><td class="line"> GdkEventAny *event,</td></tr>
+<tr class="codeline" data-linenumber="4195"><td class="num" id="LN4195">4195</td><td class="line"> gpointer user_data)</td></tr>
+<tr class="codeline" data-linenumber="4196"><td class="num" id="LN4196">4196</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="4197"><td class="num" id="LN4197">4197</td><td class="line"> <span class='comment'>/* prevent destruction */</span></td></tr>
+<tr class="codeline" data-linenumber="4198"><td class="num" id="LN4198">4198</td><td class="line"> <span class='keyword'>return</span> <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="4199"><td class="num" id="LN4199">4199</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="4200"><td class="num" id="LN4200">4200</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4201"><td class="num" id="LN4201">4201</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="4202"><td class="num" id="LN4202">4202</td><td class="line">search_find_callback (GtkAction *action,</td></tr>
+<tr class="codeline" data-linenumber="4203"><td class="num" id="LN4203">4203</td><td class="line"> TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="4204"><td class="num" id="LN4204">4204</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="4205"><td class="num" id="LN4205">4205</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="4206"><td class="num" id="LN4206">4206</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4207"><td class="num" id="LN4207">4207</td><td class="line"> <span class='keyword'>if</span> (!priv-&gt;search_find_dialog)</td></tr>
+<tr class="codeline" data-linenumber="4208"><td class="num" id="LN4208">4208</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="4209"><td class="num" id="LN4209">4209</td><td class="line"> GtkWidget *dialog;</td></tr>
+<tr class="codeline" data-linenumber="4210"><td class="num" id="LN4210">4210</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4211"><td class="num" id="LN4211">4211</td><td class="line"> dialog = priv-&gt;search_find_dialog = terminal_search_dialog_new (<span class='macro'>GTK_WINDOW (window)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_window_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="4212"><td class="num" id="LN4212">4212</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4213"><td class="num" id="LN4213">4213</td><td class="line"> <span class='macro'>g_signal_connect (dialog, <span class='string_literal'>"destroy"</span>,<span class='macro_popup'>g_signal_connect_data ((dialog), ("destroy"), (((GCallback) (<br>gtk_widget_destroyed))), (&amp;priv-&gt;search_find_dialog), (<br>(void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="4214"><td class="num" id="LN4214">4214</td><td class="line"> <span class='macro'>G_CALLBACK (gtk_widget_destroyed), &amp;priv-&gt;search_find_dialog)<span class='macro_popup'>g_signal_connect_data ((dialog), ("destroy"), (((GCallback) (<br>gtk_widget_destroyed))), (&amp;priv-&gt;search_find_dialog), (<br>(void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="4215"><td class="num" id="LN4215">4215</td><td class="line"> <span class='macro'>g_signal_connect (dialog, <span class='string_literal'>"response"</span>,<span class='macro_popup'>g_signal_connect_data ((dialog), ("response"), (((GCallback) (<br>search_find_response_callback))), (window), ((void*)0), (GConnectFlags<br>) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="4216"><td class="num" id="LN4216">4216</td><td class="line"> <span class='macro'>G_CALLBACK (search_find_response_callback), window)<span class='macro_popup'>g_signal_connect_data ((dialog), ("response"), (((GCallback) (<br>search_find_response_callback))), (window), ((void*)0), (GConnectFlags<br>) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="4217"><td class="num" id="LN4217">4217</td><td class="line"> <span class='macro'>g_signal_connect (dialog, <span class='string_literal'>"delete-event"</span>,<span class='macro_popup'>g_signal_connect_data ((dialog), ("delete-event"), (((GCallback<br>) (search_dialog_delete_event_cb))), (((void*)0)), ((void*)0)<br>, (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="4218"><td class="num" id="LN4218">4218</td><td class="line"> <span class='macro'>G_CALLBACK (search_dialog_delete_event_cb), NULL)<span class='macro_popup'>g_signal_connect_data ((dialog), ("delete-event"), (((GCallback<br>) (search_dialog_delete_event_cb))), (((void*)0)), ((void*)0)<br>, (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="4219"><td class="num" id="LN4219">4219</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="4220"><td class="num" id="LN4220">4220</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4221"><td class="num" id="LN4221">4221</td><td class="line"> terminal_search_dialog_present (priv-&gt;search_find_dialog);</td></tr>
+<tr class="codeline" data-linenumber="4222"><td class="num" id="LN4222">4222</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="4223"><td class="num" id="LN4223">4223</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4224"><td class="num" id="LN4224">4224</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="4225"><td class="num" id="LN4225">4225</td><td class="line">search_find_next_callback (GtkAction *action,</td></tr>
+<tr class="codeline" data-linenumber="4226"><td class="num" id="LN4226">4226</td><td class="line"> TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="4227"><td class="num" id="LN4227">4227</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="4228"><td class="num" id="LN4228">4228</td><td class="line"> <span class='keyword'>if</span> (<span class='macro'>G_UNLIKELY (!window-&gt;priv-&gt;active_screen)<span class='macro_popup'>(!window-&gt;priv-&gt;active_screen)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="4229"><td class="num" id="LN4229">4229</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="4230"><td class="num" id="LN4230">4230</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4231"><td class="num" id="LN4231">4231</td><td class="line"> vte_terminal_search_find_next (<span class='macro'>VTE_TERMINAL (window-&gt;priv-&gt;active_screen)<span class='macro_popup'>((((VteTerminal*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window-&gt;priv-&gt;active_screen)), ((vte_terminal_get_type<br>()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="4232"><td class="num" id="LN4232">4232</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="4233"><td class="num" id="LN4233">4233</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4234"><td class="num" id="LN4234">4234</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="4235"><td class="num" id="LN4235">4235</td><td class="line">search_find_prev_callback (GtkAction *action,</td></tr>
+<tr class="codeline" data-linenumber="4236"><td class="num" id="LN4236">4236</td><td class="line"> TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="4237"><td class="num" id="LN4237">4237</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="4238"><td class="num" id="LN4238">4238</td><td class="line"> <span class='keyword'>if</span> (<span class='macro'>G_UNLIKELY (!window-&gt;priv-&gt;active_screen)<span class='macro_popup'>(!window-&gt;priv-&gt;active_screen)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="4239"><td class="num" id="LN4239">4239</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="4240"><td class="num" id="LN4240">4240</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4241"><td class="num" id="LN4241">4241</td><td class="line"> vte_terminal_search_find_previous (<span class='macro'>VTE_TERMINAL (window-&gt;priv-&gt;active_screen)<span class='macro_popup'>((((VteTerminal*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window-&gt;priv-&gt;active_screen)), ((vte_terminal_get_type<br>()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="4242"><td class="num" id="LN4242">4242</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="4243"><td class="num" id="LN4243">4243</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4244"><td class="num" id="LN4244">4244</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="4245"><td class="num" id="LN4245">4245</td><td class="line">search_clear_highlight_callback (GtkAction *action,</td></tr>
+<tr class="codeline" data-linenumber="4246"><td class="num" id="LN4246">4246</td><td class="line"> TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="4247"><td class="num" id="LN4247">4247</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="4248"><td class="num" id="LN4248">4248</td><td class="line"> <span class='keyword'>if</span> (<span class='macro'>G_UNLIKELY (!window-&gt;priv-&gt;active_screen)<span class='macro_popup'>(!window-&gt;priv-&gt;active_screen)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="4249"><td class="num" id="LN4249">4249</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="4250"><td class="num" id="LN4250">4250</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4251"><td class="num" id="LN4251">4251</td><td class="line"> vte_terminal_search_set_regex (<span class='macro'>VTE_TERMINAL (window-&gt;priv-&gt;active_screen)<span class='macro_popup'>((((VteTerminal*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window-&gt;priv-&gt;active_screen)), ((vte_terminal_get_type<br>()))))))</span></span>, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, 0);</td></tr>
+<tr class="codeline" data-linenumber="4252"><td class="num" id="LN4252">4252</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="4253"><td class="num" id="LN4253">4253</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4254"><td class="num" id="LN4254">4254</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="4255"><td class="num" id="LN4255">4255</td><td class="line">terminal_next_or_previous_profile_cb (GtkAction *action,</td></tr>
+<tr class="codeline" data-linenumber="4256"><td class="num" id="LN4256">4256</td><td class="line"> TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="4257"><td class="num" id="LN4257">4257</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="4258"><td class="num" id="LN4258">4258</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="4259"><td class="num" id="LN4259">4259</td><td class="line"> TerminalProfile *active_profile, *new_profile = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="4260"><td class="num" id="LN4260">4260</td><td class="line"> GList *profiles, *p;</td></tr>
+<tr class="codeline" data-linenumber="4261"><td class="num" id="LN4261">4261</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4262"><td class="num" id="LN4262">4262</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *name;</td></tr>
+<tr class="codeline" data-linenumber="4263"><td class="num" id="LN4263">4263</td><td class="line"> guint backwards = 0;</td></tr>
+<tr class="codeline" data-linenumber="4264"><td class="num" id="LN4264">4264</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4265"><td class="num" id="LN4265">4265</td><td class="line"> <span class='macro'>G_GNUC_BEGIN_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic push
+ clang diagnostic ignored "-Wdeprecated-declarations"<br>
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="4266"><td class="num" id="LN4266">4266</td><td class="line"> name = gtk_action_get_name (action);</td></tr>
+<tr class="codeline" data-linenumber="4267"><td class="num" id="LN4267">4267</td><td class="line"> <span class='macro'>G_GNUC_END_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic pop
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="4268"><td class="num" id="LN4268">4268</td><td class="line"> <span class='keyword'>if</span> (strcmp (name, <span class='string_literal'>"ProfilePrevious"</span>) == 0)</td></tr>
+<tr class="codeline" data-linenumber="4269"><td class="num" id="LN4269">4269</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="4270"><td class="num" id="LN4270">4270</td><td class="line"> backwards = 1;</td></tr>
+<tr class="codeline" data-linenumber="4271"><td class="num" id="LN4271">4271</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="4272"><td class="num" id="LN4272">4272</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4273"><td class="num" id="LN4273">4273</td><td class="line"> profiles = terminal_app_get_profile_list (terminal_app_get ());</td></tr>
+<tr class="codeline" data-linenumber="4274"><td class="num" id="LN4274">4274</td><td class="line"> <span class='keyword'>if</span> (profiles == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="4275"><td class="num" id="LN4275">4275</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="4276"><td class="num" id="LN4276">4276</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4277"><td class="num" id="LN4277">4277</td><td class="line"> <span class='keyword'>if</span> (priv-&gt;active_screen)</td></tr>
+<tr class="codeline" data-linenumber="4278"><td class="num" id="LN4278">4278</td><td class="line"> active_profile = terminal_screen_get_profile (priv-&gt;active_screen);</td></tr>
+<tr class="codeline" data-linenumber="4279"><td class="num" id="LN4279">4279</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="4280"><td class="num" id="LN4280">4280</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="4281"><td class="num" id="LN4281">4281</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4282"><td class="num" id="LN4282">4282</td><td class="line"> <span class='keyword'>for</span> (p = profiles; p != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; p = p-&gt;next)</td></tr>
+<tr class="codeline" data-linenumber="4283"><td class="num" id="LN4283">4283</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="4284"><td class="num" id="LN4284">4284</td><td class="line"> TerminalProfile *profile = (TerminalProfile *) p-&gt;data;</td></tr>
+<tr class="codeline" data-linenumber="4285"><td class="num" id="LN4285">4285</td><td class="line"> <span class='keyword'>if</span> (profile == active_profile)</td></tr>
+<tr class="codeline" data-linenumber="4286"><td class="num" id="LN4286">4286</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="4287"><td class="num" id="LN4287">4287</td><td class="line"> <span class='keyword'>if</span> (backwards) {</td></tr>
+<tr class="codeline" data-linenumber="4288"><td class="num" id="LN4288">4288</td><td class="line"> p = p-&gt;prev;</td></tr>
+<tr class="codeline" data-linenumber="4289"><td class="num" id="LN4289">4289</td><td class="line"> <span class='keyword'>if</span> (p == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="4290"><td class="num" id="LN4290">4290</td><td class="line"> p = g_list_last (profiles);</td></tr>
+<tr class="codeline" data-linenumber="4291"><td class="num" id="LN4291">4291</td><td class="line"> new_profile = p-&gt;data;</td></tr>
+<tr class="codeline" data-linenumber="4292"><td class="num" id="LN4292">4292</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="4293"><td class="num" id="LN4293">4293</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="4294"><td class="num" id="LN4294">4294</td><td class="line"> <span class='keyword'>else</span></td></tr>
+<tr class="codeline" data-linenumber="4295"><td class="num" id="LN4295">4295</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="4296"><td class="num" id="LN4296">4296</td><td class="line"> p = p-&gt;next;</td></tr>
+<tr class="codeline" data-linenumber="4297"><td class="num" id="LN4297">4297</td><td class="line"> <span class='keyword'>if</span> (p == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="4298"><td class="num" id="LN4298">4298</td><td class="line"> p = g_list_first (profiles);</td></tr>
+<tr class="codeline" data-linenumber="4299"><td class="num" id="LN4299">4299</td><td class="line"> new_profile = p-&gt;data;</td></tr>
+<tr class="codeline" data-linenumber="4300"><td class="num" id="LN4300">4300</td><td class="line"> <span class='keyword'>break</span>;</td></tr>
+<tr class="codeline" data-linenumber="4301"><td class="num" id="LN4301">4301</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="4302"><td class="num" id="LN4302">4302</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="4303"><td class="num" id="LN4303">4303</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="4304"><td class="num" id="LN4304">4304</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4305"><td class="num" id="LN4305">4305</td><td class="line"> <span class='keyword'>if</span> (new_profile)</td></tr>
+<tr class="codeline" data-linenumber="4306"><td class="num" id="LN4306">4306</td><td class="line"> terminal_screen_set_profile (priv-&gt;active_screen, new_profile);</td></tr>
+<tr class="codeline" data-linenumber="4307"><td class="num" id="LN4307">4307</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4308"><td class="num" id="LN4308">4308</td><td class="line"> g_list_free (profiles);</td></tr>
+<tr class="codeline" data-linenumber="4309"><td class="num" id="LN4309">4309</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="4310"><td class="num" id="LN4310">4310</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4311"><td class="num" id="LN4311">4311</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="4312"><td class="num" id="LN4312">4312</td><td class="line">terminal_set_title_dialog_response_cb (GtkWidget *dialog,</td></tr>
+<tr class="codeline" data-linenumber="4313"><td class="num" id="LN4313">4313</td><td class="line"> <span class='keyword'>int</span> response,</td></tr>
+<tr class="codeline" data-linenumber="4314"><td class="num" id="LN4314">4314</td><td class="line"> TerminalScreen *screen)</td></tr>
+<tr class="codeline" data-linenumber="4315"><td class="num" id="LN4315">4315</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="4316"><td class="num" id="LN4316">4316</td><td class="line"> <span class='keyword'>if</span> (response == GTK_RESPONSE_OK)</td></tr>
+<tr class="codeline" data-linenumber="4317"><td class="num" id="LN4317">4317</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="4318"><td class="num" id="LN4318">4318</td><td class="line"> GtkEntry *entry;</td></tr>
+<tr class="codeline" data-linenumber="4319"><td class="num" id="LN4319">4319</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *text;</td></tr>
+<tr class="codeline" data-linenumber="4320"><td class="num" id="LN4320">4320</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4321"><td class="num" id="LN4321">4321</td><td class="line"> entry = <span class='macro'>GTK_ENTRY (g_object_get_data (G_OBJECT (dialog), <span class='string_literal'>"title-entry"</span>))<span class='macro_popup'>((((GtkEntry*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((g_object_get_data (((((GObject*) (void *) g_type_check_instance_cast<br> ((GTypeInstance*) ((dialog)), (((GType) ((20) &lt;&lt; (2)))<br>))))), "title-entry"))), ((gtk_entry_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="4322"><td class="num" id="LN4322">4322</td><td class="line"> text = gtk_entry_get_text (entry);</td></tr>
+<tr class="codeline" data-linenumber="4323"><td class="num" id="LN4323">4323</td><td class="line"> terminal_screen_set_user_title (screen, text);</td></tr>
+<tr class="codeline" data-linenumber="4324"><td class="num" id="LN4324">4324</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="4325"><td class="num" id="LN4325">4325</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4326"><td class="num" id="LN4326">4326</td><td class="line"> gtk_widget_destroy (dialog);</td></tr>
+<tr class="codeline" data-linenumber="4327"><td class="num" id="LN4327">4327</td><td class="line"> gtk_widget_grab_focus (<span class='macro'>GTK_WIDGET (screen)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((screen)), ((gtk_widget_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="4328"><td class="num" id="LN4328">4328</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="4329"><td class="num" id="LN4329">4329</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4330"><td class="num" id="LN4330">4330</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="4331"><td class="num" id="LN4331">4331</td><td class="line">terminal_set_title_callback (GtkAction *action,</td></tr>
+<tr class="codeline" data-linenumber="4332"><td class="num" id="LN4332">4332</td><td class="line"> TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="4333"><td class="num" id="LN4333">4333</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="4334"><td class="num" id="LN4334">4334</td><td class="line"> GtkBuilder *builder;</td></tr>
+<tr class="codeline" data-linenumber="4335"><td class="num" id="LN4335">4335</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="4336"><td class="num" id="LN4336">4336</td><td class="line"> GtkWidget *dialog, *entry;</td></tr>
+<tr class="codeline" data-linenumber="4337"><td class="num" id="LN4337">4337</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4338"><td class="num" id="LN4338">4338</td><td class="line"> <span class='keyword'>if</span> (priv-&gt;active_screen == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="4339"><td class="num" id="LN4339">4339</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="4340"><td class="num" id="LN4340">4340</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4341"><td class="num" id="LN4341">4341</td><td class="line"> builder = gtk_builder_new_from_resource (<span class='macro'>TERMINAL_RESOURCES_PATH_PREFIX<span class='macro_popup'>"/org/mate/terminal"</span></span> <span class='macro'>G_DIR_SEPARATOR_S<span class='macro_popup'>"/"</span></span> <span class='string_literal'>"ui/set-title-dialog.ui"</span>);</td></tr>
+<tr class="codeline" data-linenumber="4342"><td class="num" id="LN4342">4342</td><td class="line"> dialog = <span class='macro'>GTK_WIDGET (gtk_builder_get_object (builder, <span class='string_literal'>"dialog"</span>))<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((gtk_builder_get_object (builder, "dialog"))), ((gtk_widget_get_type<br> ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="4343"><td class="num" id="LN4343">4343</td><td class="line"> entry = <span class='macro'>GTK_WIDGET (gtk_builder_get_object (builder, <span class='string_literal'>"title_entry"</span>))<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((gtk_builder_get_object (builder, "title_entry"))), ((gtk_widget_get_type<br> ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="4344"><td class="num" id="LN4344">4344</td><td class="line"> g_object_unref (builder);</td></tr>
+<tr class="codeline" data-linenumber="4345"><td class="num" id="LN4345">4345</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4346"><td class="num" id="LN4346">4346</td><td class="line"> gtk_widget_grab_focus (entry);</td></tr>
+<tr class="codeline" data-linenumber="4347"><td class="num" id="LN4347">4347</td><td class="line"> gtk_entry_set_text (<span class='macro'>GTK_ENTRY (entry)<span class='macro_popup'>((((GtkEntry*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((entry)), ((gtk_entry_get_type ()))))))</span></span>, terminal_screen_get_raw_title (priv-&gt;active_screen));</td></tr>
+<tr class="codeline" data-linenumber="4348"><td class="num" id="LN4348">4348</td><td class="line"> gtk_editable_select_region (<span class='macro'>GTK_EDITABLE (entry)<span class='macro_popup'>((((GtkEditable*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((entry)), ((gtk_editable_get_type ()))))))</span></span>, 0, -1);</td></tr>
+<tr class="codeline" data-linenumber="4349"><td class="num" id="LN4349">4349</td><td class="line"> g_object_set_data (<span class='macro'>G_OBJECT (dialog)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((dialog)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>, <span class='string_literal'>"title-entry"</span>, entry);</td></tr>
+<tr class="codeline" data-linenumber="4350"><td class="num" id="LN4350">4350</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4351"><td class="num" id="LN4351">4351</td><td class="line"> <span class='macro'>g_signal_connect (dialog, <span class='string_literal'>"response"</span>,<span class='macro_popup'>g_signal_connect_data ((dialog), ("response"), (((GCallback) (<br>terminal_set_title_dialog_response_cb))), (priv-&gt;active_screen<br>), ((void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="4352"><td class="num" id="LN4352">4352</td><td class="line"> <span class='macro'>G_CALLBACK (terminal_set_title_dialog_response_cb), priv-&gt;active_screen)<span class='macro_popup'>g_signal_connect_data ((dialog), ("response"), (((GCallback) (<br>terminal_set_title_dialog_response_cb))), (priv-&gt;active_screen<br>), ((void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="4353"><td class="num" id="LN4353">4353</td><td class="line"> <span class='macro'>g_signal_connect (dialog, <span class='string_literal'>"delete-event"</span>,<span class='macro_popup'>g_signal_connect_data ((dialog), ("delete-event"), (((GCallback<br>) (terminal_util_dialog_response_on_delete))), (((void*)0)), (<br>(void*)0), (GConnectFlags) 0)</span></span></td></tr>
+<tr class="codeline" data-linenumber="4354"><td class="num" id="LN4354">4354</td><td class="line"> <span class='macro'>G_CALLBACK (terminal_util_dialog_response_on_delete), NULL)<span class='macro_popup'>g_signal_connect_data ((dialog), ("delete-event"), (((GCallback<br>) (terminal_util_dialog_response_on_delete))), (((void*)0)), (<br>(void*)0), (GConnectFlags) 0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="4355"><td class="num" id="LN4355">4355</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4356"><td class="num" id="LN4356">4356</td><td class="line"> gtk_window_set_transient_for (<span class='macro'>GTK_WINDOW (dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((dialog)), ((gtk_window_get_type ()))))))</span></span>, <span class='macro'>GTK_WINDOW (window)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_window_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="4357"><td class="num" id="LN4357">4357</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4358"><td class="num" id="LN4358">4358</td><td class="line"> gtk_window_present (<span class='macro'>GTK_WINDOW (dialog)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((dialog)), ((gtk_window_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="4359"><td class="num" id="LN4359">4359</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="4360"><td class="num" id="LN4360">4360</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4361"><td class="num" id="LN4361">4361</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="4362"><td class="num" id="LN4362">4362</td><td class="line">terminal_add_encoding_callback (GtkAction *action,</td></tr>
+<tr class="codeline" data-linenumber="4363"><td class="num" id="LN4363">4363</td><td class="line"> TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="4364"><td class="num" id="LN4364">4364</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="4365"><td class="num" id="LN4365">4365</td><td class="line"> terminal_app_edit_encodings (terminal_app_get (),</td></tr>
+<tr class="codeline" data-linenumber="4366"><td class="num" id="LN4366">4366</td><td class="line"> <span class='macro'>GTK_WINDOW (window)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_window_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="4367"><td class="num" id="LN4367">4367</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="4368"><td class="num" id="LN4368">4368</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4369"><td class="num" id="LN4369">4369</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="4370"><td class="num" id="LN4370">4370</td><td class="line">terminal_reset_callback (GtkAction *action,</td></tr>
+<tr class="codeline" data-linenumber="4371"><td class="num" id="LN4371">4371</td><td class="line"> TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="4372"><td class="num" id="LN4372">4372</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="4373"><td class="num" id="LN4373">4373</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="4374"><td class="num" id="LN4374">4374</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4375"><td class="num" id="LN4375">4375</td><td class="line"> <span class='keyword'>if</span> (priv-&gt;active_screen == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="4376"><td class="num" id="LN4376">4376</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="4377"><td class="num" id="LN4377">4377</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4378"><td class="num" id="LN4378">4378</td><td class="line"> vte_terminal_reset (<span class='macro'>VTE_TERMINAL (priv-&gt;active_screen)<span class='macro_popup'>((((VteTerminal*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((priv-&gt;active_screen)), ((vte_terminal_get_type())))))<br>)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="4379"><td class="num" id="LN4379">4379</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="4380"><td class="num" id="LN4380">4380</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4381"><td class="num" id="LN4381">4381</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="4382"><td class="num" id="LN4382">4382</td><td class="line">terminal_reset_clear_callback (GtkAction *action,</td></tr>
+<tr class="codeline" data-linenumber="4383"><td class="num" id="LN4383">4383</td><td class="line"> TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="4384"><td class="num" id="LN4384">4384</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="4385"><td class="num" id="LN4385">4385</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="4386"><td class="num" id="LN4386">4386</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4387"><td class="num" id="LN4387">4387</td><td class="line"> <span class='keyword'>if</span> (priv-&gt;active_screen == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="4388"><td class="num" id="LN4388">4388</td><td class="line"> <span class='keyword'>return</span>;</td></tr>
+<tr class="codeline" data-linenumber="4389"><td class="num" id="LN4389">4389</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4390"><td class="num" id="LN4390">4390</td><td class="line"> vte_terminal_reset (<span class='macro'>VTE_TERMINAL (priv-&gt;active_screen)<span class='macro_popup'>((((VteTerminal*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((priv-&gt;active_screen)), ((vte_terminal_get_type())))))<br>)</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="4391"><td class="num" id="LN4391">4391</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="4392"><td class="num" id="LN4392">4392</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4393"><td class="num" id="LN4393">4393</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="4394"><td class="num" id="LN4394">4394</td><td class="line">tabs_next_or_previous_tab_cb (GtkAction *action,</td></tr>
+<tr class="codeline" data-linenumber="4395"><td class="num" id="LN4395">4395</td><td class="line"> TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="4396"><td class="num" id="LN4396">4396</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="4397"><td class="num" id="LN4397">4397</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="4398"><td class="num" id="LN4398">4398</td><td class="line"> GtkNotebookClass *klass;</td></tr>
+<tr class="codeline" data-linenumber="4399"><td class="num" id="LN4399">4399</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *name;</td></tr>
+<tr class="codeline" data-linenumber="4400"><td class="num" id="LN4400">4400</td><td class="line"> guint keyval = 0;</td></tr>
+<tr class="codeline" data-linenumber="4401"><td class="num" id="LN4401">4401</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4402"><td class="num" id="LN4402">4402</td><td class="line"> <span class='macro'>G_GNUC_BEGIN_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic push
+ clang diagnostic ignored "-Wdeprecated-declarations"<br>
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="4403"><td class="num" id="LN4403">4403</td><td class="line"> name = gtk_action_get_name (action);</td></tr>
+<tr class="codeline" data-linenumber="4404"><td class="num" id="LN4404">4404</td><td class="line"> <span class='macro'>G_GNUC_END_IGNORE_DEPRECATIONS<span class='macro_popup'>clang diagnostic pop
+</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="4405"><td class="num" id="LN4405">4405</td><td class="line"> <span class='keyword'>if</span> (strcmp (name, <span class='string_literal'>"TabsNext"</span>) == 0)</td></tr>
+<tr class="codeline" data-linenumber="4406"><td class="num" id="LN4406">4406</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="4407"><td class="num" id="LN4407">4407</td><td class="line"> keyval = <span class='macro'>GDK_KEY_Page_Down<span class='macro_popup'>0xff56</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="4408"><td class="num" id="LN4408">4408</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="4409"><td class="num" id="LN4409">4409</td><td class="line"> <span class='keyword'>else</span> <span class='keyword'>if</span> (strcmp (name, <span class='string_literal'>"TabsPrevious"</span>) == 0)</td></tr>
+<tr class="codeline" data-linenumber="4410"><td class="num" id="LN4410">4410</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="4411"><td class="num" id="LN4411">4411</td><td class="line"> keyval = <span class='macro'>GDK_KEY_Page_Up<span class='macro_popup'>0xff55</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="4412"><td class="num" id="LN4412">4412</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="4413"><td class="num" id="LN4413">4413</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4414"><td class="num" id="LN4414">4414</td><td class="line"> klass = <span class='macro'>GTK_NOTEBOOK_GET_CLASS (GTK_NOTEBOOK (priv-&gt;notebook))<span class='macro_popup'>((((GtkNotebookClass*) (((GTypeInstance*) ((((((GtkNotebook*)<br> (void *) g_type_check_instance_cast ((GTypeInstance*) ((priv<br>-&gt;notebook)), ((gtk_notebook_get_type ())))))))))-&gt;g_class<br>))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="4415"><td class="num" id="LN4415">4415</td><td class="line"> gtk_binding_set_activate (gtk_binding_set_by_class (klass),</td></tr>
+<tr class="codeline" data-linenumber="4416"><td class="num" id="LN4416">4416</td><td class="line"> keyval,</td></tr>
+<tr class="codeline" data-linenumber="4417"><td class="num" id="LN4417">4417</td><td class="line"> GDK_CONTROL_MASK,</td></tr>
+<tr class="codeline" data-linenumber="4418"><td class="num" id="LN4418">4418</td><td class="line"> <span class='macro'>G_OBJECT (priv-&gt;notebook)<span class='macro_popup'>((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((priv-&gt;notebook)), (((GType) ((20) &lt;&lt; (2))))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="4419"><td class="num" id="LN4419">4419</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="4420"><td class="num" id="LN4420">4420</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4421"><td class="num" id="LN4421">4421</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="4422"><td class="num" id="LN4422">4422</td><td class="line">tabs_move_left_callback (GtkAction *action,</td></tr>
+<tr class="codeline" data-linenumber="4423"><td class="num" id="LN4423">4423</td><td class="line"> TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="4424"><td class="num" id="LN4424">4424</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="4425"><td class="num" id="LN4425">4425</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="4426"><td class="num" id="LN4426">4426</td><td class="line"> GtkNotebook *notebook = <span class='macro'>GTK_NOTEBOOK (priv-&gt;notebook)<span class='macro_popup'>((((GtkNotebook*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((priv-&gt;notebook)), ((gtk_notebook_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="4427"><td class="num" id="LN4427">4427</td><td class="line"> gint page_num,last_page;</td></tr>
+<tr class="codeline" data-linenumber="4428"><td class="num" id="LN4428">4428</td><td class="line"> GtkWidget *page;</td></tr>
+<tr class="codeline" data-linenumber="4429"><td class="num" id="LN4429">4429</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4430"><td class="num" id="LN4430">4430</td><td class="line"> page_num = gtk_notebook_get_current_page (notebook);</td></tr>
+<tr class="codeline" data-linenumber="4431"><td class="num" id="LN4431">4431</td><td class="line"> last_page = gtk_notebook_get_n_pages (notebook) - 1;</td></tr>
+<tr class="codeline" data-linenumber="4432"><td class="num" id="LN4432">4432</td><td class="line"> page = gtk_notebook_get_nth_page (notebook, page_num);</td></tr>
+<tr class="codeline" data-linenumber="4433"><td class="num" id="LN4433">4433</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4434"><td class="num" id="LN4434">4434</td><td class="line"> gtk_notebook_reorder_child (notebook, page, page_num == 0 ? last_page : page_num - 1);</td></tr>
+<tr class="codeline" data-linenumber="4435"><td class="num" id="LN4435">4435</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="4436"><td class="num" id="LN4436">4436</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4437"><td class="num" id="LN4437">4437</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="4438"><td class="num" id="LN4438">4438</td><td class="line">tabs_move_right_callback (GtkAction *action,</td></tr>
+<tr class="codeline" data-linenumber="4439"><td class="num" id="LN4439">4439</td><td class="line"> TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="4440"><td class="num" id="LN4440">4440</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="4441"><td class="num" id="LN4441">4441</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="4442"><td class="num" id="LN4442">4442</td><td class="line"> GtkNotebook *notebook = <span class='macro'>GTK_NOTEBOOK (priv-&gt;notebook)<span class='macro_popup'>((((GtkNotebook*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((priv-&gt;notebook)), ((gtk_notebook_get_type ()))))))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="4443"><td class="num" id="LN4443">4443</td><td class="line"> gint page_num,last_page;</td></tr>
+<tr class="codeline" data-linenumber="4444"><td class="num" id="LN4444">4444</td><td class="line"> GtkWidget *page;</td></tr>
+<tr class="codeline" data-linenumber="4445"><td class="num" id="LN4445">4445</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4446"><td class="num" id="LN4446">4446</td><td class="line"> page_num = gtk_notebook_get_current_page (notebook);</td></tr>
+<tr class="codeline" data-linenumber="4447"><td class="num" id="LN4447">4447</td><td class="line"> last_page = gtk_notebook_get_n_pages (notebook) - 1;</td></tr>
+<tr class="codeline" data-linenumber="4448"><td class="num" id="LN4448">4448</td><td class="line"> page = gtk_notebook_get_nth_page (notebook, page_num);</td></tr>
+<tr class="codeline" data-linenumber="4449"><td class="num" id="LN4449">4449</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4450"><td class="num" id="LN4450">4450</td><td class="line"> gtk_notebook_reorder_child (notebook, page, page_num == last_page ? 0 : page_num + 1);</td></tr>
+<tr class="codeline" data-linenumber="4451"><td class="num" id="LN4451">4451</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="4452"><td class="num" id="LN4452">4452</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4453"><td class="num" id="LN4453">4453</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="4454"><td class="num" id="LN4454">4454</td><td class="line">tabs_detach_tab_callback (GtkAction *action,</td></tr>
+<tr class="codeline" data-linenumber="4455"><td class="num" id="LN4455">4455</td><td class="line"> TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="4456"><td class="num" id="LN4456">4456</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="4457"><td class="num" id="LN4457">4457</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="4458"><td class="num" id="LN4458">4458</td><td class="line"> TerminalApp *app;</td></tr>
+<tr class="codeline" data-linenumber="4459"><td class="num" id="LN4459">4459</td><td class="line"> TerminalWindow *new_window;</td></tr>
+<tr class="codeline" data-linenumber="4460"><td class="num" id="LN4460">4460</td><td class="line"> TerminalScreen *screen;</td></tr>
+<tr class="codeline" data-linenumber="4461"><td class="num" id="LN4461">4461</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4462"><td class="num" id="LN4462">4462</td><td class="line"> app = terminal_app_get ();</td></tr>
+<tr class="codeline" data-linenumber="4463"><td class="num" id="LN4463">4463</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4464"><td class="num" id="LN4464">4464</td><td class="line"> screen = priv-&gt;active_screen;</td></tr>
+<tr class="codeline" data-linenumber="4465"><td class="num" id="LN4465">4465</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4466"><td class="num" id="LN4466">4466</td><td class="line"> new_window = terminal_app_new_window (app, gtk_widget_get_screen (<span class='macro'>GTK_WIDGET (window)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_widget_get_type ()))))))</span></span>));</td></tr>
+<tr class="codeline" data-linenumber="4467"><td class="num" id="LN4467">4467</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4468"><td class="num" id="LN4468">4468</td><td class="line"> terminal_window_move_screen (window, new_window, screen, -1);</td></tr>
+<tr class="codeline" data-linenumber="4469"><td class="num" id="LN4469">4469</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4470"><td class="num" id="LN4470">4470</td><td class="line"> <span class='comment'>/* FIXME: this seems wrong if tabs are shown in the window */</span></td></tr>
+<tr class="codeline" data-linenumber="4471"><td class="num" id="LN4471">4471</td><td class="line"> terminal_window_update_size (new_window, screen, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="4472"><td class="num" id="LN4472">4472</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4473"><td class="num" id="LN4473">4473</td><td class="line"> gtk_window_present_with_time (<span class='macro'>GTK_WINDOW (new_window)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((new_window)), ((gtk_window_get_type ()))))))</span></span>, gtk_get_current_event_time ());</td></tr>
+<tr class="codeline" data-linenumber="4474"><td class="num" id="LN4474">4474</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="4475"><td class="num" id="LN4475">4475</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4476"><td class="num" id="LN4476">4476</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="4477"><td class="num" id="LN4477">4477</td><td class="line">help_contents_callback (GtkAction *action,</td></tr>
+<tr class="codeline" data-linenumber="4478"><td class="num" id="LN4478">4478</td><td class="line"> TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="4479"><td class="num" id="LN4479">4479</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="4480"><td class="num" id="LN4480">4480</td><td class="line"> terminal_util_show_help (<span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>, <span class='macro'>GTK_WINDOW (window)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_window_get_type ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="4481"><td class="num" id="LN4481">4481</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="4482"><td class="num" id="LN4482">4482</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4483"><td class="num" id="LN4483">4483</td><td class="line"><span class='directive'>#define <span class='macro'>ABOUT_GROUP<span class='macro_popup'>"About"</span></span> "About"</span></td></tr>
+<tr class="codeline" data-linenumber="4484"><td class="num" id="LN4484">4484</td><td class="line"><span class='directive'>#define <span class='macro'>EMAILIFY(string)<span class='macro_popup'>(g_strdelimit ((string), "%", '@'))</span></span> (g_strdelimit ((string), "%", '@'))</span></td></tr>
+<tr class="codeline" data-linenumber="4485"><td class="num" id="LN4485">4485</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4486"><td class="num" id="LN4486">4486</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="4487"><td class="num" id="LN4487">4487</td><td class="line">help_about_callback (GtkAction *action,</td></tr>
+<tr class="codeline" data-linenumber="4488"><td class="num" id="LN4488">4488</td><td class="line"> TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="4489"><td class="num" id="LN4489">4489</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="4490"><td class="num" id="LN4490">4490</td><td class="line"> <span class='keyword'>char</span> *licence_text;</td></tr>
+<tr class="codeline" data-linenumber="4491"><td class="num" id="LN4491">4491</td><td class="line"> GBytes *bytes;</td></tr>
+<tr class="codeline" data-linenumber="4492"><td class="num" id="LN4492">4492</td><td class="line"> <span class='keyword'>const</span> guint8 *data;</td></tr>
+<tr class="codeline" data-linenumber="4493"><td class="num" id="LN4493">4493</td><td class="line"> GKeyFile *key_file;</td></tr>
+<tr class="codeline" data-linenumber="4494"><td class="num" id="LN4494">4494</td><td class="line"> GError *error = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="4495"><td class="num" id="LN4495">4495</td><td class="line"> <span class='keyword'>char</span> **authors, **contributors, **artists, **documenters, **array_strv;</td></tr>
+<tr class="codeline" data-linenumber="4496"><td class="num" id="LN4496">4496</td><td class="line"> gchar *comments = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="4497"><td class="num" id="LN4497">4497</td><td class="line"> gsize data_len, n_authors = 0, n_contributors = 0, n_artists = 0, n_documenters = 0 , i;</td></tr>
+<tr class="codeline" data-linenumber="4498"><td class="num" id="LN4498">4498</td><td class="line"> GPtrArray *array;</td></tr>
+<tr class="codeline" data-linenumber="4499"><td class="num" id="LN4499">4499</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4500"><td class="num" id="LN4500">4500</td><td class="line"> bytes = g_resources_lookup_data (<span class='macro'>TERMINAL_RESOURCES_PATH_PREFIX<span class='macro_popup'>"/org/mate/terminal"</span></span> <span class='macro'>G_DIR_SEPARATOR_S<span class='macro_popup'>"/"</span></span> <span class='string_literal'>"ui/terminal.about"</span>,</td></tr>
+<tr class="codeline" data-linenumber="4501"><td class="num" id="LN4501">4501</td><td class="line"> G_RESOURCE_LOOKUP_FLAGS_NONE,</td></tr>
+<tr class="codeline" data-linenumber="4502"><td class="num" id="LN4502">4502</td><td class="line"> &amp;error);</td></tr>
+<tr class="codeline" data-linenumber="4503"><td class="num" id="LN4503">4503</td><td class="line"> <span class='macro'>g_assert_no_error (error)<span class='macro_popup'>do { if (error) g_assertion_message_error (((gchar*) 0), "terminal-window.c"<br>, 4503, ((const char*) (__func__)), "error", error, 0, 0); } while<br> (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="4504"><td class="num" id="LN4504">4504</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4505"><td class="num" id="LN4505">4505</td><td class="line"> data = g_bytes_get_data (bytes, &amp;data_len);</td></tr>
+<tr class="codeline" data-linenumber="4506"><td class="num" id="LN4506">4506</td><td class="line"> key_file = g_key_file_new ();</td></tr>
+<tr class="codeline" data-linenumber="4507"><td class="num" id="LN4507">4507</td><td class="line"> g_key_file_load_from_data (key_file, (<span class='keyword'>const</span> <span class='keyword'>char</span> *) data, data_len, 0, &amp;error);</td></tr>
+<tr class="codeline" data-linenumber="4508"><td class="num" id="LN4508">4508</td><td class="line"> <span class='macro'>g_assert_no_error (error)<span class='macro_popup'>do { if (error) g_assertion_message_error (((gchar*) 0), "terminal-window.c"<br>, 4508, ((const char*) (__func__)), "error", error, 0, 0); } while<br> (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="4509"><td class="num" id="LN4509">4509</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4510"><td class="num" id="LN4510">4510</td><td class="line"> authors = g_key_file_get_string_list (key_file, <span class='macro'>ABOUT_GROUP<span class='macro_popup'>"About"</span></span>, <span class='string_literal'>"Authors"</span>, &amp;n_authors, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="4511"><td class="num" id="LN4511">4511</td><td class="line"> contributors = g_key_file_get_string_list (key_file, <span class='macro'>ABOUT_GROUP<span class='macro_popup'>"About"</span></span>, <span class='string_literal'>"Contributors"</span>, &amp;n_contributors, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="4512"><td class="num" id="LN4512">4512</td><td class="line"> artists = g_key_file_get_string_list (key_file, <span class='macro'>ABOUT_GROUP<span class='macro_popup'>"About"</span></span>, <span class='string_literal'>"Artists"</span>, &amp;n_artists, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="4513"><td class="num" id="LN4513">4513</td><td class="line"> documenters = g_key_file_get_string_list (key_file, <span class='macro'>ABOUT_GROUP<span class='macro_popup'>"About"</span></span>, <span class='string_literal'>"Documenters"</span>, &amp;n_documenters, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="4514"><td class="num" id="LN4514">4514</td><td class="line"> g_key_file_free (key_file);</td></tr>
+<tr class="codeline" data-linenumber="4515"><td class="num" id="LN4515">4515</td><td class="line"> g_bytes_unref (bytes);</td></tr>
+<tr class="codeline" data-linenumber="4516"><td class="num" id="LN4516">4516</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4517"><td class="num" id="LN4517">4517</td><td class="line"> array = g_ptr_array_new ();</td></tr>
+<tr class="codeline" data-linenumber="4518"><td class="num" id="LN4518">4518</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4519"><td class="num" id="LN4519">4519</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; n_authors; ++i)</td></tr>
+<tr class="codeline" data-linenumber="4520"><td class="num" id="LN4520">4520</td><td class="line"> g_ptr_array_add (array, <span class='macro'>EMAILIFY (authors[i])<span class='macro_popup'>(g_strdelimit ((authors[i]), "%", '@'))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="4521"><td class="num" id="LN4521">4521</td><td class="line"> g_free (authors); <span class='comment'>/* strings are now owned by the array */</span></td></tr>
+<tr class="codeline" data-linenumber="4522"><td class="num" id="LN4522">4522</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4523"><td class="num" id="LN4523">4523</td><td class="line"> <span class='keyword'>if</span> (n_contributors &gt; 0)</td></tr>
+<tr class="codeline" data-linenumber="4524"><td class="num" id="LN4524">4524</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="4525"><td class="num" id="LN4525">4525</td><td class="line"> g_ptr_array_add (array, <span class='macro'>g_strdup (<span class='string_literal'>""</span>)<span class='macro_popup'>g_strdup_inline ("")</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="4526"><td class="num" id="LN4526">4526</td><td class="line"> g_ptr_array_add (array, <span class='macro'>g_strdup (_(<span class='string_literal'>"Contributors:"</span>))<span class='macro_popup'>g_strdup_inline (gettext ("Contributors:"))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="4527"><td class="num" id="LN4527">4527</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; n_contributors; ++i)</td></tr>
+<tr class="codeline" data-linenumber="4528"><td class="num" id="LN4528">4528</td><td class="line"> g_ptr_array_add (array, <span class='macro'>EMAILIFY (contributors[i])<span class='macro_popup'>(g_strdelimit ((contributors[i]), "%", '@'))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="4529"><td class="num" id="LN4529">4529</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="4530"><td class="num" id="LN4530">4530</td><td class="line"> g_free (contributors); <span class='comment'>/* strings are now owned by the array */</span></td></tr>
+<tr class="codeline" data-linenumber="4531"><td class="num" id="LN4531">4531</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4532"><td class="num" id="LN4532">4532</td><td class="line"> g_ptr_array_add (array, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="4533"><td class="num" id="LN4533">4533</td><td class="line"> array_strv = (<span class='keyword'>char</span> **) g_ptr_array_free (array, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="4534"><td class="num" id="LN4534">4534</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4535"><td class="num" id="LN4535">4535</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; n_artists; ++i)</td></tr>
+<tr class="codeline" data-linenumber="4536"><td class="num" id="LN4536">4536</td><td class="line"> artists[i] = <span class='macro'>EMAILIFY (artists[i])<span class='macro_popup'>(g_strdelimit ((artists[i]), "%", '@'))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="4537"><td class="num" id="LN4537">4537</td><td class="line"> <span class='keyword'>for</span> (i = 0; i &lt; n_documenters; ++i)</td></tr>
+<tr class="codeline" data-linenumber="4538"><td class="num" id="LN4538">4538</td><td class="line"> documenters[i] = <span class='macro'>EMAILIFY (documenters[i])<span class='macro_popup'>(g_strdelimit ((documenters[i]), "%", '@'))</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="4539"><td class="num" id="LN4539">4539</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4540"><td class="num" id="LN4540">4540</td><td class="line"> licence_text = terminal_util_get_licence_text ();</td></tr>
+<tr class="codeline" data-linenumber="4541"><td class="num" id="LN4541">4541</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4542"><td class="num" id="LN4542">4542</td><td class="line"> comments = g_strdup_printf (<span class='macro'>_(<span class='string_literal'>"MATE Terminal is a terminal emulator for the MATE Desktop Environment.\nPowered by Virtual TErminal %d.%d.%d"</span>)<span class='macro_popup'>gettext ("MATE Terminal is a terminal emulator for the MATE Desktop Environment.\nPowered by Virtual TErminal %d.%d.%d"<br>)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="4543"><td class="num" id="LN4543">4543</td><td class="line"> vte_get_major_version (), vte_get_minor_version (), vte_get_micro_version ());</td></tr>
+<tr class="codeline" data-linenumber="4544"><td class="num" id="LN4544">4544</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4545"><td class="num" id="LN4545">4545</td><td class="line"> gtk_show_about_dialog (<span class='macro'>GTK_WINDOW (window)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_window_get_type ()))))))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="4546"><td class="num" id="LN4546">4546</td><td class="line"> <span class='string_literal'>"program-name"</span>, <span class='macro'>_(<span class='string_literal'>"MATE Terminal"</span>)<span class='macro_popup'>gettext ("MATE Terminal")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="4547"><td class="num" id="LN4547">4547</td><td class="line"> <span class='string_literal'>"version"</span>, <span class='macro'>VERSION<span class='macro_popup'>"1.27.1"</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="4548"><td class="num" id="LN4548">4548</td><td class="line"> <span class='string_literal'>"title"</span>, <span class='macro'>_(<span class='string_literal'>"About MATE Terminal"</span>)<span class='macro_popup'>gettext ("About MATE Terminal")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="4549"><td class="num" id="LN4549">4549</td><td class="line"> <span class='string_literal'>"copyright"</span>, <span class='macro'>_(<span class='string_literal'>"Copyright \xc2\xa9 2002–2004 Havoc Pennington\n"<span class='macro_popup'>gettext ("Copyright \xc2\xa9 2002–2004 Havoc Pennington\n" "Copyright \xc2\xa9 2003–2004, 2007 Mariano Suárez-Alvarez\n"<br> "Copyright \xc2\xa9 2006 Guilherme de S. Pastore\n" "Copyright \xc2\xa9 2007–2010 Christian Persch\n"<br> "Copyright \xc2\xa9 2011 Perberos\n" "Copyright \xc2\xa9 2012-2021 MATE developers"<br>)</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="4550"><td class="num" id="LN4550">4550</td><td class="line"> <span class='string_literal'><span class='macro'>"Copyright \xc2\xa9 2003–2004, 2007 Mariano Suárez-Alvarez\n"<span class='macro_popup'>gettext ("Copyright \xc2\xa9 2002–2004 Havoc Pennington\n" "Copyright \xc2\xa9 2003–2004, 2007 Mariano Suárez-Alvarez\n"<br> "Copyright \xc2\xa9 2006 Guilherme de S. Pastore\n" "Copyright \xc2\xa9 2007–2010 Christian Persch\n"<br> "Copyright \xc2\xa9 2011 Perberos\n" "Copyright \xc2\xa9 2012-2021 MATE developers"<br>)</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="4551"><td class="num" id="LN4551">4551</td><td class="line"> <span class='string_literal'><span class='macro'>"Copyright \xc2\xa9 2006 Guilherme de S. Pastore\n"<span class='macro_popup'>gettext ("Copyright \xc2\xa9 2002–2004 Havoc Pennington\n" "Copyright \xc2\xa9 2003–2004, 2007 Mariano Suárez-Alvarez\n"<br> "Copyright \xc2\xa9 2006 Guilherme de S. Pastore\n" "Copyright \xc2\xa9 2007–2010 Christian Persch\n"<br> "Copyright \xc2\xa9 2011 Perberos\n" "Copyright \xc2\xa9 2012-2021 MATE developers"<br>)</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="4552"><td class="num" id="LN4552">4552</td><td class="line"> <span class='string_literal'><span class='macro'>"Copyright \xc2\xa9 2007–2010 Christian Persch\n"<span class='macro_popup'>gettext ("Copyright \xc2\xa9 2002–2004 Havoc Pennington\n" "Copyright \xc2\xa9 2003–2004, 2007 Mariano Suárez-Alvarez\n"<br> "Copyright \xc2\xa9 2006 Guilherme de S. Pastore\n" "Copyright \xc2\xa9 2007–2010 Christian Persch\n"<br> "Copyright \xc2\xa9 2011 Perberos\n" "Copyright \xc2\xa9 2012-2021 MATE developers"<br>)</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="4553"><td class="num" id="LN4553">4553</td><td class="line"> <span class='string_literal'><span class='macro'>"Copyright \xc2\xa9 2011 Perberos\n"<span class='macro_popup'>gettext ("Copyright \xc2\xa9 2002–2004 Havoc Pennington\n" "Copyright \xc2\xa9 2003–2004, 2007 Mariano Suárez-Alvarez\n"<br> "Copyright \xc2\xa9 2006 Guilherme de S. Pastore\n" "Copyright \xc2\xa9 2007–2010 Christian Persch\n"<br> "Copyright \xc2\xa9 2011 Perberos\n" "Copyright \xc2\xa9 2012-2021 MATE developers"<br>)</span></span></span></td></tr>
+<tr class="codeline" data-linenumber="4554"><td class="num" id="LN4554">4554</td><td class="line"> <span class='string_literal'><span class='macro'>"Copyright \xc2\xa9 2012-2021 MATE developers"</span>)<span class='macro_popup'>gettext ("Copyright \xc2\xa9 2002–2004 Havoc Pennington\n" "Copyright \xc2\xa9 2003–2004, 2007 Mariano Suárez-Alvarez\n"<br> "Copyright \xc2\xa9 2006 Guilherme de S. Pastore\n" "Copyright \xc2\xa9 2007–2010 Christian Persch\n"<br> "Copyright \xc2\xa9 2011 Perberos\n" "Copyright \xc2\xa9 2012-2021 MATE developers"<br>)</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="4555"><td class="num" id="LN4555">4555</td><td class="line"> <span class='string_literal'>"comments"</span>, comments,</td></tr>
+<tr class="codeline" data-linenumber="4556"><td class="num" id="LN4556">4556</td><td class="line"> <span class='string_literal'>"authors"</span>, array_strv,</td></tr>
+<tr class="codeline" data-linenumber="4557"><td class="num" id="LN4557">4557</td><td class="line"> <span class='string_literal'>"artists"</span>, artists,</td></tr>
+<tr class="codeline" data-linenumber="4558"><td class="num" id="LN4558">4558</td><td class="line"> <span class='string_literal'>"documenters"</span>, documenters,</td></tr>
+<tr class="codeline" data-linenumber="4559"><td class="num" id="LN4559">4559</td><td class="line"> <span class='string_literal'>"license"</span>, licence_text,</td></tr>
+<tr class="codeline" data-linenumber="4560"><td class="num" id="LN4560">4560</td><td class="line"> <span class='string_literal'>"wrap-license"</span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="4561"><td class="num" id="LN4561">4561</td><td class="line"> <span class='string_literal'>"translator-credits"</span>, <span class='macro'>_(<span class='string_literal'>"translator-credits"</span>)<span class='macro_popup'>gettext ("translator-credits")</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="4562"><td class="num" id="LN4562">4562</td><td class="line"> <span class='string_literal'>"logo-icon-name"</span>, <span class='macro'>MATE_TERMINAL_ICON_NAME<span class='macro_popup'>"utilities-terminal"</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="4563"><td class="num" id="LN4563">4563</td><td class="line"> <span class='string_literal'>"website"</span>, <span class='macro'>PACKAGE_URL<span class='macro_popup'>"https://mate-desktop.org"</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="4564"><td class="num" id="LN4564">4564</td><td class="line"> <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="4565"><td class="num" id="LN4565">4565</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4566"><td class="num" id="LN4566">4566</td><td class="line"> g_free (comments);</td></tr>
+<tr class="codeline" data-linenumber="4567"><td class="num" id="LN4567">4567</td><td class="line"> g_strfreev (array_strv);</td></tr>
+<tr class="codeline" data-linenumber="4568"><td class="num" id="LN4568">4568</td><td class="line"> g_strfreev (artists);</td></tr>
+<tr class="codeline" data-linenumber="4569"><td class="num" id="LN4569">4569</td><td class="line"> g_strfreev (documenters);</td></tr>
+<tr class="codeline" data-linenumber="4570"><td class="num" id="LN4570">4570</td><td class="line"> g_free (licence_text);</td></tr>
+<tr class="codeline" data-linenumber="4571"><td class="num" id="LN4571">4571</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="4572"><td class="num" id="LN4572">4572</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4573"><td class="num" id="LN4573">4573</td><td class="line">GtkUIManager *</td></tr>
+<tr class="codeline" data-linenumber="4574"><td class="num" id="LN4574">4574</td><td class="line">terminal_window_get_ui_manager (TerminalWindow *window)</td></tr>
+<tr class="codeline" data-linenumber="4575"><td class="num" id="LN4575">4575</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="4576"><td class="num" id="LN4576">4576</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="4577"><td class="num" id="LN4577">4577</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4578"><td class="num" id="LN4578">4578</td><td class="line"> <span class='keyword'>return</span> priv-&gt;ui_manager;</td></tr>
+<tr class="codeline" data-linenumber="4579"><td class="num" id="LN4579">4579</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="4580"><td class="num" id="LN4580">4580</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4581"><td class="num" id="LN4581">4581</td><td class="line"><span class='keyword'>void</span></td></tr>
+<tr class="codeline" data-linenumber="4582"><td class="num" id="LN4582">4582</td><td class="line">terminal_window_save_state (TerminalWindow *window,</td></tr>
+<tr class="codeline" data-linenumber="4583"><td class="num" id="LN4583">4583</td><td class="line"> GKeyFile *key_file,</td></tr>
+<tr class="codeline" data-linenumber="4584"><td class="num" id="LN4584">4584</td><td class="line"> <span class='keyword'>const</span> <span class='keyword'>char</span> *group)</td></tr>
+<tr class="codeline" data-linenumber="4585"><td class="num" id="LN4585">4585</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="4586"><td class="num" id="LN4586">4586</td><td class="line"> TerminalWindowPrivate *priv = window-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="4587"><td class="num" id="LN4587">4587</td><td class="line"> GList *tabs, *lt;</td></tr>
+<tr class="codeline" data-linenumber="4588"><td class="num" id="LN4588">4588</td><td class="line"> TerminalScreen *active_screen;</td></tr>
+<tr class="codeline" data-linenumber="4589"><td class="num" id="LN4589">4589</td><td class="line"> GdkWindowState state;</td></tr>
+<tr class="codeline" data-linenumber="4590"><td class="num" id="LN4590">4590</td><td class="line"> GPtrArray *tab_names_array;</td></tr>
+<tr class="codeline" data-linenumber="4591"><td class="num" id="LN4591">4591</td><td class="line"> <span class='keyword'>char</span> **tab_names;</td></tr>
+<tr class="codeline" data-linenumber="4592"><td class="num" id="LN4592">4592</td><td class="line"> gsize len;</td></tr>
+<tr class="codeline" data-linenumber="4593"><td class="num" id="LN4593">4593</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4594"><td class="num" id="LN4594">4594</td><td class="line"> <span class='comment'>//XXXif (priv-&gt;menub)//XXX</span></td></tr>
+<tr class="codeline" data-linenumber="4595"><td class="num" id="LN4595">4595</td><td class="line"> g_key_file_set_boolean (key_file, group, <span class='macro'>TERMINAL_CONFIG_WINDOW_PROP_MENUBAR_VISIBLE<span class='macro_popup'>"MenubarVisible"</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="4596"><td class="num" id="LN4596">4596</td><td class="line"> priv-&gt;menubar_visible);</td></tr>
+<tr class="codeline" data-linenumber="4597"><td class="num" id="LN4597">4597</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4598"><td class="num" id="LN4598">4598</td><td class="line"> g_key_file_set_string (key_file, group, <span class='macro'>TERMINAL_CONFIG_WINDOW_PROP_ROLE<span class='macro_popup'>"Role"</span></span>,</td></tr>
+<tr class="codeline" data-linenumber="4599"><td class="num" id="LN4599">4599</td><td class="line"> gtk_window_get_role (<span class='macro'>GTK_WINDOW (window)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_window_get_type ()))))))</span></span>));</td></tr>
+<tr class="codeline" data-linenumber="4600"><td class="num" id="LN4600">4600</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4601"><td class="num" id="LN4601">4601</td><td class="line"> state = gdk_window_get_state (gtk_widget_get_window (<span class='macro'>GTK_WIDGET (window)<span class='macro_popup'>((((GtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_widget_get_type ()))))))</span></span>));</td></tr>
+<tr class="codeline" data-linenumber="4602"><td class="num" id="LN4602">4602</td><td class="line"> <span class='keyword'>if</span> (state &amp; GDK_WINDOW_STATE_MAXIMIZED)</td></tr>
+<tr class="codeline" data-linenumber="4603"><td class="num" id="LN4603">4603</td><td class="line"> g_key_file_set_boolean (key_file, group, <span class='macro'>TERMINAL_CONFIG_WINDOW_PROP_MAXIMIZED<span class='macro_popup'>"Maximized"</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="4604"><td class="num" id="LN4604">4604</td><td class="line"> <span class='keyword'>if</span> (state &amp; GDK_WINDOW_STATE_FULLSCREEN)</td></tr>
+<tr class="codeline" data-linenumber="4605"><td class="num" id="LN4605">4605</td><td class="line"> g_key_file_set_boolean (key_file, group, <span class='macro'>TERMINAL_CONFIG_WINDOW_PROP_FULLSCREEN<span class='macro_popup'>"Fullscreen"</span></span>, <span class='macro'>TRUE<span class='macro_popup'>(!(0))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="4606"><td class="num" id="LN4606">4606</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4607"><td class="num" id="LN4607">4607</td><td class="line"> active_screen = terminal_window_get_active (window);</td></tr>
+<tr class="codeline" data-linenumber="4608"><td class="num" id="LN4608">4608</td><td class="line"> tabs = terminal_window_list_screen_containers (window);</td></tr>
+<tr class="codeline" data-linenumber="4609"><td class="num" id="LN4609">4609</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4610"><td class="num" id="LN4610">4610</td><td class="line"> tab_names_array = g_ptr_array_sized_new (g_list_length (tabs) + 1);</td></tr>
+<tr class="codeline" data-linenumber="4611"><td class="num" id="LN4611">4611</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4612"><td class="num" id="LN4612">4612</td><td class="line"> <span class='keyword'>for</span> (lt = tabs; lt != <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>; lt = lt-&gt;next)</td></tr>
+<tr class="codeline" data-linenumber="4613"><td class="num" id="LN4613">4613</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="4614"><td class="num" id="LN4614">4614</td><td class="line"> TerminalScreen *screen;</td></tr>
+<tr class="codeline" data-linenumber="4615"><td class="num" id="LN4615">4615</td><td class="line"> <span class='keyword'>char</span> *tab_group;</td></tr>
+<tr class="codeline" data-linenumber="4616"><td class="num" id="LN4616">4616</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4617"><td class="num" id="LN4617">4617</td><td class="line"> screen = terminal_screen_container_get_screen (<span class='macro'>TERMINAL_SCREEN_CONTAINER (lt-&gt;data)<span class='macro_popup'>((((TerminalScreenContainer*) (void *) g_type_check_instance_cast<br> ((GTypeInstance*) ((lt-&gt;data)), ((terminal_screen_container_get_type<br> ()))))))</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="4618"><td class="num" id="LN4618">4618</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4619"><td class="num" id="LN4619">4619</td><td class="line"> tab_group = g_strdup_printf (<span class='string_literal'>"Terminal%p"</span>, screen);</td></tr>
+<tr class="codeline" data-linenumber="4620"><td class="num" id="LN4620">4620</td><td class="line"> g_ptr_array_add (tab_names_array, tab_group);</td></tr>
+<tr class="codeline" data-linenumber="4621"><td class="num" id="LN4621">4621</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4622"><td class="num" id="LN4622">4622</td><td class="line"> terminal_screen_save_config (screen, key_file, tab_group);</td></tr>
+<tr class="codeline" data-linenumber="4623"><td class="num" id="LN4623">4623</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4624"><td class="num" id="LN4624">4624</td><td class="line"> <span class='keyword'>if</span> (screen == active_screen)</td></tr>
+<tr class="codeline" data-linenumber="4625"><td class="num" id="LN4625">4625</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="4626"><td class="num" id="LN4626">4626</td><td class="line"> <span class='keyword'>int</span> w, h, x, y;</td></tr>
+<tr class="codeline" data-linenumber="4627"><td class="num" id="LN4627">4627</td><td class="line"> <span class='keyword'>char</span> *geometry;</td></tr>
+<tr class="codeline" data-linenumber="4628"><td class="num" id="LN4628">4628</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4629"><td class="num" id="LN4629">4629</td><td class="line"> g_key_file_set_string (key_file, group, <span class='macro'>TERMINAL_CONFIG_WINDOW_PROP_ACTIVE_TAB<span class='macro_popup'>"ActiveTerminal"</span></span>, tab_group);</td></tr>
+<tr class="codeline" data-linenumber="4630"><td class="num" id="LN4630">4630</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4631"><td class="num" id="LN4631">4631</td><td class="line"> <span class='comment'>/* FIXME saving the geometry is not great :-/ */</span></td></tr>
+<tr class="codeline" data-linenumber="4632"><td class="num" id="LN4632">4632</td><td class="line"> terminal_screen_get_size (screen, &amp;w, &amp;h);</td></tr>
+<tr class="codeline" data-linenumber="4633"><td class="num" id="LN4633">4633</td><td class="line"> gtk_window_get_position (<span class='macro'>GTK_WINDOW (window)<span class='macro_popup'>((((GtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance<br>*) ((window)), ((gtk_window_get_type ()))))))</span></span>, &amp;x, &amp;y);</td></tr>
+<tr class="codeline" data-linenumber="4634"><td class="num" id="LN4634">4634</td><td class="line"> geometry = g_strdup_printf (<span class='string_literal'>"%dx%d+%d+%d"</span>, w, h, x, y);</td></tr>
+<tr class="codeline" data-linenumber="4635"><td class="num" id="LN4635">4635</td><td class="line"> g_key_file_set_string (key_file, group, <span class='macro'>TERMINAL_CONFIG_WINDOW_PROP_GEOMETRY<span class='macro_popup'>"Geometry"</span></span>, geometry);</td></tr>
+<tr class="codeline" data-linenumber="4636"><td class="num" id="LN4636">4636</td><td class="line"> g_free (geometry);</td></tr>
+<tr class="codeline" data-linenumber="4637"><td class="num" id="LN4637">4637</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="4638"><td class="num" id="LN4638">4638</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="4639"><td class="num" id="LN4639">4639</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4640"><td class="num" id="LN4640">4640</td><td class="line"> g_list_free (tabs);</td></tr>
+<tr class="codeline" data-linenumber="4641"><td class="num" id="LN4641">4641</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4642"><td class="num" id="LN4642">4642</td><td class="line"> len = tab_names_array-&gt;len;</td></tr>
+<tr class="codeline" data-linenumber="4643"><td class="num" id="LN4643">4643</td><td class="line"> g_ptr_array_add (tab_names_array, <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="4644"><td class="num" id="LN4644">4644</td><td class="line"> tab_names = (<span class='keyword'>char</span> **) g_ptr_array_free (tab_names_array, <span class='macro'>FALSE<span class='macro_popup'>(0)</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="4645"><td class="num" id="LN4645">4645</td><td class="line"> g_key_file_set_string_list (key_file, group, <span class='macro'>TERMINAL_CONFIG_WINDOW_PROP_TABS<span class='macro_popup'>"Terminals"</span></span>, (<span class='keyword'>const</span> <span class='keyword'>char</span> * <span class='keyword'>const</span> *) tab_names, len);</td></tr>
+<tr class="codeline" data-linenumber="4646"><td class="num" id="LN4646">4646</td><td class="line"> g_strfreev (tab_names);</td></tr>
+<tr class="codeline" data-linenumber="4647"><td class="num" id="LN4647">4647</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="4648"><td class="num" id="LN4648">4648</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4649"><td class="num" id="LN4649">4649</td><td class="line">TerminalWindow *</td></tr>
+<tr class="codeline" data-linenumber="4650"><td class="num" id="LN4650">4650</td><td class="line">terminal_window_get_latest_focused (TerminalWindow *window1,</td></tr>
+<tr class="codeline" data-linenumber="4651"><td class="num" id="LN4651">4651</td><td class="line"> TerminalWindow *window2)</td></tr>
+<tr class="codeline" data-linenumber="4652"><td class="num" id="LN4652">4652</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="4653"><td class="num" id="LN4653">4653</td><td class="line"> TerminalWindowPrivate *priv1 = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="4654"><td class="num" id="LN4654">4654</td><td class="line"> TerminalWindowPrivate *priv2 = <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="4655"><td class="num" id="LN4655">4655</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4656"><td class="num" id="LN4656">4656</td><td class="line"> <span class='keyword'>if</span> (!window1)</td></tr>
+<tr class="codeline" data-linenumber="4657"><td class="num" id="LN4657">4657</td><td class="line"> <span class='keyword'>return</span> window2;</td></tr>
+<tr class="codeline" data-linenumber="4658"><td class="num" id="LN4658">4658</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4659"><td class="num" id="LN4659">4659</td><td class="line"> <span class='keyword'>if</span> (!window2)</td></tr>
+<tr class="codeline" data-linenumber="4660"><td class="num" id="LN4660">4660</td><td class="line"> <span class='keyword'>return</span> window1;</td></tr>
+<tr class="codeline" data-linenumber="4661"><td class="num" id="LN4661">4661</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4662"><td class="num" id="LN4662">4662</td><td class="line"> priv1 = window1-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="4663"><td class="num" id="LN4663">4663</td><td class="line"> priv2 = window2-&gt;priv;</td></tr>
+<tr class="codeline" data-linenumber="4664"><td class="num" id="LN4664">4664</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4665"><td class="num" id="LN4665">4665</td><td class="line"> <span class='keyword'>if</span> (priv2-&gt;focus_time &gt; priv1-&gt;focus_time)</td></tr>
+<tr class="codeline" data-linenumber="4666"><td class="num" id="LN4666">4666</td><td class="line"> <span class='keyword'>return</span> window2;</td></tr>
+<tr class="codeline" data-linenumber="4667"><td class="num" id="LN4667">4667</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="4668"><td class="num" id="LN4668">4668</td><td class="line"> <span class='keyword'>return</span> window1;</td></tr>
+<tr class="codeline" data-linenumber="4669"><td class="num" id="LN4669">4669</td><td class="line">}</td></tr>
+</table></body></html>
diff --git a/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-f1a256.html b/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-f1a256.html
new file mode 100644
index 0000000..b49a823
--- /dev/null
+++ b/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/report-f1a256.html
@@ -0,0 +1,789 @@
+<!doctype html>
+<html>
+<head>
+<title>sha1.c</title>
+
+<style type="text/css">
+body { color:#000000; background-color:#ffffff }
+body { font-family:Helvetica, sans-serif; font-size:10pt }
+h1 { font-size:14pt }
+.FileName { margin-top: 5px; margin-bottom: 5px; display: inline; }
+.FileNav { margin-left: 5px; margin-right: 5px; display: inline; }
+.FileNav a { text-decoration:none; font-size: larger; }
+.divider { margin-top: 30px; margin-bottom: 30px; height: 15px; }
+.divider { background-color: gray; }
+.code { border-collapse:collapse; width:100%; }
+.code { font-family: "Monospace", monospace; font-size:10pt }
+.code { line-height: 1.2em }
+.comment { color: green; font-style: oblique }
+.keyword { color: blue }
+.string_literal { color: red }
+.directive { color: darkmagenta }
+
+/* Macros and variables could have pop-up notes hidden by default.
+ - Macro pop-up: expansion of the macro
+ - Variable pop-up: value (table) of the variable */
+.macro_popup, .variable_popup { display: none; }
+
+/* Pop-up appears on mouse-hover event. */
+.macro:hover .macro_popup, .variable:hover .variable_popup {
+ display: block;
+ padding: 2px;
+ -webkit-border-radius:5px;
+ -webkit-box-shadow:1px 1px 7px #000;
+ border-radius:5px;
+ box-shadow:1px 1px 7px #000;
+ position: absolute;
+ top: -1em;
+ left:10em;
+ z-index: 1
+}
+
+.macro_popup {
+ border: 2px solid red;
+ background-color:#FFF0F0;
+ font-weight: normal;
+}
+
+.variable_popup {
+ border: 2px solid blue;
+ background-color:#F0F0FF;
+ font-weight: bold;
+ font-family: Helvetica, sans-serif;
+ font-size: 9pt;
+}
+
+/* Pop-up notes needs a relative position as a base where they pops up. */
+.macro, .variable {
+ background-color: PaleGoldenRod;
+ position: relative;
+}
+.macro { color: DarkMagenta; }
+
+#tooltiphint {
+ position: fixed;
+ width: 50em;
+ margin-left: -25em;
+ left: 50%;
+ padding: 10px;
+ border: 1px solid #b0b0b0;
+ border-radius: 2px;
+ box-shadow: 1px 1px 7px black;
+ background-color: #c0c0c0;
+ z-index: 2;
+}
+
+.num { width:2.5em; padding-right:2ex; background-color:#eeeeee }
+.num { text-align:right; font-size:8pt }
+.num { color:#444444 }
+.line { padding-left: 1ex; border-left: 3px solid #ccc }
+.line { white-space: pre }
+.msg { -webkit-box-shadow:1px 1px 7px #000 }
+.msg { box-shadow:1px 1px 7px #000 }
+.msg { -webkit-border-radius:5px }
+.msg { border-radius:5px }
+.msg { font-family:Helvetica, sans-serif; font-size:8pt }
+.msg { float:left }
+.msg { position:relative }
+.msg { padding:0.25em 1ex 0.25em 1ex }
+.msg { margin-top:10px; margin-bottom:10px }
+.msg { font-weight:bold }
+.msg { max-width:60em; word-wrap: break-word; white-space: pre-wrap }
+.msgT { padding:0x; spacing:0x }
+.msgEvent { background-color:#fff8b4; color:#000000 }
+.msgControl { background-color:#bbbbbb; color:#000000 }
+.msgNote { background-color:#ddeeff; color:#000000 }
+.mrange { background-color:#dfddf3 }
+.mrange { border-bottom:1px solid #6F9DBE }
+.PathIndex { font-weight: bold; padding:0px 5px; margin-right:5px; }
+.PathIndex { -webkit-border-radius:8px }
+.PathIndex { border-radius:8px }
+.PathIndexEvent { background-color:#bfba87 }
+.PathIndexControl { background-color:#8c8c8c }
+.PathIndexPopUp { background-color: #879abc; }
+.PathNav a { text-decoration:none; font-size: larger }
+.CodeInsertionHint { font-weight: bold; background-color: #10dd10 }
+.CodeRemovalHint { background-color:#de1010 }
+.CodeRemovalHint { border-bottom:1px solid #6F9DBE }
+.msg.selected{ background-color:orange !important; }
+
+table.simpletable {
+ padding: 5px;
+ font-size:12pt;
+ margin:20px;
+ border-collapse: collapse; border-spacing: 0px;
+}
+td.rowname {
+ text-align: right;
+ vertical-align: top;
+ font-weight: bold;
+ color:#444444;
+ padding-right:2ex;
+}
+
+/* Hidden text. */
+input.spoilerhider + label {
+ cursor: pointer;
+ text-decoration: underline;
+ display: block;
+}
+input.spoilerhider {
+ display: none;
+}
+input.spoilerhider ~ .spoiler {
+ overflow: hidden;
+ margin: 10px auto 0;
+ height: 0;
+ opacity: 0;
+}
+input.spoilerhider:checked + label + .spoiler{
+ height: auto;
+ opacity: 1;
+}
+</style>
+</head>
+<body>
+<!-- BUGDESC Call to function 'strcat' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcat'. CWE-119 -->
+
+<!-- BUGTYPE Potential insecure memory buffer bounds restriction in call 'strcat' -->
+
+<!-- BUGCATEGORY Security -->
+
+<!-- BUGFILE /rootdir/src/skey/sha1.c -->
+
+<!-- FILENAME sha1.c -->
+
+<!-- FUNCTIONNAME SHA1Keycrunch -->
+
+<!-- ISSUEHASHCONTENTOFLINEINCONTEXT f1a256c8eff192a6060c8c95089a8b91 -->
+
+<!-- BUGLINE 53 -->
+
+<!-- BUGCOLUMN 2 -->
+
+<!-- BUGPATHLENGTH 1 -->
+
+<!-- BUGMETAEND -->
+<!-- REPORTHEADER -->
+<h3>Bug Summary</h3>
+<table class="simpletable">
+<tr><td class="rowname">File:</td><td>skey/sha1.c</td></tr>
+<tr><td class="rowname">Warning:</td><td><a href="#EndPath">line 53, column 2</a><br />Call to function 'strcat' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcat'. CWE-119</td></tr>
+
+</table>
+<!-- REPORTSUMMARYEXTRA -->
+<h3>Annotated Source Code</h3>
+<p>Press <a href="#" onclick="toggleHelp(); return false;">'?'</a>
+ to see keyboard shortcuts</p>
+<input type="checkbox" class="spoilerhider" id="showinvocation" />
+<label for="showinvocation" >Show analyzer invocation</label>
+<div class="spoiler">clang -cc1 -cc1 -triple x86_64-redhat-linux-gnu -analyze -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name sha1.c -analyzer-checker=core -analyzer-checker=apiModeling -analyzer-checker=unix -analyzer-checker=deadcode -analyzer-checker=security.insecureAPI.UncheckedReturn -analyzer-checker=security.insecureAPI.getpw -analyzer-checker=security.insecureAPI.gets -analyzer-checker=security.insecureAPI.mktemp -analyzer-checker=security.insecureAPI.mkstemp -analyzer-checker=security.insecureAPI.vfork -analyzer-checker=nullability.NullPassedToNonnull -analyzer-checker=nullability.NullReturnedFromNonnull -analyzer-output plist -w -setup-static-analyzer -mrelocation-model pic -pic-level 2 -fhalf-no-semantic-interposition -mframe-pointer=all -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -tune-cpu generic -debugger-tuning=gdb -fcoverage-compilation-dir=/rootdir/src/skey -resource-dir /usr/bin/../lib/clang/17 -D HAVE_CONFIG_H -I . -I ../.. -I ./.. -D G_DISABLE_SINGLE_INCLUDES -I /usr/include/dconf -I /usr/include/vte-2.91 -I /usr/include/pango-1.0 -I /usr/include/gtk-3.0 -I /usr/include/gdk-pixbuf-2.0 -I /usr/include/cairo -I /usr/include/dbus-1.0 -I /usr/lib64/dbus-1.0/include -I /usr/include/atk-1.0 -I /usr/include/harfbuzz -I /usr/include/freetype2 -I /usr/include/glib-2.0 -I /usr/lib64/glib-2.0/include -I /usr/include/cloudproviders -I /usr/include/at-spi2-atk/2.0 -I /usr/include/at-spi-2.0 -I /usr/include/blkid -I /usr/include/gio-unix-2.0 -I /usr/include/pixman-1 -I /usr/include/libmount -I /usr/include/libxml2 -I /usr/include/fribidi -I /usr/include/libpng16 -I /usr/include/sysprof-6 -D PIC -internal-isystem /usr/bin/../lib/clang/17/include -internal-isystem /usr/local/include -internal-isystem /usr/bin/../lib/gcc/x86_64-redhat-linux/13/../../../../x86_64-redhat-linux/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -Wno-unused-parameter -fdebug-compilation-dir=/rootdir/src/skey -ferror-limit 19 -fgnuc-version=4.2.1 -analyzer-checker deadcode.DeadStores -analyzer-checker alpha.deadcode.UnreachableCode -analyzer-checker alpha.core.CastSize -analyzer-checker alpha.core.CastToStruct -analyzer-checker alpha.core.IdenticalExpr -analyzer-checker alpha.core.SizeofPtr -analyzer-checker alpha.security.ArrayBoundV2 -analyzer-checker alpha.security.MallocOverflow -analyzer-checker alpha.security.ReturnPtrRange -analyzer-checker alpha.unix.SimpleStream -analyzer-checker alpha.unix.cstring.BufferOverlap -analyzer-checker alpha.unix.cstring.NotNullTerminated -analyzer-checker alpha.unix.cstring.OutOfBounds -analyzer-checker alpha.core.FixedAddr -analyzer-checker security.insecureAPI.strcpy -analyzer-output=html -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /rootdir/html-report/2024-02-18-131424-5067-1 -x c sha1.c
+</div>
+<div id='tooltiphint' hidden="true">
+ <p>Keyboard shortcuts: </p>
+ <ul>
+ <li>Use 'j/k' keys for keyboard navigation</li>
+ <li>Use 'Shift+S' to show/hide relevant lines</li>
+ <li>Use '?' to toggle this window</li>
+ </ul>
+ <a href="#" onclick="toggleHelp(); return false;">Close</a>
+</div>
+<script type='text/javascript'>
+var relevant_lines = {"1": {"53": 1}};
+
+var filterCounterexample = function (hide) {
+ var tables = document.getElementsByClassName("code");
+ for (var t=0; t<tables.length; t++) {
+ var table = tables[t];
+ var file_id = table.getAttribute("data-fileid");
+ var lines_in_fid = relevant_lines[file_id];
+ if (!lines_in_fid) {
+ lines_in_fid = {};
+ }
+ var lines = table.getElementsByClassName("codeline");
+ for (var i=0; i<lines.length; i++) {
+ var el = lines[i];
+ var lineNo = el.getAttribute("data-linenumber");
+ if (!lines_in_fid[lineNo]) {
+ if (hide) {
+ el.setAttribute("hidden", "");
+ } else {
+ el.removeAttribute("hidden");
+ }
+ }
+ }
+ }
+}
+
+window.addEventListener("keydown", function (event) {
+ if (event.defaultPrevented) {
+ return;
+ }
+ // SHIFT + S
+ if (event.shiftKey && event.keyCode == 83) {
+ var checked = document.getElementsByName("showCounterexample")[0].checked;
+ filterCounterexample(!checked);
+ document.getElementsByName("showCounterexample")[0].click();
+ } else {
+ return;
+ }
+ event.preventDefault();
+}, true);
+
+document.addEventListener("DOMContentLoaded", function() {
+ document.querySelector('input[name="showCounterexample"]').onchange=
+ function (event) {
+ filterCounterexample(this.checked);
+ };
+});
+</script>
+
+<form>
+ <input type="checkbox" name="showCounterexample" id="showCounterexample" />
+ <label for="showCounterexample">
+ Show only relevant lines
+ </label>
+ <input type="checkbox" name="showArrows"
+ id="showArrows" style="margin-left: 10px" />
+ <label for="showArrows">
+ Show control flow arrows
+ </label>
+</form>
+
+<script type='text/javascript'>
+// Return range of numbers from a range [lower, upper).
+function range(lower, upper) {
+ var array = [];
+ for (var i = lower; i <= upper; ++i) {
+ array.push(i);
+ }
+ return array;
+}
+
+var getRelatedArrowIndices = function(pathId) {
+ // HTML numeration of events is a bit different than it is in the path.
+ // Everything is rotated one step to the right, so the last element
+ // (error diagnostic) has index 0.
+ if (pathId == 0) {
+ // arrowIndices has at least 2 elements
+ pathId = arrowIndices.length - 1;
+ }
+
+ return range(arrowIndices[pathId], arrowIndices[pathId - 1]);
+}
+
+var highlightArrowsForSelectedEvent = function() {
+ const selectedNum = findNum();
+ const arrowIndicesToHighlight = getRelatedArrowIndices(selectedNum);
+ arrowIndicesToHighlight.forEach((index) => {
+ var arrow = document.querySelector("#arrow" + index);
+ if(arrow) {
+ classListAdd(arrow, "selected")
+ }
+ });
+}
+
+var getAbsoluteBoundingRect = function(element) {
+ const relative = element.getBoundingClientRect();
+ return {
+ left: relative.left + window.pageXOffset,
+ right: relative.right + window.pageXOffset,
+ top: relative.top + window.pageYOffset,
+ bottom: relative.bottom + window.pageYOffset,
+ height: relative.height,
+ width: relative.width
+ };
+}
+
+var drawArrow = function(index) {
+ // This function is based on the great answer from SO:
+ // https://stackoverflow.com/a/39575674/11582326
+ var start = document.querySelector("#start" + index);
+ var end = document.querySelector("#end" + index);
+ var arrow = document.querySelector("#arrow" + index);
+
+ var startRect = getAbsoluteBoundingRect(start);
+ var endRect = getAbsoluteBoundingRect(end);
+
+ // It is an arrow from a token to itself, no need to visualize it.
+ if (startRect.top == endRect.top &&
+ startRect.left == endRect.left)
+ return;
+
+ // Each arrow is a very simple Bézier curve, with two nodes and
+ // two handles. So, we need to calculate four points in the window:
+ // * start node
+ var posStart = { x: 0, y: 0 };
+ // * end node
+ var posEnd = { x: 0, y: 0 };
+ // * handle for the start node
+ var startHandle = { x: 0, y: 0 };
+ // * handle for the end node
+ var endHandle = { x: 0, y: 0 };
+ // One can visualize it as follows:
+ //
+ // start handle
+ // /
+ // X"""_.-""""X
+ // .' \
+ // / start node
+ // |
+ // |
+ // | end node
+ // \ /
+ // `->X
+ // X-'
+ // \
+ // end handle
+ //
+ // NOTE: (0, 0) is the top left corner of the window.
+
+ // We have 3 similar, but still different scenarios to cover:
+ //
+ // 1. Two tokens on different lines.
+ // -xxx
+ // /
+ // \
+ // -> xxx
+ // In this situation, we draw arrow on the left curving to the left.
+ // 2. Two tokens on the same line, and the destination is on the right.
+ // ____
+ // / \
+ // / V
+ // xxx xxx
+ // In this situation, we draw arrow above curving upwards.
+ // 3. Two tokens on the same line, and the destination is on the left.
+ // xxx xxx
+ // ^ /
+ // \____/
+ // In this situation, we draw arrow below curving downwards.
+ const onDifferentLines = startRect.top <= endRect.top - 5 ||
+ startRect.top >= endRect.top + 5;
+ const leftToRight = startRect.left < endRect.left;
+
+ // NOTE: various magic constants are chosen empirically for
+ // better positioning and look
+ if (onDifferentLines) {
+ // Case #1
+ const topToBottom = startRect.top < endRect.top;
+ posStart.x = startRect.left - 1;
+ // We don't want to start it at the top left corner of the token,
+ // it doesn't feel like this is where the arrow comes from.
+ // For this reason, we start it in the middle of the left side
+ // of the token.
+ posStart.y = startRect.top + startRect.height / 2;
+
+ // End node has arrow head and we give it a bit more space.
+ posEnd.x = endRect.left - 4;
+ posEnd.y = endRect.top;
+
+ // Utility object with x and y offsets for handles.
+ var curvature = {
+ // We want bottom-to-top arrow to curve a bit more, so it doesn't
+ // overlap much with top-to-bottom curves (much more frequent).
+ x: topToBottom ? 15 : 25,
+ y: Math.min((posEnd.y - posStart.y) / 3, 10)
+ }
+
+ // When destination is on the different line, we can make a
+ // curvier arrow because we have space for it.
+ // So, instead of using
+ //
+ // startHandle.x = posStart.x - curvature.x
+ // endHandle.x = posEnd.x - curvature.x
+ //
+ // We use the leftmost of these two values for both handles.
+ startHandle.x = Math.min(posStart.x, posEnd.x) - curvature.x;
+ endHandle.x = startHandle.x;
+
+ // Curving downwards from the start node...
+ startHandle.y = posStart.y + curvature.y;
+ // ... and upwards from the end node.
+ endHandle.y = posEnd.y - curvature.y;
+
+ } else if (leftToRight) {
+ // Case #2
+ // Starting from the top right corner...
+ posStart.x = startRect.right - 1;
+ posStart.y = startRect.top;
+
+ // ...and ending at the top left corner of the end token.
+ posEnd.x = endRect.left + 1;
+ posEnd.y = endRect.top - 1;
+
+ // Utility object with x and y offsets for handles.
+ var curvature = {
+ x: Math.min((posEnd.x - posStart.x) / 3, 15),
+ y: 5
+ }
+
+ // Curving to the right...
+ startHandle.x = posStart.x + curvature.x;
+ // ... and upwards from the start node.
+ startHandle.y = posStart.y - curvature.y;
+
+ // And to the left...
+ endHandle.x = posEnd.x - curvature.x;
+ // ... and upwards from the end node.
+ endHandle.y = posEnd.y - curvature.y;
+
+ } else {
+ // Case #3
+ // Starting from the bottom right corner...
+ posStart.x = startRect.right;
+ posStart.y = startRect.bottom;
+
+ // ...and ending also at the bottom right corner, but of the end token.
+ posEnd.x = endRect.right - 1;
+ posEnd.y = endRect.bottom + 1;
+
+ // Utility object with x and y offsets for handles.
+ var curvature = {
+ x: Math.min((posStart.x - posEnd.x) / 3, 15),
+ y: 5
+ }
+
+ // Curving to the left...
+ startHandle.x = posStart.x - curvature.x;
+ // ... and downwards from the start node.
+ startHandle.y = posStart.y + curvature.y;
+
+ // And to the right...
+ endHandle.x = posEnd.x + curvature.x;
+ // ... and downwards from the end node.
+ endHandle.y = posEnd.y + curvature.y;
+ }
+
+ // Put it all together into a path.
+ // More information on the format:
+ // https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths
+ var pathStr = "M" + posStart.x + "," + posStart.y + " " +
+ "C" + startHandle.x + "," + startHandle.y + " " +
+ endHandle.x + "," + endHandle.y + " " +
+ posEnd.x + "," + posEnd.y;
+
+ arrow.setAttribute("d", pathStr);
+};
+
+var drawArrows = function() {
+ const numOfArrows = document.querySelectorAll("path[id^=arrow]").length;
+ for (var i = 0; i < numOfArrows; ++i) {
+ drawArrow(i);
+ }
+}
+
+var toggleArrows = function(event) {
+ const arrows = document.querySelector("#arrows");
+ if (event.target.checked) {
+ arrows.setAttribute("visibility", "visible");
+ } else {
+ arrows.setAttribute("visibility", "hidden");
+ }
+}
+
+window.addEventListener("resize", drawArrows);
+document.addEventListener("DOMContentLoaded", function() {
+ // Whenever we show invocation, locations change, i.e. we
+ // need to redraw arrows.
+ document
+ .querySelector('input[id="showinvocation"]')
+ .addEventListener("click", drawArrows);
+ // Hiding irrelevant lines also should cause arrow rerender.
+ document
+ .querySelector('input[name="showCounterexample"]')
+ .addEventListener("change", drawArrows);
+ document
+ .querySelector('input[name="showArrows"]')
+ .addEventListener("change", toggleArrows);
+ drawArrows();
+ // Default highlighting for the last event.
+ highlightArrowsForSelectedEvent();
+});
+</script>
+
+<script type='text/javascript'>
+var digitMatcher = new RegExp("[0-9]+");
+
+var querySelectorAllArray = function(selector) {
+ return Array.prototype.slice.call(
+ document.querySelectorAll(selector));
+}
+
+document.addEventListener("DOMContentLoaded", function() {
+ querySelectorAllArray(".PathNav > a").forEach(
+ function(currentValue, currentIndex) {
+ var hrefValue = currentValue.getAttribute("href");
+ currentValue.onclick = function() {
+ scrollTo(document.querySelector(hrefValue));
+ return false;
+ };
+ });
+});
+
+var findNum = function() {
+ var s = document.querySelector(".msg.selected");
+ if (!s || s.id == "EndPath") {
+ return 0;
+ }
+ var out = parseInt(digitMatcher.exec(s.id)[0]);
+ return out;
+};
+
+var classListAdd = function(el, theClass) {
+ if(!el.className.baseVal)
+ el.className += " " + theClass;
+ else
+ el.className.baseVal += " " + theClass;
+};
+
+var classListRemove = function(el, theClass) {
+ var className = (!el.className.baseVal) ?
+ el.className : el.className.baseVal;
+ className = className.replace(" " + theClass, "");
+ if(!el.className.baseVal)
+ el.className = className;
+ else
+ el.className.baseVal = className;
+};
+
+var scrollTo = function(el) {
+ querySelectorAllArray(".selected").forEach(function(s) {
+ classListRemove(s, "selected");
+ });
+ classListAdd(el, "selected");
+ window.scrollBy(0, el.getBoundingClientRect().top -
+ (window.innerHeight / 2));
+ highlightArrowsForSelectedEvent();
+};
+
+var move = function(num, up, numItems) {
+ if (num == 1 && up || num == numItems - 1 && !up) {
+ return 0;
+ } else if (num == 0 && up) {
+ return numItems - 1;
+ } else if (num == 0 && !up) {
+ return 1 % numItems;
+ }
+ return up ? num - 1 : num + 1;
+}
+
+var numToId = function(num) {
+ if (num == 0) {
+ return document.getElementById("EndPath")
+ }
+ return document.getElementById("Path" + num);
+};
+
+var navigateTo = function(up) {
+ var numItems = document.querySelectorAll(
+ ".line > .msgEvent, .line > .msgControl").length;
+ var currentSelected = findNum();
+ var newSelected = move(currentSelected, up, numItems);
+ var newEl = numToId(newSelected, numItems);
+
+ // Scroll element into center.
+ scrollTo(newEl);
+};
+
+window.addEventListener("keydown", function (event) {
+ if (event.defaultPrevented) {
+ return;
+ }
+ // key 'j'
+ if (event.keyCode == 74) {
+ navigateTo(/*up=*/false);
+ // key 'k'
+ } else if (event.keyCode == 75) {
+ navigateTo(/*up=*/true);
+ } else {
+ return;
+ }
+ event.preventDefault();
+}, true);
+</script>
+
+<script type='text/javascript'>
+
+var toggleHelp = function() {
+ var hint = document.querySelector("#tooltiphint");
+ var attributeName = "hidden";
+ if (hint.hasAttribute(attributeName)) {
+ hint.removeAttribute(attributeName);
+ } else {
+ hint.setAttribute("hidden", "true");
+ }
+};
+window.addEventListener("keydown", function (event) {
+ if (event.defaultPrevented) {
+ return;
+ }
+ if (event.key == "?") {
+ toggleHelp();
+ } else {
+ return;
+ }
+ event.preventDefault();
+});
+</script>
+
+<style type="text/css">
+ svg {
+ position:absolute;
+ top:0;
+ left:0;
+ height:100%;
+ width:100%;
+ pointer-events: none;
+ overflow: visible
+ }
+ .arrow {
+ stroke-opacity: 0.2;
+ stroke-width: 1;
+ marker-end: url(#arrowhead);
+ }
+
+ .arrow.selected {
+ stroke-opacity: 0.6;
+ stroke-width: 2;
+ marker-end: url(#arrowheadSelected);
+ }
+
+ .arrowhead {
+ orient: auto;
+ stroke: none;
+ opacity: 0.6;
+ fill: blue;
+ }
+</style>
+<svg xmlns="http://www.w3.org/2000/svg">
+ <defs>
+ <marker id="arrowheadSelected" class="arrowhead" opacity="0.6"
+ viewBox="0 0 10 10" refX="3" refY="5"
+ markerWidth="4" markerHeight="4">
+ <path d="M 0 0 L 10 5 L 0 10 z" />
+ </marker>
+ <marker id="arrowhead" class="arrowhead" opacity="0.2"
+ viewBox="0 0 10 10" refX="3" refY="5"
+ markerWidth="4" markerHeight="4">
+ <path d="M 0 0 L 10 5 L 0 10 z" />
+ </marker>
+ </defs>
+ <g id="arrows" fill="none" stroke="blue" visibility="hidden">
+
+ </g>
+</svg>
+<script type='text/javascript'>
+const arrowIndices = [ 0,0 ]
+</script>
+<table class="code" data-fileid="1">
+<tr class="codeline" data-linenumber="1"><td class="num" id="LN1">1</td><td class="line"><span class='directive'>#include &lt;config.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="2"><td class="num" id="LN2">2</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="3"><td class="num" id="LN3">3</td><td class="line"><span class='directive'>#include &lt;string.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="4"><td class="num" id="LN4">4</td><td class="line"><span class='directive'>#include &lt;stdlib.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="5"><td class="num" id="LN5">5</td><td class="line"><span class='directive'>#include &lt;arpa/inet.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="6"><td class="num" id="LN6">6</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="7"><td class="num" id="LN7">7</td><td class="line"><span class='directive'>#include &lt;glib.h&gt;</span></td></tr>
+<tr class="codeline" data-linenumber="8"><td class="num" id="LN8">8</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="9"><td class="num" id="LN9">9</td><td class="line"><span class='directive'>#include "skey.h"</span></td></tr>
+<tr class="codeline" data-linenumber="10"><td class="num" id="LN10">10</td><td class="line"><span class='directive'>#include "skeyutil.h"</span></td></tr>
+<tr class="codeline" data-linenumber="11"><td class="num" id="LN11">11</td><td class="line"><span class='directive'>#include "sha1.h"</span></td></tr>
+<tr class="codeline" data-linenumber="12"><td class="num" id="LN12">12</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="13"><td class="num" id="LN13">13</td><td class="line"><span class='directive'>#define <span class='macro'>HTONDIGEST(x)<span class='macro_popup'>{ x[0] = htonl(x[0]); x[1] = htonl(x[1]); x[2] = htonl(x[2]);<br> x[3] = htonl(x[3]); x[4] = htonl(x[4]); }</span></span> { \</span></td></tr>
+<tr class="codeline" data-linenumber="14"><td class="num" id="LN14">14</td><td class="line"> <span class='directive'>x[0] = htonl(x[0]); \</span></td></tr>
+<tr class="codeline" data-linenumber="15"><td class="num" id="LN15">15</td><td class="line"> <span class='directive'>x[1] = htonl(x[1]); \</span></td></tr>
+<tr class="codeline" data-linenumber="16"><td class="num" id="LN16">16</td><td class="line"> <span class='directive'>x[2] = htonl(x[2]); \</span></td></tr>
+<tr class="codeline" data-linenumber="17"><td class="num" id="LN17">17</td><td class="line"> <span class='directive'>x[3] = htonl(x[3]); \</span></td></tr>
+<tr class="codeline" data-linenumber="18"><td class="num" id="LN18">18</td><td class="line"> <span class='directive'>x[4] = htonl(x[4]); }</span></td></tr>
+<tr class="codeline" data-linenumber="19"><td class="num" id="LN19">19</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="20"><td class="num" id="LN20">20</td><td class="line"><span class='directive'>#ifdef WORDS_BIGENDIAN</span></td></tr>
+<tr class="codeline" data-linenumber="21"><td class="num" id="LN21">21</td><td class="line"><span class='comment'>/*</span></td></tr>
+<tr class="codeline" data-linenumber="22"><td class="num" id="LN22">22</td><td class="line"> <span class='comment'>* Note: this code is harmless on little-endian machines.</span></td></tr>
+<tr class="codeline" data-linenumber="23"><td class="num" id="LN23">23</td><td class="line"> <span class='comment'>*/</span></td></tr>
+<tr class="codeline" data-linenumber="24"><td class="num" id="LN24">24</td><td class="line"><span class='keyword'>static</span> <span class='keyword'>void</span> byteReverse(<span class='keyword'>unsigned</span> <span class='keyword'>char</span> *buf, <span class='keyword'>unsigned</span> longs)</td></tr>
+<tr class="codeline" data-linenumber="25"><td class="num" id="LN25">25</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="26"><td class="num" id="LN26">26</td><td class="line"> guint32 t;</td></tr>
+<tr class="codeline" data-linenumber="27"><td class="num" id="LN27">27</td><td class="line"> <span class='keyword'>do</span></td></tr>
+<tr class="codeline" data-linenumber="28"><td class="num" id="LN28">28</td><td class="line"> {</td></tr>
+<tr class="codeline" data-linenumber="29"><td class="num" id="LN29">29</td><td class="line"> t = (guint32) ((<span class='keyword'>unsigned</span>) buf[3] &lt;&lt; 8 | buf[2]) &lt;&lt; 16 |</td></tr>
+<tr class="codeline" data-linenumber="30"><td class="num" id="LN30">30</td><td class="line"> ((<span class='keyword'>unsigned</span>) buf[1] &lt;&lt; 8 | buf[0]);</td></tr>
+<tr class="codeline" data-linenumber="31"><td class="num" id="LN31">31</td><td class="line"> *(guint32 *) buf = t;</td></tr>
+<tr class="codeline" data-linenumber="32"><td class="num" id="LN32">32</td><td class="line"> buf += 4;</td></tr>
+<tr class="codeline" data-linenumber="33"><td class="num" id="LN33">33</td><td class="line"> }</td></tr>
+<tr class="codeline" data-linenumber="34"><td class="num" id="LN34">34</td><td class="line"> <span class='keyword'>while</span> (--longs);</td></tr>
+<tr class="codeline" data-linenumber="35"><td class="num" id="LN35">35</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="36"><td class="num" id="LN36">36</td><td class="line"><span class='directive'>#endif</span></td></tr>
+<tr class="codeline" data-linenumber="37"><td class="num" id="LN37">37</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="38"><td class="num" id="LN38">38</td><td class="line"><span class='keyword'>int</span> SHA1Keycrunch(<span class='keyword'>char</span> *result, <span class='keyword'>const</span> <span class='keyword'>char</span> *seed, <span class='keyword'>const</span> <span class='keyword'>char</span> *passphrase)</td></tr>
+<tr class="codeline" data-linenumber="39"><td class="num" id="LN39">39</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="40"><td class="num" id="LN40">40</td><td class="line"> <span class='keyword'>char</span> *buf;</td></tr>
+<tr class="codeline" data-linenumber="41"><td class="num" id="LN41">41</td><td class="line"> gsize len;</td></tr>
+<tr class="codeline" data-linenumber="42"><td class="num" id="LN42">42</td><td class="line"> GChecksum *checksum;</td></tr>
+<tr class="codeline" data-linenumber="43"><td class="num" id="LN43">43</td><td class="line"> guint8 digest[20];</td></tr>
+<tr class="codeline" data-linenumber="44"><td class="num" id="LN44">44</td><td class="line"> gsize digest_len = <span class='keyword'>sizeof</span> (digest);</td></tr>
+<tr class="codeline" data-linenumber="45"><td class="num" id="LN45">45</td><td class="line"> guint32 *results;</td></tr>
+<tr class="codeline" data-linenumber="46"><td class="num" id="LN46">46</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="47"><td class="num" id="LN47">47</td><td class="line"> len = strlen(seed) + strlen(passphrase);</td></tr>
+<tr class="codeline" data-linenumber="48"><td class="num" id="LN48">48</td><td class="line"> <span class='keyword'>if</span> ((buf = (<span class='keyword'>char</span> *)g_try_malloc(len+1)) == <span class='macro'>NULL<span class='macro_popup'>((void*)0)</span></span>)</td></tr>
+<tr class="codeline" data-linenumber="49"><td class="num" id="LN49">49</td><td class="line"> <span class='keyword'>return</span> -1;</td></tr>
+<tr class="codeline" data-linenumber="50"><td class="num" id="LN50">50</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="51"><td class="num" id="LN51">51</td><td class="line"> strcpy(buf, seed);</td></tr>
+<tr class="codeline" data-linenumber="52"><td class="num" id="LN52">52</td><td class="line"> skey_lowcase(buf);</td></tr>
+<tr class="codeline" data-linenumber="53"><td class="num" id="LN53">53</td><td class="line"> <span class="mrange">strcat</span>(buf, passphrase);</td></tr>
+<tr><td class="num"></td><td class="line"><div id="EndPath" class="msg msgEvent" style="margin-left:9ex; max-width:52em">Call to function 'strcat' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcat'. CWE-119</div></td></tr>
+<tr class="codeline" data-linenumber="54"><td class="num" id="LN54">54</td><td class="line"> skey_sevenbit(buf);</td></tr>
+<tr class="codeline" data-linenumber="55"><td class="num" id="LN55">55</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="56"><td class="num" id="LN56">56</td><td class="line"> checksum = g_checksum_new (G_CHECKSUM_SHA1);</td></tr>
+<tr class="codeline" data-linenumber="57"><td class="num" id="LN57">57</td><td class="line"> g_checksum_update (checksum, (<span class='keyword'>const</span> guchar *) buf, len);</td></tr>
+<tr class="codeline" data-linenumber="58"><td class="num" id="LN58">58</td><td class="line"> g_free(buf);</td></tr>
+<tr class="codeline" data-linenumber="59"><td class="num" id="LN59">59</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="60"><td class="num" id="LN60">60</td><td class="line"> g_checksum_get_digest (checksum, digest, &amp;digest_len);</td></tr>
+<tr class="codeline" data-linenumber="61"><td class="num" id="LN61">61</td><td class="line"> <span class='macro'>g_assert (digest_len == 20)<span class='macro_popup'>do { if (digest_len == 20) ; else g_assertion_message_expr ((<br>(gchar*) 0), "sha1.c", 61, ((const char*) (__func__)), "digest_len == 20"<br>); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="62"><td class="num" id="LN62">62</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="63"><td class="num" id="LN63">63</td><td class="line"> results = (guint32 *) digest;</td></tr>
+<tr class="codeline" data-linenumber="64"><td class="num" id="LN64">64</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="65"><td class="num" id="LN65">65</td><td class="line"><span class='directive'>#ifndef WORDS_BIGENDIAN</span></td></tr>
+<tr class="codeline" data-linenumber="66"><td class="num" id="LN66">66</td><td class="line"> <span class='macro'>HTONDIGEST(results)<span class='macro_popup'>{ results[0] = htonl(results[0]); results[1] = htonl(results[<br>1]); results[2] = htonl(results[2]); results[3] = htonl(results<br>[3]); results[4] = htonl(results[4]); }</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="67"><td class="num" id="LN67">67</td><td class="line"><span class='directive'>#else</span></td></tr>
+<tr class="codeline" data-linenumber="68"><td class="num" id="LN68">68</td><td class="line"> byteReverse((<span class='keyword'>unsigned</span> <span class='keyword'>char</span> *)digest, 5);</td></tr>
+<tr class="codeline" data-linenumber="69"><td class="num" id="LN69">69</td><td class="line"><span class='directive'>#endif</span></td></tr>
+<tr class="codeline" data-linenumber="70"><td class="num" id="LN70">70</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="71"><td class="num" id="LN71">71</td><td class="line"> results = (guint32 *) digest;</td></tr>
+<tr class="codeline" data-linenumber="72"><td class="num" id="LN72">72</td><td class="line"> results[0] ^= results[2];</td></tr>
+<tr class="codeline" data-linenumber="73"><td class="num" id="LN73">73</td><td class="line"> results[1] ^= results[3];</td></tr>
+<tr class="codeline" data-linenumber="74"><td class="num" id="LN74">74</td><td class="line"> results[0] ^= results[4];</td></tr>
+<tr class="codeline" data-linenumber="75"><td class="num" id="LN75">75</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="76"><td class="num" id="LN76">76</td><td class="line"> memcpy((<span class='keyword'>void</span> *)result, (<span class='keyword'>void</span> *)results, <span class='macro'>SKEY_SIZE<span class='macro_popup'>8</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="77"><td class="num" id="LN77">77</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="78"><td class="num" id="LN78">78</td><td class="line"> g_checksum_free (checksum);</td></tr>
+<tr class="codeline" data-linenumber="79"><td class="num" id="LN79">79</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="80"><td class="num" id="LN80">80</td><td class="line"> <span class='keyword'>return</span> 0;</td></tr>
+<tr class="codeline" data-linenumber="81"><td class="num" id="LN81">81</td><td class="line">}</td></tr>
+<tr class="codeline" data-linenumber="82"><td class="num" id="LN82">82</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="83"><td class="num" id="LN83">83</td><td class="line"><span class='keyword'>void</span> SHA1SKey(<span class='keyword'>char</span> *x)</td></tr>
+<tr class="codeline" data-linenumber="84"><td class="num" id="LN84">84</td><td class="line">{</td></tr>
+<tr class="codeline" data-linenumber="85"><td class="num" id="LN85">85</td><td class="line"> GChecksum *checksum;</td></tr>
+<tr class="codeline" data-linenumber="86"><td class="num" id="LN86">86</td><td class="line"> guint8 digest[20];</td></tr>
+<tr class="codeline" data-linenumber="87"><td class="num" id="LN87">87</td><td class="line"> gsize digest_len = <span class='keyword'>sizeof</span> (digest);</td></tr>
+<tr class="codeline" data-linenumber="88"><td class="num" id="LN88">88</td><td class="line"> guint32 *results;</td></tr>
+<tr class="codeline" data-linenumber="89"><td class="num" id="LN89">89</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="90"><td class="num" id="LN90">90</td><td class="line"> checksum = g_checksum_new (G_CHECKSUM_SHA1);</td></tr>
+<tr class="codeline" data-linenumber="91"><td class="num" id="LN91">91</td><td class="line"> g_checksum_update (checksum, (<span class='keyword'>const</span> guchar *) x, <span class='macro'>SKEY_SIZE<span class='macro_popup'>8</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="92"><td class="num" id="LN92">92</td><td class="line"> g_checksum_get_digest (checksum, digest, &amp;digest_len);</td></tr>
+<tr class="codeline" data-linenumber="93"><td class="num" id="LN93">93</td><td class="line"> <span class='macro'>g_assert (digest_len == 20)<span class='macro_popup'>do { if (digest_len == 20) ; else g_assertion_message_expr ((<br>(gchar*) 0), "sha1.c", 93, ((const char*) (__func__)), "digest_len == 20"<br>); } while (0)</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="94"><td class="num" id="LN94">94</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="95"><td class="num" id="LN95">95</td><td class="line"> results = (guint32 *) digest;</td></tr>
+<tr class="codeline" data-linenumber="96"><td class="num" id="LN96">96</td><td class="line"><span class='directive'>#ifndef WORDS_BIGENDIAN</span></td></tr>
+<tr class="codeline" data-linenumber="97"><td class="num" id="LN97">97</td><td class="line"> <span class='macro'>HTONDIGEST(results)<span class='macro_popup'>{ results[0] = htonl(results[0]); results[1] = htonl(results[<br>1]); results[2] = htonl(results[2]); results[3] = htonl(results<br>[3]); results[4] = htonl(results[4]); }</span></span>;</td></tr>
+<tr class="codeline" data-linenumber="98"><td class="num" id="LN98">98</td><td class="line"><span class='directive'>#else</span></td></tr>
+<tr class="codeline" data-linenumber="99"><td class="num" id="LN99">99</td><td class="line"> byteReverse((<span class='keyword'>unsigned</span> <span class='keyword'>char</span> *)digest, 5);</td></tr>
+<tr class="codeline" data-linenumber="100"><td class="num" id="LN100">100</td><td class="line"><span class='directive'>#endif</span></td></tr>
+<tr class="codeline" data-linenumber="101"><td class="num" id="LN101">101</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="102"><td class="num" id="LN102">102</td><td class="line"> results[0] ^= results[2];</td></tr>
+<tr class="codeline" data-linenumber="103"><td class="num" id="LN103">103</td><td class="line"> results[1] ^= results[3];</td></tr>
+<tr class="codeline" data-linenumber="104"><td class="num" id="LN104">104</td><td class="line"> results[0] ^= results[4];</td></tr>
+<tr class="codeline" data-linenumber="105"><td class="num" id="LN105">105</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="106"><td class="num" id="LN106">106</td><td class="line"> memcpy((<span class='keyword'>void</span> *)x, (<span class='keyword'>void</span> *)results, <span class='macro'>SKEY_SIZE<span class='macro_popup'>8</span></span>);</td></tr>
+<tr class="codeline" data-linenumber="107"><td class="num" id="LN107">107</td><td class="line"> </td></tr>
+<tr class="codeline" data-linenumber="108"><td class="num" id="LN108">108</td><td class="line"> g_checksum_free (checksum);</td></tr>
+<tr class="codeline" data-linenumber="109"><td class="num" id="LN109">109</td><td class="line">}</td></tr>
+</table></body></html>
diff --git a/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/scanview.css b/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/scanview.css
new file mode 100644
index 0000000..cf8a5a6
--- /dev/null
+++ b/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/scanview.css
@@ -0,0 +1,62 @@
+body { color:#000000; background-color:#ffffff }
+body { font-family: Helvetica, sans-serif; font-size:9pt }
+h1 { font-size: 14pt; }
+h2 { font-size: 12pt; }
+table { font-size:9pt }
+table { border-spacing: 0px; border: 1px solid black }
+th, table thead {
+ background-color:#eee; color:#666666;
+ font-weight: bold; cursor: default;
+ text-align:center;
+ font-weight: bold; font-family: Verdana;
+ white-space:nowrap;
+}
+.W { font-size:0px }
+th, td { padding:5px; padding-left:8px; text-align:left }
+td.SUMM_DESC { padding-left:12px }
+td.DESC { white-space:pre }
+td.Q { text-align:right }
+td { text-align:left }
+tbody.scrollContent { overflow:auto }
+
+table.form_group {
+ background-color: #ccc;
+ border: 1px solid #333;
+ padding: 2px;
+}
+
+table.form_inner_group {
+ background-color: #ccc;
+ border: 1px solid #333;
+ padding: 0px;
+}
+
+table.form {
+ background-color: #999;
+ border: 1px solid #333;
+ padding: 2px;
+}
+
+td.form_label {
+ text-align: right;
+ vertical-align: top;
+}
+/* For one line entires */
+td.form_clabel {
+ text-align: right;
+ vertical-align: center;
+}
+td.form_value {
+ text-align: left;
+ vertical-align: top;
+}
+td.form_submit {
+ text-align: right;
+ vertical-align: top;
+}
+
+h1.SubmitFail {
+ color: #f00;
+}
+h1.SubmitOk {
+}
diff --git a/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/sorttable.js b/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/sorttable.js
new file mode 100644
index 0000000..32faa07
--- /dev/null
+++ b/2024-02-18-131424-5067-1@d7c96c4e0670_master@d7c96c4e0670_master@e4c15fcff557_master@8634b87ff369_master/sorttable.js
@@ -0,0 +1,492 @@
+/*
+ SortTable
+ version 2
+ 7th April 2007
+ Stuart Langridge, http://www.kryogenix.org/code/browser/sorttable/
+
+ Instructions:
+ Download this file
+ Add <script src="sorttable.js"></script> to your HTML
+ Add class="sortable" to any table you'd like to make sortable
+ Click on the headers to sort
+
+ Thanks to many, many people for contributions and suggestions.
+ Licenced as X11: http://www.kryogenix.org/code/browser/licence.html
+ This basically means: do what you want with it.
+*/
+
+
+var stIsIE = /*@cc_on!@*/false;
+
+sorttable = {
+ init: function() {
+ // quit if this function has already been called
+ if (arguments.callee.done) return;
+ // flag this function so we don't do the same thing twice
+ arguments.callee.done = true;
+ // kill the timer
+ if (_timer) clearInterval(_timer);
+
+ if (!document.createElement || !document.getElementsByTagName) return;
+
+ sorttable.DATE_RE = /^(\d\d?)[\/\.-](\d\d?)[\/\.-]((\d\d)?\d\d)$/;
+
+ forEach(document.getElementsByTagName('table'), function(table) {
+ if (table.className.search(/\bsortable\b/) != -1) {
+ sorttable.makeSortable(table);
+ }
+ });
+
+ },
+
+ makeSortable: function(table) {
+ if (table.getElementsByTagName('thead').length == 0) {
+ // table doesn't have a tHead. Since it should have, create one and
+ // put the first table row in it.
+ the = document.createElement('thead');
+ the.appendChild(table.rows[0]);
+ table.insertBefore(the,table.firstChild);
+ }
+ // Safari doesn't support table.tHead, sigh
+ if (table.tHead == null) table.tHead = table.getElementsByTagName('thead')[0];
+
+ if (table.tHead.rows.length != 1) return; // can't cope with two header rows
+
+ // Sorttable v1 put rows with a class of "sortbottom" at the bottom (as
+ // "total" rows, for example). This is B&R, since what you're supposed
+ // to do is put them in a tfoot. So, if there are sortbottom rows,
+ // for backward compatibility, move them to tfoot (creating it if needed).
+ sortbottomrows = [];
+ for (var i=0; i<table.rows.length; i++) {
+ if (table.rows[i].className.search(/\bsortbottom\b/) != -1) {
+ sortbottomrows[sortbottomrows.length] = table.rows[i];
+ }
+ }
+ if (sortbottomrows) {
+ if (table.tFoot == null) {
+ // table doesn't have a tfoot. Create one.
+ tfo = document.createElement('tfoot');
+ table.appendChild(tfo);
+ }
+ for (var i=0; i<sortbottomrows.length; i++) {
+ tfo.appendChild(sortbottomrows[i]);
+ }
+ delete sortbottomrows;
+ }
+
+ // work through each column and calculate its type
+ headrow = table.tHead.rows[0].cells;
+ for (var i=0; i<headrow.length; i++) {
+ // manually override the type with a sorttable_type attribute
+ if (!headrow[i].className.match(/\bsorttable_nosort\b/)) { // skip this col
+ mtch = headrow[i].className.match(/\bsorttable_([a-z0-9]+)\b/);
+ if (mtch) { override = mtch[1]; }
+ if (mtch && typeof sorttable["sort_"+override] == 'function') {
+ headrow[i].sorttable_sortfunction = sorttable["sort_"+override];
+ } else {
+ headrow[i].sorttable_sortfunction = sorttable.guessType(table,i);
+ }
+ // make it clickable to sort
+ headrow[i].sorttable_columnindex = i;
+ headrow[i].sorttable_tbody = table.tBodies[0];
+ dean_addEvent(headrow[i],"click", function(e) {
+
+ if (this.className.search(/\bsorttable_sorted\b/) != -1) {
+ // if we're already sorted by this column, just
+ // reverse the table, which is quicker
+ sorttable.reverse(this.sorttable_tbody);
+ this.className = this.className.replace('sorttable_sorted',
+ 'sorttable_sorted_reverse');
+ this.removeChild(document.getElementById('sorttable_sortfwdind'));
+ sortrevind = document.createElement('span');
+ sortrevind.id = "sorttable_sortrevind";
+ sortrevind.innerHTML = stIsIE ? '&nbsp<font face="webdings">5</font>' : '&nbsp;&#x25B4;';
+ this.appendChild(sortrevind);
+ return;
+ }
+ if (this.className.search(/\bsorttable_sorted_reverse\b/) != -1) {
+ // if we're already sorted by this column in reverse, just
+ // re-reverse the table, which is quicker
+ sorttable.reverse(this.sorttable_tbody);
+ this.className = this.className.replace('sorttable_sorted_reverse',
+ 'sorttable_sorted');
+ this.removeChild(document.getElementById('sorttable_sortrevind'));
+ sortfwdind = document.createElement('span');
+ sortfwdind.id = "sorttable_sortfwdind";
+ sortfwdind.innerHTML = stIsIE ? '&nbsp<font face="webdings">6</font>' : '&nbsp;&#x25BE;';
+ this.appendChild(sortfwdind);
+ return;
+ }
+
+ // remove sorttable_sorted classes
+ theadrow = this.parentNode;
+ forEach(theadrow.childNodes, function(cell) {
+ if (cell.nodeType == 1) { // an element
+ cell.className = cell.className.replace('sorttable_sorted_reverse','');
+ cell.className = cell.className.replace('sorttable_sorted','');
+ }
+ });
+ sortfwdind = document.getElementById('sorttable_sortfwdind');
+ if (sortfwdind) { sortfwdind.parentNode.removeChild(sortfwdind); }
+ sortrevind = document.getElementById('sorttable_sortrevind');
+ if (sortrevind) { sortrevind.parentNode.removeChild(sortrevind); }
+
+ this.className += ' sorttable_sorted';
+ sortfwdind = document.createElement('span');
+ sortfwdind.id = "sorttable_sortfwdind";
+ sortfwdind.innerHTML = stIsIE ? '&nbsp<font face="webdings">6</font>' : '&nbsp;&#x25BE;';
+ this.appendChild(sortfwdind);
+
+ // build an array to sort. This is a Schwartzian transform thing,
+ // i.e., we "decorate" each row with the actual sort key,
+ // sort based on the sort keys, and then put the rows back in order
+ // which is a lot faster because you only do getInnerText once per row
+ row_array = [];
+ col = this.sorttable_columnindex;
+ rows = this.sorttable_tbody.rows;
+ for (var j=0; j<rows.length; j++) {
+ row_array[row_array.length] = [sorttable.getInnerText(rows[j].cells[col]), rows[j]];
+ }
+ /* If you want a stable sort, uncomment the following line */
+ sorttable.shaker_sort(row_array, this.sorttable_sortfunction);
+ /* and comment out this one */
+ //row_array.sort(this.sorttable_sortfunction);
+
+ tb = this.sorttable_tbody;
+ for (var j=0; j<row_array.length; j++) {
+ tb.appendChild(row_array[j][1]);
+ }
+
+ delete row_array;
+ });
+ }
+ }
+ },
+
+ guessType: function(table, column) {
+ // guess the type of a column based on its first non-blank row
+ sortfn = sorttable.sort_alpha;
+ for (var i=0; i<table.tBodies[0].rows.length; i++) {
+ text = sorttable.getInnerText(table.tBodies[0].rows[i].cells[column]);
+ if (text != '') {
+ if (text.match(/^-?[�$�]?[\d,.]+%?$/)) {
+ return sorttable.sort_numeric;
+ }
+ // check for a date: dd/mm/yyyy or dd/mm/yy
+ // can have / or . or - as separator
+ // can be mm/dd as well
+ possdate = text.match(sorttable.DATE_RE)
+ if (possdate) {
+ // looks like a date
+ first = parseInt(possdate[1]);
+ second = parseInt(possdate[2]);
+ if (first > 12) {
+ // definitely dd/mm
+ return sorttable.sort_ddmm;
+ } else if (second > 12) {
+ return sorttable.sort_mmdd;
+ } else {
+ // looks like a date, but we can't tell which, so assume
+ // that it's dd/mm (English imperialism!) and keep looking
+ sortfn = sorttable.sort_ddmm;
+ }
+ }
+ }
+ }
+ return sortfn;
+ },
+
+ getInnerText: function(node) {
+ // gets the text we want to use for sorting for a cell.
+ // strips leading and trailing whitespace.
+ // this is *not* a generic getInnerText function; it's special to sorttable.
+ // for example, you can override the cell text with a customkey attribute.
+ // it also gets .value for <input> fields.
+
+ hasInputs = (typeof node.getElementsByTagName == 'function') &&
+ node.getElementsByTagName('input').length;
+
+ if (node.getAttribute("sorttable_customkey") != null) {
+ return node.getAttribute("sorttable_customkey");
+ }
+ else if (typeof node.textContent != 'undefined' && !hasInputs) {
+ return node.textContent.replace(/^\s+|\s+$/g, '');
+ }
+ else if (typeof node.innerText != 'undefined' && !hasInputs) {
+ return node.innerText.replace(/^\s+|\s+$/g, '');
+ }
+ else if (typeof node.text != 'undefined' && !hasInputs) {
+ return node.text.replace(/^\s+|\s+$/g, '');
+ }
+ else {
+ switch (node.nodeType) {
+ case 3:
+ if (node.nodeName.toLowerCase() == 'input') {
+ return node.value.replace(/^\s+|\s+$/g, '');
+ }
+ case 4:
+ return node.nodeValue.replace(/^\s+|\s+$/g, '');
+ break;
+ case 1:
+ case 11:
+ var innerText = '';
+ for (var i = 0; i < node.childNodes.length; i++) {
+ innerText += sorttable.getInnerText(node.childNodes[i]);
+ }
+ return innerText.replace(/^\s+|\s+$/g, '');
+ break;
+ default:
+ return '';
+ }
+ }
+ },
+
+ reverse: function(tbody) {
+ // reverse the rows in a tbody
+ newrows = [];
+ for (var i=0; i<tbody.rows.length; i++) {
+ newrows[newrows.length] = tbody.rows[i];
+ }
+ for (var i=newrows.length-1; i>=0; i--) {
+ tbody.appendChild(newrows[i]);
+ }
+ delete newrows;
+ },
+
+ /* sort functions
+ each sort function takes two parameters, a and b
+ you are comparing a[0] and b[0] */
+ sort_numeric: function(a,b) {
+ aa = parseFloat(a[0].replace(/[^0-9.-]/g,''));
+ if (isNaN(aa)) aa = 0;
+ bb = parseFloat(b[0].replace(/[^0-9.-]/g,''));
+ if (isNaN(bb)) bb = 0;
+ return aa-bb;
+ },
+ sort_alpha: function(a,b) {
+ if (a[0]==b[0]) return 0;
+ if (a[0]<b[0]) return -1;
+ return 1;
+ },
+ sort_ddmm: function(a,b) {
+ mtch = a[0].match(sorttable.DATE_RE);
+ y = mtch[3]; m = mtch[2]; d = mtch[1];
+ if (m.length == 1) m = '0'+m;
+ if (d.length == 1) d = '0'+d;
+ dt1 = y+m+d;
+ mtch = b[0].match(sorttable.DATE_RE);
+ y = mtch[3]; m = mtch[2]; d = mtch[1];
+ if (m.length == 1) m = '0'+m;
+ if (d.length == 1) d = '0'+d;
+ dt2 = y+m+d;
+ if (dt1==dt2) return 0;
+ if (dt1<dt2) return -1;
+ return 1;
+ },
+ sort_mmdd: function(a,b) {
+ mtch = a[0].match(sorttable.DATE_RE);
+ y = mtch[3]; d = mtch[2]; m = mtch[1];
+ if (m.length == 1) m = '0'+m;
+ if (d.length == 1) d = '0'+d;
+ dt1 = y+m+d;
+ mtch = b[0].match(sorttable.DATE_RE);
+ y = mtch[3]; d = mtch[2]; m = mtch[1];
+ if (m.length == 1) m = '0'+m;
+ if (d.length == 1) d = '0'+d;
+ dt2 = y+m+d;
+ if (dt1==dt2) return 0;
+ if (dt1<dt2) return -1;
+ return 1;
+ },
+
+ shaker_sort: function(list, comp_func) {
+ // A stable sort function to allow multi-level sorting of data
+ // see: http://en.wikipedia.org/wiki/Cocktail_sort
+ // thanks to Joseph Nahmias
+ var b = 0;
+ var t = list.length - 1;
+ var swap = true;
+
+ while(swap) {
+ swap = false;
+ for(var i = b; i < t; ++i) {
+ if ( comp_func(list[i], list[i+1]) > 0 ) {
+ var q = list[i]; list[i] = list[i+1]; list[i+1] = q;
+ swap = true;
+ }
+ } // for
+ t--;
+
+ if (!swap) break;
+
+ for(var i = t; i > b; --i) {
+ if ( comp_func(list[i], list[i-1]) < 0 ) {
+ var q = list[i]; list[i] = list[i-1]; list[i-1] = q;
+ swap = true;
+ }
+ } // for
+ b++;
+
+ } // while(swap)
+ }
+}
+
+/* ******************************************************************
+ Supporting functions: bundled here to avoid depending on a library
+ ****************************************************************** */
+
+// Dean Edwards/Matthias Miller/John Resig
+
+/* for Mozilla/Opera9 */
+if (document.addEventListener) {
+ document.addEventListener("DOMContentLoaded", sorttable.init, false);
+}
+
+/* for Internet Explorer */
+/*@cc_on @*/
+/*@if (@_win32)
+ document.write("<script id=__ie_onload defer src=javascript:void(0)><\/script>");
+ var script = document.getElementById("__ie_onload");
+ script.onreadystatechange = function() {
+ if (this.readyState == "complete") {
+ sorttable.init(); // call the onload handler
+ }
+ };
+/*@end @*/
+
+/* for Safari */
+if (/WebKit/i.test(navigator.userAgent)) { // sniff
+ var _timer = setInterval(function() {
+ if (/loaded|complete/.test(document.readyState)) {
+ sorttable.init(); // call the onload handler
+ }
+ }, 10);
+}
+
+/* for other browsers */
+window.onload = sorttable.init;
+
+// written by Dean Edwards, 2005
+// with input from Tino Zijdel, Matthias Miller, Diego Perini
+
+// http://dean.edwards.name/weblog/2005/10/add-event/
+
+function dean_addEvent(element, type, handler) {
+ if (element.addEventListener) {
+ element.addEventListener(type, handler, false);
+ } else {
+ // assign each event handler a unique ID
+ if (!handler.$$guid) handler.$$guid = dean_addEvent.guid++;
+ // create a hash table of event types for the element
+ if (!element.events) element.events = {};
+ // create a hash table of event handlers for each element/event pair
+ var handlers = element.events[type];
+ if (!handlers) {
+ handlers = element.events[type] = {};
+ // store the existing event handler (if there is one)
+ if (element["on" + type]) {
+ handlers[0] = element["on" + type];
+ }
+ }
+ // store the event handler in the hash table
+ handlers[handler.$$guid] = handler;
+ // assign a global event handler to do all the work
+ element["on" + type] = handleEvent;
+ }
+};
+// a counter used to create unique IDs
+dean_addEvent.guid = 1;
+
+function removeEvent(element, type, handler) {
+ if (element.removeEventListener) {
+ element.removeEventListener(type, handler, false);
+ } else {
+ // delete the event handler from the hash table
+ if (element.events && element.events[type]) {
+ delete element.events[type][handler.$$guid];
+ }
+ }
+};
+
+function handleEvent(event) {
+ var returnValue = true;
+ // grab the event object (IE uses a global event object)
+ event = event || fixEvent(((this.ownerDocument || this.document || this).parentWindow || window).event);
+ // get a reference to the hash table of event handlers
+ var handlers = this.events[event.type];
+ // execute each event handler
+ for (var i in handlers) {
+ this.$$handleEvent = handlers[i];
+ if (this.$$handleEvent(event) === false) {
+ returnValue = false;
+ }
+ }
+ return returnValue;
+};
+
+function fixEvent(event) {
+ // add W3C standard event methods
+ event.preventDefault = fixEvent.preventDefault;
+ event.stopPropagation = fixEvent.stopPropagation;
+ return event;
+};
+fixEvent.preventDefault = function() {
+ this.returnValue = false;
+};
+fixEvent.stopPropagation = function() {
+ this.cancelBubble = true;
+}
+
+// Dean's forEach: http://dean.edwards.name/base/forEach.js
+/*
+ forEach, version 1.0
+ Copyright 2006, Dean Edwards
+ License: http://www.opensource.org/licenses/mit-license.php
+*/
+
+// array-like enumeration
+if (!Array.forEach) { // mozilla already supports this
+ Array.forEach = function(array, block, context) {
+ for (var i = 0; i < array.length; i++) {
+ block.call(context, array[i], i, array);
+ }
+ };
+}
+
+// generic enumeration
+Function.prototype.forEach = function(object, block, context) {
+ for (var key in object) {
+ if (typeof this.prototype[key] == "undefined") {
+ block.call(context, object[key], key, object);
+ }
+ }
+};
+
+// character enumeration
+String.forEach = function(string, block, context) {
+ Array.forEach(string.split(""), function(chr, index) {
+ block.call(context, chr, index, string);
+ });
+};
+
+// globally resolve forEach enumeration
+var forEach = function(object, block, context) {
+ if (object) {
+ var resolve = Object; // default
+ if (object instanceof Function) {
+ // functions have a "length" property
+ resolve = Function;
+ } else if (object.forEach instanceof Function) {
+ // the object implements a custom forEach method so use that
+ object.forEach(block, context);
+ return;
+ } else if (typeof object == "string") {
+ // the object is a string
+ resolve = String;
+ } else if (typeof object.length == "number") {
+ // the object is array-like
+ resolve = Array;
+ }
+ resolve.forEach(object, block, context);
+ }
+};