Browse Source

Ticket #120 (View diff files)

    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>
Ilia Maslakov 15 years ago
parent
commit
329ef3846a

+ 18 - 0
configure.ac

@@ -482,6 +482,21 @@ else
 	edit_msg="no"
 fi
 
+dnl
+dnl Diff viewer support.
+dnl
+AC_ARG_WITH(diff_viewer,
+        [  --with-diff-viewer       Compile with diff viewer [[yes]]])
+
+if test x$with_diff_viewer != xno; then
+	AC_DEFINE(USE_DIFF_VIEW, 1, [Define to enable diff viewer])
+	use_diff=yes
+	diff_msg="yes"
+	AC_MSG_NOTICE([using diff viewer])
+else
+	diff_msg="no"
+fi
+
 
 dnl Check if the OS is supported by the console saver.
 cons_saver=""
@@ -555,6 +570,7 @@ fi
 AM_CONDITIONAL(USE_MAINTAINER_MODE, [test x"$USE_MAINTAINER_MODE" = xyes])
 AM_CONDITIONAL(USE_SCREEN_SLANG, [test x"$with_screen" = xslang])
 AM_CONDITIONAL(USE_EDIT, [test -n "$use_edit"])
+AM_CONDITIONAL(USE_DIFF, [test -n "$use_diff"])
 AM_CONDITIONAL(ENABLE_VFS_NET, [test x"$use_net_code" = xtrue])
 AM_CONDITIONAL(USE_SAMBA_FS, [test -n "$use_smbfs"])
 AM_CONDITIONAL(ENABLE_MCSERVER, [test x"$enable_mcserver" = "xyes"])
@@ -582,6 +598,7 @@ src/Makefile
 src/consaver/Makefile
 src/editor/Makefile
 src/viewer/Makefile
+src/diffviewer/Makefile
 
 lib/Makefile
 lib/filehighlight/Makefile
@@ -662,6 +679,7 @@ Configuration:
   X11 events support:         ${textmode_x11_support}
   With subshell support:      ${subshell}
   Internal editor:            ${edit_msg}
+  Diff viewer:                ${diff_msg}
   Support for charset:        ${charset_msg}
   Search type:                ${SEARCH_TYPE}
 "

+ 12 - 1
lib/skin.h

@@ -71,7 +71,18 @@
 #define BUTTONBAR_HOTKEY_COLOR   mc_skin_color__cache[34]
 #define BUTTONBAR_BUTTON_COLOR   mc_skin_color__cache[35]
 
-#define MC_SKIN_COLOR_CACHE_COUNT 36
+/* Diff colors */
+#define DFF_ADD_COLOR            mc_skin_color__cache[36]
+#define DFF_CHG_COLOR            mc_skin_color__cache[37]
+#define DFF_CHH_COLOR            mc_skin_color__cache[38]
+#define DFF_CHD_COLOR            mc_skin_color__cache[39]
+#define DFF_DEL_COLOR            mc_skin_color__cache[40]
+#define DFF_FOLDER_COLOR         mc_skin_color__cache[41]
+#define DFF_ERROR_COLOR          mc_skin_color__cache[42]
+
+
+
+#define MC_SKIN_COLOR_CACHE_COUNT 43
 
 
 /*** enums ***************************************************************************************/

+ 8 - 0
lib/skin/colors.c

@@ -240,6 +240,14 @@ mc_skin_color_cache_init (void)
     BOOK_MARK_FOUND_COLOR = mc_skin_color_get ("editor", "bookmarkfound");
     BUTTONBAR_HOTKEY_COLOR = mc_skin_color_get ("buttonbar", "hotkey");
     BUTTONBAR_BUTTON_COLOR = mc_skin_color_get ("buttonbar", "button");
+
+    DFF_ADD_COLOR = mc_skin_color_get ("diffviewer", "added");
+    DFF_CHG_COLOR = mc_skin_color_get ("diffviewer", "changedline");
+    DFF_CHH_COLOR = mc_skin_color_get ("diffviewer", "changednew");
+    DFF_CHD_COLOR = mc_skin_color_get ("diffviewer", "changed");
+    DFF_DEL_COLOR = mc_skin_color_get ("diffviewer", "removed");
+    DFF_FOLDER_COLOR = mc_skin_color_get ("diffviewer", "folder");
+    DFF_ERROR_COLOR = mc_skin_color_get ("diffviewer", "error");
 }
 
 /* --------------------------------------------------------------------------------------------- */

+ 37 - 0
misc/mc.keymap.default

@@ -255,6 +255,7 @@ CmdCopyCurrentPathname = p
 CmdCopyOtherPathname = ctrl-p
 CmdCopyCurrentTagged = t
 CmdCopyOtherTagged = ctrl-t
+CmdDiffView = ctrl-y
 
 [panel]
 PanelStartSearch = ctrl-s; alt-s
@@ -357,3 +358,39 @@ HelpNextLink = tab
 HelpPrevLink = alt-tab
 HelpNextNode = n
 HelpPrevNode = p
