1
1

Merge branch 'master' of ssh://styx@midnight-commander.org:22/git/mc

Этот коммит содержится в:
Mikhail S. Pobolovets 2010-04-04 13:46:58 +03:00
родитель 68bb7c20e3 9b41d62d0a
Коммит ae517852b0
34 изменённых файлов: 6519 добавлений и 5595 удалений

Просмотреть файл

@ -7,19 +7,15 @@
v v v mqv v v v mqu v v mj v v v mqv v v v mqu v v mj
qqqqqqCommander qj  qqqqqqCommander qj 
Ésta es la pantalla de inicio de la ayuda de Ésta es la pantalla de inicio de la ayuda de GNU Midnight Commander .
GNU Midnight Commander .
Puede pulsar la tecla IntroHow to use help para aprender a navegar por el Puede pulsar la tecla IntroHow to use help para aprender a navegar por el sistema de ayuda, o acceder directamente a los contenidosContents.
sistema de ayuda, o acceder directamente a los contenidosContents.
GNU Midnight Commander es obra de sus numerosos autoresAUTHORS. GNU Midnight Commander es obra de sus numerosos autoresAUTHORS.
GNU Midnight Commander NO INCLUYE NINGÚN TIPO DE GARANTÍAWarranty, GNU Midnight Commander NO INCLUYE NINGÚN TIPO DE GARANTÍAWarranty, es software libre, y se alienta su redistribución en los terminos y condiciones que están contenidos en la Licencia Pública General de GNU (GPL)Licencia GNU, de la que existe una traducción no oficial al españolLicencia GNU (Español).
es software libre, y se alienta su redistribución en los
terminos y condiciones que están contenidos en la Licencia [Licencia GNU]
Pública General de GNU (GPL)Licencia GNU, de la que existe una
traducción no oficial al españolLicencia GNU (Español).[Licencia GNU]
GNU GENERAL PUBLIC LICENSE GNU GENERAL PUBLIC LICENSE
Version 2, June 1991 Version 2, June 1991
@ -880,32 +876,22 @@ General de GNU para Bibliotecas en lugar de esta Licencia.
[QueryBox] [QueryBox]
Cuadros de diálogo Cuadros de diálogo
En los cuadros de diálogo puede desplazarse con el teclado En los cuadros de diálogo puede desplazarse con el teclado usando las flechas o las teclas de las letras resaltadas.
usando las flechas o las teclas de las letras resaltadas.
También se pueden pulsar los botones con el ratón. También se pueden pulsar los botones con el ratón.
[How to use help] [How to use help]
Uso de la ayuda Uso de la ayuda
Se pueden utilizar las flechas o el ratón para navegar Se pueden utilizar las flechas o el ratón para navegar por el sistema de ayuda.
por el sistema de ayuda.
La flecha de abajo cambia al siguiente elemento o baja. La flecha de abajo cambia al siguiente elemento o baja. La tecla de arriba vuelve al elemento anterior o sube. La tecla derecha sigue el enlace activo. La tecla izquierda vuelve a la última página visitada.
La tecla de arriba vuelve al elemento anterior o sube.
La tecla derecha sigue el enlace activo.
La tecla izquierda vuelve a la última página visitada.
Si el terminal no es compatible con las flechas de cursor Si el terminal no es compatible con las flechas de cursor se puede avanzar con la barra espaciadora y retroceder con la tecla b (back). El tabulador activa el elemento siguiente y con INTRO se puede entrar al enlace correspondiente. La tecla l (last) permite volver a la última página.
se puede avanzar con la barra espaciadora y retroceder con
la tecla b (back). El tabulador activa el elemento siguiente y
con INTRO se puede entrar al enlace correspondiente.
La tecla l (last) permite volver a la última página.
ESC pulsada dos veces permite salir de la ayuda. ESC pulsada dos veces permite salir de la ayuda.
El botón izquierdo del ratón avanza o sigue enlaces y el El botón izquierdo del ratón avanza o sigue enlaces y el botón derecho retrocede o vuelve a la última página.
botón derecho retrocede o vuelve a la última página.
La función de todas las teclas en la ayuda: La función de todas las teclas en la ayuda:

Просмотреть файл

@ -8,15 +8,11 @@
Ez a GNU Midnight Commander súgója. Ez a GNU Midnight Commander súgója.
Az interaktív súgó használatának megismeréséhez csak üss Az interaktív súgó használatának megismeréséhez csak üss egy entertHow to use help. Itt közvetlenül a súgó tartalomjegyzékébeContents juthatsz.
egy entertHow to use help. Itt közvetlenül a súgó tartalomjegyzékébeContents
juthatsz.
A Midnight Commander-t a következő szerzőkAUTHORS készítették. A Midnight Commander-t a következő szerzőkAUTHORS készítették.
A Midnight Commander mindenféle garanciaWarranty nélkül kerül A Midnight Commander mindenféle garanciaWarranty nélkül kerül kiadásra. Ez szabad szoftver, így továbbadhatod azt a Felhasználási engedélybenLicense meghatározott feltételekkel.
kiadásra. Ez szabad szoftver, így továbbadhatod azt a
Felhasználási engedélybenLicense meghatározott feltételekkel.
[License] [License]
Engedélyek Engedélyek
@ -438,34 +434,16 @@ Library General Public License instead of this License.
[QueryBox] [QueryBox]
Lekérdező box Lekérdező box
A lekérdező boxban kezeléséhez a nyíl billentyűket, a A lekérdező boxban kezeléséhez a nyíl billentyűket, a szövegrész elejének magadásást, vagy a gombokra történő egérkattintást használhatod.
szövegrész elejének magadásást, vagy a gombokra történő
egérkattintást használhatod.
[How to use help] [How to use help]
Hogyan használjuk a súgót Hogyan használjuk a súgót
A súgóban a navigációhoz a billentyűzet gombjait és az A súgóban a navigációhoz a billentyűzet gombjait és az egér gombjait is használhatod. A lefelé mutató nyíl lenyomására a következő bejegyzésre ugorhatsz, vagy legördítheted azt. A felfelé mutató nyíl lenyomására ez előző bejegyzésre ugorhatsz, vagy felhúzhatod azt. A jobbra mutató nyíl lenyomására a linknek megfelelő címre lép. A balra mutató nyíl lenyomására az előzőleg meglátogatott címre lépsz vissza.
egér gombjait is használhatod. A lefelé mutató nyíl
lenyomására a következő bejegyzésre ugorhatsz, vagy
legördítheted azt. A felfelé mutató nyíl lenyomására
ez előző bejegyzésre ugorhatsz, vagy felhúzhatod azt.
A jobbra mutató nyíl lenyomására a linknek megfelelő
címre lép. A balra mutató nyíl lenyomására az előzőleg
meglátogatott címre lépsz vissza.
Ha az általad használt terminál nem támogatja a kurzor Ha az általad használt terminál nem támogatja a kurzor gombok használatát, használd a szóköz billentyűt az előre lépésre, a 'b' gombot a visszalépésre. Használd a TAB gombot a következő bejegyzésre való ugráshoz és az ENTER-t a jelenlegi link által megadott címre történő lépéshez. Az 'l' (last=utolsó) gombot az előzőleg látogatott oldalra való visszalépésre használhatod. Az ESC lenyomásával kiléphetsz a Súgóból.
gombok használatát, használd a szóköz billentyűt az
előre lépésre, a 'b' gombot a visszalépésre. Használd a
TAB gombot a következő bejegyzésre való ugráshoz és az
ENTER-t a jelenlegi link által megadott címre történő
lépéshez. Az 'l' (last=utolsó) gombot az előzőleg
látogatott oldalra való visszalépésre használhatod. Az
ESC lenyomásával kiléphetsz a Súgóból.
A bal egérgomb lenyomásával követheted a linket, vagy A bal egérgomb lenyomásával követheted a linket, vagy gördíthetsz. A jobb gomb lenyomásával visszatérhetsz az előzőleg látogatott pontra.
gördíthetsz. A jobb gomb lenyomásával visszatérhetsz az
előzőleg látogatott pontra.
A Súgóban használható összes gomb listája: A Súgóban használható összes gomb listája:

Просмотреть файл

@ -7,18 +7,15 @@
v v v mqv v v v mqu v v mj v v v mqv v v v mqu v v mj
qqqqqqCommander qj  qqqqqqCommander qj 
Questa è la principale schermata della guida interattiva Questa è la principale schermata della guida interattiva del GNU Midnight Commander .
del GNU Midnight Commander .
Per saperne di più su come usare la guida interattiva, premere Per saperne di più su come usare la guida interattiva, premere semplicemente invioHow to use help. Se lo si desidera, è possibile consultare direttamente il sommarioContents della guida.
semplicemente invioHow to use help. Se lo si desidera, è possibile
consultare direttamente il sommarioContents della guida.
Il Midnight Commander è stato scritto dai suoi autoriAUTHORS. Il Midnight Commander è stato scritto dai suoi autoriAUTHORS.
Il Midnight Commander NON E' COPERTO DA ALCUNA GARANZIAWarranty. Il Midnight Commander NON E' COPERTO DA ALCUNA GARANZIAWarranty. Questo è software libero, lo si può ridistribuire sotto certe condizioniLicenza.
Questo è software libero, lo si può ridistribuire sotto
certe condizioniLicenza.[Licenza] [Licenza]
GNU GENERAL PUBLIC LICENSE GNU GENERAL PUBLIC LICENSE
Version 2, June 1991 Version 2, June 1991
@ -432,38 +429,18 @@ Library General Public License instead of this License.
[QueryBox] [QueryBox]
Finestre di dialogo di richiesta dati Finestre di dialogo di richiesta dati
Nelle finestre di dialogo di richiesta dati è possibile Nelle finestre di dialogo di richiesta dati è possibile usare i tasti freccia o la prima lettera per selezionare una voce o cliccare con il mouse sul bottone.
usare i tasti freccia o la prima lettera per selezionare
una voce o cliccare con il mouse sul bottone.
[How to use help] [How to use help]
Come usare la guida interattiva Come usare la guida interattiva
Usare i tasti del cursore o il mouse per navigare Usare i tasti del cursore o il mouse per navigare nel visualizzatore della guida.
nel visualizzatore della guida.
Premere freccia in giù per spostarsi alla voce Premere freccia in giù per spostarsi alla voce successiva o per spostarsi in basso. Premere freccia in su per spostarsi alla voce precedente o per spostarsi in alto. Premere freccia a destra per seguire il collegamento corrente. Premere freccia a sinistra per tornare indietro nello storico dei nodi visitati.
successiva o per spostarsi in basso.
Premere freccia in su per spostarsi alla voce
precedente o per spostarsi in alto.
Premere freccia a destra per seguire il collegamento
corrente.
Premere freccia a sinistra per tornare indietro nello
storico dei nodi visitati.
Se il terminale non supporta i tasti del cursore si può Se il terminale non supporta i tasti del cursore si può usare la barra spaziatrice per spostarsi in avanti ed il tasto 'b' per tornare indietro. Usare il tasto TAB per spostarsi sulla prossima voce e premere INVIO per seguire il collegamento corrente. Usare il tasto 'l' per tornare indietro nello storico dei nodi visitati. Premere ESC per uscire dal visualizzatore della guida.
usare la barra spaziatrice per spostarsi in avanti
ed il tasto 'b' per tornare indietro. Usare il tasto
TAB per spostarsi sulla prossima voce e premere
INVIO per seguire il collegamento corrente. Usare il
tasto 'l' per tornare indietro nello storico dei nodi
visitati.
Premere ESC per uscire dal visualizzatore della guida.
Il tasto sinistro del mouse segue il collegamento Il tasto sinistro del mouse segue il collegamento o sfoglia le pagine. Il tasto destro del mouse torna indietro nello storico dei nodi visitati.
o sfoglia le pagine.
Il tasto destro del mouse torna indietro nello storico
dei nodi visitati.
Elenco completo dei tasti del visualizzatore della guida: Elenco completo dei tasti del visualizzatore della guida:

Просмотреть файл

