From 7772f00aabc4be7c50fe6ce117f0311f7302100c Mon Sep 17 00:00:00 2001 From: Andrew Borodin Date: Sun, 16 Apr 2017 07:56:22 +0300 Subject: [PATCH 01/26] Ticket #3780: code clean up before 4.8.20 release. Direct include for MB_LEN_MAX. Signed-off-by: Andrew Borodin --- lib/timefmt.c | 1 + lib/widget/input.h | 2 ++ lib/widget/input_complete.c | 1 + src/filemanager/panel.h | 1 + src/help.c | 1 + 5 files changed, 6 insertions(+) diff --git a/lib/timefmt.c b/lib/timefmt.c index 5ed53145f..6503dc2d5 100644 --- a/lib/timefmt.c +++ b/lib/timefmt.c @@ -37,6 +37,7 @@ #include #include +#include /* MB_LEN_MAX */ #include "lib/global.h" #include "lib/strutil.h" diff --git a/lib/widget/input.h b/lib/widget/input.h index bba310f9b..1e46c8046 100644 --- a/lib/widget/input.h +++ b/lib/widget/input.h @@ -6,6 +6,8 @@ #ifndef MC__WIDGET_INPUT_H #define MC__WIDGET_INPUT_H +#include /* MB_LEN_MAX */ + #include "lib/keybind.h" /* global_keymap_t */ /*** typedefs(not structures) and defined constants **********************************************/ diff --git a/lib/widget/input_complete.c b/lib/widget/input_complete.c index 79683bd19..fc6406792 100644 --- a/lib/widget/input_complete.c +++ b/lib/widget/input_complete.c @@ -33,6 +33,7 @@ #include #include +#include /* MB_LEN_MAX */ #include #include #include diff --git a/src/filemanager/panel.h b/src/filemanager/panel.h index 198d73de5..7f3223be1 100644 --- a/src/filemanager/panel.h +++ b/src/filemanager/panel.h @@ -6,6 +6,7 @@ #define MC__PANEL_H #include /* uintmax_t */ +#include /* MB_LEN_MAX */ #include "lib/global.h" /* gboolean */ #include "lib/fs.h" /* MC_MAXPATHLEN */ diff --git a/src/help.c b/src/help.c index bcce2cb72..cada7d665 100644 --- a/src/help.c +++ b/src/help.c @@ -50,6 +50,7 @@ #include #include +#include /* MB_LEN_MAX */ #include #include #include From 49dc23e0f29faed920054f78537127edc42750d1 Mon Sep 17 00:00:00 2001 From: Andrew Borodin Date: Sat, 22 Apr 2017 14:24:22 +0300 Subject: [PATCH 02/26] doc/keybind-migration.txt: remove. Signed-off-by: Andrew Borodin --- doc/Makefile.am | 2 +- doc/keybind-migration.txt | 484 -------------------------------------- 2 files changed, 1 insertion(+), 485 deletions(-) delete mode 100644 doc/keybind-migration.txt diff --git a/doc/Makefile.am b/doc/Makefile.am index 16551c8e5..c192da138 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -1,7 +1,7 @@ DIST_SUBDIRS = hints man hlp SUBDIRS = hints man hlp -DOCS = FAQ HACKING INSTALL INSTALL.FAST MAINTAINERS README.QNX keybind-migration.txt MIRRORS.txt +DOCS = FAQ HACKING INSTALL INSTALL.FAST MAINTAINERS README.QNX MIRRORS.txt EXTRA_DIST = $(DX_CONFIG) doxygen-include.am $(DOCS) include doxygen-include.am diff --git a/doc/keybind-migration.txt b/doc/keybind-migration.txt deleted file mode 100644 index cf913b535..000000000 --- a/doc/keybind-migration.txt +++ /dev/null @@ -1,484 +0,0 @@ -This file describes how keybind names used in mc.*.keymap files -are changed in 4.8.* releases. - -+---------------------------------+-------------------------+-----------------------------------------+ -| Old name | New name | Notes | -+---------------------------------+-------------------------+-----------------------------------------+ -| [main] section | -+---------------------------------+-------------------------+-----------------------------------------+ -| CmdCopy | Copy | | -| CmdRename | Move | | -| CmdDelete | Delete | | -| CmdMkdir | MakeDir | | -| ShowCommandLine | Shell | | -| CmdMenu | Menu | | -| CmdMenuLastSelected | MenuLastSelected | | -| CmdUserMenu | UserMenu | | -| CmdEditMcMenu | EditUserMenu | | -| CmdHelp | Help | | -| CmdHistory | History | | -| CmdEdit | Edit | | -| CmdEditForceInternal | EditForceInternal | | -| CmdView | View | | -| CmdViewFile | ViewFile | | -| CmdFilteredView | ViewFiltered | | -| CmdFind | Find | | -| CmdReread | Reread | | -| CmdSingleDirsize | DirSize | | -| CmdDialogList | ScreenList | | -| CmdSuspend | Suspend | | -| CmdCopyCurrentPathname | PutCurrentPath | | -| CmdCopyOtherPathname | PutOtherPath | | -| CmdSelect | Select | | -| CmdUnselect | Unselect | | -| CmdReverseSelection | SelectInvert | | -| CmdQuickChdir | HotList | | -| CmdSwapPanel | Swap | | -| CmdListing | PanelListing | | -| CmdToggleListing | PanelListingSwitch | | -| CmdChangeListing | PanelListingChange | | -| CmdToggleShowHidden | ShowHidden | | -| CmdTogglePanelsSplit | SplitVertHoriz | | -| CmdQuickCd | CdQuick | | -| CmdConfigureBox | Options | | -| CmdLayout | OptionsLayout | | -| CmdPanelOptions | OptionsPanel | | -| CmdConfirmBox | OptionsConfirm | | -| CmdDisplayBitsBox | OptionsDisplayBits | | -| CmdConfigureVfs | OptionsVfs | | -| CmdSaveSetup | SaveSetup | | -| CmdEditExtFile | EditExtensionsFile | | -| CmdEditFhlFile | EditFileHighlightFile | | -| CmdFilter | Filter | | -| CmdFishlink | ConnectFish | | -| CmdFtplink | ConnectFtp | | -| CmdSmblink | ConnectSmb | | -| CmdUndelete | Undelete | | -| CmdQuit | Quit | | -| CmdQuietQuit | QuitQuiet | | -| ExtMap1 | ExtendedKeyMap | | -| CmdEditUserMenu | | Unused. Removed | -+---------------------------------+-------------------------+-----------------------------------------+ -| [main:xmap] section | -+---------------------------------+-------------------------+-----------------------------------------+ -| CmdChmod | ChangeMode | | -| CmdChown | ChangeOwn | | -| CmdCompareDirs | CompareDirs | | -| CmdDiffView | CompareFiles | | -| CmdInfo | PanelInfo | | -| CmdQuickView | PanelQuickView | | -| CmdLink | Link | | -| CmdSymlink | LinkSymbolic | | -| CmdRelativeSymlink | LinkSymbolicRelative | | -| CmdEditSymlink | LinkSymbolicEdit | | -| CmdExternalPanelize | ExternalPanelize | | -| CmdReselectVfs | VfsList | | -| CmdJobs | Jobs | | -| CmdAddHotlist | HotListAdd | | -| CmdCopyCurrentPathname | PutCurrentPath | | -| CmdCopyOtherPathname | PutOtherPath | | -| CmdCopyCurrentTagged | PutCurrentTagged | | -| CmdCopyOtherTagged | PutOtherTagged | | -| CmdCopyCurrentReadlink | PutCurrentLink | | -| CmdCopyOtherReadlink | PutOtherLink | | -+---------------------------------+-------------------------+-----------------------------------------+ -| [panel] section | -+---------------------------------+-------------------------+-----------------------------------------+ -| PanelMoveUp | Up | | -| PanelMoveDown | Down | | -| PanelMoveLeft | Left | | -| PanelMoveRight | Right | | -| PanelPrevPage | PageUp | | -| PanelNextPage | PageDown | | -| PanelMoveHome | Top | | -| PanelMoveEnd | Bottom | | -| PanelGotoTopFile | TopOnScreen | | -| PanelGotoMiddleFile | MiddleOnScreen | | -| PanelGotoBottomFile | BottomOnScreen | | -| PanelCopyLocal | CopySingle | | -| PanelRenameLocal | MoveSingle | | -| PanelDeleteLocal | DeleteSingle | | -| PanelStartSearch | Search | | -| PanelSetPanelEncoding | SelectCodepage | | -| PanelDirectoryHistoryList | History | | -| PanelDirectoryHistoryNext | HistoryNext | | -| PanelDirectoryHistoryPrev | HistoryPrev | | -| PanelEditNew | EditNew | | -| PanelViewSimple | ViewRaw | | -| PanelSelect | Select | | -| PanelUnselect | Unselect | | -| PanelReverseSelection | SelectInvert | | -| PanelSyncOtherPanel | PanelOtherSync | | -| PanelChdirOtherPanel | PanelOtherCd | | -| PanelChdirToReadlink | PanelOtherCdLink | | -| PanelGotoChildDir | CdChild | | -| PanelGotoParentDir | CdParent | | -| PanelSmartGotoParentDir | CdParentSmart | | -| PanelMarkFile | Mark | | -| PanelMarkDown | MarkDown | | -| PanelMarkUp | MarkUp | | -| PanelDoEnter | Enter | | -| PanelSelectSortOrder | Sort | | -| PanelReverseSort | SortReverse | | -| PanelToggleSortOrderPrev | SortPrev | | -| PanelToggleSortOrderNext | SortNext | | -| PanelSortOrderByName | SortByName | | -| PanelSortOrderByExt | SortByExt | | -| PanelSortOrderBySize | SortBySize | | -| PanelSortOrderByMTime | SortByMTime | | -+---------------------------------+-------------------------+-----------------------------------------+ -| [dialog] section | -+---------------------------------+-------------------------+-----------------------------------------+ -| DialogOK | Ok | | -| DialogCancel | Cancel | | -| DialogPrevItem | Up, Left | Left should not be used | -| DialogNextItem | Down, Right | Right should not be used | -| DialogHelp | Help | | -| DialogRefresh | Refresh | | -| DialogSuspend | Suspend | | -| CmdDialogList | ScreenList | | -| CmdDialogNext | ScreenNext | | -| CmdDialogPrev | ScreenPrev | | -+---------------------------------+-------------------------+-----------------------------------------+ -| [input] section | -+---------------------------------+-------------------------+-----------------------------------------+ -| InputBol | Home | | -| InputEol | End | | -| InputMoveLeft | Left | | -| InputMoveRight | Right | | -| InputBackwardChar | | Removed. 'Left' is used instead | -| InputForwardChar | | Removed. 'Right' is used instead | -| InputWordLeft | WordLeft | | -| InputBackwardWord | | Removed. 'WordLeft' is used instead | -| InputWordRight | WordRight | | -| InputForwardWord | | Removed. 'WordRight' is used instead | -| InputDeleteChar | Delete | | -| InputBackwardDelete | Backspace | | -| InputBackwardKillWord | DeleteToWordBegin | | -| InputKillWord | DeleteToWordEnd | | -| InputKillLine | DeleteToEnd | | -| InputKillRegion | Remove | | -| InputClearLine | Clear | | -| InputComplete | Complete | | -| InputSetMark | Mark | | -| InputLeftHighlight | MarkLeft | | -| InputRightHighlight | MarkRight | | -| InputWordLeftHighlight | MarkToWordBegin | | -| InputWordRightHighlight | MarkToWordEnd | | -| InputBolHighlight | MarkToHome | | -| InputEolHighlight | MarkToEnd | | -| InputHistoryPrev | HistoryPrev | | -| InputHistoryNext | HistoryNext | | -| InputHistoryShow | History | | -| InputXCut | Cut | | -| InputXStore | Store | | -| InputXPaste | Paste | | -| InputYank | Yank | | -+---------------------------------+-------------------------+-----------------------------------------+ -| [listbox] section | -+---------------------------------+-------------------------+-----------------------------------------+ -| ListboxMoveUp | Up | | -| ListboxMoveDown | Down | | -| ListboxMovePgUp | PageUp | | -| ListboxMovePgDn | PageDown | | -| ListboxMoveHome | Top | | -| ListboxMoveEnd | Bottom | | -| ListboxDeleteItem | Delete | | -| ListboxDeleteAll | Clear | | -+---------------------------------+-------------------------+-----------------------------------------+ -| [tree] section | -+---------------------------------+-------------------------+-----------------------------------------+ -| TreeMoveUp | Up | | -| TreeMoveDown | Down | | -| TreeMoveLeft | Left | | -| TreeMoveRight | Right | | -| TreeMovePgUp | PageUp | | -| TreeMovePgDn | PageDown | | -| TreeMoveHome | Top | | -| TreeMoveEnd | Bottom | | -| TreeCopy | Copy | | -| TreeMove | Move | | -| TreeRemove | Delete | | -| TreeHelp | Help | | -| TreeStartSearch | Search | | -| TreeRescan | Reread | | -| TreeToggleNav | ToggleNavigation | | -| TreeForget | Forget | | -| TreeOpen | Enter | | -+---------------------------------+-------------------------+-----------------------------------------+ -| [help] section | -+---------------------------------+-------------------------+-----------------------------------------+ -| HelpIndex | Index | | -| HelpBack | Back | | -| HelpMoveUp | Up | | -| HelpMoveDown | Down | | -| HelpMovePgUp | PageUp | | -| HelpMovePgDn | PageDown | | -| HelpMoveHalfPgUp | HalfPageUp | | -| HelpMoveHalfPgDn | HalfPageDown | | -| HelpMoveTop | Top | | -| HelpMoveBottom | Bottom | | -| HelpSelectLink | Enter | | -| HelpNextLink | LinkNext | | -| HelpPrevLink | LinkPrev | | -| HelpNextNode | NodeNext | | -| HelpPrevNode | NodePrev | | -| HelpHelp | Help | | -| HelpQuit | Quit | | -+---------------------------------+-------------------------+-----------------------------------------+ -| [editor] section | -+---------------------------------+-------------------------+-----------------------------------------+ -| EditEnter | Enter | | -| EditUp | Up | | -| EditDown | Down | | -| EditLeft | Left | | -| EditRight | Right | | -| EditHome | Home | | -| EditEnd | End | | -| EditPageUp | PageUp | | -| EditPageDown | PageDown | | -| EditBeginningOfText | Top | | -| EditEndOfText | Bottom | | -| EditBeginPage | TopOnScreen | | -| EditEndPage | BottomOnScreen | | -| EditParagraphUp | ParagraphUp | | -| EditParagraphDown | ParagraphDown | | -| EditParagraphFormat | ParagraphFormat | | -| EditRemove | Remove | | -| EditDelete | Delete | | -| EditBackSpace | BackSpace | | -| EditWordLeft | WordLeft | | -| EditWordRight | WordRight | | -| EditDeleteWordLeft | DeleteToWordBegin | | -| EditDeleteWordRight | DeleteToWordEnd | | -| EditDeleteLine | DeleteLine | | -| EditDeleteToLineBegin | DeleteToHome | | -| EditDeleteToLineEnd | DeleteToEnd | | -| EditReturn | Return | | -| EditTab | Tab | | -| EditToggleInsert | InsertOverwrite | | -| EditUndo | Undo | | -| EditRedo | Redo | | -| EditInsertLiteral | InsertLiteral | | -| EditMenu | Menu | | -| EditUserMenu | UserMenu | | -| | EditUserMenu | Added to edit the user menu of editor | -| EditSelectionHistory | History | | -| EditHelp | Help | | -| EditFind | Search | | -| EditFindAgain | SearchContinue | | -| EditReplace | Replace | | -| EditReplaceAgain | ReplaceContinue | | -| EditCompleteWord | | Removed. 'Complete' is used instead | -| EditComplete | Complete | | -| EditLoad | EditFile | | -| EditInsertFile | InsertFile | | -| EditSave | Save | | -| EditSaveas | SaveAs | | -| EditSaveBlock | BlockSave | | -| EditShiftBlockLeft | BlockShiftLeft | | -| EditShiftBlockRight | BlockShiftRight | | -| EditMark | Mark | | -| EditColumnMark | MarkColumn | | -| EditMarkAll | MarkAll | | -| EditLeftHighlight | MarkLeft | | -| EditRightHighlight | MarkRight | | -| EditUpHighlight | MarkUp | | -| EditDownHighlight | MarkDown | | -| EditPageUpHighlight | MarkPageUp | | -| EditPageDownHighlight | MarkPageDown | | -| EditParagraphUpHighlight | MarkParagraphUp | | -| EditParagraphDownHighlight | MarkParagraphDown | | -| EditWordLeftHighlight | MarkToWordBegin | | -| EditWordRightHighlight | MarkToWordEnd | | -| EditHomeHighlight | MarkToHome | | -| EditEndHighlight | MarkToEnd | | -| EditBeginningOfTextHighlight | MarkToFileBegin | | -| EditEndOfTextHighlight | MarkToFileEnd | | -| EditBeginPageHighlight | MarkToPageBegin | | -| EditEndPageHighlight | MarkToPageEnd | | -| EditScrollUpHighlight | MarkScrollUp | | -| EditScrollDownHighlight | MarkScrollDown | | -| EditLeftAltHighlight | MarkColumnLeft | | -| EditRightAltHighlight | MarkColumnRight | | -| EditUpAltHighlight | MarkColumnUp | | -| EditDownAltHighlight | MarkColumnDown | | -| EditPageUpAltHighlight | MarkColumnPageUp | | -| EditPageDownAltHighlight | MarkColumnPageDown | | -| EditParagraphUpAltHighlight | MarkColumnParagraphUp | | -| EditParagraphDownAltHighlight | MarkColumnParagraphDown | | -| EditScrollUpAltHighlight | MarkColumnScrollUp | | -| EditScrollDownAltHighlight | MarkColumnScrollDown | | -| EditUnmark | Unmark | | -| EditCopy | Copy | | -| EditMove | Move | | -| EditScrollUp | ScrollUp | | -| EditScrollDown | ScrollDown | | -| EditGoto | Goto | | -| EditToggleLineState | ShowNumbers | | -| EditToggleTabTWS | ShowTabTws | | -| EditToggleShowMargin | ShowMargin | | -| EditToggleSyntax | SyntaxOnOff | | -| EditChooseSyntax | SyntaxChoose | | -| EditToggleBookmark | Bookmark | | -| EditNextBookmark | BookmarkNext | | -| EditPrevBookmark | BookmarkPrev | | -| EditFlushBookmarks | BookmarkFlush | | -| EditFindDefinition | Find | | -| EditLoadNextFile | FileNext | | -| EditLoadPrevFile | FilePrev | | -| EditXCut | Cut | | -| EditXStore | Store | | -| EditXPaste | Paste | | -| EditShell | Shell | | -| EditRefresh | Refresh | | -| EditSort | Sort | | -| EditOptions | Options | | -| EditSaveMode | OptionsSaveMode | | -| EditMatchBracket | MatchBracket | | -| EditDate | Date | | -| EditMail | Mail | | -| EditQuit | Quit | | -| EditAbout | About | | -| EditExtMode | ExtendedKeyMap | | -| EditExtCmd | ExternalCommand | | -| EditBeginRecordMacro | MacroStartRecord | | -| EditEndRecordMacro | MacroStopRecord | | -| EditBeginOrEndMacro | MacroStartStopRecord | | -| EditDeleteMacro | MacroDelete | | -| CmdLearnKeys | LearnKeys | | -| EditFindFile | | Unused. Removed | -| EditExecuteMacro | | Unused. Removed | -| EditWordLeftAltHighlight | | Unused. Removed | -| EditWordRightAltHighlight | | Unused. Removed | -| EditHomeAltHighlight | | Unused. Removed | -| EditEndAltHighlight | | Unused. Removed | -| EditBeginningOfTextAltHighlight | | Unused. Removed | -| EditEndOfTextAltHighlight | | Unused. Removed | -| EditBeginPageAltHighlight | | Unused. Removed | -| EditEndPageAltHighlight | | Unused. Removed | -| EditSaveAndQuit | | Unused. Removed | -| EditCheckSaveAndQuit | | Unused. Removed | -| EditNewWindow | | Unused. Removed | -| EditSaveDesktop | | Unused. Removed | -| EditTerminal | | Unused. Removed | -| EditTerminalApp | | Unused. Removed | -| EditTypeLoadPython | | Unused. Removed | -| EditUtil | | Unused. Removed | -| EditRunAnother | | Unused. Removed | -| EditDebugStart | | Unused. Removed | -| EditDebugStop | | Unused. Removed | -| EditDebugToggleBreak | | Unused. Removed | -| EditDebugClear | | Unused. Removed | -| EditDebugNext | | Unused. Removed | -| EditDebugStep | | Unused. Removed | -| EditDebugBackTrace | | Unused. Removed | -| EditDebugContinue | | Unused. Removed | -| EditDebugEnterCommand | | Unused. Removed | -| EditDebugUntilCurser | | Unused. Removed | -| EditCycle | | Unused. Removed | -| EditMaximize | | Unused. Removed | -| EditManPage | | Unused. Removed | -| EditCtags | | Unused. Removed | -+---------------------------------+-------------------------+-----------------------------------------+ -| [editor:xmap] section | -+---------------------------------+-------------------------+-----------------------------------------+ -| EditExecuteMacro | | Unused. Removed | -+---------------------------------+-------------------------+-----------------------------------------+ -| [viewer] section | -+---------------------------------+-------------------------+-----------------------------------------+ -| ViewMoveUp | Up | | -| ViewMoveDown | Down | | -| ViewMoveLeft | Left | | -| ViewMoveRight | Right | | -| ViewMoveToBol | Home | | -| ViewMoveToEol | End | | -| ViewMovePgUp | PageUp | | -| ViewMovePgDn | PageDown | | -| ViewMoveHalfPgUp | HalfPageUp | | -| ViewMoveHalfPgDn | HalfPageDown | | -| ViewMoveTop | Top | | -| ViewMoveBottom | Bottom | | -| ViewHelp | Help | | -| ViewSearch | Search | | -| ViewSearchContinue | SearchContinue | | -| ViewGoto | Goto | | -| ViewNextFile | FileNext | | -| ViewPrevFile | FilePrev | | -| ViewToggleHexMode | HexMode | | -| ViewToggleWrapMode | WrapMode | | -| ViewToggleMagicMode | MagicMode | | -| ViewToggleNroffMode | NroffMode | | -| ViewToggleRuler | Ruler | | -| ViewNewBookmark | Bookmark | | -| ViewGotoBookmark | BookmarkGoto | | -| ShowCommandLine | Shell | | -| ViewQuit | Quit | | -+---------------------------------+-------------------------+-----------------------------------------+ -| [viewer:hex] section | -+---------------------------------+-------------------------+-----------------------------------------+ -| ViewMoveUp | Up | | -| ViewMoveDown | Down | | -| ViewMoveLeft | Left | | -| ViewMoveRight | Right | | -| ViewMoveLeft10 | LeftQuick | | -| ViewMoveRight10 | RightQuick | | -| ViewMoveToBol | Home | | -| ViewMoveToEol | End | | -| ViewMovePgUp | PageUp | | -| ViewMovePgDn | PageDown | | -| ViewMoveTop | Top | | -| ViewMoveBottom | Bottom | | -| ViewHelp | Help | | -| ViewSearch | Search | | -| ViewSearchContinue | SearchContinue | | -| ViewHexEditSave | Save | | -| ViewGoto | Goto | | -| ViewToggleHexMode | HexMode | | -| ViewToggleHexEditMode | HexEditMode | | -| ViewToggleHexNavMode | ToggleNavigation | | -| ViewToggleMagicMode | MagicMode | | -| ViewToggleNroffMode | NroffMode | | -| ShowCommandLine | Shell | | -| ViewQuit | Quit | | -+---------------------------------+-------------------------+-----------------------------------------+ -| [diffviewer] section | -+---------------------------------+-------------------------+-----------------------------------------+ -| DiffUp | Up | | -| DiffDown | Down | | -| DiffLeft | Left | | -| DiffRight | Right | | -| DiffQuickLeft | LeftQuick | | -| DiffQuickRight | RightQuick | | -| DiffHome | Home | | -| DiffEnd | | Unused. Removed | -| DiffPageUp | PageUp | | -| DiffPageDown | PageDown | | -| DiffBOF | Top | | -| DiffEOF | Bottom | | -| DiffHelp | Help | | -| DiffSearch | Search | | -| DiffSearchContinue | SearchContinue | | -| DiffRedo | Redo | | -| DiffSave | Save | | -| DiffGoto | Goto | | -| DiffSwapPanel | Swap | | -| DiffFull | SplitFull | | -| DiffEqual | SplitEqual | | -| DiffSplitMore | SplitMore | | -| DiffSplitLess | SplitLess | | -| DiffSetTab2 | Tab2 | | -| DiffSetTab3 | Tab3 | | -| DiffSetTab4 | Tab4 | | -| DiffSetTab8 | Tab8 | | -| DiffEditCurrent | Edit | | -| DiffEditOther | EditOther | | -| DiffNextHunk | HunkNext | | -| DiffPrevHunk | HunkPrev | | -| DiffMergeCurrentHunk | Merge | | -| DiffDisplaySymbols | ShowSymbols | | -| DiffDisplayNumbers | ShowNumbers | | -| DiffOptions | Options | | -| ShowCommandLine | Shell | | -| DiffQuit | Quit | | -+---------------------------------+-------------------------+-----------------------------------------+ From 42b3af01320f81c4283a434ac1d9cd93a7159f09 Mon Sep 17 00:00:00 2001 From: Andrew Borodin Date: Sat, 22 Apr 2017 14:26:53 +0300 Subject: [PATCH 03/26] doc: move news of 4.7 series to separate file. Signed-off-by: Andrew Borodin --- doc/NEWS | 703 --------------------------------------------------- doc/NEWS.4.7 | 701 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 701 insertions(+), 703 deletions(-) create mode 100644 doc/NEWS.4.7 diff --git a/doc/NEWS b/doc/NEWS index 8b1fda5f9..9b3b3251f 100644 --- a/doc/NEWS +++ b/doc/NEWS @@ -1068,706 +1068,3 @@ Be aware. * patchfs incorrectly works with filenames containing spaces (#2572) * cd to ~ processed incorrectly in the command line if more than one space is separating the "cd" and "~" (#2120) - - -Version 4.7.5 - -- Core - - * Minor enhancement and fix for mc.ext for .so libraries and ELF objects (#1800): - - .so libraries have the higher priority of extension handling over ELF objects; - - added -C -D options to nm utility for .so libraries; - - added -C option to nm utility for ELF objects. - -- Editor - - * Copy to clipboard doesn't reset the text selection (#2238) - * Don't reset search position after file opened in viewer and reopened in mcedit (#2449) - -- Misc - - * Code cleanup - * Translation updates - -- Fixes - - * Crash in copy/move progress dialog (#2448) - * Broken autocompletion (#2288) - * Text selection bugs in mcedit (#1898, #2437) - * awk is used instead of grep in iso9660 VFS plugin (#1963) - - -Version 4.7.5-pre1 - -- Core - - * Case insensitive sort order of files does not mix dot-files with others (#1894) - * Repeat previous quicksearch on C-s C-s (without entering text) (#2365) - * Added new colors for dialogs and status bars (#2170, #2171, #2197) - * Added new action PanelSmartGotoParentDir. Not defined by default. This keybinding maybe used - for bind 'Backspace' as hotkey for 'cd ..' (only if command line is empty)(#2375) - -- VFS - - * Hide panels before connect to the FISH (#2268) - -- Editor - - * Internal editor's bookmarks are persistent now and not lost after exit from the editor. - They are saved in ~/.mc/filepos file (#2287) - * Added forgotten shortcuts from 4.6 branch (#2404) - * Added cython syntax highlighting (#2427) - -- Viewer - - * Speed up of up/down moving (#2229) - -- Misc - - * Changed installation destination for some files (#1424): - - /etc/mc/Syntax -> /usr/share/mc/syntax/Syntax; - - /etc/mc/mc.lib -> /usr/share/mc/mc.lib; - - /etc/mc/mc.charsets -> /usr/share/mc/mc.charsets. Added capability to load codepage list - from /usr/share/mc/mc.charsets and /etc/mc/mc.charsets and merge them then; - - hint files are installed into /usr/share/mc/hints instead of /usr/share/mc; - - help files are installed into /usr/share/mc/help instead of /usr/share/mc. - * Massive reorganizing of source code tree and total indentation in according with mc policy (#2409) - * Doc updates - * Translation updates - * Added new translations: Basque, Estonian, Georgian, Indonesian - * Extended list of GCC warning flags (#2409) - * Split GLib and GModule compiler and linker options (#2409) - * Added dark skin - -- Fixes - - * Hang up after exit on FreeBSD (#2333, #2415) - * Segfault on NetBSD >= 3.0 on startup (#2425) - * Multi-screen engine doesn't handle correctly some cases (#1490) - * Overflow of file operation counters (#2429) - * Fx key numbers were not displayed for disabled keys (#2350) - * Can't put char '?' into a new name (#2327) - * Incorrect initial value of WCheck and WRadio widgets width (#2362) - * Panel encoding is not shown correctly in "Choose codepage" dialog (#1512) - * Cannot change panel encoding without VFS support (#2137) - * Panel contents isn't scrolled down by mouse dragging (#2395) - * Panel states are saved in panels.ini at quit only if "Auto save panels setup" option is set (#1939) - * Incorrect key event handling in "Listing mode" dialog (#2045) - * Usability of field history in "Find file" dialog (#2046, #2407) - * Find "Whole words" search bug (#2396) - * List of ignored directories doesn't work in file find (#2366, #2434) - * Incorrect line jump when started as editor (#2344) - * User menu in standalone mcedit doesn't show filetype-specific items (#1651) - * Configure script doesn't set samba configdir (#2419) - * Lost transparency colors in mcedit [editnormal] background depends on [normal] (#1785) - * Syntax highlighting is lost after manual change (#2324) - * ~ is not treated properly in editor's "Save As" dialog (#2398) - * Broken action 'cursor beyond EOL' (#2135, #2411) - * Incorrect charset encoding in search in editor (#2417) - * Segmentation fault in mcviewer on ARM architecture (#2356) - * Viewer 'Goto' dialog doesn't allow go to the specified offset exactly (#2435) - * Broken IPv4 FTP connection scheme (#121) - * Default internal FISH scripts are broken (#2347) - * Permission denied while connecting to Sun host via ssh (#2031) - - -Version 4.7.4 - -- Core - - * Added unassigned key binding CmdEditForceInternal to forced run the internal editor of MC (#1523) - * Implemented keybingings for WListbox widget, reimplemented hardcoded keys in viewer and help viewer (#212) - * Added capability to enable/disable widgets interactively (#2257) - * Reverted the appending of file/dir name to copy/move destination in copy/move dialog (#2276) - -- VFS - - * Fixed remained plain int types (#171) - * Refactoring of VFS modules on/off. Unification of configure options (#1818) - * MCServer and MCFS support were completely removed (#2279) - * FISH: implemented resuming of file downloads (#2267) - * Adjusted extfs script modes to installed permissions (#2274) - -- Editor - - * Editor version is synchronized with MC one (#2189) - * Changed default button in editor quit dialog to "Cancel quit" (#2265) - * Added "Toggle syntax highlighting" menu item. Described C-s shortcut in mcedit man page (#2035) - -- Viewer - - * Changed default button in hexeditor quit dialog to "Cancel quit" (#2265) - -- Misc - - * Code cleanup (#2316) - * be-tarask.po was renamed to be@tarask.po (#2235) - * Translation updates - * Added Galician translation - * Fixed the title in the section describing xtree_mode variable (#2303) - -- Fixes - - * Crash while copying into directory named "????" (#2123) - * Crash while changing permissions using "Advanced chown" dialog (#2264) - * Crash in autocompletion engine (#2284) - * Restore signals even if fork() fails (#2273) - * Bogus strings in 'Confirmation' config dialog (#2271) - * History can be shown incorrectly due to access to the invalid pointer (#2299) - * Potential division by zero in Info panel (#2337) - * Segfault in replace confirmation in editor (#2272) - * Regexp replace only transforms the first occurrence correctly (#2320) - * Broken manually changing syntax definition (#2324) - * MCEdit version number not centered in about dialog (#2311) - * Typo in the code and the man section describing X clipboard integration (#30) - * Viewer doesn't show non-ASCII chars in hex mode (#2263) - * Compilation warnings in diff viewer (#2277) - * 2GB file size limit in fish (#123) - * Meta-fixes for manual pages (#2237, #2253) - - -Version 4.7.3 - -- Core - - * Multi-screen feature: support of many opened editors and viewers (#1490) - * Reorganization of menu and configuration dialogs. More options are available in UI (#320) - * Mark of text in input fields is available now, DEL removes selected/unchanged text (#2161, #2228) - * Now copy/move dialog shows the full path with file name in the field "to:" (#1907) - * Removed hardcoded shortcuts in dialog.c (#212) - * Added new actions for panels: PanelMarkFileUp and PanelMarkFileDown (#2021) - * Added new capability to create relative symlinks: menu item and "C-x v" default shortcut (#2042) - * Now we can use external utility to copy/paste text to X clipboard (#30) - * Cursor is hidden in menu and listboxes (#1771) - * All hotkeys in MC (in menu, checkboxes, etc) in the middle of a word are in the lowercase now (#2168) - * Use system realpath(3) function if available (#1911) - * GLib deprecated functions are not used (#2085, #2249) - -- VFS - - * Unified charset list is used in core and in VFS (#2203) - * All hardcoded FISH scripts are moved out from fish.c to external scripts (see README.fish for more info) (#2242) - -- Editor - - * Added highlighting for HTTPS URLs in SPEC files (#1446) - -- Misc - - * Changed main URL for bug reports (#2025) - * man2hlp: completely rewritten in Perl (#45) - * Skin updates: - - gotar.ini (#2179) - * Removed leading and trailing spaces in i18n'd resources (#1646) - * Code cleanups (#2243) - * Translation updates - -- Fixes - - * AC_TRY_RUN macro breaks crosscompile (#1959) - * "mc -e" and "mc -v" modes don't work (#2187) - * Buttonbar mouse clicks are off (#2199) - * Incorrect calculation of autocompletion window width (#2192) - * Incorrect button locations in common input dialogs (#2115) - * Oversized dialog backgrounds are not painted in NCurses-based MC (#2157) - * Incorrect colors of directory tree (#2212) - * Info panel is initially filled too late (#2226) - * Quick search is not correctly interrupted in some cases (#2174) - * Segfault in standalone editor and viewer (#2178) - * Broken codeset autodetection in editor and viewer (#1838) - * Viewer segfaults trying open a compressed man page file (#2236) - * Editor crashes while opening some incorrect files (#2183) - * Editor hangup if editor_tab_spacing equals to 0 (#2196) - * Editor shows dots instead of letters if source_codepage is set to "No translation" (#2248) - * Editor goes to endless loop when trying to replace the \n regexp with any substring (#2231) - * Editor: in some cases the copy/move operation in multi-byte text is wrong (#2153) - * Crash on search in viewer after Parsed/Raw switching (#2195) - * Diff viewer crashes if tab size equals to 0 (#2182) - - -Version 4.7.2 - -- Core - - * Quick Search mode is defined by quick_search_case_sensitive option (#2022) - * Mouse wheel doesn't change sorting preferences in panels (#2093) - * Interactive help is displayed with dynamically run-time formatting (#1561) - * Improvement of double and single lines support in skins (#1648) - -- Editor - - * Remove selected text before input or paste from clipboard (in non persistent selection mode) (#2155) - * Case insensitive syntax highlighting (#1770) - * Current syntax scheme is highlighted in 'Choose syntax highlighting' dialog (#1754) - * Added ini.syntax (#2126) - -- Viewer - - * Fixed jump to end of file - -- Diff viewer - - * A built-in tool to visual compare and merge two files (#120, #2159) - -- Misc - - * Added support for AM_SILENT_RULES (#2134) - * Lot of code cleanups (#1949, #2041, #2078, #2097, #2119) - * Renamed color keywords (#1660): - - menu -> menunormal - - linestate -> editlinestate - * Added new skins: - - nice and dark (#1791) - * Updated file extension for "sh" (#2127) - * Documentation updates - * Translation updates - -- Fixes - - * Segfault in panelization of file find results (#2068) - * Segfault in standalone editor and viewer (#2087) - * Memory leaks (#2069, #2108) - * If dialog was canceled, input line content is saved in history (#2082) - * MC says "File exists" trying create directory with empty filename (#2014) - * User asked twice about overwriting file in move across file systems (#2125) - * Deleting symlink to directory scans dir structure first (#2121) - * Incorrect layout of file operation dialog in non-verbose mode (#2099) - * MC proposes ".." as a dirname with automatic name filling (#2056) - * MC treats files ending with a dot as gzip (#2114) - * Broken default regexp mask in filecopy dialog (#2001) - * Misleading label "Status:" in the Info panel (#2146) - * Can't define help window background via skin (#1701) - * i18n_checktimelength may vary depending on the season (#1671) - * Build breaks on ignored return values (#1897) - * Incorrect cursor position after "Cursor beyond end of line" mode switched off (#2094) - * Incorrect overwrite behavior with UTF-8 codeset in editor (#2081) - * Incorrect toggling state of ruler in viewer (#2067) - * Superfluous "Search done, Continue from beginning?" dialog in viewer (#2091) - * Turning on wrap mode does not scroll left/right the file view (#2107) - * Cannot scroll wrapped long lines in viewer (#2086) - * Fixed EOL/BOL movements in plain mode (#1734) - * Text area is not updated in hex mode (#2005) - * Incorrect handling of archives in EXTFS VFS (#1909) - * Segfault in symlink handling within archives - * urar EXTFS doesn't correctly show localized filenames in RAR archives (#2049) - * urar EXTFS: disable RAR/UNRAR user/system configuration for archive list and copyout operations (#2050) - * Patches adding a single line are not shown correctly by patchfs (#2149) - * uzip EXTFS: fixed Y2K bug (#2122) - - -Version 4.7.1 - -- Core - - * Minimal required GLib version is 2.8 (#1980) - * Reorganization of source tree structure (#1866, #2037) - * States of all 'Find File' dialog checkboxes are saved in user configuration file (#1874, #1965) - * New file type bindings: - o viewing .lyx with lyxcat, opening with lyx (#1693) - * Added shortcut (Meta-,) to toggle panels split (#1991) - * Capability to remove history items. WListbox widget was fully reimplemented (#1445) - * Autodetect codepages of edited/viewed files with enca program (#1838) - * Custom/locale-based date format (#1767) - * New quick search behavior, allow wildcard characters - '*' and '?'(#2022) - * Panels: new sort type 'by version' (#1994) - * Added 'menuinactive' skin item to draw inactive visible main menu (#1999) - * Added ability to show progressbars (when copy files) from right to left (#1443) - * Added indication of total BPS and ETA for file operations; fully rewrited FileOperations dialog (#1443) - -- VFS - - * Small reorganizing (#1931) - * Easy plugable EXTFS VFS (#1909) - -- Editor - - * Some simple optimization of syntax highlighting engine (#1843) - * Show right margin using 'editor_show_right_margin' option. Keybind EditToggleShowMargin in [editor] section is used to toggle the state (#1514) - * New editor action 'Mark all', new keybind EditMarkAll (#1945) - * Changed default for 'Cursor beyond EOL', now it switched off by default (#1946) - * Changed default color pair for 'editbold' (search result) to be more sensible (#1559) - -- Viewer - - * Viewer is now very fast (#1585) - * Added new confirm box for repeat search from beginning of file (#1917) - -- Misc - - * Lots of code cleanup (#1780, #1915, #1990) - * Removed obsolete checks in configuration scripts (#262, #1932) - * Documentation updates - * Translation updates - -- Fixes - - * MC won't compile on Solaris due to undefined constant NAME_MAX (#1943) - * MC won't compile on AIX (#1957) - * Missing includes (#1930, #2017) - * Missing printf format (#1960) - * Memory and file descriptors leaks (#1953, #2028, #2053, #2058) - * Small error in versioning (#1905) - * Incorrect start up with some special paths (#1992) - * Segfault in input line history (#1936) - * MC crashes on exit when using C locale (#1942) - * MC crashes at exit due to race conditions of destroying subshell and file manager (#2008) - * Assertion failed for g_array_free (#1954) - * Broken transparency if MC is built with NCurses (#1657) - * Selections not visible on monochrome terminals (#1972) - * Colors of visible inactive menu (#1702) - * Incorrect input line length in 'Edit symlink' dialog window (#1955) - * Unquoted shell variables in user menu (#1967) - * Ctrl-\ key closes the NCurses-based MC (#1926) - * verbose option is always on after MC start (#1940) - * Show total progressbar (and related info) when copying just one subdirdir with lot of files (#1443) - * Incorrecy movement in last line in editor (moving cursor to the empty last line) (#1956) - * Incorrect editor lock files check (#1935) - * Segfault at try of edit (F4) archives with utf-8 names (x86_64 specified) (#1982) - * Editor's search parameters are not retained across editing session (#1572) - * EditColumnMark can't go up through newline (#1998) - * 'Confirm replace' dialog is not converted from UTF-8 to user defined charset (#1986) - * Missed \s symbol in Syntax file (#2010) - * Viewer in QuickView mode corrupts screen (#1918, #1944) - * ViewContinueSearch segfault on empty search (#1996) - * MC crashes if file name in archves contains '@' symbol (#1605) - * deba and debd VFS: items from DEBIAN directory are not accessible (#1920) - * Samba is not built with tcc (#1933) - * Incorrect conditional compilation of mcserver (#1925) - * Potencial security risk in mcserv (#1902) - * The lslR VFS doesn't work with ls-lR files created in en_US.UTF-8 locale and with files and directories started with whitespaces (#1921) - * Contents of RAR archives with filenames that contain / \d\d:\d\d / are not listed correctly (#2029) - * FTPFS: strcpy() is used for overlaping strings (#2018) - -Version 4.7.0.1 - -- Fixes - - * Fixed double free of memory in editor; - * Fixed build with --disable-vfs option; - * Fixed compile warnings about unused variables; - * Fixed Fedora/RH RPM versioning scheme. - - -Version 4.7.0 - -- Core - - * Removed charset confirmation on startup and added the automatic recognize - of system charset (#1613) - * Some startup speed up (#1781) - * Save flags of select/unselet file group (#1776) - * Don't set TOSTOP attribute on slave terminal (#1637) - * Keybindings for button bars (F1-F10 keys) (#212) - * Keybindings for Tree widget - * Enlarged sizes of Directory Tree dialog window - * Added missed esc sequencies for qansi terminals (#1803) - * New file type bindings: - + adeed mkv, 3gp video types - + use exif(1) output when viewing jpeg files - + opening .chm with kchmviewer with fallback to xchm - + viewing .mo files with msgunfmt - -- VFS - - * FISH: add the user name to the ssh command line only if it's not the same as - the local logged-in user (#1867) - * FTP: support active mode (#1796) - * FTP: improved symlink handling - * FTP: some FTP-servers don't have chmon support. Ignore FTP errors related - to chmod operations (#1708) - * EXTFS: added S3 backend by Jakob Kemi (#272) - * SFS: use single script for RPM and SRPM packets handling (#1590) - -- Editor - - * New syntax files: Cabal - * Updated syntax files: Python, PHP - * Syntax highlighting: added '.hh' and '.hpp' file extensions as C++ sources - -- Misc - - * Lots of code cleanup and optimization - * Workaround for SunStudio compiler bug #6888373 (#1749) - * Removed obsolete checks in configuration scripts - * Allow save empty value in history (#1814) - * Use ctrl-g instead of ctrl-c for SIGINT signal (#1876). - * RPM spec: rewritten and simplified static build procedure for legacy distros (#1848) - * Translation updated - * Documentation updates - * Added skin: darker color style (#1659) - -- Fixes - - * Memory and file descriptors leaks - * Crash on start if ~/.mc/panels.ini contains incorrect value of 'sort_order' key (#1790) - * MC aborts when ctrl-c is pressed (#1793) - * Build w/o internal editor (#1826) - * Compilation warings of --disable-nls and --disable-charset options (#1831) - * Incorrect handling of '--with-search-engine' configure option (#1396) - * Segmentation fault when search in different encodings (#1858) - * C-w does not delete whole command line (#407) - * Wrong shortcuts in menu items (#1836) - * Panels state saves and restores despite disabled 'Auto save setup' (#1663) - * Case insensitive file sorting in UTF-8 locales (#1536) - * Incorrect handling of 0xFF char that is valid char in CP1251 locale (#1883) - * Segfault in TreeView loading (#1794) - * Incorect stat info of ".." directory in file panel (#1757) - * Incorect stat info of ".." directory in info panel (#1757) - * Setting "Use passive mode over proxy" is not remembered (#1746) - * CK_Edit_Save_Mode command handling in editor (#1810) - * Incorrect calculation of some utf-8 characters width (#1768) - * Handling CJK chars in editor (#1628) - * Incorrect cursor positioning in editor (#1809, #1884) - * Vertical block handling in editor (#1839) - * Incorrect text scrolling in editor (#1877) - * Incorrect mouse movement in editor when text scrolled to the right (#1792) - * Newlines are lost when pasting multiline text in editor (#1710) - * Mismatched hotkeys EditBeginRecordMacro, EditEndRecordMacro in editor - * Mismatched hotkeys EditBeginningOfText, EditEndOfText, EditBeginPage, EditEndPage (#1724) - * Some syntax files are not installable (#1779) - * Date & time insertion in editor (#1759) - * "Matches not found" message is not shown in viewer - * Hangup after search in archive in viewer (#1873) - * SFS: CPIO VFS skips empty directories in the root of archive (#1732) - * Incorrect parsing FTP-string (#1605) - * LZMA files detect (#1798) - * FISH: broken filenames and timestamps on really poor busybox devices (#1450) - * Minor mistakes and mistypes in man files - * Various doxygen warnings - - -Version 4.7.0-pre4 - -- Core - - * Added feature of sort files by mouse click on column header - * Added keybindings to change files sort type via shortcuts - (PanelSelectSortOrder, PanelToggleSortOrderPrev, PanelToggleSortOrderNext, - PanelReverseSort, PanelSortOrderByName, PanelSortOrderByExt, - PanelSortOrderBySize, PanelSortOrderByMTime) - * Now the letter of sort type and sort direction is always drawn in panel - header (direction of sort is drown near the current sort column in long - file list mode only) - * Skin-files: added new parameters 'sort-sign-up' and 'sort-sign-down' in - the section '[widget-common]' to draw sign of sort direction - * Added option 'extensions_case' in filehighlight.ini file. - * Menu engine was reimplemented: 1) now menu is build dynamically, 2) - shortcut displayed in menu item is not a part of menu item text and it is - synchronized with keybinding defined in mc.keymap file (#1563). - -- VFS - - * Fixed view *.tar files with a colon in name - * Allow 'exit' command on non-local filesystems - * Added partial support of Microsoft CAB-archives - * Added support of ico files - * Added support of *.djvu files - * Fix segfaults in various cases while browsing various VFSs - * Fixed warnings when file copy inside archive. - -- Editor - - * Added scrolled percentage in status bar (only in "simple statusbar" mode) - * Fixed Misbehaving rectangular select in editor (wrong when selected from - right to left and/or bottom to top) - * Split editor menu 'Command' to 'Command' and 'Format' - * Added option 'Check POSIX new line' into 'Save mode...' dialog, add notification - before save when no newline at EOF (#46) - * Added bindings ('EditShiftBlockLeft', 'EditShiftBlockRight') for shift block - * Fixed incorrect drawing CJK (double width) character - -- Viewer - - * Fixed tabs alignment (#1664) - * Fixed view of next/prev file (#1750) - -- Misc - - * Shared clipboard for the mc editor, form fields, panel and command prompt - * Refactoring: now all filename constants are placed in src/fileloc.h file - * Testing & development: added ability for change user config dir. For example, - type make CFLAGS='-DMC_USERCONF_DIR=\".mc2\"' - * Changed Alt+Backspace behavior in command line - -- Fixes - - * Fixed broken building under uclibc <0.9.29 - * Autoindent regression - * Viewer Hex editor regression - * Incorrect indentation block when selecting with F3 + keys - * Fixed ownership of config files - * Configure.ac: fix broken check of option '--disable-vfs-undelfs' - * Learn keys: fixed incorrect save of keys configuration - * Fixed bug with 'The shell is already running a command' - * Fixed 'B' artefact into OpenSuse console of root user - - -Version 4.7.0-pre3 - -- Core - - * removed own popt stuff (command line options parser). Now used glib parser - * added feature for filenames highlighting in panels - * Copy/Move overwrite query dialog is more friendly for long file names - * at first run find file dialog now contain latest item from history - * charset support enabled by default (--enable-charset option) - * added support of skins - * added support of key bindings - -- VFS - - * fixed recognize of tar.xz archives - * added recognize of lzma archives by extension - -- Editor - - * 'Save as' dialog enhancement: select line break type: Windows/UNIX/Mac - (CR LF/LF/CR) - * syntax hightlighting updated: VerilogHDL, Shell script - * Added syntax highlighting for *.repo files of yum - * Added syntax highlighting of pacman's PKGBUILD and .install files - -- Viewer - - * Fixed showing Windows/Mac (CR LF/CR) line terminator - -- Misc - - * hotlist: support for environment variables ($HOME, ~username, etc.) - * hotlist: support for completion in path input - * all list widgets: support for fast navigation by number keys (i.e. 1 - - first list item, 2 - second) - -- Fixes - - * restored action of 'ctrl-t' keybinding (mark files&dirs). For selecting - charset use 'alt-e' - * segfault on incorrect color pair in [Color] section - * incorrect position of panel codeset dialog - * limit of 9 digits for of file size display - * lines drawing in -a stickchars mode - * segfault when you try to use non-anonymous FTP - * Ctrl-O handling under GNU Screen in altscreen mode - * support of CP866 (IBM866) locale - * configure.ac: checking for minimal version of glib and exit if version less - than 2.6 - * segfault by mouse wheel action in history list and menu - * Fixed behvior with Meta+PgDn? in editor - * Fixed behvior with cursor movement by Ctrl+arrows when cursor besides EOL - * Fixed editor autocompleting - * Fixed Copy/Move dialogs steal Kill Word shortcut - * Fixed autoconf issue when configure with --with-gpm-mouse option - - -Version 4.7.0-pre2 - -- Core - - * cycle menu navigation - * change behaviour of C-space, now it calculate size on "..", and for selected - dirs if there is one. - * new find file option: find only first hit in file (make search faster) - * new find file option: Whole words - find whole words only - * scalable TUI - -- VFS - - * FTPFS: support of IPv6 protocol - * extfs/iso9660 updated to support Joliet "UCS level 1" - -- Editor - - * new search/replace flag added "In selection" - * new hotkeys for bookmarks, now bookmark displayed in state line and editor - * new cursor behavior. Option "Cursor beyond end of line" - allow moving cursor - beyond the end of line - * new syntax hightlights added: erlang, ebuild, named, strace, j - * syntax hightlights updated: mail, vhdl, html - -- Viewer - - * Reworked for improve perfomance - * Implemented interruptable long-distance movements - * splitted src/view.[ch] into many files in src/viewer/ subdir for more simple - support of code - * fixed build of format string in runtime (for better i18n) - * add 'Whole words' option into the viewer 'Search' dialog - -- Misc - - * new option mouse_close_dialog, if mouse_close_dialog=1 click on outside the - dialog close them - * new: SI-based size show - * make shared history for find file, editor search/replace, viever - -- Fixes - - * linking error with --enable-vfs-undelfs - * external editor won't open if there are spaces in EDITOR variable - * C-c kill mc if mc built with --without-subshell option is run with -d option - * directory hotlist rendering - * segfault on empty replace string - * fixes for vfs/tarfs - * removing bashizm from vfs/extfs/u7z - * crash mc on create new file (Shift-F4) in external editor - * File copy/move dialog: in replacement field now handled asterisks as search groups - * VFS: Fixed SIGSERV(or heap corruption) on large filenames - * Fixed broken backward search - * Fixed uninitialised value for mouse event in in find.c#check_find_events() function - * Fixed ctrl+z signal handling - * Fixed incorrect showing prompt - * Fixed incorrect vertical selection (if line state swiched on) - * Fixed screen resize handle if mouse support is disabled - * Restore correct current directory after switch from Info panel to List one - * Fixed mouse support in 'konsole-256color' terminal - * Fixed keycodes in 'xterm-256color' terminal - * Fixed incorrect regexp search by content in 'file find' dialog - * Fixed incorrect backwards search - * Fixed incorrect detection of compressed patchfs - * Fixed incorrect detecting codeset when codeset selected - - -Version 4.7.0-pre1 - -- Core - - * native UTF-8 support - * filenames charset selection support in panels - * new 'Find File' dialog - * new unified search/replace engine with search types: Plain, Wildcard, Regexp, Hex - * extended learn keys - * locale based codepage autodetection - * initial support for doxygen generated docs - * refresh of autoconf stuff - * translation updates - * x86_64 fixes - -- Editor - - * various editor enchancements (vertical block marking/moving/copy/paste) - * navigate across source code through ctags/etags TAGS file - * new option 'Persistent selection' - * Del/Backspace - delete selected block if 'Persistent selection' switched off - * shift block right with TAB key by TAB size or TAB symbol, shift block left with COMPLETE key - if 'Persistent selection' switched off - * optional showing of line numbers - * various syntax files updates - * optional highlighting of the tabs and trailing spaces - * add some hot-keys - -- Misc - - * showing of the free space on current file system - * showing of the size selected files in mini-status bar - -- Fixes - - * editor's undo fixes - * many fixes from other distributions are included - * fish handling for symlinks is fixed - * escaping of fancy names is fixed - * segfault in fish permission checks is fixed - * various mc.ext fixes - * commandline completion fixes (mainly, escaping hadling) - * small fixes in history handling (locale independent .mc/history entries) - * code cleanups, various memleak/etc fixes (many thanks to valgrind) diff --git a/doc/NEWS.4.7 b/doc/NEWS.4.7 new file mode 100644 index 000000000..9393970eb --- /dev/null +++ b/doc/NEWS.4.7 @@ -0,0 +1,701 @@ +Version 4.7.5 + +- Core + + * Minor enhancement and fix for mc.ext for .so libraries and ELF objects (#1800): + - .so libraries have the higher priority of extension handling over ELF objects; + - added -C -D options to nm utility for .so libraries; + - added -C option to nm utility for ELF objects. + +- Editor + + * Copy to clipboard doesn't reset the text selection (#2238) + * Don't reset search position after file opened in viewer and reopened in mcedit (#2449) + +- Misc + + * Code cleanup + * Translation updates + +- Fixes + + * Crash in copy/move progress dialog (#2448) + * Broken autocompletion (#2288) + * Text selection bugs in mcedit (#1898, #2437) + * awk is used instead of grep in iso9660 VFS plugin (#1963) + + +Version 4.7.5-pre1 + +- Core + + * Case insensitive sort order of files does not mix dot-files with others (#1894) + * Repeat previous quicksearch on C-s C-s (without entering text) (#2365) + * Added new colors for dialogs and status bars (#2170, #2171, #2197) + * Added new action PanelSmartGotoParentDir. Not defined by default. This keybinding maybe used + for bind 'Backspace' as hotkey for 'cd ..' (only if command line is empty)(#2375) + +- VFS + + * Hide panels before connect to the FISH (#2268) + +- Editor + + * Internal editor's bookmarks are persistent now and not lost after exit from the editor. + They are saved in ~/.mc/filepos file (#2287) + * Added forgotten shortcuts from 4.6 branch (#2404) + * Added cython syntax highlighting (#2427) + +- Viewer + + * Speed up of up/down moving (#2229) + +- Misc + + * Changed installation destination for some files (#1424): + - /etc/mc/Syntax -> /usr/share/mc/syntax/Syntax; + - /etc/mc/mc.lib -> /usr/share/mc/mc.lib; + - /etc/mc/mc.charsets -> /usr/share/mc/mc.charsets. Added capability to load codepage list + from /usr/share/mc/mc.charsets and /etc/mc/mc.charsets and merge them then; + - hint files are installed into /usr/share/mc/hints instead of /usr/share/mc; + - help files are installed into /usr/share/mc/help instead of /usr/share/mc. + * Massive reorganizing of source code tree and total indentation in according with mc policy (#2409) + * Doc updates + * Translation updates + * Added new translations: Basque, Estonian, Georgian, Indonesian + * Extended list of GCC warning flags (#2409) + * Split GLib and GModule compiler and linker options (#2409) + * Added dark skin + +- Fixes + + * Hang up after exit on FreeBSD (#2333, #2415) + * Segfault on NetBSD >= 3.0 on startup (#2425) + * Multi-screen engine doesn't handle correctly some cases (#1490) + * Overflow of file operation counters (#2429) + * Fx key numbers were not displayed for disabled keys (#2350) + * Can't put char '?' into a new name (#2327) + * Incorrect initial value of WCheck and WRadio widgets width (#2362) + * Panel encoding is not shown correctly in "Choose codepage" dialog (#1512) + * Cannot change panel encoding without VFS support (#2137) + * Panel contents isn't scrolled down by mouse dragging (#2395) + * Panel states are saved in panels.ini at quit only if "Auto save panels setup" option is set (#1939) + * Incorrect key event handling in "Listing mode" dialog (#2045) + * Usability of field history in "Find file" dialog (#2046, #2407) + * Find "Whole words" search bug (#2396) + * List of ignored directories doesn't work in file find (#2366, #2434) + * Incorrect line jump when started as editor (#2344) + * User menu in standalone mcedit doesn't show filetype-specific items (#1651) + * Configure script doesn't set samba configdir (#2419) + * Lost transparency colors in mcedit [editnormal] background depends on [normal] (#1785) + * Syntax highlighting is lost after manual change (#2324) + * ~ is not treated properly in editor's "Save As" dialog (#2398) + * Broken action 'cursor beyond EOL' (#2135, #2411) + * Incorrect charset encoding in search in editor (#2417) + * Segmentation fault in mcviewer on ARM architecture (#2356) + * Viewer 'Goto' dialog doesn't allow go to the specified offset exactly (#2435) + * Broken IPv4 FTP connection scheme (#121) + * Default internal FISH scripts are broken (#2347) + * Permission denied while connecting to Sun host via ssh (#2031) + + +Version 4.7.4 + +- Core + + * Added unassigned key binding CmdEditForceInternal to forced run the internal editor of MC (#1523) + * Implemented keybingings for WListbox widget, reimplemented hardcoded keys in viewer and help viewer (#212) + * Added capability to enable/disable widgets interactively (#2257) + * Reverted the appending of file/dir name to copy/move destination in copy/move dialog (#2276) + +- VFS + + * Fixed remained plain int types (#171) + * Refactoring of VFS modules on/off. Unification of configure options (#1818) + * MCServer and MCFS support were completely removed (#2279) + * FISH: implemented resuming of file downloads (#2267) + * Adjusted extfs script modes to installed permissions (#2274) + +- Editor + + * Editor version is synchronized with MC one (#2189) + * Changed default button in editor quit dialog to "Cancel quit" (#2265) + * Added "Toggle syntax highlighting" menu item. Described C-s shortcut in mcedit man page (#2035) + +- Viewer + + * Changed default button in hexeditor quit dialog to "Cancel quit" (#2265) + +- Misc + + * Code cleanup (#2316) + * be-tarask.po was renamed to be@tarask.po (#2235) + * Translation updates + * Added Galician translation + * Fixed the title in the section describing xtree_mode variable (#2303) + +- Fixes + + * Crash while copying into directory named "????" (#2123) + * Crash while changing permissions using "Advanced chown" dialog (#2264) + * Crash in autocompletion engine (#2284) + * Restore signals even if fork() fails (#2273) + * Bogus strings in 'Confirmation' config dialog (#2271) + * History can be shown incorrectly due to access to the invalid pointer (#2299) + * Potential division by zero in Info panel (#2337) + * Segfault in replace confirmation in editor (#2272) + * Regexp replace only transforms the first occurrence correctly (#2320) + * Broken manually changing syntax definition (#2324) + * MCEdit version number not centered in about dialog (#2311) + * Typo in the code and the man section describing X clipboard integration (#30) + * Viewer doesn't show non-ASCII chars in hex mode (#2263) + * Compilation warnings in diff viewer (#2277) + * 2GB file size limit in fish (#123) + * Meta-fixes for manual pages (#2237, #2253) + + +Version 4.7.3 + +- Core + + * Multi-screen feature: support of many opened editors and viewers (#1490) + * Reorganization of menu and configuration dialogs. More options are available in UI (#320) + * Mark of text in input fields is available now, DEL removes selected/unchanged text (#2161, #2228) + * Now copy/move dialog shows the full path with file name in the field "to:" (#1907) + * Removed hardcoded shortcuts in dialog.c (#212) + * Added new actions for panels: PanelMarkFileUp and PanelMarkFileDown (#2021) + * Added new capability to create relative symlinks: menu item and "C-x v" default shortcut (#2042) + * Now we can use external utility to copy/paste text to X clipboard (#30) + * Cursor is hidden in menu and listboxes (#1771) + * All hotkeys in MC (in menu, checkboxes, etc) in the middle of a word are in the lowercase now (#2168) + * Use system realpath(3) function if available (#1911) + * GLib deprecated functions are not used (#2085, #2249) + +- VFS + + * Unified charset list is used in core and in VFS (#2203) + * All hardcoded FISH scripts are moved out from fish.c to external scripts (see README.fish for more info) (#2242) + +- Editor + + * Added highlighting for HTTPS URLs in SPEC files (#1446) + +- Misc + + * Changed main URL for bug reports (#2025) + * man2hlp: completely rewritten in Perl (#45) + * Skin updates: + - gotar.ini (#2179) + * Removed leading and trailing spaces in i18n'd resources (#1646) + * Code cleanups (#2243) + * Translation updates + +- Fixes + + * AC_TRY_RUN macro breaks crosscompile (#1959) + * "mc -e" and "mc -v" modes don't work (#2187) + * Buttonbar mouse clicks are off (#2199) + * Incorrect calculation of autocompletion window width (#2192) + * Incorrect button locations in common input dialogs (#2115) + * Oversized dialog backgrounds are not painted in NCurses-based MC (#2157) + * Incorrect colors of directory tree (#2212) + * Info panel is initially filled too late (#2226) + * Quick search is not correctly interrupted in some cases (#2174) + * Segfault in standalone editor and viewer (#2178) + * Broken codeset autodetection in editor and viewer (#1838) + * Viewer segfaults trying open a compressed man page file (#2236) + * Editor crashes while opening some incorrect files (#2183) + * Editor hangup if editor_tab_spacing equals to 0 (#2196) + * Editor shows dots instead of letters if source_codepage is set to "No translation" (#2248) + * Editor goes to endless loop when trying to replace the \n regexp with any substring (#2231) + * Editor: in some cases the copy/move operation in multi-byte text is wrong (#2153) + * Crash on search in viewer after Parsed/Raw switching (#2195) + * Diff viewer crashes if tab size equals to 0 (#2182) + + +Version 4.7.2 + +- Core + + * Quick Search mode is defined by quick_search_case_sensitive option (#2022) + * Mouse wheel doesn't change sorting preferences in panels (#2093) + * Interactive help is displayed with dynamically run-time formatting (#1561) + * Improvement of double and single lines support in skins (#1648) + +- Editor + + * Remove selected text before input or paste from clipboard (in non persistent selection mode) (#2155) + * Case insensitive syntax highlighting (#1770) + * Current syntax scheme is highlighted in 'Choose syntax highlighting' dialog (#1754) + * Added ini.syntax (#2126) + +- Viewer + + * Fixed jump to end of file + +- Diff viewer + + * A built-in tool to visual compare and merge two files (#120, #2159) + +- Misc + + * Added support for AM_SILENT_RULES (#2134) + * Lot of code cleanups (#1949, #2041, #2078, #2097, #2119) + * Renamed color keywords (#1660): + - menu -> menunormal + - linestate -> editlinestate + * Added new skins: + - nice and dark (#1791) + * Updated file extension for "sh" (#2127) + * Documentation updates + * Translation updates + +- Fixes + + * Segfault in panelization of file find results (#2068) + * Segfault in standalone editor and viewer (#2087) + * Memory leaks (#2069, #2108) + * If dialog was canceled, input line content is saved in history (#2082) + * MC says "File exists" trying create directory with empty filename (#2014) + * User asked twice about overwriting file in move across file systems (#2125) + * Deleting symlink to directory scans dir structure first (#2121) + * Incorrect layout of file operation dialog in non-verbose mode (#2099) + * MC proposes ".." as a dirname with automatic name filling (#2056) + * MC treats files ending with a dot as gzip (#2114) + * Broken default regexp mask in filecopy dialog (#2001) + * Misleading label "Status:" in the Info panel (#2146) + * Can't define help window background via skin (#1701) + * i18n_checktimelength may vary depending on the season (#1671) + * Build breaks on ignored return values (#1897) + * Incorrect cursor position after "Cursor beyond end of line" mode switched off (#2094) + * Incorrect overwrite behavior with UTF-8 codeset in editor (#2081) + * Incorrect toggling state of ruler in viewer (#2067) + * Superfluous "Search done, Continue from beginning?" dialog in viewer (#2091) + * Turning on wrap mode does not scroll left/right the file view (#2107) + * Cannot scroll wrapped long lines in viewer (#2086) + * Fixed EOL/BOL movements in plain mode (#1734) + * Text area is not updated in hex mode (#2005) + * Incorrect handling of archives in EXTFS VFS (#1909) + * Segfault in symlink handling within archives + * urar EXTFS doesn't correctly show localized filenames in RAR archives (#2049) + * urar EXTFS: disable RAR/UNRAR user/system configuration for archive list and copyout operations (#2050) + * Patches adding a single line are not shown correctly by patchfs (#2149) + * uzip EXTFS: fixed Y2K bug (#2122) + + +Version 4.7.1 + +- Core + + * Minimal required GLib version is 2.8 (#1980) + * Reorganization of source tree structure (#1866, #2037) + * States of all 'Find File' dialog checkboxes are saved in user configuration file (#1874, #1965) + * New file type bindings: + o viewing .lyx with lyxcat, opening with lyx (#1693) + * Added shortcut (Meta-,) to toggle panels split (#1991) + * Capability to remove history items. WListbox widget was fully reimplemented (#1445) + * Autodetect codepages of edited/viewed files with enca program (#1838) + * Custom/locale-based date format (#1767) + * New quick search behavior, allow wildcard characters - '*' and '?'(#2022) + * Panels: new sort type 'by version' (#1994) + * Added 'menuinactive' skin item to draw inactive visible main menu (#1999) + * Added ability to show progressbars (when copy files) from right to left (#1443) + * Added indication of total BPS and ETA for file operations; fully rewrited FileOperations dialog (#1443) + +- VFS + + * Small reorganizing (#1931) + * Easy plugable EXTFS VFS (#1909) + +- Editor + + * Some simple optimization of syntax highlighting engine (#1843) + * Show right margin using 'editor_show_right_margin' option. Keybind EditToggleShowMargin in [editor] section is used to toggle the state (#1514) + * New editor action 'Mark all', new keybind EditMarkAll (#1945) + * Changed default for 'Cursor beyond EOL', now it switched off by default (#1946) + * Changed default color pair for 'editbold' (search result) to be more sensible (#1559) + +- Viewer + + * Viewer is now very fast (#1585) + * Added new confirm box for repeat search from beginning of file (#1917) + +- Misc + + * Lots of code cleanup (#1780, #1915, #1990) + * Removed obsolete checks in configuration scripts (#262, #1932) + * Documentation updates + * Translation updates + +- Fixes + + * MC won't compile on Solaris due to undefined constant NAME_MAX (#1943) + * MC won't compile on AIX (#1957) + * Missing includes (#1930, #2017) + * Missing printf format (#1960) + * Memory and file descriptors leaks (#1953, #2028, #2053, #2058) + * Small error in versioning (#1905) + * Incorrect start up with some special paths (#1992) + * Segfault in input line history (#1936) + * MC crashes on exit when using C locale (#1942) + * MC crashes at exit due to race conditions of destroying subshell and file manager (#2008) + * Assertion failed for g_array_free (#1954) + * Broken transparency if MC is built with NCurses (#1657) + * Selections not visible on monochrome terminals (#1972) + * Colors of visible inactive menu (#1702) + * Incorrect input line length in 'Edit symlink' dialog window (#1955) + * Unquoted shell variables in user menu (#1967) + * Ctrl-\ key closes the NCurses-based MC (#1926) + * verbose option is always on after MC start (#1940) + * Show total progressbar (and related info) when copying just one subdirdir with lot of files (#1443) + * Incorrecy movement in last line in editor (moving cursor to the empty last line) (#1956) + * Incorrect editor lock files check (#1935) + * Segfault at try of edit (F4) archives with utf-8 names (x86_64 specified) (#1982) + * Editor's search parameters are not retained across editing session (#1572) + * EditColumnMark can't go up through newline (#1998) + * 'Confirm replace' dialog is not converted from UTF-8 to user defined charset (#1986) + * Missed \s symbol in Syntax file (#2010) + * Viewer in QuickView mode corrupts screen (#1918, #1944) + * ViewContinueSearch segfault on empty search (#1996) + * MC crashes if file name in archves contains '@' symbol (#1605) + * deba and debd VFS: items from DEBIAN directory are not accessible (#1920) + * Samba is not built with tcc (#1933) + * Incorrect conditional compilation of mcserver (#1925) + * Potencial security risk in mcserv (#1902) + * The lslR VFS doesn't work with ls-lR files created in en_US.UTF-8 locale and with files and directories started with whitespaces (#1921) + * Contents of RAR archives with filenames that contain / \d\d:\d\d / are not listed correctly (#2029) + * FTPFS: strcpy() is used for overlaping strings (#2018) + +Version 4.7.0.1 + +- Fixes + + * Fixed double free of memory in editor; + * Fixed build with --disable-vfs option; + * Fixed compile warnings about unused variables; + * Fixed Fedora/RH RPM versioning scheme. + + +Version 4.7.0 + +- Core + + * Removed charset confirmation on startup and added the automatic recognize + of system charset (#1613) + * Some startup speed up (#1781) + * Save flags of select/unselet file group (#1776) + * Don't set TOSTOP attribute on slave terminal (#1637) + * Keybindings for button bars (F1-F10 keys) (#212) + * Keybindings for Tree widget + * Enlarged sizes of Directory Tree dialog window + * Added missed esc sequencies for qansi terminals (#1803) + * New file type bindings: + + adeed mkv, 3gp video types + + use exif(1) output when viewing jpeg files + + opening .chm with kchmviewer with fallback to xchm + + viewing .mo files with msgunfmt + +- VFS + + * FISH: add the user name to the ssh command line only if it's not the same as + the local logged-in user (#1867) + * FTP: support active mode (#1796) + * FTP: improved symlink handling + * FTP: some FTP-servers don't have chmon support. Ignore FTP errors related + to chmod operations (#1708) + * EXTFS: added S3 backend by Jakob Kemi (#272) + * SFS: use single script for RPM and SRPM packets handling (#1590) + +- Editor + + * New syntax files: Cabal + * Updated syntax files: Python, PHP + * Syntax highlighting: added '.hh' and '.hpp' file extensions as C++ sources + +- Misc + + * Lots of code cleanup and optimization + * Workaround for SunStudio compiler bug #6888373 (#1749) + * Removed obsolete checks in configuration scripts + * Allow save empty value in history (#1814) + * Use ctrl-g instead of ctrl-c for SIGINT signal (#1876). + * RPM spec: rewritten and simplified static build procedure for legacy distros (#1848) + * Translation updated + * Documentation updates + * Added skin: darker color style (#1659) + +- Fixes + + * Memory and file descriptors leaks + * Crash on start if ~/.mc/panels.ini contains incorrect value of 'sort_order' key (#1790) + * MC aborts when ctrl-c is pressed (#1793) + * Build w/o internal editor (#1826) + * Compilation warings of --disable-nls and --disable-charset options (#1831) + * Incorrect handling of '--with-search-engine' configure option (#1396) + * Segmentation fault when search in different encodings (#1858) + * C-w does not delete whole command line (#407) + * Wrong shortcuts in menu items (#1836) + * Panels state saves and restores despite disabled 'Auto save setup' (#1663) + * Case insensitive file sorting in UTF-8 locales (#1536) + * Incorrect handling of 0xFF char that is valid char in CP1251 locale (#1883) + * Segfault in TreeView loading (#1794) + * Incorect stat info of ".." directory in file panel (#1757) + * Incorect stat info of ".." directory in info panel (#1757) + * Setting "Use passive mode over proxy" is not remembered (#1746) + * CK_Edit_Save_Mode command handling in editor (#1810) + * Incorrect calculation of some utf-8 characters width (#1768) + * Handling CJK chars in editor (#1628) + * Incorrect cursor positioning in editor (#1809, #1884) + * Vertical block handling in editor (#1839) + * Incorrect text scrolling in editor (#1877) + * Incorrect mouse movement in editor when text scrolled to the right (#1792) + * Newlines are lost when pasting multiline text in editor (#1710) + * Mismatched hotkeys EditBeginRecordMacro, EditEndRecordMacro in editor + * Mismatched hotkeys EditBeginningOfText, EditEndOfText, EditBeginPage, EditEndPage (#1724) + * Some syntax files are not installable (#1779) + * Date & time insertion in editor (#1759) + * "Matches not found" message is not shown in viewer + * Hangup after search in archive in viewer (#1873) + * SFS: CPIO VFS skips empty directories in the root of archive (#1732) + * Incorrect parsing FTP-string (#1605) + * LZMA files detect (#1798) + * FISH: broken filenames and timestamps on really poor busybox devices (#1450) + * Minor mistakes and mistypes in man files + * Various doxygen warnings + + +Version 4.7.0-pre4 + +- Core + + * Added feature of sort files by mouse click on column header + * Added keybindings to change files sort type via shortcuts + (PanelSelectSortOrder, PanelToggleSortOrderPrev, PanelToggleSortOrderNext, + PanelReverseSort, PanelSortOrderByName, PanelSortOrderByExt, + PanelSortOrderBySize, PanelSortOrderByMTime) + * Now the letter of sort type and sort direction is always drawn in panel + header (direction of sort is drown near the current sort column in long + file list mode only) + * Skin-files: added new parameters 'sort-sign-up' and 'sort-sign-down' in + the section '[widget-common]' to draw sign of sort direction + * Added option 'extensions_case' in filehighlight.ini file. + * Menu engine was reimplemented: 1) now menu is build dynamically, 2) + shortcut displayed in menu item is not a part of menu item text and it is + synchronized with keybinding defined in mc.keymap file (#1563). + +- VFS + + * Fixed view *.tar files with a colon in name + * Allow 'exit' command on non-local filesystems + * Added partial support of Microsoft CAB-archives + * Added support of ico files + * Added support of *.djvu files + * Fix segfaults in various cases while browsing various VFSs + * Fixed warnings when file copy inside archive. + +- Editor + + * Added scrolled percentage in status bar (only in "simple statusbar" mode) + * Fixed Misbehaving rectangular select in editor (wrong when selected from + right to left and/or bottom to top) + * Split editor menu 'Command' to 'Command' and 'Format' + * Added option 'Check POSIX new line' into 'Save mode...' dialog, add notification + before save when no newline at EOF (#46) + * Added bindings ('EditShiftBlockLeft', 'EditShiftBlockRight') for shift block + * Fixed incorrect drawing CJK (double width) character + +- Viewer + + * Fixed tabs alignment (#1664) + * Fixed view of next/prev file (#1750) + +- Misc + + * Shared clipboard for the mc editor, form fields, panel and command prompt + * Refactoring: now all filename constants are placed in src/fileloc.h file + * Testing & development: added ability for change user config dir. For example, + type make CFLAGS='-DMC_USERCONF_DIR=\".mc2\"' + * Changed Alt+Backspace behavior in command line + +- Fixes + + * Fixed broken building under uclibc <0.9.29 + * Autoindent regression + * Viewer Hex editor regression + * Incorrect indentation block when selecting with F3 + keys + * Fixed ownership of config files + * Configure.ac: fix broken check of option '--disable-vfs-undelfs' + * Learn keys: fixed incorrect save of keys configuration + * Fixed bug with 'The shell is already running a command' + * Fixed 'B' artefact into OpenSuse console of root user + + +Version 4.7.0-pre3 + +- Core + + * removed own popt stuff (command line options parser). Now used glib parser + * added feature for filenames highlighting in panels + * Copy/Move overwrite query dialog is more friendly for long file names + * at first run find file dialog now contain latest item from history + * charset support enabled by default (--enable-charset option) + * added support of skins + * added support of key bindings + +- VFS + + * fixed recognize of tar.xz archives + * added recognize of lzma archives by extension + +- Editor + + * 'Save as' dialog enhancement: select line break type: Windows/UNIX/Mac + (CR LF/LF/CR) + * syntax hightlighting updated: VerilogHDL, Shell script + * Added syntax highlighting for *.repo files of yum + * Added syntax highlighting of pacman's PKGBUILD and .install files + +- Viewer + + * Fixed showing Windows/Mac (CR LF/CR) line terminator + +- Misc + + * hotlist: support for environment variables ($HOME, ~username, etc.) + * hotlist: support for completion in path input + * all list widgets: support for fast navigation by number keys (i.e. 1 - + first list item, 2 - second) + +- Fixes + + * restored action of 'ctrl-t' keybinding (mark files&dirs). For selecting + charset use 'alt-e' + * segfault on incorrect color pair in [Color] section + * incorrect position of panel codeset dialog + * limit of 9 digits for of file size display + * lines drawing in -a stickchars mode + * segfault when you try to use non-anonymous FTP + * Ctrl-O handling under GNU Screen in altscreen mode + * support of CP866 (IBM866) locale + * configure.ac: checking for minimal version of glib and exit if version less + than 2.6 + * segfault by mouse wheel action in history list and menu + * Fixed behvior with Meta+PgDn? in editor + * Fixed behvior with cursor movement by Ctrl+arrows when cursor besides EOL + * Fixed editor autocompleting + * Fixed Copy/Move dialogs steal Kill Word shortcut + * Fixed autoconf issue when configure with --with-gpm-mouse option + + +Version 4.7.0-pre2 + +- Core + + * cycle menu navigation + * change behaviour of C-space, now it calculate size on "..", and for selected + dirs if there is one. + * new find file option: find only first hit in file (make search faster) + * new find file option: Whole words - find whole words only + * scalable TUI + +- VFS + + * FTPFS: support of IPv6 protocol + * extfs/iso9660 updated to support Joliet "UCS level 1" + +- Editor + + * new search/replace flag added "In selection" + * new hotkeys for bookmarks, now bookmark displayed in state line and editor + * new cursor behavior. Option "Cursor beyond end of line" - allow moving cursor + beyond the end of line + * new syntax hightlights added: erlang, ebuild, named, strace, j + * syntax hightlights updated: mail, vhdl, html + +- Viewer + + * Reworked for improve perfomance + * Implemented interruptable long-distance movements + * splitted src/view.[ch] into many files in src/viewer/ subdir for more simple + support of code + * fixed build of format string in runtime (for better i18n) + * add 'Whole words' option into the viewer 'Search' dialog + +- Misc + + * new option mouse_close_dialog, if mouse_close_dialog=1 click on outside the + dialog close them + * new: SI-based size show + * make shared history for find file, editor search/replace, viever + +- Fixes + + * linking error with --enable-vfs-undelfs + * external editor won't open if there are spaces in EDITOR variable + * C-c kill mc if mc built with --without-subshell option is run with -d option + * directory hotlist rendering + * segfault on empty replace string + * fixes for vfs/tarfs + * removing bashizm from vfs/extfs/u7z + * crash mc on create new file (Shift-F4) in external editor + * File copy/move dialog: in replacement field now handled asterisks as search groups + * VFS: Fixed SIGSERV(or heap corruption) on large filenames + * Fixed broken backward search + * Fixed uninitialised value for mouse event in in find.c#check_find_events() function + * Fixed ctrl+z signal handling + * Fixed incorrect showing prompt + * Fixed incorrect vertical selection (if line state swiched on) + * Fixed screen resize handle if mouse support is disabled + * Restore correct current directory after switch from Info panel to List one + * Fixed mouse support in 'konsole-256color' terminal + * Fixed keycodes in 'xterm-256color' terminal + * Fixed incorrect regexp search by content in 'file find' dialog + * Fixed incorrect backwards search + * Fixed incorrect detection of compressed patchfs + * Fixed incorrect detecting codeset when codeset selected + + +Version 4.7.0-pre1 + +- Core + + * native UTF-8 support + * filenames charset selection support in panels + * new 'Find File' dialog + * new unified search/replace engine with search types: Plain, Wildcard, Regexp, Hex + * extended learn keys + * locale based codepage autodetection + * initial support for doxygen generated docs + * refresh of autoconf stuff + * translation updates + * x86_64 fixes + +- Editor + + * various editor enchancements (vertical block marking/moving/copy/paste) + * navigate across source code through ctags/etags TAGS file + * new option 'Persistent selection' + * Del/Backspace - delete selected block if 'Persistent selection' switched off + * shift block right with TAB key by TAB size or TAB symbol, shift block left with COMPLETE key + if 'Persistent selection' switched off + * optional showing of line numbers + * various syntax files updates + * optional highlighting of the tabs and trailing spaces + * add some hot-keys + +- Misc + + * showing of the free space on current file system + * showing of the size selected files in mini-status bar + +- Fixes + + * editor's undo fixes + * many fixes from other distributions are included + * fish handling for symlinks is fixed + * escaping of fancy names is fixed + * segfault in fish permission checks is fixed + * various mc.ext fixes + * commandline completion fixes (mainly, escaping hadling) + * small fixes in history handling (locale independent .mc/history entries) + * code cleanups, various memleak/etc fixes (many thanks to valgrind) From 09ba994aa1cff0efe2f42ab8aa4a0d08c75517d3 Mon Sep 17 00:00:00 2001 From: Andrew Borodin Date: Sat, 22 Apr 2017 19:56:02 +0300 Subject: [PATCH 04/26] doc/TODO: clean up the already implemented stuff. Signed-off-by: Andrew Borodin --- doc/TODO | 72 ++------------------------------------------------------ 1 file changed, 2 insertions(+), 70 deletions(-) diff --git a/doc/TODO b/doc/TODO index f2c341974..e6253fdb2 100644 --- a/doc/TODO +++ b/doc/TODO @@ -1,19 +1,7 @@ -Before 4.6.2 -============ - -mc manual: describe new Find File feature options (find Recursively, -case Sensitive and Regular expression) mc manual: Add Environment Variables section -Check all instances of const_cast and str_unconst, remove the -unnecessary and comment the rest. - Clean up #include's in all files. -Make mc work with 64 bit data types. This includes support for 64 bit -processors, 64 bit operating systems and 64 bit file sizes. Generalizing -this, mc should use datatypes as they are appropriate. - Remove all instances of type casts on function pointers. Run the following command to get a list of function pointer types. grep -r 'typedef.*(\*' . \ @@ -36,8 +24,6 @@ over VFS with an external editor. Allow pathnames starting with spaces in vfs/extfs. -Hide the passwords when displaying mcvfs path names. - Broken pipe warning when viewing large *.tar.gz files. Warnings should be shown before the viewer is started if possible. @@ -50,9 +36,6 @@ associated with the old archive. Ctrl-q Ctrl-m in input dialog should enter \r, not a newline. -Interpret C literals in regular expressions entered by the user, e.g. \r -and \0x0D. - Allow entering archives in VFS by Ctrl-PgDown with non-empty command line. Right now, there is no convenient way to enter an archive when the command line is not empty. @@ -73,7 +56,6 @@ When saving config files, write to a copy, then replace the file. This would avoid the problem of partly written config files. Consider using locking of the config files. -Totals are not calculated when copying or moving a single directory. Totals should only be omitted for single files. Recheck all mouse handlers, make sure that they check button number. We @@ -88,13 +70,6 @@ environment variable MC_PS1 (or PS1) in the same way as bash. Support an environment variable (also like PS1 in bash) for setting the window title. -real_input_dialog_help() shouldn't use translated strings in the section -names in .mc/history. Right now, mc writes separate history sections -for different locales. Only input history is affected. - -Add "Ignore" and "Ignore all" buttons when reporting permission -problems. - Better date parser - don't allow seconds and year in ftp listings on the same line. @@ -103,17 +78,12 @@ Report errors in fish operations and recover from them. Allow colors to be defined in the mc.lib file. Make it possible to avoid using a super-long line to redefine all colors. -Allow verbatim search in "Find File". Right now, the context is always -interpreted as regular expression. - Filters in the editor should operate on the open file - don't close and reopen the file. They don't work on VFS now. For example, a gzipped files on FTP cannot be edited. ftp and fish with home != '/' - readjust directory to the home. -Search in the viewer should have an option for case sensitive search. - Make "Find File" dialog more responsive. Keep state in a structure and preserve it when the search is suspended. @@ -121,18 +91,7 @@ Use KDGKBENT ioctl on Linux console to find the mapping for shifted functional keys. Two mappings are widely used (Shift-F1 = F11 and Shift-F1 = F13). mc should adjust the keys to the mapping. -Alt-O should optionally show the current directory and move cursor down -(as in older versions). Old functionality on files (go to "..") is not -needed. - - -After 4.6.2 on 4.6.x branch -=========================== - -Make the internal editor reentrant. Add "edit menu file" to the editor -menu. - -Safe and restore file position in the viewer. +Make the internal editor reentrant. Consistent support for mc.lib. @@ -151,12 +110,6 @@ Add print dialog in the internal editor. Implement logging, not just for VFS. -"Find file" should remember full starting path, not "." in the history. - - -In the 4.7 branch -================= - Eliminate all pipes in subshell.c, run pwd after kill. Add support for more shells (e.g. ksh). @@ -164,15 +117,11 @@ Internal terminal - no more console saving. Implement a really Advanced Chown/Chmod. -Support for multi-byte charsets (e.g. UTF-8). - -sftp and fxp support in VFS. +fxp support in VFS. New listing mode keyword "time": mtime or the time (atime, ctime) used to sort files. -Support for X clipboard. - Provide "patch" and "diff" editors. The patch editor will automatically adjust the line numbers of the following chunks when lines are deleted or inserted at the beginning of the file. @@ -180,8 +129,6 @@ or inserted at the beginning of the file. Provide context menus for files. Possible actions include: [compile], [CVS commit], [CVS diff -up], [pack], [unpack], [grep]. -Make mc a CVS frontend comparable to Eclipse-3.0. - More standard Widgets: WTreeView, WDirectoryList, WGroupBox, WTextArea, WOpenDialog, WSaveDialog, WPrintDialog, WKeyBar. @@ -198,8 +145,6 @@ ideas still waiting for their implementation. - Make the extfs handle re-reads. - - Document (or remove) C-x C-r, C-x C-s. - - Check that all the help contexts exist on the help file. - Make the buttonbar for the tree box work. @@ -207,16 +152,11 @@ ideas still waiting for their implementation. - In the incremental search mode, when backspacing, select the correct file, do not stop in current file. - - Make C-y yank back all the killed text at once if you've just done - several kill operations in a row (C-k, M-d, etc). - - In learn keys, warn the user if he is trying to i) define a same sequence as an already defined (if the keycode differs) ii) define a sequence, which is a prefix of other longer and already defined sequence -* Configuration - * Documentation - Convert the source mc.1 to mc.sgml and create automagically from it @@ -254,8 +194,6 @@ ideas still waiting for their implementation. - Make a mechanism to lock all the mouse events and send them to the locking widget until unlocking is done. - - Sort with numerical extensions. - - Allow the program to execute a command even when we are on a vfs, maybe a special box, or make subshell code ignore the change directory request. Perhaps each vfs should store a local path attached to it, @@ -300,12 +238,6 @@ ideas still waiting for their implementation. - Support of non-UNIX ls in ftpfs. Perhaps using an ascii configuration file similar to moxftp. - - Have an option to let the user choose the preferred keybindings. - Currently, only the emacs keybindings are supported, add support - for Norton Commander and vi keybindings. - - - Find command should have a way to specify directories to skip. - - Add an option that will let listboxes do incremental searches. * Optimizations and cleanup From b5012c8e9d37817b334a79e76f5a41924c692513 Mon Sep 17 00:00:00 2001 From: Andrew Borodin Date: Sun, 23 Apr 2017 10:22:20 +0300 Subject: [PATCH 05/26] (tar_read_header): move checksum to separate function. Signed-off-by: Andrew Borodin --- src/vfs/tar/tar.c | 91 +++++++++++++++++++++++++++-------------------- 1 file changed, 52 insertions(+), 39 deletions(-) diff --git a/src/vfs/tar/tar.c b/src/vfs/tar/tar.c index 80cdc91e1..7093da40d 100644 --- a/src/vfs/tar/tar.c +++ b/src/vfs/tar/tar.c @@ -237,7 +237,7 @@ static union record rec_buf; * Result is -1 if the field is invalid (all blank, or nonoctal). */ static long -tar_from_oct (int digs, char *where) +tar_from_oct (int digs, const char *where) { long value; @@ -376,6 +376,52 @@ tar_skip_n_records (struct vfs_s_super *archive, int tard, size_t n) /* --------------------------------------------------------------------------------------------- */ +static ReadStatus +tar_checksum (const union record *header) +{ + long recsum; + long signed_sum = 0; + long sum = 0; + int i; + const char *p = header->charptr; + + recsum = tar_from_oct (8, header->header.chksum); + + for (i = sizeof (*header); --i >= 0;) + { + /* + * We can't use unsigned char here because of old compilers, + * e.g. V7. + */ + signed_sum += *p; + sum += 0xFF & *p++; + } + + /* Adjust checksum to count the "chksum" field as blanks. */ + for (i = sizeof (header->header.chksum); --i >= 0;) + { + sum -= 0xFF & header->header.chksum[i]; + signed_sum -= (char) header->header.chksum[i]; + } + + sum += ' ' * sizeof (header->header.chksum); + signed_sum += ' ' * sizeof (header->header.chksum); + + /* + * This is a zeroed record...whole record is 0's except + * for the 8 blanks we faked for the checksum field. + */ + if (sum == 8 * ' ') + return STATUS_EOFMARK; + + if (sum != recsum && signed_sum != recsum) + return STATUS_BADCHECKSUM; + + return STATUS_SUCCESS; +} + +/* --------------------------------------------------------------------------------------------- */ + static void tar_fill_stat (struct vfs_s_super *archive, struct stat *st, union record *header, size_t h_size) { @@ -470,10 +516,7 @@ static ReadStatus tar_read_header (struct vfs_class *me, struct vfs_s_super *archive, int tard, size_t * h_size) { tar_super_data_t *arch = (tar_super_data_t *) archive->data; - - int i; - long sum, signed_sum, recsum; - char *p; + ReadStatus checksum_status; union record *header; static char *next_long_name = NULL, *next_long_link = NULL; @@ -483,39 +526,9 @@ tar_read_header (struct vfs_class *me, struct vfs_s_super *archive, int tard, si if (NULL == header) return STATUS_EOF; - recsum = tar_from_oct (8, header->header.chksum); - - sum = 0; - signed_sum = 0; - p = header->charptr; - for (i = sizeof (*header); --i >= 0;) - { - /* - * We can't use unsigned char here because of old compilers, - * e.g. V7. - */ - signed_sum += *p; - sum += 0xFF & *p++; - } - - /* Adjust checksum to count the "chksum" field as blanks. */ - for (i = sizeof (header->header.chksum); --i >= 0;) - { - sum -= 0xFF & header->header.chksum[i]; - signed_sum -= (char) header->header.chksum[i]; - } - sum += ' ' * sizeof header->header.chksum; - signed_sum += ' ' * sizeof header->header.chksum; - - /* - * This is a zeroed record...whole record is 0's except - * for the 8 blanks we faked for the checksum field. - */ - if (sum == 8 * ' ') - return STATUS_EOFMARK; - - if (sum != recsum && signed_sum != recsum) - return STATUS_BADCHECKSUM; + checksum_status = tar_checksum (header); + if (checksum_status != STATUS_SUCCESS) + return checksum_status; /* * Try to determine the archive format. @@ -627,7 +640,7 @@ tar_read_header (struct vfs_class *me, struct vfs_s_super *archive, int tard, si struct vfs_s_entry *entry; struct vfs_s_inode *inode = NULL, *parent; off_t data_position; - char *q; + char *p, *q; size_t len; char *current_file_name, *current_link_name; From e185cb1e8cecc1a2f93aa5e9a0048706f478c6a2 Mon Sep 17 00:00:00 2001 From: Andrew Borodin Date: Wed, 3 May 2017 14:47:46 +0300 Subject: [PATCH 06/26] (tar_open_archive): initialize variable. ../../../../src/vfs/tar/tar.c: In function 'tar_open_archive': ../../../../src/vfs/tar/tar.c:805:69: error: 'h_size' may be used uninitialized in this function [-Werror=uninitialized] Signed-off-by: Andrew Borodin --- src/vfs/tar/tar.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vfs/tar/tar.c b/src/vfs/tar/tar.c index 7093da40d..7a5be43db 100644 --- a/src/vfs/tar/tar.c +++ b/src/vfs/tar/tar.c @@ -792,7 +792,7 @@ tar_open_archive (struct vfs_s_super *archive, const vfs_path_t * vpath, while (TRUE) { - size_t h_size; + size_t h_size = 0; ReadStatus prev_status = status; status = tar_read_header (vpath_element->class, archive, tard, &h_size); From 8bf7e69134e650b70f905271a435ab6ad5c10abe Mon Sep 17 00:00:00 2001 From: Andrew Borodin Date: Wed, 3 May 2017 14:51:19 +0300 Subject: [PATCH 07/26] (set_panel_filter): fix coding style. Signed-off-by: Andrew Borodin --- src/filemanager/cmd.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/filemanager/cmd.c b/src/filemanager/cmd.c index 0507debc6..46e174820 100644 --- a/src/filemanager/cmd.c +++ b/src/filemanager/cmd.c @@ -196,15 +196,14 @@ set_panel_filter (WPanel * p) char *reg_exp; const char *x; - x = p->filter ? p->filter : easy_patterns ? "*" : "."; + x = p->filter != NULL ? p->filter : easy_patterns ? "*" : "."; reg_exp = input_dialog_help (_("Filter"), _("Set expression for filtering filenames"), "[Filter...]", MC_HISTORY_FM_PANEL_FILTER, x, FALSE, INPUT_COMPLETE_FILENAMES); - if (!reg_exp) - return; - set_panel_filter_to (p, reg_exp); + if (reg_exp != NULL) + set_panel_filter_to (p, reg_exp); } /* --------------------------------------------------------------------------------------------- */ From a4518eed9e1d560cfc3a6a2de53d88eaf8263762 Mon Sep 17 00:00:00 2001 From: Andrew Borodin Date: Wed, 3 May 2017 14:55:57 +0300 Subject: [PATCH 08/26] (set_panel_filter_to): rename variable and use MC_PTR_FREE macro. Signed-off-by: Andrew Borodin --- src/filemanager/cmd.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/src/filemanager/cmd.c b/src/filemanager/cmd.c index 46e174820..a810f2c54 100644 --- a/src/filemanager/cmd.c +++ b/src/filemanager/cmd.c @@ -172,18 +172,15 @@ do_edit (const vfs_path_t * what_vpath) /* --------------------------------------------------------------------------------------------- */ static void -set_panel_filter_to (WPanel * p, char *allocated_filter_string) +set_panel_filter_to (WPanel * p, char *filter) { - g_free (p->filter); - p->filter = NULL; + MC_PTR_FREE (p->filter); /* Three ways to clear filter: NULL, "", "*" */ - if (allocated_filter_string == NULL || - allocated_filter_string[0] == '\0' || - (allocated_filter_string[0] == '*' && allocated_filter_string[1] == '\0')) - g_free (allocated_filter_string); + if (filter == NULL || filter[0] == '\0' || (filter[0] == '*' && filter[1] == '\0')) + g_free (filter); else - p->filter = allocated_filter_string; + p->filter = filter; reread_cmd (); } From 20398ece6e5ea55e804cc70ace533b4af099d239 Mon Sep 17 00:00:00 2001 From: Andreas Mohr Date: Thu, 11 May 2017 06:33:54 +0000 Subject: [PATCH 09/26] (jobs_fill_listbox): cleanup pointer-compare warning. Found by GCC 7.1.0. boxes.c:431:22: error: comparison between pointer and zero character constant [-Werror=pointer-compare] if (state_str[0] == '\0') ^~ boxes.c:431:9: note: did you mean to dereference the pointer? if (state_str[0] == '\0') ^ Signed-off-by: Andreas Mohr Signed-off-by: Andrew Borodin --- src/filemanager/boxes.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/filemanager/boxes.c b/src/filemanager/boxes.c index 90dc6e052..00006d142 100644 --- a/src/filemanager/boxes.c +++ b/src/filemanager/boxes.c @@ -428,7 +428,7 @@ jobs_fill_listbox (WListbox * list) static const char *state_str[2] = { "", "" }; TaskList *tl; - if (state_str[0] == '\0') + if (state_str[0][0] == '\0') { state_str[0] = _("Running"); state_str[1] = _("Stopped"); From d2cfb712b0207a1dcf9f48da8e66a5c204f80c72 Mon Sep 17 00:00:00 2001 From: Andreas Mohr Date: Thu, 11 May 2017 15:22:18 +0000 Subject: [PATCH 10/26] (mcview_mouse_callback): fix typo. Signed-off-by: Andreas Mohr Signed-off-by: Andrew Borodin --- src/viewer/mcviewer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/viewer/mcviewer.c b/src/viewer/mcviewer.c index ee1c1cc1e..111fafb27 100644 --- a/src/viewer/mcviewer.c +++ b/src/viewer/mcviewer.c @@ -106,7 +106,7 @@ mcview_mouse_callback (Widget * w, mouse_msg_t msg, mouse_event_t * event) change_panel (); } } - /* fall throught */ + /* fall through */ case MSG_MOUSE_CLICK: if (!view->text_wrap_mode) From bf5abff9372080f625c99c12f0734912c814f3c3 Mon Sep 17 00:00:00 2001 From: "Andrew V. Samoilov" Date: Sat, 13 May 2017 12:57:58 +0300 Subject: [PATCH 11/26] (buttonbar_call): fix possible NULL dereference. Signed-off-by: Andrew V. Samoilov --- lib/widget/buttonbar.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/widget/buttonbar.c b/lib/widget/buttonbar.c index f8448fb4d..7f91b9b8d 100644 --- a/lib/widget/buttonbar.c +++ b/lib/widget/buttonbar.c @@ -149,10 +149,11 @@ buttonbar_call (WButtonBar * bb, int i) Widget *w = WIDGET (bb); Widget *target; - target = (bb->labels[i].receiver != NULL) ? bb->labels[i].receiver : WIDGET (w->owner); - if ((bb != NULL) && (bb->labels[i].command != CK_IgnoreKey)) + { + target = (bb->labels[i].receiver != NULL) ? bb->labels[i].receiver : WIDGET (w->owner); ret = send_message (target, w, MSG_ACTION, bb->labels[i].command, NULL); + } return ret; } From 62eca8ebde3aa9044fa3c1f9b4facfb2ca2f0f9c Mon Sep 17 00:00:00 2001 From: "Andrew V. Samoilov" Date: Sat, 13 May 2017 16:56:34 +0300 Subject: [PATCH 12/26] (_interpret_node_status): Remove dead code. Signed-off-by: Andrew V. Samoilov --- src/vfs/smbfs/helpers/libsmb/namequery.c | 68 ------------------------ 1 file changed, 68 deletions(-) diff --git a/src/vfs/smbfs/helpers/libsmb/namequery.c b/src/vfs/smbfs/helpers/libsmb/namequery.c index a8240dac1..2e515f106 100644 --- a/src/vfs/smbfs/helpers/libsmb/namequery.c +++ b/src/vfs/smbfs/helpers/libsmb/namequery.c @@ -32,74 +32,6 @@ extern int DEBUGLEVEL; /* nmbd.c sets this to True. */ const BOOL global_in_nmbd = False; -#if 0 -/**************************************************************************** -interpret a node status response -****************************************************************************/ -static void -_interpret_node_status (char *p, char *master, char *rname) -{ - int numnames = CVAL (p, 0); - DEBUG (1, ("received %d names\n", numnames)); - - if (rname) - *rname = 0; - if (master) - *master = 0; - - p += 1; - while (numnames--) - { - char qname[17]; - int type; - fstring flags; - int i; - *flags = 0; - StrnCpy (qname, p, 15); - type = CVAL (p, 15); - p += 16; - - fstrcat (flags, (p[0] & 0x80) ? " " : " "); - if ((p[0] & 0x60) == 0x00) - fstrcat (flags, "B "); - if ((p[0] & 0x60) == 0x20) - fstrcat (flags, "P "); - if ((p[0] & 0x60) == 0x40) - fstrcat (flags, "M "); - if ((p[0] & 0x60) == 0x60) - fstrcat (flags, "H "); - if (p[0] & 0x10) - fstrcat (flags, " "); - if (p[0] & 0x08) - fstrcat (flags, " "); - if (p[0] & 0x04) - fstrcat (flags, " "); - if (p[0] & 0x02) - fstrcat (flags, " "); - - if (master && !*master && type == 0x1d) - { - StrnCpy (master, qname, 15); - trim_string (master, NULL, " "); - } - - if (rname && !*rname && type == 0x20 && !(p[0] & 0x80)) - { - StrnCpy (rname, qname, 15); - trim_string (rname, NULL, " "); - } - - for (i = strlen (qname); --i >= 0;) - { - if (!isprint ((int) qname[i])) - qname[i] = '.'; - } - DEBUG (1, ("\t%-15s <%02x> - %s\n", qname, type, flags)); - p += 2; - } - DEBUG (1, ("num_good_sends=%d num_good_receives=%d\n", IVAL (p, 20), IVAL (p, 24))); -} -#endif /* 0 */ /**************************************************************************** do a netbios name query to find someones IP From 23dec99195c6d93631449f33346e60f913bf5464 Mon Sep 17 00:00:00 2001 From: "Andrew V. Samoilov" Date: Sat, 13 May 2017 22:10:45 +0300 Subject: [PATCH 13/26] (parm_table[]): Make const to relocate 13624 bytes from .data to .text. (init_globals): fstring is enough for "%d.%d". (*): Remove nmbd code. Signed-off-by: Andrew V. Samoilov --- src/vfs/smbfs/helpers/param/loadparm.c | 89 +------------------------- 1 file changed, 3 insertions(+), 86 deletions(-) diff --git a/src/vfs/smbfs/helpers/param/loadparm.c b/src/vfs/smbfs/helpers/param/loadparm.c index 9035a1d36..5e384d1d9 100644 --- a/src/vfs/smbfs/helpers/param/loadparm.c +++ b/src/vfs/smbfs/helpers/param/loadparm.c @@ -448,9 +448,7 @@ static int iNumServices = 0; static int iServiceIndex = 0; static BOOL bInGlobalSection = True; static BOOL bGlobalOnly = False; -#if 0 -static int default_server_announce; -#endif /* 0 */ + #define NUMPARAMETERS (sizeof(parm_table) / sizeof(struct parm_struct)) /* prototypes for the special type handlers */ @@ -544,7 +542,7 @@ static struct enum_list const enum_ssl_version[] = { {SMB_SSL_V2, "ssl2"}, {SMB_ #define PARM_SEPARATOR(label) {label, P_SEP, P_SEPARATOR, NULL, NULL, NULL, 0, {0}} /* note that we do not initialise the defaults union - it is not allowed in ANSI C */ -static struct parm_struct parm_table[] = { +static struct parm_struct const parm_table[] = { PARM_SEPARATOR ("Base Options"), {"comment", P_STRING, P_LOCAL, &sDefault.comment, NULL, NULL, FLAG_BASIC | FLAG_SHARE | FLAG_PRINT, {0}}, @@ -911,7 +909,7 @@ static void init_globals (void) { static BOOL done_init = False; - pstring s; + fstring s; if (!done_init) { @@ -2506,87 +2504,6 @@ volume_label (int snum) return (ret); } #endif /* 0 */ -#if 0 -/******************************************************************* - Set the server type we will announce as via nmbd. -********************************************************************/ -static void -set_default_server_announce_type (void) -{ - default_server_announce = (SV_TYPE_WORKSTATION | SV_TYPE_SERVER | - SV_TYPE_SERVER_UNIX | SV_TYPE_PRINTQ_SERVER); - if (lp_announce_as () == ANNOUNCE_AS_NT_SERVER) - default_server_announce |= (SV_TYPE_SERVER_NT | SV_TYPE_NT); - if (lp_announce_as () == ANNOUNCE_AS_NT_WORKSTATION) - default_server_announce |= SV_TYPE_NT; - else if (lp_announce_as () == ANNOUNCE_AS_WIN95) - default_server_announce |= SV_TYPE_WIN95_PLUS; - else if (lp_announce_as () == ANNOUNCE_AS_WFW) - default_server_announce |= SV_TYPE_WFW; - default_server_announce |= (lp_time_server ()? SV_TYPE_TIME_SOURCE : 0); -} - - -/******************************************************************* - Get the default server type we will announce as via nmbd. -********************************************************************/ -int -lp_default_server_announce (void) -{ - return default_server_announce; -} - - -/******************************************************************* - Split the announce version into major and minor numbers. -********************************************************************/ -int -lp_major_announce_version (void) -{ - static BOOL got_major = False; - static int major_version = DEFAULT_MAJOR_VERSION; - char *vers; - char *p; - - if (got_major) - return major_version; - - got_major = True; - if ((vers = lp_announce_version ()) == NULL) - return major_version; - - if ((p = strchr (vers, '.')) == 0) - return major_version; - - *p = '\0'; - major_version = atoi (vers); - return major_version; -} - - -int -lp_minor_announce_version (void) -{ - static BOOL got_minor = False; - static int minor_version = DEFAULT_MINOR_VERSION; - char *vers; - char *p; - - if (got_minor) - return minor_version; - - got_minor = True; - if ((vers = lp_announce_version ()) == NULL) - return minor_version; - - if ((p = strchr (vers, '.')) == 0) - return minor_version; - - p++; - minor_version = atoi (p); - return minor_version; -} -#endif /* 0 */ /*********************************************************** Set the global name resolution order (used in smbclient). From 1b47c88ff10ecd38f215aee498e28e22b3c25fcc Mon Sep 17 00:00:00 2001 From: "Andrew V. Samoilov" Date: Thu, 25 May 2017 21:32:46 +0300 Subject: [PATCH 14/26] (message): Use "%s" to fix incorrect translation with printf pattern(s) Signed-off-by: Andrew V. Samoilov --- src/background.c | 11 +++++------ src/execute.c | 13 +++++++------ src/help.c | 2 +- src/learn.c | 2 +- src/vfs/smbfs/smbfs.c | 2 +- src/vfs/undelfs/undelfs.c | 15 ++++++++------- src/viewer/actions_cmd.c | 2 +- 7 files changed, 24 insertions(+), 23 deletions(-) diff --git a/src/background.c b/src/background.c index 7f673554f..88d48b75a 100644 --- a/src/background.c +++ b/src/background.c @@ -214,20 +214,19 @@ background_attention (int fd, void *closure) TaskList *p; int to_child_fd = -1; enum ReturnType type; + const char *background_process_error = _("Background process error"); ctx = closure; bytes = read (fd, &routine.pointer, sizeof (routine)); if (bytes == -1 || (size_t) bytes < (sizeof (routine))) { - const char *background_process_error = _("Background process error"); - unregister_task_running (ctx->pid, fd); if (!waitpid (ctx->pid, &status, WNOHANG)) { /* the process is still running, but it misbehaves - kill it */ kill (ctx->pid, SIGTERM); - message (D_ERROR, background_process_error, _("Unknown error in child")); + message (D_ERROR, background_process_error, "%s", _("Unknown error in child")); return 0; } @@ -235,7 +234,7 @@ background_attention (int fd, void *closure) if (WIFEXITED (status) && (WEXITSTATUS (status) == 0)) return 0; - message (D_ERROR, background_process_error, _("Child died unexpectedly")); + message (D_ERROR, background_process_error, "%s", _("Child died unexpectedly")); return 0; } @@ -249,7 +248,7 @@ background_attention (int fd, void *closure) if (argc > MAXCALLARGS) { - message (D_ERROR, _("Background protocol error"), + message (D_ERROR, _("Background protocol error"), "%s", _("Background process sent us a request for more arguments\n" "than we can handle.")); } @@ -290,7 +289,7 @@ background_attention (int fd, void *closure) to_child_fd = p->to_child_fd; if (to_child_fd == -1) - message (D_ERROR, _("Background process error"), _("Unknown error in child")); + message (D_ERROR, background_process_error, "%s", _("Unknown error in child")); /* Handle the call */ if (type == Return_Integer) diff --git a/src/execute.c b/src/execute.c index 5bb017f00..1fdf47a08 100644 --- a/src/execute.c +++ b/src/execute.c @@ -132,7 +132,7 @@ static void do_possible_cd (const vfs_path_t * new_dir_vpath) { if (!do_cd (new_dir_vpath, cd_exact)) - message (D_ERROR, _("Warning"), + message (D_ERROR, _("Warning"), "%s", _("The Commander can't change to the directory that\n" "the subshell claims you are in. Perhaps you have\n" "deleted your working directory, or given yourself\n" @@ -334,7 +334,7 @@ do_executev (const char *shell, int flags, char *const argv[]) #endif /* ENABLE_SUBSHELL */ ) { - printf (_("Press any key to continue...")); + printf ("%s", _("Press any key to continue...")); fflush (stdout); tty_raw_mode (); get_key_code (0); @@ -430,10 +430,12 @@ shell_execute (const char *command, int flags) #ifdef ENABLE_SUBSHELL if (mc_global.tty.use_subshell) + { if (subshell_state == INACTIVE) do_execute (mc_global.shell->path, cmd ? cmd : command, flags | EXECUTE_AS_SHELL); else - message (D_ERROR, MSG_ERROR, _("The shell is already running a command")); + message (D_ERROR, MSG_ERROR, "%s", _("The shell is already running a command")); + } else #endif /* ENABLE_SUBSHELL */ do_execute (mc_global.shell->path, cmd ? cmd : command, flags | EXECUTE_AS_SHELL); @@ -486,8 +488,8 @@ toggle_panels (void) { if (output_starts_shell) { - fprintf (stderr, _("Type 'exit' to return to the Midnight Commander")); - fprintf (stderr, "\n\r\n\r"); + fputs (_("Type 'exit' to return to the Midnight Commander"), stderr); + fputs ("\n\r\n\r", stderr); my_system (EXECUTE_INTERNAL, mc_global.shell->path, NULL); } @@ -646,7 +648,6 @@ execute_external_editor_or_viewer (const char *command, const vfs_path_t * filen do_executev (command, EXECUTE_INTERNAL, NULL); g_free (extern_cmd_options); - } execute_cleanup_with_vfs_arg (filename_vpath, &localcopy_vpath, &mtime); diff --git a/src/help.c b/src/help.c index cada7d665..48d9cb796 100644 --- a/src/help.c +++ b/src/help.c @@ -359,7 +359,7 @@ start_link_area (int x, int y, const char *link_name) Link_Area *la; if (inside_link_area) - message (D_NORMAL, _("Warning"), _("Internal bug: Double start of link area")); + message (D_NORMAL, _("Warning"), "%s", _("Internal bug: Double start of link area")); /* Allocate memory for a new link area */ la = g_new (Link_Area, 1); diff --git a/src/learn.c b/src/learn.c index df82c5e8b..2d6f98b76 100644 --- a/src/learn.c +++ b/src/learn.c @@ -194,7 +194,7 @@ learn_check_key (int c) } else { - message (D_ERROR, learn_title, + message (D_ERROR, learn_title, "%s", _ ("Great! You have a complete terminal database!\n" "All your keys work well.")); diff --git a/src/vfs/smbfs/smbfs.c b/src/vfs/smbfs/smbfs.c index ce617a6c4..d6e09a0c5 100644 --- a/src/vfs/smbfs/smbfs.c +++ b/src/vfs/smbfs/smbfs.c @@ -1316,7 +1316,7 @@ smbfs_open_link (char *host, char *path, const char *user, int *port, char *this if (my_errno != EPERM) return 0; - message (D_ERROR, MSG_ERROR, _("Authentication failed")); + message (D_ERROR, MSG_ERROR, "%s", _("Authentication failed")); /* authentication failed, try again */ smbfs_auth_remove (bucket->host, bucket->service); diff --git a/src/vfs/undelfs/undelfs.c b/src/vfs/undelfs/undelfs.c index 0719911c7..5ee099b82 100644 --- a/src/vfs/undelfs/undelfs.c +++ b/src/vfs/undelfs/undelfs.c @@ -240,13 +240,13 @@ undelfs_loaddel (void) delarray = g_try_malloc (sizeof (struct deleted_info) * max_delarray); if (!delarray) { - message (D_ERROR, undelfserr, _("not enough memory")); + message (D_ERROR, undelfserr, "%s", _("not enough memory")); return 0; } block_buf = g_try_malloc (fs->blocksize * 3); if (!block_buf) { - message (D_ERROR, undelfserr, _("while allocating block buffer")); + message (D_ERROR, undelfserr, "%s", _("while allocating block buffer")); goto free_delarray; } retval = ext2fs_open_inode_scan (fs, 0, &scan); @@ -292,7 +292,8 @@ undelfs_loaddel (void) (max_delarray + 50)); if (!delarray_new) { - message (D_ERROR, undelfserr, _("no more memory while reallocating array")); + message (D_ERROR, undelfserr, "%s", + _("no more memory while reallocating array")); goto error_out; } delarray = delarray_new; @@ -402,7 +403,7 @@ undelfs_readdir (void *vfs_info) if (vfs_info != fs) { - message (D_ERROR, undelfserr, _("vfs_info is not fs!")); + message (D_ERROR, undelfserr, "%s", _("vfs_info is not fs!")); return NULL; } if (readdir_ptr == num_delarray) @@ -448,7 +449,7 @@ undelfs_open (const vfs_path_t * vpath, int flags, mode_t mode) if (!ext2_fname || strcmp (ext2_fname, file)) { - message (D_ERROR, undelfserr, _("You have to chdir to extract files first")); + message (D_ERROR, undelfserr, "%s", _("You have to chdir to extract files first")); g_free (file); g_free (f); return 0; @@ -594,7 +595,7 @@ undelfs_read (void *vfs_info, char *buffer, size_t count) retval = ext2fs_block_iterate (fs, p->inode, 0, NULL, undelfs_dump_read, p); if (retval) { - message (D_ERROR, undelfserr, _("while iterating over blocks")); + message (D_ERROR, undelfserr, "%s", _("while iterating over blocks")); return -1; } if (p->error_code && !p->finished) @@ -670,9 +671,9 @@ undelfs_lstat (const vfs_path_t * vpath, struct stat *buf) if (!ext2_fname || strcmp (ext2_fname, file)) { - message (D_ERROR, undelfserr, _("You have to chdir to extract files first")); g_free (file); g_free (f); + message (D_ERROR, undelfserr, "%s", _("You have to chdir to extract files first")); return 0; } inode_index = undelfs_getindex (f); diff --git a/src/viewer/actions_cmd.c b/src/viewer/actions_cmd.c index 5322bf572..87743fb8b 100644 --- a/src/viewer/actions_cmd.c +++ b/src/viewer/actions_cmd.c @@ -416,7 +416,7 @@ mcview_execute_cmd (WView * view, long command) mcview_moveto_offset (view, addr); else { - message (D_ERROR, _("Warning"), _("Invalid value")); + message (D_ERROR, _("Warning"), "%s", _("Invalid value")); view->dirty++; } } From 02effb249917b17a15ddab9de1309751fc03cbec Mon Sep 17 00:00:00 2001 From: Andrew Borodin Date: Wed, 7 Jun 2017 17:17:55 +0300 Subject: [PATCH 15/26] (diff_two_paths): reduce variable scopes. Signed-off-by: Andrew Borodin --- lib/util.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/lib/util.c b/lib/util.c index 6df1c76bc..bd9a0f21f 100644 --- a/lib/util.c +++ b/lib/util.c @@ -1006,9 +1006,9 @@ convert_controls (const char *p) char * diff_two_paths (const vfs_path_t * vpath1, const vfs_path_t * vpath2) { - char *p, *q, *r, *s, *buf = NULL; - int i, j, prevlen = -1, currlen; + int j, prevlen = -1, currlen; char *my_first = NULL, *my_second = NULL; + char *buf = NULL; my_first = resolve_symlinks (vpath1); if (my_first == NULL) @@ -1020,10 +1020,15 @@ diff_two_paths (const vfs_path_t * vpath1, const vfs_path_t * vpath2) for (j = 0; j < 2; j++) { + char *p, *q; + int i; + p = my_first; q = my_second; while (TRUE) { + char *r, *s; + r = strchr (p, PATH_SEP); s = strchr (q, PATH_SEP); if (r == NULL || s == NULL) From 72056890a73f365934e31c61bb8a05bca29b6dbe Mon Sep 17 00:00:00 2001 From: Andrew Borodin Date: Fri, 9 Jun 2017 08:51:24 +0300 Subject: [PATCH 16/26] (diff_two_paths): minor optimization: exit loop ASAP. Signed-off-by: Andrew Borodin --- lib/util.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/util.c b/lib/util.c index bd9a0f21f..32f62bebf 100644 --- a/lib/util.c +++ b/lib/util.c @@ -1030,9 +1030,12 @@ diff_two_paths (const vfs_path_t * vpath1, const vfs_path_t * vpath2) char *r, *s; r = strchr (p, PATH_SEP); - s = strchr (q, PATH_SEP); - if (r == NULL || s == NULL) + if (r == NULL) break; + s = strchr (q, PATH_SEP); + if (s == NULL) + break; + *r = '\0'; *s = '\0'; if (strcmp (p, q) != 0) From cebede5e84962b8360255a776963a84d90feb775 Mon Sep 17 00:00:00 2001 From: Andrew Borodin Date: Wed, 7 Jun 2017 17:22:05 +0300 Subject: [PATCH 17/26] (diff_two_paths): optimizate path comparision. Signed-off-by: Andrew Borodin --- lib/util.c | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/lib/util.c b/lib/util.c index 32f62bebf..0326f65e8 100644 --- a/lib/util.c +++ b/lib/util.c @@ -1028,6 +1028,7 @@ diff_two_paths (const vfs_path_t * vpath1, const vfs_path_t * vpath2) while (TRUE) { char *r, *s; + ptrdiff_t len; r = strchr (p, PATH_SEP); if (r == NULL) @@ -1036,17 +1037,9 @@ diff_two_paths (const vfs_path_t * vpath1, const vfs_path_t * vpath2) if (s == NULL) break; - *r = '\0'; - *s = '\0'; - if (strcmp (p, q) != 0) - { - *r = PATH_SEP; - *s = PATH_SEP; + len = r - p; + if (len != (s - q) || strncmp (p, q, (size_t) len) != 0) break; - } - - *r = PATH_SEP; - *s = PATH_SEP; p = r + 1; q = s + 1; From 8715c41a47c1e2c423f1d24c9b654572368f18eb Mon Sep 17 00:00:00 2001 From: Andrew Borodin Date: Fri, 9 Jun 2017 10:02:34 +0300 Subject: [PATCH 18/26] (vfs_path_from_str_uri_parser): fix detection of relative path. Signed-off-by: Andrew Borodin --- lib/vfs/path.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/vfs/path.c b/lib/vfs/path.c index eb5fbec1c..0c552b934 100644 --- a/lib/vfs/path.c +++ b/lib/vfs/path.c @@ -436,11 +436,12 @@ vfs_path_from_str_uri_parser (char *path, vfs_path_flag_t flags) { vfs_path_t *vpath; vfs_path_element_t *element; - char *url_delimiter; + (void) flags; + vpath = vfs_path_new (); - vpath->relative = (flags & VPF_NO_CANON) != 0; + vpath->relative = path != NULL && !IS_PATH_SEP (*path); while ((url_delimiter = g_strrstr (path, VFS_PATH_URL_DELIMITER)) != NULL) { From 3424622d5a9666178fc60a17aed802b717bd0ee8 Mon Sep 17 00:00:00 2001 From: Andrew Borodin Date: Fri, 9 Jun 2017 10:14:46 +0300 Subject: [PATCH 19/26] (vfs_path_from_str_deprecated_parser, vfs_path_from_str_uri_parser): remove unused flags argument. Signed-off-by: Andrew Borodin --- lib/vfs/path.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/lib/vfs/path.c b/lib/vfs/path.c index 0c552b934..352df7f7d 100644 --- a/lib/vfs/path.c +++ b/lib/vfs/path.c @@ -367,14 +367,13 @@ vfs_path_is_str_path_deprecated (const char *path_str) */ static vfs_path_t * -vfs_path_from_str_deprecated_parser (char *path, vfs_path_flag_t flags) +vfs_path_from_str_deprecated_parser (char *path) { vfs_path_t *vpath; vfs_path_element_t *element; struct vfs_class *class; const char *local, *op; - (void) flags; vpath = vfs_path_new (); while ((class = _vfs_split_with_semi_skip_count (path, &local, &op, 0)) != NULL) @@ -432,14 +431,12 @@ vfs_path_from_str_deprecated_parser (char *path, vfs_path_flag_t flags) */ static vfs_path_t * -vfs_path_from_str_uri_parser (char *path, vfs_path_flag_t flags) +vfs_path_from_str_uri_parser (char *path) { vfs_path_t *vpath; vfs_path_element_t *element; char *url_delimiter; - (void) flags; - vpath = vfs_path_new (); vpath->relative = path != NULL && !IS_PATH_SEP (*path); @@ -740,9 +737,9 @@ vfs_path_from_str_flags (const char *path_str, vfs_path_flag_t flags) return NULL; if ((flags & VPF_USE_DEPRECATED_PARSER) != 0 && vfs_path_is_str_path_deprecated (path)) - vpath = vfs_path_from_str_deprecated_parser (path, flags); + vpath = vfs_path_from_str_deprecated_parser (path); else - vpath = vfs_path_from_str_uri_parser (path, flags); + vpath = vfs_path_from_str_uri_parser (path); vpath->str = vfs_path_to_str_flags (vpath, 0, flags); g_free (path); From e1ee3a246554cea9f89ae497ef0c294427708119 Mon Sep 17 00:00:00 2001 From: Andrew Borodin Date: Wed, 21 Jun 2017 10:42:06 +0300 Subject: [PATCH 20/26] Syntax.in: simplify pattern for HiveQL. Signed-off-by: Andrew Borodin --- misc/syntax/Syntax.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/misc/syntax/Syntax.in b/misc/syntax/Syntax.in index ead88fb8e..8e3cbecc5 100644 --- a/misc/syntax/Syntax.in +++ b/misc/syntax/Syntax.in @@ -151,7 +151,7 @@ include octave.syntax file ..\*\\.(?i:sql)$ SQL\sProgram include sql.syntax -file ..\*\\.(hql|HQL)$ HiveQL\sProgram +file ..\*\\.(?i:hql)$ HiveQL\sProgram include hive.syntax file ..\*\\.(spec|spec\\.in)$ RPM\sSpecfile From 55bafd40e5ca1032d5f9dbdc6bf7176965d08d54 Mon Sep 17 00:00:00 2001 From: Andrew Borodin Date: Mon, 3 Jul 2017 21:37:39 +0300 Subject: [PATCH 21/26] (do_link): fix coding style. Signed-off-by: Andrew Borodin --- src/filemanager/cmd.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/filemanager/cmd.c b/src/filemanager/cmd.c index a810f2c54..3107a7275 100644 --- a/src/filemanager/cmd.c +++ b/src/filemanager/cmd.c @@ -359,11 +359,11 @@ do_link (link_type_t link_type, const char *fname) src = g_strdup_printf (_("Link %s to:"), str_trunc (fname, 46)); dest = input_expand_dialog (_("Link"), src, MC_HISTORY_FM_LINK, "", INPUT_COMPLETE_FILENAMES); - if (!dest || !*dest) + if (dest == NULL || *dest == '\0') goto cleanup; save_cwds_stat (); dest_vpath = vfs_path_from_str (dest); - if (-1 == mc_link (fname_vpath, dest_vpath)) + if (mc_link (fname_vpath, dest_vpath) == -1) message (D_ERROR, MSG_ERROR, _("link: %s"), unix_error_string (errno)); } else @@ -393,7 +393,7 @@ do_link (link_type_t link_type, const char *fname) vfs_path_free (d); vfs_path_free (s); - if (!dest || !*dest || !src || !*src) + if (dest == NULL || *dest == '\0' || src == NULL || *src == '\0') goto cleanup; save_cwds_stat (); From 3a3a6479d31b38b9f7b501f3d7e6f4018da56d72 Mon Sep 17 00:00:00 2001 From: Andrew Borodin Date: Mon, 3 Jul 2017 21:34:08 +0300 Subject: [PATCH 22/26] (do_link): minor optimization. Signed-off-by: Andrew Borodin --- src/filemanager/cmd.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/filemanager/cmd.c b/src/filemanager/cmd.c index 3107a7275..1f6eb4c96 100644 --- a/src/filemanager/cmd.c +++ b/src/filemanager/cmd.c @@ -351,20 +351,24 @@ static void do_link (link_type_t link_type, const char *fname) { char *dest = NULL, *src = NULL; - vfs_path_t *fname_vpath, *dest_vpath = NULL; + vfs_path_t *dest_vpath = NULL; - fname_vpath = vfs_path_from_str (fname); if (link_type == LINK_HARDLINK) { + vfs_path_t *fname_vpath; + src = g_strdup_printf (_("Link %s to:"), str_trunc (fname, 46)); dest = input_expand_dialog (_("Link"), src, MC_HISTORY_FM_LINK, "", INPUT_COMPLETE_FILENAMES); if (dest == NULL || *dest == '\0') goto cleanup; save_cwds_stat (); + + fname_vpath = vfs_path_from_str (fname); dest_vpath = vfs_path_from_str (dest); if (mc_link (fname_vpath, dest_vpath) == -1) message (D_ERROR, MSG_ERROR, _("link: %s"), unix_error_string (errno)); + vfs_path_free (fname_vpath); } else { @@ -409,7 +413,6 @@ do_link (link_type_t link_type, const char *fname) repaint_screen (); cleanup: - vfs_path_free (fname_vpath); vfs_path_free (dest_vpath); g_free (src); g_free (dest); From d5f4e631c3e060ddd7069341c634a23de266b3fe Mon Sep 17 00:00:00 2001 From: Andrew Borodin Date: Sun, 16 Jul 2017 09:06:53 +0300 Subject: [PATCH 23/26] Sync with gnulib 3b1faeb2e29b62588709208f97d34c1787777dcb. * m4.include/ls-mntd-fs.m4: make sure $host and $host_os are defined when used. Signed-off-by: Andrew Borodin --- m4.include/ls-mntd-fs.m4 | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/m4.include/ls-mntd-fs.m4 b/m4.include/ls-mntd-fs.m4 index 7e4aa192a..4c8b4ac77 100644 --- a/m4.include/ls-mntd-fs.m4 +++ b/m4.include/ls-mntd-fs.m4 @@ -1,7 +1,7 @@ -# serial 32 +# serial 33 # How to list mounted file systems. -# Copyright (C) 1998-2004, 2006, 2009-2015 Free Software Foundation, Inc. +# Copyright (C) 1998-2004, 2006, 2009-2017 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -26,6 +26,7 @@ AC_CHECK_FUNCS([getmntent]) # gl_LIST_MOUNTED_FILE_SYSTEMS([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]]) AC_DEFUN([gl_LIST_MOUNTED_FILE_SYSTEMS], [ +AC_REQUIRE([AC_CANONICAL_HOST]) AC_CHECK_FUNCS([listmntent getmntinfo]) AC_CHECK_HEADERS_ONCE([sys/param.h sys/statvfs.h]) From 1d2cbee3200787367da054ada570e4d9d088ab90 Mon Sep 17 00:00:00 2001 From: Andrew Borodin Date: Sun, 16 Jul 2017 14:37:14 +0300 Subject: [PATCH 24/26] Fix 2nd argument of gauge_show() call. Signed-off-by: Andrew Borodin --- src/filemanager/filegui.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/filemanager/filegui.c b/src/filemanager/filegui.c index 3f969b763..d6e4d39a6 100644 --- a/src/filemanager/filegui.c +++ b/src/filemanager/filegui.c @@ -890,12 +890,12 @@ file_progress_show (file_op_context_t * ctx, off_t done, off_t total, if (total == 0) { - gauge_show (ui->progress_file_gauge, 0); + gauge_show (ui->progress_file_gauge, FALSE); return; } gauge_set_value (ui->progress_file_gauge, 1024, (int) (1024 * done / total)); - gauge_show (ui->progress_file_gauge, 1); + gauge_show (ui->progress_file_gauge, TRUE); if (!force_update) return; @@ -964,12 +964,12 @@ file_progress_show_total (file_op_total_context_t * tctx, file_op_context_t * ct if (ui->progress_total_gauge != NULL) { if (ctx->progress_bytes == 0) - gauge_show (ui->progress_total_gauge, 0); + gauge_show (ui->progress_total_gauge, FALSE); else { gauge_set_value (ui->progress_total_gauge, 1024, (int) (1024 * copied_bytes / ctx->progress_bytes)); - gauge_show (ui->progress_total_gauge, 1); + gauge_show (ui->progress_total_gauge, TRUE); } } From 6310e077458594fca90061e18ab96df1fa8102c3 Mon Sep 17 00:00:00 2001 From: Andrew Borodin Date: Tue, 5 Sep 2017 14:50:22 +0300 Subject: [PATCH 25/26] (button_callback): clean up unneeded type casting. Signed-off-by: Andrew Borodin --- lib/widget/button.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/widget/button.c b/lib/widget/button.c index fc0bb4bb8..249837dd8 100644 --- a/lib/widget/button.c +++ b/lib/widget/button.c @@ -68,7 +68,7 @@ button_callback (Widget * w, Widget * sender, widget_msg_t msg, int parm, void * * when hotkeys are sent to all widgets before the key is * handled by the current widget. */ - if (parm == '\n' && WIDGET (h->current->data) == WIDGET (b)) + if (parm == '\n' && WIDGET (h->current->data) == w) { send_message (w, sender, MSG_KEY, ' ', data); return MSG_HANDLED; From d1e4655d056e22e536eb753bb47ec732f4077da7 Mon Sep 17 00:00:00 2001 From: Andrew Borodin Date: Sat, 28 Oct 2017 19:41:15 +0300 Subject: [PATCH 26/26] src/vfs/extfs/helpers/README: fix path to user scripts. --- src/vfs/extfs/helpers/README | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vfs/extfs/helpers/README b/src/vfs/extfs/helpers/README index 8b4a309cd..6a02b167e 100644 --- a/src/vfs/extfs/helpers/README +++ b/src/vfs/extfs/helpers/README @@ -8,7 +8,7 @@ possible to create new virtual filesystems for the GNU MC very easily. To handle requests, create a shell/perl/python/etc script/program (with executable permissions) in $(libexecdir)/mc/extfs.d -or in ~/.mc/extfs.d. +or in ~/.local/share/mc/extfs.d/. (Note: $(libexecdir) should be substituted for actual libexecdir path stored when configured or compiled, like /usr/local/libexec or /usr/libexec).