+
+[diffviewer]
+DiffDisplaySymbols = alt-s; s
+DiffDisplayNumbers = alt-n; l
+DiffFull = f
+DiffEqual = equal
+DiffSplitMore = gt
+DiffSplitLess = lt
+DiffSetTab2 = 2
+DiffSetTab3 = 3
+DiffSetTab4 = 4
+DiffSetTab8 = 8
+DiffSwapPanel = ctrl-u
+DiffRedo = ctrl-r
+DiffNextHunk = n; enter; space
+DiffPrevHunk = p; backspace
+DiffGoto = g; shift-g
+DiffEditCurrent = f4
+DiffEditOther = f14
+DiffMergeCurrentHunk = f5
+DiffSearch = f7
+DiffContinueSearch = f17
+DiffBOF = ctrl-home
+DiffEOF = ctrl-end
+DiffDown = down
+DiffUp = up
+DiffQuickLeft = ctrl-left
+DiffQuickRight = ctrl-right
+DiffLeft = left
+DiffRight = right
+DiffPageDown = pgdn
+DiffPageUp = pgup
+DiffHome = home
+DiffEnd = end
+DiffQuit = q; shift-q; ctrl-g; esc
+ShowCommandLine = ctrl-o

+ 38 - 0
misc/mc.keymap.emacs

@@ -259,6 +259,7 @@ CmdCopyCurrentPathname = p
 CmdCopyOtherPathname = ctrl-p
 CmdCopyCurrentTagged = t
 CmdCopyOtherTagged = ctrl-t
+CmdDiffView = ctrl-y
 
 [panel]
 PanelStartSearch = ctrl-s; alt-s
@@ -361,3 +362,40 @@ HelpNextLink = tab
 HelpPrevLink = alt-tab
 HelpNextNode = n
 HelpPrevNode = p
+
+[diffviewer]
+DiffDisplaySymbols = alt-s; s
+DiffDisplayNumbers = alt-n; l
+DiffFull = f
+DiffEqual = equal
+DiffSplitMore = gt
+DiffSplitLess = lt
+DiffSetTab2 = 2
+DiffSetTab3 = 3
+DiffSetTab4 = 4
+DiffSetTab8 = 8
+DiffSwapPanel = ctrl-u
+DiffRedo = ctrl-r
+DiffNextHunk = n; enter; space
+DiffPrevHunk = p; backspace
+DiffGoto = g; shift-g
+DiffSave = f2
+DiffEditCurrent = f4
+DiffEditOther = f14
+DiffMergeCurrentHunk = f5
+DiffSearch = f7
+DiffContinueSearch = f17
+DiffBOF = ctrl-home
+DiffEOF = ctrl-end
+DiffDown = down
+DiffUp = up
+DiffQuickLeft = ctrl-left
+DiffQuickRight = ctrl-right
+DiffLeft = left
+DiffRight = right
+DiffPageDown = pgdn
+DiffPageUp = pgup
+DiffHome = home
+DiffEnd = end
+DiffQuit = q; shift-q; ctrl-g; esc
+ShowCommandLine = ctrl-o

+ 9 - 0
misc/skins/darkfar.ini

@@ -87,6 +87,15 @@
 [viewer]
     viewunderline=brightred;black
 
+[diffviewer]
+    added=white;green
+    changedline=blue;cyan
+    changednew=red;cyan
+    changed=white;cyan
+    removed=white;red
+    folder=blue;black
+    error=red;white
+
 [buttonbar]
     hotkey=red;white
     button=black;white

+ 9 - 0
misc/skins/default.ini

@@ -91,6 +91,15 @@
 [viewer]
     viewunderline=brightred;blue
 
+[diffviewer]
+    added=white;green
+    changedline=blue;cyan
+    changednew=red;cyan
+    changed=white;cyan
+    removed=white;red
+    folder=blue;black
+    error=red;white
+
 [widget-common]
     sort-sign-up = '
     sort-sign-down = ,

+ 9 - 0
misc/skins/double-lines.ini

@@ -87,6 +87,15 @@
 [viewer]
     viewunderline=brightred;blue
 
+[diffviewer]
+    added=white;green
+    changedline=blue;cyan
+    changednew=red;cyan
+    changed=white;cyan
+    removed=white;red
+    folder=blue;black
+    error=red;white
+
 [widget-common]
     sort-sign-up = '
     sort-sign-down = ,

+ 9 - 0
misc/skins/featured.ini

@@ -93,6 +93,15 @@
 [viewer]
     viewunderline=brightred;blue
 
+[diffviewer]
+    added=white;green
+    changedline=blue;cyan
+    changednew=red;cyan
+    changed=white;cyan
+    removed=white;red
+    folder=blue;black
+    error=red;white
+
 [widget-common]
     sort-sign-up = ↓
     sort-sign-down = ↑

+ 9 - 0
misc/skins/gotar.ini

@@ -87,6 +87,15 @@
 [viewer]
 	viewunderline=brightgreen;black
 
+[diffviewer]
+	added=white;green
+	changedline=blue;cyan
+	changednew=red;cyan
+	changed=white;cyan
+	removed=white;red
+	folder=blue;black
+	error=red;white
+
 [buttonbar]
 	hotkey=lightgray;black
 	button=white;blue

Some files were not shown because too many files changed in this diff