@ -9,17 +9,13 @@
Główny ekran pomocy programu GNU Midnight Commander . Główny ekran pomocy programu GNU Midnight Commander .
Aby dowiedzieć się, jak używać interaktywnej pomocy, Aby dowiedzieć się, jak używać interaktywnej pomocy, należy nacisnąć klawisz EnterHow to use help. Można też przejść bezpośrednio do spisu treściContents.
należy nacisnąć klawisz EnterHow to use help. Można też
przejść bezpośrednio do spisu treściContents.
Program GNU Midnight Commander został napisany przez jego Program GNU Midnight Commander został napisany przez jego autorówAUTHORS.
autorówAUTHORS.
Program GNU Midnight Commander jest dostarczany BEZ Program GNU Midnight Commander jest dostarczany BEZ JAKIEJKOLWIEK GWARANCJIWarranty. Niniejszy program jest wolnym oprogramowaniem; można go rozprowadzać dalej na warunkach GNU General Public LicenseLicense.
JAKIEJKOLWIEK GWARANCJIWarranty. Niniejszy program jest
wolnym oprogramowaniem; można go rozprowadzać dalej na [License]
warunkach GNU General Public LicenseLicense.[License]
GNU GENERAL PUBLIC LICENSE GNU GENERAL PUBLIC LICENSE
Version 2, June 1991 Version 2, June 1991
@ -433,32 +429,16 @@ Library General Public License instead of this License.
[QueryBox] [QueryBox]
Okna zapytań Okna zapytań
W oknach dialogowych zapytań można używać klawiszy W oknach dialogowych zapytań można używać klawiszy strzałek lub pierwszych liter, aby wybrać element albo kliknąć na przycisku.
strzałek lub pierwszych liter, aby wybrać element albo
kliknąć na przycisku.
[How to use help] [How to use help]
Jak używać pomocy Jak używać pomocy
Do obsługi przeglądarki można używać klawiszy kursora lub Do obsługi przeglądarki można używać klawiszy kursora lub myszy. Naciśnięcie strzałki w dół przeniesie do następnego elementu lub przewinie w dół. Naciśnięcie strzałki w górę przeniesie do poprzedniego elementu lub przewinie w górę, Naciśnięcie strzałki w prawo podąży za zaznaczonym odnośnikiem. Naciśnięcie strzałki w lewo powróci do poprzednio odwiedzonego węzła.
myszy. Naciśnięcie strzałki w dół przeniesie do następnego
elementu lub przewinie w dół. Naciśnięcie strzałki w górę
przeniesie do poprzedniego elementu lub przewinie w górę,
Naciśnięcie strzałki w prawo podąży za zaznaczonym
odnośnikiem. Naciśnięcie strzałki w lewo powróci do
poprzednio odwiedzonego węzła.
Jeśli terminal nie obsługuje klawiszy kursora, można używać Jeśli terminal nie obsługuje klawiszy kursora, można używać spacji do przewijania do przodu i klawisz B , aby przewijać do tyłu. Można używać klawisza Tab , aby przechodzić do następnego elementu i klawisza Enter , aby podążyć za zaznaczonym odnośnikiem. Klawisz L może być używany do przechodzenia do poprzednio odwiedzonego węzła. Naciśnięcie klawisza Esc zakończy przeglądarkę pomocy.
spacji do przewijania do przodu i klawisz B , aby przewijać
do tyłu. Można używać klawisza Tab , aby przechodzić do
następnego elementu i klawisza Enter , aby podążyć za
zaznaczonym odnośnikiem. Klawisz L może być używany do
przechodzenia do poprzednio odwiedzonego węzła.
Naciśnięcie klawisza Esc zakończy przeglądarkę pomocy.
Lewy przycisk myszy podąży za odnośnikiem lub przewinie Lewy przycisk myszy podąży za odnośnikiem lub przewinie ekran. Prawy przycisk myszy może być używany, aby przechodzić do poprzednio odwiedzonego węzła.
ekran. Prawy przycisk myszy może być używany, aby
przechodzić do poprzednio odwiedzonego węzła.
Pełna lista klawiszy przeglądarki pomocy: Pełna lista klawiszy przeglądarki pomocy:

Просмотреть файл

@ -6,19 +6,15 @@
v v v mqv v v v mqu v v mj v v v mqv v v v mqu v v mj
qqqqqqCommander qj  qqqqqqCommander qj 
Вы сейчас видите главное окно интерактивной подсказки Вы сейчас видите главное окно интерактивной подсказки программы GNU Midnight Commander .
программы GNU Midnight Commander .
Чтобы узнать, как пользоваться подсказкой, нажмите клавишу Чтобы узнать, как пользоваться подсказкой, нажмите клавишу EnterHow to use help, иначе переходите к перечню разделовContents подсказки.
EnterHow to use help, иначе переходите к перечню разделовContents подсказки.
Программа Midnight Commander поставляется АБСОЛЮТНО БЕЗ Программа Midnight Commander поставляется АБСОЛЮТНО БЕЗ ВСЯКИХ ГАРАНТИЙГарантия. Это свободно распространяемое программное обеспечение, созданное группой авторовAUTHORS. Вы можете передавать его другим при условии соблюдения требований лицензии GNUЛицензия (оригинал на английском) (прочитайте неофициальный переводЛицензия этой лицензии).
ВСЯКИХ ГАРАНТИЙГарантия. Это свободно распространяемое программное
обеспечение, созданное группой авторовAUTHORS. Вы можете передавать
его другим при условии соблюдения требований лицензии GNUЛицензия (оригинал на английском)
(прочитайте неофициальный переводЛицензия этой лицензии).
Русский перевод текста подсказки - Костромин В.А., 1999 г.[Лицензия (оригинал на английском)] Русский перевод текста подсказки - Костромин В.А., 1999 г.
[Лицензия (оригинал на английском)]
GNU GENERAL PUBLIC LICENSE GNU GENERAL PUBLIC LICENSE
Version 2, June 1991 Version 2, June 1991
@ -843,50 +839,21 @@ Gnomovision поставляется АБСОЛЮТНО БЕЗ КАКИХ-ЛИБ
[QueryBox] [QueryBox]
Диалоговые окна запросов Диалоговые окна запросов
В окнах запросов для выбора какого-либо варианта ответа В окнах запросов для выбора какого-либо варианта ответа (которые обычно задаются в виде экранных кнопок) Вы можете использовать либо клавиши со стрелками, либо выбрать ответ путем нажатия клавиши с выделенной в названии кнопки буквой, либо щелкнув по нужной кнопке мышкой.
(которые обычно задаются в виде экранных кнопок) Вы можете
использовать либо клавиши со стрелками, либо выбрать ответ
путем нажатия клавиши с выделенной в названии кнопки
буквой, либо щелкнув по нужной кнопке мышкой.
[How to use help] [How to use help]
Как пользоваться помощью Как пользоваться помощью
При работе с программой Midnight Commander практически в При работе с программой Midnight Commander практически в любой момент можно обратиться к интерактивной подсказке, вызов которой осуществляется нажатием клавиши F1. Для перемещения в окне просмотра подсказки Вы можете использовать клавиши перемещения курсора (стрелки) или мышь. Стрелка вниз вызывает переход к следующей ссылке (выделены голубым фоном) или сдвиг текста на одну строку вверх. Стрелка вверх вызывает переход к предыдущей ссылке или сдвиг текста на одну строку вверх. Стрелка вправо вызывает переход по ссылке, которая в данный момент выделена синим фоном (текущая ссылка). По стрелке влево происходит переход к ранее просмотренным разделам подсказки.
любой момент можно обратиться к интерактивной подсказке,
вызов которой осуществляется нажатием клавиши F1. Для
перемещения в окне просмотра подсказки Вы можете
использовать клавиши перемещения курсора (стрелки) или
мышь. Стрелка вниз вызывает переход к следующей ссылке
(выделены голубым фоном) или сдвиг текста на одну строку
вверх. Стрелка вверх вызывает переход к предыдущей ссылке
или сдвиг текста на одну строку вверх. Стрелка вправо
вызывает переход по ссылке, которая в данный момент
выделена синим фоном (текущая ссылка). По стрелке влево
происходит переход к ранее просмотренным разделам
подсказки.
Если Ваш терминал не поддерживает клавиши-стрелки, Вы Если Ваш терминал не поддерживает клавиши-стрелки, Вы можете использовать клавишу пробела для перехода к следующей странице подсказки и клавишу 'b' для перехода к предыдущей странице. Клавиша TAB вызывает переход к следующей ссылке, а нажатие ENTER - переход по текущей ссылке. При просмотре подсказки программа запоминает последовательность переходов по ссылкам и позволяет вернуться к ранее просмотренным разделам, воспользовавшись клавишей 'l' (last). Нажатие на ESC вызывает выход из окна подсказки.
можете использовать клавишу пробела для перехода к
следующей странице подсказки и клавишу 'b' для перехода к
предыдущей странице. Клавиша TAB вызывает переход к
следующей ссылке, а нажатие ENTER - переход по текущей
ссылке. При просмотре подсказки программа запоминает
последовательность переходов по ссылкам и позволяет
вернуться к ранее просмотренным разделам, воспользовавшись
клавишей 'l' (last). Нажатие на ESC вызывает выход из окна
подсказки.
По щелчку левой клавиши мыши происходит переход по ссылке По щелчку левой клавиши мыши происходит переход по ссылке или перемещение по тексту подсказки. Щелчок правой кнопкой мыши используется для переход к ранее просмотренным разделам.
или перемещение по тексту подсказки. Щелчок правой кнопкой
мыши используется для переход к ранее просмотренным
разделам.
Полный список управляющих комбинаций для окна просмотра Полный список управляющих комбинаций для окна просмотра подсказки:
подсказки:
Работают все клавиши управления перемещениемGeneral Movement Keys. Работают все клавиши управления перемещениемGeneral Movement Keys.
tab Переход на следующую ссылку. tab Переход на следующую ссылку.
M-tab Переход на предыдущую ссылку. M-tab Переход на предыдущую ссылку.

Просмотреть файл

@ -10,20 +10,14 @@
Ово је главни екран помоћи за ГНУ-овог поноћног наредника . Ово је главни екран помоћи за ГНУ-овог поноћног наредника .
Да бисте сазнали више о томе како да користите интерактивни Да бисте сазнали више о томе како да користите интерактивни систем помоћи потребно је да притиснете EnterHow to use help. Можете и одмах отићи на садржајContents помоћи.
систем помоћи потребно је да притиснете EnterHow to use help.
Можете и одмах отићи на садржајContents помоћи.
ГНУ-овог поноћног наредника су написали његови ауториAUTHORS. ГНУ-овог поноћног наредника су написали његови ауториAUTHORS.
ГНУ-ов поноћни наредник се испоручује БЕЗ ИКАКВЕ ГАРАНЦИЈЕWarranty. ГНУ-ов поноћни наредник се испоручује БЕЗ ИКАКВЕ ГАРАНЦИЈЕWarranty. Ово је слободни софтвер, а ви сте позвани да га расподелите под одредбама ГНУ-ове опште јавне лиценцеЛиценца (оригинал на енглеском). Погледајте и незваничан превод ГНУ-ове ОЈЛ на српскиЛиценца (на српском).
Ово је слободни софтвер, а ви сте позвани да га
расподелите под одредбама ГНУ-ове опште јавне лиценцеЛиценца (оригинал на енглеском). Превод Поноћног наредника и ове датотеке помоћи на српски: Страхиња Радић, <mr99164@alas.matf.bg.ac.yu > СРД `Уликс', http://uliks.sourceforge.net
Погледајте и незваничан превод ГНУ-ове ОЈЛ на српскиЛиценца (на српском).
Превод Поноћног наредника и ове датотеке помоћи на српски:
Страхиња Радић, <mr99164@alas.matf.bg.ac.yu >
СРД `Уликс', http://uliks.sourceforge.net
[Лиценца (оригинал на енглеском)] [Лиценца (оригинал на енглеском)]
GNU GENERAL PUBLIC LICENSE GNU GENERAL PUBLIC LICENSE
@ -883,35 +877,16 @@ Library General Public License instead of this License.
[QueryBox] [QueryBox]
Прозори упита Прозори упита
У дијалозима упита можете да користите тастере са У дијалозима упита можете да користите тастере са стрелицама или прво слово да бисте изабрали ставку или можете да притиснете дугме миша када се показивач налази изнад дугмета на екрану.
стрелицама или прво слово да бисте изабрали ставку или
можете да притиснете дугме миша када се показивач налази
изнад дугмета на екрану.
[How to use help] [How to use help]
Како користити помоћ Како користити помоћ
Можете да користите курсорске тастере да бисте се кретали Можете да користите курсорске тастере да бисте се кретали у оквиру прегледача помоћи. Притисните стрелицу надоле да бисте се померили на следећу ставку или клизали надоле. Притисните стрелицу нагоре да бисте се померили на претходну ставку или клизали нагоре. Притисните стрелицу надесно да бисте пратили текућу везу. Притисните стрелицу налево да бисте се вратили уназад у оквиру историје посећених чворова.
у оквиру прегледача помоћи. Притисните стрелицу надоле
да бисте се померили на следећу ставку или клизали надоле.
Притисните стрелицу нагоре да бисте се померили на
претходну ставку или клизали нагоре. Притисните стрелицу
надесно да бисте пратили текућу везу. Притисните
стрелицу налево да бисте се вратили уназад у оквиру
историје посећених чворова.
Ако ваш терминал не подржава курсорске тастере, можете да Ако ваш терминал не подржава курсорске тастере, можете да користите размакницу да бисте клизали унапред и b (латинично б) да бисте клизали уназад. Користите тастер TAB да бисте прешли на следећу ставку а ENTER да бисте пратили текућу везу. Тастер l (латинично л) се може користити за враћање уназад у историји чворова које сте посетили. Притисните тастер ESC да бисте изашли из прегледача помоћи.
користите размакницу да бисте клизали унапред и b
(латинично б) да бисте клизали уназад. Користите тастер
TAB да бисте прешли на следећу ставку а ENTER да
бисте пратили текућу везу. Тастер l (латинично л) се
може користити за враћање уназад у историји чворова које
сте посетили. Притисните тастер ESC да бисте изашли из
прегледача помоћи.
Притиском на лево дугме миша ћете пратити везу или Притиском на лево дугме миша ћете пратити везу или клизати. Притиском на десно дугме миша ћете се враћати уназад у историји чворова.
клизати. Притиском на десно дугме миша ћете се враћати
уназад у историји чворова.
Потпун списак тастера прегледача помоћи: Потпун списак тастера прегледача помоћи:

Просмотреть файл

