#include <stdio.h>
#include <glib.h>

gint
main (gint   argc,
      gchar *argv[])
{
  gchar  *filename;
  gchar  *uri;
  GError *error = NULL;

  if (argc < 2)
    g_error ("usage: %s <filename>", argv[0]);

  filename = argv[1];

  printf ("passed filename (filesystem encoding): \"%s\"\n", filename);

  uri = g_filename_to_uri (filename, NULL, &error);

  if (! uri)
    g_error ("conversion to uri failed: %s", error->message);

  g_print ("converted to uri: \"%s\"\n", uri);

  filename = g_filename_from_uri (uri, NULL, &error);

  if (! filename)
    g_error ("conversion back to filename failed: %s\n", error->message);

  printf ("converted back to filename (filesystem encoding): \"%s\"\n",
          filename);

  return 0;
}
