For some reason, mc aborts if .cpio magic as wrong.
This trivial patch makes mc handle it gracefully.
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
Test case:
* create any zip-archive (or take exists)
* run mc
* enter into archive
* try to copy any files inside archive.
Fix issue: Try to open temporarry file twice: with O_CREATE flag; and without O_CREATE and with O_TRUNC flag
Also, created extfs_chown() function for avoid chown-related warnings.
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
* Increase number of reading butes by one for better analyzation of compression type.
* Add recognize lzma archive by extention.
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
...or not-so-large but nevertheless
contain more than one function call,
or contain loops, or contain if's and at least one
function call, or contain largish objects on stack.
In my experience, in those cases the code size
growth is big enough to not inline stuff.
I guess some of the really big functions
are defined inline because they have, or had in the past,
just one callsite.
But for a few years gcc already does it automatically,
no need to do it by hand and risk code size explosion
when later during code evolution another callsite
is created. This optimization by hand is simply
no longer needed.
Anyway, here is the code size difference:
text data bss dec hex filename
572337 17944 177820 768101 bb865 mc.t5/.obj/src/mc
567697 17944 177820 763461 ba645 mc.t6/.obj/src/mc
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Signed-off-by: Sergei Trofimovich <slyfox@inbox.ru>
UseCase:
* rename any patch file into patch_file.lzma_tar.patch.gz for example
* try to enter into renamed file (press Enter key on a file in panel)
* You'll see error message 'sh: lzma: command not found'
Fix issue:
* Add -b key into call of 'file' utility (to avoid filename in output)
* better parse 'file -b' output
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
Fixed missed includes.
Fised widget_set_size() declaration.
Moved default widget callback (default_proc()) from dialog.[ch] to widget.[ch].
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
* place every operation into a if clause, so that every failure of the
operations is reported.
* Place chown/chmod into if conditions to check if the commands where
successfull or not on fish.
* Added one more argument to the #CHOWN line
Signed-off-by: Patrick Winnertz <winnie@debian.org>
Fixed bashism in 'mcu7zip_rm' and 'mcu7zip_rmdir' functions.
* Use 'printf' instread of 'echo -e'
* stderor redirected to /dev/null
Thanks to narcan.
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
Signed-off-by: Patrick Winnertz <winnie@debian.org>
edit: cleanup: moved variable declaration to begin of block
edit: have_charset: added explicit variable declarations
Signed-off-by: Sergei Trofimovich <slyfox@inbox.ru>
fix not initialized variable 'cw'
fix variables 'cw', 'utf_ch', make more safety algorithm.
Reason:
If some directory in fish is a read-only, then mc will crashed
Issue:
In fish_mkdir added additional check if directory was created.
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
No any files was copyed into fish.
Issue:
Files was try to create with O_EXCL flag. On fish it's fail
Now for fish flag O_EXCL will dropped.
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
Description by Sergei Trofimovich:
GNU ChangeLog? files are result of CVS stupidpity about changeset tracking.
Currently constantly updated ChangeLogs? diverge in different branches and cause collisions(!)
when 'git merge' (almost ANY SINGLE MERGE!).
Major changes can be described in NEWS file, minor changes can be autogenerated via 'git log'/'git shortlog'
and friends (if needed at all).