Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/Remmina/remminadoc.gitlab.io.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntenore Gatta <antenore@simbiosi.org>2022-12-02 12:46:23 +0300
committerAntenore Gatta <antenore@simbiosi.org>2022-12-02 12:46:23 +0300
commita61ed06d9642cf102367cdbf19773c5f20eb0972 (patch)
tree012018b426f5b332b23ab3ffc1122e1a85cb289b
parent96a16d419b6ed5ac09f8506c17e889d38632f9ec (diff)
Automatic doc build by remmina-ci
-rw-r--r--public/_releasing-a-new-_remmina-version_8md_source.html2
-rw-r--r--public/md__builds__remmina_remmina-ci__remmina_8wiki__development__releasing-a-new-_remmina-version.html2
-rw-r--r--public/rcw_8c_source.html6
-rw-r--r--public/remmina_8c.html26
-rw-r--r--public/remmina_8c_source.html28
-rw-r--r--public/remmina_8h.html2
-rw-r--r--public/remmina_8h_source.html2
-rw-r--r--public/remmina__exec_8c_source.html2
-rw-r--r--public/remmina__main_8c_source.html2
-rw-r--r--public/remmina__pref_8c_source.html8
-rw-r--r--public/remmina__pref_8h.html8
-rw-r--r--public/remmina__pref_8h_source.html8
-rw-r--r--public/remmina__stats_8c_source.html2
13 files changed, 49 insertions, 49 deletions
diff --git a/public/_releasing-a-new-_remmina-version_8md_source.html b/public/_releasing-a-new-_remmina-version_8md_source.html
index 62790e9fd..eaaa95b84 100644
--- a/public/_releasing-a-new-_remmina-version_8md_source.html
+++ b/public/_releasing-a-new-_remmina-version_8md_source.html
@@ -86,7 +86,7 @@ $(document).ready(function(){initNavTree('_releasing-a-new-_remmina-version_8md.
<div class="title">Releasing-a-new-Remmina-version.md</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_releasing-a-new-_remmina-version_8md.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;# Releasing a new Remmina version</div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;This page describe the Remmina release workflow, and the steps needed to tag a new version.</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;## What is a release?</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;A release is the distribution of the final version or the newest version of a software application.</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;Remmina tries to follow the [Semantic Versioning](https://semver.org/), that means, given a version number MAJOR.MINOR.PATCH, increment the:</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;- MAJOR version when you make incompatible API changes</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;- MINOR version when you add functionality in a backwards compatible manner</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;- PATCH version when you make backwards compatible bug fixes</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;Unfortunately, due to the relatively small number of contributions, we almost always increment the PATCH version, even if we push new features.</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;This is because we are unable to honor the backlog we have for the next MINOR and MAJOR milestones.</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;That said, is not strictly important to get mad about the versioning, but if we can follow the above schema, is better.</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;## What is a tag?</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;A tag is a pointer to a specific commit, we can have light tags, that can be added and removed as needed and annotated tags.</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;Annotated tags is an unchangeable (nothing is unchangeable ;-) ) par of Git history, and are used on GitLab and GitHub to create a Release.</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;In fact releases are a GitHub, GitLab concept, it doesn&#39;t exist in Git, Git knows only about tags and annotated tags.</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;## So, how it happens, Releasing Remmina?</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;As soon as we agree to release a new version, we have some preparatory tasks to do, and to be sure to don&#39;t miss anything, we work on a new branch and submit a merge request.</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;This is the most important point, as on [GitLab](https://gitlab.com/Remmina/Remmina/-/blob/master/.gitlab/merge_request_templates/Remmina%20Release.md) we have a merge request template for the releases.</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;1. Review the above-mentioned template, and eventually modify it if you see something wrong or missing (like the list of downstream maintainers)</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;2. Create a new branch starting from the `master` branch, use a name like `rel/v1.4.28`</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;3. Based on the template be sure, working on the new branch, to update the files as indicated.</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;4. Commit with the `-s` git flag to sign your commit, and push to the Remmina repository.</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;5. Create a Merge Request, and wait for feedbacks and pipeline&#39;s status.</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;6. Be sure to link the MR to the right milestones and to issues you want to close automatically upon the merge.</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;7. Check the labels, you must have the `release` label and whatever suit this specific version.</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;At this point we have a Merge Request, be sure everything is fine, or ask for a review.</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;While you wait, prepare yourself to create the annotated tag, while you can do it from the command line, here we focus on the GitLab web interface.</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;Open the previous tag, to see it raw, you can edit it (do not save afterwards), this will be useful to cut and paste what is common to all Release we do.</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;For instance, at https://gitlab.com/Remmina/Remmina/-/releases/v1.4.27/edit you will have to copy:</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;```</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;**ATTENTION New dependencies introduced with v1.3.5 onwards!**</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;* appindicator or ayatana-appindicator is now optional, -DHAVE_LIBAPPINDICATOR=OFF will disable the Remmina system tray icon.</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;* -DWITH_PYTHONLIBS=ON is required for the Python plugin (python3-dev/devel required to build)</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;* pyhoca-cli is needed for the X2Go plugin, -DWITH_X2GO=ON</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;* NX, XDMCP and ST have removed.</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;* Use -DWITH_FREERDP3=ON if you are using the FreeRDP master branch</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;* libsodium is needed to build Remmina.</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;* webkit2gtk3 is needed to build the WWW plugin.</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;* -DWITH_KF5WALLET=ON is a new config option required for the KWallet plugin (and the required kf5wallet libraries to build it).</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;* News can be turned off with -DWITH_NEWS=OFF</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;* gtk-vnc is needed for the VNC plugin for GNOME and KVM, -DWITH_GVNC=ON</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;```</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;This will have to be updated in case something has been changed. Pay attention to this point because it&#39;s used by the downstream maintainer.</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;When the MR is merged, and you have all the blocks you need, [create a new tag](https://gitlab.com/Remmina/Remmina/-/tags/new), in that page you have to give a name to the tag, like `v1.4.28`, and a message, like `Release v1.4.28`.</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;Without that optional message, you will create a lightweight tag, and you won&#39;t end-up in a Release.</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;With the new tag, you can [create a Release](https://gitlab.com/Remmina/Remmina/-/releases/new), in that new page, select the corresponding tag, give a title (follow the previous release as the template), add the change log, and push the Big Red Button :-D</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;You are done!!</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;## And Now What?</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;Many things happen behind the scene, as soon as you tag a new version, many systems should detect the new tag, and start to build a new Remmina version, this is true for most of the distro, the flatpak, the Ubuntu Remmina PPA, and the snap (see after).</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;Still, there are some additional manual steps to take.</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;1. Wait that all the pipelines are finished and submit a new pipeline from the master (needed for the snap)</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;2. When the manual pipeline is finished go to https://snapcraft.io/remmina/releases, and promote the new version from edge to the stable channel.</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;3. Add the new release in [wikidata](https://www.wikidata.org/wiki/Q82148?uselang=en#P348), this is need by some distributions to gather the latest tag.</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;4. Drop a message to the Debian downstream maintainer, at the moment is @mfvescovi</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;To access snapcraft you need developer rights, ask one maintainer to add yourself in the developer list.</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;One time a year you need to refresh the snapcraft authentication token:</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;```</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;snapcraft export-login --snaps=remmina -</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;```</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;Better to use dev@remmina.org (ask the password to the maintainers), and set `SNAPCRAFT_LOGIN` in the [CI/CD variables](https://gitlab.com/Remmina/Remmina/-/settings/ci_cd) with the new obtained token.</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;## Appendix</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;### Authors&#39; list</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;To get the authors&#39;list I use this git command:</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;```</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;git log --pretty=format:&quot;%an &amp;lt;%ae&amp;gt;&quot; | sort | uniq -c | sort -rn | sed -e &#39;s/^ *[0-9]\+ //g&#39;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;```</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;You just need to tailor it a little bit, for instance I remove duplicated entries for authors that have multiple emails, I move up the most active users, but don&#39;t be too strict, it shouldn&#39;t take more than a couple of minutes.</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;### To-Do</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;We should reduce more all the above manual steps, and ideally a Release should happens by itself upon a special merge request, as usual, patches are welcome ;-)</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div></div><!-- fragment --></div><!-- contents -->
+<a href="_releasing-a-new-_remmina-version_8md.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;# Releasing a new Remmina version</div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;This page describe the Remmina release workflow, and the steps needed to tag a new version.</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;## What is a release?</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;A release is the distribution of the final version or the newest version of a software application.</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;Remmina tries to follow the [Semantic Versioning](https://semver.org/), that means, given a version number MAJOR.MINOR.PATCH, increment the:</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;- MAJOR version when you make incompatible API changes</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;- MINOR version when you add functionality in a backwards compatible manner</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;- PATCH version when you make backwards compatible bug fixes</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;Unfortunately, due to the relatively small number of contributions, we almost always increment the PATCH version, even if we push new features.</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;This is because we are unable to honor the backlog we have for the next MINOR and MAJOR milestones.</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;That said, is not strictly important to get mad about the versioning, but if we can follow the above schema, is better.</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;## What is a tag?</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;A tag is a pointer to a specific commit, we can have light tags, that can be added and removed as needed and annotated tags.</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;Annotated tags is an unchangeable (nothing is unchangeable ;-) ) par of Git history, and are used on GitLab and GitHub to create a Release.</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;In fact releases are a GitHub, GitLab concept, it doesn&#39;t exist in Git, Git knows only about tags and annotated tags.</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;## So, how it happens, Releasing Remmina?</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;As soon as we agree to release a new version, we have some preparatory tasks to do, and to be sure to don&#39;t miss anything, we work on a new branch and submit a merge request.</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;This is the most important point, as on [GitLab](https://gitlab.com/Remmina/Remmina/-/blob/master/.gitlab/merge_request_templates/Remmina%20Release.md) we have a merge request template for the releases. Instructions for generating the changelog can be found [here](https://gitlab.com/Remmina/Remmina/-/wikis/Contribution/HOWTO-generate-the-changelog).</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;1. Review the above-mentioned template, and eventually modify it if you see something wrong or missing (like the list of downstream maintainers)</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;2. Create a new branch starting from the `master` branch, use a name like `rel/v1.4.28`</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;3. Based on the template be sure, working on the new branch, to update the files as indicated.</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;4. Commit with the `-s` git flag to sign your commit, and push to the Remmina repository.</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;5. Create a Merge Request, and wait for feedbacks and pipeline&#39;s status.</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;6. Be sure to link the MR to the right milestones and to issues you want to close automatically upon the merge.</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;7. Check the labels, you must have the `release` label and whatever suit this specific version.</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;At this point we have a Merge Request, be sure everything is fine, or ask for a review.</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;While you wait, prepare yourself to create the annotated tag, while you can do it from the command line, here we focus on the GitLab web interface.</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;Open the previous tag, to see it raw, you can edit it (do not save afterwards), this will be useful to cut and paste what is common to all Release we do.</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;For instance, at https://gitlab.com/Remmina/Remmina/-/releases/v1.4.27/edit you will have to copy:</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;```</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;**ATTENTION New dependencies introduced with v1.3.5 onwards!**</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;* appindicator or ayatana-appindicator is now optional, -DHAVE_LIBAPPINDICATOR=OFF will disable the Remmina system tray icon.</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;* -DWITH_PYTHONLIBS=ON is required for the Python plugin (python3-dev/devel required to build)</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;* pyhoca-cli is needed for the X2Go plugin, -DWITH_X2GO=ON</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;* NX, XDMCP and ST have removed.</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;* Use -DWITH_FREERDP3=ON if you are using the FreeRDP master branch</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;* libsodium is needed to build Remmina.</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;* webkit2gtk3 is needed to build the WWW plugin.</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;* -DWITH_KF5WALLET=ON is a new config option required for the KWallet plugin (and the required kf5wallet libraries to build it).</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;* News can be turned off with -DWITH_NEWS=OFF</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;* gtk-vnc is needed for the VNC plugin for GNOME and KVM, -DWITH_GVNC=ON</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;```</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;This will have to be updated in case something has been changed. Pay attention to this point because it&#39;s used by the downstream maintainer.</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;When the MR is merged, and you have all the blocks you need, [create a new tag](https://gitlab.com/Remmina/Remmina/-/tags/new), in that page you have to give a name to the tag, like `v1.4.28`, and a message, like `Release v1.4.28`.</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;Without that optional message, you will create a lightweight tag, and you won&#39;t end-up in a Release.</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;With the new tag, you can [create a Release](https://gitlab.com/Remmina/Remmina/-/releases/new), in that new page, select the corresponding tag, give a title (follow the previous release as the template), add the change log, and push the Big Red Button :-D</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;You are done!!</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;## And Now What?</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;Many things happen behind the scene, as soon as you tag a new version, many systems should detect the new tag, and start to build a new Remmina version, this is true for most of the distro, the flatpak, the Ubuntu Remmina PPA, and the snap (see after).</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;Still, there are some additional manual steps to take.</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;1. Wait that all the pipelines are finished and submit a new pipeline from the master (needed for the snap)</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;2. When the manual pipeline is finished go to https://snapcraft.io/remmina/releases, and promote the new version from edge to the stable channel.</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;3. Add the new release in [wikidata](https://www.wikidata.org/wiki/Q82148?uselang=en#P348), this is need by some distributions to gather the latest tag.</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;4. Drop a message to the Debian downstream maintainer, at the moment is @mfvescovi</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;To access snapcraft you need developer rights, ask one maintainer to add yourself in the developer list.</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;One time a year you need to refresh the snapcraft authentication token:</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;```</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;snapcraft export-login --snaps=remmina -</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;```</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;Better to use dev@remmina.org (ask the password to the maintainers), and set `SNAPCRAFT_LOGIN` in the [CI/CD variables](https://gitlab.com/Remmina/Remmina/-/settings/ci_cd) with the new obtained token.</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;## Appendix</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;### Authors&#39; list</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;To get the authors&#39;list I use this git command:</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;```</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;git log --pretty=format:&quot;%an &amp;lt;%ae&amp;gt;&quot; | sort | uniq -c | sort -rn | sed -e &#39;s/^ *[0-9]\+ //g&#39;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;```</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;You just need to tailor it a little bit, for instance I remove duplicated entries for authors that have multiple emails, I move up the most active users, but don&#39;t be too strict, it shouldn&#39;t take more than a couple of minutes.</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;### To-Do</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;We should reduce more all the above manual steps, and ideally a Release should happens by itself upon a special merge request, as usual, patches are welcome ;-)</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div></div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
diff --git a/public/md__builds__remmina_remmina-ci__remmina_8wiki__development__releasing-a-new-_remmina-version.html b/public/md__builds__remmina_remmina-ci__remmina_8wiki__development__releasing-a-new-_remmina-version.html
index 90337fa9d..b1ecd4353 100644
--- a/public/md__builds__remmina_remmina-ci__remmina_8wiki__development__releasing-a-new-_remmina-version.html
+++ b/public/md__builds__remmina_remmina-ci__remmina_8wiki__development__releasing-a-new-_remmina-version.html
@@ -101,7 +101,7 @@ $(document).ready(function(){initNavTree('md__builds__remmina_remmina-ci__remmin
<h2>What is a tag?</h2>
<p>A tag is a pointer to a specific commit, we can have light tags, that can be added and removed as needed and annotated tags. Annotated tags is an unchangeable (nothing is unchangeable ;-) ) par of Git history, and are used on GitLab and GitHub to create a Release. In fact releases are a GitHub, GitLab concept, it doesn't exist in Git, Git knows only about tags and annotated tags.</p>
<h2>So, how it happens, Releasing Remmina?</h2>
-<p>As soon as we agree to release a new version, we have some preparatory tasks to do, and to be sure to don't miss anything, we work on a new branch and submit a merge request. This is the most important point, as on https://gitlab.com/Remmina/Remmina/-/blob/master/.gitlab/merge_request_templates/Remmina%20Release.md "GitLab" we have a merge request template for the releases.</p>
+<p>As soon as we agree to release a new version, we have some preparatory tasks to do, and to be sure to don't miss anything, we work on a new branch and submit a merge request. This is the most important point, as on https://gitlab.com/Remmina/Remmina/-/blob/master/.gitlab/merge_request_templates/Remmina%20Release.md "GitLab" we have a merge request template for the releases. Instructions for generating the changelog can be found <a href="https://gitlab.com/Remmina/Remmina/-/wikis/Contribution/HOWTO-generate-the-changelog">here</a>.</p>
<ol type="1">
<li>Review the above-mentioned template, and eventually modify it if you see something wrong or missing (like the list of downstream maintainers)</li>
<li>Create a new branch starting from the <code>master</code> branch, use a name like <code>rel/v1.4.28</code></li>
diff --git a/public/rcw_8c_source.html b/public/rcw_8c_source.html
index 21129932f..296530a03 100644
--- a/public/rcw_8c_source.html
+++ b/public/rcw_8c_source.html
@@ -305,7 +305,7 @@ $(document).ready(function(){initNavTree('rcw_8c_source.html','');});
<div class="ttc" id="rcw_8c_html_ae6aeab2ffe3fe798cc017e02f8781358"><div class="ttname"><a href="rcw_8c.html#ae6aeab2ffe3fe798cc017e02f8781358">rcw_toolbar_menu</a></div><div class="ttdeci">static void rcw_toolbar_menu(GtkToolItem *toggle, RemminaConnectionWindow *cnnwin)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l01978">rcw.c:1978</a></div></div>
<div class="ttc" id="rcw_8c_html_a2ea4e41deacf11e9b9b71e7eac06869e"><div class="ttname"><a href="rcw_8c.html#a2ea4e41deacf11e9b9b71e7eac06869e">rcw_signals</a></div><div class="ttdeci">static guint rcw_signals[LAST_SIGNAL]</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l00185">rcw.c:185</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_a14684e3222e6afb1b43d77634a174767"><div class="ttname"><a href="remmina__protocol__widget_8c.html#a14684e3222e6afb1b43d77634a174767">remmina_protocol_widget_update_remote_resolution</a></div><div class="ttdeci">void remmina_protocol_widget_update_remote_resolution(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l02136">remmina_protocol_widget.c:2136</a></div></div>
-<div class="ttc" id="remmina_8c_html_ae0e3cdfa06abe7e29f987421869713e1"><div class="ttname"><a href="remmina_8c.html#ae0e3cdfa06abe7e29f987421869713e1">fullscreen</a></div><div class="ttdeci">gboolean fullscreen</div><div class="ttdef"><b>Definition:</b> <a href="remmina_8c_source.html#l00087">remmina.c:87</a></div></div>
+<div class="ttc" id="remmina_8c_html_ae0e3cdfa06abe7e29f987421869713e1"><div class="ttname"><a href="remmina_8c.html#ae0e3cdfa06abe7e29f987421869713e1">fullscreen</a></div><div class="ttdeci">gboolean fullscreen</div><div class="ttdef"><b>Definition:</b> <a href="remmina_8c_source.html#l00089">remmina.c:89</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_aa41324b7175c46bb42b978332db95d22"><div class="ttname"><a href="remmina__protocol__widget_8c.html#aa41324b7175c46bb42b978332db95d22">remmina_protocol_widget_close_connection</a></div><div class="ttdeci">void remmina_protocol_widget_close_connection(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l00464">remmina_protocol_widget.c:464</a></div></div>
<div class="ttc" id="remmina__public_8c_html_a92025b5f6512955f9c29608b5451a12c"><div class="ttname"><a href="remmina__public_8c.html#a92025b5f6512955f9c29608b5451a12c">remmina_public_popup_position</a></div><div class="ttdeci">void remmina_public_popup_position(GtkMenu *menu, gint *x, gint *y, gboolean *push_in, gpointer user_data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__public_8c_source.html#l00293">remmina_public.c:293</a></div></div>
<div class="ttc" id="struct___remmina_plugin_screenshot_data_html_acc352444c31929a1ef7aee2a0e37827d"><div class="ttname"><a href="struct___remmina_plugin_screenshot_data.html#acc352444c31929a1ef7aee2a0e37827d">_RemminaPluginScreenshotData::bitsPerPixel</a></div><div class="ttdeci">int bitsPerPixel</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00085">types.h:85</a></div></div>
@@ -387,12 +387,12 @@ $(document).ready(function(){initNavTree('rcw_8c_source.html','');});
<div class="ttc" id="rcw_8c_html_a93650a12c555e40554b8b8e7382f42a3"><div class="ttname"><a href="rcw_8c.html#a93650a12c555e40554b8b8e7382f42a3">rcw_toolbar_screenshot</a></div><div class="ttdeci">static void rcw_toolbar_screenshot(GtkToolItem *toggle, RemminaConnectionWindow *cnnwin)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l02135">rcw.c:2135</a></div></div>
<div class="ttc" id="struct___remmina_connection_object_html_a871e61a40fb0acd54b10191a3942d328"><div class="ttname"><a href="struct___remmina_connection_object.html#a871e61a40fb0acd54b10191a3942d328">_RemminaConnectionObject::cnnwin</a></div><div class="ttdeci">RemminaConnectionWindow * cnnwin</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l00163">rcw.c:163</a></div></div>
<div class="ttc" id="remmina__message__panel_8c_html_ae01d27ae9f678dc5a4fa32f0b401f434"><div class="ttname"><a href="remmina__message__panel_8c.html#ae01d27ae9f678dc5a4fa32f0b401f434">remmina_message_panel_setup_message</a></div><div class="ttdeci">void remmina_message_panel_setup_message(RemminaMessagePanel *mp, const gchar *message, RemminaMessagePanelCallback response_callback, gpointer response_callback_data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__message__panel_8c_source.html#l00174">remmina_message_panel.c:174</a></div></div>
-<div class="ttc" id="remmina_8c_html_ab4a9a67c5372ff07b71d0558679ab7ae"><div class="ttname"><a href="remmina_8c.html#ab4a9a67c5372ff07b71d0558679ab7ae">kioskmode</a></div><div class="ttdeci">gboolean kioskmode</div><div class="ttdef"><b>Definition:</b> <a href="remmina_8c_source.html#l00085">remmina.c:85</a></div></div>
+<div class="ttc" id="remmina_8c_html_ab4a9a67c5372ff07b71d0558679ab7ae"><div class="ttname"><a href="remmina_8c.html#ab4a9a67c5372ff07b71d0558679ab7ae">kioskmode</a></div><div class="ttdeci">gboolean kioskmode</div><div class="ttdef"><b>Definition:</b> <a href="remmina_8c_source.html#l00087">remmina.c:87</a></div></div>
<div class="ttc" id="remmina__exec_8c_html_aaa67e07e2426828d7e7b9b30d2038d31"><div class="ttname"><a href="remmina__exec_8c.html#aaa67e07e2426828d7e7b9b30d2038d31">remmina_application_condexit</a></div><div class="ttdeci">void remmina_application_condexit(RemminaCondExitType why)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__exec_8c_source.html#l00123">remmina_exec.c:123</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_a0b19dbe685e4465e7f06706270e120fa"><div class="ttname"><a href="remmina__protocol__widget_8c.html#a0b19dbe685e4465e7f06706270e120fa">remmina_protocol_widget_set_expand</a></div><div class="ttdeci">void remmina_protocol_widget_set_expand(RemminaProtocolWidget *gp, gboolean expand)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l01426">remmina_protocol_widget.c:1426</a></div></div>
<div class="ttc" id="rcw_8c_html_a5472fed2058a6597c3c7b7c91e98a73e"><div class="ttname"><a href="rcw_8c.html#a5472fed2058a6597c3c7b7c91e98a73e">focus_in_delayed_grab</a></div><div class="ttdeci">static gboolean focus_in_delayed_grab(RemminaConnectionWindow *cnnwin)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l02918">rcw.c:2918</a></div></div>
<div class="ttc" id="rcw_8c_html_a23692809213a6dfe683afe3d0dece3aa"><div class="ttname"><a href="rcw_8c.html#a23692809213a6dfe683afe3d0dece3aa">rco_update_toolbar_autofit_button</a></div><div class="ttdeci">void rco_update_toolbar_autofit_button(RemminaConnectionObject *cnnobj)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l01633">rcw.c:1633</a></div></div>
-<div class="ttc" id="remmina_8c_html_ae729d4262682c8674b8dd0135014810a"><div class="ttname"><a href="remmina_8c.html#ae729d4262682c8674b8dd0135014810a">extrahardening</a></div><div class="ttdeci">gboolean extrahardening</div><div class="ttdef"><b>Definition:</b> <a href="remmina_8c_source.html#l00088">remmina.c:88</a></div></div>
+<div class="ttc" id="remmina_8c_html_ae729d4262682c8674b8dd0135014810a"><div class="ttname"><a href="remmina_8c.html#ae729d4262682c8674b8dd0135014810a">extrahardening</a></div><div class="ttdeci">gboolean extrahardening</div><div class="ttdef"><b>Definition:</b> <a href="remmina_8c_source.html#l00090">remmina.c:90</a></div></div>
<div class="ttc" id="remmina__file_8c_html_a85ca1ca2d0bf9ef29e490c6f4527a954"><div class="ttname"><a href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a></div><div class="ttdeci">void remmina_file_set_string(RemminaFile *remminafile, const gchar *setting, const gchar *value)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file_8c_source.html#l00469">remmina_file.c:469</a></div></div>
<div class="ttc" id="remmina__file_8c_html_a8c893a5deec9bc446bd89cc9973416c7"><div class="ttname"><a href="remmina__file_8c.html#a8c893a5deec9bc446bd89cc9973416c7">remmina_file_save</a></div><div class="ttdeci">void remmina_file_save(RemminaFile *remminafile)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file_8c_source.html#l00728">remmina_file.c:728</a></div></div>
<div class="ttc" id="rcw_8c_html_ad5a67ac52028302d5681cceaf9ac46bc"><div class="ttname"><a href="rcw_8c.html#ad5a67ac52028302d5681cceaf9ac46bc">rcw_append_new_page</a></div><div class="ttdeci">static GtkWidget * rcw_append_new_page(RemminaConnectionWindow *cnnwin, RemminaConnectionObject *cnnobj)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l03565">rcw.c:3565</a></div></div>
diff --git a/public/remmina_8c.html b/public/remmina_8c.html
index 5f2ed2b85..1edfeb5d3 100644
--- a/public/remmina_8c.html
+++ b/public/remmina_8c.html
@@ -149,7 +149,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina_8c_source.html#l00139">139</a> of file <a class="el" href="remmina_8c_source.html">remmina.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina_8c_source.html#l00141">141</a> of file <a class="el" href="remmina_8c_source.html">remmina.c</a>.</p>
</div>
</div>
@@ -179,7 +179,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina_8c_source.html#l00345">345</a> of file <a class="el" href="remmina_8c_source.html">remmina.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina_8c_source.html#l00347">347</a> of file <a class="el" href="remmina_8c_source.html">remmina.c</a>.</p>
</div>
</div>
@@ -218,7 +218,7 @@ Variables</h2></td></tr>
</div><div class="memdoc">
<dl class="section warning"><dt>Warning</dt><dd>To be used like -c FILE -c FILE -c FILE …</dd></dl>
-<p class="definition">Definition at line <a class="el" href="remmina_8c_source.html#l00149">149</a> of file <a class="el" href="remmina_8c_source.html">remmina.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina_8c_source.html#l00151">151</a> of file <a class="el" href="remmina_8c_source.html">remmina.c</a>.</p>
</div>
</div>
@@ -262,7 +262,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina_8c_source.html#l00306">306</a> of file <a class="el" href="remmina_8c_source.html">remmina.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina_8c_source.html#l00308">308</a> of file <a class="el" href="remmina_8c_source.html">remmina.c</a>.</p>
</div>
</div>
@@ -290,7 +290,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina_8c_source.html#l00272">272</a> of file <a class="el" href="remmina_8c_source.html">remmina.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina_8c_source.html#l00274">274</a> of file <a class="el" href="remmina_8c_source.html">remmina.c</a>.</p>
</div>
</div>
@@ -307,7 +307,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina_8c_source.html#l00086">86</a> of file <a class="el" href="remmina_8c_source.html">remmina.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina_8c_source.html#l00088">88</a> of file <a class="el" href="remmina_8c_source.html">remmina.c</a>.</p>
</div>
</div>
@@ -323,7 +323,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina_8c_source.html#l00089">89</a> of file <a class="el" href="remmina_8c_source.html">remmina.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina_8c_source.html#l00091">91</a> of file <a class="el" href="remmina_8c_source.html">remmina.c</a>.</p>
</div>
</div>
@@ -339,7 +339,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina_8c_source.html#l00088">88</a> of file <a class="el" href="remmina_8c_source.html">remmina.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina_8c_source.html#l00090">90</a> of file <a class="el" href="remmina_8c_source.html">remmina.c</a>.</p>
</div>
</div>
@@ -355,7 +355,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina_8c_source.html#l00087">87</a> of file <a class="el" href="remmina_8c_source.html">remmina.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina_8c_source.html#l00089">89</a> of file <a class="el" href="remmina_8c_source.html">remmina.c</a>.</p>
</div>
</div>
@@ -371,7 +371,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina_8c_source.html#l00075">75</a> of file <a class="el" href="remmina_8c_source.html">remmina.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina_8c_source.html#l00077">77</a> of file <a class="el" href="remmina_8c_source.html">remmina.c</a>.</p>
</div>
</div>
@@ -395,7 +395,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina_8c_source.html#l00081">81</a> of file <a class="el" href="remmina_8c_source.html">remmina.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina_8c_source.html#l00083">83</a> of file <a class="el" href="remmina_8c_source.html">remmina.c</a>.</p>
</div>
</div>
@@ -411,7 +411,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina_8c_source.html#l00085">85</a> of file <a class="el" href="remmina_8c_source.html">remmina.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina_8c_source.html#l00087">87</a> of file <a class="el" href="remmina_8c_source.html">remmina.c</a>.</p>
</div>
</div>
@@ -435,7 +435,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina_8c_source.html#l00091">91</a> of file <a class="el" href="remmina_8c_source.html">remmina.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina_8c_source.html#l00093">93</a> of file <a class="el" href="remmina_8c_source.html">remmina.c</a>.</p>
</div>
</div>
diff --git a/public/remmina_8c_source.html b/public/remmina_8c_source.html
index e87a667d6..67286bc90 100644
--- a/public/remmina_8c_source.html
+++ b/public/remmina_8c_source.html
@@ -86,13 +86,13 @@ $(document).ready(function(){initNavTree('remmina_8c_source.html','');});
<div class="title">remmina.c</div> </div>
</div><!--header-->
<div class="contents">
-<a href="remmina_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Remmina - The GTK Remote Desktop Client</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> * Copyright (C) 2014-2022 Antenore Gatta, Giovanni Panozzo</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> * (at your option) any later version.</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> * along with this program; if not, write to the Free Software</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment"> * Foundation, Inc., 51 Franklin Street, Fifth Floor,</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment"> * Boston, MA 02110-1301, USA.</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment"> * In addition, as a special exception, the copyright holders give</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment"> * permission to link the code of portions of this program with the</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment"> * OpenSSL library under certain conditions as described in each</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment"> * individual source file, and distribute linked combinations</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> * including the two.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> * You must obey the GNU General Public License in all respects</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> * for all of the code used other than OpenSSL. * If you modify</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * file(s) with this exception, you may extend this exception to your</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> * version of the file(s), but you are not obligated to do so. * If you</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment"> * do not wish to do so, delete this exception statement from your</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment"> * version. * If you delete this exception statement from all source</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment"> * files in the program, then also delete it here.</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#define G_LOG_USE_STRUCTURED</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#ifndef G_LOG_DOMAIN</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#define G_LOG_DOMAIN ((gchar*)&quot;remmina&quot;)</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* G_LOG_DOMAIN */</span><span class="preprocessor"></span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#ifdef GDK_WINDOWING_X11</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#include &lt;gdk/gdkx.h&gt;</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#include &lt;gdk/gdkwayland.h&gt;</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#include &lt;gio/gio.h&gt;</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#include &lt;glib/gi18n.h&gt;</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &lt;stdlib.h&gt;</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#include &quot;config.h&quot;</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__sodium_8h.html">remmina_sodium.h</a>&quot;</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina_8h.html">remmina.h</a>&quot;</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__exec_8h.html">remmina_exec.h</a>&quot;</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__file__manager_8h.html">remmina_file_manager.h</a>&quot;</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__icon_8h.html">remmina_icon.h</a>&quot;</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__main_8h.html">remmina_main.h</a>&quot;</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__masterthread__exec_8h.html">remmina_masterthread_exec.h</a>&quot;</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__plugin__manager_8h.html">remmina_plugin_manager.h</a>&quot;</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__plugin__native_8h.html">remmina_plugin_native.h</a>&quot;</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor">#ifdef WITH_PYTHONLIBS</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor">#include &quot;remmina_plugin_python.h&quot;</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__pref_8h.html">remmina_pref.h</a>&quot;</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__public_8h.html">remmina_public.h</a>&quot;</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__sftp__plugin_8h.html">remmina_sftp_plugin.h</a>&quot;</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__ssh__plugin_8h.html">remmina_ssh_plugin.h</a>&quot;</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__widget__pool_8h.html">remmina_widget_pool.h</a>&quot;</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__trace__calls_8h.html">remmina/remmina_trace_calls.h</a>&quot;</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="preprocessor">#ifdef HAVE_ERRNO_H</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="preprocessor">#include &lt;errno.h&gt;</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="preprocessor">#include &lt;pthread.h&gt;</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="preprocessor">#ifdef HAVE_LIBGCRYPT</span></div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="preprocessor">#include &lt;gcrypt.h&gt;</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="preprocessor"># if GCRYPT_VERSION_NUMBER &lt; 0x010600</span></div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="remmina_8c.html#a3d760300165528383af409d2964d79d2"> 75</a></span>&#160;<a class="code" href="remmina_8c.html#a3d760300165528383af409d2964d79d2">GCRY_THREAD_OPTION_PTHREAD_IMPL</a>;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* !GCRYPT_VERSION_NUMBER */</span><span class="preprocessor"></span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* HAVE_LIBGCRYPT */</span><span class="preprocessor"></span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="preprocessor">#ifdef HAVE_LIBGCRYPT</span></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="preprocessor"># if GCRYPT_VERSION_NUMBER &lt; 0x010600</span></div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="remmina_8c.html#a87cf5ad579b1e914ce7ea788cead4104"> 81</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="remmina_8c.html#a87cf5ad579b1e914ce7ea788cead4104">gcrypt_thread_initialized</a> = 0;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* !GCRYPT_VERSION_NUMBER */</span><span class="preprocessor"></span></div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* HAVE_LIBGCRYPT */</span><span class="preprocessor"></span></div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="remmina_8h.html#a806213b48f3332bbb4bb771ddde38ab1"> 85</a></span>&#160;gboolean <a class="code" href="remmina_8c.html#ab4a9a67c5372ff07b71d0558679ab7ae">kioskmode</a>;</div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="remmina__pref_8h.html#a86d25bcf3c47f758f813a175a18b6ff1"> 86</a></span>&#160;gboolean <a class="code" href="remmina_8c.html#a86d25bcf3c47f758f813a175a18b6ff1">disabletoolbar</a>;</div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="remmina__pref_8h.html#ae0e3cdfa06abe7e29f987421869713e1"> 87</a></span>&#160;gboolean <a class="code" href="remmina_8c.html#ae0e3cdfa06abe7e29f987421869713e1">fullscreen</a>;</div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="remmina__pref_8h.html#ae729d4262682c8674b8dd0135014810a"> 88</a></span>&#160;gboolean <a class="code" href="remmina_8c.html#ae729d4262682c8674b8dd0135014810a">extrahardening</a>;</div><div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="remmina__pref_8h.html#af2649a017ee95bd78adf58fda09c3e58"> 89</a></span>&#160;gboolean <a class="code" href="remmina_8c.html#af2649a017ee95bd78adf58fda09c3e58">disabletrayicon</a>;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="remmina_8c.html#a3837fb7dd2ca88b6f7acaecc0d062ac5"> 91</a></span>&#160;<span class="keyword">static</span> GOptionEntry <a class="code" href="remmina_8c.html#a3837fb7dd2ca88b6f7acaecc0d062ac5">remmina_options</a>[] =</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;{</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="comment">// TRANSLATORS: Shown in terminal. Do not use characters that may be not supported on a terminal</span></div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; { <span class="stringliteral">&quot;about&quot;</span>, <span class="charliteral">&#39;a&#39;</span>, 0, G_OPTION_ARG_NONE, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Show \&#39;About\&#39;&quot;</span>), NULL },</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="comment">// TRANSLATORS: Shown in terminal. Do not use characters that may be not supported on a terminal</span></div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; { <span class="stringliteral">&quot;connect&quot;</span>, <span class="charliteral">&#39;c&#39;</span>, 0, G_OPTION_ARG_FILENAME_ARRAY, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Connect either to a desktop described in a file (.remmina or a filetype supported by a plugin) or a supported URI (RDP, VNC, SSH or SPICE)&quot;</span>), <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;FILE&quot;</span>) },</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="comment">// TRANSLATORS: Shown in terminal. Do not use characters that may be not supported on a terminal</span></div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; { G_OPTION_REMAINING, <span class="charliteral">&#39;\0&#39;</span>, 0, G_OPTION_ARG_FILENAME_ARRAY, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Connect to a desktop described in a file (.remmina or a filetype supported by a plugin)&quot;</span>), <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;FILE&quot;</span>) },</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="comment">// TRANSLATORS: Shown in terminal. Do not use characters that may be not supported on a terminal</span></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; { <span class="stringliteral">&quot;edit&quot;</span>, <span class="charliteral">&#39;e&#39;</span>, 0, G_OPTION_ARG_FILENAME_ARRAY, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Edit desktop connection described in file (.remmina or a filetype supported by plugin)&quot;</span>), <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;FILE&quot;</span>) },</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; { <span class="stringliteral">&quot;help&quot;</span>, <span class="charliteral">&#39;?&#39;</span>, G_OPTION_FLAG_HIDDEN, G_OPTION_ARG_NONE, NULL, NULL, NULL },</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="comment">// TRANSLATORS: Shown in terminal. Do not use characters that may be not supported on a terminal</span></div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; { <span class="stringliteral">&quot;kiosk&quot;</span>, <span class="charliteral">&#39;k&#39;</span>, 0, G_OPTION_ARG_NONE, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Start in kiosk mode&quot;</span>), NULL },</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="comment">// TRANSLATORS: Shown in terminal. Do not use characters that may be not supported on a terminal</span></div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; { <span class="stringliteral">&quot;new&quot;</span>, <span class="charliteral">&#39;n&#39;</span>, 0, G_OPTION_ARG_NONE, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Create new connection profile&quot;</span>), NULL },</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="comment">// TRANSLATORS: Shown in terminal. Do not use characters that may be not supported on a terminal</span></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; { <span class="stringliteral">&quot;pref&quot;</span>, <span class="charliteral">&#39;p&#39;</span>, 0, G_OPTION_ARG_STRING, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Show preferences&quot;</span>), <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;TABINDEX&quot;</span>) },</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="preprocessor">#if 0</span></div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="comment">/* This option was used mainly for telepathy, let&#39;s keep it if we will need it in the future */</span></div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="comment">// TRANSLATORS: Shown in terminal. Do not use characters that may be not supported on a terminal</span></div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="comment">//{ &quot;plugin&quot;, &#39;x&#39;, 0, G_OPTION_ARG_STRING, NULL, N_(&quot;Run a plugin&quot;), N_(&quot;PLUGIN&quot;) },</span></div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="comment">// TRANSLATORS: Shown in terminal. Do not use characters that may be not supported on a terminal</span></div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; { <span class="stringliteral">&quot;quit&quot;</span>, <span class="charliteral">&#39;q&#39;</span>, 0, G_OPTION_ARG_NONE, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Quit&quot;</span>), NULL },</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="comment">// TRANSLATORS: Shown in terminal. Do not use characters that may be not supported on a terminal</span></div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; { <span class="stringliteral">&quot;server&quot;</span>, <span class="charliteral">&#39;s&#39;</span>, 0, G_OPTION_ARG_STRING, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Use default server name (for --new)&quot;</span>), <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;SERVER&quot;</span>) },</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="comment">// TRANSLATORS: Shown in terminal. Do not use characters that may be not supported on a terminal</span></div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; { <span class="stringliteral">&quot;protocol&quot;</span>, <span class="charliteral">&#39;t&#39;</span>, 0, G_OPTION_ARG_STRING, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Use default protocol (for --new)&quot;</span>), <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;PROTOCOL&quot;</span>) },</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="comment">// TRANSLATORS: Shown in terminal. Do not use characters that may be not supported on a terminal</span></div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; { <span class="stringliteral">&quot;icon&quot;</span>, <span class="charliteral">&#39;i&#39;</span>, 0, G_OPTION_ARG_NONE, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Start in tray&quot;</span>), NULL },</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="comment">// TRANSLATORS: Shown in terminal. Do not use characters that may be not supported on a terminal</span></div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; { <span class="stringliteral">&quot;version&quot;</span>, <span class="charliteral">&#39;v&#39;</span>, 0, G_OPTION_ARG_NONE, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Show the application version&quot;</span>), NULL },</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="comment">// TRANSLATORS: Shown in terminal. Do not use characters that may be not supported on a terminal</span></div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; { <span class="stringliteral">&quot;full-version&quot;</span>, <span class="charliteral">&#39;V&#39;</span>, 0, G_OPTION_ARG_NONE, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Show version of the application and its plugins&quot;</span>), NULL },</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="comment">// TRANSLATORS: Shown in terminal. Do not use characters that may be not supported on a terminal</span></div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; { <span class="stringliteral">&quot;update-profile&quot;</span>, 0, 0, G_OPTION_ARG_FILENAME, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Modify connection profile (requires --set-option)&quot;</span>), NULL },</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="comment">// TRANSLATORS: Shown in terminal. Do not use characters that may be not supported on a terminal</span></div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; { <span class="stringliteral">&quot;set-option&quot;</span>, 0, 0, G_OPTION_ARG_STRING_ARRAY, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Set one or more profile settings, to be used with --update-profile&quot;</span>), NULL },</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; { <span class="stringliteral">&quot;encrypt-password&quot;</span>, 0, 0, G_OPTION_ARG_NONE, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Encrypt a password&quot;</span>), NULL },</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; { <span class="stringliteral">&quot;disable-toolbar&quot;</span>, 0, 0, G_OPTION_ARG_NONE, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Disable toolbar&quot;</span>), NULL },</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; { <span class="stringliteral">&quot;enable-fullscreen&quot;</span>, 0, 0, G_OPTION_ARG_NONE, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Enable fullscreen&quot;</span>), NULL },</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; { <span class="stringliteral">&quot;enable-extra-hardening&quot;</span>, 0, 0, G_OPTION_ARG_NONE, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Enable extra hardening (disable closing confirmation, disable unsafe shortcut keys, hide tabs, hide search bar)&quot;</span>), NULL },</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; { <span class="stringliteral">&quot;no-tray-icon&quot;</span>, 0, 0, G_OPTION_ARG_NONE, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Disable tray icon&quot;</span>), NULL },</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; { NULL }</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;};</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;<span class="preprocessor">#ifdef WITH_LIBGCRYPT</span></div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span></div><div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="remmina_8c.html#a1ecec6e37469e2e927a612747269587c"> 139</a></span>&#160;<a class="code" href="remmina_8c.html#a1ecec6e37469e2e927a612747269587c">_gpg_error_to_errno</a>(gcry_error_t e)</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;{</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="comment">/* be lazy right now */</span></div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">if</span> (e == GPG_ERR_NO_ERROR)</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordflow">return</span> EINVAL;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;}</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* !WITH_LIBGCRYPT */</span><span class="preprocessor"></span></div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="remmina_8c.html#aeb286fc5bd52ab5382ab8cb495dc2914"> 149</a></span>&#160;<span class="keyword">static</span> gint <a class="code" href="remmina_8c.html#aeb286fc5bd52ab5382ab8cb495dc2914">remmina_on_command_line</a>(GApplication *app, GApplicationCommandLine *cmdline)</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;{</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; gint status = 0;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; gboolean executed = FALSE;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; GVariantDict *opts;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; gchar *str;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keyword">const</span> gchar **files;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keyword">const</span> gchar **remaining_args;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; gchar *protocol;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; gchar *server;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="preprocessor">#if SODIUM_VERSION_INT &gt;= 90200</span></div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <a class="code" href="remmina__sodium_8c.html#a17d17beeb57808af1c4299e3b4b94e9a">remmina_sodium_init</a>();</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; opts = g_application_command_line_get_options_dict(cmdline);</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordflow">if</span> (g_variant_dict_lookup_value(opts, <span class="stringliteral">&quot;disable-toolbar&quot;</span>, NULL)) {</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <a class="code" href="remmina_8c.html#a86d25bcf3c47f758f813a175a18b6ff1">disabletoolbar</a> = TRUE;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; }</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordflow">if</span> (g_variant_dict_lookup_value(opts, <span class="stringliteral">&quot;enable-fullscreen&quot;</span>, NULL)) {</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <a class="code" href="remmina_8c.html#ae0e3cdfa06abe7e29f987421869713e1">fullscreen</a> = TRUE;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; }</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordflow">if</span> (g_variant_dict_lookup_value(opts, <span class="stringliteral">&quot;enable-extra-hardening&quot;</span>, NULL)) {</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <a class="code" href="remmina_8c.html#ae729d4262682c8674b8dd0135014810a">extrahardening</a> = TRUE;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; }</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordflow">if</span> (g_variant_dict_lookup_value(opts, <span class="stringliteral">&quot;no-tray-icon&quot;</span>, NULL)) {</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <a class="code" href="remmina_8c.html#af2649a017ee95bd78adf58fda09c3e58">disabletrayicon</a> = TRUE;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; }</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <a class="code" href="remmina__pref_8c.html#a400f7319fd3996a13399ef72bcf0a2fd">remmina_pref_init</a>();</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordflow">if</span> (g_variant_dict_lookup_value(opts, <span class="stringliteral">&quot;quit&quot;</span>, NULL)) {</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <a class="code" href="remmina__exec_8c.html#a424cabdcff647797061e7482049d62a7">remmina_exec_command</a>(<a class="code" href="remmina__exec_8h.html#a23616cb0334a45c2b477be6efd45ee0ca5815f1d3742909a0a2a61664ad35300a">REMMINA_COMMAND_EXIT</a>, NULL);</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; executed = TRUE;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; status = 1;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; }</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordflow">if</span> (g_variant_dict_lookup_value(opts, <span class="stringliteral">&quot;about&quot;</span>, NULL)) {</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <a class="code" href="remmina__exec_8c.html#a424cabdcff647797061e7482049d62a7">remmina_exec_command</a>(<a class="code" href="remmina__exec_8h.html#a23616cb0334a45c2b477be6efd45ee0cacce474bb2b63053b884cc9e639d4372b">REMMINA_COMMAND_ABOUT</a>, NULL);</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; executed = TRUE;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; }</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordflow">if</span> (g_variant_dict_lookup(opts, <span class="stringliteral">&quot;connect&quot;</span>, <span class="stringliteral">&quot;^aay&quot;</span>, &amp;files)) {</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordflow">if</span> (files)</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">for</span> (gint i = 0; files[i]; i++) {</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; g_debug (<span class="stringliteral">&quot;Connecting to: %s&quot;</span>, files[i]);</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <a class="code" href="remmina__exec_8c.html#a424cabdcff647797061e7482049d62a7">remmina_exec_command</a>(<a class="code" href="remmina__exec_8h.html#a23616cb0334a45c2b477be6efd45ee0ca3b100b365ea4c523dba34c3a1233e33d">REMMINA_COMMAND_CONNECT</a>, files[i]);</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; }</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; executed = TRUE;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; }</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordflow">if</span> (g_variant_dict_lookup(opts, G_OPTION_REMAINING, <span class="stringliteral">&quot;^a&amp;ay&quot;</span>, &amp;remaining_args)) {</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <a class="code" href="remmina__exec_8c.html#a424cabdcff647797061e7482049d62a7">remmina_exec_command</a>(<a class="code" href="remmina__exec_8h.html#a23616cb0334a45c2b477be6efd45ee0ca3b100b365ea4c523dba34c3a1233e33d">REMMINA_COMMAND_CONNECT</a>, remaining_args[0]);</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; g_free(remaining_args);</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; executed = TRUE;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; }</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keywordflow">if</span> (g_variant_dict_lookup(opts, <span class="stringliteral">&quot;edit&quot;</span>, <span class="stringliteral">&quot;^aay&quot;</span>, &amp;files)) {</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordflow">if</span> (files)</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keywordflow">for</span> (gint i = 0; files[i]; i++) {</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; g_debug (<span class="stringliteral">&quot;Editing file: %s&quot;</span>, files[i]);</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <a class="code" href="remmina__exec_8c.html#a424cabdcff647797061e7482049d62a7">remmina_exec_command</a>(<a class="code" href="remmina__exec_8h.html#a23616cb0334a45c2b477be6efd45ee0caddf76fb98da2a8a197974ac1237dfb65">REMMINA_COMMAND_EDIT</a>, files[i]);</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; }</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="comment">//remmina_exec_command(REMMINA_COMMAND_EDIT, str);</span></div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="comment">//g_free(str);</span></div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; executed = TRUE;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; }</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keywordflow">if</span> (g_variant_dict_lookup_value(opts, <span class="stringliteral">&quot;kiosk&quot;</span>, NULL)) {</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <a class="code" href="remmina_8c.html#ab4a9a67c5372ff07b71d0558679ab7ae">kioskmode</a> = TRUE;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <a class="code" href="remmina__exec_8c.html#a424cabdcff647797061e7482049d62a7">remmina_exec_command</a>(<a class="code" href="remmina__exec_8h.html#a23616cb0334a45c2b477be6efd45ee0cae084d7c048c5eb5045210062b225f5e5">REMMINA_COMMAND_MAIN</a>, NULL);</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; executed = TRUE;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; }</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordflow">if</span> (g_variant_dict_lookup_value(opts, <span class="stringliteral">&quot;new&quot;</span>, NULL)) {</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keywordflow">if</span> (!g_variant_dict_lookup(opts, <span class="stringliteral">&quot;protocol&quot;</span>, <span class="stringliteral">&quot;&amp;s&quot;</span>, &amp;protocol))</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; protocol = NULL;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keywordflow">if</span> (g_variant_dict_lookup(opts, <span class="stringliteral">&quot;server&quot;</span>, <span class="stringliteral">&quot;&amp;s&quot;</span>, &amp;server))</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; str = g_strdup_printf(<span class="stringliteral">&quot;%s,%s&quot;</span>, protocol, server);</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; str = g_strdup(protocol);</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <a class="code" href="remmina__exec_8c.html#a424cabdcff647797061e7482049d62a7">remmina_exec_command</a>(<a class="code" href="remmina__exec_8h.html#a23616cb0334a45c2b477be6efd45ee0ca2b493ae3acf856c484831767169c41b7">REMMINA_COMMAND_NEW</a>, str);</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; g_free(str);</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; executed = TRUE;</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; }</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordflow">if</span> (g_variant_dict_lookup(opts, <span class="stringliteral">&quot;pref&quot;</span>, <span class="stringliteral">&quot;&amp;s&quot;</span>, &amp;str)) {</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <a class="code" href="remmina__exec_8c.html#a424cabdcff647797061e7482049d62a7">remmina_exec_command</a>(<a class="code" href="remmina__exec_8h.html#a23616cb0334a45c2b477be6efd45ee0ca822f35bcbc0737231ada0aa4ecfcd704">REMMINA_COMMAND_PREF</a>, str);</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; executed = TRUE;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; }</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keywordflow">if</span> (g_variant_dict_lookup(opts, <span class="stringliteral">&quot;plugin&quot;</span>, <span class="stringliteral">&quot;&amp;s&quot;</span>, &amp;str)) {</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <a class="code" href="remmina__exec_8c.html#a424cabdcff647797061e7482049d62a7">remmina_exec_command</a>(<a class="code" href="remmina__exec_8h.html#a23616cb0334a45c2b477be6efd45ee0cabb2bf3aea0dd6f02ba402ec12a6ccbad">REMMINA_COMMAND_PLUGIN</a>, str);</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; executed = TRUE;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; }</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keywordflow">if</span> (g_variant_dict_lookup_value(opts, <span class="stringliteral">&quot;icon&quot;</span>, NULL)) {</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <a class="code" href="remmina__exec_8c.html#a424cabdcff647797061e7482049d62a7">remmina_exec_command</a>(<a class="code" href="remmina__exec_8h.html#a23616cb0334a45c2b477be6efd45ee0ca45777bb1a8f6a617da7eca5f7181d224">REMMINA_COMMAND_NONE</a>, NULL);</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; executed = TRUE;</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; }</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keywordflow">if</span> (g_variant_dict_lookup_value(opts, <span class="stringliteral">&quot;encrypt-password&quot;</span>, NULL)) {</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <a class="code" href="remmina__exec_8c.html#a424cabdcff647797061e7482049d62a7">remmina_exec_command</a>(<a class="code" href="remmina__exec_8h.html#a23616cb0334a45c2b477be6efd45ee0cab4e4dc22219fe0323279276222efb0b5">REMMINA_COMMAND_ENCRYPT_PASSWORD</a>, NULL);</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; executed = TRUE;</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; status = 1;</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; }</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keywordflow">if</span> (!executed)</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <a class="code" href="remmina__exec_8c.html#a424cabdcff647797061e7482049d62a7">remmina_exec_command</a>(<a class="code" href="remmina__exec_8h.html#a23616cb0334a45c2b477be6efd45ee0cae084d7c048c5eb5045210062b225f5e5">REMMINA_COMMAND_MAIN</a>, NULL);</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keywordflow">return</span> status;</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;}</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;</div><div class="line"><a name="l00272"></a><span class="lineno"><a class="line" href="remmina_8c.html#a26d2c20be18ff44f239b756f1d5be01a"> 272</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina_8c.html#a26d2c20be18ff44f239b756f1d5be01a">remmina_on_startup</a>(GApplication *app)</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;{</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <a class="code" href="struct___remmina_secret_plugin.html">RemminaSecretPlugin</a> *secret_plugin;</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <a class="code" href="remmina__widget__pool_8c.html#aadc178f8f991ba939827d235aae8ad09">remmina_widget_pool_init</a>();</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <a class="code" href="remmina__sftp__plugin_8c.html#a14a447ab8a10b109967d92c8d2db0ff9">remmina_sftp_plugin_register</a>();</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <a class="code" href="remmina__ssh__plugin_8c.html#a6f594d157e09639e09b1f32a420da96c">remmina_ssh_plugin_register</a>();</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <a class="code" href="remmina__icon_8c.html#afbd7758d1d43c61a014b7ef00f11fa58">remmina_icon_init</a>();</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; g_set_application_name(<span class="stringliteral">&quot;Remmina&quot;</span>);</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; gtk_window_set_default_icon_name(REMMINA_APP_ID);</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="comment">/* Setting the X11 program class (WM_CLASS) is necessary to group</span></div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;<span class="comment"> * windows with .desktop file which has the same StartupWMClass */</span></div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; gdk_set_program_class(REMMINA_APP_ID);</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; gtk_icon_theme_append_search_path(gtk_icon_theme_get_default(),</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; REMMINA_RUNTIME_DATADIR G_DIR_SEPARATOR_S <span class="stringliteral">&quot;icons&quot;</span>);</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; g_application_hold(app);</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="comment">/* Check for secret plugin and service initialization and show console warnings if</span></div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;<span class="comment"> * something is missing */</span></div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; secret_plugin = <a class="code" href="remmina__plugin__manager_8c.html#ad380a98f6624aa8c830015c8b428b7b4">remmina_plugin_manager_get_secret_plugin</a>();</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="keywordflow">if</span> (!secret_plugin)</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; g_print(<span class="stringliteral">&quot;Warning: Remmina is running without a secret plugin. Passwords will be saved in a less secure way.\n&quot;</span>);</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <span class="keywordflow">if</span> (!secret_plugin-&gt;<a class="code" href="struct___remmina_secret_plugin.html#a2123e14795b104f5fe8d77a4b7847261">is_service_available</a>(secret_plugin))</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; g_print(<span class="stringliteral">&quot;Warning: Remmina is running with a secrecy plugin, but it cannot connect to a secrecy service.\n&quot;</span>);</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <a class="code" href="remmina__exec_8c.html#a424cabdcff647797061e7482049d62a7">remmina_exec_command</a>(<a class="code" href="remmina__exec_8h.html#a23616cb0334a45c2b477be6efd45ee0cacc1267f3834ff091be0587522f2182b8">REMMINA_COMMAND_AUTOSTART</a>, NULL);</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;}</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;</div><div class="line"><a name="l00306"></a><span class="lineno"><a class="line" href="remmina_8c.html#a9e8319f901232eb5fada98335217979c"> 306</a></span>&#160;<span class="keyword">static</span> gint <a class="code" href="remmina_8c.html#a9e8319f901232eb5fada98335217979c">remmina_on_local_cmdline</a>(GApplication *app, GVariantDict *opts, gpointer user_data)</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;{</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="keywordtype">int</span> status = -1;</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; gchar *str;</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; gchar **settings;</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="comment">/* Here you handle any command line options that you want to be executed</span></div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;<span class="comment"> * in the local instance (the non-unique instance) */</span></div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <span class="keywordflow">if</span> (g_variant_dict_lookup_value(opts, <span class="stringliteral">&quot;version&quot;</span>, NULL)) {</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <a class="code" href="remmina__exec_8c.html#a424cabdcff647797061e7482049d62a7">remmina_exec_command</a>(<a class="code" href="remmina__exec_8h.html#a23616cb0334a45c2b477be6efd45ee0caa436b39160d5ab6b73f6758dc5c30c06">REMMINA_COMMAND_VERSION</a>, NULL);</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; status = 0;</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; }</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160;</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <span class="keywordflow">if</span> (g_variant_dict_lookup_value(opts, <span class="stringliteral">&quot;full-version&quot;</span>, NULL)) {</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <a class="code" href="remmina__exec_8c.html#a424cabdcff647797061e7482049d62a7">remmina_exec_command</a>(<a class="code" href="remmina__exec_8h.html#a23616cb0334a45c2b477be6efd45ee0cab9f0b4fd42775c1d2b2311e0b9692885">REMMINA_COMMAND_FULL_VERSION</a>, NULL);</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; status = 0;</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; }</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <span class="keywordflow">if</span> (g_variant_dict_lookup(opts, <span class="stringliteral">&quot;update-profile&quot;</span>, <span class="stringliteral">&quot;^&amp;ay&quot;</span>, &amp;str)) { <span class="comment">/* ^&amp;ay no need to free */</span></div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <span class="keywordflow">if</span> (g_variant_dict_lookup(opts, <span class="stringliteral">&quot;set-option&quot;</span>, <span class="stringliteral">&quot;^a&amp;s&quot;</span>, &amp;settings)) {</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="keywordflow">if</span> (settings != NULL) {</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; status = <a class="code" href="remmina__exec_8c.html#a4e202866339a104ffdbfa519cfbcdca9">remmina_exec_set_setting</a>(str, settings);</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; g_free(settings);</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; status = 1;</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; }</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; status = 1;</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; g_print(<span class="stringliteral">&quot;Error: --update-profile requires --set-option\n&quot;</span>);</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; }</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; }</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <span class="comment">/* Returning a non negative value here makes the application exit */</span></div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <span class="keywordflow">return</span> status;</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;}</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160;</div><div class="line"><a name="l00345"></a><span class="lineno"><a class="line" href="remmina_8c.html#a0ddf1224851353fc92bfbff6f499fa97"> 345</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="remmina_8c.html#a0ddf1224851353fc92bfbff6f499fa97">main</a>(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> *argv[])</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;{</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; GtkApplication *app;</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <span class="keyword">const</span> gchar *app_id;</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <span class="keywordtype">int</span> status;</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160;</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; g_unsetenv(<span class="stringliteral">&quot;GDK_CORE_DEVICE_EVENTS&quot;</span>);</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; <span class="comment">// Checking for environment variable &quot;G_MESSAGES_DEBUG&quot;</span></div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; <span class="comment">// Give the less familiar with GLib a tip on where to get</span></div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="comment">// more debugging info.</span></div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; <span class="keywordflow">if</span>(!getenv(<span class="stringliteral">&quot;G_MESSAGES_DEBUG&quot;</span>)) {</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; <span class="comment">/* TRANSLATORS:</span></div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;<span class="comment"> * This link should point to a resource explaining how to get Remmina</span></div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160;<span class="comment"> * to log more verbose statements.</span></div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; g_message(_(<span class="stringliteral">&quot;Remmina does not log all output statements. &quot;</span></div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <span class="stringliteral">&quot;Turn on more verbose output by using &quot;</span></div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <span class="stringliteral">&quot;\&quot;G_MESSAGES_DEBUG=all\&quot; as an environment variable.\n&quot;</span></div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <span class="stringliteral">&quot;More info available on the Remmina wiki at:\n&quot;</span></div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <span class="stringliteral">&quot;https://gitlab.com/Remmina/Remmina/-/wikis/Usage/Remmina-debugging&quot;</span></div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; ));</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; }</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160;</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; <span class="comment">/* Enable wayland backend only after GTK 3.22.27 or the clipboard</span></div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;<span class="comment"> * will not work. See GTK bug 790031 */</span></div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="remmina__public_8c.html#ad7c29f17323086e08ac56e1636fd41c3">remmina_gtk_check_version</a>(3, 22, 27))</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; gdk_set_allowed_backends(<span class="stringliteral">&quot;wayland,x11,broadway,quartz,mir&quot;</span>);</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; gdk_set_allowed_backends(<span class="stringliteral">&quot;x11,broadway,quartz,mir&quot;</span>);</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; <a class="code" href="remmina__masterthread__exec_8c.html#a4a595ce198f8adda31fe11348b0f734e">remmina_masterthread_exec_save_main_thread_id</a>();</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; bindtextdomain(GETTEXT_PACKAGE, REMMINA_RUNTIME_LOCALEDIR);</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; bind_textdomain_codeset(GETTEXT_PACKAGE, <span class="stringliteral">&quot;UTF-8&quot;</span>);</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; textdomain(GETTEXT_PACKAGE);</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;<span class="preprocessor">#ifdef HAVE_LIBGCRYPT</span></div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;<span class="preprocessor"># if GCRYPT_VERSION_NUMBER &lt; 0x010600</span></div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; gcry_error_t e;</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="remmina_8c.html#a87cf5ad579b1e914ce7ea788cead4104">gcrypt_thread_initialized</a>) {</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; <span class="keywordflow">if</span> ((e = gcry_control(GCRYCTL_SET_THREAD_CBS, &amp;gcry_threads_pthread)) != GPG_ERR_NO_ERROR)</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="keywordflow">return</span> -1;</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <a class="code" href="remmina_8c.html#a87cf5ad579b1e914ce7ea788cead4104">gcrypt_thread_initialized</a>++;</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; }</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* !GCRYPT_VERSION_NUMBER */</span><span class="preprocessor"></span></div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; gcry_check_version(NULL);</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; gcry_control(GCRYCTL_DISABLE_SECMEM, 0);</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; gcry_control(GCRYCTL_INITIALIZATION_FINISHED, 0);</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* !HAVE_LIBGCRYPT */</span><span class="preprocessor"></span></div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160;</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; <span class="comment">/* Initialize some Remmina parts needed also on a local instance for correct handle-local-options */</span></div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; <a class="code" href="remmina__pref_8c.html#a400f7319fd3996a13399ef72bcf0a2fd">remmina_pref_init</a>();</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; <a class="code" href="remmina__file__manager_8c.html#afa2b1889dced4289b0f7d7edffc82e72">remmina_file_manager_init</a>();</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160;</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <a class="code" href="remmina__plugin__manager_8c.html#a9df07091ff7d32bcde595a6d3a3598f5">remmina_plugin_manager_init</a>();</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160;</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160;</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160;</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; app_id = g_application_id_is_valid(REMMINA_APP_ID) ? REMMINA_APP_ID : NULL;</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; app = gtk_application_new(app_id, G_APPLICATION_HANDLES_COMMAND_LINE | G_APPLICATION_CAN_OVERRIDE_APP_ID);</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;<span class="preprocessor">#if !GTK_CHECK_VERSION(4, 0, 0) </span><span class="comment">/* This is not needed anymore starting from GTK 4 */</span><span class="preprocessor"></span></div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; g_set_prgname(app_id);</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; g_application_add_main_option_entries(G_APPLICATION(app), <a class="code" href="remmina_8c.html#a3837fb7dd2ca88b6f7acaecc0d062ac5">remmina_options</a>);</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160;<span class="preprocessor">#if GLIB_CHECK_VERSION(2,56,0)</span></div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; gchar *summary = g_strdup_printf (<span class="stringliteral">&quot;%s %s&quot;</span>, app_id, VERSION);</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; g_application_set_option_context_summary (G_APPLICATION(app), summary);</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; g_free(summary);</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <span class="comment">// TRANSLATORS: Shown in terminal. Do not use characters that may be not supported on a terminal</span></div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; g_application_set_option_context_parameter_string (G_APPLICATION(app), _(<span class="stringliteral">&quot;- or protocol://username:encryptedpassword@host:port&quot;</span>));</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <span class="comment">// TRANSLATORS: Shown in terminal. Do not use characters that may be not supported on a terminal</span></div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; g_application_set_option_context_description (G_APPLICATION(app),</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; _(<span class="stringliteral">&quot;Examples:\n&quot;</span></div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <span class="stringliteral">&quot;To connect using an existing connection profile, use:\n&quot;</span></div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <span class="stringliteral">&quot;\n&quot;</span></div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <span class="stringliteral">&quot;\tremmina -c FILE.remmina\n&quot;</span></div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; <span class="stringliteral">&quot;\n&quot;</span></div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; <span class="stringliteral">&quot;To quick connect using a URI:\n&quot;</span></div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; <span class="stringliteral">&quot;\n&quot;</span></div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; <span class="stringliteral">&quot;\tremmina -c rdp://username@server\n&quot;</span></div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; <span class="stringliteral">&quot;\tremmina -c rdp://domain\\\\username@server\n&quot;</span></div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; <span class="stringliteral">&quot;\tremmina -c vnc://username@server\n&quot;</span></div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <span class="stringliteral">&quot;\tremmina -c vnc://server?VncUsername=username\n&quot;</span></div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <span class="stringliteral">&quot;\tremmina -c ssh://user@server\n&quot;</span></div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <span class="stringliteral">&quot;\tremmina -c spice://server\n&quot;</span></div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <span class="stringliteral">&quot;\n&quot;</span></div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; <span class="stringliteral">&quot;To quick connect using a URI along with an encrypted password:\n&quot;</span></div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; <span class="stringliteral">&quot;\n&quot;</span></div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <span class="stringliteral">&quot;\tremmina -c rdp://username:encrypted-password@server\n&quot;</span></div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <span class="stringliteral">&quot;\tremmina -c vnc://username:encrypted-password@server\n&quot;</span></div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; <span class="stringliteral">&quot;\tremmina -c vnc://server?VncUsername=username\\&amp;VncPassword=encrypted-password\n&quot;</span></div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <span class="stringliteral">&quot;\n&quot;</span></div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; <span class="stringliteral">&quot;To encrypt a password for use with a URI:\n&quot;</span></div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; <span class="stringliteral">&quot;\n&quot;</span></div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <span class="stringliteral">&quot;\tremmina --encrypt-password\n&quot;</span></div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <span class="stringliteral">&quot;\n&quot;</span></div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <span class="stringliteral">&quot;To update username and password and set a different resolution mode of a Remmina connection profile, use:\n&quot;</span></div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <span class="stringliteral">&quot;\n&quot;</span></div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <span class="stringliteral">&quot;\techo \&quot;username\\napassword\&quot; | remmina --update-profile /PATH/TO/FOO.remmina --set-option username --set-option resolution_mode=2 --set-option password\n&quot;</span>));</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160;</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; g_signal_connect(app, <span class="stringliteral">&quot;startup&quot;</span>, G_CALLBACK(<a class="code" href="remmina_8c.html#a26d2c20be18ff44f239b756f1d5be01a">remmina_on_startup</a>), NULL);</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; g_signal_connect(app, <span class="stringliteral">&quot;command-line&quot;</span>, G_CALLBACK(<a class="code" href="remmina_8c.html#aeb286fc5bd52ab5382ab8cb495dc2914">remmina_on_command_line</a>), NULL);</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; g_signal_connect(app, <span class="stringliteral">&quot;handle-local-options&quot;</span>, G_CALLBACK(<a class="code" href="remmina_8c.html#a9e8319f901232eb5fada98335217979c">remmina_on_local_cmdline</a>), NULL);</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160;</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160;</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; g_application_set_inactivity_timeout(G_APPLICATION(app), 10000);</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; status = g_application_run(G_APPLICATION(app), argc, argv);</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; g_object_unref(app);</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160;</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; <span class="keywordflow">return</span> status;</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160;}</div><div class="ttc" id="remmina__exec_8c_html_a4e202866339a104ffdbfa519cfbcdca9"><div class="ttname"><a href="remmina__exec_8c.html#a4e202866339a104ffdbfa519cfbcdca9">remmina_exec_set_setting</a></div><div class="ttdeci">int remmina_exec_set_setting(gchar *profilefilename, gchar **settings)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__exec_8c_source.html#l00166">remmina_exec.c:166</a></div></div>
-<div class="ttc" id="remmina_8c_html_a3837fb7dd2ca88b6f7acaecc0d062ac5"><div class="ttname"><a href="remmina_8c.html#a3837fb7dd2ca88b6f7acaecc0d062ac5">remmina_options</a></div><div class="ttdeci">static GOptionEntry remmina_options[]</div><div class="ttdef"><b>Definition:</b> <a href="remmina_8c_source.html#l00091">remmina.c:91</a></div></div>
+<a href="remmina_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Remmina - The GTK Remote Desktop Client</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> * Copyright (C) 2014-2022 Antenore Gatta, Giovanni Panozzo</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> * (at your option) any later version.</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> * along with this program; if not, write to the Free Software</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment"> * Foundation, Inc., 51 Franklin Street, Fifth Floor,</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment"> * Boston, MA 02110-1301, USA.</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment"> * In addition, as a special exception, the copyright holders give</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment"> * permission to link the code of portions of this program with the</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment"> * OpenSSL library under certain conditions as described in each</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment"> * individual source file, and distribute linked combinations</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> * including the two.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> * You must obey the GNU General Public License in all respects</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> * for all of the code used other than OpenSSL. * If you modify</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * file(s) with this exception, you may extend this exception to your</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> * version of the file(s), but you are not obligated to do so. * If you</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment"> * do not wish to do so, delete this exception statement from your</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment"> * version. * If you delete this exception statement from all source</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment"> * files in the program, then also delete it here.</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &lt;gdk/gdk.h&gt;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#define G_LOG_USE_STRUCTURED</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#ifndef G_LOG_DOMAIN</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#define G_LOG_DOMAIN ((gchar*)&quot;remmina&quot;)</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* G_LOG_DOMAIN */</span><span class="preprocessor"></span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#ifdef GDK_WINDOWING_X11</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#include &lt;gdk/gdkx.h&gt;</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#include &lt;gdk/gdkwayland.h&gt;</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &lt;gio/gio.h&gt;</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#include &lt;glib/gi18n.h&gt;</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#include &lt;stdlib.h&gt;</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#include &quot;config.h&quot;</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__sodium_8h.html">remmina_sodium.h</a>&quot;</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina_8h.html">remmina.h</a>&quot;</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__exec_8h.html">remmina_exec.h</a>&quot;</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__file__manager_8h.html">remmina_file_manager.h</a>&quot;</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__icon_8h.html">remmina_icon.h</a>&quot;</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__main_8h.html">remmina_main.h</a>&quot;</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__masterthread__exec_8h.html">remmina_masterthread_exec.h</a>&quot;</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__plugin__manager_8h.html">remmina_plugin_manager.h</a>&quot;</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__plugin__native_8h.html">remmina_plugin_native.h</a>&quot;</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor">#ifdef WITH_PYTHONLIBS</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor">#include &quot;remmina_plugin_python.h&quot;</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__pref_8h.html">remmina_pref.h</a>&quot;</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__public_8h.html">remmina_public.h</a>&quot;</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__sftp__plugin_8h.html">remmina_sftp_plugin.h</a>&quot;</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__ssh__plugin_8h.html">remmina_ssh_plugin.h</a>&quot;</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__widget__pool_8h.html">remmina_widget_pool.h</a>&quot;</span></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__trace__calls_8h.html">remmina/remmina_trace_calls.h</a>&quot;</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="preprocessor">#ifdef HAVE_ERRNO_H</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="preprocessor">#include &lt;errno.h&gt;</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="preprocessor">#include &lt;pthread.h&gt;</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="preprocessor">#ifdef HAVE_LIBGCRYPT</span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="preprocessor">#include &lt;gcrypt.h&gt;</span></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="preprocessor"># if GCRYPT_VERSION_NUMBER &lt; 0x010600</span></div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="remmina_8c.html#a3d760300165528383af409d2964d79d2"> 77</a></span>&#160;<a class="code" href="remmina_8c.html#a3d760300165528383af409d2964d79d2">GCRY_THREAD_OPTION_PTHREAD_IMPL</a>;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* !GCRYPT_VERSION_NUMBER */</span><span class="preprocessor"></span></div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* HAVE_LIBGCRYPT */</span><span class="preprocessor"></span></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="preprocessor">#ifdef HAVE_LIBGCRYPT</span></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="preprocessor"># if GCRYPT_VERSION_NUMBER &lt; 0x010600</span></div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="remmina_8c.html#a87cf5ad579b1e914ce7ea788cead4104"> 83</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="remmina_8c.html#a87cf5ad579b1e914ce7ea788cead4104">gcrypt_thread_initialized</a> = 0;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* !GCRYPT_VERSION_NUMBER */</span><span class="preprocessor"></span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* HAVE_LIBGCRYPT */</span><span class="preprocessor"></span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="remmina_8h.html#a806213b48f3332bbb4bb771ddde38ab1"> 87</a></span>&#160;gboolean <a class="code" href="remmina_8c.html#ab4a9a67c5372ff07b71d0558679ab7ae">kioskmode</a>;</div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="remmina__pref_8h.html#a86d25bcf3c47f758f813a175a18b6ff1"> 88</a></span>&#160;gboolean <a class="code" href="remmina_8c.html#a86d25bcf3c47f758f813a175a18b6ff1">disabletoolbar</a>;</div><div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="remmina__pref_8h.html#ae0e3cdfa06abe7e29f987421869713e1"> 89</a></span>&#160;gboolean <a class="code" href="remmina_8c.html#ae0e3cdfa06abe7e29f987421869713e1">fullscreen</a>;</div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="remmina__pref_8h.html#ae729d4262682c8674b8dd0135014810a"> 90</a></span>&#160;gboolean <a class="code" href="remmina_8c.html#ae729d4262682c8674b8dd0135014810a">extrahardening</a>;</div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="remmina__pref_8h.html#af2649a017ee95bd78adf58fda09c3e58"> 91</a></span>&#160;gboolean <a class="code" href="remmina_8c.html#af2649a017ee95bd78adf58fda09c3e58">disabletrayicon</a>;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="remmina_8c.html#a3837fb7dd2ca88b6f7acaecc0d062ac5"> 93</a></span>&#160;<span class="keyword">static</span> GOptionEntry <a class="code" href="remmina_8c.html#a3837fb7dd2ca88b6f7acaecc0d062ac5">remmina_options</a>[] =</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;{</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="comment">// TRANSLATORS: Shown in terminal. Do not use characters that may be not supported on a terminal</span></div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; { <span class="stringliteral">&quot;about&quot;</span>, <span class="charliteral">&#39;a&#39;</span>, 0, G_OPTION_ARG_NONE, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Show \&#39;About\&#39;&quot;</span>), NULL },</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="comment">// TRANSLATORS: Shown in terminal. Do not use characters that may be not supported on a terminal</span></div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; { <span class="stringliteral">&quot;connect&quot;</span>, <span class="charliteral">&#39;c&#39;</span>, 0, G_OPTION_ARG_FILENAME_ARRAY, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Connect either to a desktop described in a file (.remmina or a filetype supported by a plugin) or a supported URI (RDP, VNC, SSH or SPICE)&quot;</span>), <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;FILE&quot;</span>) },</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="comment">// TRANSLATORS: Shown in terminal. Do not use characters that may be not supported on a terminal</span></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; { G_OPTION_REMAINING, <span class="charliteral">&#39;\0&#39;</span>, 0, G_OPTION_ARG_FILENAME_ARRAY, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Connect to a desktop described in a file (.remmina or a filetype supported by a plugin)&quot;</span>), <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;FILE&quot;</span>) },</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="comment">// TRANSLATORS: Shown in terminal. Do not use characters that may be not supported on a terminal</span></div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; { <span class="stringliteral">&quot;edit&quot;</span>, <span class="charliteral">&#39;e&#39;</span>, 0, G_OPTION_ARG_FILENAME_ARRAY, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Edit desktop connection described in file (.remmina or a filetype supported by plugin)&quot;</span>), <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;FILE&quot;</span>) },</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; { <span class="stringliteral">&quot;help&quot;</span>, <span class="charliteral">&#39;?&#39;</span>, G_OPTION_FLAG_HIDDEN, G_OPTION_ARG_NONE, NULL, NULL, NULL },</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="comment">// TRANSLATORS: Shown in terminal. Do not use characters that may be not supported on a terminal</span></div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; { <span class="stringliteral">&quot;kiosk&quot;</span>, <span class="charliteral">&#39;k&#39;</span>, 0, G_OPTION_ARG_NONE, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Start in kiosk mode&quot;</span>), NULL },</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="comment">// TRANSLATORS: Shown in terminal. Do not use characters that may be not supported on a terminal</span></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; { <span class="stringliteral">&quot;new&quot;</span>, <span class="charliteral">&#39;n&#39;</span>, 0, G_OPTION_ARG_NONE, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Create new connection profile&quot;</span>), NULL },</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="comment">// TRANSLATORS: Shown in terminal. Do not use characters that may be not supported on a terminal</span></div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; { <span class="stringliteral">&quot;pref&quot;</span>, <span class="charliteral">&#39;p&#39;</span>, 0, G_OPTION_ARG_STRING, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Show preferences&quot;</span>), <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;TABINDEX&quot;</span>) },</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<span class="preprocessor">#if 0</span></div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="comment">/* This option was used mainly for telepathy, let&#39;s keep it if we will need it in the future */</span></div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="comment">// TRANSLATORS: Shown in terminal. Do not use characters that may be not supported on a terminal</span></div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="comment">//{ &quot;plugin&quot;, &#39;x&#39;, 0, G_OPTION_ARG_STRING, NULL, N_(&quot;Run a plugin&quot;), N_(&quot;PLUGIN&quot;) },</span></div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="comment">// TRANSLATORS: Shown in terminal. Do not use characters that may be not supported on a terminal</span></div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; { <span class="stringliteral">&quot;quit&quot;</span>, <span class="charliteral">&#39;q&#39;</span>, 0, G_OPTION_ARG_NONE, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Quit&quot;</span>), NULL },</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="comment">// TRANSLATORS: Shown in terminal. Do not use characters that may be not supported on a terminal</span></div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; { <span class="stringliteral">&quot;server&quot;</span>, <span class="charliteral">&#39;s&#39;</span>, 0, G_OPTION_ARG_STRING, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Use default server name (for --new)&quot;</span>), <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;SERVER&quot;</span>) },</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="comment">// TRANSLATORS: Shown in terminal. Do not use characters that may be not supported on a terminal</span></div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; { <span class="stringliteral">&quot;protocol&quot;</span>, <span class="charliteral">&#39;t&#39;</span>, 0, G_OPTION_ARG_STRING, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Use default protocol (for --new)&quot;</span>), <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;PROTOCOL&quot;</span>) },</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="comment">// TRANSLATORS: Shown in terminal. Do not use characters that may be not supported on a terminal</span></div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; { <span class="stringliteral">&quot;icon&quot;</span>, <span class="charliteral">&#39;i&#39;</span>, 0, G_OPTION_ARG_NONE, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Start in tray&quot;</span>), NULL },</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="comment">// TRANSLATORS: Shown in terminal. Do not use characters that may be not supported on a terminal</span></div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; { <span class="stringliteral">&quot;version&quot;</span>, <span class="charliteral">&#39;v&#39;</span>, 0, G_OPTION_ARG_NONE, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Show the application version&quot;</span>), NULL },</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="comment">// TRANSLATORS: Shown in terminal. Do not use characters that may be not supported on a terminal</span></div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; { <span class="stringliteral">&quot;full-version&quot;</span>, <span class="charliteral">&#39;V&#39;</span>, 0, G_OPTION_ARG_NONE, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Show version of the application and its plugins&quot;</span>), NULL },</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="comment">// TRANSLATORS: Shown in terminal. Do not use characters that may be not supported on a terminal</span></div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; { <span class="stringliteral">&quot;update-profile&quot;</span>, 0, 0, G_OPTION_ARG_FILENAME, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Modify connection profile (requires --set-option)&quot;</span>), NULL },</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="comment">// TRANSLATORS: Shown in terminal. Do not use characters that may be not supported on a terminal</span></div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; { <span class="stringliteral">&quot;set-option&quot;</span>, 0, 0, G_OPTION_ARG_STRING_ARRAY, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Set one or more profile settings, to be used with --update-profile&quot;</span>), NULL },</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; { <span class="stringliteral">&quot;encrypt-password&quot;</span>, 0, 0, G_OPTION_ARG_NONE, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Encrypt a password&quot;</span>), NULL },</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; { <span class="stringliteral">&quot;disable-toolbar&quot;</span>, 0, 0, G_OPTION_ARG_NONE, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Disable toolbar&quot;</span>), NULL },</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; { <span class="stringliteral">&quot;enable-fullscreen&quot;</span>, 0, 0, G_OPTION_ARG_NONE, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Enable fullscreen&quot;</span>), NULL },</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; { <span class="stringliteral">&quot;enable-extra-hardening&quot;</span>, 0, 0, G_OPTION_ARG_NONE, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Enable extra hardening (disable closing confirmation, disable unsafe shortcut keys, hide tabs, hide search bar)&quot;</span>), NULL },</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; { <span class="stringliteral">&quot;no-tray-icon&quot;</span>, 0, 0, G_OPTION_ARG_NONE, NULL, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Disable tray icon&quot;</span>), NULL },</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; { NULL }</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;};</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<span class="preprocessor">#ifdef WITH_LIBGCRYPT</span></div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span></div><div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="remmina_8c.html#a1ecec6e37469e2e927a612747269587c"> 141</a></span>&#160;<a class="code" href="remmina_8c.html#a1ecec6e37469e2e927a612747269587c">_gpg_error_to_errno</a>(gcry_error_t e)</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;{</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="comment">/* be lazy right now */</span></div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordflow">if</span> (e == GPG_ERR_NO_ERROR)</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keywordflow">return</span> EINVAL;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;}</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* !WITH_LIBGCRYPT */</span><span class="preprocessor"></span></div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div><div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="remmina_8c.html#aeb286fc5bd52ab5382ab8cb495dc2914"> 151</a></span>&#160;<span class="keyword">static</span> gint <a class="code" href="remmina_8c.html#aeb286fc5bd52ab5382ab8cb495dc2914">remmina_on_command_line</a>(GApplication *app, GApplicationCommandLine *cmdline)</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;{</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; gint status = 0;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; gboolean executed = FALSE;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; GVariantDict *opts;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; gchar *str;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keyword">const</span> gchar **files;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keyword">const</span> gchar **remaining_args;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; gchar *protocol;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; gchar *server;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;<span class="preprocessor">#if SODIUM_VERSION_INT &gt;= 90200</span></div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <a class="code" href="remmina__sodium_8c.html#a17d17beeb57808af1c4299e3b4b94e9a">remmina_sodium_init</a>();</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; opts = g_application_command_line_get_options_dict(cmdline);</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keywordflow">if</span> (g_variant_dict_lookup_value(opts, <span class="stringliteral">&quot;disable-toolbar&quot;</span>, NULL)) {</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <a class="code" href="remmina_8c.html#a86d25bcf3c47f758f813a175a18b6ff1">disabletoolbar</a> = TRUE;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; }</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordflow">if</span> (g_variant_dict_lookup_value(opts, <span class="stringliteral">&quot;enable-fullscreen&quot;</span>, NULL)) {</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <a class="code" href="remmina_8c.html#ae0e3cdfa06abe7e29f987421869713e1">fullscreen</a> = TRUE;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; }</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">if</span> (g_variant_dict_lookup_value(opts, <span class="stringliteral">&quot;enable-extra-hardening&quot;</span>, NULL)) {</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <a class="code" href="remmina_8c.html#ae729d4262682c8674b8dd0135014810a">extrahardening</a> = TRUE;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; }</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordflow">if</span> (g_variant_dict_lookup_value(opts, <span class="stringliteral">&quot;no-tray-icon&quot;</span>, NULL)) {</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <a class="code" href="remmina_8c.html#af2649a017ee95bd78adf58fda09c3e58">disabletrayicon</a> = TRUE;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; }</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <a class="code" href="remmina__pref_8c.html#a400f7319fd3996a13399ef72bcf0a2fd">remmina_pref_init</a>();</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keywordflow">if</span> (g_variant_dict_lookup_value(opts, <span class="stringliteral">&quot;quit&quot;</span>, NULL)) {</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <a class="code" href="remmina__exec_8c.html#a424cabdcff647797061e7482049d62a7">remmina_exec_command</a>(<a class="code" href="remmina__exec_8h.html#a23616cb0334a45c2b477be6efd45ee0ca5815f1d3742909a0a2a61664ad35300a">REMMINA_COMMAND_EXIT</a>, NULL);</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; executed = TRUE;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; status = 1;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; }</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">if</span> (g_variant_dict_lookup_value(opts, <span class="stringliteral">&quot;about&quot;</span>, NULL)) {</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <a class="code" href="remmina__exec_8c.html#a424cabdcff647797061e7482049d62a7">remmina_exec_command</a>(<a class="code" href="remmina__exec_8h.html#a23616cb0334a45c2b477be6efd45ee0cacce474bb2b63053b884cc9e639d4372b">REMMINA_COMMAND_ABOUT</a>, NULL);</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; executed = TRUE;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; }</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">if</span> (g_variant_dict_lookup(opts, <span class="stringliteral">&quot;connect&quot;</span>, <span class="stringliteral">&quot;^aay&quot;</span>, &amp;files)) {</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordflow">if</span> (files)</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordflow">for</span> (gint i = 0; files[i]; i++) {</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; g_debug (<span class="stringliteral">&quot;Connecting to: %s&quot;</span>, files[i]);</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <a class="code" href="remmina__exec_8c.html#a424cabdcff647797061e7482049d62a7">remmina_exec_command</a>(<a class="code" href="remmina__exec_8h.html#a23616cb0334a45c2b477be6efd45ee0ca3b100b365ea4c523dba34c3a1233e33d">REMMINA_COMMAND_CONNECT</a>, files[i]);</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; }</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; executed = TRUE;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; }</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keywordflow">if</span> (g_variant_dict_lookup(opts, G_OPTION_REMAINING, <span class="stringliteral">&quot;^a&amp;ay&quot;</span>, &amp;remaining_args)) {</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <a class="code" href="remmina__exec_8c.html#a424cabdcff647797061e7482049d62a7">remmina_exec_command</a>(<a class="code" href="remmina__exec_8h.html#a23616cb0334a45c2b477be6efd45ee0ca3b100b365ea4c523dba34c3a1233e33d">REMMINA_COMMAND_CONNECT</a>, remaining_args[0]);</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; g_free(remaining_args);</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; executed = TRUE;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; }</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keywordflow">if</span> (g_variant_dict_lookup(opts, <span class="stringliteral">&quot;edit&quot;</span>, <span class="stringliteral">&quot;^aay&quot;</span>, &amp;files)) {</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordflow">if</span> (files)</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keywordflow">for</span> (gint i = 0; files[i]; i++) {</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; g_debug (<span class="stringliteral">&quot;Editing file: %s&quot;</span>, files[i]);</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <a class="code" href="remmina__exec_8c.html#a424cabdcff647797061e7482049d62a7">remmina_exec_command</a>(<a class="code" href="remmina__exec_8h.html#a23616cb0334a45c2b477be6efd45ee0caddf76fb98da2a8a197974ac1237dfb65">REMMINA_COMMAND_EDIT</a>, files[i]);</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; }</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="comment">//remmina_exec_command(REMMINA_COMMAND_EDIT, str);</span></div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="comment">//g_free(str);</span></div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; executed = TRUE;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; }</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keywordflow">if</span> (g_variant_dict_lookup_value(opts, <span class="stringliteral">&quot;kiosk&quot;</span>, NULL)) {</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <a class="code" href="remmina_8c.html#ab4a9a67c5372ff07b71d0558679ab7ae">kioskmode</a> = TRUE;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <a class="code" href="remmina__exec_8c.html#a424cabdcff647797061e7482049d62a7">remmina_exec_command</a>(<a class="code" href="remmina__exec_8h.html#a23616cb0334a45c2b477be6efd45ee0cae084d7c048c5eb5045210062b225f5e5">REMMINA_COMMAND_MAIN</a>, NULL);</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; executed = TRUE;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; }</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordflow">if</span> (g_variant_dict_lookup_value(opts, <span class="stringliteral">&quot;new&quot;</span>, NULL)) {</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="keywordflow">if</span> (!g_variant_dict_lookup(opts, <span class="stringliteral">&quot;protocol&quot;</span>, <span class="stringliteral">&quot;&amp;s&quot;</span>, &amp;protocol))</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; protocol = NULL;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keywordflow">if</span> (g_variant_dict_lookup(opts, <span class="stringliteral">&quot;server&quot;</span>, <span class="stringliteral">&quot;&amp;s&quot;</span>, &amp;server))</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; str = g_strdup_printf(<span class="stringliteral">&quot;%s,%s&quot;</span>, protocol, server);</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; str = g_strdup(protocol);</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <a class="code" href="remmina__exec_8c.html#a424cabdcff647797061e7482049d62a7">remmina_exec_command</a>(<a class="code" href="remmina__exec_8h.html#a23616cb0334a45c2b477be6efd45ee0ca2b493ae3acf856c484831767169c41b7">REMMINA_COMMAND_NEW</a>, str);</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; g_free(str);</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; executed = TRUE;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; }</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keywordflow">if</span> (g_variant_dict_lookup(opts, <span class="stringliteral">&quot;pref&quot;</span>, <span class="stringliteral">&quot;&amp;s&quot;</span>, &amp;str)) {</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <a class="code" href="remmina__exec_8c.html#a424cabdcff647797061e7482049d62a7">remmina_exec_command</a>(<a class="code" href="remmina__exec_8h.html#a23616cb0334a45c2b477be6efd45ee0ca822f35bcbc0737231ada0aa4ecfcd704">REMMINA_COMMAND_PREF</a>, str);</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; executed = TRUE;</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; }</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keywordflow">if</span> (g_variant_dict_lookup(opts, <span class="stringliteral">&quot;plugin&quot;</span>, <span class="stringliteral">&quot;&amp;s&quot;</span>, &amp;str)) {</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <a class="code" href="remmina__exec_8c.html#a424cabdcff647797061e7482049d62a7">remmina_exec_command</a>(<a class="code" href="remmina__exec_8h.html#a23616cb0334a45c2b477be6efd45ee0cabb2bf3aea0dd6f02ba402ec12a6ccbad">REMMINA_COMMAND_PLUGIN</a>, str);</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; executed = TRUE;</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; }</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keywordflow">if</span> (g_variant_dict_lookup_value(opts, <span class="stringliteral">&quot;icon&quot;</span>, NULL)) {</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <a class="code" href="remmina__exec_8c.html#a424cabdcff647797061e7482049d62a7">remmina_exec_command</a>(<a class="code" href="remmina__exec_8h.html#a23616cb0334a45c2b477be6efd45ee0ca45777bb1a8f6a617da7eca5f7181d224">REMMINA_COMMAND_NONE</a>, NULL);</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; executed = TRUE;</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; }</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keywordflow">if</span> (g_variant_dict_lookup_value(opts, <span class="stringliteral">&quot;encrypt-password&quot;</span>, NULL)) {</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <a class="code" href="remmina__exec_8c.html#a424cabdcff647797061e7482049d62a7">remmina_exec_command</a>(<a class="code" href="remmina__exec_8h.html#a23616cb0334a45c2b477be6efd45ee0cab4e4dc22219fe0323279276222efb0b5">REMMINA_COMMAND_ENCRYPT_PASSWORD</a>, NULL);</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; executed = TRUE;</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; status = 1;</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; }</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keywordflow">if</span> (!executed)</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <a class="code" href="remmina__exec_8c.html#a424cabdcff647797061e7482049d62a7">remmina_exec_command</a>(<a class="code" href="remmina__exec_8h.html#a23616cb0334a45c2b477be6efd45ee0cae084d7c048c5eb5045210062b225f5e5">REMMINA_COMMAND_MAIN</a>, NULL);</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="keywordflow">return</span> status;</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;}</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;</div><div class="line"><a name="l00274"></a><span class="lineno"><a class="line" href="remmina_8c.html#a26d2c20be18ff44f239b756f1d5be01a"> 274</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina_8c.html#a26d2c20be18ff44f239b756f1d5be01a">remmina_on_startup</a>(GApplication *app)</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;{</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <a class="code" href="struct___remmina_secret_plugin.html">RemminaSecretPlugin</a> *secret_plugin;</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <a class="code" href="remmina__widget__pool_8c.html#aadc178f8f991ba939827d235aae8ad09">remmina_widget_pool_init</a>();</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <a class="code" href="remmina__sftp__plugin_8c.html#a14a447ab8a10b109967d92c8d2db0ff9">remmina_sftp_plugin_register</a>();</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <a class="code" href="remmina__ssh__plugin_8c.html#a6f594d157e09639e09b1f32a420da96c">remmina_ssh_plugin_register</a>();</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <a class="code" href="remmina__icon_8c.html#afbd7758d1d43c61a014b7ef00f11fa58">remmina_icon_init</a>();</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; g_set_application_name(<span class="stringliteral">&quot;Remmina&quot;</span>);</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; gtk_window_set_default_icon_name(REMMINA_APP_ID);</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="comment">/* Setting the X11 program class (WM_CLASS) is necessary to group</span></div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;<span class="comment"> * windows with .desktop file which has the same StartupWMClass */</span></div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; gdk_set_program_class(REMMINA_APP_ID);</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; gtk_icon_theme_append_search_path(gtk_icon_theme_get_default(),</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; REMMINA_RUNTIME_DATADIR G_DIR_SEPARATOR_S <span class="stringliteral">&quot;icons&quot;</span>);</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; g_application_hold(app);</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="comment">/* Check for secret plugin and service initialization and show console warnings if</span></div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;<span class="comment"> * something is missing */</span></div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; secret_plugin = <a class="code" href="remmina__plugin__manager_8c.html#ad380a98f6624aa8c830015c8b428b7b4">remmina_plugin_manager_get_secret_plugin</a>();</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keywordflow">if</span> (!secret_plugin)</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; g_print(<span class="stringliteral">&quot;Warning: Remmina is running without a secret plugin. Passwords will be saved in a less secure way.\n&quot;</span>);</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <span class="keywordflow">if</span> (!secret_plugin-&gt;<a class="code" href="struct___remmina_secret_plugin.html#a2123e14795b104f5fe8d77a4b7847261">is_service_available</a>(secret_plugin))</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; g_print(<span class="stringliteral">&quot;Warning: Remmina is running with a secrecy plugin, but it cannot connect to a secrecy service.\n&quot;</span>);</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <a class="code" href="remmina__exec_8c.html#a424cabdcff647797061e7482049d62a7">remmina_exec_command</a>(<a class="code" href="remmina__exec_8h.html#a23616cb0334a45c2b477be6efd45ee0cacc1267f3834ff091be0587522f2182b8">REMMINA_COMMAND_AUTOSTART</a>, NULL);</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;}</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;</div><div class="line"><a name="l00308"></a><span class="lineno"><a class="line" href="remmina_8c.html#a9e8319f901232eb5fada98335217979c"> 308</a></span>&#160;<span class="keyword">static</span> gint <a class="code" href="remmina_8c.html#a9e8319f901232eb5fada98335217979c">remmina_on_local_cmdline</a>(GApplication *app, GVariantDict *opts, gpointer user_data)</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;{</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <span class="keywordtype">int</span> status = -1;</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; gchar *str;</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; gchar **settings;</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="comment">/* Here you handle any command line options that you want to be executed</span></div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;<span class="comment"> * in the local instance (the non-unique instance) */</span></div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <span class="keywordflow">if</span> (g_variant_dict_lookup_value(opts, <span class="stringliteral">&quot;version&quot;</span>, NULL)) {</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <a class="code" href="remmina__exec_8c.html#a424cabdcff647797061e7482049d62a7">remmina_exec_command</a>(<a class="code" href="remmina__exec_8h.html#a23616cb0334a45c2b477be6efd45ee0caa436b39160d5ab6b73f6758dc5c30c06">REMMINA_COMMAND_VERSION</a>, NULL);</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; status = 0;</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; }</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <span class="keywordflow">if</span> (g_variant_dict_lookup_value(opts, <span class="stringliteral">&quot;full-version&quot;</span>, NULL)) {</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <a class="code" href="remmina__exec_8c.html#a424cabdcff647797061e7482049d62a7">remmina_exec_command</a>(<a class="code" href="remmina__exec_8h.html#a23616cb0334a45c2b477be6efd45ee0cab9f0b4fd42775c1d2b2311e0b9692885">REMMINA_COMMAND_FULL_VERSION</a>, NULL);</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; status = 0;</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; }</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="keywordflow">if</span> (g_variant_dict_lookup(opts, <span class="stringliteral">&quot;update-profile&quot;</span>, <span class="stringliteral">&quot;^&amp;ay&quot;</span>, &amp;str)) { <span class="comment">/* ^&amp;ay no need to free */</span></div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <span class="keywordflow">if</span> (g_variant_dict_lookup(opts, <span class="stringliteral">&quot;set-option&quot;</span>, <span class="stringliteral">&quot;^a&amp;s&quot;</span>, &amp;settings)) {</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <span class="keywordflow">if</span> (settings != NULL) {</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; status = <a class="code" href="remmina__exec_8c.html#a4e202866339a104ffdbfa519cfbcdca9">remmina_exec_set_setting</a>(str, settings);</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; g_free(settings);</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; status = 1;</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; }</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; status = 1;</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; g_print(<span class="stringliteral">&quot;Error: --update-profile requires --set-option\n&quot;</span>);</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; }</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; }</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <span class="comment">/* Returning a non negative value here makes the application exit */</span></div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="keywordflow">return</span> status;</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160;}</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;</div><div class="line"><a name="l00347"></a><span class="lineno"><a class="line" href="remmina_8c.html#a0ddf1224851353fc92bfbff6f499fa97"> 347</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="remmina_8c.html#a0ddf1224851353fc92bfbff6f499fa97">main</a>(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> *argv[])</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160;{</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; GtkApplication *app;</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <span class="keyword">const</span> gchar *app_id;</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <span class="keywordtype">int</span> status;</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; g_unsetenv(<span class="stringliteral">&quot;GDK_CORE_DEVICE_EVENTS&quot;</span>);</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="comment">// Checking for environment variable &quot;G_MESSAGES_DEBUG&quot;</span></div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; <span class="comment">// Give the less familiar with GLib a tip on where to get</span></div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; <span class="comment">// more debugging info.</span></div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <span class="keywordflow">if</span>(!getenv(<span class="stringliteral">&quot;G_MESSAGES_DEBUG&quot;</span>)) {</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <span class="comment">/* TRANSLATORS:</span></div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;<span class="comment"> * This link should point to a resource explaining how to get Remmina</span></div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;<span class="comment"> * to log more verbose statements.</span></div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; g_message(_(<span class="stringliteral">&quot;Remmina does not log all output statements. &quot;</span></div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <span class="stringliteral">&quot;Turn on more verbose output by using &quot;</span></div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <span class="stringliteral">&quot;\&quot;G_MESSAGES_DEBUG=all\&quot; as an environment variable.\n&quot;</span></div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <span class="stringliteral">&quot;More info available on the Remmina wiki at:\n&quot;</span></div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <span class="stringliteral">&quot;https://gitlab.com/Remmina/Remmina/-/wikis/Usage/Remmina-debugging&quot;</span></div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; ));</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; }</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <span class="comment">/* Enable wayland backend only after GTK 3.22.27 or the clipboard</span></div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;<span class="comment"> * will not work. See GTK bug 790031 */</span></div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="remmina__public_8c.html#ad7c29f17323086e08ac56e1636fd41c3">remmina_gtk_check_version</a>(3, 22, 27))</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; gdk_set_allowed_backends(<span class="stringliteral">&quot;wayland,x11,broadway,quartz,mir&quot;</span>);</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; gdk_set_allowed_backends(<span class="stringliteral">&quot;x11,broadway,quartz,mir&quot;</span>);</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <a class="code" href="remmina__masterthread__exec_8c.html#a4a595ce198f8adda31fe11348b0f734e">remmina_masterthread_exec_save_main_thread_id</a>();</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; bindtextdomain(GETTEXT_PACKAGE, REMMINA_RUNTIME_LOCALEDIR);</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; bind_textdomain_codeset(GETTEXT_PACKAGE, <span class="stringliteral">&quot;UTF-8&quot;</span>);</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; textdomain(GETTEXT_PACKAGE);</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;<span class="preprocessor">#ifdef HAVE_LIBGCRYPT</span></div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;<span class="preprocessor"># if GCRYPT_VERSION_NUMBER &lt; 0x010600</span></div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; gcry_error_t e;</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="remmina_8c.html#a87cf5ad579b1e914ce7ea788cead4104">gcrypt_thread_initialized</a>) {</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <span class="keywordflow">if</span> ((e = gcry_control(GCRYCTL_SET_THREAD_CBS, &amp;gcry_threads_pthread)) != GPG_ERR_NO_ERROR)</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <span class="keywordflow">return</span> -1;</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <a class="code" href="remmina_8c.html#a87cf5ad579b1e914ce7ea788cead4104">gcrypt_thread_initialized</a>++;</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; }</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* !GCRYPT_VERSION_NUMBER */</span><span class="preprocessor"></span></div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; gcry_check_version(NULL);</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; gcry_control(GCRYCTL_DISABLE_SECMEM, 0);</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; gcry_control(GCRYCTL_INITIALIZATION_FINISHED, 0);</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* !HAVE_LIBGCRYPT */</span><span class="preprocessor"></span></div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160;</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; <span class="comment">/* Initialize some Remmina parts needed also on a local instance for correct handle-local-options */</span></div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; <a class="code" href="remmina__pref_8c.html#a400f7319fd3996a13399ef72bcf0a2fd">remmina_pref_init</a>();</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <a class="code" href="remmina__file__manager_8c.html#afa2b1889dced4289b0f7d7edffc82e72">remmina_file_manager_init</a>();</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160;</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; <a class="code" href="remmina__plugin__manager_8c.html#a9df07091ff7d32bcde595a6d3a3598f5">remmina_plugin_manager_init</a>();</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160;</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160;</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; app_id = g_application_id_is_valid(REMMINA_APP_ID) ? REMMINA_APP_ID : NULL;</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; app = gtk_application_new(app_id, G_APPLICATION_HANDLES_COMMAND_LINE | G_APPLICATION_CAN_OVERRIDE_APP_ID);</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;<span class="preprocessor">#if !GTK_CHECK_VERSION(4, 0, 0) </span><span class="comment">/* This is not needed anymore starting from GTK 4 */</span><span class="preprocessor"></span></div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; g_set_prgname(app_id);</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; g_application_add_main_option_entries(G_APPLICATION(app), <a class="code" href="remmina_8c.html#a3837fb7dd2ca88b6f7acaecc0d062ac5">remmina_options</a>);</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160;<span class="preprocessor">#if GLIB_CHECK_VERSION(2,56,0)</span></div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; gchar *summary = g_strdup_printf (<span class="stringliteral">&quot;%s %s&quot;</span>, app_id, VERSION);</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; g_application_set_option_context_summary (G_APPLICATION(app), summary);</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; g_free(summary);</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <span class="comment">// TRANSLATORS: Shown in terminal. Do not use characters that may be not supported on a terminal</span></div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; g_application_set_option_context_parameter_string (G_APPLICATION(app), _(<span class="stringliteral">&quot;- or protocol://username:encryptedpassword@host:port&quot;</span>));</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <span class="comment">// TRANSLATORS: Shown in terminal. Do not use characters that may be not supported on a terminal</span></div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; g_application_set_option_context_description (G_APPLICATION(app),</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; _(<span class="stringliteral">&quot;Examples:\n&quot;</span></div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <span class="stringliteral">&quot;To connect using an existing connection profile, use:\n&quot;</span></div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; <span class="stringliteral">&quot;\n&quot;</span></div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; <span class="stringliteral">&quot;\tremmina -c FILE.remmina\n&quot;</span></div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; <span class="stringliteral">&quot;\n&quot;</span></div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; <span class="stringliteral">&quot;To quick connect using a URI:\n&quot;</span></div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; <span class="stringliteral">&quot;\n&quot;</span></div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; <span class="stringliteral">&quot;\tremmina -c rdp://username@server\n&quot;</span></div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <span class="stringliteral">&quot;\tremmina -c rdp://domain\\\\username@server\n&quot;</span></div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <span class="stringliteral">&quot;\tremmina -c vnc://username@server\n&quot;</span></div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <span class="stringliteral">&quot;\tremmina -c vnc://server?VncUsername=username\n&quot;</span></div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <span class="stringliteral">&quot;\tremmina -c ssh://user@server\n&quot;</span></div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; <span class="stringliteral">&quot;\tremmina -c spice://server\n&quot;</span></div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; <span class="stringliteral">&quot;\n&quot;</span></div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <span class="stringliteral">&quot;To quick connect using a URI along with an encrypted password:\n&quot;</span></div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <span class="stringliteral">&quot;\n&quot;</span></div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; <span class="stringliteral">&quot;\tremmina -c rdp://username:encrypted-password@server\n&quot;</span></div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <span class="stringliteral">&quot;\tremmina -c vnc://username:encrypted-password@server\n&quot;</span></div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; <span class="stringliteral">&quot;\tremmina -c vnc://server?VncUsername=username\\&amp;VncPassword=encrypted-password\n&quot;</span></div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; <span class="stringliteral">&quot;\n&quot;</span></div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <span class="stringliteral">&quot;To encrypt a password for use with a URI:\n&quot;</span></div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <span class="stringliteral">&quot;\n&quot;</span></div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <span class="stringliteral">&quot;\tremmina --encrypt-password\n&quot;</span></div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <span class="stringliteral">&quot;\n&quot;</span></div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <span class="stringliteral">&quot;To update username and password and set a different resolution mode of a Remmina connection profile, use:\n&quot;</span></div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; <span class="stringliteral">&quot;\n&quot;</span></div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; <span class="stringliteral">&quot;\techo \&quot;username\\napassword\&quot; | remmina --update-profile /PATH/TO/FOO.remmina --set-option username --set-option resolution_mode=2 --set-option password\n&quot;</span>));</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160;</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; g_signal_connect(app, <span class="stringliteral">&quot;startup&quot;</span>, G_CALLBACK(<a class="code" href="remmina_8c.html#a26d2c20be18ff44f239b756f1d5be01a">remmina_on_startup</a>), NULL);</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; g_signal_connect(app, <span class="stringliteral">&quot;command-line&quot;</span>, G_CALLBACK(<a class="code" href="remmina_8c.html#aeb286fc5bd52ab5382ab8cb495dc2914">remmina_on_command_line</a>), NULL);</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; g_signal_connect(app, <span class="stringliteral">&quot;handle-local-options&quot;</span>, G_CALLBACK(<a class="code" href="remmina_8c.html#a9e8319f901232eb5fada98335217979c">remmina_on_local_cmdline</a>), NULL);</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160;</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160;</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; g_application_set_inactivity_timeout(G_APPLICATION(app), 10000);</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; status = g_application_run(G_APPLICATION(app), argc, argv);</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; g_object_unref(app);</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160;</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; <span class="keywordflow">return</span> status;</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160;}</div><div class="ttc" id="remmina__exec_8c_html_a4e202866339a104ffdbfa519cfbcdca9"><div class="ttname"><a href="remmina__exec_8c.html#a4e202866339a104ffdbfa519cfbcdca9">remmina_exec_set_setting</a></div><div class="ttdeci">int remmina_exec_set_setting(gchar *profilefilename, gchar **settings)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__exec_8c_source.html#l00166">remmina_exec.c:166</a></div></div>
+<div class="ttc" id="remmina_8c_html_a3837fb7dd2ca88b6f7acaecc0d062ac5"><div class="ttname"><a href="remmina_8c.html#a3837fb7dd2ca88b6f7acaecc0d062ac5">remmina_options</a></div><div class="ttdeci">static GOptionEntry remmina_options[]</div><div class="ttdef"><b>Definition:</b> <a href="remmina_8c_source.html#l00093">remmina.c:93</a></div></div>
<div class="ttc" id="remmina__sodium_8h_html"><div class="ttname"><a href="remmina__sodium_8h.html">remmina_sodium.h</a></div></div>
<div class="ttc" id="remmina__plugin__manager_8h_html"><div class="ttname"><a href="remmina__plugin__manager_8h.html">remmina_plugin_manager.h</a></div></div>
<div class="ttc" id="remmina__exec_8h_html_a23616cb0334a45c2b477be6efd45ee0cab9f0b4fd42775c1d2b2311e0b9692885"><div class="ttname"><a href="remmina__exec_8h.html#a23616cb0334a45c2b477be6efd45ee0cab9f0b4fd42775c1d2b2311e0b9692885">REMMINA_COMMAND_FULL_VERSION</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__exec_8h_source.html#l00051">remmina_exec.h:51</a></div></div>
<div class="ttc" id="remmina__file__manager_8h_html"><div class="ttname"><a href="remmina__file__manager_8h.html">remmina_file_manager.h</a></div></div>
-<div class="ttc" id="remmina_8c_html_a26d2c20be18ff44f239b756f1d5be01a"><div class="ttname"><a href="remmina_8c.html#a26d2c20be18ff44f239b756f1d5be01a">remmina_on_startup</a></div><div class="ttdeci">static void remmina_on_startup(GApplication *app)</div><div class="ttdef"><b>Definition:</b> <a href="remmina_8c_source.html#l00272">remmina.c:272</a></div></div>
+<div class="ttc" id="remmina_8c_html_a26d2c20be18ff44f239b756f1d5be01a"><div class="ttname"><a href="remmina_8c.html#a26d2c20be18ff44f239b756f1d5be01a">remmina_on_startup</a></div><div class="ttdeci">static void remmina_on_startup(GApplication *app)</div><div class="ttdef"><b>Definition:</b> <a href="remmina_8c_source.html#l00274">remmina.c:274</a></div></div>
<div class="ttc" id="remmina_8h_html"><div class="ttname"><a href="remmina_8h.html">remmina.h</a></div></div>
<div class="ttc" id="remmina__widget__pool_8h_html"><div class="ttname"><a href="remmina__widget__pool_8h.html">remmina_widget_pool.h</a></div></div>
<div class="ttc" id="remmina__trace__calls_8h_html"><div class="ttname"><a href="remmina__trace__calls_8h.html">remmina_trace_calls.h</a></div></div>
@@ -102,11 +102,11 @@ $(document).ready(function(){initNavTree('remmina_8c_source.html','');});
<div class="ttc" id="struct___remmina_secret_plugin_html_a2123e14795b104f5fe8d77a4b7847261"><div class="ttname"><a href="struct___remmina_secret_plugin.html#a2123e14795b104f5fe8d77a4b7847261">_RemminaSecretPlugin::is_service_available</a></div><div class="ttdeci">gboolean(* is_service_available)(struct _RemminaSecretPlugin *instance)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00144">plugin.h:144</a></div></div>
<div class="ttc" id="remmina__masterthread__exec_8c_html_a4a595ce198f8adda31fe11348b0f734e"><div class="ttname"><a href="remmina__masterthread__exec_8c.html#a4a595ce198f8adda31fe11348b0f734e">remmina_masterthread_exec_save_main_thread_id</a></div><div class="ttdeci">void remmina_masterthread_exec_save_main_thread_id()</div><div class="ttdef"><b>Definition:</b> <a href="remmina__masterthread__exec_8c_source.html#l00141">remmina_masterthread_exec.c:141</a></div></div>
<div class="ttc" id="remmina__sftp__plugin_8c_html_a14a447ab8a10b109967d92c8d2db0ff9"><div class="ttname"><a href="remmina__sftp__plugin_8c.html#a14a447ab8a10b109967d92c8d2db0ff9">remmina_sftp_plugin_register</a></div><div class="ttdeci">void remmina_sftp_plugin_register(void)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__sftp__plugin_8c_source.html#l00387">remmina_sftp_plugin.c:387</a></div></div>
-<div class="ttc" id="remmina_8c_html_a0ddf1224851353fc92bfbff6f499fa97"><div class="ttname"><a href="remmina_8c.html#a0ddf1224851353fc92bfbff6f499fa97">main</a></div><div class="ttdeci">int main(int argc, char *argv[])</div><div class="ttdef"><b>Definition:</b> <a href="remmina_8c_source.html#l00345">remmina.c:345</a></div></div>
-<div class="ttc" id="remmina_8c_html_a1ecec6e37469e2e927a612747269587c"><div class="ttname"><a href="remmina_8c.html#a1ecec6e37469e2e927a612747269587c">_gpg_error_to_errno</a></div><div class="ttdeci">static int _gpg_error_to_errno(gcry_error_t e)</div><div class="ttdef"><b>Definition:</b> <a href="remmina_8c_source.html#l00139">remmina.c:139</a></div></div>
+<div class="ttc" id="remmina_8c_html_a0ddf1224851353fc92bfbff6f499fa97"><div class="ttname"><a href="remmina_8c.html#a0ddf1224851353fc92bfbff6f499fa97">main</a></div><div class="ttdeci">int main(int argc, char *argv[])</div><div class="ttdef"><b>Definition:</b> <a href="remmina_8c_source.html#l00347">remmina.c:347</a></div></div>
+<div class="ttc" id="remmina_8c_html_a1ecec6e37469e2e927a612747269587c"><div class="ttname"><a href="remmina_8c.html#a1ecec6e37469e2e927a612747269587c">_gpg_error_to_errno</a></div><div class="ttdeci">static int _gpg_error_to_errno(gcry_error_t e)</div><div class="ttdef"><b>Definition:</b> <a href="remmina_8c_source.html#l00141">remmina.c:141</a></div></div>
<div class="ttc" id="remmina__main_8h_html"><div class="ttname"><a href="remmina__main_8h.html">remmina_main.h</a></div></div>
<div class="ttc" id="remmina__exec_8h_html_a23616cb0334a45c2b477be6efd45ee0caddf76fb98da2a8a197974ac1237dfb65"><div class="ttname"><a href="remmina__exec_8h.html#a23616cb0334a45c2b477be6efd45ee0caddf76fb98da2a8a197974ac1237dfb65">REMMINA_COMMAND_EDIT</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__exec_8h_source.html#l00048">remmina_exec.h:48</a></div></div>
-<div class="ttc" id="remmina_8c_html_aeb286fc5bd52ab5382ab8cb495dc2914"><div class="ttname"><a href="remmina_8c.html#aeb286fc5bd52ab5382ab8cb495dc2914">remmina_on_command_line</a></div><div class="ttdeci">static gint remmina_on_command_line(GApplication *app, GApplicationCommandLine *cmdline)</div><div class="ttdef"><b>Definition:</b> <a href="remmina_8c_source.html#l00149">remmina.c:149</a></div></div>
+<div class="ttc" id="remmina_8c_html_aeb286fc5bd52ab5382ab8cb495dc2914"><div class="ttname"><a href="remmina_8c.html#aeb286fc5bd52ab5382ab8cb495dc2914">remmina_on_command_line</a></div><div class="ttdeci">static gint remmina_on_command_line(GApplication *app, GApplicationCommandLine *cmdline)</div><div class="ttdef"><b>Definition:</b> <a href="remmina_8c_source.html#l00151">remmina.c:151</a></div></div>
<div class="ttc" id="struct___remmina_secret_plugin_html"><div class="ttname"><a href="struct___remmina_secret_plugin.html">_RemminaSecretPlugin</a></div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00135">plugin.h:135</a></div></div>
<div class="ttc" id="remmina__file__manager_8c_html_afa2b1889dced4289b0f7d7edffc82e72"><div class="ttname"><a href="remmina__file__manager_8c.html#afa2b1889dced4289b0f7d7edffc82e72">remmina_file_manager_init</a></div><div class="ttdeci">void remmina_file_manager_init(void)</div><div class="ttdoc">It creates the Remmina data and cache folders. </div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__manager_8c_source.html#l00116">remmina_file_manager.c:116</a></div></div>
<div class="ttc" id="remmina__ssh__plugin_8c_html_a6f594d157e09639e09b1f32a420da96c"><div class="ttname"><a href="remmina__ssh__plugin_8c.html#a6f594d157e09639e09b1f32a420da96c">remmina_ssh_plugin_register</a></div><div class="ttdeci">void remmina_ssh_plugin_register(void)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__ssh__plugin_8c_source.html#l01695">remmina_ssh_plugin.c:1695</a></div></div>
@@ -114,29 +114,29 @@ $(document).ready(function(){initNavTree('remmina_8c_source.html','');});
<div class="ttc" id="remmina__icon_8h_html"><div class="ttname"><a href="remmina__icon_8h.html">remmina_icon.h</a></div></div>
<div class="ttc" id="remmina__icon_8c_html_afbd7758d1d43c61a014b7ef00f11fa58"><div class="ttname"><a href="remmina__icon_8c.html#afbd7758d1d43c61a014b7ef00f11fa58">remmina_icon_init</a></div><div class="ttdeci">void remmina_icon_init(void)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__icon_8c_source.html#l00345">remmina_icon.c:345</a></div></div>
<div class="ttc" id="remmina__public_8h_html"><div class="ttname"><a href="remmina__public_8h.html">remmina_public.h</a></div></div>
-<div class="ttc" id="remmina_8c_html_a9e8319f901232eb5fada98335217979c"><div class="ttname"><a href="remmina_8c.html#a9e8319f901232eb5fada98335217979c">remmina_on_local_cmdline</a></div><div class="ttdeci">static gint remmina_on_local_cmdline(GApplication *app, GVariantDict *opts, gpointer user_data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina_8c_source.html#l00306">remmina.c:306</a></div></div>
-<div class="ttc" id="remmina_8c_html_a86d25bcf3c47f758f813a175a18b6ff1"><div class="ttname"><a href="remmina_8c.html#a86d25bcf3c47f758f813a175a18b6ff1">disabletoolbar</a></div><div class="ttdeci">gboolean disabletoolbar</div><div class="ttdef"><b>Definition:</b> <a href="remmina_8c_source.html#l00086">remmina.c:86</a></div></div>
-<div class="ttc" id="remmina_8c_html_a87cf5ad579b1e914ce7ea788cead4104"><div class="ttname"><a href="remmina_8c.html#a87cf5ad579b1e914ce7ea788cead4104">gcrypt_thread_initialized</a></div><div class="ttdeci">static int gcrypt_thread_initialized</div><div class="ttdef"><b>Definition:</b> <a href="remmina_8c_source.html#l00081">remmina.c:81</a></div></div>
+<div class="ttc" id="remmina_8c_html_a9e8319f901232eb5fada98335217979c"><div class="ttname"><a href="remmina_8c.html#a9e8319f901232eb5fada98335217979c">remmina_on_local_cmdline</a></div><div class="ttdeci">static gint remmina_on_local_cmdline(GApplication *app, GVariantDict *opts, gpointer user_data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina_8c_source.html#l00308">remmina.c:308</a></div></div>
+<div class="ttc" id="remmina_8c_html_a86d25bcf3c47f758f813a175a18b6ff1"><div class="ttname"><a href="remmina_8c.html#a86d25bcf3c47f758f813a175a18b6ff1">disabletoolbar</a></div><div class="ttdeci">gboolean disabletoolbar</div><div class="ttdef"><b>Definition:</b> <a href="remmina_8c_source.html#l00088">remmina.c:88</a></div></div>
+<div class="ttc" id="remmina_8c_html_a87cf5ad579b1e914ce7ea788cead4104"><div class="ttname"><a href="remmina_8c.html#a87cf5ad579b1e914ce7ea788cead4104">gcrypt_thread_initialized</a></div><div class="ttdeci">static int gcrypt_thread_initialized</div><div class="ttdef"><b>Definition:</b> <a href="remmina_8c_source.html#l00083">remmina.c:83</a></div></div>
<div class="ttc" id="remmina__exec_8c_html_a424cabdcff647797061e7482049d62a7"><div class="ttname"><a href="remmina__exec_8c.html#a424cabdcff647797061e7482049d62a7">remmina_exec_command</a></div><div class="ttdeci">void remmina_exec_command(RemminaCommandType command, const gchar *data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__exec_8c_source.html#l00368">remmina_exec.c:368</a></div></div>
<div class="ttc" id="remmina__exec_8h_html_a23616cb0334a45c2b477be6efd45ee0cacce474bb2b63053b884cc9e639d4372b"><div class="ttname"><a href="remmina__exec_8h.html#a23616cb0334a45c2b477be6efd45ee0cacce474bb2b63053b884cc9e639d4372b">REMMINA_COMMAND_ABOUT</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__exec_8h_source.html#l00049">remmina_exec.h:49</a></div></div>
<div class="ttc" id="remmina__exec_8h_html_a23616cb0334a45c2b477be6efd45ee0ca2b493ae3acf856c484831767169c41b7"><div class="ttname"><a href="remmina__exec_8h.html#a23616cb0334a45c2b477be6efd45ee0ca2b493ae3acf856c484831767169c41b7">REMMINA_COMMAND_NEW</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__exec_8h_source.html#l00046">remmina_exec.h:46</a></div></div>
-<div class="ttc" id="remmina_8c_html_ae0e3cdfa06abe7e29f987421869713e1"><div class="ttname"><a href="remmina_8c.html#ae0e3cdfa06abe7e29f987421869713e1">fullscreen</a></div><div class="ttdeci">gboolean fullscreen</div><div class="ttdef"><b>Definition:</b> <a href="remmina_8c_source.html#l00087">remmina.c:87</a></div></div>
+<div class="ttc" id="remmina_8c_html_ae0e3cdfa06abe7e29f987421869713e1"><div class="ttname"><a href="remmina_8c.html#ae0e3cdfa06abe7e29f987421869713e1">fullscreen</a></div><div class="ttdeci">gboolean fullscreen</div><div class="ttdef"><b>Definition:</b> <a href="remmina_8c_source.html#l00089">remmina.c:89</a></div></div>
<div class="ttc" id="remmina__plugin__manager_8c_html_a9df07091ff7d32bcde595a6d3a3598f5"><div class="ttname"><a href="remmina__plugin__manager_8c.html#a9df07091ff7d32bcde595a6d3a3598f5">remmina_plugin_manager_init</a></div><div class="ttdeci">void remmina_plugin_manager_init()</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00333">remmina_plugin_manager.c:333</a></div></div>
<div class="ttc" id="remmina__widget__pool_8c_html_aadc178f8f991ba939827d235aae8ad09"><div class="ttname"><a href="remmina__widget__pool_8c.html#aadc178f8f991ba939827d235aae8ad09">remmina_widget_pool_init</a></div><div class="ttdeci">void remmina_widget_pool_init(void)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__widget__pool_8c_source.html#l00044">remmina_widget_pool.c:44</a></div></div>
<div class="ttc" id="remmina__exec_8h_html_a23616cb0334a45c2b477be6efd45ee0cacc1267f3834ff091be0587522f2182b8"><div class="ttname"><a href="remmina__exec_8h.html#a23616cb0334a45c2b477be6efd45ee0cacc1267f3834ff091be0587522f2182b8">REMMINA_COMMAND_AUTOSTART</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__exec_8h_source.html#l00054">remmina_exec.h:54</a></div></div>
<div class="ttc" id="remmina__public_8c_html_ad7c29f17323086e08ac56e1636fd41c3"><div class="ttname"><a href="remmina__public_8c.html#ad7c29f17323086e08ac56e1636fd41c3">remmina_gtk_check_version</a></div><div class="ttdeci">gboolean remmina_gtk_check_version(guint major, guint minor, guint micro)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__public_8c_source.html#l00712">remmina_public.c:712</a></div></div>
<div class="ttc" id="remmina__exec_8h_html_a23616cb0334a45c2b477be6efd45ee0cabb2bf3aea0dd6f02ba402ec12a6ccbad"><div class="ttname"><a href="remmina__exec_8h.html#a23616cb0334a45c2b477be6efd45ee0cabb2bf3aea0dd6f02ba402ec12a6ccbad">REMMINA_COMMAND_PLUGIN</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__exec_8h_source.html#l00052">remmina_exec.h:52</a></div></div>
-<div class="ttc" id="remmina_8c_html_af2649a017ee95bd78adf58fda09c3e58"><div class="ttname"><a href="remmina_8c.html#af2649a017ee95bd78adf58fda09c3e58">disabletrayicon</a></div><div class="ttdeci">gboolean disabletrayicon</div><div class="ttdef"><b>Definition:</b> <a href="remmina_8c_source.html#l00089">remmina.c:89</a></div></div>
+<div class="ttc" id="remmina_8c_html_af2649a017ee95bd78adf58fda09c3e58"><div class="ttname"><a href="remmina_8c.html#af2649a017ee95bd78adf58fda09c3e58">disabletrayicon</a></div><div class="ttdeci">gboolean disabletrayicon</div><div class="ttdef"><b>Definition:</b> <a href="remmina_8c_source.html#l00091">remmina.c:91</a></div></div>
<div class="ttc" id="remmina__pref_8c_html_a400f7319fd3996a13399ef72bcf0a2fd"><div class="ttname"><a href="remmina__pref_8c.html#a400f7319fd3996a13399ef72bcf0a2fd">remmina_pref_init</a></div><div class="ttdeci">void remmina_pref_init(void)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8c_source.html#l00219">remmina_pref.c:219</a></div></div>
<div class="ttc" id="remmina__ssh__plugin_8h_html"><div class="ttname"><a href="remmina__ssh__plugin_8h.html">remmina_ssh_plugin.h</a></div></div>
-<div class="ttc" id="remmina_8c_html_a3d760300165528383af409d2964d79d2"><div class="ttname"><a href="remmina_8c.html#a3d760300165528383af409d2964d79d2">GCRY_THREAD_OPTION_PTHREAD_IMPL</a></div><div class="ttdeci">GCRY_THREAD_OPTION_PTHREAD_IMPL</div><div class="ttdef"><b>Definition:</b> <a href="remmina_8c_source.html#l00075">remmina.c:75</a></div></div>
+<div class="ttc" id="remmina_8c_html_a3d760300165528383af409d2964d79d2"><div class="ttname"><a href="remmina_8c.html#a3d760300165528383af409d2964d79d2">GCRY_THREAD_OPTION_PTHREAD_IMPL</a></div><div class="ttdeci">GCRY_THREAD_OPTION_PTHREAD_IMPL</div><div class="ttdef"><b>Definition:</b> <a href="remmina_8c_source.html#l00077">remmina.c:77</a></div></div>
<div class="ttc" id="remmina__masterthread__exec_8h_html"><div class="ttname"><a href="remmina__masterthread__exec_8h.html">remmina_masterthread_exec.h</a></div></div>
<div class="ttc" id="remmina__pref_8h_html"><div class="ttname"><a href="remmina__pref_8h.html">remmina_pref.h</a></div></div>
<div class="ttc" id="remmina__exec_8h_html_a23616cb0334a45c2b477be6efd45ee0ca5815f1d3742909a0a2a61664ad35300a"><div class="ttname"><a href="remmina__exec_8h.html#a23616cb0334a45c2b477be6efd45ee0ca5815f1d3742909a0a2a61664ad35300a">REMMINA_COMMAND_EXIT</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__exec_8h_source.html#l00053">remmina_exec.h:53</a></div></div>
<div class="ttc" id="remmina__plugin__native_8h_html"><div class="ttname"><a href="remmina__plugin__native_8h.html">remmina_plugin_native.h</a></div></div>
-<div class="ttc" id="remmina_8c_html_ab4a9a67c5372ff07b71d0558679ab7ae"><div class="ttname"><a href="remmina_8c.html#ab4a9a67c5372ff07b71d0558679ab7ae">kioskmode</a></div><div class="ttdeci">gboolean kioskmode</div><div class="ttdef"><b>Definition:</b> <a href="remmina_8c_source.html#l00085">remmina.c:85</a></div></div>
+<div class="ttc" id="remmina_8c_html_ab4a9a67c5372ff07b71d0558679ab7ae"><div class="ttname"><a href="remmina_8c.html#ab4a9a67c5372ff07b71d0558679ab7ae">kioskmode</a></div><div class="ttdeci">gboolean kioskmode</div><div class="ttdef"><b>Definition:</b> <a href="remmina_8c_source.html#l00087">remmina.c:87</a></div></div>
<div class="ttc" id="remmina__sftp__plugin_8h_html"><div class="ttname"><a href="remmina__sftp__plugin_8h.html">remmina_sftp_plugin.h</a></div></div>
-<div class="ttc" id="remmina_8c_html_ae729d4262682c8674b8dd0135014810a"><div class="ttname"><a href="remmina_8c.html#ae729d4262682c8674b8dd0135014810a">extrahardening</a></div><div class="ttdeci">gboolean extrahardening</div><div class="ttdef"><b>Definition:</b> <a href="remmina_8c_source.html#l00088">remmina.c:88</a></div></div>
+<div class="ttc" id="remmina_8c_html_ae729d4262682c8674b8dd0135014810a"><div class="ttname"><a href="remmina_8c.html#ae729d4262682c8674b8dd0135014810a">extrahardening</a></div><div class="ttdeci">gboolean extrahardening</div><div class="ttdef"><b>Definition:</b> <a href="remmina_8c_source.html#l00090">remmina.c:90</a></div></div>
<div class="ttc" id="remmina__exec_8h_html_a23616cb0334a45c2b477be6efd45ee0ca3b100b365ea4c523dba34c3a1233e33d"><div class="ttname"><a href="remmina__exec_8h.html#a23616cb0334a45c2b477be6efd45ee0ca3b100b365ea4c523dba34c3a1233e33d">REMMINA_COMMAND_CONNECT</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__exec_8h_source.html#l00047">remmina_exec.h:47</a></div></div>
<div class="ttc" id="remmina__exec_8h_html"><div class="ttname"><a href="remmina__exec_8h.html">remmina_exec.h</a></div></div>
<div class="ttc" id="vnc__plugin_8c_html_ab96ef9227ecef94018f2729f72e7651e"><div class="ttname"><a href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a></div><div class="ttdeci">N_(&quot;Unable to connect to VNC server&quot;)</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l00951">vnc_plugin.c:951</a></div></div>
diff --git a/public/remmina_8h.html b/public/remmina_8h.html
index ce8f9435d..cdf90a446 100644
--- a/public/remmina_8h.html
+++ b/public/remmina_8h.html
@@ -109,7 +109,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina_8c_source.html#l00085">85</a> of file <a class="el" href="remmina_8c_source.html">remmina.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina_8c_source.html#l00087">87</a> of file <a class="el" href="remmina_8c_source.html">remmina.c</a>.</p>
</div>
</div>
diff --git a/public/remmina_8h_source.html b/public/remmina_8h_source.html
index 73db44c2f..10cbaf563 100644
--- a/public/remmina_8h_source.html
+++ b/public/remmina_8h_source.html
@@ -86,7 +86,7 @@ $(document).ready(function(){initNavTree('remmina_8h_source.html','');});
<div class="title">remmina.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="remmina_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Remmina - The GTK+ Remote Desktop Client</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> * Copyright (C) 2014-2022 Antenore Gatta, Giovanni Panozzo</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> * (at your option) any later version.</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> * along with this program; if not, write to the Free Software</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment"> * Foundation, Inc., 51 Franklin Street, Fifth Floor,</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment"> * Boston, MA 02110-1301, USA.</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment"> * In addition, as a special exception, the copyright holders give</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment"> * permission to link the code of portions of this program with the</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment"> * OpenSSL library under certain conditions as described in each</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment"> * individual source file, and distribute linked combinations</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> * including the two.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> * You must obey the GNU General Public License in all respects</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> * for all of the code used other than OpenSSL. * If you modify</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * file(s) with this exception, you may extend this exception to your</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> * version of the file(s), but you are not obligated to do so. * If you</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment"> * do not wish to do so, delete this exception statement from your</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment"> * version. * If you delete this exception statement from all source</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment"> * files in the program, then also delete it here.</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &lt;gtk/gtk.h&gt;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;G_BEGIN_DECLS</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">extern</span> gboolean <a class="code" href="remmina_8h.html#a806213b48f3332bbb4bb771ddde38ab1">kioskmode</a>;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;G_END_DECLS</div><div class="ttc" id="remmina_8h_html_a806213b48f3332bbb4bb771ddde38ab1"><div class="ttname"><a href="remmina_8h.html#a806213b48f3332bbb4bb771ddde38ab1">kioskmode</a></div><div class="ttdeci">G_BEGIN_DECLS gboolean kioskmode</div><div class="ttdef"><b>Definition:</b> <a href="remmina_8c_source.html#l00085">remmina.c:85</a></div></div>
+<a href="remmina_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Remmina - The GTK+ Remote Desktop Client</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> * Copyright (C) 2014-2022 Antenore Gatta, Giovanni Panozzo</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> * (at your option) any later version.</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> * along with this program; if not, write to the Free Software</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment"> * Foundation, Inc., 51 Franklin Street, Fifth Floor,</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment"> * Boston, MA 02110-1301, USA.</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment"> * In addition, as a special exception, the copyright holders give</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment"> * permission to link the code of portions of this program with the</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment"> * OpenSSL library under certain conditions as described in each</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment"> * individual source file, and distribute linked combinations</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> * including the two.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> * You must obey the GNU General Public License in all respects</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> * for all of the code used other than OpenSSL. * If you modify</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * file(s) with this exception, you may extend this exception to your</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> * version of the file(s), but you are not obligated to do so. * If you</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment"> * do not wish to do so, delete this exception statement from your</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment"> * version. * If you delete this exception statement from all source</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment"> * files in the program, then also delete it here.</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &lt;gtk/gtk.h&gt;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;G_BEGIN_DECLS</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">extern</span> gboolean <a class="code" href="remmina_8h.html#a806213b48f3332bbb4bb771ddde38ab1">kioskmode</a>;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;G_END_DECLS</div><div class="ttc" id="remmina_8h_html_a806213b48f3332bbb4bb771ddde38ab1"><div class="ttname"><a href="remmina_8h.html#a806213b48f3332bbb4bb771ddde38ab1">kioskmode</a></div><div class="ttdeci">G_BEGIN_DECLS gboolean kioskmode</div><div class="ttdef"><b>Definition:</b> <a href="remmina_8c_source.html#l00087">remmina.c:87</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/public/remmina__exec_8c_source.html b/public/remmina__exec_8c_source.html
index acccc618b..a5c29bf3a 100644
--- a/public/remmina__exec_8c_source.html
+++ b/public/remmina__exec_8c_source.html
@@ -146,7 +146,7 @@ $(document).ready(function(){initNavTree('remmina__exec_8c_source.html','');});
<div class="ttc" id="rcw_8h_html_a2450dfe27d3ded59370ea879419f307fadd57127d30bc4755bf3a8323045922bc"><div class="ttname"><a href="rcw_8h.html#a2450dfe27d3ded59370ea879419f307fadd57127d30bc4755bf3a8323045922bc">RCW_ONDELETE_NOCONFIRM</a></div><div class="ttdef"><b>Definition:</b> <a href="rcw_8h_source.html#l00068">rcw.h:68</a></div></div>
<div class="ttc" id="rcw_8c_html_aa37f2a9c56df0ce1a0dbc32f8989e4b5"><div class="ttname"><a href="rcw_8c.html#aa37f2a9c56df0ce1a0dbc32f8989e4b5">rcw_open_from_filename</a></div><div class="ttdeci">gboolean rcw_open_from_filename(const gchar *filename)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l04390">rcw.c:4390</a></div></div>
<div class="ttc" id="remmina__exec_8c_html_a0ffd51ed283da4640c920e75e89e694a"><div class="ttname"><a href="remmina__exec_8c.html#a0ffd51ed283da4640c920e75e89e694a">cb_closewidget</a></div><div class="ttdeci">static gboolean cb_closewidget(GtkWidget *widget, gpointer data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__exec_8c_source.html#l00067">remmina_exec.c:67</a></div></div>
-<div class="ttc" id="remmina_8c_html_ab4a9a67c5372ff07b71d0558679ab7ae"><div class="ttname"><a href="remmina_8c.html#ab4a9a67c5372ff07b71d0558679ab7ae">kioskmode</a></div><div class="ttdeci">gboolean kioskmode</div><div class="ttdef"><b>Definition:</b> <a href="remmina_8c_source.html#l00085">remmina.c:85</a></div></div>
+<div class="ttc" id="remmina_8c_html_ab4a9a67c5372ff07b71d0558679ab7ae"><div class="ttname"><a href="remmina_8c.html#ab4a9a67c5372ff07b71d0558679ab7ae">kioskmode</a></div><div class="ttdeci">gboolean kioskmode</div><div class="ttdef"><b>Definition:</b> <a href="remmina_8c_source.html#l00087">remmina.c:87</a></div></div>
<div class="ttc" id="remmina__exec_8c_html_aaa67e07e2426828d7e7b9b30d2038d31"><div class="ttname"><a href="remmina__exec_8c.html#aaa67e07e2426828d7e7b9b30d2038d31">remmina_application_condexit</a></div><div class="ttdeci">void remmina_application_condexit(RemminaCondExitType why)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__exec_8c_source.html#l00123">remmina_exec.c:123</a></div></div>
<div class="ttc" id="remmina__exec_8c_html_aacc2a2ffd19e56fcb3e4b025d180ab8f"><div class="ttname"><a href="remmina__exec_8c.html#aacc2a2ffd19e56fcb3e4b025d180ab8f">disable_rcw_delete_confirm_cb</a></div><div class="ttdeci">static gboolean disable_rcw_delete_confirm_cb(GtkWidget *widget, gpointer data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__exec_8c_source.html#l00111">remmina_exec.c:111</a></div></div>
<div class="ttc" id="remmina__file_8c_html_a85ca1ca2d0bf9ef29e490c6f4527a954"><div class="ttname"><a href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a></div><div class="ttdeci">void remmina_file_set_string(RemminaFile *remminafile, const gchar *setting, const gchar *value)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file_8c_source.html#l00469">remmina_file.c:469</a></div></div>
diff --git a/public/remmina__main_8c_source.html b/public/remmina__main_8c_source.html
index f2a665df8..140c9e9d3 100644
--- a/public/remmina__main_8c_source.html
+++ b/public/remmina__main_8c_source.html
@@ -275,7 +275,7 @@ $(document).ready(function(){initNavTree('remmina__main_8c_source.html','');});
<div class="ttc" id="remmina__main_8c_html_a385c44f6fb256e5716a2302a5b940388a1704de86134c42b13d2e5fd7cf7c903b"><div class="ttname"><a href="remmina__main_8c.html#a385c44f6fb256e5716a2302a5b940388a1704de86134c42b13d2e5fd7cf7c903b">GROUP_COLUMN</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__main_8c_source.html#l00073">remmina_main.c:73</a></div></div>
<div class="ttc" id="remmina__main_8c_html_ab98d51c96a87fddaa2d5d6d4614bafa8"><div class="ttname"><a href="remmina__main_8c.html#ab98d51c96a87fddaa2d5d6d4614bafa8">remmina_main_on_action_expand</a></div><div class="ttdeci">void remmina_main_on_action_expand(GSimpleAction *action, GVariant *param, gpointer data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__main_8c_source.html#l01350">remmina_main.c:1350</a></div></div>
<div class="ttc" id="struct___remmina_file_plugin_html_a8bf634ff09caba624ecf93c42e12af78"><div class="ttname"><a href="struct___remmina_file_plugin.html#a8bf634ff09caba624ecf93c42e12af78">_RemminaFilePlugin::export_func</a></div><div class="ttdeci">gboolean(* export_func)(struct _RemminaFilePlugin *instance, RemminaFile *file, const gchar *to_file)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00110">plugin.h:110</a></div></div>
-<div class="ttc" id="remmina_8c_html_ab4a9a67c5372ff07b71d0558679ab7ae"><div class="ttname"><a href="remmina_8c.html#ab4a9a67c5372ff07b71d0558679ab7ae">kioskmode</a></div><div class="ttdeci">gboolean kioskmode</div><div class="ttdef"><b>Definition:</b> <a href="remmina_8c_source.html#l00085">remmina.c:85</a></div></div>
+<div class="ttc" id="remmina_8c_html_ab4a9a67c5372ff07b71d0558679ab7ae"><div class="ttname"><a href="remmina_8c.html#ab4a9a67c5372ff07b71d0558679ab7ae">kioskmode</a></div><div class="ttdeci">gboolean kioskmode</div><div class="ttdef"><b>Definition:</b> <a href="remmina_8c_source.html#l00087">remmina.c:87</a></div></div>
<div class="ttc" id="struct___remmina_main_html_a82aa6f22340fc4f3df185aba7b01afc2"><div class="ttname"><a href="struct___remmina_main.html#a82aa6f22340fc4f3df185aba7b01afc2">_RemminaMain::window</a></div><div class="ttdeci">GtkWindow * window</div><div class="ttdef"><b>Definition:</b> <a href="remmina__main_8h_source.html#l00049">remmina_main.h:49</a></div></div>
<div class="ttc" id="remmina__exec_8c_html_aaa67e07e2426828d7e7b9b30d2038d31"><div class="ttname"><a href="remmina__exec_8c.html#aaa67e07e2426828d7e7b9b30d2038d31">remmina_application_condexit</a></div><div class="ttdeci">void remmina_application_condexit(RemminaCondExitType why)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__exec_8c_source.html#l00123">remmina_exec.c:123</a></div></div>
<div class="ttc" id="remmina__file_8c_html_a85ca1ca2d0bf9ef29e490c6f4527a954"><div class="ttname"><a href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a></div><div class="ttdeci">void remmina_file_set_string(RemminaFile *remminafile, const gchar *setting, const gchar *value)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file_8c_source.html#l00469">remmina_file.c:469</a></div></div>
diff --git a/public/remmina__pref_8c_source.html b/public/remmina__pref_8c_source.html
index 3e6bbe549..5c3493861 100644
--- a/public/remmina__pref_8c_source.html
+++ b/public/remmina__pref_8c_source.html
@@ -165,7 +165,7 @@ $(document).ready(function(){initNavTree('remmina__pref_8c_source.html','');});
<div class="ttc" id="remmina__log_8h_html"><div class="ttname"><a href="remmina__log_8h.html">remmina_log.h</a></div></div>
<div class="ttc" id="struct___remmina_pref_html_a0242e9fcc63d6d24257f63fc23077133"><div class="ttname"><a href="struct___remmina_pref.html#a0242e9fcc63d6d24257f63fc23077133">_RemminaPref::toolbar_placement</a></div><div class="ttdeci">gint toolbar_placement</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00223">remmina_pref.h:223</a></div></div>
<div class="ttc" id="struct___remmina_pref_html_a18872e092d22f5d3accb66d6a22845d7"><div class="ttname"><a href="struct___remmina_pref.html#a18872e092d22f5d3accb66d6a22845d7">_RemminaPref::prevent_snap_welcome_message</a></div><div class="ttdeci">gboolean prevent_snap_welcome_message</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00224">remmina_pref.h:224</a></div></div>
-<div class="ttc" id="remmina_8c_html_a86d25bcf3c47f758f813a175a18b6ff1"><div class="ttname"><a href="remmina_8c.html#a86d25bcf3c47f758f813a175a18b6ff1">disabletoolbar</a></div><div class="ttdeci">gboolean disabletoolbar</div><div class="ttdef"><b>Definition:</b> <a href="remmina_8c_source.html#l00086">remmina.c:86</a></div></div>
+<div class="ttc" id="remmina_8c_html_a86d25bcf3c47f758f813a175a18b6ff1"><div class="ttname"><a href="remmina_8c.html#a86d25bcf3c47f758f813a175a18b6ff1">disabletoolbar</a></div><div class="ttdeci">gboolean disabletoolbar</div><div class="ttdef"><b>Definition:</b> <a href="remmina_8c_source.html#l00088">remmina.c:88</a></div></div>
<div class="ttc" id="struct___remmina_pref_html_aa8d4c923cb9ca1be451436d1790e8ee5"><div class="ttname"><a href="struct___remmina_pref.html#aa8d4c923cb9ca1be451436d1790e8ee5">_RemminaPref::expanded_group</a></div><div class="ttdeci">gchar * expanded_group</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00220">remmina_pref.h:220</a></div></div>
<div class="ttc" id="struct___remmina_pref_html_a2ae608a877b349b1af50c2456afda972"><div class="ttname"><a href="struct___remmina_pref.html#a2ae608a877b349b1af50c2456afda972">_RemminaPref::vte_shortcutkey_decrease_font</a></div><div class="ttdeci">guint vte_shortcutkey_decrease_font</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00206">remmina_pref.h:206</a></div></div>
<div class="ttc" id="struct___remmina_pref_html_a65b01db52636d3fb896cd8a5c68eb2fc"><div class="ttname"><a href="struct___remmina_pref.html#a65b01db52636d3fb896cd8a5c68eb2fc">_RemminaPref::unlock_password</a></div><div class="ttdeci">const gchar * unlock_password</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00189">remmina_pref.h:189</a></div></div>
@@ -184,7 +184,7 @@ $(document).ready(function(){initNavTree('remmina__pref_8c_source.html','');});
<div class="ttc" id="remmina__pref_8h_html_a458e651af6690959efa2afb96be7d609a3e85ac0b56e926949bc162505d199a2e"><div class="ttname"><a href="remmina__pref_8h.html#a458e651af6690959efa2afb96be7d609a3e85ac0b56e926949bc162505d199a2e">FLOATING_TOOLBAR_VISIBILITY_PEEKING</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00100">remmina_pref.h:100</a></div></div>
<div class="ttc" id="remmina__pref_8h_html_a0944a4353780132eeab7b06e3e42291da61339886524adf33eaf7b5df6dd57955"><div class="ttname"><a href="remmina__pref_8h.html#a0944a4353780132eeab7b06e3e42291da61339886524adf33eaf7b5df6dd57955">VIEWPORT_FULLSCREEN_MODE</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00067">remmina_pref.h:67</a></div></div>
<div class="ttc" id="remmina__string__array_8c_html_a462a635b3a55cc0e3af087ff996fba9a"><div class="ttname"><a href="remmina__string__array_8c.html#a462a635b3a55cc0e3af087ff996fba9a">remmina_string_array_new_from_allocated_string</a></div><div class="ttdeci">RemminaStringArray * remmina_string_array_new_from_allocated_string(gchar *strs)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__string__array_8c_source.html#l00077">remmina_string_array.c:77</a></div></div>
-<div class="ttc" id="remmina_8c_html_ae0e3cdfa06abe7e29f987421869713e1"><div class="ttname"><a href="remmina_8c.html#ae0e3cdfa06abe7e29f987421869713e1">fullscreen</a></div><div class="ttdeci">gboolean fullscreen</div><div class="ttdef"><b>Definition:</b> <a href="remmina_8c_source.html#l00087">remmina.c:87</a></div></div>
+<div class="ttc" id="remmina_8c_html_ae0e3cdfa06abe7e29f987421869713e1"><div class="ttname"><a href="remmina_8c.html#ae0e3cdfa06abe7e29f987421869713e1">fullscreen</a></div><div class="ttdeci">gboolean fullscreen</div><div class="ttdef"><b>Definition:</b> <a href="remmina_8c_source.html#l00089">remmina.c:89</a></div></div>
<div class="ttc" id="remmina__pref_8c_html_a9a8d02227eb703bccc3f9296a5d89d6f"><div class="ttname"><a href="remmina__pref_8c.html#a9a8d02227eb703bccc3f9296a5d89d6f">remmina_pref_get_boolean</a></div><div class="ttdeci">gboolean remmina_pref_get_boolean(const gchar *key)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8c_source.html#l01143">remmina_pref.c:1143</a></div></div>
<div class="ttc" id="struct___remmina_color_pref_html_ac8ae5e31836066ac69f7c907f30d2ffc"><div class="ttname"><a href="struct___remmina_color_pref.html#ac8ae5e31836066ac69f7c907f30d2ffc">_RemminaColorPref::color9</a></div><div class="ttdeci">gchar * color9</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00123">remmina_pref.h:123</a></div></div>
<div class="ttc" id="struct___remmina_color_pref_html_a2d0facd5a0480a450d525ce9ef4fed60"><div class="ttname"><a href="struct___remmina_color_pref.html#a2d0facd5a0480a450d525ce9ef4fed60">_RemminaColorPref::color5</a></div><div class="ttdeci">gchar * color5</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00119">remmina_pref.h:119</a></div></div>
@@ -209,7 +209,7 @@ $(document).ready(function(){initNavTree('remmina__pref_8c_source.html','');});
<div class="ttc" id="struct___remmina_pref_html_abbd08ed0c74b8f216e633aae6b141792"><div class="ttname"><a href="struct___remmina_pref.html#abbd08ed0c74b8f216e633aae6b141792">_RemminaPref::applet_enable_avahi</a></div><div class="ttdeci">gboolean applet_enable_avahi</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00213">remmina_pref.h:213</a></div></div>
<div class="ttc" id="struct___remmina_pref_html_aa1544a98f03088dc260ed98f2deac94f"><div class="ttname"><a href="struct___remmina_pref.html#aa1544a98f03088dc260ed98f2deac94f">_RemminaPref::remmina_file_name</a></div><div class="ttdeci">const gchar * remmina_file_name</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00135">remmina_pref.h:135</a></div></div>
<div class="ttc" id="struct___remmina_pref_html_af9c8b60418a9dc795230e4ebb084f850"><div class="ttname"><a href="struct___remmina_pref.html#af9c8b60418a9dc795230e4ebb084f850">_RemminaPref::vte_lines</a></div><div class="ttdeci">gint vte_lines</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00201">remmina_pref.h:201</a></div></div>
-<div class="ttc" id="remmina_8c_html_af2649a017ee95bd78adf58fda09c3e58"><div class="ttname"><a href="remmina_8c.html#af2649a017ee95bd78adf58fda09c3e58">disabletrayicon</a></div><div class="ttdeci">gboolean disabletrayicon</div><div class="ttdef"><b>Definition:</b> <a href="remmina_8c_source.html#l00089">remmina.c:89</a></div></div>
+<div class="ttc" id="remmina_8c_html_af2649a017ee95bd78adf58fda09c3e58"><div class="ttname"><a href="remmina_8c.html#af2649a017ee95bd78adf58fda09c3e58">disabletrayicon</a></div><div class="ttdeci">gboolean disabletrayicon</div><div class="ttdef"><b>Definition:</b> <a href="remmina_8c_source.html#l00091">remmina.c:91</a></div></div>
<div class="ttc" id="remmina__pref_8c_html_a400f7319fd3996a13399ef72bcf0a2fd"><div class="ttname"><a href="remmina__pref_8c.html#a400f7319fd3996a13399ef72bcf0a2fd">remmina_pref_init</a></div><div class="ttdeci">void remmina_pref_init(void)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8c_source.html#l00219">remmina_pref.c:219</a></div></div>
<div class="ttc" id="remmina__pref_8c_html_a10b667eb7a100d6ac8d9544697f22743"><div class="ttname"><a href="remmina__pref_8c.html#a10b667eb7a100d6ac8d9544697f22743">remmina_keymap_file</a></div><div class="ttdeci">gchar * remmina_keymap_file</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8c_source.html#l00060">remmina_pref.c:60</a></div></div>
<div class="ttc" id="struct___remmina_color_pref_html_ab2b41853bdaaefa3968017819c19d316"><div class="ttname"><a href="struct___remmina_color_pref.html#ab2b41853bdaaefa3968017819c19d316">_RemminaColorPref::color3</a></div><div class="ttdeci">gchar * color3</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00117">remmina_pref.h:117</a></div></div>
@@ -229,7 +229,7 @@ $(document).ready(function(){initNavTree('remmina__pref_8c_source.html','');});
<div class="ttc" id="struct___remmina_pref_html_a920221c2f304bfa278d0944bbbb6e011"><div class="ttname"><a href="struct___remmina_pref.html#a920221c2f304bfa278d0944bbbb6e011">_RemminaPref::datadir_path</a></div><div class="ttdeci">const gchar * datadir_path</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00134">remmina_pref.h:134</a></div></div>
<div class="ttc" id="struct___remmina_color_pref_html_a8c109e8479617a5e6da0fcaccf511c60"><div class="ttname"><a href="struct___remmina_color_pref.html#a8c109e8479617a5e6da0fcaccf511c60">_RemminaColorPref::color15</a></div><div class="ttdeci">gchar * color15</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00129">remmina_pref.h:129</a></div></div>
<div class="ttc" id="struct___remmina_color_pref_html_aaff337efd0f03b496a2203068218da7f"><div class="ttname"><a href="struct___remmina_color_pref.html#aaff337efd0f03b496a2203068218da7f">_RemminaColorPref::cursor_foreground</a></div><div class="ttdeci">gchar * cursor_foreground</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00109">remmina_pref.h:109</a></div></div>
-<div class="ttc" id="remmina_8c_html_ae729d4262682c8674b8dd0135014810a"><div class="ttname"><a href="remmina_8c.html#ae729d4262682c8674b8dd0135014810a">extrahardening</a></div><div class="ttdeci">gboolean extrahardening</div><div class="ttdef"><b>Definition:</b> <a href="remmina_8c_source.html#l00088">remmina.c:88</a></div></div>
+<div class="ttc" id="remmina_8c_html_ae729d4262682c8674b8dd0135014810a"><div class="ttname"><a href="remmina_8c.html#ae729d4262682c8674b8dd0135014810a">extrahardening</a></div><div class="ttdeci">gboolean extrahardening</div><div class="ttdef"><b>Definition:</b> <a href="remmina_8c_source.html#l00090">remmina.c:90</a></div></div>
<div class="ttc" id="struct___remmina_color_pref_html_ac8e90ea1299ef641fbef1495f899cf97"><div class="ttname"><a href="struct___remmina_color_pref.html#ac8e90ea1299ef641fbef1495f899cf97">_RemminaColorPref::color11</a></div><div class="ttdeci">gchar * color11</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00125">remmina_pref.h:125</a></div></div>
<div class="ttc" id="remmina__pref_8c_html_a0dd25f5b3a055b936a5fa327bc71f19c"><div class="ttname"><a href="remmina__pref_8c.html#a0dd25f5b3a055b936a5fa327bc71f19c">remmina_pref_is_rw</a></div><div class="ttdeci">gboolean remmina_pref_is_rw(void)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8c_source.html#l00760">remmina_pref.c:760</a></div></div>
<div class="ttc" id="remmina__pref_8h_html_a458e651af6690959efa2afb96be7d609ad947c85d5ea917958d90298dab033b2c"><div class="ttname"><a href="remmina__pref_8h.html#a458e651af6690959efa2afb96be7d609ad947c85d5ea917958d90298dab033b2c">FLOATING_TOOLBAR_VISIBILITY_DISABLE</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00102">remmina_pref.h:102</a></div></div>
diff --git a/public/remmina__pref_8h.html b/public/remmina__pref_8h.html
index 4c5c365a2..a4007749c 100644
--- a/public/remmina__pref_8h.html
+++ b/public/remmina__pref_8h.html
@@ -918,7 +918,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina_8c_source.html#l00086">86</a> of file <a class="el" href="remmina_8c_source.html">remmina.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina_8c_source.html#l00088">88</a> of file <a class="el" href="remmina_8c_source.html">remmina.c</a>.</p>
</div>
</div>
@@ -934,7 +934,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina_8c_source.html#l00089">89</a> of file <a class="el" href="remmina_8c_source.html">remmina.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina_8c_source.html#l00091">91</a> of file <a class="el" href="remmina_8c_source.html">remmina.c</a>.</p>
</div>
</div>
@@ -950,7 +950,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina_8c_source.html#l00088">88</a> of file <a class="el" href="remmina_8c_source.html">remmina.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina_8c_source.html#l00090">90</a> of file <a class="el" href="remmina_8c_source.html">remmina.c</a>.</p>
</div>
</div>
@@ -966,7 +966,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina_8c_source.html#l00087">87</a> of file <a class="el" href="remmina_8c_source.html">remmina.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina_8c_source.html#l00089">89</a> of file <a class="el" href="remmina_8c_source.html">remmina.c</a>.</p>
</div>
</div>
diff --git a/public/remmina__pref_8h_source.html b/public/remmina__pref_8h_source.html
index 8ed97c94b..b055c06cf 100644
--- a/public/remmina__pref_8h_source.html
+++ b/public/remmina__pref_8h_source.html
@@ -171,11 +171,11 @@ $(document).ready(function(){initNavTree('remmina__pref_8h_source.html','');});
<div class="ttc" id="remmina__pref_8h_html_a96a58e29e8dbf2b5bdeb775cba46556eafb68a1eeda5303774bbc922ef8d364e9"><div class="ttname"><a href="remmina__pref_8h.html#a96a58e29e8dbf2b5bdeb775cba46556eafb68a1eeda5303774bbc922ef8d364e9">REMMINA_TAB_ALL</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00085">remmina_pref.h:85</a></div></div>
<div class="ttc" id="struct___remmina_pref_html_aa9a057b8d4095678d3c0806ab37af365"><div class="ttname"><a href="struct___remmina_pref.html#aa9a057b8d4095678d3c0806ab37af365">_RemminaPref::confirm_close</a></div><div class="ttdeci">gboolean confirm_close</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00146">remmina_pref.h:146</a></div></div>
<div class="ttc" id="struct___remmina_pref_html_a0242e9fcc63d6d24257f63fc23077133"><div class="ttname"><a href="struct___remmina_pref.html#a0242e9fcc63d6d24257f63fc23077133">_RemminaPref::toolbar_placement</a></div><div class="ttdeci">gint toolbar_placement</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00223">remmina_pref.h:223</a></div></div>
-<div class="ttc" id="remmina__pref_8h_html_ae729d4262682c8674b8dd0135014810a"><div class="ttname"><a href="remmina__pref_8h.html#ae729d4262682c8674b8dd0135014810a">extrahardening</a></div><div class="ttdeci">gboolean extrahardening</div><div class="ttdef"><b>Definition:</b> <a href="remmina_8c_source.html#l00088">remmina.c:88</a></div></div>
+<div class="ttc" id="remmina__pref_8h_html_ae729d4262682c8674b8dd0135014810a"><div class="ttname"><a href="remmina__pref_8h.html#ae729d4262682c8674b8dd0135014810a">extrahardening</a></div><div class="ttdeci">gboolean extrahardening</div><div class="ttdef"><b>Definition:</b> <a href="remmina_8c_source.html#l00090">remmina.c:90</a></div></div>
<div class="ttc" id="struct___remmina_pref_html_a18872e092d22f5d3accb66d6a22845d7"><div class="ttname"><a href="struct___remmina_pref.html#a18872e092d22f5d3accb66d6a22845d7">_RemminaPref::prevent_snap_welcome_message</a></div><div class="ttdeci">gboolean prevent_snap_welcome_message</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00224">remmina_pref.h:224</a></div></div>
<div class="ttc" id="struct___remmina_pref_html_aa8d4c923cb9ca1be451436d1790e8ee5"><div class="ttname"><a href="struct___remmina_pref.html#aa8d4c923cb9ca1be451436d1790e8ee5">_RemminaPref::expanded_group</a></div><div class="ttdeci">gchar * expanded_group</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00220">remmina_pref.h:220</a></div></div>
<div class="ttc" id="struct___remmina_pref_html_a2ae608a877b349b1af50c2456afda972"><div class="ttname"><a href="struct___remmina_pref.html#a2ae608a877b349b1af50c2456afda972">_RemminaPref::vte_shortcutkey_decrease_font</a></div><div class="ttdeci">guint vte_shortcutkey_decrease_font</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00206">remmina_pref.h:206</a></div></div>
-<div class="ttc" id="remmina__pref_8h_html_af2649a017ee95bd78adf58fda09c3e58"><div class="ttname"><a href="remmina__pref_8h.html#af2649a017ee95bd78adf58fda09c3e58">disabletrayicon</a></div><div class="ttdeci">gboolean disabletrayicon</div><div class="ttdef"><b>Definition:</b> <a href="remmina_8c_source.html#l00089">remmina.c:89</a></div></div>
+<div class="ttc" id="remmina__pref_8h_html_af2649a017ee95bd78adf58fda09c3e58"><div class="ttname"><a href="remmina__pref_8h.html#af2649a017ee95bd78adf58fda09c3e58">disabletrayicon</a></div><div class="ttdeci">gboolean disabletrayicon</div><div class="ttdef"><b>Definition:</b> <a href="remmina_8c_source.html#l00091">remmina.c:91</a></div></div>
<div class="ttc" id="struct___remmina_pref_html_a65b01db52636d3fb896cd8a5c68eb2fc"><div class="ttname"><a href="struct___remmina_pref.html#a65b01db52636d3fb896cd8a5c68eb2fc">_RemminaPref::unlock_password</a></div><div class="ttdeci">const gchar * unlock_password</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00189">remmina_pref.h:189</a></div></div>
<div class="ttc" id="struct___remmina_pref_html_a901034949132f369eb34c4f1ded3a0a6"><div class="ttname"><a href="struct___remmina_pref.html#a901034949132f369eb34c4f1ded3a0a6">_RemminaPref::vte_shortcutkey_paste</a></div><div class="ttdeci">guint vte_shortcutkey_paste</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00203">remmina_pref.h:203</a></div></div>
<div class="ttc" id="remmina__pref_8h_html_ab48899087cc647f0f791ed0c459adc53a0378e0f09c7bc6fd7f8d95b3827ad561"><div class="ttname"><a href="remmina__pref_8h.html#ab48899087cc647f0f791ed0c459adc53a0378e0f09c7bc6fd7f8d95b3827ad561">RM_ENC_MODE_SODIUM_SENSITIVE</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00094">remmina_pref.h:94</a></div></div>
@@ -196,7 +196,7 @@ $(document).ready(function(){initNavTree('remmina__pref_8h_source.html','');});
<div class="ttc" id="struct___remmina_pref_html_ac001e6ac3d70ae6adca7d918898a9651"><div class="ttname"><a href="struct___remmina_pref.html#ac001e6ac3d70ae6adca7d918898a9651">_RemminaPref::unlock_repassword</a></div><div class="ttdeci">const gchar * unlock_repassword</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00190">remmina_pref.h:190</a></div></div>
<div class="ttc" id="remmina__pref_8h_html_ad7040b17df053835bfb21eb24ae10414"><div class="ttname"><a href="remmina__pref_8h.html#ad7040b17df053835bfb21eb24ae10414">remmina_pref_get_ssh_tcp_keepintvl</a></div><div class="ttdeci">gint remmina_pref_get_ssh_tcp_keepintvl(void)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8c_source.html#l01087">remmina_pref.c:1087</a></div></div>
<div class="ttc" id="remmina__pref_8h_html_a0944a4353780132eeab7b06e3e42291da61339886524adf33eaf7b5df6dd57955"><div class="ttname"><a href="remmina__pref_8h.html#a0944a4353780132eeab7b06e3e42291da61339886524adf33eaf7b5df6dd57955">VIEWPORT_FULLSCREEN_MODE</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00067">remmina_pref.h:67</a></div></div>
-<div class="ttc" id="remmina__pref_8h_html_ae0e3cdfa06abe7e29f987421869713e1"><div class="ttname"><a href="remmina__pref_8h.html#ae0e3cdfa06abe7e29f987421869713e1">fullscreen</a></div><div class="ttdeci">gboolean fullscreen</div><div class="ttdef"><b>Definition:</b> <a href="remmina_8c_source.html#l00087">remmina.c:87</a></div></div>
+<div class="ttc" id="remmina__pref_8h_html_ae0e3cdfa06abe7e29f987421869713e1"><div class="ttname"><a href="remmina__pref_8h.html#ae0e3cdfa06abe7e29f987421869713e1">fullscreen</a></div><div class="ttdeci">gboolean fullscreen</div><div class="ttdef"><b>Definition:</b> <a href="remmina_8c_source.html#l00089">remmina.c:89</a></div></div>
<div class="ttc" id="struct___remmina_color_pref_html_ac8ae5e31836066ac69f7c907f30d2ffc"><div class="ttname"><a href="struct___remmina_color_pref.html#ac8ae5e31836066ac69f7c907f30d2ffc">_RemminaColorPref::color9</a></div><div class="ttdeci">gchar * color9</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00123">remmina_pref.h:123</a></div></div>
<div class="ttc" id="struct___remmina_color_pref_html_a2d0facd5a0480a450d525ce9ef4fed60"><div class="ttname"><a href="struct___remmina_color_pref.html#a2d0facd5a0480a450d525ce9ef4fed60">_RemminaColorPref::color5</a></div><div class="ttdeci">gchar * color5</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00119">remmina_pref.h:119</a></div></div>
<div class="ttc" id="struct___remmina_pref_html_ab43c3da7d8551c9df726996c540726f1"><div class="ttname"><a href="struct___remmina_pref.html#ab43c3da7d8551c9df726996c540726f1">_RemminaPref::view_file_mode</a></div><div class="ttdeci">gint view_file_mode</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00211">remmina_pref.h:211</a></div></div>
@@ -232,7 +232,7 @@ $(document).ready(function(){initNavTree('remmina__pref_8h_source.html','');});
<div class="ttc" id="struct___remmina_pref_html_a332ae31bb6d7376144aeda9b9e11b0f8"><div class="ttname"><a href="struct___remmina_pref.html#a332ae31bb6d7376144aeda9b9e11b0f8">_RemminaPref::audit</a></div><div class="ttdeci">gboolean audit</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00195">remmina_pref.h:195</a></div></div>
<div class="ttc" id="struct___remmina_pref_html_af348bb968fd98ba269c4e253750e2400"><div class="ttname"><a href="struct___remmina_pref.html#af348bb968fd98ba269c4e253750e2400">_RemminaPref::sshtunnel_port</a></div><div class="ttdeci">gint sshtunnel_port</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00167">remmina_pref.h:167</a></div></div>
<div class="ttc" id="struct___remmina_pref_html_a920221c2f304bfa278d0944bbbb6e011"><div class="ttname"><a href="struct___remmina_pref.html#a920221c2f304bfa278d0944bbbb6e011">_RemminaPref::datadir_path</a></div><div class="ttdeci">const gchar * datadir_path</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00134">remmina_pref.h:134</a></div></div>
-<div class="ttc" id="remmina__pref_8h_html_a86d25bcf3c47f758f813a175a18b6ff1"><div class="ttname"><a href="remmina__pref_8h.html#a86d25bcf3c47f758f813a175a18b6ff1">disabletoolbar</a></div><div class="ttdeci">gboolean disabletoolbar</div><div class="ttdef"><b>Definition:</b> <a href="remmina_8c_source.html#l00086">remmina.c:86</a></div></div>
+<div class="ttc" id="remmina__pref_8h_html_a86d25bcf3c47f758f813a175a18b6ff1"><div class="ttname"><a href="remmina__pref_8h.html#a86d25bcf3c47f758f813a175a18b6ff1">disabletoolbar</a></div><div class="ttdeci">gboolean disabletoolbar</div><div class="ttdef"><b>Definition:</b> <a href="remmina_8c_source.html#l00088">remmina.c:88</a></div></div>
<div class="ttc" id="remmina__pref_8h_html_a0208d5dc8197423da67e5967aafb7a05"><div class="ttname"><a href="remmina__pref_8h.html#a0208d5dc8197423da67e5967aafb7a05">remmina_pref_get_recent</a></div><div class="ttdeci">gchar * remmina_pref_get_recent(const gchar *protocol)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8c_source.html#l00957">remmina_pref.c:957</a></div></div>
<div class="ttc" id="struct___remmina_color_pref_html_a8c109e8479617a5e6da0fcaccf511c60"><div class="ttname"><a href="struct___remmina_color_pref.html#a8c109e8479617a5e6da0fcaccf511c60">_RemminaColorPref::color15</a></div><div class="ttdeci">gchar * color15</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00129">remmina_pref.h:129</a></div></div>
<div class="ttc" id="struct___remmina_color_pref_html_aaff337efd0f03b496a2203068218da7f"><div class="ttname"><a href="struct___remmina_color_pref.html#aaff337efd0f03b496a2203068218da7f">_RemminaColorPref::cursor_foreground</a></div><div class="ttdeci">gchar * cursor_foreground</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8h_source.html#l00109">remmina_pref.h:109</a></div></div>
diff --git a/public/remmina__stats_8c_source.html b/public/remmina__stats_8c_source.html
index 1babbd1bc..a5163dff3 100644
--- a/public/remmina__stats_8c_source.html
+++ b/public/remmina__stats_8c_source.html
@@ -130,7 +130,7 @@ $(document).ready(function(){initNavTree('remmina__stats_8c_source.html','');});
<div class="ttc" id="remmina__sysinfo_8c_html_ae6ecf91edb905f3b2b39e33e05325590"><div class="ttname"><a href="remmina__sysinfo_8c.html#ae6ecf91edb905f3b2b39e33e05325590">remmina_sysinfo_is_appindicator_available</a></div><div class="ttdeci">gboolean remmina_sysinfo_is_appindicator_available()</div><div class="ttdef"><b>Definition:</b> <a href="remmina__sysinfo_8c_source.html#l00045">remmina_sysinfo.c:45</a></div></div>
<div class="ttc" id="remmina__stats_8c_html_aee2ea5acceb2fbc3aa4ff21d136c5734"><div class="ttname"><a href="remmina__stats_8c.html#aee2ea5acceb2fbc3aa4ff21d136c5734">remmina_stats_get_indicator</a></div><div class="ttdeci">JsonNode * remmina_stats_get_indicator()</div><div class="ttdef"><b>Definition:</b> <a href="remmina__stats_8c_source.html#l00457">remmina_stats.c:457</a></div></div>
<div class="ttc" id="remmina__stats_8c_html_ae596da7901fb3b45b7290a1d70b3ea3a"><div class="ttname"><a href="remmina__stats_8c.html#ae596da7901fb3b45b7290a1d70b3ea3a">remmina_stats_get_wm_name</a></div><div class="ttdeci">JsonNode * remmina_stats_get_wm_name()</div><div class="ttdef"><b>Definition:</b> <a href="remmina__stats_8c_source.html#l00413">remmina_stats.c:413</a></div></div>
-<div class="ttc" id="remmina_8c_html_ab4a9a67c5372ff07b71d0558679ab7ae"><div class="ttname"><a href="remmina_8c.html#ab4a9a67c5372ff07b71d0558679ab7ae">kioskmode</a></div><div class="ttdeci">gboolean kioskmode</div><div class="ttdef"><b>Definition:</b> <a href="remmina_8c_source.html#l00085">remmina.c:85</a></div></div>
+<div class="ttc" id="remmina_8c_html_ab4a9a67c5372ff07b71d0558679ab7ae"><div class="ttname"><a href="remmina_8c.html#ab4a9a67c5372ff07b71d0558679ab7ae">kioskmode</a></div><div class="ttdeci">gboolean kioskmode</div><div class="ttdef"><b>Definition:</b> <a href="remmina_8c_source.html#l00087">remmina.c:87</a></div></div>
<div class="ttc" id="remmina__utils_8c_html_a54cee350c4ecc6e77af835c4ba90df4c"><div class="ttname"><a href="remmina__utils_8c.html#a54cee350c4ecc6e77af835c4ba90df4c">remmina_utils_get_etc_release</a></div><div class="ttdeci">GHashTable * remmina_utils_get_etc_release()</div><div class="ttdoc">Print the distribution description if found. </div><div class="ttdef"><b>Definition:</b> <a href="remmina__utils_8c_source.html#l00396">remmina_utils.c:396</a></div></div>
<div class="ttc" id="remmina__utils_8c_html_a116e7cd4565386fe531d3a6d1a3d3730"><div class="ttname"><a href="remmina__utils_8c.html#a116e7cd4565386fe531d3a6d1a3d3730">remmina_utils_get_kernel_arch</a></div><div class="ttdeci">const gchar * remmina_utils_get_kernel_arch()</div><div class="ttdoc">Return the machine hardware name as in &quot;uname -m&quot;. </div><div class="ttdef"><b>Definition:</b> <a href="remmina__utils_8c_source.html#l00326">remmina_utils.c:326</a></div></div>
<div class="ttc" id="remmina__stats_8c_html_a56956b7db0c631121151b19b920176da"><div class="ttname"><a href="remmina__stats_8c.html#a56956b7db0c631121151b19b920176da">remmina_stats_get_kiosk_mode</a></div><div class="ttdeci">JsonNode * remmina_stats_get_kiosk_mode()</div><div class="ttdoc">Add a json member KIOSK which shows the status of the kiosk. </div><div class="ttdef"><b>Definition:</b> <a href="remmina__stats_8c_source.html#l00775">remmina_stats.c:775</a></div></div>