LINUX.ORG.RU

Midnight Commander 4.8.9


1

1

Релизнулась новая версия.

Нового немного, багфиксы в основном. Но вкусные багфиксы.

Например:
* заработала мыша в screen/tmux
* убран мусор из строки приглашения в сабшеле
* если жать всякие разные комбинации клавиш, то теперь не будет добавляться мусор в комстроку (но мусор остался, если нажать ESC, потом незнакомую комбинацию клавиш)
* заработал поиск по файлам со всеми кодировками
* в редакторе автодополнение не работало, если курсор был на первой строке
* в HEX-вьювере не работало продолжение поиска
* вылечен sftp на предмет постоянного спрашивания пароля, если в ~/.ssh/config был прописан алиас для хоста.
* редактор теперь может открывать файлы любого размера (раньше было ограничение в 64 метра).


Скачать можно отсюда: http://ftp.midnight-commander.org/?C=N;O=D

Список, что изменилось в релизе, тут: https://www.midnight-commander.org/wiki/NEWS-4.8.9

P.S. добавлена поддержка xorriso при просмотре ISO-образов. Чем это грозит: можно писать файлы прямо в образы (спасибо ananas за идею). Но есть одно «но»: там для каждой операции создаётся новая сессия в образе, а это оверхед. Поэтому всё-таки наверное не порекомендую так делать. Но если сильно надо, то можно :)

★★★★★

Последнее исправление: Slavaz (всего исправлений: 1)

файлы прямо в образы

Это хорошо

Deleted
()

с xorriso там лажа. я в лист патч кидал, на всякий случай здесь продублирую

--- mc-4.8.9/src/vfs/extfs/helpers/iso9660.in.orig      2013-07-09 15:41:49.000000000 +0300
+++ mc-4.8.9/src/vfs/extfs/helpers/iso9660.in   2013-07-11 13:37:51.731825416 +0300
@@ -39,11 +39,11 @@
     fi
     local dir attr ln usr gr sz dt1 dt2 dt3 nm len name
     dir="$2"
-    $XORRISO -dev stdio:"$1" -cd "$dir" -lsl 2> /dev/null | @GREP@ "^[-d]" | \
+    $XORRISO -dev stdio:"$1" -lsl "$dir" 2> /dev/null | @GREP@ "^[-d]" | \
     while read attr ln usr gr sz dt1 dt2 dt3 nm ; do