@ -9,15 +9,13 @@
This is the main help screen for GNU Midnight Commander . This is the main help screen for GNU Midnight Commander .
To learn more on how to use the interactive help facility To learn more on how to use the interactive help facility just press EnterHow to use help. You may want to go directly to the help contentsContents.
just press EnterHow to use help. You may want to go directly to the help
contentsContents.
GNU Midnight Commander is written by its authorsAUTHORS. GNU Midnight Commander is written by its authorsAUTHORS.
GNU Midnight Commander comes with ABSOLUTELY NO WARRANTYWarranty. GNU Midnight Commander comes with ABSOLUTELY NO WARRANTYWarranty. This is free software, and you are welcome to redistribute it under terms of GNU General Public LicenseLicense.
This is free software, and you are welcome to redistribute
it under terms of GNU General Public LicenseLicense.[License] [License]
GNU GENERAL PUBLIC LICENSE GNU GENERAL PUBLIC LICENSE
Version 2, June 1991 Version 2, June 1991
@ -431,30 +429,16 @@ Library General Public License instead of this License.
[QueryBox] [QueryBox]
Query boxes Query boxes
In the query dialog box you can use the arrow keys or the In the query dialog box you can use the arrow keys or the first letter to select an item or click with the mouse on the button.
first letter to select an item or click with the mouse on
the button.
[How to use help] [How to use help]
How to use help How to use help
You can use the cursor keys or mouse to navigate in the You can use the cursor keys or mouse to navigate in the help viewer. Press down arrow to move to the next item or scroll down. Press up arrow to move to the previous item or scroll up. Press right arrow to follow the current link. Press left arrow to go back in the history of nodes that you have visited.
help viewer. Press down arrow to move to the next item or
scroll down. Press up arrow to move to the previous item
or scroll up. Press right arrow to follow the current
link. Press left arrow to go back in the history of nodes
that you have visited.
If you terminal doesn't support the cursor keys you can If you terminal doesn't support the cursor keys you can use the space bar to scroll forward and the b (back) key scroll back. Use the TAB key to move to the next item and press ENTER to follow the current link. The l (last) key can be used to go back in the history of nodes you have visited. Press ESC to exit the help viewer.
use the space bar to scroll forward and the b (back) key
scroll back. Use the TAB key to move to the next item and
press ENTER to follow the current link. The l (last) key
can be used to go back in the history of nodes you have
visited. Press ESC to exit the help viewer.
The left mouse button will follow the link or scroll. The The left mouse button will follow the link or scroll. The right mouse button can be used to go back in the history of nodes.
right mouse button can be used to go back in the history
of nodes.
The full key list of the help viewer: The full key list of the help viewer:

Просмотреть файл

