Renamed and moved src/editor/editloc.[ch] -> lib/lock.[ch].
Renamed lock handling functions.
Fixed library order in src/Makefile.am.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Multiscreen engine allows to run several editors and viewers
at the same time and switch between them.
Initial commit: minor refactoring: redefine dialog flags using enum.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Case 1: Make the terminal window 85 characters wide. Click (with the
mouse) on the right side of the "Copy" button on the bottom. See the
Move dialog appearing instead of the Copy dialog.
Case 2: Make the terminal 42 characters wide. Click on the bottom right
corner (the Re~ov button). MC invokes its menu or quits, depending on
the exact click location.
The patch that solves all these. The extra space is not assigned to the
first buttons, but distributed mostly evenly across buttons,
guaranteeing that the first five get exactly as much (or one character
less) than the second five, just as it works for the panels. Also, mouse
clicks use the exact same boundaries that were used when printing the
buttons.
Signed-off-by: Yury V. Zaytsev <yury@shurup.com>
Minor code cleanup, renamed local variable to avoid shadowing of global
variable, fixed formatting.
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Check and correct value of option_tab_spacing during options loading.
Check and correct value of option_word_wrap_line_length during options loading
and after editor options changing.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
added params clipbord_store, clipbord_paste into [Misc] section.
created src/clipbord.[ch]
added copy_file_to_ext_clip, paste_to_file_from_ext_clip for copy/paste
text to the global X clipboard.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Signed-off-by: Ilia Maslakov <il.smind@gmail.com>
Fixed info panel initialization and destroying.
Fixed info panel drawing: don't draw info twice.
Fixed includes: added missing <sys/stat.h>.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
If MC is built with --disable-nls option, the input_colors constant
is undeclared in init_panelize() function.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
added selection with mouse
Signed-off-by: Ilia Maslakov <il.smind@gmail.com>
Code cleanup: make visibility of some functions as static
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
Signed-off-by: Ilia Maslakov <il.smind@gmail.com>
fixed skins
Signed-off-by: Ilia Maslakov <il.smind@gmail.com>
new behavior: DEL - clear current field of dialog if text in the field is not modify and cursor not moved.
Signed-off-by: Ilia Maslakov <il.smind@gmail.com>
Code cleanups: avoid compiler warnings
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
Most of viewer initialization was moved to mcview_init() function
to rid of double initialization of mcview members.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Hotkeys are already highlighted by the color; there is no any point
in using yet another attribute (uppercase) for emphasizing them
even more. Capitalizing a letter in the middle of a word looks ugly.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
The man2hlp program is build using the target compiler. The
resulting executable therefore does not work on the build host.
Since the man2hlp program is needed during compile time, the build
will fail.
Moved man2hlp into separate subdir
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
View (F3) some file.
Switch Raw->Parse or Parse->Raw (F8).
Search any text, contained in the file.
Crash!
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
Panel options are moved to new dialog.
Panel setup options are collected in a special structure.
Includes clean up.
Code indentation.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
'Left'/'Right' menu was reorganized.
'File listing' menu item was added to fast switch file panel
to file listing mode.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Added a new panel action 'PanelMarkFileDown'/'PanelMarkFileUp' for mark files and move cursor to the down or up after mark.
Signed-off-by: Ilia Maslakov <il.smind@gmail.com>
Initial step: refactoring: a piece of code was moved form main.c
into args.c. Some functions and variables were renamed.
Fixed includes.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
The result of
touch 1.gz
is not a valid gzip'ed file. MCEditor crashes trying open it.
Changed initialization order of editor to init charset conversion
handler by non-zero value before open a file.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Signed-off-by: Ilia Maslakov <il.smind@gmail.com>
Collect keybind-related variables in src/keybind.[ch] files.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Set "Virtual File System" text item to plural form.
Applied i18n to "Data types" text item.
Added output of size_t size.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Changed function argument names to suppress compile warnings:
panel.h:143: warning: declaration of 'index' shadows a global declaration
panel.h:144: warning: declaration of 'index' shadows a global declaration
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
init_translation_table() now returnes newly-allocated string
instead of pointer to the static buffer.
Thanks Vit Rosin for original patch.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Split assignments and conditions. Type accuracy. Minor optimization.
Thanks Vit Rosin for original patch.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Remove selected text before input or paste from clipboard.
Thanks to nikk9 <dev.nul@mail.ru> for the original patch.
Signed-off-by: Ilia Maslakov <il.smind@gmail.com>
Implemented handling of mouse actions in button bar.
Fixed vertical size of Diff Viewer widget.
DiffHelp action was added. F1 button was assigned for it.
Fixed some key bindings.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
fix g_array_foreach inoperability
As a result of nasty bug g_array_foreach did not call
passed callback for in-array elements
Signed-off-by: Sergei Trofimovich <slyfox@inbox.ru>
added src/diffviewer/ydiff.[ch] into project tree
added entry 'View diff files' into 'Command' menu
added 'diffviewer' color pairs
fixed Makefile and configure.am
added new binding CmdDiffView into '[main]' section
Big thanx to 'Daniel Borca <dborca@yahoo.com>' for ydiff
Signed-off-by: Ilia Maslakov <il.smind@gmail.com>
Added diffviewer own library
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
Fixed CFLAGS for diffviewer.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
changed skins, added section
[diffviewer]
added=
changedline=
changednew=
changed=
removed=
folder=
error=
Signed-off-by: Ilia Maslakov <il.smind@gmail.com>
Reimplementation of hardcoded shortcuts to keybindings.
Signed-off-by: Ilia Maslakov <il.smind@gmail.com>
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
The info panels shows useful information about the currently selected
file (atime, mtime, ctime for instance). However, the label "Status:"
for ctime is clearly misleading. As we don't have enough space to label
it "Status changed", I suggest to go for "Changed:" instead. I think
this will make it much clearer what this date is all about, as I have
already seen users suggesting that "Status" is a weird label for
"Created", which is obviously not the case.
Also, "Changed" label is consistent with "CHange time" that we use for
column headers in the list mode elsewhere.
Signed-off-by: Yury V. Zaytsev <yury@shurup.com>
fixed input multibyte chars in overwrite editor mode (remove character only when the first byte is inserted).
thanx to Egmont Koblinger <egmont@gmail.com> for original patch and ticket.
Signed-off-by: Ilia Maslakov <il.smind@gmail.com>
Fixed tty_print_alt_char() to draw single or double vertical
or horizintal lines.
Added argument to tty_print_one_hline() and tty_print_one_vline()
functions to draw single or double lines.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Initial step: don't force break long lines. Displayed
help text should be dynamically formatted depending on
screen width.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Applied MC indentation policy to all files modified in this branch
with some simple manual modifications.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
fixed: scroll down/scroll up in wrap mode.
Signed-off-by: Ilia Maslakov <il.smind@gmail.com>
fixed: scroll up in wrap mode.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Don't propose ".." as a dirname using mkdir command with automatic name
filling enabled.
Signed-off-by: Francesco Cosoleto <cosoleto@gmail.com>
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
When searching from the top of the file for something that's not there we get
"Search done, Continue from begining?" dialog before "Search string not found"
(and only if we choose "Yes" in the first one).
This should happen only if the last position>0 (either the place when search
began, or some match before).
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
Dont handle wheel events on 2nd line where sort indicator
and column header are located.
Type accuracy.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
added new option quick_search_case_sensitive, with 3 position are: 0, 1, 2.
if "0", quick search in case insensitive
if "1", quick search in case sensitive
if "2", get from panel "case_sensitive"
Signed-off-by: Ilia Maslakov <il.smind@gmail.com>
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
As input_expand_dialog() may return a pointer to an empty string,
the function was trying to create a directory so named and thus
print a false "File exists" error message.
Signed-off-by: Francesco Cosoleto <cosoleto@gmail.com>
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Test case:
1. go to Options/Configuration
2. switch Verbose operation off
3. point at a directory, press F8
You see broken delete dialog.
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
Problem description:
1. Run mc as
mc /#ftp:user@server
2. If FTP server asks password, MC shows the password dialog window.
3. If type the first symbol in input line, MC crashes.
Bug cause:
MC asks ftp password before initialize of input line keybindings.
Solution:
Reimplemented MC startup sequence.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
* Minimizing dialog;
* Optimizations of Copy/move progress dialog creation;
* Added enum for specify dialog type (for copy/move or for delete)
* Little optimization.
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Signed-off-by: Ilia Maslakov <il.smind@gmail.com>
* Optimized functions calls (changed return type of all file_progress_show*() functions)
* Reworked for use global structure FileOpTotalContext
* Moved declarations of file_progress_show*() functions from fileopctx.h to filegui.h
* Code for calculate progressbar's variables was moved into function copy_file_file_display_progress()
* Progressbar for little files now shows always 100% (for visible effect)
* Added i18n string '< 1 sec'
* Rework of progress copy dialog
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Problem description:
Let's consider large directory (~4GB) with relatively small files:
each 1-2MB.
When I try to copy whole directory I would like to see average
copying velocity (and ETA) not only per-file (I just don't see
stats for small files), but for the whole progress.
This commit fixes the issue. Thanks Sergey <sergemp at mail dot ru>
for the initial patch.
Additionally, the minor type accuracy was provided.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
How to reproduce:
1) run mc
2) press F9
3) select 'Options' -> 'Configuration...'
4) switch off '[ ] Verbose operation' option
5) select '[ Save ]' button and press Enter
6) in additional, select 'F9' -> 'Options' -> 'Save setup'
7) exit from mc
8) run mc again
9) select 'F9' -> 'Options' -> 'Configuration...'
'Verbose operation' option always switched on.
This commit fixes this behaviour. But in slow terminals,
the value read form ini is forced set to 0.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Suppose we have 3 files with version in their names:
* file-2.1.tgz
* file-2.2.tgz
* file-2.10.tgz
It is impossible to see them in natural order using standard facilities,
they will be sorted in alphabet order:
* file-2.1.tgz
* file-2.10.tgz
* file-2.2.tgz
There was some attempts to fix this. I've picked up the patch by Roland Illig <roland illig gmx de>
(http://mail.gnome.org/archives/mc-devel/2004-July/msg00016.html) and adopted it for today's git snapshot.
It adds "version" option to the sort menu, which uses copy of strverscmp function from glibc.
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
> In current git, mc crashes (at least on 64-bit) in Ctrl-S search due to missing
> strutils_escape prototype. To reproduce, pressing Ctrl-S and a few keys is enough.
> Adding #include "lib/strescape.h" to screen.c fixes the issue.
Reported by jmak
Signed-off-by: Sergei Trofimovich <slyfox@inbox.ru>
fixed trouble with vertical selection
more detail description:
In block selection mode (shift-F3) it's impossible to go beyond empty line with
up or left arrow (i.e. in top direction).
In general: it's impossible to pass any line shorter than finishing column,
until left arrow is pressed at column 0 (which won't work on empty line), e.g.
xxxCxxx
yyyyy
zzzzzDz
- put cursor in C position,
- press shift-F3,
- go to D position,
- press up arrow twice,
- press left arrow - you're unlocked now and free to go up.
Signed-off-by: Ilia Maslakov <il.smind@gmail.com>
Reimplemented pty_buffer as static buffer to avoid
MC crashes at exit due to race conditions of destroing
subshell and file manager.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Fixed showing of datetime format in various locales (such as Polish locale)
Added new options in config file:
[Misc]
...
timeformat_recent=%d.%m.%y %H:%M
timeformat_old=%d.%m.%y %H:%M
...
where
timeformat_recent - for files with mtime between now
and "6 moths old" (like "Nov 2 00:56")
timeformat_old - for other files (like "Jun 23 2007")
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
Steps to reproduce:
1. F7,
2. set empty search string,
3. enter
4. n
5. enter
6. n
Fix issue: set view->last_search_string to NULL after call g_free()
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
Added support of autodetect codepages via 'enca' program.
New parameter in user configuration file (~/.mc/ini):
[Misc]
autodetect_codeset=(one of `enca --list languages | cut -d : -f1`)
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
Little code cleanup.
Signed-off-by: Ilia Maslakov <il.smind@gmail.com>
Type accuracy. Added missing includes.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
New shortcuts of WListbox widget:
d or Del: remove current item of history;
D or Shift-Del: clean the history.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Added keybinding for switch panels view (horizontally/vertically).
Default value for keybind is
[main]
CmdTogglePanelsView = alt-comma
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
Fixed warings: local variable shadows a global declaration.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Signed-off-by: Ilia Maslakov <il.smind@gmail.com>
If menu bar is always visible, default colors are used in menu.
If menu bar is visible when it is active, skin colors are used.
In this commit, only skin colors are applied to menu. Thanks to
Rashid N. Achilov for idea.
(see http://mail.gnome.org/archives/mc/2010-January/msg00087.html).
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
1. touch /tmp/IzV-Útěk_do_bezpečí.gz
2. open mc
3. move cursor at /tmp/IzV-Útěk_do_bezpečí.gz
4. press F4
5. you will see an error message, press Dismiss
6. segfault
Fix issue: length of command line string for pipeing now calculated
automatically (via g_strdup_printf()) rathen than calculating via
str_term_width1() function.
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
Bug: in lock_extract_info() number of unicode characters
is used as number of bytes in string.
Now strlen() is used instead of str_term_width() to calculate
string length. String length is calculated only one time.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
* moved src/fileloc.h into lib/fileloc.h
* moved src/timefmt.h into lib/timefmt.h
* removed unneedded includes into src/util.c
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
* moved src/global.h into lib/global.h
* moved glibcompat.[ch] from ./src/ into ./lib/
* moved fs.h from ./src/ into ./lib/
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
Test case:
* run mc
* Select F9 => 'Left/Right' => 'Listing mode...'
* [x] user Mini status
* enter below: 'half type name | size+ | perm'
* Press [< OK >] button
Fix issue: alloc new block of memory with initialization (filled by zero)
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
If symbolic link has a long name, the input line in 'Edit symlink'
dialog window is short. This bug is reproduces in non-C locales (KOI8-R,
UTF-8, etc).
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Now viewer save/load only 'offset' and 'line' always = -1.
Changed editor edit_load_position, edit_save_position,
now if 'line' = -1 then used 'offset'
Signed-off-by: Ilia Maslakov <il.smind@gmail.com>
remowed all no needed calls of mcview_offset_to_coord and mcview_coord_to_offset
added mcview_eol, mcview_bol for navigate in current file
thanx Nikita Ofitserov <himikof@gmail.com> for the patches and testing
Signed-off-by: Ilia Maslakov <il.smind@gmail.com>
Reimplemented some of coordinates cache internals.
Array is used instead of GList. If needed, array is reallocated.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
The Start at prompt is filled with garbage every time
the Tree option is entered in the Find dialogue.
To reproduce:
1. M-? to open Find dialogue
2. not that the Start at prompt is empty
3. press M-T or navigate to Tree button and press enter
4. you see tree view, press ESC
5. the Start at prompt is filed by garbage
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
The latest version breaks transparency support.
If I'd change _default_ to lightgray;default in the [core] section, the panels are unreadable.
It looks like the _default_ variable interpreted as lightgray;lightgray.
Fix Issue: do not apply COLOR_WHITE as mask if color value equal to -1
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
If viewer is in wrap mode, there is an expta empty line
in wrapped line. This bug was introduced in
8c84095ae1 commit.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Starting mc with:
LANG=C mc
cases a crash when mc exits. No other LC_* variable was set.
The issue is in src/strutil.c module. With C locale, str_init_strings()
fails to set str_cnv_not_convert variable leaving it with value -1
(INVALID_CONV). str_uninit_strings() passes str_cnv_not_convert blindly
to g_iconv_close() which tries to dereference it.
This commit adds a check to str_uninit_strings() if str_cnv_not_convert
value is valid.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Initial step: code refactoring:
* small code formatting;
* type accuracy;
* introduce new type 'panel_view_mode_t' for panel type.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
The new section [FindFile] was created for find file options.
The find_ignore_dirs key in Misc section is obsolete now.
The ignore_dirs key in FindFile section is used instead.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
If input line history contains only one item, pressing M-p
("Previous history item") causes a segmentation fault.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
* added new color pair EDITOR_RIGHT_MARGIN_COLOR
* show right margin. Used EDITOR_RIGHT_MARGIN_COLOR color for drawing text beyond rigth edge.
Signed-off-by: Ilia Maslakov <il.smind@gmail.com>
Unused static function causes build to break on -Werror.
Fixing this by commenting it out.
(not removing it since it might get used some day)
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
During last major escape transition "foo" -> properly_escaped_foo we forgot
to add "'" to list of specialcased symbols. This leads to mc hangup when you
try to do something with files/dirs, containing that symbol.
Adding it!
Signed-off-by: Sergei Trofimovich <slyfox@inbox.ru>
Originally from: http://mail.gnome.org/archives/mc-devel/2005-April/msg00035.html
The routines `vfs_s_find_entry_linear()' and `vfs_s_find_entry_tree()'
call `canonicalize_pathname()' on entry. This routine eats `..' path
components in certain cases. In case of ftpfs this is not desired -
the path should be kept as is since the code in direntry.c doesn't have
enough knowledge of the directory structure on the remote end.
Assume that
there is a path like this on the remote server
/path1/path2/path3
The `path2' component is a symlink to some directory and `path3' is a
symlink stored in `path2' which is relative to `path2' i.e.
path2
path3 -> ../some/other/path
Now, the code in direntry.c will determine that `path3' is a symlink and
will try to resolve (vfs_s_resolve_symlink) it by passing the following path
/path1/path2/../some/other/path
to `vfs_s_find_entry_linear' . As I've said above this routine calls
`canonicalize_pathname' on entry which will modify the path like this:
/path1/some/other/path
Now this is clearly wrong since `path2' is a symlink and it should be
resolved first. In the case of ftpfs the code in direntry.c doesn't have
enough knowledge about physycal directory layout on the remote filesystem
so it shouldn't try to canonicalize the path. The path should be left as
is and passed to the remote end for processing.
Fix issue:
Changed function canonicalize_pathname (as fact, renamed to custom_canonicalize_pathname)
In this function added ability to partial canonicalize of pathname.
And some functions from vfs/direntry.c calls custom_canonicalize_pathname without
removal of '..' stuff.
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
Added option 'auto_save_setup_panels' into [Midnight-Commander] section of ini-file.
If no specified, value of this option is equal to value of 'auto_save_setup' option.
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
Ctrl-g instead of Ctrl-c is used now to generate SIGINT signal.
SIGINT signal generating for MC/NCurses library is enabled now.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
The 0xff character is valid character in CP1251 codepage,
therefore the proper unsigned extension of char to int
is required in stuff() function to avoid the 0xff as -1
interpretation in handle_char() function.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
viewer hangup after search in archive
Test case:
* download ftp://ftp.slackware-brasil.com.br/slackware-12.0/testing/MANIFEST.bz2 or any slackware MANIFEST.bz2 from internet
* F3 under MANIFEST.bz2
* F7 "fortunes-o.tar.gz"<enter>
* hangup
Fix issue:
* Change growbuff from owm implementation into g_ptr_array
* Fixed calculating of search_start position
* Search module: fixed checking for return code from update callback
* Search module: Added return code MC_SEARCH_CB_OK for search callbacks
* Added exit on keyboard break
* Fixed search in last grow'ed block
Signed-off-by: Slava Zanko <slavazanko@gmail.com>