-        len=$((${#nm} - 2))
+        len=$((${#nm} - 1))
         name=$(printf "$nm" | cut -c2-$len)  # remove quotes
-        if test $(printf "$nm" | cut -c1-2) != "d"; then
+        if test $(printf "%s" "$attr" | cut -c1) != "d"; then
             printf "%s %s %s %s %s %s %s %s %s/%s\n" "$attr" "$ln" "$usr" "$gr" "$sz" "$dt1" "$dt2" "$dt3" "$dir" "$name"
         else
             xorriso_list "$1" "$dir/$name"
ananas ★★★★★
()

я лично не пользуюсь уже, но просто для ясности. помимо tmux, screen сущесвует еще dtach - более простой их аналог, название которого намекает на одну единственную в нем функцию. от этого не менее юзабельный и полезный. хотя вообще из-за небольшой популярности наверно не стоит его рассматривать, т.к. в dtach тот-же vim не работает. но просто если кому не лень, убедитесь, может в dtach теперь тоже мышка работает =)

Spoofing ★★★★★
()

заработал поиск по файлам со всеми кодировками

Ты можешь вкратце сказать что там было, и почему у меня всё и так работает?

Avail: 4.8.8-r2 Inst: 4.8.8-r2
+X +edit +gpm +mclib +nls +sftp +slang +spell +xdg -samba -test

ABW ★★★★★
()

Ура!

А то я сегодня днём уже волноваться начал: новый коммандер уже собрал, а новости всё ещё нет. :-)

UPD: И сразу имею багрепорт. При попытке подключиться по SFTP с неверным паролем mc крэшнулся.

om-nom-nimouse ★★
()
Последнее исправление: om-nom-nimouse (всего исправлений: 1)

Такую хорошую новость надо на главную !
Опять набегут любители сырой консоли и мышевозы, будут орать что ненужно ...

x905 ★★★★★
()
Ответ на: комментарий от x905

набегут любители сырой консоли и мышевозы, будут орать что ненужно ...

Я старый пользователь mc и тоже скажу - не нужно. mc стал песочницой для игр новой команды.

tailgunner ★★★★★
()
Ответ на: комментарий от akk

К сожалению, в новых релизах дистров идет уже новая версия.

tailgunner ★★★★★
()
Ответ на: комментарий от om-nom-nimouse

да, крэшится. Будем исправлять.

Slavaz ★★★★★
() автор топика
Ответ на: комментарий от tailgunner

Что конкретно не устраивает? Что хотелось бы видеть (или не хотелось бы видеть) в mc и почему?

Slavaz ★★★★★
() автор топика

Отлично, заценим.

pkurg ★★★★
()
Ответ на: комментарий от tailgunner

Мне хотелось бы получить назад кое-какие старые возможности - А где key emulation и Emacs?

да, это повод для багрепорта. Кейбиндинги для того и создавались, чтобы можно было их менять. если не работает, значит цель не выполнена.

И старое поведение редактора, когда выделение блока отключалось после C-Ins.

если честно, то я не припомню версию, после которой это поведение изменилось... не напомните, если не сложно?

P.S. И да, фраза «Я старый пользователь mc и тоже скажу - не нужно. mc стал песочницой для игр новой команды.» звучит резковато. Понимаю, что это на эмоциях: все мы люди, все мы человеки. Мы тоже :) Где-то допускаем ошибки и факапы, но не из сволочной натуры: тут вообще нет никого, кто считал бы себя сволочью. Я в том числе :) Если Ваш багрепорт или жалоба остался незамеченным, то это не значит, что это было специально. Мы всё же стараемся идти навстречу; конечно, не так, как в настоящем full-time техсаппорте, но, тем не менее, по мере сил и свободного времени. Не всегда получается красиво и как надо - это да.

Slavaz ★★★★★
() автор топика
Последнее исправление: Slavaz (всего исправлений: 1)
Ответ на: комментарий от Slavaz

Кейбиндинги для того и создавались, чтобы можно было их менять. если не работает

Сама галочка изменения кейбиндингов исчезла, так что с этой стороны всё чисто.

если честно, то я не припомню версию, после которой это поведение изменилось... не напомните, если не сложно?

Насколько я смог найти, оно изменилось вместе с исчезновением настройки раскладки - там сильно переделали редактор. По ссылке хеши ревизий, которые я нашел.

mc стал песочницой для игр новой команды.» звучит резковато

Когда годами работавшие моторные навыки внезапно перестают работать - это вызывает сильное раздражение.

Где-то допускаем ошибки и факапы, но не из сволочной натуры:

Никто не обвиняет вас в диверсии. Вы занимаетесь тем, что вам интересно, и выкладываете это в надежде, что это будет полезно другим. Но при этом вы выбрасываете то, что _уже_ было полезно другим.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

А, галочка... да исчезла, потому что сейчас mc может поддерживать значительно больше схем кейбиндингов (через запуск mc -K <схема> или в конфиге). Галочка стала совсем неактуальной, ибо захардкоденные схемы были вынесены во внешние файлы. По-хорошему там должен быть уже выпадающий список, а не галка.

если честно, то я не припомню версию, после которой это поведение изменилось... не напомните, если не сложно?

Насколько я смог найти, оно изменилось вместе с исчезновением настройки раскладки - там сильно переделали редактор. По ссылке хеши ревизий, которые я нашел.

Распишите тогда, какие действия вы совершаете, что ожидаете и что получается на самом деле. Потому что я пока слабо представляю, как mc мог повлиять на поведение по ctrl-ins. Насколько я знаю, этот хоткей перехватывается иксами и до консоли (соответственно, и до mc) просто не доходит. Или речь про голую консоль?

Когда годами работавшие моторные навыки внезапно перестают работать - это вызывает сильное раздражение.

ну... с моей колокольни, это просто небольшое раздражение (на уровне недовольно поморщиться) первую неделю-вторую. Я уже и не припомню, сколько таких «раздражениьицев» я перенёс между версиями дистрибутивов, DE, утилит. Всё течёт, меняется и развивается. Кстати говоря, мы прикладываем немало усилий, чтобы обеспечить обратную совместимость. Только недавно был выкинут код, который проверял есть ли в хомке mc.ini - когда-то в 95-х конфиг валялся там. Тащить постоянно из версии в версию legacy-код как-то не очень хочется, поэтому поведение потихоньку меняется.

Никто не обвиняет вас в диверсии. Вы занимаетесь тем, что вам интересно, и выкладываете это в надежде, что это будет полезно другим. Но при этом вы выбрасываете то, что _уже_ было полезно другим.

Ну как бы отрабатываем багрепорты/фичреквесты. То есть, делаем не то, что интересно только нам. По возможности не меняем старое поведение, но уж если меняем, то стараемся, чтобы это затронуло как можно меньшее количество пользователей. Вы как раз попали в это меньшинство: по поводу изменившегося поведения после ctrl-ins высказались только Вы...

Slavaz ★★★★★
() автор топика
Последнее исправление: Slavaz (всего исправлений: 1)
Ответ на: комментарий от Slavaz

Распишите тогда, какие действия вы совершаете, что ожидаете и что получается на самом деле.

В mc 4.6.2 я выделяю блок текста, нажимаю Ctrl-Ins, блок текста отправляется в буфер, а выделение блока снимается. В версии mc, идущей с Debian Wheezy, выделение блока не снимается после Ctrl-Ins; оно не снимается и после нажатия на клавишу передвижения курсора. Опция Persistent blocks (или как там она называется - сейчас Wheezy под рукой нет) отключена.

Насколько я знаю, этот хоткей перехватывается иксами и до консоли (соответственно, и до mc) просто не доходит

XTerm*VT100.translations: #override \
     s<Key>Insert: insert()

Работало лет десять.

По возможности не меняем старое поведение, но уж если меняем, то стараемся, чтобы это затронуло как можно меньшее количество пользователей. Вы как раз попали в это меньшинство

Я понимаю, что мне не повезло.

tailgunner ★★★★★
()

А когда вы смените дефолтную вырвиглазную расцветку на что-нибудь более современное? Скажем, серую гамму по типу лоровского танго.

fragmentor
()

Отлично, быстрофикс работает. Передавайте благодарность за отличный фикс отличного файлового менеджера. :-)

om-nom-nimouse ★★
()
Ответ на: комментарий от tailgunner

А не надо судить, надо попробовать, заработало или нет.

Поправил .config/mc/ini, секция Midnight-Commander, ключ keymap - в редакторе всё равно не работает; mc -K /etc/mc/mc.keymap.emacs тоже не помогает.

Потому что имя файла должно иметь суффикс .keymap. Если указывать имя без него, он допишется автоматически. Поэтому в случае /etc/mc/mc.keymap.emacs была попытка загрузить /etc/mc/mc.keymap.emacs.keymap. Естественно, такого файла не было, и использовалась дефолтовая раскладка.

anonymous
()
Ответ на: комментарий от fragmentor

Никогда. Большинство к ней привыкли. Меня лично она устраивает. Если вы хотите другую, у себя и меняйте.

anonymous
()
Ответ на: комментарий от anonymous

Это всё вообще не в тему. Я спрашивал когда авторы запилять нормальные цвета по дефолту, а не о том, как мне сделать нормальные цвета вручную.

fragmentor
()
Ответ на: комментарий от fragmentor

Очень жаль.

Меняйте себе в конфиге. В чём проблема?

Это дурная привычка.

«Привычка свыше нам дана, замена счастию она» (А. С. Пушкин).

anonymous
()
Ответ на: комментарий от anonymous

Просто для протокола - я отследил слом по изменениям исходников, он не имел отношения к переименованию файлов.

tailgunner ★★★★★
()
Ответ на: комментарий от fragmentor

Я не про скины говорю сейчас.

Про сайт, что ли? Или всё-таки про файл default.ini в папке скинов?

Не надо его менять. Самое то для KVM и прочих локальных терминалов. Чем патчить mc для пары сотен серверов я лучше настрою его как мне надо на паре своих локалхостов.

om-nom-nimouse ★★
()

Что-то сломали - на freebsd-9.1 не собирается...

file.c:2302: warning: 'return_status' may be used uninitialized in this function
  CC     filegui.lo
  CC     filenot.lo
  CC     fileopctx.lo
  CC     find.lo
  CC     hotlist.lo
  CC     info.lo
  CC     layout.lo
  CC     midnight.lo
  CC     mountlist.lo
mountlist.c: In function 'statvfs_works':
mountlist.c:380: error: invalid storage class for function 'free_mount_entry'
mountlist.c:380: warning: no previous prototype for 'free_mount_entry' [-Wmissing-prototypes]
mountlist.c:378: warning: ISO C90 forbids mixed declarations and code
mountlist.c:494: error: invalid storage class for function 'fsp_to_string'
mountlist.c:494: warning: no previous prototype for 'fsp_to_string' [-Wmissing-prototypes]
mountlist.c:596: error: invalid storage class for function 'read_file_system_list'
mountlist.c:596: warning: no previous prototype for 'read_file_system_list' [-Wmissing-prototypes]
mountlist.c: In function 'read_file_system_list':
mountlist.c:1150: warning: label 'free_then_fail' defined but not used
mountlist.c: In function 'statvfs_works':
mountlist.c:1349: error: invalid storage class for function 'get_fs_usage'
mountlist.c:1349: warning: no previous prototype for 'get_fs_usage' [-Wmissing-prototypes]
mountlist.c:1540: warning: no previous prototype for 'free_my_statfs' [-Wmissing-prototypes]
mountlist.c:1540: warning: declaration of 'free_my_statfs' shadows a global declaration [-Wshadow]
mountlist.h:39: warning: shadowed declaration is here [-Wshadow]
mountlist.c:1559: warning: no previous prototype for 'init_my_statfs' [-Wmissing-prototypes]
mountlist.c:1559: warning: declaration of 'init_my_statfs' shadows a global declaration [-Wshadow]
mountlist.h:37: warning: shadowed declaration is here [-Wshadow]
mountlist.c:1570: warning: no previous prototype for 'my_statfs' [-Wmissing-prototypes]
mountlist.c:1570: warning: declaration of 'my_statfs' shadows a global declaration [-Wshadow]
mountlist.h:38: warning: shadowed declaration is here [-Wshadow]
mountlist.c:1644: error: expected declaration or statement at end of input
gmake[3]: *** [mountlist.lo] Ошибка 1
gmake[3]: Выход из каталога `/usr/home/root/utils/mc/mc-4.8.9-git/mc-work/src/filemanager'
gmake[2]: *** [all-recursive] Ошибка 1
gmake[2]: Выход из каталога `/usr/home/root/utils/mc/mc-4.8.9-git/mc-work/src'
gmake[1]: *** [all-recursive] Ошибка 1
gmake[1]: Выход из каталога `/usr/home/root/utils/mc/mc-4.8.9-git/mc-work'
gmake: *** [all] Ошибка 2

При замене mountlist.c на прежний из 4.8.8 ошибка другая.

copying selected object files to avoid basename conflicts...
  CC     main.o
  CCLD   mc
/usr/local/lib/libslang.so: undefined reference to `tgetnum'
/usr/local/lib/libslang.so: undefined reference to `tgetent'
/usr/local/lib/libslang.so: undefined reference to `tgetstr'
/usr/local/lib/libslang.so: undefined reference to `tgetflag'
gmake[3]: *** [mc] Ошибка 1
gmake[3]: Выход из каталога `/usr/home/root/utils/mc/mc-4.8.9-git/mc-work/src'
gmake[2]: *** [all-recursive] Ошибка 1
gmake[2]: Выход из каталога `/usr/home/root/utils/mc/mc-4.8.9-git/mc-work/src'
gmake[1]: *** [all-recursive] Ошибка 1
gmake[1]: Выход из каталога `/usr/home/root/utils/mc/mc-4.8.9-git/mc-work'
gmake: *** [all] Ошибка 2

./configure без параметров

ose
()
Ответ на: комментарий от ose

Последнее значимое изменение в mountlist.c это 0013adeebae84f892a6fdd013e5d1530bb28292b. В препроцессоре mountlist.c чёрт ногу сломит, поэтому при переносе функций по недосмотру часть условий могла выпасть.

Откройте тикет на m-c.o, если не сложно.

anonymous
()
Ответ на: комментарий от anonymous

Там перенесли один препроцессорный блок в конец файла, зачем - фиг знает. Это ладно, это бог с ним, лечится возвратом старой версии mountlist.c.

А вот что со второй ошибкой делать? В системе установлена libslang2-2.2.4_4.

Тикет открыть сложно - во-первых, нет желания регистрироваться, во-вторых (а по значимости, во-первых ;-)), не шибко дружу с ангельским....

ose
()
Ответ на: комментарий от ose

А вот что со второй ошибкой делать? В системе установлена libslang2-2.2.4_4.

Этой?

/usr/local/lib/libslang.so: undefined reference to `tgetnum'
/usr/local/lib/libslang.so: undefined reference to `tgetent'
/usr/local/lib/libslang.so: undefined reference to `tgetstr'
/usr/local/lib/libslang.so: undefined reference to `tgetflag'
Это символы из libtinfo. По идее, если libslang их использует, то она должна быть слинкована с libtinfo. На всякий случай покажите вывод
make V=1

anonymous
()
Ответ на: комментарий от anonymous

Вопрос снят - сам дурак!

Забыл установить LDFLAGS...

Всё компилится.

ose
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.