@ -23,10 +23,10 @@
#include <sys/stat.h> #include <sys/stat.h>
#include <unistd.h> #include <unistd.h>
#include <fcntl.h> #include <fcntl.h>
#include <errno.h> /* extern int errno */ #include <errno.h> /* extern int errno */
#include "lib/global.h" #include "lib/global.h"
#include "lib/vfs/mc-vfs/vfs.h" /* mc_stat */ #include "lib/vfs/mc-vfs/vfs.h" /* mc_stat */
#include "lib/mcconfig.h" #include "lib/mcconfig.h"
/*** global variables **************************************************/ /*** global variables **************************************************/
@ -44,8 +44,7 @@ mc_config_t *mc_panels_config;
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
static gboolean static gboolean
mc_config_new_or_override_file (mc_config_t * mc_config, const gchar * ini_path, mc_config_new_or_override_file (mc_config_t * mc_config, const gchar * ini_path, GError ** error)
GError **error)
{ {
gchar *data, *written_data; gchar *data, *written_data;
gsize len, total_written; gsize len, total_written;
@ -54,7 +53,8 @@ mc_config_new_or_override_file (mc_config_t * mc_config, const gchar * ini_path,
ssize_t cur_written; ssize_t cur_written;
data = g_key_file_to_data (mc_config->handle, &len, NULL); data = g_key_file_to_data (mc_config->handle, &len, NULL);
if (!exist_file (ini_path)) { if (!exist_file (ini_path))
{
ret = g_file_set_contents (ini_path, data, len, error); ret = g_file_set_contents (ini_path, data, len, error);
g_free (data); g_free (data);
return ret; return ret;
@ -62,9 +62,12 @@ mc_config_new_or_override_file (mc_config_t * mc_config, const gchar * ini_path,
mc_util_make_backup_if_possible (ini_path, "~"); mc_util_make_backup_if_possible (ini_path, "~");
fd = mc_open (ini_path, O_WRONLY | O_TRUNC | O_SYNC, 0); fd = mc_open (ini_path, O_WRONLY | O_TRUNC | O_SYNC, 0);
if (fd == -1) { if (fd == -1)
g_propagate_error (error, g_error_new (mc_main_error_quark() ,0, "%s", unix_error_string (errno))); {
g_free(data); g_propagate_error (error,
g_error_new (mc_main_error_quark (), 0, "%s",
unix_error_string (errno)));
g_free (data);
return FALSE; return FALSE;
} }
@ -74,9 +77,12 @@ mc_config_new_or_override_file (mc_config_t * mc_config, const gchar * ini_path,
mc_close (fd); mc_close (fd);
g_free (data); g_free (data);
if (cur_written == -1) { if (cur_written == -1)
{
mc_util_restore_from_backup_if_possible (ini_path, "~"); mc_util_restore_from_backup_if_possible (ini_path, "~");
g_propagate_error (error, g_error_new (mc_main_error_quark() ,0, "%s", unix_error_string (errno))); g_propagate_error (error,
g_error_new (mc_main_error_quark (), 0, "%s",
unix_error_string (errno)));
return FALSE; return FALSE;
} }
@ -100,15 +106,18 @@ mc_config_init (const gchar * ini_path)
return NULL; return NULL;
mc_config->handle = g_key_file_new (); mc_config->handle = g_key_file_new ();
if (mc_config->handle == NULL) { if (mc_config->handle == NULL)
{
g_free (mc_config); g_free (mc_config);
return NULL; return NULL;
} }
if (!ini_path || !exist_file (ini_path)) { if (!ini_path || !exist_file (ini_path))
{
return mc_config; return mc_config;
} }
if (!mc_stat (ini_path, &st) && st.st_size) { if (!mc_stat (ini_path, &st) && st.st_size)
{
/* file present and not empty */ /* file present and not empty */
g_key_file_load_from_file (mc_config->handle, ini_path, G_KEY_FILE_KEEP_COMMENTS, NULL); g_key_file_load_from_file (mc_config->handle, ini_path, G_KEY_FILE_KEEP_COMMENTS, NULL);
} }
@ -195,7 +204,8 @@ mc_config_read_file (mc_config_t * mc_config, const gchar * ini_path)
gchar **keys, **curr_key; gchar **keys, **curr_key;
gchar *value; gchar *value;
if (mc_config == NULL) { if (mc_config == NULL)
{
return FALSE; return FALSE;
} }
@ -206,11 +216,16 @@ mc_config_read_file (mc_config_t * mc_config, const gchar * ini_path)
groups = mc_config_get_groups (tmp_config, NULL); groups = mc_config_get_groups (tmp_config, NULL);
if (groups == NULL) if (groups == NULL)
{
mc_config_deinit (tmp_config);
return FALSE; return FALSE;
}
for (curr_grp = groups; *curr_grp != NULL; curr_grp++) { for (curr_grp = groups; *curr_grp != NULL; curr_grp++)
{
keys = mc_config_get_keys (tmp_config, *curr_grp, NULL); keys = mc_config_get_keys (tmp_config, *curr_grp, NULL);
for (curr_key = keys; *curr_key != NULL; curr_key++) { for (curr_key = keys; *curr_key != NULL; curr_key++)
{
value = g_key_file_get_value (tmp_config->handle, *curr_grp, *curr_key, NULL); value = g_key_file_get_value (tmp_config->handle, *curr_grp, *curr_key, NULL);
if (value == NULL) if (value == NULL)
continue; continue;
@ -228,9 +243,10 @@ mc_config_read_file (mc_config_t * mc_config, const gchar * ini_path)
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
gboolean gboolean
mc_config_save_file (mc_config_t * mc_config, GError **error) mc_config_save_file (mc_config_t * mc_config, GError ** error)
{ {
if (mc_config == NULL || mc_config->ini_path == NULL) { if (mc_config == NULL || mc_config->ini_path == NULL)
{
return FALSE; return FALSE;
} }
return mc_config_new_or_override_file (mc_config, mc_config->ini_path, error); return mc_config_new_or_override_file (mc_config, mc_config->ini_path, error);
@ -239,10 +255,10 @@ mc_config_save_file (mc_config_t * mc_config, GError **error)
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
gboolean gboolean
mc_config_save_to_file (mc_config_t * mc_config, const gchar * ini_path, GError **error) mc_config_save_to_file (mc_config_t * mc_config, const gchar * ini_path, GError ** error)
{ {
if (mc_config == NULL)
if (mc_config == NULL) { {
return FALSE; return FALSE;
} }
return mc_config_new_or_override_file (mc_config, ini_path, error); return mc_config_new_or_override_file (mc_config, ini_path, error);

Просмотреть файл

@ -44,7 +44,8 @@
/*** file scope type declarations ****************************************************************/ /*** file scope type declarations ****************************************************************/
typedef enum { typedef enum
{
REPLACE_T_NO_TRANSFORM = 0, REPLACE_T_NO_TRANSFORM = 0,
REPLACE_T_UPP_TRANSFORM_CHAR = 1, REPLACE_T_UPP_TRANSFORM_CHAR = 1,
REPLACE_T_LOW_TRANSFORM_CHAR = 2, REPLACE_T_LOW_TRANSFORM_CHAR = 2,
@ -81,18 +82,24 @@ mc_search__regex_str_append_if_special (GString * copy_to, GString * regex_str,
tmp_regex_str = &(regex_str->str[*offset]); tmp_regex_str = &(regex_str->str[*offset]);
while (*spec_chr) { while (*spec_chr)
{
spec_chr_len = strlen (*spec_chr); spec_chr_len = strlen (*spec_chr);
if (!strncmp (tmp_regex_str, *spec_chr, spec_chr_len)) { if (!strncmp (tmp_regex_str, *spec_chr, spec_chr_len))
if (!strutils_is_char_escaped (regex_str->str, tmp_regex_str)) { {
if (!strncmp ("\\x", *spec_chr, spec_chr_len)) { if (!strutils_is_char_escaped (regex_str->str, tmp_regex_str))
if (*(tmp_regex_str + spec_chr_len) == '{') { {
if (!strncmp ("\\x", *spec_chr, spec_chr_len))
{
if (*(tmp_regex_str + spec_chr_len) == '{')
{
while ((spec_chr_len < regex_str->len - *offset) while ((spec_chr_len < regex_str->len - *offset)
&& *(tmp_regex_str + spec_chr_len) != '}') && *(tmp_regex_str + spec_chr_len) != '}')
spec_chr_len++; spec_chr_len++;
if (*(tmp_regex_str + spec_chr_len) == '}') if (*(tmp_regex_str + spec_chr_len) == '}')
spec_chr_len++; spec_chr_len++;
} else }
else
spec_chr_len += 2; spec_chr_len += 2;
} }
g_string_append_len (copy_to, tmp_regex_str, spec_chr_len); g_string_append_len (copy_to, tmp_regex_str, spec_chr_len);
@ -118,16 +125,20 @@ mc_search__cond_struct_new_regex_hex_add (const char *charset, GString * str_to,
upp = mc_search__toupper_case_str (charset, one_char, str_len); upp = mc_search__toupper_case_str (charset, one_char, str_len);
low = mc_search__tolower_case_str (charset, one_char, str_len); low = mc_search__tolower_case_str (charset, one_char, str_len);
for (loop = 0; loop < upp->len; loop++) { for (loop = 0; loop < upp->len; loop++)
{
if (loop < low->len) { if (loop < low->len)
{
if (upp->str[loop] == low->str[loop]) if (upp->str[loop] == low->str[loop])
tmp_str = g_strdup_printf ("\\x%02X", (unsigned char) upp->str[loop]); tmp_str = g_strdup_printf ("\\x%02X", (unsigned char) upp->str[loop]);
else else
tmp_str = tmp_str =
g_strdup_printf ("[\\x%02X\\x%02X]", (unsigned char) upp->str[loop], g_strdup_printf ("[\\x%02X\\x%02X]", (unsigned char) upp->str[loop],
(unsigned char) low->str[loop]); (unsigned char) low->str[loop]);
} else { }
else
{
tmp_str = g_strdup_printf ("\\x%02X", (unsigned char) upp->str[loop]); tmp_str = g_strdup_printf ("\\x%02X", (unsigned char) upp->str[loop]);
} }
g_string_append (str_to, tmp_str); g_string_append (str_to, tmp_str);
@ -144,31 +155,34 @@ mc_search__cond_struct_new_regex_accum_append (const char *charset, GString * st
GString * str_from) GString * str_from)
{ {
GString *recoded_part; GString *recoded_part;
gchar *one_char; gsize loop = 0;
gsize loop;
gboolean just_letters;
loop = 0; recoded_part = g_string_sized_new (32);
recoded_part = g_string_new ("");
while (loop < str_from->len)
{
gchar *one_char;
gsize one_char_len;
gboolean just_letters;
while (loop < str_from->len) {
one_char = one_char =
mc_search__get_one_symbol (charset, &(str_from->str[loop]), mc_search__get_one_symbol (charset, &(str_from->str[loop]),
(str_from->len - loop > 6) ? 6 : str_from->len - loop, min (str_from->len - loop, 6), &just_letters);
&just_letters); one_char_len = strlen (one_char);
if (!strlen (one_char)) {
if (one_char_len == 0)
loop++; loop++;
continue; else
{
loop += one_char_len;
if (just_letters)
mc_search__cond_struct_new_regex_hex_add (charset, recoded_part, one_char,
one_char_len);
else
g_string_append_len (recoded_part, one_char, one_char_len);
} }
if (just_letters) {
mc_search__cond_struct_new_regex_hex_add (charset, recoded_part, one_char,
strlen (one_char));
} else {
g_string_append (recoded_part, one_char);
}
loop += strlen (one_char);
if (!strlen (one_char))
loop++;
g_free (one_char); g_free (one_char);
} }
@ -193,20 +207,23 @@ mc_search__cond_struct_new_regex_ci_str (const char *charset, const char *str, g
spec_char = g_string_new (""); spec_char = g_string_new ("");
loop = 0; loop = 0;
while (loop <= str_len) { while (loop <= str_len)
if (mc_search__regex_str_append_if_special (spec_char, tmp, &loop)) { {
if (mc_search__regex_str_append_if_special (spec_char, tmp, &loop))
{
mc_search__cond_struct_new_regex_accum_append (charset, ret_str, accumulator); mc_search__cond_struct_new_regex_accum_append (charset, ret_str, accumulator);
g_string_append_len (ret_str, spec_char->str, spec_char->len); g_string_append_len (ret_str, spec_char->str, spec_char->len);
g_string_set_size (spec_char, 0); g_string_set_size (spec_char, 0);
continue; continue;
} }
if (tmp->str[loop] == '[' && !strutils_is_char_escaped (tmp->str, &(tmp->str[loop]))) { if (tmp->str[loop] == '[' && !strutils_is_char_escaped (tmp->str, &(tmp->str[loop])))
{
mc_search__cond_struct_new_regex_accum_append (charset, ret_str, accumulator); mc_search__cond_struct_new_regex_accum_append (charset, ret_str, accumulator);
while (loop < str_len && !(tmp->str[loop] == ']' while (loop < str_len && !(tmp->str[loop] == ']'
&& !strutils_is_char_escaped (tmp->str, && !strutils_is_char_escaped (tmp->str, &(tmp->str[loop]))))
&(tmp->str[loop])))) { {
g_string_append_c (ret_str, tmp->str[loop]); g_string_append_c (ret_str, tmp->str[loop]);
loop++; loop++;
@ -240,12 +257,15 @@ mc_search__regex_found_cond_one (mc_search_t * lc_mc_search, mc_search_regex_t *
if (!g_regex_match_full if (!g_regex_match_full
(regex, search_str->str, -1, 0, G_REGEX_MATCH_NEWLINE_ANY, &lc_mc_search->regex_match_info, (regex, search_str->str, -1, 0, G_REGEX_MATCH_NEWLINE_ANY, &lc_mc_search->regex_match_info,
&error)) { &error))
{
g_match_info_free (lc_mc_search->regex_match_info); g_match_info_free (lc_mc_search->regex_match_info);
lc_mc_search->regex_match_info = NULL; lc_mc_search->regex_match_info = NULL;
if (error) { if (error)
{
lc_mc_search->error = MC_SEARCH_E_REGEX; lc_mc_search->error = MC_SEARCH_E_REGEX;
lc_mc_search->error_str = str_conv_gerror_message (error, _(" Regular expression error ")); lc_mc_search->error_str =
str_conv_gerror_message (error, _(" Regular expression error "));
g_error_free (error); g_error_free (error);
return COND__FOUND_ERROR; return COND__FOUND_ERROR;
} }
@ -254,9 +274,10 @@ mc_search__regex_found_cond_one (mc_search_t * lc_mc_search, mc_search_regex_t *
lc_mc_search->num_rezults = g_match_info_get_match_count (lc_mc_search->regex_match_info); lc_mc_search->num_rezults = g_match_info_get_match_count (lc_mc_search->regex_match_info);
#else /* SEARCH_TYPE_GLIB */ #else /* SEARCH_TYPE_GLIB */
lc_mc_search->num_rezults = pcre_exec (regex, lc_mc_search->regex_match_info, lc_mc_search->num_rezults = pcre_exec (regex, lc_mc_search->regex_match_info,
search_str->str, search_str->len - 1, 0, 0, lc_mc_search->iovector, search_str->str, search_str->len - 1, 0, 0,
MC_SEARCH__NUM_REPLACE_ARGS); lc_mc_search->iovector, MC_SEARCH__NUM_REPLACE_ARGS);
if (lc_mc_search->num_rezults < 0) { if (lc_mc_search->num_rezults < 0)
{
return COND__NOT_FOUND; return COND__NOT_FOUND;
} }
#endif /* SEARCH_TYPE_GLIB */ #endif /* SEARCH_TYPE_GLIB */
@ -273,13 +294,16 @@ mc_search__regex_found_cond (mc_search_t * lc_mc_search, GString * search_str)
mc_search_cond_t *mc_search_cond; mc_search_cond_t *mc_search_cond;
mc_search__found_cond_t ret; mc_search__found_cond_t ret;
for (loop1 = 0; loop1 < lc_mc_search->conditions->len; loop1++) { for (loop1 = 0; loop1 < lc_mc_search->conditions->len; loop1++)
{
mc_search_cond = (mc_search_cond_t *) g_ptr_array_index (lc_mc_search->conditions, loop1); mc_search_cond = (mc_search_cond_t *) g_ptr_array_index (lc_mc_search->conditions, loop1);
if (!mc_search_cond->regex_handle) if (!mc_search_cond->regex_handle)
continue; continue;
ret = mc_search__regex_found_cond_one (lc_mc_search, mc_search_cond->regex_handle, search_str); ret =
mc_search__regex_found_cond_one (lc_mc_search, mc_search_cond->regex_handle,
search_str);
if (ret != COND__NOT_FOUND) if (ret != COND__NOT_FOUND)
return ret; return ret;
@ -294,15 +318,18 @@ mc_search_regex__get_max_num_of_replace_tokens (const gchar * str, gsize len)
{ {
int max_token = 0; int max_token = 0;
gsize loop; gsize loop;
for (loop = 0; loop < len - 1; loop++) { for (loop = 0; loop < len - 1; loop++)
if (str[loop] == '\\' && (str[loop + 1] & (char) 0xf0) == 0x30 /* 0-9 */ ) { {
if (str[loop] == '\\' && (str[loop + 1] & (char) 0xf0) == 0x30 /* 0-9 */ )
{
if (strutils_is_char_escaped (str, &str[loop])) if (strutils_is_char_escaped (str, &str[loop]))
continue; continue;
if (max_token < str[loop + 1] - '0') if (max_token < str[loop + 1] - '0')
max_token = str[loop + 1] - '0'; max_token = str[loop + 1] - '0';
continue; continue;
} }
if (str[loop] == '$' && str[loop + 1] == '{') { if (str[loop] == '$' && str[loop + 1] == '{')
{
gsize tmp_len; gsize tmp_len;
char *tmp_str; char *tmp_str;
int tmp_token; int tmp_token;
@ -312,7 +339,8 @@ mc_search_regex__get_max_num_of_replace_tokens (const gchar * str, gsize len)
for (tmp_len = 0; for (tmp_len = 0;
loop + tmp_len + 2 < len && (str[loop + 2 + tmp_len] & (char) 0xf0) == 0x30; loop + tmp_len + 2 < len && (str[loop + 2 + tmp_len] & (char) 0xf0) == 0x30;
tmp_len++); tmp_len++);
if (str[loop + 2 + tmp_len] == '}') { if (str[loop + 2 + tmp_len] == '}')
{
tmp_str = g_strndup (&str[loop + 2], tmp_len); tmp_str = g_strndup (&str[loop + 2], tmp_len);
tmp_token = atoi (tmp_str); tmp_token = atoi (tmp_str);
if (max_token < tmp_token) if (max_token < tmp_token)
@ -359,8 +387,10 @@ mc_search_regex__process_replace_str (const GString * replace_str, const gsize c
*skip_len = 0; *skip_len = 0;
if (*curr_str == '$' && *(curr_str + 1) == '{' && (*(curr_str + 2) & (char) 0xf0) == 0x30) { if (*curr_str == '$' && *(curr_str + 1) == '{' && (*(curr_str + 2) & (char) 0xf0) == 0x30)
if (strutils_is_char_escaped (replace_str->str, curr_str)) { {
if (strutils_is_char_escaped (replace_str->str, curr_str))
{
*skip_len = 1; *skip_len = 1;
return -1; return -1;
} }
@ -383,20 +413,24 @@ mc_search_regex__process_replace_str (const GString * replace_str, const gsize c
return ret; return ret;
} }
if (*curr_str == '\\') { if (*curr_str == '\\')
if (strutils_is_char_escaped (replace_str->str, curr_str)) { {
if (strutils_is_char_escaped (replace_str->str, curr_str))
{
*skip_len = 1; *skip_len = 1;
return -1; return -1;
} }
if ((*(curr_str + 1) & (char) 0xf0) == 0x30) { if ((*(curr_str + 1) & (char) 0xf0) == 0x30)
{
ret = *(curr_str + 1) - '0'; ret = *(curr_str + 1) - '0';
*skip_len = 2; /* \\ and one digit */ *skip_len = 2; /* \\ and one digit */
return ret; return ret;
} }
ret = -2; ret = -2;
*skip_len += 2; *skip_len += 2;
switch (*(curr_str + 1)) { switch (*(curr_str + 1))
{
case 'U': case 'U':
*replace_flags |= REPLACE_T_UPP_TRANSFORM; *replace_flags |= REPLACE_T_UPP_TRANSFORM;
*replace_flags &= ~REPLACE_T_LOW_TRANSFORM; *replace_flags &= ~REPLACE_T_LOW_TRANSFORM;
@ -430,39 +464,50 @@ mc_search_regex__process_append_str (GString * dest_str, const char *from, gsize
char *tmp_str; char *tmp_str;
GString *tmp_string; GString *tmp_string;
if (len == (gsize) -1) if (len == (gsize) - 1)
len = strlen (from); len = strlen (from);
if (*replace_flags == REPLACE_T_NO_TRANSFORM) { if (*replace_flags == REPLACE_T_NO_TRANSFORM)
{
g_string_append_len (dest_str, from, len); g_string_append_len (dest_str, from, len);
return; return;
} }
while (loop < len) { while (loop < len)
{
tmp_str = mc_search__get_one_symbol (NULL, from + loop, len - loop, NULL); tmp_str = mc_search__get_one_symbol (NULL, from + loop, len - loop, NULL);
char_len = strlen (tmp_str); char_len = strlen (tmp_str);
if (*replace_flags & REPLACE_T_UPP_TRANSFORM_CHAR) { if (*replace_flags & REPLACE_T_UPP_TRANSFORM_CHAR)
{
*replace_flags &= !REPLACE_T_UPP_TRANSFORM_CHAR; *replace_flags &= !REPLACE_T_UPP_TRANSFORM_CHAR;
tmp_string = mc_search__toupper_case_str (NULL, tmp_str, char_len); tmp_string = mc_search__toupper_case_str (NULL, tmp_str, char_len);
g_string_append (dest_str, tmp_string->str); g_string_append (dest_str, tmp_string->str);
g_string_free (tmp_string, TRUE); g_string_free (tmp_string, TRUE);
} else if (*replace_flags & REPLACE_T_LOW_TRANSFORM_CHAR) { }
else if (*replace_flags & REPLACE_T_LOW_TRANSFORM_CHAR)
{
*replace_flags &= !REPLACE_T_LOW_TRANSFORM_CHAR; *replace_flags &= !REPLACE_T_LOW_TRANSFORM_CHAR;
tmp_string = mc_search__toupper_case_str (NULL, tmp_str, char_len); tmp_string = mc_search__toupper_case_str (NULL, tmp_str, char_len);
g_string_append (dest_str, tmp_string->str); g_string_append (dest_str, tmp_string->str);
g_string_free (tmp_string, TRUE); g_string_free (tmp_string, TRUE);
} else if (*replace_flags & REPLACE_T_UPP_TRANSFORM) { }
else if (*replace_flags & REPLACE_T_UPP_TRANSFORM)
{
tmp_string = mc_search__toupper_case_str (NULL, tmp_str, char_len); tmp_string = mc_search__toupper_case_str (NULL, tmp_str, char_len);
g_string_append (dest_str, tmp_string->str); g_string_append (dest_str, tmp_string->str);
g_string_free (tmp_string, TRUE); g_string_free (tmp_string, TRUE);
} else if (*replace_flags & REPLACE_T_LOW_TRANSFORM) { }
else if (*replace_flags & REPLACE_T_LOW_TRANSFORM)
{
tmp_string = mc_search__tolower_case_str (NULL, tmp_str, char_len); tmp_string = mc_search__tolower_case_str (NULL, tmp_str, char_len);
g_string_append (dest_str, tmp_string->str); g_string_append (dest_str, tmp_string->str);
g_string_free (tmp_string, TRUE); g_string_free (tmp_string, TRUE);
} else { }
else
{
g_string_append (dest_str, tmp_str); g_string_append (dest_str, tmp_str);
} }
g_free (tmp_str); g_free (tmp_str);
@ -485,7 +530,8 @@ mc_search__cond_struct_new_init_regex (const char *charset, mc_search_t * lc_mc_
int erroffset; int erroffset;
#endif /* SEARCH_TYPE_GLIB */ #endif /* SEARCH_TYPE_GLIB */
if (!lc_mc_search->is_case_sentitive) { if (!lc_mc_search->is_case_sentitive)
{
tmp = g_string_new_len (mc_search_cond->str->str, mc_search_cond->str->len); tmp = g_string_new_len (mc_search_cond->str->str, mc_search_cond->str->len);
g_string_free (mc_search_cond->str, TRUE); g_string_free (mc_search_cond->str, TRUE);
mc_search_cond->str = mc_search__cond_struct_new_regex_ci_str (charset, tmp->str, tmp->len); mc_search_cond->str = mc_search__cond_struct_new_regex_ci_str (charset, tmp->str, tmp->len);
@ -496,7 +542,8 @@ mc_search__cond_struct_new_init_regex (const char *charset, mc_search_t * lc_mc_
g_regex_new (mc_search_cond->str->str, G_REGEX_OPTIMIZE | G_REGEX_RAW | G_REGEX_DOTALL, 0, g_regex_new (mc_search_cond->str->str, G_REGEX_OPTIMIZE | G_REGEX_RAW | G_REGEX_DOTALL, 0,
&error); &error);
if (error != NULL) { if (error != NULL)
{
lc_mc_search->error = MC_SEARCH_E_REGEX_COMPILE; lc_mc_search->error = MC_SEARCH_E_REGEX_COMPILE;
lc_mc_search->error_str = str_conv_gerror_message (error, _(" Regular expression error ")); lc_mc_search->error_str = str_conv_gerror_message (error, _(" Regular expression error "));
g_error_free (error); g_error_free (error);
@ -505,14 +552,17 @@ mc_search__cond_struct_new_init_regex (const char *charset, mc_search_t * lc_mc_
#else /* SEARCH_TYPE_GLIB */ #else /* SEARCH_TYPE_GLIB */
mc_search_cond->regex_handle = mc_search_cond->regex_handle =
pcre_compile (mc_search_cond->str->str, PCRE_EXTRA, &error, &erroffset, NULL); pcre_compile (mc_search_cond->str->str, PCRE_EXTRA, &error, &erroffset, NULL);
if (mc_search_cond->regex_handle == NULL) { if (mc_search_cond->regex_handle == NULL)
{
lc_mc_search->error = MC_SEARCH_E_REGEX_COMPILE; lc_mc_search->error = MC_SEARCH_E_REGEX_COMPILE;
lc_mc_search->error_str = g_strdup (error); lc_mc_search->error_str = g_strdup (error);
return; return;
} }
lc_mc_search->regex_match_info = pcre_study (mc_search_cond->regex_handle, 0, &error); lc_mc_search->regex_match_info = pcre_study (mc_search_cond->regex_handle, 0, &error);
if (lc_mc_search->regex_match_info == NULL) { if (lc_mc_search->regex_match_info == NULL)
if (error) { {
if (error)
{
lc_mc_search->error = MC_SEARCH_E_REGEX_COMPILE; lc_mc_search->error = MC_SEARCH_E_REGEX_COMPILE;
lc_mc_search->error_str = g_strdup (error); lc_mc_search->error_str = g_strdup (error);
g_free (mc_search_cond->regex_handle); g_free (mc_search_cond->regex_handle);
@ -540,11 +590,13 @@ mc_search__run_regex (mc_search_t * lc_mc_search, const void *user_data,
lc_mc_search->regex_buffer = g_string_new (""); lc_mc_search->regex_buffer = g_string_new ("");
virtual_pos = current_pos = start_search; virtual_pos = current_pos = start_search;
while (virtual_pos <= end_search) { while (virtual_pos <= end_search)
{
g_string_set_size (lc_mc_search->regex_buffer, 0); g_string_set_size (lc_mc_search->regex_buffer, 0);
lc_mc_search->start_buffer = current_pos; lc_mc_search->start_buffer = current_pos;
while (1) { while (1)
{
current_chr = mc_search__get_char (lc_mc_search, user_data, current_pos); current_chr = mc_search__get_char (lc_mc_search, user_data, current_pos);
if (current_chr == MC_SEARCH_CB_ABORT) if (current_chr == MC_SEARCH_CB_ABORT)
break; break;
@ -566,7 +618,8 @@ mc_search__run_regex (mc_search_t * lc_mc_search, const void *user_data,
break; break;
} }
switch (mc_search__regex_found_cond (lc_mc_search, lc_mc_search->regex_buffer)) { switch (mc_search__regex_found_cond (lc_mc_search, lc_mc_search->regex_buffer))
{
case COND__FOUND_OK: case COND__FOUND_OK:
#ifdef SEARCH_TYPE_GLIB #ifdef SEARCH_TYPE_GLIB
g_match_info_fetch_pos (lc_mc_search->regex_match_info, 0, &start_pos, &end_pos); g_match_info_fetch_pos (lc_mc_search->regex_match_info, 0, &start_pos, &end_pos);
@ -587,8 +640,8 @@ mc_search__run_regex (mc_search_t * lc_mc_search, const void *user_data,
return FALSE; return FALSE;
break; break;
} }
if (( lc_mc_search->update_fn != NULL ) && if ((lc_mc_search->update_fn != NULL) &&
( (lc_mc_search->update_fn) (user_data, current_pos) == MC_SEARCH_CB_ABORT)) ((lc_mc_search->update_fn) (user_data, current_pos) == MC_SEARCH_CB_ABORT))
current_chr = MC_SEARCH_CB_ABORT; current_chr = MC_SEARCH_CB_ABORT;
if (current_chr == MC_SEARCH_CB_ABORT) if (current_chr == MC_SEARCH_CB_ABORT)
@ -626,7 +679,8 @@ mc_search_regex_prepare_replace_str (mc_search_t * lc_mc_search, GString * repla
return g_string_new_len (replace_str->str, replace_str->len); return g_string_new_len (replace_str->str, replace_str->len);
if (num_replace_tokens > lc_mc_search->num_rezults - 1 if (num_replace_tokens > lc_mc_search->num_rezults - 1
|| num_replace_tokens > MC_SEARCH__NUM_REPLACE_ARGS) { || num_replace_tokens > MC_SEARCH__NUM_REPLACE_ARGS)
{
lc_mc_search->error = MC_SEARCH_E_REGEX_REPLACE; lc_mc_search->error = MC_SEARCH_E_REGEX_REPLACE;
lc_mc_search->error_str = g_strdup (STR_E_RPL_NOT_EQ_TO_FOUND); lc_mc_search->error_str = g_strdup (STR_E_RPL_NOT_EQ_TO_FOUND);
return NULL; return NULL;
@ -634,11 +688,14 @@ mc_search_regex_prepare_replace_str (mc_search_t * lc_mc_search, GString * repla
ret = g_string_new (""); ret = g_string_new ("");
prev_str = replace_str->str; prev_str = replace_str->str;
for (loop = 0; loop < replace_str->len - 1; loop++) { for (loop = 0; loop < replace_str->len - 1; loop++)
{
lc_index = mc_search_regex__process_replace_str (replace_str, loop, &len, &replace_flags); lc_index = mc_search_regex__process_replace_str (replace_str, loop, &len, &replace_flags);
if (lc_index == -1) { if (lc_index == -1)
if (len != 0) { {
if (len != 0)
{
mc_search_regex__process_append_str (ret, prev_str, mc_search_regex__process_append_str (ret, prev_str,
replace_str->str - prev_str + loop, replace_str->str - prev_str + loop,
&replace_flags); &replace_flags);
@ -650,7 +707,8 @@ mc_search_regex_prepare_replace_str (mc_search_t * lc_mc_search, GString * repla
continue; continue;
} }
if (lc_index == -2) { if (lc_index == -2)
{
if (loop) if (loop)
mc_search_regex__process_append_str (ret, prev_str, mc_search_regex__process_append_str (ret, prev_str,
replace_str->str - prev_str + loop, replace_str->str - prev_str + loop,
@ -660,7 +718,8 @@ mc_search_regex_prepare_replace_str (mc_search_t * lc_mc_search, GString * repla
continue; continue;
} }
if (lc_index > lc_mc_search->num_rezults) { if (lc_index > lc_mc_search->num_rezults)
{
g_string_free (ret, TRUE); g_string_free (ret, TRUE);
lc_mc_search->error = MC_SEARCH_E_REGEX_REPLACE; lc_mc_search->error = MC_SEARCH_E_REGEX_REPLACE;
lc_mc_search->error_str = g_strdup_printf (STR_E_RPL_INVALID_TOKEN, lc_index); lc_mc_search->error_str = g_strdup_printf (STR_E_RPL_INVALID_TOKEN, lc_index);

Просмотреть файл

@ -663,6 +663,7 @@ load_mc_home_file (const char *_mc_home, const char *_mc_home_alt, const char *f
/* Fall back to the two-letter language code */ /* Fall back to the two-letter language code */
if (lang[0] && lang[1]) if (lang[0] && lang[1])
lang[2] = 0; lang[2] = 0;
g_free (hintfile);
hintfile = g_strconcat (hintfile_base, ".", lang, (char *) NULL); hintfile = g_strconcat (hintfile_base, ".", lang, (char *) NULL);
data = load_file (hintfile); data = load_file (hintfile);

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -486,7 +486,7 @@ extfs_read_archive (int fstype, const char *name, struct archive **pparc)
*(p++) = '\0'; *(p++) = '\0';
q = cfn; q = cfn;
} }
if (S_ISDIR (hstat.st_mode) && (strcmp (p, ".") || !strcmp (p, "..") == 0)) if (S_ISDIR (hstat.st_mode) && (strcmp (p, ".") == 0 || strcmp (p, "..") == 0))
goto read_extfs_continue; goto read_extfs_continue;
pent = extfs_find_entry (current_archive->root_entry, q, TRUE, FALSE); pent = extfs_find_entry (current_archive->root_entry, q, TRUE, FALSE);
if (pent == NULL) if (pent == NULL)

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -23,6 +23,7 @@ context default
keyword = brightcyan keyword = brightcyan
keyword ; brightmagenta keyword ; brightmagenta
keyword whole extensions yellow keyword whole extensions yellow
keyword whole extensions_case yellow
keyword whole type yellow keyword whole type yellow
keyword DEVICE brightred keyword DEVICE brightred
keyword DIR brightred keyword DIR brightred

Просмотреть файл

@ -14,9 +14,9 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Poedit-Country: KOREA, REPUBLIC OF\n"
"X-Poedit-Language: Korean\n" "X-Poedit-Language: Korean\n"
"X-Poedit-SourceCharset: utf-8\n" "X-Poedit-SourceCharset: utf-8\n"
"X-Poedit-Country: KOREA, REPUBLIC OF\n"
msgid " Search string not found " msgid " Search string not found "
msgstr "글월을 찾을 수 없군요 " msgstr "글월을 찾을 수 없군요 "
@ -25,7 +25,7 @@ msgid " Not implemented yet "
msgstr "아직 구현되지 않았습니다." msgstr "아직 구현되지 않았습니다."
msgid " Num of replace tokens not equal to num of found tokens " msgid " Num of replace tokens not equal to num of found tokens "
msgstr " Num of replace tokens not equal to num of found tokens " msgstr "Num of replace tokens not equal to num of found tokens "
#, c-format #, c-format
msgid " Invalid token number %d " msgid " Invalid token number %d "
@ -35,7 +35,7 @@ msgid "Normal"
msgstr "일반" msgstr "일반"
msgid "&Regular expression" msgid "&Regular expression"
msgstr "정규표현식(&R)" msgstr "정규 표현식(&R)"
msgid "Hexadecimal" msgid "Hexadecimal"
msgstr "16진수" msgstr "16진수"
@ -395,7 +395,7 @@ msgid ""
"%s" "%s"
msgstr "" msgstr ""
"파일의 끝에 알 수 없습니다\n" "파일의 끝에 알 수 없습니다\n"
"% s" "%s"
#, c-format #, c-format
msgid "Directory cache expired for %s" msgid "Directory cache expired for %s"
@ -406,11 +406,11 @@ msgstr "선형 전송 시작..."
#, c-format #, c-format
msgid "%s: %s: %s %3d%% (%lu bytes transferred)" msgid "%s: %s: %s %3d%% (%lu bytes transferred)"
msgstr "%s: %s: %s %3d%% (%lu 바이트 전송됨)" msgstr "%s: %s: %s %3d%% (%lu 바이트 전송 됨)"
#, c-format #, c-format
msgid "%s: %s: %s %lu bytes transferred" msgid "%s: %s: %s %lu bytes transferred"
msgstr "%s: %s: %s %lu 바이트 전송됨" msgstr "%s: %s: %s %lu 바이트 전송 됨"
msgid "Getting file" msgid "Getting file"
msgstr "파일 받기" msgstr "파일 받기"
@ -432,7 +432,7 @@ msgstr "경고: %s 디렉터리을 바꿀 수 없습니다\n"
#, c-format #, c-format
msgid "fish: Disconnecting from %s" msgid "fish: Disconnecting from %s"
msgstr "fish : %s에서 분리중" msgstr "fish : %s에서 분리 중"
msgid "fish: Waiting for initial line..." msgid "fish: Waiting for initial line..."
msgstr "fish: 초기 라인을 기다림..." msgstr "fish: 초기 라인을 기다림..."
@ -457,11 +457,11 @@ msgstr "fish: 현재 디렉터리의 설정..."
#, c-format #, c-format
msgid "fish: Connected, home %s." msgid "fish: Connected, home %s."
msgstr "fish: 홈 %s , 접속됨." msgstr "fish: 홈 %s, 접속됨."
#, c-format #, c-format
msgid "fish: Reading directory %s..." msgid "fish: Reading directory %s..."
msgstr "fish: %s 디렉터리 읽는 중..." msgstr "fish: %s 디렉터리 읽는 중..."
#, c-format #, c-format
msgid "%s: done." msgid "%s: done."
@ -473,7 +473,7 @@ msgstr "%s: 실패"
#, c-format #, c-format
msgid "fish: store %s: sending command..." msgid "fish: store %s: sending command..."
msgstr "fish: % s : 명령을 보내는 중..." msgstr "fish: %s : 명령을 보내는 중..."
msgid "fish: Local read failed, sending zeros" msgid "fish: Local read failed, sending zeros"
msgstr "fish: 상태 읽기 실패, 전송 제로" msgstr "fish: 상태 읽기 실패, 전송 제로"
@ -547,7 +547,7 @@ msgstr " ftpfs: 서버로 연결할 수 없음: %s "
#, c-format #, c-format
msgid "Waiting to retry... %d (Control-C to cancel)" msgid "Waiting to retry... %d (Control-C to cancel)"
msgstr "재시도를 기다리는 중 ... % d (컨트롤 - C를 취소)" msgstr "재시도를 기다리는 중 ... %d (Contro-C로 취소)"
msgid "ftpfs: invalid address family" msgid "ftpfs: invalid address family"
msgstr "ftpfs: 잘못된 주소 목록" msgstr "ftpfs: 잘못된 주소 목록"
@ -575,7 +575,7 @@ msgstr "ftpfs: 중지 실패"
#, fuzzy #, fuzzy
msgid "ftpfs: CWD failed." msgid "ftpfs: CWD failed."
msgstr "ftpfs: CWD실패." msgstr "ftpfs : CWD실패했습니다."
msgid "ftpfs: couldn't resolve symlink" msgid "ftpfs: couldn't resolve symlink"
msgstr "ftpfs: 심볼릭 링크 해결 못함" msgstr "ftpfs: 심볼릭 링크 해결 못함"
@ -841,7 +841,7 @@ msgstr "모드"
#, c-format #, c-format
msgid "%6d of %d" msgid "%6d of %d"
msgstr "%6d of %d" msgstr "%6d %d"
msgid " Chown advanced command " msgid " Chown advanced command "
msgstr " 고급 chown 명령 " msgstr " 고급 chown 명령 "
@ -1035,7 +1035,7 @@ msgid "Listing mode"
msgstr "목록보기 설정" msgstr "목록보기 설정"
msgid "user &Mini status" msgid "user &Mini status"
msgstr "사용자 &미니 상태 바(&M)" msgstr "사용자 미니 상태 바(&M)"
msgid "&OK" msgid "&OK"
msgstr "확인(&O)" msgstr "확인(&O)"
@ -1098,7 +1098,7 @@ msgid "Other 8 bit"
msgstr "다른 8 비트" msgstr "다른 8 비트"
msgid "Input / display codepage:" msgid "Input / display codepage:"
msgstr "입출력 코드페이지:" msgstr "입/출력 코드페이지:"
msgid "&Select" msgid "&Select"
msgstr "선택(&S)" msgstr "선택(&S)"
@ -1355,7 +1355,7 @@ msgid " Which menu file do you want to edit? "
msgstr "어떤 메뉴 파일을 편집하고 싶으세요? " msgstr "어떤 메뉴 파일을 편집하고 싶으세요? "
msgid "&Local" msgid "&Local"
msgstr "로(&L)" msgstr "로(&L)"
msgid "Highlighting groups file edit" msgid "Highlighting groups file edit"
msgstr "선택 표시된 그룹 파일을 수정" msgstr "선택 표시된 그룹 파일을 수정"
@ -1493,7 +1493,7 @@ msgstr "에러"
#, c-format #, c-format
msgid " Error reading from pipe: %s " msgid " Error reading from pipe: %s "
msgstr "파이프 읽기 에러: %s " msgstr "파이프 읽기 에러: %s "
#, c-format #, c-format
msgid " Cannot open pipe for reading: %s " msgid " Cannot open pipe for reading: %s "
@ -1560,7 +1560,7 @@ msgid "&Safe save"
msgstr "안전한 저장(&S)" msgstr "안전한 저장(&S)"
msgid "&Do backups with following extension:" msgid "&Do backups with following extension:"
msgstr "확장명을 다음과 같이 백업하지 않음(&D) :" msgstr "확장명을 다음과 같이 백업하지 않음(&D):"
msgid "Check &POSIX new line" msgid "Check &POSIX new line"
msgstr "체크 POSIX의 새로운 라인(&P)" msgstr "체크 POSIX의 새로운 라인(&P)"
@ -1584,7 +1584,7 @@ msgid "&Windows/DOS format (CR LF)"
msgstr "MS 도스/윈도우즈 포맷(&W) (CR LF)" msgstr "MS 도스/윈도우즈 포맷(&W) (CR LF)"
msgid "&Macintosh format (CR)" msgid "&Macintosh format (CR)"
msgstr "캔토시 포맷(&M) (CR)" msgstr "캔토시 포맷(&M) (CR)"
msgid "Change line breaks to:" msgid "Change line breaks to:"
msgstr "깨진 라인 바꾸기:" msgstr "깨진 라인 바꾸기:"
@ -1629,7 +1629,7 @@ msgid " Load macro "
msgstr "매크로 불러오기" msgstr "매크로 불러오기"
msgid " Confirm save file? : " msgid " Confirm save file? : "
msgstr "저장하시겠습니까? " msgstr "저장하시겠습니까? :"
msgid " Save file " msgid " Save file "
msgstr "파일 저장" msgstr "파일 저장"
@ -1645,7 +1645,7 @@ msgstr ""
" 저장 안하고 계속하실 겁니까? " " 저장 안하고 계속하실 겁니까? "
msgid "Syntax file edit" msgid "Syntax file edit"
msgstr "문법 파일 수정(&M)" msgstr "문법 파일 수정"
msgid " Which syntax file you want to edit? " msgid " Which syntax file you want to edit? "
msgstr "수정하기를 원하는 문법 파일은? " msgstr "수정하기를 원하는 문법 파일은? "
@ -1676,7 +1676,7 @@ msgid "&Cancel quit"
msgstr "끝내기 취소(&C)" msgstr "끝내기 취소(&C)"
msgid " Error " msgid " Error "
msgstr "에러" msgstr "오류"
msgid " This function is not implemented. " msgid " This function is not implemented. "
msgstr "이 기능은 구현되지 않습니다." msgstr "이 기능은 구현되지 않습니다."
@ -1751,7 +1751,7 @@ msgid "Script created:"
msgstr "스크립트 만듬:" msgstr "스크립트 만듬:"
msgid "Process block" msgid "Process block"
msgstr "Process block" msgstr "프로세스 블럭"
msgid " Copies to" msgid " Copies to"
msgstr "복사" msgstr "복사"
@ -1811,7 +1811,7 @@ msgid "A&ll"
msgstr "모두(&L)" msgstr "모두(&L)"
msgid " Replace with: " msgid " Replace with: "
msgstr " ...로 바꿈: " msgstr "함께 바꿈: "
msgid " Confirm replace " msgid " Confirm replace "
msgstr "바꾸기 확인 " msgstr "바꾸기 확인 "
@ -2758,7 +2758,7 @@ msgid "Fr&ee VFSs now"
msgstr "VFS를 지금 해제(&E)" msgstr "VFS를 지금 해제(&E)"
msgid "Change &To" msgid "Change &To"
msgstr "바꾸기(&T)" msgstr "바꾸기(&T)"
msgid "Subgroup - press ENTER to see list" msgid "Subgroup - press ENTER to see list"
msgstr "하위집단 - 보려면 엔터키를 누르십시오" msgstr "하위집단 - 보려면 엔터키를 누르십시오"
@ -2836,7 +2836,7 @@ msgstr "미드나잇 코맨더 %s"
#, c-format #, c-format
msgid "File: %s" msgid "File: %s"
msgstr "파일: %s" msgstr "파일: %s"
#, c-format #, c-format
msgid "Free nodes: %d (%d%%) of %d" msgid "Free nodes: %d (%d%%) of %d"
@ -2854,14 +2854,14 @@ msgstr "빈 공간: 정보 없음"
#, c-format #, c-format
msgid "Type: %s " msgid "Type: %s "
msgstr "종류: %s " msgstr "종류: %s "
msgid "non-local vfs" msgid "non-local vfs"
msgstr "원격 vfs" msgstr "원격 vfs"
#, c-format #, c-format
msgid "Device: %s" msgid "Device: %s"
msgstr "디바이스: %s" msgstr "디바이스: %s"
#, c-format #, c-format
msgid "Filesystem: %s" msgid "Filesystem: %s"
@ -2869,16 +2869,16 @@ msgstr "파일체계: %s"
#, c-format #, c-format
msgid "Accessed: %s" msgid "Accessed: %s"
msgstr "액세스일: %s" msgstr "액세스일: %s"
#, c-format #, c-format
msgid "Modified: %s" msgid "Modified: %s"
msgstr "수정일: %s" msgstr "수정일: %s"
#. TRANSLATORS: "Status changed", like in the stat(2) man page #. TRANSLATORS: "Status changed", like in the stat(2) man page
#, c-format #, c-format
msgid "Status: %s" msgid "Status: %s"
msgstr "만든날: %s" msgstr "만든날: %s"
#, c-format #, c-format
msgid "Dev. type: major %lu, minor %lu" msgid "Dev. type: major %lu, minor %lu"
@ -2886,7 +2886,7 @@ msgstr "Dev. type: 주요 %lu, 기여 %lu"
#, c-format #, c-format
msgid "Size: %s" msgid "Size: %s"
msgstr "크기: %s" msgstr "크기: %s"
#, c-format #, c-format
msgid " (%ld block)" msgid " (%ld block)"
@ -2894,19 +2894,19 @@ msgstr " (%ld 블럭)"
#, c-format #, c-format
msgid "Owner: %s/%s" msgid "Owner: %s/%s"
msgstr "소유자: %s/%s" msgstr "소유자: %s/%s"
#, c-format #, c-format
msgid "Links: %d" msgid "Links: %d"
msgstr "링크: %d" msgstr "링크: %d"
#, c-format #, c-format
msgid "Mode: %s (%04o)" msgid "Mode: %s (%04o)"
msgstr "모드: %s (%04o)" msgstr "모드: %s (%04o)"
#, c-format #, c-format
msgid "Location: %Xh:%Xh" msgid "Location: %Xh:%Xh"
msgstr "위치: %Xh:%Xh" msgstr "위치: %Xh:%Xh"
msgid "&Vertical" msgid "&Vertical"
msgstr "수직(&V)" msgstr "수직(&V)"
@ -3755,4 +3755,3 @@ msgstr "기록을 삭제하기를 원하십니까?"
msgid "Background process:" msgid "Background process:"
msgstr "배경 프로세스:" msgstr "배경 프로세스:"

Просмотреть файл

@ -15,8 +15,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Lokalize 1.0\n" "X-Generator: Lokalize 1.0\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid " Search string not found " msgid " Search string not found "
msgstr " Така стрічка не знайдена " msgstr " Така стрічка не знайдена "
@ -340,7 +340,7 @@ msgstr "Тимчасові файли створюватися не будуть
#, c-format #, c-format
msgid "Press any key to continue..." msgid "Press any key to continue..."
msgstr "Натисніть пробіл для продовження..." msgstr "Натисніть пробіл для продовження"
msgid "Warning" msgid "Warning"
msgstr "Попередження" msgstr "Попередження"
@ -404,7 +404,7 @@ msgid "Directory cache expired for %s"
msgstr "Кеш каталога застарів для %s" msgstr "Кеш каталога застарів для %s"
msgid "Starting linear transfer..." msgid "Starting linear transfer..."
msgstr "Початок лінійного перенесення..." msgstr "Початок лінійного перенесення"
#, c-format #, c-format
msgid "%s: %s: %s %3d%% (%lu bytes transferred)" msgid "%s: %s: %s %3d%% (%lu bytes transferred)"
@ -438,7 +438,7 @@ msgid "fish: Disconnecting from %s"
msgstr "fish: від'єднуюсь від %s" msgstr "fish: від'єднуюсь від %s"
msgid "fish: Waiting for initial line..." msgid "fish: Waiting for initial line..."
msgstr "fish: чекаю початковий рядок..." msgstr "fish: чекаю початковий рядок"
msgid "Sorry, we cannot do password authenticated connections for now." msgid "Sorry, we cannot do password authenticated connections for now."
msgstr "Вибачте, зараз неможливо створювати з'єднання, авторизовані паролем." msgstr "Вибачте, зараз неможливо створювати з'єднання, авторизовані паролем."
@ -447,16 +447,16 @@ msgid " fish: Password required for "
msgstr " fish: вимагається пароль для " msgstr " fish: вимагається пароль для "
msgid "fish: Sending password..." msgid "fish: Sending password..."
msgstr "fish: відсилаю пароль..." msgstr "fish: відсилаю пароль"
msgid "fish: Sending initial line..." msgid "fish: Sending initial line..."
msgstr "fish: відсилаю початковий рядок..." msgstr "fish: відсилаю початковий рядок"
msgid "fish: Handshaking version..." msgid "fish: Handshaking version..."
msgstr "fish: домовляюсь про версію..." msgstr "fish: домовляюсь про версію"
msgid "fish: Setting up current directory..." msgid "fish: Setting up current directory..."
msgstr "fish: встановлюю поточний каталог..." msgstr "fish: встановлюю поточний каталог"
#, c-format #, c-format
msgid "fish: Connected, home %s." msgid "fish: Connected, home %s."
@ -464,7 +464,7 @@ msgstr "fish: з'єднався, домашній каталог %s."
#, c-format #, c-format
msgid "fish: Reading directory %s..." msgid "fish: Reading directory %s..."
msgstr "fish: читаю каталог %s..." msgstr "fish: читаю каталог %s"
#, c-format #, c-format
msgid "%s: done." msgid "%s: done."
@ -476,7 +476,7 @@ msgstr "%s: збій"
#, c-format #, c-format
msgid "fish: store %s: sending command..." msgid "fish: store %s: sending command..."
msgstr "fish: запис %s: відсилаю команду..." msgstr "fish: запис %s: відсилаю команду"
msgid "fish: Local read failed, sending zeros" msgid "fish: Local read failed, sending zeros"
msgstr "fish: Збій локального читання, відсилаються нулі" msgstr "fish: Збій локального читання, відсилаються нулі"
@ -492,7 +492,7 @@ msgid "file"
msgstr "файл" msgstr "файл"
msgid "Aborting transfer..." msgid "Aborting transfer..."
msgstr "Переривання перенесення..." msgstr "Переривання перенесення"
msgid "Error reported after abort." msgid "Error reported after abort."
msgstr "Повідомлена помилка після переривання." msgstr "Повідомлена помилка після переривання."
@ -550,7 +550,7 @@ msgstr "ftpfs: збій з'єднання з сервером: %s"
#, c-format #, c-format
msgid "Waiting to retry... %d (Control-C to cancel)" msgid "Waiting to retry... %d (Control-C to cancel)"
msgstr "Очікування повтору спроби... %d (Control-C для скасування)" msgstr "Очікування повтору спроби %d (Control-C для скасування)"
msgid "ftpfs: invalid address family" msgid "ftpfs: invalid address family"
msgstr "ftpfs: неправильний рід адреси" msgstr "ftpfs: неправильний рід адреси"
@ -585,11 +585,11 @@ msgid "ftpfs: couldn't resolve symlink"
msgstr "ftpfs: не зміг розпізнати символьне посилання" msgstr "ftpfs: не зміг розпізнати символьне посилання"
msgid "Resolving symlink..." msgid "Resolving symlink..."
msgstr "Розпізнається символьне посилання..." msgstr "Розпізнається символьне посилання"
#, c-format #, c-format
msgid "ftpfs: Reading FTP directory %s... %s%s" msgid "ftpfs: Reading FTP directory %s... %s%s"
msgstr "ftpfs: Читання каталога FTP %s... %s%s" msgstr "ftpfs: Читання каталога FTP %s %s%s"
msgid "(strict rfc959)" msgid "(strict rfc959)"
msgstr "(обмеження rfc959)" msgstr "(обмеження rfc959)"
@ -724,7 +724,7 @@ msgid ""
"%s\n" "%s\n"
"doesn't look like a tar archive." "doesn't look like a tar archive."
msgstr "" msgstr ""
"Гм,...\n" "Гм,\n"
"%s\n" "%s\n"
"не схожий на tar-архів." "не схожий на tar-архів."
@ -768,25 +768,25 @@ msgid " Cannot open file %s "
msgstr " Не вдалося відкрити файл %s " msgstr " Не вдалося відкрити файл %s "
msgid "undelfs: reading inode bitmap..." msgid "undelfs: reading inode bitmap..."
msgstr "undelfs: читання бітової мапи i-вузлів..." msgstr "undelfs: читання бітової карти i-вузлів…"
#, c-format #, c-format
msgid "" msgid ""
" Cannot load inode bitmap from: \n" " Cannot load inode bitmap from: \n"
" %s \n" " %s \n"
msgstr "" msgstr ""
" Не вдалося завантажити бітову мапу i-вузлів з:\n" " Не вдалося завантажити бітову карту i-вузлів з:\n"
" %s \n" " %s \n"
msgid "undelfs: reading block bitmap..." msgid "undelfs: reading block bitmap..."
msgstr "undelfs: читання блоку бітової мапи..." msgstr "undelfs: читання блоку бітової карти…"
#, c-format #, c-format
msgid "" msgid ""
" Cannot load block bitmap from: \n" " Cannot load block bitmap from: \n"
" %s \n" " %s \n"
msgstr "" msgstr ""
" Не вдалося завантажити блок бітової мапи з:\n" " Не вдалося завантажити блок бітової карти з:\n"
" %s \n" " %s \n"
msgid " vfs_info is not fs! " msgid " vfs_info is not fs! "
@ -1847,7 +1847,7 @@ msgid "&Ignore lock"
msgstr "Ігнорувати замок" msgstr "Ігнорувати замок"
msgid "&Open file..." msgid "&Open file..."
msgstr "&Відкрити файл..." msgstr "&Відкрити файл"
msgid "&New" msgid "&New"
msgstr "Новий" msgstr "Новий"
@ -1994,7 +1994,7 @@ msgid "&External formatter"
msgstr "З&овнішня програма форматування" msgstr "З&овнішня програма форматування"
msgid "&General... " msgid "&General... "
msgstr "&Загальні... " msgstr "&Загальні"
msgid "Save &mode..." msgid "Save &mode..."
msgstr "Режим &збереження…" msgstr "Режим &збереження…"
@ -2973,7 +2973,7 @@ msgid " Panel split "
msgstr " Розбиття панелей " msgstr " Розбиття панелей "
msgid " Highlight... " msgid " Highlight... "
msgstr " Підсвітка... " msgstr " Підсвітка"
msgid " Other options " msgid " Other options "
msgstr " Інші параметри " msgstr " Інші параметри "
@ -3054,7 +3054,7 @@ msgid " Do you really want to quit the Midnight Commander? "
msgstr " Ви дійсно хочете вийти з Midnight Commander? " msgstr " Ви дійсно хочете вийти з Midnight Commander? "
msgid "&Listing mode..." msgid "&Listing mode..."
msgstr "Фор&мат списку..." msgstr "Фор&мат списку"
msgid "&Quick view" msgid "&Quick view"
msgstr "Швидкий перегляд" msgstr "Швидкий перегляд"
@ -3063,25 +3063,25 @@ msgid "&Info"
msgstr "Інформація" msgstr "Інформація"
msgid "&Sort order..." msgid "&Sort order..."
msgstr "Порядок &сортування" msgstr "Порядок &сортування"
msgid "&Filter..." msgid "&Filter..."
msgstr "&Фільтр..." msgstr "&Фільтр"
msgid "&Encoding..." msgid "&Encoding..."
msgstr "Кодування…" msgstr "Кодування…"
msgid "&Network link..." msgid "&Network link..."
msgstr "Ме&режне з'єднання..." msgstr "Ме&режне з'єднання"
msgid "FT&P link..." msgid "FT&P link..."
msgstr "&FTP-з'єднання..." msgstr "&FTP-з'єднання"
msgid "S&hell link..." msgid "S&hell link..."
msgstr "Зв'язок через &shell..." msgstr "Зв'язок через &shell"
msgid "SM&B link..." msgid "SM&B link..."
msgstr "Зв'язок через &SMB..." msgstr "Зв'язок через &SMB"
msgid "&Rescan" msgid "&Rescan"
msgstr "Пересканувати" msgstr "Пересканувати"
@ -3189,19 +3189,19 @@ msgid "Edit hi&ghlighting group file"
msgstr "Редагувати файл підсвітки груп" msgstr "Редагувати файл підсвітки груп"
msgid "&Configuration..." msgid "&Configuration..."
msgstr "&Конфігурація..." msgstr "&Конфігурація"
msgid "&Layout..." msgid "&Layout..."
msgstr "&Макет..." msgstr "&Макет"
msgid "C&onfirmation..." msgid "C&onfirmation..."
msgstr "&Підтвердження…" msgstr "&Підтвердження…"
msgid "&Display bits..." msgid "&Display bits..."
msgstr "&Відображення символів..." msgstr "&Відображення символів"
msgid "&Virtual FS..." msgid "&Virtual FS..."
msgstr "Віртуальні &ФС..." msgstr "Віртуальні &ФС"
msgid "&Above" msgid "&Above"
msgstr "Верхня" msgstr "Верхня"
@ -3325,7 +3325,7 @@ msgid " Panel options "
msgstr " Параметри панелей " msgstr " Параметри панелей "
msgid " Pause after run... " msgid " Pause after run... "
msgstr " Пауза після виконання... " msgstr " Пауза після виконання"
msgid "Configure options" msgid "Configure options"
msgstr "Параметри конфігурації" msgstr "Параметри конфігурації"

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -1881,7 +1881,6 @@ void
edit_search_cmd (WEdit * edit, int again) edit_search_cmd (WEdit * edit, int again)
{ {
char *search_string = NULL, *search_string_dup = NULL; char *search_string = NULL, *search_string_dup = NULL;
gsize len = 0; gsize len = 0;
if (!edit) if (!edit)
@ -1910,36 +1909,45 @@ edit_search_cmd (WEdit * edit, int again)
{ {
#ifdef HAVE_CHARSET #ifdef HAVE_CHARSET
GString *tmp; GString *tmp;
if (search_string && *search_string) if (search_string && *search_string)
{ {
tmp = str_convert_to_display (search_string); tmp = str_convert_to_display (search_string);
if (tmp != NULL)
g_free (search_string_dup); {
search_string_dup = NULL; if (tmp->len == 0)
g_string_free (tmp, TRUE);
if (tmp && tmp->len) else
search_string = search_string_dup = tmp->str; {
g_string_free (tmp, FALSE); g_free (search_string);
search_string = search_string_dup = g_string_free (tmp, FALSE);
}
}
} }
#endif /* HAVE_CHARSET */ #endif /* HAVE_CHARSET */
editcmd_dialog_search_show (edit, &search_string); editcmd_dialog_search_show (edit, &search_string);
g_free (search_string_dup);
search_string_dup = NULL;
#ifdef HAVE_CHARSET #ifdef HAVE_CHARSET
if (search_string && *search_string) if (search_string && *search_string)
{ {
tmp = str_convert_to_input (search_string); tmp = str_convert_to_input (search_string);
if (tmp && tmp->len) if (tmp != NULL)
search_string = tmp->str; {
if (tmp->len == 0)
g_string_free (tmp, FALSE); g_string_free (tmp, TRUE);
else
if (search_string_dup) {
g_free (search_string_dup); g_free (search_string);
search_string = g_string_free (tmp, FALSE);
}
}
} }
#endif /* HAVE_CHARSET */ #endif /* HAVE_CHARSET */
edit_push_action (edit, KEY_PRESS + edit->start_display); edit_push_action (edit, KEY_PRESS + edit->start_display);
if (!search_string) if (search_string == NULL)
{ {
edit->force |= REDRAW_COMPLETELY; edit->force |= REDRAW_COMPLETELY;
edit_scroll_screen_over_cursor (edit); edit_scroll_screen_over_cursor (edit);
@ -1959,8 +1967,10 @@ edit_search_cmd (WEdit * edit, int again)
if (edit->search == NULL) if (edit->search == NULL)
{ {
edit->search_start = edit->curs1; edit->search_start = edit->curs1;
g_free (search_string);
return; return;
} }
edit->search->search_type = edit_search_options.type; edit->search->search_type = edit_search_options.type;
edit->search->is_all_charsets = edit_search_options.all_codepages; edit->search->is_all_charsets = edit_search_options.all_codepages;
edit->search->is_case_sentitive = edit_search_options.case_sens; edit->search->is_case_sentitive = edit_search_options.case_sens;
@ -1968,6 +1978,8 @@ edit_search_cmd (WEdit * edit, int again)
edit->search->search_fn = edit_search_cmd_callback; edit->search->search_fn = edit_search_cmd_callback;
} }
g_free (search_string);
if (search_create_bookmark) if (search_create_bookmark)
{ {
edit_search_cmd_search_create_bookmark (edit); edit_search_cmd_search_create_bookmark (edit);

Просмотреть файл

@ -93,7 +93,7 @@ void
editcmd_dialog_replace_show (WEdit * edit, const char *search_default, const char *replace_default, editcmd_dialog_replace_show (WEdit * edit, const char *search_default, const char *replace_default,
/*@out@ */ char **search_text, /*@out@ */ char **replace_text) /*@out@ */ char **search_text, /*@out@ */ char **replace_text)
{ {
if (*search_default == '\0') if ((search_default == NULL) || (*search_default == '\0'))
search_default = INPUT_LAST_TEXT; search_default = INPUT_LAST_TEXT;
{ {
@ -162,7 +162,7 @@ editcmd_dialog_search_show (WEdit * edit, char **search_text)
{ {
(void) edit; (void) edit;
if (*search_text == '\0') if (*search_text == NULL)
*search_text = INPUT_LAST_TEXT; *search_text = INPUT_LAST_TEXT;
{ {

Просмотреть файл

@ -1054,6 +1054,7 @@ move_file_file (FileOpTotalContext *tctx, FileOpContext *ctx, const char *s, con
struct stat src_stats, dst_stats; struct stat src_stats, dst_stats;
FileProgressStatus return_status = FILE_CONT; FileProgressStatus return_status = FILE_CONT;
gboolean copy_done = FALSE; gboolean copy_done = FALSE;
gboolean old_ask_overwrite;
file_progress_show_source (ctx, s); file_progress_show_source (ctx, s);
file_progress_show_target (ctx, d); file_progress_show_target (ctx, d);
@ -1121,7 +1122,10 @@ move_file_file (FileOpTotalContext *tctx, FileOpContext *ctx, const char *s, con
#endif #endif
/* Failed because filesystem boundary -> copy the file instead */ /* Failed because filesystem boundary -> copy the file instead */
old_ask_overwrite = tctx->ask_overwrite;
tctx->ask_overwrite = FALSE;
return_status = copy_file_file (tctx, ctx, s, d); return_status = copy_file_file (tctx, ctx, s, d);
tctx->ask_overwrite = old_ask_overwrite;
if (return_status != FILE_CONT) if (return_status != FILE_CONT)
return return_status; return return_status;

Просмотреть файл

@ -960,7 +960,7 @@ file_mask_dialog (FileOpContext * ctx, FileOperation operation,
/* 9 - OFFSET */ /* 9 - OFFSET */
QUICK_CHECKBOX (37, FMDX, 4, FMDY, N_("&Using shell patterns"), &source_easy_patterns), QUICK_CHECKBOX (37, FMDX, 4, FMDY, N_("&Using shell patterns"), &source_easy_patterns),
/* 10 - OFFSET */ /* 10 - OFFSET */
QUICK_INPUT (3, FMDX, 3, FMDY, easy_patterns ? "*" : "^\\(.*\\)$", 58, 0, "input-def", QUICK_INPUT (3, FMDX, 3, FMDY, easy_patterns ? "*" : "^(.*)$", 58, 0, "input-def",
&source_mask), &source_mask),
/* 11 - OFFSET */ /* 11 - OFFSET */
QUICK_LABEL (3, FMDX, 2, FMDY, fmd_buf), QUICK_LABEL (3, FMDX, 2, FMDY, fmd_buf),

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -29,20 +29,18 @@
#ifndef MC_HELP_H #ifndef MC_HELP_H
#define MC_HELP_H #define MC_HELP_H
#define HELP_TEXT_WIDTH 58
/* Markers used in the help files */ /* Markers used in the help files */
#define CHAR_LINK_START '\01' /* Ctrl-A */ #define CHAR_LINK_START '\01' /* Ctrl-A */
#define CHAR_LINK_POINTER '\02' /* Ctrl-B */ #define CHAR_LINK_POINTER '\02' /* Ctrl-B */
#define CHAR_LINK_END '\03' /* Ctrl-C */ #define CHAR_LINK_END '\03' /* Ctrl-C */
#define CHAR_NODE_END '\04' /* Ctrl-D */ #define CHAR_NODE_END '\04' /* Ctrl-D */
#define CHAR_ALTERNATE '\05' /* Ctrl-E */ #define CHAR_ALTERNATE '\05' /* Ctrl-E */
#define CHAR_NORMAL '\06' /* Ctrl-F */ #define CHAR_NORMAL '\06' /* Ctrl-F */
#define CHAR_VERSION '\07' /* Ctrl-G */ #define CHAR_VERSION '\07' /* Ctrl-G */
#define CHAR_FONT_BOLD '\010' /* Ctrl-H */ #define CHAR_FONT_BOLD '\010' /* Ctrl-H */
#define CHAR_FONT_NORMAL '\013' /* Ctrl-K */ #define CHAR_FONT_NORMAL '\013' /* Ctrl-K */
#define CHAR_FONT_ITALIC '\024' /* Ctrl-T */ #define CHAR_FONT_ITALIC '\024' /* Ctrl-T */
void interactive_display (const char *filename, const char *node); void interactive_display (const char *filename, const char *node);
#endif #endif /* MC_HELP_H */

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -23,7 +23,8 @@
#define MC_MOUNTLIST_H #define MC_MOUNTLIST_H
/* Filesystem status */ /* Filesystem status */
struct my_statfs { struct my_statfs
{
int type; int type;
char *typename; char *typename;
const char *mpoint; const char *mpoint;
@ -36,5 +37,6 @@ struct my_statfs {
void init_my_statfs (void); void init_my_statfs (void);
void my_statfs (struct my_statfs *myfs_stats, const char *path); void my_statfs (struct my_statfs *myfs_stats, const char *path);
void free_my_statfs (void);
#endif #endif

Просмотреть файл

@ -3100,6 +3100,7 @@ panel_callback (Widget * w, widget_msg_t msg, int parm)
case WIDGET_DESTROY: case WIDGET_DESTROY:
panel_destroy (panel); panel_destroy (panel);
free_my_statfs ();
return MSG_HANDLED; return MSG_HANDLED;
default: default:

Просмотреть файл

@ -329,17 +329,14 @@ mcview_execute_cmd (mcview_t * view, unsigned long command)
case CK_ViewToggleWrapMode: case CK_ViewToggleWrapMode:
/* Toggle between wrapped and unwrapped view */ /* Toggle between wrapped and unwrapped view */
mcview_toggle_wrap_mode (view); mcview_toggle_wrap_mode (view);
view->dirty++;
break; break;
case CK_ViewToggleHexEditMode: case CK_ViewToggleHexEditMode:
/* Toggle between hexview and hexedit mode */ /* Toggle between hexview and hexedit mode */
mcview_toggle_hexedit_mode (view); mcview_toggle_hexedit_mode (view);
view->dirty++;
break; break;
case CK_ViewToggleHexMode: case CK_ViewToggleHexMode:
/* Toggle between hex view and text view */ /* Toggle between hex view and text view */
mcview_toggle_hex_mode (view); mcview_toggle_hex_mode (view);
view->dirty++;
break; break;
case CK_ViewGoto: case CK_ViewGoto:
{ {
@ -365,7 +362,6 @@ mcview_execute_cmd (mcview_t * view, unsigned long command)
break; break;
case CK_ViewToggleMagicMode: case CK_ViewToggleMagicMode:
mcview_toggle_magic_mode (view); mcview_toggle_magic_mode (view);
view->dirty++;
break; break;
case CK_ViewToggleNroffMode: case CK_ViewToggleNroffMode:
mcview_toggle_nroff_mode (view); mcview_toggle_nroff_mode (view);
@ -471,12 +467,12 @@ mcview_handle_key (mcview_t * view, int key)
if ((command != CK_Ignore_Key) && (mcview_execute_cmd (view, command) == MSG_HANDLED)) if ((command != CK_Ignore_Key) && (mcview_execute_cmd (view, command) == MSG_HANDLED))
return MSG_HANDLED; return MSG_HANDLED;
if (mcview_check_left_right_keys (view, key)) if (mcview_check_left_right_keys (view, key) == MSG_HANDLED)
return MSG_HANDLED; return MSG_HANDLED;
if (check_movement_keys (key, view->data_area.height + 1, view, if (check_movement_keys (key, view->data_area.height + 1, view,
mcview_cmk_move_up, mcview_cmk_move_down, mcview_cmk_move_up, mcview_cmk_move_down,
mcview_cmk_moveto_top, mcview_cmk_moveto_bottom)) mcview_cmk_moveto_top, mcview_cmk_moveto_bottom) == MSG_HANDLED)
return MSG_HANDLED; return MSG_HANDLED;
#ifdef MC_ENABLE_DEBUGGING_CODE #ifdef MC_ENABLE_DEBUGGING_CODE

Просмотреть файл

@ -138,12 +138,8 @@ mcview_dialog_search (mcview_t * view)
g_free (view->last_search_string); g_free (view->last_search_string);
view->last_search_string = exp; view->last_search_string = exp;
mcview_nroff_seq_free (&view->search_nroff_seq);
if (view->search_nroff_seq != NULL) mc_search_free (view->search);
mcview_nroff_seq_free (&(view->search_nroff_seq));
if (view->search != NULL)
mc_search_free (view->search);
view->search = mc_search_new (view->last_search_string, -1); view->search = mc_search_new (view->last_search_string, -1);
view->search_nroff_seq = mcview_nroff_seq_new (view); view->search_nroff_seq = mcview_nroff_seq_new (view);

Просмотреть файл

@ -281,55 +281,54 @@ mcview_display_hex (mcview_t * view)
gboolean gboolean
mcview_hexedit_save_changes (mcview_t * view) mcview_hexedit_save_changes (mcview_t * view)
{ {
struct hexedit_change_node *curr, *next; int answer = 0;
int fp, answer;
char *text, *error;
if (view->change_list == NULL) if (view->change_list == NULL)
return TRUE; return TRUE;
retry_save: while (answer == 0)
assert (view->filename != NULL);
fp = mc_open (view->filename, O_WRONLY);
if (fp == -1)
goto save_error;
for (curr = view->change_list; curr != NULL; curr = next)
{ {
next = curr->next; int fp;
char *text;
struct hexedit_change_node *curr, *next;
if (mc_lseek (fp, curr->offset, SEEK_SET) == -1 || mc_write (fp, &(curr->value), 1) != 1) assert (view->filename != NULL);
goto save_error;
/* delete the saved item from the change list */ fp = mc_open (view->filename, O_WRONLY);
view->change_list = next; if (fp != -1)
view->dirty++; {
mcview_set_byte (view, curr->offset, curr->value); for (curr = view->change_list; curr != NULL; curr = next)
g_free (curr); {
next = curr->next;
if (mc_lseek (fp, curr->offset, SEEK_SET) == -1
|| mc_write (fp, &(curr->value), 1) != 1)
goto save_error;
/* delete the saved item from the change list */
view->change_list = next;
view->dirty++;
mcview_set_byte (view, curr->offset, curr->value);
g_free (curr);
}
if (mc_close (fp) == -1)
message (D_ERROR, _(" Save file "),
_(" Error while closing the file: \n %s \n"
" Data may have been written or not. "), unix_error_string (errno));
view->dirty++;
return TRUE;
}
save_error:
text = g_strdup_printf (_(" Cannot save file: \n %s "), unix_error_string (errno));
(void) mc_close (fp);
answer = query_dialog (_(" Save file "), text, D_ERROR, 2, _("&Retry"), _("&Cancel"));
g_free (text);
} }
if (mc_close (fp) == -1)
{
error = g_strdup (unix_error_string (errno));
message (D_ERROR, _(" Save file "),
_(" Error while closing the file: \n %s \n"
" Data may have been written or not. "), error);
g_free (error);
}
mcview_update (view);
return TRUE;
save_error:
error = g_strdup (unix_error_string (errno));
text = g_strdup_printf (_(" Cannot save file: \n %s "), error);
g_free (error);
(void) mc_close (fp);
answer = query_dialog (_(" Save file "), text, D_ERROR, 2, _("&Retry"), _("&Cancel"));
g_free (text);
if (answer == 0)
goto retry_save;
return FALSE; return FALSE;
} }

Просмотреть файл

@ -79,7 +79,6 @@ mcview_toggle_magic_mode (mcview_t * view)
filename = g_strdup (view->filename); filename = g_strdup (view->filename);
command = g_strdup (view->command); command = g_strdup (view->command);
mcview_done (view);
mcview_load (view, command, filename, 0); mcview_load (view, command, filename, 0);
g_free (filename); g_free (filename);
g_free (command); g_free (command);
@ -92,6 +91,8 @@ mcview_toggle_magic_mode (mcview_t * view)
void void
mcview_toggle_wrap_mode (mcview_t * view) mcview_toggle_wrap_mode (mcview_t * view)
{ {
if (view->text_wrap_mode)
view->dpy_start = mcview_bol (view, view->dpy_start);
view->text_wrap_mode = !view->text_wrap_mode; view->text_wrap_mode = !view->text_wrap_mode;
view->dpy_bbar_dirty = TRUE; view->dpy_bbar_dirty = TRUE;
view->dirty++; view->dirty++;
@ -190,12 +191,20 @@ mcview_done (mcview_t * view)
coord_cache_free (view->coord_cache), view->coord_cache = NULL; coord_cache_free (view->coord_cache), view->coord_cache = NULL;
if (!(view->converter == INVALID_CONV || view->converter != str_cnv_from_term)) if (view->converter == INVALID_CONV)
view->converter = str_cnv_from_term;
if (view->converter != str_cnv_from_term)
{ {
str_close_conv (view->converter); str_close_conv (view->converter);
view->converter = str_cnv_from_term; view->converter = str_cnv_from_term;
} }
mc_search_free (view->search);
view->search = NULL;
g_free (view->last_search_string);
view->last_search_string = NULL;
mcview_nroff_seq_free (&view->search_nroff_seq);
mcview_hexedit_free_change_list (view); mcview_hexedit_free_change_list (view);
} }

Просмотреть файл

@ -108,12 +108,21 @@ mcview_move_up (mcview_t * view, off_t lines)
off_t i; off_t i;
for (i = 0; i < lines; i++) for (i = 0; i < lines; i++)
{ {
new_offset = mcview_bol (view, view->dpy_start); off_t cur_bol;
cur_bol = new_offset = mcview_bol (view, view->dpy_start);
if (new_offset > 0) if (new_offset > 0)
new_offset--; new_offset--;
new_offset = mcview_bol (view, new_offset); new_offset = mcview_bol (view, new_offset);
if (new_offset < 0) if (new_offset < 0)
new_offset = 0; new_offset = 0;
if (view->text_wrap_mode)
{
size_t last_row_length = (view->dpy_start - new_offset) % view->data_area.width;
if (last_row_length != 0 && cur_bol == view->dpy_start)
new_offset = max (new_offset, view->dpy_start - last_row_length);
else
new_offset = max (new_offset, view->dpy_start - view->data_area.width);
}
view->dpy_start = new_offset; view->dpy_start = new_offset;
} }
} }
@ -149,6 +158,8 @@ mcview_move_down (mcview_t * view, off_t lines)
{ {
off_t new_offset; off_t new_offset;
new_offset = mcview_eol (view, view->dpy_start); new_offset = mcview_eol (view, view->dpy_start);
if (view->text_wrap_mode)
new_offset = min (new_offset, view->dpy_start + view->data_area.width);
view->dpy_start = new_offset; view->dpy_start = new_offset;
} }
} }
@ -173,10 +184,6 @@ mcview_move_left (mcview_t * view, off_t columns)
if (old_cursor > 0 || view->hexedit_lownibble) if (old_cursor > 0 || view->hexedit_lownibble)
view->hexedit_lownibble = !view->hexedit_lownibble; view->hexedit_lownibble = !view->hexedit_lownibble;
} }
else if (view->text_wrap_mode)
{
/* nothing to do */
}
else else
{ {
if (view->dpy_text_column >= columns) if (view->dpy_text_column >= columns)
@ -207,10 +214,6 @@ mcview_move_right (mcview_t * view, off_t columns)
if (old_cursor < last_byte || !view->hexedit_lownibble) if (old_cursor < last_byte || !view->hexedit_lownibble)
view->hexedit_lownibble = !view->hexedit_lownibble; view->hexedit_lownibble = !view->hexedit_lownibble;
} }
else if (view->text_wrap_mode)
{
/* nothing to do */
}
else else
{ {
view->dpy_text_column += columns; view->dpy_text_column += columns;