Hatred's Log Place

DON'T PANIC!

Oct 11, 2009 - 2 minute read -

exo: решение проблемы с кодировками при монтировании от разработчиков

Версия exo 0.3.104, репортуют о решении проблемы с установкой кодировки при монтировании сменных устройств.

Version exo 0.3.104, developers reporting us about resolving problem with code-page setup on mounting removable devices.

Russian

Анализ кода дал следующий результат:

    else if (strcmp (device->fsoptions[m], "umask=") == 0
                   && strcmp (fs, "ntfs-3g") == 0)
            {
              /* we need to pass umask=0077 to ntfs-g3 or else it gets 0777 perms */
              options[n++] = g_strdup ("umask=0077");
            }
          else if (strcmp (device->fsoptions[m], "iocharset=") == 0)
            {
              /* get the charset from a variable set by the user or glib */
              charset = g_getenv ("EXO_MOUNT_IOCHARSET");
              if (G_LIKELY (charset == NULL))
                if (g_get_charset (&charset))
                  charset = "utf8";

              if (G_LIKELY (charset != NULL && *charset != '<br/>0'))
                options[n++] = g_strdup_printf ("iocharset=%s", charset);
            }

Они так и не ушли от тупого жесткого указания опций в коде. Да, кодировку теперь можно указывать через переменную окружения, но как задать те опции монтирования, что не предусмотрели разработчики??? По сути это Alt’овци пропихнули свой патч. Теперь баг закроют, потому как проблема не будет наблюдаться, но сделано-то криво. Я расстроен.

PS как чуял неладное: перешел на openbox + pcmanfm + lxpanel (вариация на тему lxde).

PPS Если кто считает, что мой патч нужен - отзовитесь.

PPPS Если кто может перевести этот пост на английский язык - помогите пожалуйста.

English

Code analysis gave me following result:

    else if (strcmp (device->fsoptions[m], "umask=") == 0
                   && strcmp (fs, "ntfs-3g") == 0)
            {
              /* we need to pass umask=0077 to ntfs-g3 or else it gets 0777 perms */
              options[n++] = g_strdup ("umask=0077");
            }
          else if (strcmp (device->fsoptions[m], "iocharset=") == 0)
            {
              /* get the charset from a variable set by the user or glib */
              charset = g_getenv ("EXO_MOUNT_IOCHARSET");
              if (G_LIKELY (charset == NULL))
                if (g_get_charset (&charset))
                  charset = "utf8";

              if (G_LIKELY (charset != NULL && *charset != '<br/>0'))
                options[n++] = g_strdup_printf ("iocharset=%s", charset);
            }

Mount options are still hardcoded. Yeah, now we can choose code-page setting up environment variable. But how we can setup another mounting options? Now bug will be marked as fixed, but bugfix is horrible. I’m disappointed.

Tags: xfce

Генерация меню в IceWM Уважаю БГ!

comments powered by Disqus