On Thu, Oct 4, 2012 at 8:06 AM, Fabiano Fidêncio <fabiano@xxxxxxxxxxxx> wrote: > We need to differenciate between the expected filename and the output > filename. While former always remains the same (as some operating > systems expect it with a particular name), the latter is dependent on > the output prefix (set by application) > --- > data/install-scripts/windows-sif.xml | 4 ++-- > data/install-scripts/windows-unattend.xml | 4 ++-- > osinfo/libosinfo.syms | 1 + > osinfo/osinfo_install_script.c | 39 +++++++++++++++++++++++++++++-- > osinfo/osinfo_install_script.h | 4 +++- > osinfo/osinfo_loader.c | 2 +- > 6 files changed, 46 insertions(+), 8 deletions(-) > > diff --git a/data/install-scripts/windows-sif.xml b/data/install-scripts/windows-sif.xml > index 52cca39..76f9baf 100644 > --- a/data/install-scripts/windows-sif.xml > +++ b/data/install-scripts/windows-sif.xml > @@ -7,7 +7,7 @@ > <param name="reg-product-key" policy="required"/> > <param name="user-realname" policy="required"/> > </config> > - <template filename="windows.sif"> > + <template filename="winnt.sif"> > <xsl:stylesheet > xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > version="1.0"> > @@ -70,7 +70,7 @@ > <param name="user-realname" policy="required"/> > <param name="hostname" policy="required"/> > </config> > - <template filename="windows.sif"> > + <template filename="winnt.sif"> > <xsl:stylesheet > xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > version="1.0"> > diff --git a/data/install-scripts/windows-unattend.xml b/data/install-scripts/windows-unattend.xml > index 0695fa6..38fd9ab 100644 > --- a/data/install-scripts/windows-unattend.xml > +++ b/data/install-scripts/windows-unattend.xml > @@ -10,7 +10,7 @@ > <param name="user-realname" policy="optional"/> > <param name="reg-product-key" policy="required"/> > </config> > - <template filename="windows.xml"> > + <template filename="autounattend.xml"> > <xsl:stylesheet > xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > version="1.0"> > @@ -175,7 +175,7 @@ > <param name="user-realname" policy="optional"/> > <param name="hostname" policy="required"/> > </config> > - <template filename="windows.xml"> > + <template filename="autounattend.xml"> > <xsl:stylesheet > xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > version="1.0"> > diff --git a/osinfo/libosinfo.syms b/osinfo/libosinfo.syms > index 6676588..772e89c 100644 > --- a/osinfo/libosinfo.syms > +++ b/osinfo/libosinfo.syms > @@ -308,6 +308,7 @@ LIBOSINFO_0.2.1 { > osinfo_entity_get_param_value_int64; > osinfo_entity_get_param_value_int64_with_default; > osinfo_entity_set_param_int64; > + osinfo_install_script_get_expected_filename; > } LIBOSINFO_0.2.0; > > /* Symbols in next release... > diff --git a/osinfo/osinfo_install_script.c b/osinfo/osinfo_install_script.c > index bb2c2eb..c9e2024 100644 > --- a/osinfo/osinfo_install_script.c > +++ b/osinfo/osinfo_install_script.c > @@ -47,6 +47,7 @@ G_DEFINE_TYPE (OsinfoInstallScript, osinfo_install_script, OSINFO_TYPE_ENTITY); > struct _OsinfoInstallScriptPrivate > { > gchar *output_prefix; > + gchar *output_filename; > GList *config_param_list; > }; > > @@ -147,6 +148,7 @@ osinfo_install_script_finalize (GObject *object) > { > OsinfoInstallScript *script = OSINFO_INSTALL_SCRIPT (object); > g_free(script->priv->output_prefix); > + g_free(script->priv->output_filename); > g_list_free_full(script->priv->config_param_list, g_object_unref); > > /* Chain up to the parent class */ > @@ -344,8 +346,18 @@ const gchar *osinfo_install_script_get_product_key_format(OsinfoInstallScript *s > void osinfo_install_script_set_output_prefix(OsinfoInstallScript *script, > const gchar *prefix) > { > + const char *output_filename = > + osinfo_install_script_get_expected_filename(script); > + > g_free(script->priv->output_prefix); > script->priv->output_prefix = g_strdup(prefix); > + > + /* update output_filename whenever output_prefix is changed */ > + g_free(script->priv->output_filename); > + script->priv->output_filename = g_strjoin("-", > + prefix, > + output_filename, > + NULL); > } > > const gchar *osinfo_install_script_get_output_prefix(OsinfoInstallScript *script) > @@ -353,10 +365,33 @@ const gchar *osinfo_install_script_get_output_prefix(OsinfoInstallScript *script > return script->priv->output_prefix; > } With this approach output_prefix will never get initialized unless app sets a prefix. -- Regards, Zeeshan Ali (Khattak) FSF member#5124