Merge pull request #259340 from robert-manchester/tkdiff_5_6
tkdiff: init at 5.6
This commit is contained in:
commit
0b9ab92dea
3 changed files with 120 additions and 0 deletions
|
@ -15043,6 +15043,12 @@
|
||||||
githubId = 496447;
|
githubId = 496447;
|
||||||
name = "Robert Hensing";
|
name = "Robert Hensing";
|
||||||
};
|
};
|
||||||
|
robert-manchester = {
|
||||||
|
email = "robert.manchester@gmail.com";
|
||||||
|
github = "robert-manchester";
|
||||||
|
githubId = 86313040;
|
||||||
|
name = "Robert Manchester";
|
||||||
|
};
|
||||||
robertodr = {
|
robertodr = {
|
||||||
email = "roberto.diremigio@gmail.com";
|
email = "roberto.diremigio@gmail.com";
|
||||||
github = "robertodr";
|
github = "robertodr";
|
||||||
|
|
71
pkgs/by-name/tk/tkdiff/189.patch
Normal file
71
pkgs/by-name/tk/tkdiff/189.patch
Normal file
|
@ -0,0 +1,71 @@
|
||||||
|
Index: tkdiff
|
||||||
|
===================================================================
|
||||||
|
diff --git a/tkdiff b/tkdiff
|
||||||
|
--- a/tkdiff (revision 188)
|
||||||
|
+++ b/tkdiff (revision 189)
|
||||||
|
@@ -111,7 +111,7 @@
|
||||||
|
}
|
||||||
|
|
||||||
|
# Determine the name of the temporary directory, the rc file name,
|
||||||
|
-# and possible VPATH EnvVar, all of which are platform dependent.
|
||||||
|
+# NULLdev, and possible VPATH EnvVar, all of which are platform dependent.
|
||||||
|
#
|
||||||
|
# Much MAY likely be overridden by a preference in .tkdiffrc,
|
||||||
|
# EXCEPT (obviously) when no such file actually exists yet
|
||||||
|
@@ -126,6 +126,9 @@
|
||||||
|
set opts(tmpdir) C:/temp
|
||||||
|
}
|
||||||
|
|
||||||
|
+ # Reserved filename which is actually a NULL device
|
||||||
|
+ set opts(NULLdev) "nul"
|
||||||
|
+
|
||||||
|
# Split up and store a VPATH if it exists
|
||||||
|
if {[info exists ::env(VPATH)]} {
|
||||||
|
set finfo(Vpath) [split $::env(VPATH) ";"]
|
||||||
|
@@ -145,6 +148,9 @@
|
||||||
|
set opts(tmpdir) $::env(TMPDIR)
|
||||||
|
} {set opts(tmpdir) /tmp }
|
||||||
|
|
||||||
|
+ # Reserved filename which is actually a NULL device (Unix-like platforms)
|
||||||
|
+ set opts(NULLdev) "/dev/null"
|
||||||
|
+
|
||||||
|
# Split up and store a VPATH if it exists
|
||||||
|
if {[info exists ::env(VPATH)]} {
|
||||||
|
set finfo(Vpath) [split $::env(VPATH) ":"]
|
||||||
|
@@ -2106,7 +2112,7 @@
|
||||||
|
# 1 Failed (PLUS a 'pushed' HARD-error message to the caller)
|
||||||
|
###############################################################################
|
||||||
|
proc get-file {fn ndx {probe 0}} {
|
||||||
|
- global g finfo
|
||||||
|
+ global g opts finfo
|
||||||
|
|
||||||
|
# Ancestor files are stored into a slightly adjusted array element name
|
||||||
|
# N.B> 'ndx' AS PASSED *can* be an EXPRESSION (not just a number): resolve!
|
||||||
|
@@ -2121,7 +2127,7 @@
|
||||||
|
} elseif {!$tildechk} {
|
||||||
|
# DO NOT REPORT non-existence if this attempt was ONLY a probe
|
||||||
|
if {$probe} { return 1 } { set MSG "File '$fn' does not exist" }
|
||||||
|
- } elseif {[file isfile $fn]} {
|
||||||
|
+ } elseif {[file isfile $fn] || $fn == $opts(NULLdev)} {
|
||||||
|
set finfo(${A}lbl,$ndx) [shortNm [set finfo(${A}pth,$ndx) "$fn"]]
|
||||||
|
} else { set MSG "'$fn' exists, but is not a file" }
|
||||||
|
|
||||||
|
@@ -2857,7 +2863,7 @@
|
||||||
|
# Align various label decorations to the CURRENT input file pairing
|
||||||
|
###############################################################################
|
||||||
|
proc alignDecor {pairnum} {
|
||||||
|
- global g w finfo
|
||||||
|
+ global g w opts finfo
|
||||||
|
|
||||||
|
# Establish if 3way mode is NOW active and what file indices are in use
|
||||||
|
set g(is3way) [info exists finfo(albl,$pairnum)]
|
||||||
|
@@ -2874,7 +2880,8 @@
|
||||||
|
set finfo(lbl,$LR) $finfo(ulbl,$ndx($n)) ;# Override lbl display
|
||||||
|
} else {set finfo(lbl,$LR) $finfo(lbl,$ndx($n))}
|
||||||
|
|
||||||
|
- if {![info exists finfo(tmp,$ndx($n))]} {
|
||||||
|
+ if {![info exists finfo(tmp,$ndx($n))] \
|
||||||
|
+ && $finfo(pth,$ndx($n)) != $opts(NULLdev)} {
|
||||||
|
# (N.B> Tip data will ALSO be used by report generation heading)
|
||||||
|
set g(tooltip,${LR}Label) "{$finfo(pth,$ndx($n))\n"
|
||||||
|
append g(tooltip,${LR}Label) \
|
43
pkgs/by-name/tk/tkdiff/package.nix
Normal file
43
pkgs/by-name/tk/tkdiff/package.nix
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
{ diffutils, fetchzip, lib, makeBinaryWrapper, stdenv, tk }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation (finalAttrs: {
|
||||||
|
pname = "tkdiff";
|
||||||
|
version = "5.6";
|
||||||
|
|
||||||
|
src = fetchzip {
|
||||||
|
url = "mirror://sourceforge/tkdiff/tkdiff-${builtins.replaceStrings ["."] ["-"] finalAttrs.version}.zip";
|
||||||
|
hash = "sha256-EpbIdjsejkkTaSpoZRM5AHz0r1Cio+YzRryK0BoghBk=";
|
||||||
|
};
|
||||||
|
|
||||||
|
# fix regression: allow /dev/null again. eg: "tkdiff /dev/null file"
|
||||||
|
# svn diff --git -r188:189 https://svn.code.sf.net/p/tkdiff/code/trunk
|
||||||
|
patches = [ ./189.patch ];
|
||||||
|
|
||||||
|
nativeBuildInputs = [ makeBinaryWrapper ];
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
runHook preInstall
|
||||||
|
|
||||||
|
install -Dm755 -t $out/bin tkdiff
|
||||||
|
wrapProgram $out/bin/tkdiff \
|
||||||
|
--prefix PATH : ${lib.makeBinPath [ diffutils tk ]}
|
||||||
|
|
||||||
|
runHook postInstall
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "A graphical front end to the diff program";
|
||||||
|
homepage = "https://tkdiff.sourceforge.io/";
|
||||||
|
license = lib.licenses.gpl2Plus;
|
||||||
|
longDescription = ''
|
||||||
|
TkDiff is a graphical front end to the diff program. It provides a
|
||||||
|
side-by-side view of the differences between two text files, along
|
||||||
|
with several innovative features such as diff bookmarks, a graphical
|
||||||
|
map of differences for quick navigation, and a facility for slicing
|
||||||
|
diff regions to achieve exactly the merge output desired.
|
||||||
|
'';
|
||||||
|
mainProgram = "tkdiff";
|
||||||
|
maintainers = with lib.maintainers; [ robert-manchester ];
|
||||||
|
platforms = tk.meta.platforms;
|
||||||
|
};
|
||||||
|
})
|
Loading…
Reference in a new issue