On 1 Mar 2012, at 08:59, Antoine Baudoux wrote:

> Hello, 
> 
> Yes thats where pango was installed, but I want to repackage it in a bundled 
> App. Is there a way to do that? The path to the modules file seems to be 
> hardcoded in the library, and i was hoping to change it by setting the 
> PANGO_RC_FILE env variable. Is there another way?
> 

I can offer a solution for Windows but you'd need to be building the library 
yourself.  If so, you can modify 'pango_get_sysconf_subdirectory()' (in 
pango-utils.c).  I modified it to look for an environment variable called 
"PANGO_MODULE_PATH" (obviously, your main app would have to set up such an 
environment var for this to work).  Non-Windows versions simply return 
'[SYSCONFDIR]/pango' (where SYSCONFDIR is a path you define at compile time).  
So again, you'd need to be building pango yourself is you wanted to change the 
behaviour.

If nobody knows of a better approach, I'd recommend that this mod should be 
considered for inclusion in the main code base (and preferably, a similar idea 
for the non-Windows platforms).  The reason I needed this on Windows was that 
our app needed to have write access for the relevant folder - but we had no way 
of guaranteeing that "etc\\pango" would be a writeable directory.  So I just 
copied the idea from some other gtk library (several other gtk libraries seem 
to employ the same strategy).  I've included the full code for that function 
below, so you can see what I needed to change (it only involved 3 extra lines!!)

John


G_CONST_RETURN char *
pango_get_sysconf_subdirectory (void)
{
#ifdef G_OS_WIN32
    char *env_path;
    static gchar *result = NULL;

    if (result == NULL)
    {
       /* This function changed by JE - 17-02-2012 to allow us
          to find pango.modules from an environment variable */
          env_path = g_getenv("PANGO_MODULE_PATH");
          if (env_path)
              result = g_strdup(env_path);

          if (result == NULL)
          {
              gchar *root = 
g_win32_get_package_installation_directory_of_module (pango_dll);
              result = g_build_filename (root, "etc\\pango", NULL);
              g_free (root);
          }
    }
    return result;
#else
    return SYSCONFDIR "/pango";
#endif
}

_______________________________________________
gtk-i18n-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/gtk-i18n-list

Reply via email to