At Thu, 11 Mar 2010 17:12:57 +0300,
Artem Chuprina wrote:
> Вот, собственно, и ответ.  Я так понимаю, что у gnome commander ноги
> растут все из того же mc.
> 
> Впрочем, насколько я представляю себе mc, у него хотя и есть
> противоестественный интеллект, но он обычно настраивается.  Копать
> туда.  Может, те, кто им пользуется, подскажут более конкретно.  Что
> до gnome commander, то если его делали так же, как все обычно делают
> к гному, то может и не настраиваться.

Я там покопался сейчас - по итогам обширной личной переписки с ориг. постером. 
Этот интеллект настраивается через vim edit/editcmd.c и никак иначе.

Для существующих файлов эта собака устраивает песни и пляски с mkstemp(),
поэтому ей приходится делать явный chmod(). А во имя экономии умственных усилий
такой же chmod() делается и при записи совершенно нового, с иголочки, файла,
для которого mkstemp ни к чему.

В общем, на всякий случай привожу, ткскзть, скетч патча. Вдруг кто соберётся 
доделать по-человечески и отправить куда следует.

diff -Naurd mc-4.7.0.1.old/edit/editcmd.c mc-4.7.0.1/edit/editcmd.c
--- mc-4.7.0.1.old/edit/editcmd.c       2009-12-30 21:58:49.000000000 +0300
+++ mc-4.7.0.1/edit/editcmd.c   2010-03-11 17:40:30.000000000 +0300
@@ -578,7 +578,9 @@
                        return 0;
                    }
                } else {
-                   edit->stat1.st_mode |= S_IWUSR;
+                   int um = umask(0);
+                   edit->stat1.st_mode |= S_IWUSR | S_IWOTH | S_IWGRP &~ um;
+                   umask(um);
                }
                save_lock = edit_lock_file (exp);
            } else {
@@ -1888,7 +1890,7 @@
 
     if ((file =
         mc_open (filename, O_CREAT | O_WRONLY | O_TRUNC,
-                 S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH | O_BINARY)) == -1)
+                 S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH | 
O_BINARY)) == -1)
        return 0;
 
     if (column_highlighting) {


--
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]
Archive: http://lists.debian.org/87vdd2q4pf.wl%[email protected]

Ответить