Merge master into stdenv-updates
Conflicts: pkgs/development/libraries/glibc/2.18/common.nix (take stdenv-updates) pkgs/misc/emulators/zsnes/default.nix (more complex, build tested) pkgs/top-level/all-packages.nix (auto-solved)
This commit is contained in:
commit
9443129b08
@ -196,7 +196,8 @@ $ emacs pkgs/top-level/all-packages.nix</screen>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Test whether the package builds:
|
||||
<para>To test whether the package builds, run the following command
|
||||
from the root of the nixpkgs source tree:
|
||||
|
||||
<screen>
|
||||
$ nix-build -A libfoo</screen>
|
||||
|
@ -1235,7 +1235,7 @@ with other kernel modules.</para>
|
||||
<para>On 64-bit systems, if you want full acceleration for 32-bit
|
||||
programs such as Wine, you should also set the following:
|
||||
<programlisting>
|
||||
service.xserver.driSupport32Bit = true;
|
||||
services.xserver.driSupport32Bit = true;
|
||||
</programlisting>
|
||||
</para>
|
||||
|
||||
|
@ -11,6 +11,7 @@ let
|
||||
ignoredInterfaces =
|
||||
map (i: i.name) (filter (i: i.ipAddress != null) (attrValues config.networking.interfaces))
|
||||
++ concatLists (attrValues (mapAttrs (n: v: v.interfaces) config.networking.bridges))
|
||||
++ concatLists (attrValues (mapAttrs (n: v: v.interfaces) config.networking.bonds))
|
||||
++ config.networking.dhcpcd.denyInterfaces;
|
||||
|
||||
# Config file adapted from the one that ships with dhcpcd.
|
||||
|
@ -146,6 +146,9 @@ in {
|
||||
{ source = "${networkmanager_openconnect}/etc/NetworkManager/VPN/nm-openconnect-service.name";
|
||||
target = "NetworkManager/VPN/nm-openconnect-service.name";
|
||||
}
|
||||
{ source = "${networkmanager_pptp}/etc/NetworkManager/VPN/nm-pptp-service.name";
|
||||
target = "NetworkManager/VPN/nm-pptp-service.name";
|
||||
}
|
||||
] ++ pkgs.lib.optional (cfg.appendNameservers == [] || cfg.insertNameservers == [])
|
||||
{ source = overrideNameserversScript;
|
||||
target = "NetworkManager/dispatcher.d/02overridedns";
|
||||
@ -155,6 +158,7 @@ in {
|
||||
networkmanager_openvpn
|
||||
networkmanager_vpnc
|
||||
networkmanager_openconnect
|
||||
networkmanager_pptp
|
||||
];
|
||||
|
||||
users.extraGroups = singleton {
|
||||
@ -199,6 +203,7 @@ in {
|
||||
networkmanager_openvpn
|
||||
networkmanager_vpnc
|
||||
networkmanager_openconnect
|
||||
networkmanager_pptp
|
||||
];
|
||||
|
||||
services.udev.packages = cfg.packages;
|
||||
|
@ -40,12 +40,14 @@ in {
|
||||
systemd.services.redshift = {
|
||||
description = "Redshift colour temperature adjuster";
|
||||
requires = [ "display-manager.service" ];
|
||||
after = [ "display-manager.service" ];
|
||||
script = ''
|
||||
${pkgs.redshift}/bin/redshift \
|
||||
-l ${cfg.latitude}:${cfg.longitude} \
|
||||
-t ${toString cfg.temperature.day}:${toString cfg.temperature.night}
|
||||
'';
|
||||
environment = { DISPLAY = ":0"; };
|
||||
serviceConfig.Restart = "always";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
@ -7,6 +7,7 @@ let
|
||||
cfg = config.networking;
|
||||
interfaces = attrValues cfg.interfaces;
|
||||
hasVirtuals = any (i: i.virtual) interfaces;
|
||||
hasBonds = cfg.bonds != { };
|
||||
|
||||
interfaceOpts = { name, ... }: {
|
||||
|
||||
@ -58,6 +59,15 @@ let
|
||||
'';
|
||||
};
|
||||
|
||||
mtu = mkOption {
|
||||
default = null;
|
||||
example = 9000;
|
||||
type = types.nullOr types.int;
|
||||
description = ''
|
||||
MTU size for packets leaving the interface. Leave empty to use the default.
|
||||
'';
|
||||
};
|
||||
|
||||
virtual = mkOption {
|
||||
default = false;
|
||||
type = types.bool;
|
||||
@ -219,6 +229,99 @@ in
|
||||
|
||||
};
|
||||
|
||||
networking.bonds = mkOption {
|
||||
default = { };
|
||||
example = {
|
||||
bond0 = {
|
||||
interfaces = [ "eth0" "wlan0" ];
|
||||
miimon = 100;
|
||||
mode = "active-backup";
|
||||
};
|
||||
fatpipe.interfaces = [ "enp4s0f0" "enp4s0f1" "enp5s0f0" "enp5s0f1" ];
|
||||
};
|
||||
description = ''
|
||||
This option allows you to define bond devices that aggregate multiple,
|
||||
underlying networking interfaces together. The value of this option is
|
||||
an attribute set. Each attribute specifies a bond, with the attribute
|
||||
name specifying the name of the bond's network interface
|
||||
'';
|
||||
|
||||
type = types.attrsOf types.optionSet;
|
||||
|
||||
options = {
|
||||
|
||||
interfaces = mkOption {
|
||||
example = [ "enp4s0f0" "enp4s0f1" "wlan0" ];
|
||||
type = types.listOf types.string;
|
||||
description = "The interfaces to bond together";
|
||||
};
|
||||
|
||||
miimon = mkOption {
|
||||
default = null;
|
||||
example = 100;
|
||||
type = types.nullOr types.int;
|
||||
description = ''
|
||||
Miimon is the number of millisecond in between each round of polling
|
||||
by the device driver for failed links. By default polling is not
|
||||
enabled and the driver is trusted to properly detect and handle
|
||||
failure scenarios.
|
||||
'';
|
||||
};
|
||||
|
||||
mode = mkOption {
|
||||
default = null;
|
||||
example = "active-backup";
|
||||
type = types.nullOr types.string;
|
||||
description = ''
|
||||
The mode which the bond will be running. The default mode for
|
||||
the bonding driver is balance-rr, optimizing for throughput.
|
||||
More information about valid modes can be found at
|
||||
https://www.kernel.org/doc/Documentation/networking/bonding.txt
|
||||
'';
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
networking.vlans = mkOption {
|
||||
default = { };
|
||||
example = {
|
||||
vlan0 = {
|
||||
id = 3;
|
||||
interface = "enp3s0";
|
||||
};
|
||||
vlan1 = {
|
||||
id = 1;
|
||||
interface = "wlan0";
|
||||
};
|
||||
};
|
||||
description =
|
||||
''
|
||||
This option allows you to define vlan devices that tag packets
|
||||
on top of a physical interface. The value of this option is an
|
||||
attribute set. Each attribute specifies a vlan, with the name
|
||||
specifying the name of the vlan interface.
|
||||
'';
|
||||
|
||||
type = types.attrsOf types.optionSet;
|
||||
|
||||
options = {
|
||||
|
||||
id = mkOption {
|
||||
example = 1;
|
||||
type = types.int;
|
||||
description = "The vlan identifier";
|
||||
};
|
||||
|
||||
interface = mkOption {
|
||||
example = "enp4s0";
|
||||
type = types.string;
|
||||
description = "The interface the vlan will transmit packets through.";
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
networking.useDHCP = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
@ -236,7 +339,15 @@ in
|
||||
|
||||
config = {
|
||||
|
||||
boot.kernelModules = optional cfg.enableIPv6 "ipv6" ++ optional hasVirtuals "tun";
|
||||
boot.kernelModules = [ ]
|
||||
++ optional cfg.enableIPv6 "ipv6"
|
||||
++ optional hasVirtuals "tun"
|
||||
++ optional hasBonds "bonding";
|
||||
|
||||
boot.extraModprobeConfig =
|
||||
# This setting is intentional as it prevents default bond devices
|
||||
# from being created.
|
||||
optionalString hasBonds "options bonding max_bonds=0";
|
||||
|
||||
environment.systemPackages =
|
||||
[ pkgs.host
|
||||
@ -342,6 +453,11 @@ in
|
||||
echo "setting MAC address to ${i.macAddress}..."
|
||||
ip link set "${i.name}" address "${i.macAddress}"
|
||||
''
|
||||
+ optionalString (i.mtu != null)
|
||||
''
|
||||
echo "setting MTU to ${toString i.mtu}..."
|
||||
ip link set "${i.name}" mtu "${toString i.mtu}"
|
||||
''
|
||||
+ optionalString (i.ipAddress != null)
|
||||
''
|
||||
cur=$(ip -4 -o a show dev "${i.name}" | awk '{print $4}')
|
||||
@ -397,6 +513,9 @@ in
|
||||
path = [ pkgs.bridge_utils pkgs.iproute ];
|
||||
script =
|
||||
''
|
||||
# Remove Dead Interfaces
|
||||
ip link show "${n}" >/dev/null 2>&1 && ip link delete "${n}"
|
||||
|
||||
brctl addbr "${n}"
|
||||
|
||||
# Set bridge's hello time to 0 to avoid startup delays.
|
||||
@ -421,10 +540,73 @@ in
|
||||
'';
|
||||
};
|
||||
|
||||
createBondDevice = n: v:
|
||||
let
|
||||
deps = map (i: "sys-subsystem-net-devices-${i}.device") v.interfaces;
|
||||
in
|
||||
{ description = "Bond Interface ${n}";
|
||||
wantedBy = [ "network.target" "sys-subsystem-net-devices-${n}.device" ];
|
||||
bindsTo = deps;
|
||||
after = deps;
|
||||
serviceConfig.Type = "oneshot";
|
||||
serviceConfig.RemainAfterExit = true;
|
||||
path = [ pkgs.ifenslave pkgs.iproute ];
|
||||
script = ''
|
||||
# Remove Dead Interfaces
|
||||
ip link show "${n}" >/dev/null 2>&1 && ip link delete "${n}"
|
||||
|
||||
ip link add "${n}" type bond
|
||||
|
||||
# !!! There must be a better way to wait for the interface
|
||||
while [ ! -d /sys/class/net/${n} ]; do sleep 0.1; done;
|
||||
|
||||
# Set the miimon and mode options
|
||||
${optionalString (v.miimon != null)
|
||||
"echo ${toString v.miimon} > /sys/class/net/${n}/bonding/miimon"}
|
||||
${optionalString (v.mode != null)
|
||||
"echo \"${v.mode}\" > /sys/class/net/${n}/bonding/mode"}
|
||||
|
||||
# Bring up the bridge and enslave the specified interfaces
|
||||
ip link set "${n}" up
|
||||
${flip concatMapStrings v.interfaces (i: ''
|
||||
ifenslave "${n}" "${i}"
|
||||
'')}
|
||||
'';
|
||||
postStop = ''
|
||||
ip link set "${n}" down
|
||||
ifenslave -d "${n}"
|
||||
ip link delete "${n}"
|
||||
'';
|
||||
};
|
||||
|
||||
createVlanDevice = n: v:
|
||||
let
|
||||
deps = [ "sys-subsystem-net-devices-${v.interface}.device" ];
|
||||
in
|
||||
{ description = "Vlan Interface ${n}";
|
||||
wantedBy = [ "network.target" "sys-subsystem-net-devices-${n}.device" ];
|
||||
bindsTo = deps;
|
||||
after = deps;
|
||||
serviceConfig.Type = "oneshot";
|
||||
serviceConfig.RemainAfterExit = true;
|
||||
path = [ pkgs.iproute ];
|
||||
script = ''
|
||||
# Remove Dead Interfaces
|
||||
ip link show "${n}" >/dev/null 2>&1 && ip link delete "${n}"
|
||||
ip link add link "${v.interface}" "${n}" type vlan id "${toString v.id}"
|
||||
ip link set "${n}" up
|
||||
'';
|
||||
postStop = ''
|
||||
ip link delete "${n}"
|
||||
'';
|
||||
};
|
||||
|
||||
in listToAttrs (
|
||||
map configureInterface interfaces ++
|
||||
map createTunDevice (filter (i: i.virtual) interfaces))
|
||||
// mapAttrs createBridgeDevice cfg.bridges
|
||||
// mapAttrs createBondDevice cfg.bonds
|
||||
// mapAttrs createVlanDevice cfg.vlans
|
||||
// { "network-setup" = networkSetup; };
|
||||
|
||||
# Set the host and domain names in the activation script. Don't
|
||||
|
@ -0,0 +1,14 @@
|
||||
diff -ur clementine-1.2.1-a/CMakeLists.txt clementine-1.2.1-b/CMakeLists.txt
|
||||
--- clementine-1.2.1-a/CMakeLists.txt 2013-11-25 15:16:24.000000000 -0600
|
||||
+++ clementine-1.2.1-b/CMakeLists.txt 2013-12-30 17:01:48.470011058 -0600
|
||||
@@ -158,6 +158,10 @@
|
||||
include_directories(${TAGLIB_INCLUDE_DIRS})
|
||||
include_directories(${QJSON_INCLUDE_DIRS})
|
||||
include_directories(${GSTREAMER_INCLUDE_DIRS})
|
||||
+include_directories(${GSTREAMER_APP_INCLUDE_DIRS})
|
||||
+include_directories(${GSTREAMER_BASE_INCLUDE_DIRS})
|
||||
+include_directories(${GSTREAMER_CDDA_INCLUDE_DIRS})
|
||||
+include_directories(${GSTREAMER_TAG_INCLUDE_DIRS})
|
||||
include_directories(${GLIB_INCLUDE_DIRS})
|
||||
include_directories(${GLIBCONFIG_INCLUDE_DIRS})
|
||||
include_directories(${LIBXML_INCLUDE_DIRS})
|
48
pkgs/applications/audio/clementine/default.nix
Normal file
48
pkgs/applications/audio/clementine/default.nix
Normal file
@ -0,0 +1,48 @@
|
||||
{ stdenv, fetchurl, boost, cmake, gettext, gstreamer, gst_plugins_base
|
||||
, liblastfm, qt4, taglib, fftw, glew, qjson, sqlite, libgpod, libplist
|
||||
, usbmuxd, libmtp, gvfs, libcdio, protobuf, libspotify, qca2, pkgconfig
|
||||
, sparsehash }:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "clementine-1.2.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = http://clementine-player.googlecode.com/files/clementine-1.2.1.tar.gz;
|
||||
sha256 = "0kk5cjmb8nirx0im3c0z91af2k72zxi6lwzm6rb57qihya5nwmfv";
|
||||
};
|
||||
|
||||
patches = [ ./clementine-1.2.1-include-paths.patch ];
|
||||
|
||||
buildInputs = [
|
||||
boost
|
||||
cmake
|
||||
fftw
|
||||
gettext
|
||||
glew
|
||||
gst_plugins_base
|
||||
gstreamer
|
||||
gvfs
|
||||
libcdio
|
||||
libgpod
|
||||
liblastfm
|
||||
libmtp
|
||||
libplist
|
||||
libspotify
|
||||
pkgconfig
|
||||
protobuf
|
||||
qca2
|
||||
qjson
|
||||
qt4
|
||||
sparsehash
|
||||
sqlite
|
||||
taglib
|
||||
usbmuxd
|
||||
];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = "http://www.clementine-player.org";
|
||||
description = "A multiplatform music player";
|
||||
license = licenses.gpl3Plus;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
@ -54,7 +54,7 @@ stdenv.mkDerivation rec {
|
||||
homepage = http://qmmp.ylsoftware.com/;
|
||||
license = licenses.gpl2;
|
||||
platforms = platforms.linux;
|
||||
maintainers = [maintainers.bjornfor];
|
||||
maintainers = [ maintainers.bjornfor ];
|
||||
repositories.svn = http://qmmp.googlecode.com/svn/;
|
||||
};
|
||||
}
|
||||
|
@ -19,10 +19,12 @@ composableDerivation {
|
||||
builtins.getAttr source {
|
||||
"default" =
|
||||
# latest release
|
||||
args.fetchurl {
|
||||
url = ftp://ftp.vim.org/pub/vim/unix/vim-7.4.tar.bz2;
|
||||
sha256 = "1pjaffap91l2rb9pjnlbrpvb3ay5yhhr3g91zabjvw1rqk9adxfh";
|
||||
};
|
||||
args.fetchhg {
|
||||
url = "https://vim.googlecode.com/hg/";
|
||||
tag = "v7-4-131";
|
||||
sha256 = "1akr0i4pykbrkqwrglm0dfn5nwpncb9pgg4h7fl6a8likbr5f3wb";
|
||||
};
|
||||
|
||||
"vim-nox" =
|
||||
{
|
||||
# vim nox branch: client-server without X by uing sockets
|
||||
@ -53,14 +55,6 @@ composableDerivation {
|
||||
|
||||
prePatch = "cd src";
|
||||
|
||||
patches =
|
||||
[ ./patches/7.4.001 ./patches/7.4.002 ./patches/7.4.003 ./patches/7.4.004
|
||||
./patches/7.4.005 ./patches/7.4.006 ./patches/7.4.007 ./patches/7.4.008
|
||||
./patches/7.4.009 ./patches/7.4.010 ./patches/7.4.011 ./patches/7.4.012
|
||||
./patches/7.4.013 ./patches/7.4.014 ./patches/7.4.015 ./patches/7.4.016
|
||||
./patches/7.4.017 ./patches/7.4.018 ./patches/7.4.019 ./patches/7.4.020
|
||||
./patches/7.4.021 ./patches/7.4.022 ./patches/7.4.023 ];
|
||||
|
||||
# most interpreters aren't tested yet.. (see python for example how to do it)
|
||||
flags = {
|
||||
ftNix = {
|
||||
@ -93,7 +87,17 @@ composableDerivation {
|
||||
|
||||
// edf { name = "tcl"; enable = { nativeBuildInputs = [tcl]; }; } #Include Tcl interpreter.
|
||||
// edf { name = "ruby"; feat = "rubyinterp"; enable = { nativeBuildInputs = [ruby]; };} #Include Ruby interpreter.
|
||||
// edf { name = "lua" ; feat = "luainterp"; enable = { nativeBuildInputs = [lua]; configureFlags = ["--with-lua-prefix=${args.lua}"];};}
|
||||
// edf {
|
||||
name = "lua";
|
||||
feat = "luainterp";
|
||||
enable = {
|
||||
nativeBuildInputs = [lua];
|
||||
configureFlags = [
|
||||
"--with-lua-prefix=${args.lua}"
|
||||
"--enable-luainterp"
|
||||
];
|
||||
};
|
||||
}
|
||||
// edf { name = "cscope"; } #Include cscope interface.
|
||||
// edf { name = "workshop"; } #Include Sun Visual Workshop support.
|
||||
// edf { name = "netbeans"; } #Disable NetBeans integration support.
|
||||
@ -108,6 +112,7 @@ composableDerivation {
|
||||
;
|
||||
|
||||
cfg = {
|
||||
luaSupport = config.vim.lua or true;
|
||||
pythonSupport = config.vim.python or true;
|
||||
rubySupport = config.vim.ruby or true;
|
||||
nlsSupport = config.vim.nls or false;
|
||||
|
@ -1,12 +1,12 @@
|
||||
{ stdenv, fetchurl, ncurses, gettext, pkgconfig }:
|
||||
{ stdenv, fetchhg, ncurses, gettext, pkgconfig }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
patchLevel = "23";
|
||||
name = "vim-7.4.${patchLevel}";
|
||||
name = "vim-7.4.131";
|
||||
|
||||
src = fetchurl {
|
||||
url = "ftp://ftp.vim.org/pub/vim/unix/${name}.tar.bz2";
|
||||
sha256 = "1pjaffap91l2rb9pjnlbrpvb3ay5yhhr3g91zabjvw1rqk9adxfh";
|
||||
src = fetchhg {
|
||||
url = "https://vim.googlecode.com/hg/";
|
||||
tag = "v7-4-131";
|
||||
sha256 = "1akr0i4pykbrkqwrglm0dfn5nwpncb9pgg4h7fl6a8likbr5f3wb";
|
||||
};
|
||||
|
||||
enableParallelBuilding = true;
|
||||
@ -44,16 +44,6 @@ stdenv.mkDerivation rec {
|
||||
# sed -i -e 's/as_fn_error.*int32.*/:/' src/auto/configure
|
||||
# '';
|
||||
|
||||
prePatch = "cd src";
|
||||
|
||||
patches =
|
||||
[ ./patches/7.4.001 ./patches/7.4.002 ./patches/7.4.003 ./patches/7.4.004
|
||||
./patches/7.4.005 ./patches/7.4.006 ./patches/7.4.007 ./patches/7.4.008
|
||||
./patches/7.4.009 ./patches/7.4.010 ./patches/7.4.011 ./patches/7.4.012
|
||||
./patches/7.4.013 ./patches/7.4.014 ./patches/7.4.015 ./patches/7.4.016
|
||||
./patches/7.4.017 ./patches/7.4.018 ./patches/7.4.019 ./patches/7.4.020
|
||||
./patches/7.4.021 ./patches/7.4.022 ./patches/7.4.023 ];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "The most popular clone of the VI editor";
|
||||
homepage = http://www.vim.org;
|
||||
|
@ -38,7 +38,8 @@ index 0000000..a2f9918
|
||||
+ finish
|
||||
+endif
|
||||
+
|
||||
+syn keyword nixKeyword let throw inherit import true false null with
|
||||
+syn keyword nixKeyword let in rec assert inherit import true false null with ...
|
||||
+syn keyword nixBuiltin import abort baseNameOf dirOf isNull builtins map removeAttrs throw toString derivation
|
||||
+syn keyword nixConditional if else then
|
||||
+syn keyword nixBrace ( ) { } =
|
||||
+syn keyword nixBuiltin __currentSystem __currentTime __isFunction __getEnv __trace __toPath __pathExists
|
||||
@ -54,6 +55,7 @@ index 0000000..a2f9918
|
||||
+syn region nixString start=+"+ skip=+\\"+ end=+"+ contains=nixStringParam
|
||||
+
|
||||
+hi def link nixKeyword Keyword
|
||||
+hi def link nixBuiltin Function
|
||||
+hi def link nixConditional Conditional
|
||||
+hi def link nixBrace Special
|
||||
+hi def link nixString String
|
||||
|
@ -1,489 +0,0 @@
|
||||
To: vim_dev@googlegroups.com
|
||||
Subject: Patch 7.4.001
|
||||
Fcc: outbox
|
||||
From: Bram Moolenaar <Bram@moolenaar.net>
|
||||
Mime-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
------------
|
||||
|
||||
Patch 7.4.001
|
||||
Problem: Character classes such as [a-z] to not react to 'ignorecase'.
|
||||
Breaks man page highlighting. (Mario Grgic)
|
||||
Solution: Add separate items for classes that react to 'ignorecase'. Clean
|
||||
up logic handling character classes. Add more tests.
|
||||
Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok
|
||||
|
||||
|
||||
*** ../vim-7.4.000/src/regexp_nfa.c 2013-08-01 18:27:51.000000000 +0200
|
||||
--- src/regexp_nfa.c 2013-08-14 11:49:50.000000000 +0200
|
||||
***************
|
||||
*** 29,34 ****
|
||||
--- 29,37 ----
|
||||
# define NFA_REGEXP_DEBUG_LOG "nfa_regexp_debug.log"
|
||||
#endif
|
||||
|
||||
+ /* Added to NFA_ANY - NFA_NUPPER_IC to include a NL. */
|
||||
+ #define NFA_ADD_NL 31
|
||||
+
|
||||
enum
|
||||
{
|
||||
NFA_SPLIT = -1024,
|
||||
***************
|
||||
*** 183,188 ****
|
||||
--- 186,198 ----
|
||||
NFA_NLOWER, /* Match non-lowercase char */
|
||||
NFA_UPPER, /* Match uppercase char */
|
||||
NFA_NUPPER, /* Match non-uppercase char */
|
||||
+ NFA_LOWER_IC, /* Match [a-z] */
|
||||
+ NFA_NLOWER_IC, /* Match [^a-z] */
|
||||
+ NFA_UPPER_IC, /* Match [A-Z] */
|
||||
+ NFA_NUPPER_IC, /* Match [^A-Z] */
|
||||
+
|
||||
+ NFA_FIRST_NL = NFA_ANY + NFA_ADD_NL,
|
||||
+ NFA_LAST_NL = NFA_NUPPER_IC + NFA_ADD_NL,
|
||||
|
||||
NFA_CURSOR, /* Match cursor pos */
|
||||
NFA_LNUM, /* Match line number */
|
||||
***************
|
||||
*** 199,207 ****
|
||||
NFA_MARK_LT, /* Match < mark */
|
||||
NFA_VISUAL, /* Match Visual area */
|
||||
|
||||
- NFA_FIRST_NL = NFA_ANY + ADD_NL,
|
||||
- NFA_LAST_NL = NFA_NUPPER + ADD_NL,
|
||||
-
|
||||
/* Character classes [:alnum:] etc */
|
||||
NFA_CLASS_ALNUM,
|
||||
NFA_CLASS_ALPHA,
|
||||
--- 209,214 ----
|
||||
***************
|
||||
*** 578,583 ****
|
||||
--- 585,592 ----
|
||||
* On failure, return 0 (=FAIL)
|
||||
* Start points to the first char of the range, while end should point
|
||||
* to the closing brace.
|
||||
+ * Keep in mind that 'ignorecase' applies at execution time, thus [a-z] may
|
||||
+ * need to be interpreted as [a-zA-Z].
|
||||
*/
|
||||
static int
|
||||
nfa_recognize_char_class(start, end, extra_newl)
|
||||
***************
|
||||
*** 681,687 ****
|
||||
return FAIL;
|
||||
|
||||
if (newl == TRUE)
|
||||
! extra_newl = ADD_NL;
|
||||
|
||||
switch (config)
|
||||
{
|
||||
--- 690,696 ----
|
||||
return FAIL;
|
||||
|
||||
if (newl == TRUE)
|
||||
! extra_newl = NFA_ADD_NL;
|
||||
|
||||
switch (config)
|
||||
{
|
||||
***************
|
||||
*** 710,722 ****
|
||||
case CLASS_not | CLASS_az | CLASS_AZ:
|
||||
return extra_newl + NFA_NALPHA;
|
||||
case CLASS_az:
|
||||
! return extra_newl + NFA_LOWER;
|
||||
case CLASS_not | CLASS_az:
|
||||
! return extra_newl + NFA_NLOWER;
|
||||
case CLASS_AZ:
|
||||
! return extra_newl + NFA_UPPER;
|
||||
case CLASS_not | CLASS_AZ:
|
||||
! return extra_newl + NFA_NUPPER;
|
||||
}
|
||||
return FAIL;
|
||||
}
|
||||
--- 719,731 ----
|
||||
case CLASS_not | CLASS_az | CLASS_AZ:
|
||||
return extra_newl + NFA_NALPHA;
|
||||
case CLASS_az:
|
||||
! return extra_newl + NFA_LOWER_IC;
|
||||
case CLASS_not | CLASS_az:
|
||||
! return extra_newl + NFA_NLOWER_IC;
|
||||
case CLASS_AZ:
|
||||
! return extra_newl + NFA_UPPER_IC;
|
||||
case CLASS_not | CLASS_AZ:
|
||||
! return extra_newl + NFA_NUPPER_IC;
|
||||
}
|
||||
return FAIL;
|
||||
}
|
||||
***************
|
||||
*** 914,920 ****
|
||||
break;
|
||||
}
|
||||
|
||||
! extra = ADD_NL;
|
||||
|
||||
/* "\_[" is collection plus newline */
|
||||
if (c == '[')
|
||||
--- 923,929 ----
|
||||
break;
|
||||
}
|
||||
|
||||
! extra = NFA_ADD_NL;
|
||||
|
||||
/* "\_[" is collection plus newline */
|
||||
if (c == '[')
|
||||
***************
|
||||
*** 970,976 ****
|
||||
}
|
||||
#endif
|
||||
EMIT(nfa_classcodes[p - classchars]);
|
||||
! if (extra == ADD_NL)
|
||||
{
|
||||
EMIT(NFA_NEWL);
|
||||
EMIT(NFA_OR);
|
||||
--- 979,985 ----
|
||||
}
|
||||
#endif
|
||||
EMIT(nfa_classcodes[p - classchars]);
|
||||
! if (extra == NFA_ADD_NL)
|
||||
{
|
||||
EMIT(NFA_NEWL);
|
||||
EMIT(NFA_OR);
|
||||
***************
|
||||
*** 1240,1260 ****
|
||||
{
|
||||
/*
|
||||
* Try to reverse engineer character classes. For example,
|
||||
! * recognize that [0-9] stands for \d and [A-Za-z_] with \h,
|
||||
* and perform the necessary substitutions in the NFA.
|
||||
*/
|
||||
result = nfa_recognize_char_class(regparse, endp,
|
||||
! extra == ADD_NL);
|
||||
if (result != FAIL)
|
||||
{
|
||||
! if (result >= NFA_DIGIT && result <= NFA_NUPPER)
|
||||
! EMIT(result);
|
||||
! else /* must be char class + newline */
|
||||
{
|
||||
! EMIT(result - ADD_NL);
|
||||
EMIT(NFA_NEWL);
|
||||
EMIT(NFA_OR);
|
||||
}
|
||||
regparse = endp;
|
||||
mb_ptr_adv(regparse);
|
||||
return OK;
|
||||
--- 1249,1269 ----
|
||||
{
|
||||
/*
|
||||
* Try to reverse engineer character classes. For example,
|
||||
! * recognize that [0-9] stands for \d and [A-Za-z_] for \h,
|
||||
* and perform the necessary substitutions in the NFA.
|
||||
*/
|
||||
result = nfa_recognize_char_class(regparse, endp,
|
||||
! extra == NFA_ADD_NL);
|
||||
if (result != FAIL)
|
||||
{
|
||||
! if (result >= NFA_FIRST_NL && result <= NFA_LAST_NL)
|
||||
{
|
||||
! EMIT(result - NFA_ADD_NL);
|
||||
EMIT(NFA_NEWL);
|
||||
EMIT(NFA_OR);
|
||||
}
|
||||
+ else
|
||||
+ EMIT(result);
|
||||
regparse = endp;
|
||||
mb_ptr_adv(regparse);
|
||||
return OK;
|
||||
***************
|
||||
*** 1504,1510 ****
|
||||
* collection, add an OR below. But not for negated
|
||||
* range. */
|
||||
if (!negated)
|
||||
! extra = ADD_NL;
|
||||
}
|
||||
else
|
||||
{
|
||||
--- 1513,1519 ----
|
||||
* collection, add an OR below. But not for negated
|
||||
* range. */
|
||||
if (!negated)
|
||||
! extra = NFA_ADD_NL;
|
||||
}
|
||||
else
|
||||
{
|
||||
***************
|
||||
*** 1537,1543 ****
|
||||
EMIT(NFA_END_COLL);
|
||||
|
||||
/* \_[] also matches \n but it's not negated */
|
||||
! if (extra == ADD_NL)
|
||||
{
|
||||
EMIT(reg_string ? NL : NFA_NEWL);
|
||||
EMIT(NFA_OR);
|
||||
--- 1546,1552 ----
|
||||
EMIT(NFA_END_COLL);
|
||||
|
||||
/* \_[] also matches \n but it's not negated */
|
||||
! if (extra == NFA_ADD_NL)
|
||||
{
|
||||
EMIT(reg_string ? NL : NFA_NEWL);
|
||||
EMIT(NFA_OR);
|
||||
***************
|
||||
*** 2011,2017 ****
|
||||
if (c >= NFA_FIRST_NL && c <= NFA_LAST_NL)
|
||||
{
|
||||
addnl = TRUE;
|
||||
! c -= ADD_NL;
|
||||
}
|
||||
|
||||
STRCPY(code, "");
|
||||
--- 2020,2026 ----
|
||||
if (c >= NFA_FIRST_NL && c <= NFA_LAST_NL)
|
||||
{
|
||||
addnl = TRUE;
|
||||
! c -= NFA_ADD_NL;
|
||||
}
|
||||
|
||||
STRCPY(code, "");
|
||||
***************
|
||||
*** 2217,2222 ****
|
||||
--- 2226,2235 ----
|
||||
case NFA_NLOWER:STRCPY(code, "NFA_NLOWER"); break;
|
||||
case NFA_UPPER: STRCPY(code, "NFA_UPPER"); break;
|
||||
case NFA_NUPPER:STRCPY(code, "NFA_NUPPER"); break;
|
||||
+ case NFA_LOWER_IC: STRCPY(code, "NFA_LOWER_IC"); break;
|
||||
+ case NFA_NLOWER_IC: STRCPY(code, "NFA_NLOWER_IC"); break;
|
||||
+ case NFA_UPPER_IC: STRCPY(code, "NFA_UPPER_IC"); break;
|
||||
+ case NFA_NUPPER_IC: STRCPY(code, "NFA_NUPPER_IC"); break;
|
||||
|
||||
default:
|
||||
STRCPY(code, "CHAR(x)");
|
||||
***************
|
||||
*** 2687,2692 ****
|
||||
--- 2700,2709 ----
|
||||
case NFA_NLOWER:
|
||||
case NFA_UPPER:
|
||||
case NFA_NUPPER:
|
||||
+ case NFA_LOWER_IC:
|
||||
+ case NFA_NLOWER_IC:
|
||||
+ case NFA_UPPER_IC:
|
||||
+ case NFA_NUPPER_IC:
|
||||
/* possibly non-ascii */
|
||||
#ifdef FEAT_MBYTE
|
||||
if (has_mbyte)
|
||||
***************
|
||||
*** 3841,3846 ****
|
||||
--- 3858,3867 ----
|
||||
case NFA_NLOWER:
|
||||
case NFA_UPPER:
|
||||
case NFA_NUPPER:
|
||||
+ case NFA_LOWER_IC:
|
||||
+ case NFA_NLOWER_IC:
|
||||
+ case NFA_UPPER_IC:
|
||||
+ case NFA_NUPPER_IC:
|
||||
case NFA_START_COLL:
|
||||
case NFA_START_NEG_COLL:
|
||||
case NFA_NEWL:
|
||||
***************
|
||||
*** 5872,5877 ****
|
||||
--- 5893,5920 ----
|
||||
ADD_STATE_IF_MATCH(t->state);
|
||||
break;
|
||||
|
||||
+ case NFA_LOWER_IC: /* [a-z] */
|
||||
+ result = ri_lower(curc) || (ireg_ic && ri_upper(curc));
|
||||
+ ADD_STATE_IF_MATCH(t->state);
|
||||
+ break;
|
||||
+
|
||||
+ case NFA_NLOWER_IC: /* [^a-z] */
|
||||
+ result = curc != NUL
|
||||
+ && !(ri_lower(curc) || (ireg_ic && ri_upper(curc)));
|
||||
+ ADD_STATE_IF_MATCH(t->state);
|
||||
+ break;
|
||||
+
|
||||
+ case NFA_UPPER_IC: /* [A-Z] */
|
||||
+ result = ri_upper(curc) || (ireg_ic && ri_lower(curc));
|
||||
+ ADD_STATE_IF_MATCH(t->state);
|
||||
+ break;
|
||||
+
|
||||
+ case NFA_NUPPER_IC: /* ^[A-Z] */
|
||||
+ result = curc != NUL
|
||||
+ && !(ri_upper(curc) || (ireg_ic && ri_lower(curc)));
|
||||
+ ADD_STATE_IF_MATCH(t->state);
|
||||
+ break;
|
||||
+
|
||||
case NFA_BACKREF1:
|
||||
case NFA_BACKREF2:
|
||||
case NFA_BACKREF3:
|
||||
*** ../vim-7.4.000/src/testdir/test64.in 2013-08-01 17:45:33.000000000 +0200
|
||||
--- src/testdir/test64.in 2013-08-14 11:50:11.000000000 +0200
|
||||
***************
|
||||
*** 289,303 ****
|
||||
:call add(tl, [2, '.a\%$', " a\n "])
|
||||
:call add(tl, [2, '.a\%$', " a\n_a", "_a"])
|
||||
:"
|
||||
! :"""" Test recognition of some character classes
|
||||
! :call add(tl, [2, '[0-9]', '8', '8'])
|
||||
! :call add(tl, [2, '[^0-9]', '8'])
|
||||
! :call add(tl, [2, '[0-9a-fA-F]*', '0a7', '0a7'])
|
||||
! :call add(tl, [2, '[^0-9A-Fa-f]\+', '0a7'])
|
||||
! :call add(tl, [2, '[a-z_A-Z0-9]\+', 'aso_sfoij', 'aso_sfoij'])
|
||||
! :call add(tl, [2, '[a-z]', 'a', 'a'])
|
||||
! :call add(tl, [2, '[a-zA-Z]', 'a', 'a'])
|
||||
! :call add(tl, [2, '[A-Z]', 'a'])
|
||||
:call add(tl, [2, '\C[^A-Z]\+', 'ABCOIJDEOIFNSD jsfoij sa', ' jsfoij sa'])
|
||||
:"
|
||||
:"""" Tests for \z features
|
||||
--- 289,317 ----
|
||||
:call add(tl, [2, '.a\%$', " a\n "])
|
||||
:call add(tl, [2, '.a\%$', " a\n_a", "_a"])
|
||||
:"
|
||||
! :"""" Test recognition of character classes
|
||||
! :call add(tl, [2, '[0-7]\+', 'x0123456789x', '01234567'])
|
||||
! :call add(tl, [2, '[^0-7]\+', '0a;X+% 897', 'a;X+% 89'])
|
||||
! :call add(tl, [2, '[0-9]\+', 'x0123456789x', '0123456789'])
|
||||
! :call add(tl, [2, '[^0-9]\+', '0a;X+% 9', 'a;X+% '])
|
||||
! :call add(tl, [2, '[0-9a-fA-F]\+', 'x0189abcdefg', '0189abcdef'])
|
||||
! :call add(tl, [2, '[^0-9A-Fa-f]\+', '0189g;X+% ab', 'g;X+% '])
|
||||
! :call add(tl, [2, '[a-z_A-Z0-9]\+', ';+aso_SfOij ', 'aso_SfOij'])
|
||||
! :call add(tl, [2, '[^a-z_A-Z0-9]\+', 'aSo_;+% sfOij', ';+% '])
|
||||
! :call add(tl, [2, '[a-z_A-Z]\+', '0abyz_ABYZ;', 'abyz_ABYZ'])
|
||||
! :call add(tl, [2, '[^a-z_A-Z]\+', 'abAB_09;+% yzYZ', '09;+% '])
|
||||
! :call add(tl, [2, '[a-z]\+', '0abcxyz1', 'abcxyz'])
|
||||
! :call add(tl, [2, '[a-z]\+', 'AabxyzZ', 'abxyz'])
|
||||
! :call add(tl, [2, '[^a-z]\+', 'a;X09+% x', ';X09+% '])
|
||||
! :call add(tl, [2, '[^a-z]\+', 'abX0;%yz', 'X0;%'])
|
||||
! :call add(tl, [2, '[a-zA-Z]\+', '0abABxzXZ9', 'abABxzXZ'])
|
||||
! :call add(tl, [2, '[^a-zA-Z]\+', 'ab09_;+ XZ', '09_;+ '])
|
||||
! :call add(tl, [2, '[A-Z]\+', 'aABXYZz', 'ABXYZ'])
|
||||
! :call add(tl, [2, '[^A-Z]\+', 'ABx0;%YZ', 'x0;%'])
|
||||
! :call add(tl, [2, '[a-z]\+\c', '0abxyzABXYZ;', 'abxyzABXYZ'])
|
||||
! :call add(tl, [2, '[A-Z]\+\c', '0abABxzXZ9', 'abABxzXZ'])
|
||||
! :call add(tl, [2, '\c[^a-z]\+', 'ab09_;+ XZ', '09_;+ '])
|
||||
! :call add(tl, [2, '\c[^A-Z]\+', 'ab09_;+ XZ', '09_;+ '])
|
||||
:call add(tl, [2, '\C[^A-Z]\+', 'ABCOIJDEOIFNSD jsfoij sa', ' jsfoij sa'])
|
||||
:"
|
||||
:"""" Tests for \z features
|
||||
*** ../vim-7.4.000/src/testdir/test64.ok 2013-08-01 18:28:56.000000000 +0200
|
||||
--- src/testdir/test64.ok 2013-08-14 11:50:37.000000000 +0200
|
||||
***************
|
||||
*** 650,679 ****
|
||||
OK 0 - .a\%$
|
||||
OK 1 - .a\%$
|
||||
OK 2 - .a\%$
|
||||
! OK 0 - [0-9]
|
||||
! OK 1 - [0-9]
|
||||
! OK 2 - [0-9]
|
||||
! OK 0 - [^0-9]
|
||||
! OK 1 - [^0-9]
|
||||
! OK 2 - [^0-9]
|
||||
! OK 0 - [0-9a-fA-F]*
|
||||
! OK 1 - [0-9a-fA-F]*
|
||||
! OK 2 - [0-9a-fA-F]*
|
||||
OK 0 - [^0-9A-Fa-f]\+
|
||||
OK 1 - [^0-9A-Fa-f]\+
|
||||
OK 2 - [^0-9A-Fa-f]\+
|
||||
OK 0 - [a-z_A-Z0-9]\+
|
||||
OK 1 - [a-z_A-Z0-9]\+
|
||||
OK 2 - [a-z_A-Z0-9]\+
|
||||
! OK 0 - [a-z]
|
||||
! OK 1 - [a-z]
|
||||
! OK 2 - [a-z]
|
||||
! OK 0 - [a-zA-Z]
|
||||
! OK 1 - [a-zA-Z]
|
||||
! OK 2 - [a-zA-Z]
|
||||
! OK 0 - [A-Z]
|
||||
! OK 1 - [A-Z]
|
||||
! OK 2 - [A-Z]
|
||||
OK 0 - \C[^A-Z]\+
|
||||
OK 1 - \C[^A-Z]\+
|
||||
OK 2 - \C[^A-Z]\+
|
||||
--- 650,721 ----
|
||||
OK 0 - .a\%$
|
||||
OK 1 - .a\%$
|
||||
OK 2 - .a\%$
|
||||
! OK 0 - [0-7]\+
|
||||
! OK 1 - [0-7]\+
|
||||
! OK 2 - [0-7]\+
|
||||
! OK 0 - [^0-7]\+
|
||||
! OK 1 - [^0-7]\+
|
||||
! OK 2 - [^0-7]\+
|
||||
! OK 0 - [0-9]\+
|
||||
! OK 1 - [0-9]\+
|
||||
! OK 2 - [0-9]\+
|
||||
! OK 0 - [^0-9]\+
|
||||
! OK 1 - [^0-9]\+
|
||||
! OK 2 - [^0-9]\+
|
||||
! OK 0 - [0-9a-fA-F]\+
|
||||
! OK 1 - [0-9a-fA-F]\+
|
||||
! OK 2 - [0-9a-fA-F]\+
|
||||
OK 0 - [^0-9A-Fa-f]\+
|
||||
OK 1 - [^0-9A-Fa-f]\+
|
||||
OK 2 - [^0-9A-Fa-f]\+
|
||||
OK 0 - [a-z_A-Z0-9]\+
|
||||
OK 1 - [a-z_A-Z0-9]\+
|
||||
OK 2 - [a-z_A-Z0-9]\+
|
||||
! OK 0 - [^a-z_A-Z0-9]\+
|
||||
! OK 1 - [^a-z_A-Z0-9]\+
|
||||
! OK 2 - [^a-z_A-Z0-9]\+
|
||||
! OK 0 - [a-z_A-Z]\+
|
||||
! OK 1 - [a-z_A-Z]\+
|
||||
! OK 2 - [a-z_A-Z]\+
|
||||
! OK 0 - [^a-z_A-Z]\+
|
||||
! OK 1 - [^a-z_A-Z]\+
|
||||
! OK 2 - [^a-z_A-Z]\+
|
||||
! OK 0 - [a-z]\+
|
||||
! OK 1 - [a-z]\+
|
||||
! OK 2 - [a-z]\+
|
||||
! OK 0 - [a-z]\+
|
||||
! OK 1 - [a-z]\+
|
||||
! OK 2 - [a-z]\+
|
||||
! OK 0 - [^a-z]\+
|
||||
! OK 1 - [^a-z]\+
|
||||
! OK 2 - [^a-z]\+
|
||||
! OK 0 - [^a-z]\+
|
||||
! OK 1 - [^a-z]\+
|
||||
! OK 2 - [^a-z]\+
|
||||
! OK 0 - [a-zA-Z]\+
|
||||
! OK 1 - [a-zA-Z]\+
|
||||
! OK 2 - [a-zA-Z]\+
|
||||
! OK 0 - [^a-zA-Z]\+
|
||||
! OK 1 - [^a-zA-Z]\+
|
||||
! OK 2 - [^a-zA-Z]\+
|
||||
! OK 0 - [A-Z]\+
|
||||
! OK 1 - [A-Z]\+
|
||||
! OK 2 - [A-Z]\+
|
||||
! OK 0 - [^A-Z]\+
|
||||
! OK 1 - [^A-Z]\+
|
||||
! OK 2 - [^A-Z]\+
|
||||
! OK 0 - [a-z]\+\c
|
||||
! OK 1 - [a-z]\+\c
|
||||
! OK 2 - [a-z]\+\c
|
||||
! OK 0 - [A-Z]\+\c
|
||||
! OK 1 - [A-Z]\+\c
|
||||
! OK 2 - [A-Z]\+\c
|
||||
! OK 0 - \c[^a-z]\+
|
||||
! OK 1 - \c[^a-z]\+
|
||||
! OK 2 - \c[^a-z]\+
|
||||
! OK 0 - \c[^A-Z]\+
|
||||
! OK 1 - \c[^A-Z]\+
|
||||
! OK 2 - \c[^A-Z]\+
|
||||
OK 0 - \C[^A-Z]\+
|
||||
OK 1 - \C[^A-Z]\+
|
||||
OK 2 - \C[^A-Z]\+
|
||||
*** ../vim-7.4.000/src/version.c 2013-08-10 13:29:20.000000000 +0200
|
||||
--- src/version.c 2013-08-14 11:54:57.000000000 +0200
|
||||
***************
|
||||
*** 729,730 ****
|
||||
--- 729,732 ----
|
||||
{ /* Add new patch number below this line */
|
||||
+ /**/
|
||||
+ 1,
|
||||
/**/
|
||||
|
||||
--
|
||||
How many light bulbs does it take to change a person?
|
||||
|
||||
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
|
||||
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
|
||||
\\\ an exciting new programming language -- http://www.Zimbu.org ///
|
||||
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
|
@ -1,77 +0,0 @@
|
||||
To: vim_dev@googlegroups.com
|
||||
Subject: Patch 7.4.002
|
||||
Fcc: outbox
|
||||
From: Bram Moolenaar <Bram@moolenaar.net>
|
||||
Mime-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
------------
|
||||
|
||||
Patch 7.4b.002
|
||||
Problem: Pattern with two alternative look-behind matches does not match.
|
||||
(Amadeus Demarzi)
|
||||
Solution: When comparing PIMs also compare their state ID to see if they are
|
||||
different.
|
||||
Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok
|
||||
|
||||
|
||||
*** ../vim-7.4.001/src/regexp_nfa.c 2013-08-14 12:05:54.000000000 +0200
|
||||
--- src/regexp_nfa.c 2013-08-14 13:12:09.000000000 +0200
|
||||
***************
|
||||
*** 3782,3787 ****
|
||||
--- 3782,3790 ----
|
||||
if (two_unused)
|
||||
/* one is used and two is not: not equal */
|
||||
return FALSE;
|
||||
+ /* compare the state id */
|
||||
+ if (one->state->id != two->state->id)
|
||||
+ return FALSE;
|
||||
/* compare the position */
|
||||
if (REG_MULTI)
|
||||
return one->end.pos.lnum == two->end.pos.lnum
|
||||
*** ../vim-7.4.001/src/testdir/test64.in 2013-08-14 12:05:54.000000000 +0200
|
||||
--- src/testdir/test64.in 2013-08-14 12:58:38.000000000 +0200
|
||||
***************
|
||||
*** 421,426 ****
|
||||
--- 421,429 ----
|
||||
:call add(tl, [2, '\(foo\)\@<=\>', 'barfoo', '', 'foo'])
|
||||
:call add(tl, [2, '\(foo\)\@<=.*', 'foobar', 'bar', 'foo'])
|
||||
:"
|
||||
+ :" complicated look-behind match
|
||||
+ :call add(tl, [2, '\(r\@<=\|\w\@<!\)\/', 'x = /word/;', '/'])
|
||||
+ :"
|
||||
:""""" \@>
|
||||
:call add(tl, [2, '\(a*\)\@>a', 'aaaa'])
|
||||
:call add(tl, [2, '\(a*\)\@>b', 'aaab', 'aaab', 'aaa'])
|
||||
*** ../vim-7.4.001/src/testdir/test64.ok 2013-08-14 12:05:54.000000000 +0200
|
||||
--- src/testdir/test64.ok 2013-08-14 13:14:09.000000000 +0200
|
||||
***************
|
||||
*** 974,979 ****
|
||||
--- 974,982 ----
|
||||
OK 0 - \(foo\)\@<=.*
|
||||
OK 1 - \(foo\)\@<=.*
|
||||
OK 2 - \(foo\)\@<=.*
|
||||
+ OK 0 - \(r\@<=\|\w\@<!\)\/
|
||||
+ OK 1 - \(r\@<=\|\w\@<!\)\/
|
||||
+ OK 2 - \(r\@<=\|\w\@<!\)\/
|
||||
OK 0 - \(a*\)\@>a
|
||||
OK 1 - \(a*\)\@>a
|
||||
OK 2 - \(a*\)\@>a
|
||||
*** ../vim-7.4.001/src/version.c 2013-08-14 12:05:54.000000000 +0200
|
||||
--- src/version.c 2013-08-14 13:13:45.000000000 +0200
|
||||
***************
|
||||
*** 729,730 ****
|
||||
--- 729,732 ----
|
||||
{ /* Add new patch number below this line */
|
||||
+ /**/
|
||||
+ 2,
|
||||
/**/
|
||||
|
||||
--
|
||||
From "know your smileys":
|
||||
:-)-O Smiling doctor with stethoscope
|
||||
|
||||
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
|
||||
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
|
||||
\\\ an exciting new programming language -- http://www.Zimbu.org ///
|
||||
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
|
@ -1,100 +0,0 @@
|
||||
To: vim_dev@googlegroups.com
|
||||
Subject: Patch 7.4.003
|
||||
Fcc: outbox
|
||||
From: Bram Moolenaar <Bram@moolenaar.net>
|
||||
Mime-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
------------
|
||||
|
||||
Patch 7.4.003
|
||||
Problem: Memory access error in Ruby syntax highlighting. (Christopher Chow)
|
||||
Solution: Refresh stale pointer. (James McCoy)
|
||||
Files: src/regexp_nfa.c
|
||||
|
||||
|
||||
*** ../vim-7.4.002/src/regexp_nfa.c 2013-08-14 13:31:03.000000000 +0200
|
||||
--- src/regexp_nfa.c 2013-08-14 14:02:06.000000000 +0200
|
||||
***************
|
||||
*** 4120,4126 ****
|
||||
sub = &subs->norm;
|
||||
}
|
||||
#ifdef FEAT_SYN_HL
|
||||
! else if (state->c >= NFA_ZOPEN)
|
||||
{
|
||||
subidx = state->c - NFA_ZOPEN;
|
||||
sub = &subs->synt;
|
||||
--- 4120,4126 ----
|
||||
sub = &subs->norm;
|
||||
}
|
||||
#ifdef FEAT_SYN_HL
|
||||
! else if (state->c >= NFA_ZOPEN && state->c <= NFA_ZOPEN9)
|
||||
{
|
||||
subidx = state->c - NFA_ZOPEN;
|
||||
sub = &subs->synt;
|
||||
***************
|
||||
*** 4189,4194 ****
|
||||
--- 4189,4201 ----
|
||||
}
|
||||
|
||||
subs = addstate(l, state->out, subs, pim, off);
|
||||
+ /* "subs" may have changed, need to set "sub" again */
|
||||
+ #ifdef FEAT_SYN_HL
|
||||
+ if (state->c >= NFA_ZOPEN && state->c <= NFA_ZOPEN9)
|
||||
+ sub = &subs->synt;
|
||||
+ else
|
||||
+ #endif
|
||||
+ sub = &subs->norm;
|
||||
|
||||
if (save_in_use == -1)
|
||||
{
|
||||
***************
|
||||
*** 4237,4243 ****
|
||||
sub = &subs->norm;
|
||||
}
|
||||
#ifdef FEAT_SYN_HL
|
||||
! else if (state->c >= NFA_ZCLOSE)
|
||||
{
|
||||
subidx = state->c - NFA_ZCLOSE;
|
||||
sub = &subs->synt;
|
||||
--- 4244,4250 ----
|
||||
sub = &subs->norm;
|
||||
}
|
||||
#ifdef FEAT_SYN_HL
|
||||
! else if (state->c >= NFA_ZCLOSE && state->c <= NFA_ZCLOSE9)
|
||||
{
|
||||
subidx = state->c - NFA_ZCLOSE;
|
||||
sub = &subs->synt;
|
||||
***************
|
||||
*** 4281,4286 ****
|
||||
--- 4288,4300 ----
|
||||
}
|
||||
|
||||
subs = addstate(l, state->out, subs, pim, off);
|
||||
+ /* "subs" may have changed, need to set "sub" again */
|
||||
+ #ifdef FEAT_SYN_HL
|
||||
+ if (state->c >= NFA_ZCLOSE && state->c <= NFA_ZCLOSE9)
|
||||
+ sub = &subs->synt;
|
||||
+ else
|
||||
+ #endif
|
||||
+ sub = &subs->norm;
|
||||
|
||||
if (REG_MULTI)
|
||||
sub->list.multi[subidx].end = save_lpos;
|
||||
*** ../vim-7.4.002/src/version.c 2013-08-14 13:31:03.000000000 +0200
|
||||
--- src/version.c 2013-08-14 14:03:51.000000000 +0200
|
||||
***************
|
||||
*** 729,730 ****
|
||||
--- 729,732 ----
|
||||
{ /* Add new patch number below this line */
|
||||
+ /**/
|
||||
+ 3,
|
||||
/**/
|
||||
|
||||
--
|
||||
Where do you want to crash today?
|
||||
|
||||
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
|
||||
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
|
||||
\\\ an exciting new programming language -- http://www.Zimbu.org ///
|
||||
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
|
@ -1,232 +0,0 @@
|
||||
To: vim_dev@googlegroups.com
|
||||
Subject: Patch 7.4.004
|
||||
Fcc: outbox
|
||||
From: Bram Moolenaar <Bram@moolenaar.net>
|
||||
Mime-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
------------
|
||||
|
||||
Patch 7.4.004
|
||||
Problem: When closing a window fails ":bwipe" may hang.
|
||||
Solution: Let win_close() return FAIL and break out of the loop.
|
||||
Files: src/window.c, src/proto/window.pro, src/buffer.c
|
||||
|
||||
|
||||
*** ../vim-7.4.003/src/window.c 2013-07-24 17:38:29.000000000 +0200
|
||||
--- src/window.c 2013-08-14 16:52:44.000000000 +0200
|
||||
***************
|
||||
*** 2172,2179 ****
|
||||
* If "free_buf" is TRUE related buffer may be unloaded.
|
||||
*
|
||||
* Called by :quit, :close, :xit, :wq and findtag().
|
||||
*/
|
||||
! void
|
||||
win_close(win, free_buf)
|
||||
win_T *win;
|
||||
int free_buf;
|
||||
--- 2172,2180 ----
|
||||
* If "free_buf" is TRUE related buffer may be unloaded.
|
||||
*
|
||||
* Called by :quit, :close, :xit, :wq and findtag().
|
||||
+ * Returns FAIL when the window was not closed.
|
||||
*/
|
||||
! int
|
||||
win_close(win, free_buf)
|
||||
win_T *win;
|
||||
int free_buf;
|
||||
***************
|
||||
*** 2190,2210 ****
|
||||
if (last_window())
|
||||
{
|
||||
EMSG(_("E444: Cannot close last window"));
|
||||
! return;
|
||||
}
|
||||
|
||||
#ifdef FEAT_AUTOCMD
|
||||
if (win->w_closing || (win->w_buffer != NULL && win->w_buffer->b_closing))
|
||||
! return; /* window is already being closed */
|
||||
if (win == aucmd_win)
|
||||
{
|
||||
EMSG(_("E813: Cannot close autocmd window"));
|
||||
! return;
|
||||
}
|
||||
if ((firstwin == aucmd_win || lastwin == aucmd_win) && one_window())
|
||||
{
|
||||
EMSG(_("E814: Cannot close window, only autocmd window would remain"));
|
||||
! return;
|
||||
}
|
||||
#endif
|
||||
|
||||
--- 2191,2211 ----
|
||||
if (last_window())
|
||||
{
|
||||
EMSG(_("E444: Cannot close last window"));
|
||||
! return FAIL;
|
||||
}
|
||||
|
||||
#ifdef FEAT_AUTOCMD
|
||||
if (win->w_closing || (win->w_buffer != NULL && win->w_buffer->b_closing))
|
||||
! return FAIL; /* window is already being closed */
|
||||
if (win == aucmd_win)
|
||||
{
|
||||
EMSG(_("E813: Cannot close autocmd window"));
|
||||
! return FAIL;
|
||||
}
|
||||
if ((firstwin == aucmd_win || lastwin == aucmd_win) && one_window())
|
||||
{
|
||||
EMSG(_("E814: Cannot close window, only autocmd window would remain"));
|
||||
! return FAIL;
|
||||
}
|
||||
#endif
|
||||
|
||||
***************
|
||||
*** 2212,2218 ****
|
||||
* and then close the window and the tab page to avoid that curwin and
|
||||
* curtab are invalid while we are freeing memory. */
|
||||
if (close_last_window_tabpage(win, free_buf, prev_curtab))
|
||||
! return;
|
||||
|
||||
/* When closing the help window, try restoring a snapshot after closing
|
||||
* the window. Otherwise clear the snapshot, it's now invalid. */
|
||||
--- 2213,2219 ----
|
||||
* and then close the window and the tab page to avoid that curwin and
|
||||
* curtab are invalid while we are freeing memory. */
|
||||
if (close_last_window_tabpage(win, free_buf, prev_curtab))
|
||||
! return FAIL;
|
||||
|
||||
/* When closing the help window, try restoring a snapshot after closing
|
||||
* the window. Otherwise clear the snapshot, it's now invalid. */
|
||||
***************
|
||||
*** 2240,2261 ****
|
||||
win->w_closing = TRUE;
|
||||
apply_autocmds(EVENT_BUFLEAVE, NULL, NULL, FALSE, curbuf);
|
||||
if (!win_valid(win))
|
||||
! return;
|
||||
win->w_closing = FALSE;
|
||||
if (last_window())
|
||||
! return;
|
||||
}
|
||||
win->w_closing = TRUE;
|
||||
apply_autocmds(EVENT_WINLEAVE, NULL, NULL, FALSE, curbuf);
|
||||
if (!win_valid(win))
|
||||
! return;
|
||||
win->w_closing = FALSE;
|
||||
if (last_window())
|
||||
! return;
|
||||
# ifdef FEAT_EVAL
|
||||
/* autocmds may abort script processing */
|
||||
if (aborting())
|
||||
! return;
|
||||
# endif
|
||||
}
|
||||
#endif
|
||||
--- 2241,2262 ----
|
||||
win->w_closing = TRUE;
|
||||
apply_autocmds(EVENT_BUFLEAVE, NULL, NULL, FALSE, curbuf);
|
||||
if (!win_valid(win))
|
||||
! return FAIL;
|
||||
win->w_closing = FALSE;
|
||||
if (last_window())
|
||||
! return FAIL;
|
||||
}
|
||||
win->w_closing = TRUE;
|
||||
apply_autocmds(EVENT_WINLEAVE, NULL, NULL, FALSE, curbuf);
|
||||
if (!win_valid(win))
|
||||
! return FAIL;
|
||||
win->w_closing = FALSE;
|
||||
if (last_window())
|
||||
! return FAIL;
|
||||
# ifdef FEAT_EVAL
|
||||
/* autocmds may abort script processing */
|
||||
if (aborting())
|
||||
! return FAIL;
|
||||
# endif
|
||||
}
|
||||
#endif
|
||||
***************
|
||||
*** 2303,2309 ****
|
||||
* other window or moved to another tab page. */
|
||||
else if (!win_valid(win) || last_window() || curtab != prev_curtab
|
||||
|| close_last_window_tabpage(win, free_buf, prev_curtab))
|
||||
! return;
|
||||
|
||||
/* Free the memory used for the window and get the window that received
|
||||
* the screen space. */
|
||||
--- 2304,2310 ----
|
||||
* other window or moved to another tab page. */
|
||||
else if (!win_valid(win) || last_window() || curtab != prev_curtab
|
||||
|| close_last_window_tabpage(win, free_buf, prev_curtab))
|
||||
! return FAIL;
|
||||
|
||||
/* Free the memory used for the window and get the window that received
|
||||
* the screen space. */
|
||||
***************
|
||||
*** 2383,2388 ****
|
||||
--- 2384,2390 ----
|
||||
#endif
|
||||
|
||||
redraw_all_later(NOT_VALID);
|
||||
+ return OK;
|
||||
}
|
||||
|
||||
/*
|
||||
*** ../vim-7.4.003/src/proto/window.pro 2013-08-10 13:37:30.000000000 +0200
|
||||
--- src/proto/window.pro 2013-08-14 16:52:50.000000000 +0200
|
||||
***************
|
||||
*** 9,15 ****
|
||||
void win_equal __ARGS((win_T *next_curwin, int current, int dir));
|
||||
void close_windows __ARGS((buf_T *buf, int keep_curwin));
|
||||
int one_window __ARGS((void));
|
||||
! void win_close __ARGS((win_T *win, int free_buf));
|
||||
void win_close_othertab __ARGS((win_T *win, int free_buf, tabpage_T *tp));
|
||||
void win_free_all __ARGS((void));
|
||||
win_T *winframe_remove __ARGS((win_T *win, int *dirp, tabpage_T *tp));
|
||||
--- 9,15 ----
|
||||
void win_equal __ARGS((win_T *next_curwin, int current, int dir));
|
||||
void close_windows __ARGS((buf_T *buf, int keep_curwin));
|
||||
int one_window __ARGS((void));
|
||||
! int win_close __ARGS((win_T *win, int free_buf));
|
||||
void win_close_othertab __ARGS((win_T *win, int free_buf, tabpage_T *tp));
|
||||
void win_free_all __ARGS((void));
|
||||
win_T *winframe_remove __ARGS((win_T *win, int *dirp, tabpage_T *tp));
|
||||
*** ../vim-7.4.003/src/buffer.c 2013-07-17 16:39:00.000000000 +0200
|
||||
--- src/buffer.c 2013-08-14 16:54:34.000000000 +0200
|
||||
***************
|
||||
*** 1186,1192 ****
|
||||
&& !(curwin->w_closing || curwin->w_buffer->b_closing)
|
||||
# endif
|
||||
&& (firstwin != lastwin || first_tabpage->tp_next != NULL))
|
||||
! win_close(curwin, FALSE);
|
||||
#endif
|
||||
|
||||
/*
|
||||
--- 1186,1195 ----
|
||||
&& !(curwin->w_closing || curwin->w_buffer->b_closing)
|
||||
# endif
|
||||
&& (firstwin != lastwin || first_tabpage->tp_next != NULL))
|
||||
! {
|
||||
! if (win_close(curwin, FALSE) == FAIL)
|
||||
! break;
|
||||
! }
|
||||
#endif
|
||||
|
||||
/*
|
||||
*** ../vim-7.4.003/src/version.c 2013-08-14 14:18:37.000000000 +0200
|
||||
--- src/version.c 2013-08-14 17:10:23.000000000 +0200
|
||||
***************
|
||||
*** 729,730 ****
|
||||
--- 729,732 ----
|
||||
{ /* Add new patch number below this line */
|
||||
+ /**/
|
||||
+ 4,
|
||||
/**/
|
||||
|
||||
--
|
||||
From "know your smileys":
|
||||
*<|:-) Santa Claus (Ho Ho Ho)
|
||||
|
||||
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
|
||||
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
|
||||
\\\ an exciting new programming language -- http://www.Zimbu.org ///
|
||||
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
|
@ -1,48 +0,0 @@
|
||||
To: vim_dev@googlegroups.com
|
||||
Subject: Patch 7.4.005
|
||||
Fcc: outbox
|
||||
From: Bram Moolenaar <Bram@moolenaar.net>
|
||||
Mime-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
------------
|
||||
|
||||
Patch 7.4.005
|
||||
Problem: Using "vaB" while 'virtualedit' is set selects the wrong area.
|
||||
(Dimitar Dimitrov)
|
||||
Solution: Reset coladd when finding a match.
|
||||
Files: src/search.c
|
||||
|
||||
|
||||
*** ../vim-7.4.004/src/search.c 2013-07-17 19:20:47.000000000 +0200
|
||||
--- src/search.c 2013-08-14 17:32:38.000000000 +0200
|
||||
***************
|
||||
*** 1760,1765 ****
|
||||
--- 1760,1768 ----
|
||||
#endif
|
||||
|
||||
pos = curwin->w_cursor;
|
||||
+ #ifdef FEAT_VIRTUALEDIT
|
||||
+ pos.coladd = 0;
|
||||
+ #endif
|
||||
linep = ml_get(pos.lnum);
|
||||
|
||||
cpo_match = (vim_strchr(p_cpo, CPO_MATCH) != NULL);
|
||||
*** ../vim-7.4.004/src/version.c 2013-08-14 17:11:14.000000000 +0200
|
||||
--- src/version.c 2013-08-14 17:38:05.000000000 +0200
|
||||
***************
|
||||
*** 729,730 ****
|
||||
--- 729,732 ----
|
||||
{ /* Add new patch number below this line */
|
||||
+ /**/
|
||||
+ 5,
|
||||
/**/
|
||||
|
||||
--
|
||||
You can't have everything. Where would you put it?
|
||||
-- Steven Wright
|
||||
|
||||
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
|
||||
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
|
||||
\\\ an exciting new programming language -- http://www.Zimbu.org ///
|
||||
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
|
@ -1,66 +0,0 @@
|
||||
To: vim_dev@googlegroups.com
|
||||
Subject: Patch 7.4.006
|
||||
Fcc: outbox
|
||||
From: Bram Moolenaar <Bram@moolenaar.net>
|
||||
Mime-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
------------
|
||||
|
||||
Patch 7.4.006
|
||||
Problem: mkdir("foo/bar/", "p") gives an error message. (David Barnett)
|
||||
Solution: Remove the trailing slash. (lcd)
|
||||
Files: src/eval.c
|
||||
|
||||
|
||||
*** ../vim-7.4.005/src/eval.c 2013-07-05 18:23:42.000000000 +0200
|
||||
--- src/eval.c 2013-08-22 12:00:28.000000000 +0200
|
||||
***************
|
||||
*** 14292,14297 ****
|
||||
--- 14292,14301 ----
|
||||
return;
|
||||
|
||||
dir = get_tv_string_buf(&argvars[0], buf);
|
||||
+ if (*gettail(dir) == NUL)
|
||||
+ /* remove trailing slashes */
|
||||
+ *gettail_sep(dir) = NUL;
|
||||
+
|
||||
if (argvars[1].v_type != VAR_UNKNOWN)
|
||||
{
|
||||
if (argvars[2].v_type != VAR_UNKNOWN)
|
||||
***************
|
||||
*** 14299,14305 ****
|
||||
if (prot != -1 && STRCMP(get_tv_string(&argvars[1]), "p") == 0)
|
||||
mkdir_recurse(dir, prot);
|
||||
}
|
||||
! rettv->vval.v_number = prot != -1 ? vim_mkdir_emsg(dir, prot) : 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
--- 14303,14309 ----
|
||||
if (prot != -1 && STRCMP(get_tv_string(&argvars[1]), "p") == 0)
|
||||
mkdir_recurse(dir, prot);
|
||||
}
|
||||
! rettv->vval.v_number = prot == -1 ? FAIL : vim_mkdir_emsg(dir, prot);
|
||||
}
|
||||
#endif
|
||||
|
||||
*** ../vim-7.4.005/src/version.c 2013-08-14 17:45:25.000000000 +0200
|
||||
--- src/version.c 2013-08-22 12:02:46.000000000 +0200
|
||||
***************
|
||||
*** 729,730 ****
|
||||
--- 729,732 ----
|
||||
{ /* Add new patch number below this line */
|
||||
+ /**/
|
||||
+ 6,
|
||||
/**/
|
||||
|
||||
--
|
||||
hundred-and-one symptoms of being an internet addict:
|
||||
97. Your mother tells you to remember something, and you look for
|
||||
a File/Save command.
|
||||
|
||||
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
|
||||
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
|
||||
\\\ an exciting new programming language -- http://www.Zimbu.org ///
|
||||
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
|
@ -1,95 +0,0 @@
|
||||
To: vim_dev@googlegroups.com
|
||||
Subject: Patch 7.4.007
|
||||
Fcc: outbox
|
||||
From: Bram Moolenaar <Bram@moolenaar.net>
|
||||
Mime-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
------------
|
||||
|
||||
Patch 7.4.007
|
||||
Problem: Creating a preview window on startup leaves the screen layout in a
|
||||
messed up state. (Marius Gedminas)
|
||||
Solution: Don't change firstwin. (Christian Brabandt)
|
||||
Files: src/main.c
|
||||
|
||||
|
||||
*** ../vim-7.4.006/src/main.c 2013-07-03 12:36:49.000000000 +0200
|
||||
--- src/main.c 2013-08-22 14:02:39.000000000 +0200
|
||||
***************
|
||||
*** 2727,2732 ****
|
||||
--- 2727,2733 ----
|
||||
int arg_idx; /* index in argument list */
|
||||
int i;
|
||||
int advance = TRUE;
|
||||
+ win_T *win;
|
||||
|
||||
# ifdef FEAT_AUTOCMD
|
||||
/*
|
||||
***************
|
||||
*** 2816,2839 ****
|
||||
# ifdef FEAT_AUTOCMD
|
||||
--autocmd_no_enter;
|
||||
# endif
|
||||
#if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
|
||||
! /*
|
||||
! * Avoid making a preview window the current window.
|
||||
! */
|
||||
! if (firstwin->w_p_pvw)
|
||||
{
|
||||
! win_T *win;
|
||||
!
|
||||
! for (win = firstwin; win != NULL; win = win->w_next)
|
||||
! if (!win->w_p_pvw)
|
||||
! {
|
||||
! firstwin = win;
|
||||
! break;
|
||||
! }
|
||||
}
|
||||
#endif
|
||||
! /* make the first window the current window */
|
||||
! win_enter(firstwin, FALSE);
|
||||
|
||||
# ifdef FEAT_AUTOCMD
|
||||
--autocmd_no_leave;
|
||||
--- 2817,2838 ----
|
||||
# ifdef FEAT_AUTOCMD
|
||||
--autocmd_no_enter;
|
||||
# endif
|
||||
+
|
||||
+ /* make the first window the current window */
|
||||
+ win = firstwin;
|
||||
#if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
|
||||
! /* Avoid making a preview window the current window. */
|
||||
! while (win->w_p_pvw)
|
||||
{
|
||||
! win = win->w_next;
|
||||
! if (win == NULL)
|
||||
! {
|
||||
! win = firstwin;
|
||||
! break;
|
||||
! }
|
||||
}
|
||||
#endif
|
||||
! win_enter(win, FALSE);
|
||||
|
||||
# ifdef FEAT_AUTOCMD
|
||||
--autocmd_no_leave;
|
||||
*** ../vim-7.4.006/src/version.c 2013-08-22 12:06:50.000000000 +0200
|
||||
--- src/version.c 2013-08-22 14:04:11.000000000 +0200
|
||||
***************
|
||||
*** 729,730 ****
|
||||
--- 729,732 ----
|
||||
{ /* Add new patch number below this line */
|
||||
+ /**/
|
||||
+ 7,
|
||||
/**/
|
||||
|
||||
--
|
||||
hundred-and-one symptoms of being an internet addict:
|
||||
105. When someone asks you for your address, you tell them your URL.
|
||||
|
||||
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
|
||||
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
|
||||
\\\ an exciting new programming language -- http://www.Zimbu.org ///
|
||||
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
|
@ -1,71 +0,0 @@
|
||||
To: vim_dev@googlegroups.com
|
||||
Subject: Patch 7.4.008
|
||||
Fcc: outbox
|
||||
From: Bram Moolenaar <Bram@moolenaar.net>
|
||||
Mime-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
------------
|
||||
|
||||
Patch 7.4.008
|
||||
Problem: New regexp engine can't be interrupted.
|
||||
Solution: Check for CTRL-C pressed. (Yasuhiro Matsumoto)
|
||||
Files: src/regexp_nfa.c, src/regexp.c
|
||||
|
||||
|
||||
*** ../vim-7.4.007/src/regexp_nfa.c 2013-08-14 14:18:37.000000000 +0200
|
||||
--- src/regexp_nfa.c 2013-08-25 16:55:56.000000000 +0200
|
||||
***************
|
||||
*** 5089,5094 ****
|
||||
--- 5089,5100 ----
|
||||
return FALSE;
|
||||
}
|
||||
#endif
|
||||
+ /* Some patterns may take a long time to match, especially when using
|
||||
+ * recursive_regmatch(). Allow interrupting them with CTRL-C. */
|
||||
+ fast_breakcheck();
|
||||
+ if (got_int)
|
||||
+ return FALSE;
|
||||
+
|
||||
nfa_match = FALSE;
|
||||
|
||||
/* Allocate memory for the lists of nodes. */
|
||||
*** ../vim-7.4.007/src/regexp.c 2013-08-01 18:31:30.000000000 +0200
|
||||
--- src/regexp.c 2013-08-25 16:57:35.000000000 +0200
|
||||
***************
|
||||
*** 4311,4318 ****
|
||||
*/
|
||||
for (;;)
|
||||
{
|
||||
! /* Some patterns may cause a long time to match, even though they are not
|
||||
! * illegal. E.g., "\([a-z]\+\)\+Q". Allow breaking them with CTRL-C. */
|
||||
fast_breakcheck();
|
||||
|
||||
#ifdef DEBUG
|
||||
--- 4311,4318 ----
|
||||
*/
|
||||
for (;;)
|
||||
{
|
||||
! /* Some patterns may take a long time to match, e.g., "\([a-z]\+\)\+Q".
|
||||
! * Allow interrupting them with CTRL-C. */
|
||||
fast_breakcheck();
|
||||
|
||||
#ifdef DEBUG
|
||||
*** ../vim-7.4.007/src/version.c 2013-08-22 14:14:23.000000000 +0200
|
||||
--- src/version.c 2013-08-25 16:57:51.000000000 +0200
|
||||
***************
|
||||
*** 729,730 ****
|
||||
--- 729,732 ----
|
||||
{ /* Add new patch number below this line */
|
||||
+ /**/
|
||||
+ 8,
|
||||
/**/
|
||||
|
||||
--
|
||||
hundred-and-one symptoms of being an internet addict:
|
||||
124. You begin conversations with, "Who is your internet service provider?"
|
||||
|
||||
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
|
||||
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
|
||||
\\\ an exciting new programming language -- http://www.Zimbu.org ///
|
||||
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
|
@ -1,64 +0,0 @@
|
||||
To: vim_dev@googlegroups.com
|
||||
Subject: Patch 7.4.009
|
||||
Fcc: outbox
|
||||
From: Bram Moolenaar <Bram@moolenaar.net>
|
||||
Mime-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
------------
|
||||
|
||||
Patch 7.4.009
|
||||
Problem: When a file was not decrypted (yet), writing it may destroy the
|
||||
contents.
|
||||
Solution: Mark the file as readonly until decryption was done. (Christian
|
||||
Brabandt)
|
||||
Files: src/fileio.c
|
||||
|
||||
|
||||
*** ../vim-7.4.008/src/fileio.c 2013-08-05 21:58:03.000000000 +0200
|
||||
--- src/fileio.c 2013-08-25 17:45:27.000000000 +0200
|
||||
***************
|
||||
*** 2926,2934 ****
|
||||
--- 2926,2939 ----
|
||||
int *did_ask; /* flag: whether already asked for key */
|
||||
{
|
||||
int method = crypt_method_from_magic((char *)ptr, *sizep);
|
||||
+ int b_p_ro = curbuf->b_p_ro;
|
||||
|
||||
if (method >= 0)
|
||||
{
|
||||
+ /* Mark the buffer as read-only until the decryption has taken place.
|
||||
+ * Avoids accidentally overwriting the file with garbage. */
|
||||
+ curbuf->b_p_ro = TRUE;
|
||||
+
|
||||
set_crypt_method(curbuf, method);
|
||||
if (method > 0)
|
||||
(void)blowfish_self_test();
|
||||
***************
|
||||
*** 2977,2982 ****
|
||||
--- 2982,2989 ----
|
||||
*sizep -= CRYPT_MAGIC_LEN + salt_len + seed_len;
|
||||
mch_memmove(ptr, ptr + CRYPT_MAGIC_LEN + salt_len + seed_len,
|
||||
(size_t)*sizep);
|
||||
+ /* Restore the read-only flag. */
|
||||
+ curbuf->b_p_ro = b_p_ro;
|
||||
}
|
||||
}
|
||||
/* When starting to edit a new file which does not have encryption, clear
|
||||
*** ../vim-7.4.008/src/version.c 2013-08-25 17:01:36.000000000 +0200
|
||||
--- src/version.c 2013-08-25 17:44:30.000000000 +0200
|
||||
***************
|
||||
*** 729,730 ****
|
||||
--- 729,732 ----
|
||||
{ /* Add new patch number below this line */
|
||||
+ /**/
|
||||
+ 9,
|
||||
/**/
|
||||
|
||||
--
|
||||
I have a watch cat! Just break in and she'll watch.
|
||||
|
||||
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
|
||||
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
|
||||
\\\ an exciting new programming language -- http://www.Zimbu.org ///
|
||||
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
|
@ -1,79 +0,0 @@
|
||||
To: vim_dev@googlegroups.com
|
||||
Subject: Patch 7.4.010
|
||||
Fcc: outbox
|
||||
From: Bram Moolenaar <Bram@moolenaar.net>
|
||||
Mime-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
------------
|
||||
|
||||
Patch 7.4.010 (after 7.4.006)
|
||||
Problem: Crash with invalid argument to mkdir().
|
||||
Solution: Check for empty string. (lcd47)
|
||||
Files: src/eval.c
|
||||
|
||||
|
||||
*** ../vim-7.4.009/src/eval.c 2013-08-22 12:06:50.000000000 +0200
|
||||
--- src/eval.c 2013-08-30 15:47:47.000000000 +0200
|
||||
***************
|
||||
*** 14292,14309 ****
|
||||
return;
|
||||
|
||||
dir = get_tv_string_buf(&argvars[0], buf);
|
||||
! if (*gettail(dir) == NUL)
|
||||
! /* remove trailing slashes */
|
||||
! *gettail_sep(dir) = NUL;
|
||||
!
|
||||
! if (argvars[1].v_type != VAR_UNKNOWN)
|
||||
{
|
||||
! if (argvars[2].v_type != VAR_UNKNOWN)
|
||||
! prot = get_tv_number_chk(&argvars[2], NULL);
|
||||
! if (prot != -1 && STRCMP(get_tv_string(&argvars[1]), "p") == 0)
|
||||
! mkdir_recurse(dir, prot);
|
||||
}
|
||||
- rettv->vval.v_number = prot == -1 ? FAIL : vim_mkdir_emsg(dir, prot);
|
||||
}
|
||||
#endif
|
||||
|
||||
--- 14292,14314 ----
|
||||
return;
|
||||
|
||||
dir = get_tv_string_buf(&argvars[0], buf);
|
||||
! if (*dir == NUL)
|
||||
! rettv->vval.v_number = FAIL;
|
||||
! else
|
||||
{
|
||||
! if (*gettail(dir) == NUL)
|
||||
! /* remove trailing slashes */
|
||||
! *gettail_sep(dir) = NUL;
|
||||
!
|
||||
! if (argvars[1].v_type != VAR_UNKNOWN)
|
||||
! {
|
||||
! if (argvars[2].v_type != VAR_UNKNOWN)
|
||||
! prot = get_tv_number_chk(&argvars[2], NULL);
|
||||
! if (prot != -1 && STRCMP(get_tv_string(&argvars[1]), "p") == 0)
|
||||
! mkdir_recurse(dir, prot);
|
||||
! }
|
||||
! rettv->vval.v_number = prot == -1 ? FAIL : vim_mkdir_emsg(dir, prot);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
*** ../vim-7.4.009/src/version.c 2013-08-25 17:46:05.000000000 +0200
|
||||
--- src/version.c 2013-08-30 15:48:37.000000000 +0200
|
||||
***************
|
||||
*** 729,730 ****
|
||||
--- 729,732 ----
|
||||
{ /* Add new patch number below this line */
|
||||
+ /**/
|
||||
+ 10,
|
||||
/**/
|
||||
|
||||
--
|
||||
I wish there was a knob on the TV to turn up the intelligence.
|
||||
There's a knob called "brightness", but it doesn't seem to work.
|
||||
|
||||
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
|
||||
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
|
||||
\\\ an exciting new programming language -- http://www.Zimbu.org ///
|
||||
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
|
@ -1,100 +0,0 @@
|
||||
To: vim_dev@googlegroups.com
|
||||
Subject: Patch 7.4.011
|
||||
Fcc: outbox
|
||||
From: Bram Moolenaar <Bram@moolenaar.net>
|
||||
Mime-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
------------
|
||||
|
||||
Patch 7.4.011
|
||||
Problem: Cannot find out if "acl" and "xpm" features are supported.
|
||||
Solution: Add "acl" and "xpm" to the list of features. (Ken Takata)
|
||||
Files: src/eval.c, src/version.c
|
||||
|
||||
|
||||
*** ../vim-7.4.010/src/eval.c 2013-08-30 16:00:04.000000000 +0200
|
||||
--- src/eval.c 2013-08-30 16:34:12.000000000 +0200
|
||||
***************
|
||||
*** 12135,12140 ****
|
||||
--- 12135,12143 ----
|
||||
#ifndef CASE_INSENSITIVE_FILENAME
|
||||
"fname_case",
|
||||
#endif
|
||||
+ #ifdef HAVE_ACL
|
||||
+ "acl",
|
||||
+ #endif
|
||||
#ifdef FEAT_ARABIC
|
||||
"arabic",
|
||||
#endif
|
||||
***************
|
||||
*** 12538,12544 ****
|
||||
"xfontset",
|
||||
#endif
|
||||
#ifdef FEAT_XPM_W32
|
||||
! "xpm_w32",
|
||||
#endif
|
||||
#ifdef USE_XSMP
|
||||
"xsmp",
|
||||
--- 12541,12552 ----
|
||||
"xfontset",
|
||||
#endif
|
||||
#ifdef FEAT_XPM_W32
|
||||
! "xpm",
|
||||
! "xpm_w32", /* for backward compatibility */
|
||||
! #else
|
||||
! # if defined(HAVE_XPM)
|
||||
! "xpm",
|
||||
! # endif
|
||||
#endif
|
||||
#ifdef USE_XSMP
|
||||
"xsmp",
|
||||
*** ../vim-7.4.010/src/version.c 2013-08-30 16:00:04.000000000 +0200
|
||||
--- src/version.c 2013-08-30 16:34:37.000000000 +0200
|
||||
***************
|
||||
*** 60,65 ****
|
||||
--- 60,70 ----
|
||||
|
||||
static char *(features[]) =
|
||||
{
|
||||
+ #ifdef HAVE_ACL
|
||||
+ "+acl",
|
||||
+ #else
|
||||
+ "-acl",
|
||||
+ #endif
|
||||
#ifdef AMIGA /* only for Amiga systems */
|
||||
# ifdef FEAT_ARP
|
||||
"+ARP",
|
||||
***************
|
||||
*** 721,726 ****
|
||||
--- 726,737 ----
|
||||
# else
|
||||
"-xpm_w32",
|
||||
# endif
|
||||
+ #else
|
||||
+ # ifdef HAVE_XPM
|
||||
+ "+xpm",
|
||||
+ # else
|
||||
+ "-xpm",
|
||||
+ # endif
|
||||
#endif
|
||||
NULL
|
||||
};
|
||||
*** ../vim-7.4.010/src/version.c 2013-08-30 16:00:04.000000000 +0200
|
||||
--- src/version.c 2013-08-30 16:34:37.000000000 +0200
|
||||
***************
|
||||
*** 729,730 ****
|
||||
--- 740,743 ----
|
||||
{ /* Add new patch number below this line */
|
||||
+ /**/
|
||||
+ 11,
|
||||
/**/
|
||||
|
||||
--
|
||||
hundred-and-one symptoms of being an internet addict:
|
||||
141. You'd rather go to http://www.weather.com/ than look out your window.
|
||||
|
||||
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
|
||||
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
|
||||
\\\ an exciting new programming language -- http://www.Zimbu.org ///
|
||||
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
|
@ -1,202 +0,0 @@
|
||||
To: vim_dev@googlegroups.com
|
||||
Subject: Patch 7.4.012
|
||||
Fcc: outbox
|
||||
From: Bram Moolenaar <Bram@moolenaar.net>
|
||||
Mime-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
------------
|
||||
|
||||
Patch 7.4.012
|
||||
Problem: MS-Windows: resolving shortcut does not work properly with
|
||||
multi-byte characters.
|
||||
Solution: Use wide system functions. (Ken Takata)
|
||||
Files: src/os_mswin.c
|
||||
|
||||
|
||||
*** ../vim-7.4.011/src/os_mswin.c 2013-06-16 16:41:11.000000000 +0200
|
||||
--- src/os_mswin.c 2013-08-30 16:43:23.000000000 +0200
|
||||
***************
|
||||
*** 1761,1769 ****
|
||||
IPersistFile *ppf = NULL;
|
||||
OLECHAR wsz[MAX_PATH];
|
||||
WIN32_FIND_DATA ffd; // we get those free of charge
|
||||
! TCHAR buf[MAX_PATH]; // could have simply reused 'wsz'...
|
||||
char_u *rfname = NULL;
|
||||
int len;
|
||||
|
||||
/* Check if the file name ends in ".lnk". Avoid calling
|
||||
* CoCreateInstance(), it's quite slow. */
|
||||
--- 1761,1773 ----
|
||||
IPersistFile *ppf = NULL;
|
||||
OLECHAR wsz[MAX_PATH];
|
||||
WIN32_FIND_DATA ffd; // we get those free of charge
|
||||
! CHAR buf[MAX_PATH]; // could have simply reused 'wsz'...
|
||||
char_u *rfname = NULL;
|
||||
int len;
|
||||
+ # ifdef FEAT_MBYTE
|
||||
+ IShellLinkW *pslw = NULL;
|
||||
+ WIN32_FIND_DATAW ffdw; // we get those free of charge
|
||||
+ # endif
|
||||
|
||||
/* Check if the file name ends in ".lnk". Avoid calling
|
||||
* CoCreateInstance(), it's quite slow. */
|
||||
***************
|
||||
*** 1775,1792 ****
|
||||
|
||||
CoInitialize(NULL);
|
||||
|
||||
// create a link manager object and request its interface
|
||||
hr = CoCreateInstance(
|
||||
&CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER,
|
||||
&IID_IShellLink, (void**)&psl);
|
||||
if (hr != S_OK)
|
||||
! goto shortcut_error;
|
||||
|
||||
// Get a pointer to the IPersistFile interface.
|
||||
hr = psl->lpVtbl->QueryInterface(
|
||||
psl, &IID_IPersistFile, (void**)&ppf);
|
||||
if (hr != S_OK)
|
||||
! goto shortcut_error;
|
||||
|
||||
// full path string must be in Unicode.
|
||||
MultiByteToWideChar(CP_ACP, 0, fname, -1, wsz, MAX_PATH);
|
||||
--- 1779,1840 ----
|
||||
|
||||
CoInitialize(NULL);
|
||||
|
||||
+ # ifdef FEAT_MBYTE
|
||||
+ if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
|
||||
+ {
|
||||
+ // create a link manager object and request its interface
|
||||
+ hr = CoCreateInstance(
|
||||
+ &CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER,
|
||||
+ &IID_IShellLinkW, (void**)&pslw);
|
||||
+ if (hr == S_OK)
|
||||
+ {
|
||||
+ WCHAR *p = enc_to_utf16(fname, NULL);
|
||||
+
|
||||
+ if (p != NULL)
|
||||
+ {
|
||||
+ // Get a pointer to the IPersistFile interface.
|
||||
+ hr = pslw->lpVtbl->QueryInterface(
|
||||
+ pslw, &IID_IPersistFile, (void**)&ppf);
|
||||
+ if (hr != S_OK)
|
||||
+ goto shortcut_errorw;
|
||||
+
|
||||
+ // "load" the name and resolve the link
|
||||
+ hr = ppf->lpVtbl->Load(ppf, p, STGM_READ);
|
||||
+ if (hr != S_OK)
|
||||
+ goto shortcut_errorw;
|
||||
+ # if 0 // This makes Vim wait a long time if the target does not exist.
|
||||
+ hr = pslw->lpVtbl->Resolve(pslw, NULL, SLR_NO_UI);
|
||||
+ if (hr != S_OK)
|
||||
+ goto shortcut_errorw;
|
||||
+ # endif
|
||||
+
|
||||
+ // Get the path to the link target.
|
||||
+ ZeroMemory(wsz, MAX_PATH * sizeof(WCHAR));
|
||||
+ hr = pslw->lpVtbl->GetPath(pslw, wsz, MAX_PATH, &ffdw, 0);
|
||||
+ if (hr == S_OK && wsz[0] != NUL)
|
||||
+ rfname = utf16_to_enc(wsz, NULL);
|
||||
+
|
||||
+ shortcut_errorw:
|
||||
+ vim_free(p);
|
||||
+ if (hr == S_OK)
|
||||
+ goto shortcut_end;
|
||||
+ }
|
||||
+ }
|
||||
+ /* Retry with non-wide function (for Windows 98). */
|
||||
+ }
|
||||
+ # endif
|
||||
// create a link manager object and request its interface
|
||||
hr = CoCreateInstance(
|
||||
&CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER,
|
||||
&IID_IShellLink, (void**)&psl);
|
||||
if (hr != S_OK)
|
||||
! goto shortcut_end;
|
||||
|
||||
// Get a pointer to the IPersistFile interface.
|
||||
hr = psl->lpVtbl->QueryInterface(
|
||||
psl, &IID_IPersistFile, (void**)&ppf);
|
||||
if (hr != S_OK)
|
||||
! goto shortcut_end;
|
||||
|
||||
// full path string must be in Unicode.
|
||||
MultiByteToWideChar(CP_ACP, 0, fname, -1, wsz, MAX_PATH);
|
||||
***************
|
||||
*** 1794,1805 ****
|
||||
// "load" the name and resolve the link
|
||||
hr = ppf->lpVtbl->Load(ppf, wsz, STGM_READ);
|
||||
if (hr != S_OK)
|
||||
! goto shortcut_error;
|
||||
! #if 0 // This makes Vim wait a long time if the target doesn't exist.
|
||||
hr = psl->lpVtbl->Resolve(psl, NULL, SLR_NO_UI);
|
||||
if (hr != S_OK)
|
||||
! goto shortcut_error;
|
||||
! #endif
|
||||
|
||||
// Get the path to the link target.
|
||||
ZeroMemory(buf, MAX_PATH);
|
||||
--- 1842,1853 ----
|
||||
// "load" the name and resolve the link
|
||||
hr = ppf->lpVtbl->Load(ppf, wsz, STGM_READ);
|
||||
if (hr != S_OK)
|
||||
! goto shortcut_end;
|
||||
! # if 0 // This makes Vim wait a long time if the target doesn't exist.
|
||||
hr = psl->lpVtbl->Resolve(psl, NULL, SLR_NO_UI);
|
||||
if (hr != S_OK)
|
||||
! goto shortcut_end;
|
||||
! # endif
|
||||
|
||||
// Get the path to the link target.
|
||||
ZeroMemory(buf, MAX_PATH);
|
||||
***************
|
||||
*** 1807,1818 ****
|
||||
if (hr == S_OK && buf[0] != NUL)
|
||||
rfname = vim_strsave(buf);
|
||||
|
||||
! shortcut_error:
|
||||
// Release all interface pointers (both belong to the same object)
|
||||
if (ppf != NULL)
|
||||
ppf->lpVtbl->Release(ppf);
|
||||
if (psl != NULL)
|
||||
psl->lpVtbl->Release(psl);
|
||||
|
||||
CoUninitialize();
|
||||
return rfname;
|
||||
--- 1855,1870 ----
|
||||
if (hr == S_OK && buf[0] != NUL)
|
||||
rfname = vim_strsave(buf);
|
||||
|
||||
! shortcut_end:
|
||||
// Release all interface pointers (both belong to the same object)
|
||||
if (ppf != NULL)
|
||||
ppf->lpVtbl->Release(ppf);
|
||||
if (psl != NULL)
|
||||
psl->lpVtbl->Release(psl);
|
||||
+ # ifdef FEAT_MBYTE
|
||||
+ if (pslw != NULL)
|
||||
+ pslw->lpVtbl->Release(pslw);
|
||||
+ # endif
|
||||
|
||||
CoUninitialize();
|
||||
return rfname;
|
||||
*** ../vim-7.4.011/src/version.c 2013-08-30 16:35:41.000000000 +0200
|
||||
--- src/version.c 2013-08-30 16:39:40.000000000 +0200
|
||||
***************
|
||||
*** 740,741 ****
|
||||
--- 740,743 ----
|
||||
{ /* Add new patch number below this line */
|
||||
+ /**/
|
||||
+ 12,
|
||||
/**/
|
||||
|
||||
--
|
||||
hundred-and-one symptoms of being an internet addict:
|
||||
142. You dream about creating the world's greatest web site.
|
||||
|
||||
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
|
||||
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
|
||||
\\\ an exciting new programming language -- http://www.Zimbu.org ///
|
||||
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
|
@ -1,99 +0,0 @@
|
||||
To: vim_dev@googlegroups.com
|
||||
Subject: Patch 7.4.013
|
||||
Fcc: outbox
|
||||
From: Bram Moolenaar <Bram@moolenaar.net>
|
||||
Mime-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
------------
|
||||
|
||||
Patch 7.4.013
|
||||
Problem: File name buffer too small for utf-8.
|
||||
Solution: Use character count instead of byte count. (Ken Takata)
|
||||
Files: src/os_mswin.c
|
||||
|
||||
|
||||
*** ../vim-7.4.012/src/os_mswin.c 2013-08-30 16:44:15.000000000 +0200
|
||||
--- src/os_mswin.c 2013-08-30 16:47:54.000000000 +0200
|
||||
***************
|
||||
*** 456,462 ****
|
||||
--- 456,469 ----
|
||||
int
|
||||
mch_isFullName(char_u *fname)
|
||||
{
|
||||
+ #ifdef FEAT_MBYTE
|
||||
+ /* WinNT and later can use _MAX_PATH wide characters for a pathname, which
|
||||
+ * means that the maximum pathname is _MAX_PATH * 3 bytes when 'enc' is
|
||||
+ * UTF-8. */
|
||||
+ char szName[_MAX_PATH * 3 + 1];
|
||||
+ #else
|
||||
char szName[_MAX_PATH + 1];
|
||||
+ #endif
|
||||
|
||||
/* A name like "d:/foo" and "//server/share" is absolute */
|
||||
if ((fname[0] && fname[1] == ':' && (fname[2] == '/' || fname[2] == '\\'))
|
||||
***************
|
||||
*** 464,470 ****
|
||||
return TRUE;
|
||||
|
||||
/* A name that can't be made absolute probably isn't absolute. */
|
||||
! if (mch_FullName(fname, szName, _MAX_PATH, FALSE) == FAIL)
|
||||
return FALSE;
|
||||
|
||||
return pathcmp(fname, szName, -1) == 0;
|
||||
--- 471,477 ----
|
||||
return TRUE;
|
||||
|
||||
/* A name that can't be made absolute probably isn't absolute. */
|
||||
! if (mch_FullName(fname, szName, sizeof(szName) - 1, FALSE) == FAIL)
|
||||
return FALSE;
|
||||
|
||||
return pathcmp(fname, szName, -1) == 0;
|
||||
***************
|
||||
*** 498,507 ****
|
||||
int
|
||||
vim_stat(const char *name, struct stat *stp)
|
||||
{
|
||||
char buf[_MAX_PATH + 1];
|
||||
char *p;
|
||||
|
||||
! vim_strncpy((char_u *)buf, (char_u *)name, _MAX_PATH);
|
||||
p = buf + strlen(buf);
|
||||
if (p > buf)
|
||||
mb_ptr_back(buf, p);
|
||||
--- 505,521 ----
|
||||
int
|
||||
vim_stat(const char *name, struct stat *stp)
|
||||
{
|
||||
+ #ifdef FEAT_MBYTE
|
||||
+ /* WinNT and later can use _MAX_PATH wide characters for a pathname, which
|
||||
+ * means that the maximum pathname is _MAX_PATH * 3 bytes when 'enc' is
|
||||
+ * UTF-8. */
|
||||
+ char buf[_MAX_PATH * 3 + 1];
|
||||
+ #else
|
||||
char buf[_MAX_PATH + 1];
|
||||
+ #endif
|
||||
char *p;
|
||||
|
||||
! vim_strncpy((char_u *)buf, (char_u *)name, sizeof(buf) - 1);
|
||||
p = buf + strlen(buf);
|
||||
if (p > buf)
|
||||
mb_ptr_back(buf, p);
|
||||
*** ../vim-7.4.012/src/version.c 2013-08-30 16:44:15.000000000 +0200
|
||||
--- src/version.c 2013-08-30 16:47:36.000000000 +0200
|
||||
***************
|
||||
*** 740,741 ****
|
||||
--- 740,743 ----
|
||||
{ /* Add new patch number below this line */
|
||||
+ /**/
|
||||
+ 13,
|
||||
/**/
|
||||
|
||||
--
|
||||
hundred-and-one symptoms of being an internet addict:
|
||||
143. You dream in pallettes of 216 websafe colors.
|
||||
|
||||
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
|
||||
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
|
||||
\\\ an exciting new programming language -- http://www.Zimbu.org ///
|
||||
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
|
@ -1,102 +0,0 @@
|
||||
To: vim_dev@googlegroups.com
|
||||
Subject: Patch 7.4.014
|
||||
Fcc: outbox
|
||||
From: Bram Moolenaar <Bram@moolenaar.net>
|
||||
Mime-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
------------
|
||||
|
||||
Patch 7.4.014
|
||||
Problem: MS-Windows: check for writing to device does not work.
|
||||
Solution: Fix #ifdefs. (Ken Takata)
|
||||
Files: src/fileio.c
|
||||
|
||||
|
||||
*** ../vim-7.4.013/src/fileio.c 2013-08-25 17:46:05.000000000 +0200
|
||||
--- src/fileio.c 2013-08-30 16:56:46.000000000 +0200
|
||||
***************
|
||||
*** 428,440 ****
|
||||
}
|
||||
}
|
||||
|
||||
- #ifdef UNIX
|
||||
- /*
|
||||
- * On Unix it is possible to read a directory, so we have to
|
||||
- * check for it before the mch_open().
|
||||
- */
|
||||
if (!read_stdin && !read_buffer)
|
||||
{
|
||||
perm = mch_getperm(fname);
|
||||
if (perm >= 0 && !S_ISREG(perm) /* not a regular file ... */
|
||||
# ifdef S_ISFIFO
|
||||
--- 428,440 ----
|
||||
}
|
||||
}
|
||||
|
||||
if (!read_stdin && !read_buffer)
|
||||
{
|
||||
+ #ifdef UNIX
|
||||
+ /*
|
||||
+ * On Unix it is possible to read a directory, so we have to
|
||||
+ * check for it before the mch_open().
|
||||
+ */
|
||||
perm = mch_getperm(fname);
|
||||
if (perm >= 0 && !S_ISREG(perm) /* not a regular file ... */
|
||||
# ifdef S_ISFIFO
|
||||
***************
|
||||
*** 457,464 ****
|
||||
msg_scroll = msg_save;
|
||||
return FAIL;
|
||||
}
|
||||
!
|
||||
! # if defined(MSDOS) || defined(MSWIN) || defined(OS2)
|
||||
/*
|
||||
* MS-Windows allows opening a device, but we will probably get stuck
|
||||
* trying to read it.
|
||||
--- 457,464 ----
|
||||
msg_scroll = msg_save;
|
||||
return FAIL;
|
||||
}
|
||||
! #endif
|
||||
! #if defined(MSDOS) || defined(MSWIN) || defined(OS2)
|
||||
/*
|
||||
* MS-Windows allows opening a device, but we will probably get stuck
|
||||
* trying to read it.
|
||||
***************
|
||||
*** 470,478 ****
|
||||
msg_scroll = msg_save;
|
||||
return FAIL;
|
||||
}
|
||||
- # endif
|
||||
- }
|
||||
#endif
|
||||
|
||||
/* Set default or forced 'fileformat' and 'binary'. */
|
||||
set_file_options(set_options, eap);
|
||||
--- 470,477 ----
|
||||
msg_scroll = msg_save;
|
||||
return FAIL;
|
||||
}
|
||||
#endif
|
||||
+ }
|
||||
|
||||
/* Set default or forced 'fileformat' and 'binary'. */
|
||||
set_file_options(set_options, eap);
|
||||
*** ../vim-7.4.013/src/version.c 2013-08-30 16:51:15.000000000 +0200
|
||||
--- src/version.c 2013-08-30 16:54:33.000000000 +0200
|
||||
***************
|
||||
*** 740,741 ****
|
||||
--- 740,743 ----
|
||||
{ /* Add new patch number below this line */
|
||||
+ /**/
|
||||
+ 14,
|
||||
/**/
|
||||
|
||||
--
|
||||
Drink wet cement and get really stoned.
|
||||
|
||||
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
|
||||
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
|
||||
\\\ an exciting new programming language -- http://www.Zimbu.org ///
|
||||
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
|
@ -1,106 +0,0 @@
|
||||
To: vim_dev@googlegroups.com
|
||||
Subject: Patch 7.4.015
|
||||
Fcc: outbox
|
||||
From: Bram Moolenaar <Bram@moolenaar.net>
|
||||
Mime-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
------------
|
||||
|
||||
Patch 7.4.015
|
||||
Problem: MS-Windows: Detecting node type does not work for multi-byte
|
||||
characters.
|
||||
Solution: Use wide character function when needed. (Ken Takata)
|
||||
Files: src/os_win32.c
|
||||
|
||||
|
||||
*** ../vim-7.4.014/src/os_win32.c 2013-08-10 12:39:12.000000000 +0200
|
||||
--- src/os_win32.c 2013-08-30 17:09:47.000000000 +0200
|
||||
***************
|
||||
*** 3107,3112 ****
|
||||
--- 3107,3115 ----
|
||||
{
|
||||
HANDLE hFile;
|
||||
int type;
|
||||
+ #ifdef FEAT_MBYTE
|
||||
+ WCHAR *wn = NULL;
|
||||
+ #endif
|
||||
|
||||
/* We can't open a file with a name "\\.\con" or "\\.\prn" and trying to
|
||||
* read from it later will cause Vim to hang. Thus return NODE_WRITABLE
|
||||
***************
|
||||
*** 3114,3127 ****
|
||||
if (STRNCMP(name, "\\\\.\\", 4) == 0)
|
||||
return NODE_WRITABLE;
|
||||
|
||||
! hFile = CreateFile(name, /* file name */
|
||||
! GENERIC_WRITE, /* access mode */
|
||||
! 0, /* share mode */
|
||||
! NULL, /* security descriptor */
|
||||
! OPEN_EXISTING, /* creation disposition */
|
||||
! 0, /* file attributes */
|
||||
! NULL); /* handle to template file */
|
||||
|
||||
if (hFile == INVALID_HANDLE_VALUE)
|
||||
return NODE_NORMAL;
|
||||
|
||||
--- 3117,3157 ----
|
||||
if (STRNCMP(name, "\\\\.\\", 4) == 0)
|
||||
return NODE_WRITABLE;
|
||||
|
||||
! #ifdef FEAT_MBYTE
|
||||
! if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
|
||||
! {
|
||||
! wn = enc_to_utf16(name, NULL);
|
||||
! if (wn != NULL)
|
||||
! {
|
||||
! hFile = CreateFileW(wn, /* file name */
|
||||
! GENERIC_WRITE, /* access mode */
|
||||
! 0, /* share mode */
|
||||
! NULL, /* security descriptor */
|
||||
! OPEN_EXISTING, /* creation disposition */
|
||||
! 0, /* file attributes */
|
||||
! NULL); /* handle to template file */
|
||||
! if (hFile == INVALID_HANDLE_VALUE
|
||||
! && GetLastError() == ERROR_CALL_NOT_IMPLEMENTED)
|
||||
! {
|
||||
! /* Retry with non-wide function (for Windows 98). */
|
||||
! vim_free(wn);
|
||||
! wn = NULL;
|
||||
! }
|
||||
! }
|
||||
! }
|
||||
! if (wn == NULL)
|
||||
! #endif
|
||||
! hFile = CreateFile(name, /* file name */
|
||||
! GENERIC_WRITE, /* access mode */
|
||||
! 0, /* share mode */
|
||||
! NULL, /* security descriptor */
|
||||
! OPEN_EXISTING, /* creation disposition */
|
||||
! 0, /* file attributes */
|
||||
! NULL); /* handle to template file */
|
||||
|
||||
+ #ifdef FEAT_MBYTE
|
||||
+ vim_free(wn);
|
||||
+ #endif
|
||||
if (hFile == INVALID_HANDLE_VALUE)
|
||||
return NODE_NORMAL;
|
||||
|
||||
*** ../vim-7.4.014/src/version.c 2013-08-30 17:06:56.000000000 +0200
|
||||
--- src/version.c 2013-08-30 17:09:35.000000000 +0200
|
||||
***************
|
||||
*** 740,741 ****
|
||||
--- 740,743 ----
|
||||
{ /* Add new patch number below this line */
|
||||
+ /**/
|
||||
+ 15,
|
||||
/**/
|
||||
|
||||
--
|
||||
hundred-and-one symptoms of being an internet addict:
|
||||
144. You eagerly await the update of the "Cool Site of the Day."
|
||||
|
||||
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
|
||||
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
|
||||
\\\ an exciting new programming language -- http://www.Zimbu.org ///
|
||||
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
|
@ -1,221 +0,0 @@
|
||||
To: vim_dev@googlegroups.com
|
||||
Subject: Patch 7.4.016
|
||||
Fcc: outbox
|
||||
From: Bram Moolenaar <Bram@moolenaar.net>
|
||||
Mime-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
------------
|
||||
|
||||
Patch 7.4.016
|
||||
Problem: MS-Windows: File name completion doesn't work properly with
|
||||
Chinese characters. (Yue Wu)
|
||||
Solution: Add fname_casew(). (Ken Takata)
|
||||
Files: src/os_win32.c
|
||||
|
||||
|
||||
*** ../vim-7.4.015/src/os_win32.c 2013-08-30 17:11:29.000000000 +0200
|
||||
--- src/os_win32.c 2013-08-30 17:28:30.000000000 +0200
|
||||
***************
|
||||
*** 2500,2508 ****
|
||||
--- 2500,2624 ----
|
||||
}
|
||||
|
||||
|
||||
+ #ifdef FEAT_MBYTE
|
||||
+ /*
|
||||
+ * fname_casew(): Wide version of fname_case(). Set the case of the file name,
|
||||
+ * if it already exists. When "len" is > 0, also expand short to long
|
||||
+ * filenames.
|
||||
+ * Return FAIL if wide functions are not available, OK otherwise.
|
||||
+ * NOTE: much of this is identical to fname_case(), keep in sync!
|
||||
+ */
|
||||
+ static int
|
||||
+ fname_casew(
|
||||
+ WCHAR *name,
|
||||
+ int len)
|
||||
+ {
|
||||
+ WCHAR szTrueName[_MAX_PATH + 2];
|
||||
+ WCHAR szTrueNameTemp[_MAX_PATH + 2];
|
||||
+ WCHAR *ptrue, *ptruePrev;
|
||||
+ WCHAR *porig, *porigPrev;
|
||||
+ int flen;
|
||||
+ WIN32_FIND_DATAW fb;
|
||||
+ HANDLE hFind;
|
||||
+ int c;
|
||||
+ int slen;
|
||||
+
|
||||
+ flen = (int)wcslen(name);
|
||||
+ if (flen > _MAX_PATH)
|
||||
+ return OK;
|
||||
+
|
||||
+ /* slash_adjust(name) not needed, already adjusted by fname_case(). */
|
||||
+
|
||||
+ /* Build the new name in szTrueName[] one component at a time. */
|
||||
+ porig = name;
|
||||
+ ptrue = szTrueName;
|
||||
+
|
||||
+ if (iswalpha(porig[0]) && porig[1] == L':')
|
||||
+ {
|
||||
+ /* copy leading drive letter */
|
||||
+ *ptrue++ = *porig++;
|
||||
+ *ptrue++ = *porig++;
|
||||
+ *ptrue = NUL; /* in case nothing follows */
|
||||
+ }
|
||||
+
|
||||
+ while (*porig != NUL)
|
||||
+ {
|
||||
+ /* copy \ characters */
|
||||
+ while (*porig == psepc)
|
||||
+ *ptrue++ = *porig++;
|
||||
+
|
||||
+ ptruePrev = ptrue;
|
||||
+ porigPrev = porig;
|
||||
+ while (*porig != NUL && *porig != psepc)
|
||||
+ {
|
||||
+ *ptrue++ = *porig++;
|
||||
+ }
|
||||
+ *ptrue = NUL;
|
||||
+
|
||||
+ /* To avoid a slow failure append "\*" when searching a directory,
|
||||
+ * server or network share. */
|
||||
+ wcscpy(szTrueNameTemp, szTrueName);
|
||||
+ slen = (int)wcslen(szTrueNameTemp);
|
||||
+ if (*porig == psepc && slen + 2 < _MAX_PATH)
|
||||
+ wcscpy(szTrueNameTemp + slen, L"\\*");
|
||||
+
|
||||
+ /* Skip "", "." and "..". */
|
||||
+ if (ptrue > ptruePrev
|
||||
+ && (ptruePrev[0] != L'.'
|
||||
+ || (ptruePrev[1] != NUL
|
||||
+ && (ptruePrev[1] != L'.' || ptruePrev[2] != NUL)))
|
||||
+ && (hFind = FindFirstFileW(szTrueNameTemp, &fb))
|
||||
+ != INVALID_HANDLE_VALUE)
|
||||
+ {
|
||||
+ c = *porig;
|
||||
+ *porig = NUL;
|
||||
+
|
||||
+ /* Only use the match when it's the same name (ignoring case) or
|
||||
+ * expansion is allowed and there is a match with the short name
|
||||
+ * and there is enough room. */
|
||||
+ if (_wcsicoll(porigPrev, fb.cFileName) == 0
|
||||
+ || (len > 0
|
||||
+ && (_wcsicoll(porigPrev, fb.cAlternateFileName) == 0
|
||||
+ && (int)(ptruePrev - szTrueName)
|
||||
+ + (int)wcslen(fb.cFileName) < len)))
|
||||
+ {
|
||||
+ wcscpy(ptruePrev, fb.cFileName);
|
||||
+
|
||||
+ /* Look for exact match and prefer it if found. Must be a
|
||||
+ * long name, otherwise there would be only one match. */
|
||||
+ while (FindNextFileW(hFind, &fb))
|
||||
+ {
|
||||
+ if (*fb.cAlternateFileName != NUL
|
||||
+ && (wcscoll(porigPrev, fb.cFileName) == 0
|
||||
+ || (len > 0
|
||||
+ && (_wcsicoll(porigPrev,
|
||||
+ fb.cAlternateFileName) == 0
|
||||
+ && (int)(ptruePrev - szTrueName)
|
||||
+ + (int)wcslen(fb.cFileName) < len))))
|
||||
+ {
|
||||
+ wcscpy(ptruePrev, fb.cFileName);
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ FindClose(hFind);
|
||||
+ *porig = c;
|
||||
+ ptrue = ptruePrev + wcslen(ptruePrev);
|
||||
+ }
|
||||
+ else if (hFind == INVALID_HANDLE_VALUE
|
||||
+ && GetLastError() == ERROR_CALL_NOT_IMPLEMENTED)
|
||||
+ return FAIL;
|
||||
+ }
|
||||
+
|
||||
+ wcscpy(name, szTrueName);
|
||||
+ return OK;
|
||||
+ }
|
||||
+ #endif
|
||||
+
|
||||
/*
|
||||
* fname_case(): Set the case of the file name, if it already exists.
|
||||
* When "len" is > 0, also expand short to long filenames.
|
||||
+ * NOTE: much of this is identical to fname_casew(), keep in sync!
|
||||
*/
|
||||
void
|
||||
fname_case(
|
||||
***************
|
||||
*** 2520,2530 ****
|
||||
int slen;
|
||||
|
||||
flen = (int)STRLEN(name);
|
||||
! if (flen == 0 || flen > _MAX_PATH)
|
||||
return;
|
||||
|
||||
slash_adjust(name);
|
||||
|
||||
/* Build the new name in szTrueName[] one component at a time. */
|
||||
porig = name;
|
||||
ptrue = szTrueName;
|
||||
--- 2636,2679 ----
|
||||
int slen;
|
||||
|
||||
flen = (int)STRLEN(name);
|
||||
! if (flen == 0)
|
||||
return;
|
||||
|
||||
slash_adjust(name);
|
||||
|
||||
+ #ifdef FEAT_MBYTE
|
||||
+ if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
|
||||
+ {
|
||||
+ WCHAR *p = enc_to_utf16(name, NULL);
|
||||
+
|
||||
+ if (p != NULL)
|
||||
+ {
|
||||
+ char_u *q;
|
||||
+ WCHAR buf[_MAX_PATH + 2];
|
||||
+
|
||||
+ wcscpy(buf, p);
|
||||
+ vim_free(p);
|
||||
+
|
||||
+ if (fname_casew(buf, (len > 0) ? _MAX_PATH : 0) == OK)
|
||||
+ {
|
||||
+ q = utf16_to_enc(buf, NULL);
|
||||
+ if (q != NULL)
|
||||
+ {
|
||||
+ vim_strncpy(name, q, (len > 0) ? len - 1 : flen);
|
||||
+ vim_free(q);
|
||||
+ return;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ /* Retry with non-wide function (for Windows 98). */
|
||||
+ }
|
||||
+ #endif
|
||||
+
|
||||
+ /* If 'enc' is utf-8, flen can be larger than _MAX_PATH.
|
||||
+ * So we should check this after calling wide function. */
|
||||
+ if (flen > _MAX_PATH)
|
||||
+ return;
|
||||
+
|
||||
/* Build the new name in szTrueName[] one component at a time. */
|
||||
porig = name;
|
||||
ptrue = szTrueName;
|
||||
*** ../vim-7.4.015/src/version.c 2013-08-30 17:11:29.000000000 +0200
|
||||
--- src/version.c 2013-08-30 17:15:06.000000000 +0200
|
||||
***************
|
||||
*** 740,741 ****
|
||||
--- 740,743 ----
|
||||
{ /* Add new patch number below this line */
|
||||
+ /**/
|
||||
+ 16,
|
||||
/**/
|
||||
|
||||
--
|
||||
Fingers not found - Pound head on keyboard to continue.
|
||||
|
||||
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
|
||||
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
|
||||
\\\ an exciting new programming language -- http://www.Zimbu.org ///
|
||||
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
|
@ -1,78 +0,0 @@
|
||||
To: vim_dev@googlegroups.com
|
||||
Subject: Patch 7.4.017
|
||||
Fcc: outbox
|
||||
From: Bram Moolenaar <Bram@moolenaar.net>
|
||||
Mime-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
------------
|
||||
|
||||
Patch 7.4.017
|
||||
Problem: ":help !!" does not find the "!!" tag in the help file. (Ben
|
||||
Fritz)
|
||||
Solution: When reading the start of the tags file do parse lines that are
|
||||
not header lines.
|
||||
Files: src/tag.c
|
||||
|
||||
|
||||
*** ../vim-7.4.016/src/tag.c 2013-06-15 22:26:26.000000000 +0200
|
||||
--- src/tag.c 2013-09-05 12:03:38.000000000 +0200
|
||||
***************
|
||||
*** 1797,1809 ****
|
||||
*/
|
||||
if (state == TS_START)
|
||||
{
|
||||
! /* The header ends when the line sorts below "!_TAG_".
|
||||
! * There may be non-header items before the header though,
|
||||
! * e.g. "!" itself. When case is folded lower case letters
|
||||
! * sort before "_". */
|
||||
if (STRNCMP(lbuf, "!_TAG_", 6) <= 0
|
||||
|| (lbuf[0] == '!' && ASCII_ISLOWER(lbuf[1])))
|
||||
{
|
||||
/*
|
||||
* Read header line.
|
||||
*/
|
||||
--- 1797,1812 ----
|
||||
*/
|
||||
if (state == TS_START)
|
||||
{
|
||||
! /* The header ends when the line sorts below "!_TAG_". When
|
||||
! * case is folded lower case letters sort before "_". */
|
||||
if (STRNCMP(lbuf, "!_TAG_", 6) <= 0
|
||||
|| (lbuf[0] == '!' && ASCII_ISLOWER(lbuf[1])))
|
||||
{
|
||||
+ if (STRNCMP(lbuf, "!_TAG_", 6) != 0)
|
||||
+ /* Non-header item before the header, e.g. "!" itself.
|
||||
+ */
|
||||
+ goto parse_line;
|
||||
+
|
||||
/*
|
||||
* Read header line.
|
||||
*/
|
||||
***************
|
||||
*** 1898,1903 ****
|
||||
--- 1901,1907 ----
|
||||
#endif
|
||||
}
|
||||
|
||||
+ parse_line:
|
||||
/*
|
||||
* Figure out where the different strings are in this line.
|
||||
* For "normal" tags: Do a quick check if the tag matches.
|
||||
*** ../vim-7.4.016/src/version.c 2013-08-30 17:29:10.000000000 +0200
|
||||
--- src/version.c 2013-09-05 12:02:01.000000000 +0200
|
||||
***************
|
||||
*** 740,741 ****
|
||||
--- 740,743 ----
|
||||
{ /* Add new patch number below this line */
|
||||
+ /**/
|
||||
+ 17,
|
||||
/**/
|
||||
|
||||
--
|
||||
An error has occurred. Hit any user to continue.
|
||||
|
||||
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
|
||||
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
|
||||
\\\ an exciting new programming language -- http://www.Zimbu.org ///
|
||||
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
|
@ -1,45 +0,0 @@
|
||||
To: vim_dev@googlegroups.com
|
||||
Subject: Patch 7.4.018
|
||||
Fcc: outbox
|
||||
From: Bram Moolenaar <Bram@moolenaar.net>
|
||||
Mime-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
------------
|
||||
|
||||
Patch 7.4.018
|
||||
Problem: When completing item becomes unselected. (Shougo Matsu)
|
||||
Solution: Revert patch 7.3.1269.
|
||||
Files: src/edit.c
|
||||
|
||||
|
||||
*** ../vim-7.4.017/src/edit.c 2013-07-04 20:22:25.000000000 +0200
|
||||
--- src/edit.c 2013-09-05 12:39:53.000000000 +0200
|
||||
***************
|
||||
*** 3467,3473 ****
|
||||
}
|
||||
|
||||
compl_enter_selects = !compl_used_match;
|
||||
- compl_shown_match = compl_curr_match = compl_first_match;
|
||||
|
||||
/* Show the popup menu with a different set of matches. */
|
||||
ins_compl_show_pum();
|
||||
--- 3467,3472 ----
|
||||
*** ../vim-7.4.017/src/version.c 2013-09-05 12:06:26.000000000 +0200
|
||||
--- src/version.c 2013-09-05 12:40:34.000000000 +0200
|
||||
***************
|
||||
*** 740,741 ****
|
||||
--- 740,743 ----
|
||||
{ /* Add new patch number below this line */
|
||||
+ /**/
|
||||
+ 18,
|
||||
/**/
|
||||
|
||||
--
|
||||
hundred-and-one symptoms of being an internet addict:
|
||||
169. You hire a housekeeper for your home page.
|
||||
|
||||
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
|
||||
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
|
||||
\\\ an exciting new programming language -- http://www.Zimbu.org ///
|
||||
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
|
@ -1,61 +0,0 @@
|
||||
To: vim_dev@googlegroups.com
|
||||
Subject: Patch 7.4.019
|
||||
Fcc: outbox
|
||||
From: Bram Moolenaar <Bram@moolenaar.net>
|
||||
Mime-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
------------
|
||||
|
||||
Patch 7.4.019
|
||||
Problem: MS-Windows: File name completion doesn't work properly with
|
||||
Chinese characters. (Yue Wu)
|
||||
Solution: Take care of multi-byte characters when looking for the start of
|
||||
the file name. (Ken Takata)
|
||||
Files: src/edit.c
|
||||
|
||||
|
||||
*** ../vim-7.4.018/src/edit.c 2013-09-05 12:49:48.000000000 +0200
|
||||
--- src/edit.c 2013-09-05 13:45:27.000000000 +0200
|
||||
***************
|
||||
*** 5183,5190 ****
|
||||
}
|
||||
else if (ctrl_x_mode == CTRL_X_FILES)
|
||||
{
|
||||
! while (--startcol >= 0 && vim_isfilec(line[startcol]))
|
||||
! ;
|
||||
compl_col += ++startcol;
|
||||
compl_length = (int)curs_col - startcol;
|
||||
compl_pattern = addstar(line + compl_col, compl_length,
|
||||
--- 5183,5196 ----
|
||||
}
|
||||
else if (ctrl_x_mode == CTRL_X_FILES)
|
||||
{
|
||||
! char_u *p = line + startcol;
|
||||
!
|
||||
! /* Go back to just before the first filename character. */
|
||||
! mb_ptr_back(line, p);
|
||||
! while (vim_isfilec(PTR2CHAR(p)) && p >= line)
|
||||
! mb_ptr_back(line, p);
|
||||
! startcol = p - line;
|
||||
!
|
||||
compl_col += ++startcol;
|
||||
compl_length = (int)curs_col - startcol;
|
||||
compl_pattern = addstar(line + compl_col, compl_length,
|
||||
*** ../vim-7.4.018/src/version.c 2013-09-05 12:49:48.000000000 +0200
|
||||
--- src/version.c 2013-09-05 13:41:47.000000000 +0200
|
||||
***************
|
||||
*** 740,741 ****
|
||||
--- 740,743 ----
|
||||
{ /* Add new patch number below this line */
|
||||
+ /**/
|
||||
+ 19,
|
||||
/**/
|
||||
|
||||
--
|
||||
Very funny, Scotty. Now beam down my clothes.
|
||||
|
||||
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
|
||||
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
|
||||
\\\ an exciting new programming language -- http://www.Zimbu.org ///
|
||||
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
|
@ -1,82 +0,0 @@
|
||||
To: vim_dev@googlegroups.com
|
||||
Subject: Patch 7.4.020
|
||||
Fcc: outbox
|
||||
From: Bram Moolenaar <Bram@moolenaar.net>
|
||||
Mime-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
------------
|
||||
|
||||
Patch 7.4.020
|
||||
Problem: NFA engine matches too much with \@>. (John McGowan)
|
||||
Solution: When a whole pattern match is found stop searching.
|
||||
Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok
|
||||
|
||||
|
||||
*** ../vim-7.4.019/src/regexp_nfa.c 2013-08-25 17:01:36.000000000 +0200
|
||||
--- src/regexp_nfa.c 2013-09-05 15:59:44.000000000 +0200
|
||||
***************
|
||||
*** 5322,5328 ****
|
||||
log_subsexpr(m);
|
||||
#endif
|
||||
nfa_match = TRUE;
|
||||
! break;
|
||||
|
||||
case NFA_START_INVISIBLE:
|
||||
case NFA_START_INVISIBLE_FIRST:
|
||||
--- 5322,5331 ----
|
||||
log_subsexpr(m);
|
||||
#endif
|
||||
nfa_match = TRUE;
|
||||
! /* See comment above at "goto nextchar". */
|
||||
! if (nextlist->n == 0)
|
||||
! clen = 0;
|
||||
! goto nextchar;
|
||||
|
||||
case NFA_START_INVISIBLE:
|
||||
case NFA_START_INVISIBLE_FIRST:
|
||||
*** ../vim-7.4.019/src/testdir/test64.in 2013-08-14 13:31:03.000000000 +0200
|
||||
--- src/testdir/test64.in 2013-09-05 15:35:44.000000000 +0200
|
||||
***************
|
||||
*** 427,432 ****
|
||||
--- 427,433 ----
|
||||
:""""" \@>
|
||||
:call add(tl, [2, '\(a*\)\@>a', 'aaaa'])
|
||||
:call add(tl, [2, '\(a*\)\@>b', 'aaab', 'aaab', 'aaa'])
|
||||
+ :call add(tl, [2, '^\(.\{-}b\)\@>.', ' abcbd', ' abc', ' ab'])
|
||||
:" TODO: BT engine does not restore submatch after failure
|
||||
:call add(tl, [1, '\(a*\)\@>a\|a\+', 'aaaa', 'aaaa'])
|
||||
:"
|
||||
*** ../vim-7.4.019/src/testdir/test64.ok 2013-08-14 13:31:03.000000000 +0200
|
||||
--- src/testdir/test64.ok 2013-09-05 16:03:34.000000000 +0200
|
||||
***************
|
||||
*** 983,988 ****
|
||||
--- 983,991 ----
|
||||
OK 0 - \(a*\)\@>b
|
||||
OK 1 - \(a*\)\@>b
|
||||
OK 2 - \(a*\)\@>b
|
||||
+ OK 0 - ^\(.\{-}b\)\@>.
|
||||
+ OK 1 - ^\(.\{-}b\)\@>.
|
||||
+ OK 2 - ^\(.\{-}b\)\@>.
|
||||
OK 0 - \(a*\)\@>a\|a\+
|
||||
OK 2 - \(a*\)\@>a\|a\+
|
||||
OK 0 - \_[^8-9]\+
|
||||
*** ../vim-7.4.019/src/version.c 2013-09-05 13:50:49.000000000 +0200
|
||||
--- src/version.c 2013-09-05 16:04:32.000000000 +0200
|
||||
***************
|
||||
*** 740,741 ****
|
||||
--- 740,743 ----
|
||||
{ /* Add new patch number below this line */
|
||||
+ /**/
|
||||
+ 20,
|
||||
/**/
|
||||
|
||||
--
|
||||
hundred-and-one symptoms of being an internet addict:
|
||||
173. You keep tracking down the email addresses of all your friends
|
||||
(even childhood friends).
|
||||
|
||||
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
|
||||
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
|
||||
\\\ an exciting new programming language -- http://www.Zimbu.org ///
|
||||
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
|
@ -1,86 +0,0 @@
|
||||
To: vim_dev@googlegroups.com
|
||||
Subject: Patch 7.4.021
|
||||
Fcc: outbox
|
||||
From: Bram Moolenaar <Bram@moolenaar.net>
|
||||
Mime-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
------------
|
||||
|
||||
Patch 7.4.021
|
||||
Problem: NFA regexp: Using \ze in one branch which doesn't match may cause
|
||||
end of another branch to be wrong. (William Fugh)
|
||||
Solution: Set end position if it wasn't set yet.
|
||||
Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok
|
||||
|
||||
|
||||
*** ../vim-7.4.020/src/regexp_nfa.c 2013-09-05 16:05:32.000000000 +0200
|
||||
--- src/regexp_nfa.c 2013-09-05 20:56:25.000000000 +0200
|
||||
***************
|
||||
*** 4209,4218 ****
|
||||
break;
|
||||
|
||||
case NFA_MCLOSE:
|
||||
! if (nfa_has_zend)
|
||||
{
|
||||
! /* Do not overwrite the position set by \ze. If no \ze
|
||||
! * encountered end will be set in nfa_regtry(). */
|
||||
subs = addstate(l, state->out, subs, pim, off);
|
||||
break;
|
||||
}
|
||||
--- 4209,4219 ----
|
||||
break;
|
||||
|
||||
case NFA_MCLOSE:
|
||||
! if (nfa_has_zend && (REG_MULTI
|
||||
! ? subs->norm.list.multi[0].end.lnum >= 0
|
||||
! : subs->norm.list.line[0].end != NULL))
|
||||
{
|
||||
! /* Do not overwrite the position set by \ze. */
|
||||
subs = addstate(l, state->out, subs, pim, off);
|
||||
break;
|
||||
}
|
||||
*** ../vim-7.4.020/src/testdir/test64.in 2013-09-05 16:05:32.000000000 +0200
|
||||
--- src/testdir/test64.in 2013-09-05 20:55:18.000000000 +0200
|
||||
***************
|
||||
*** 328,333 ****
|
||||
--- 328,334 ----
|
||||
:call add(tl, [2, 'abc \zsmatch\ze abc', 'abc abc abc match abc abc', 'match'])
|
||||
:call add(tl, [2, '\v(a \zsif .*){2}', 'a if then a if last', 'if last', 'a if last'])
|
||||
:call add(tl, [2, '\>\zs.', 'aword. ', '.'])
|
||||
+ :call add(tl, [2, '\s\+\ze\[/\|\s\zs\s\+', 'is [a t', ' '])
|
||||
:"
|
||||
:"""" Tests for \@= and \& features
|
||||
:call add(tl, [2, 'abc\@=', 'abc', 'ab'])
|
||||
*** ../vim-7.4.020/src/testdir/test64.ok 2013-09-05 16:05:32.000000000 +0200
|
||||
--- src/testdir/test64.ok 2013-09-05 21:09:56.000000000 +0200
|
||||
***************
|
||||
*** 752,757 ****
|
||||
--- 752,760 ----
|
||||
OK 0 - \>\zs.
|
||||
OK 1 - \>\zs.
|
||||
OK 2 - \>\zs.
|
||||
+ OK 0 - \s\+\ze\[/\|\s\zs\s\+
|
||||
+ OK 1 - \s\+\ze\[/\|\s\zs\s\+
|
||||
+ OK 2 - \s\+\ze\[/\|\s\zs\s\+
|
||||
OK 0 - abc\@=
|
||||
OK 1 - abc\@=
|
||||
OK 2 - abc\@=
|
||||
*** ../vim-7.4.020/src/version.c 2013-09-05 16:05:32.000000000 +0200
|
||||
--- src/version.c 2013-09-05 21:11:38.000000000 +0200
|
||||
***************
|
||||
*** 740,741 ****
|
||||
--- 740,743 ----
|
||||
{ /* Add new patch number below this line */
|
||||
+ /**/
|
||||
+ 21,
|
||||
/**/
|
||||
|
||||
--
|
||||
hundred-and-one symptoms of being an internet addict:
|
||||
174. You know what a listserv is.
|
||||
|
||||
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
|
||||
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
|
||||
\\\ an exciting new programming language -- http://www.Zimbu.org ///
|
||||
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
|
@ -1,148 +0,0 @@
|
||||
To: vim_dev@googlegroups.com
|
||||
Subject: Patch 7.4.022
|
||||
Fcc: outbox
|
||||
From: Bram Moolenaar <Bram@moolenaar.net>
|
||||
Mime-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
------------
|
||||
|
||||
Patch 7.4.022
|
||||
Problem: Deadlock while exiting, because of allocating memory.
|
||||
Solution: Do not use gettext() in deathtrap(). (James McCoy)
|
||||
Files: src/os_unix.c, src/misc1.c
|
||||
|
||||
|
||||
*** ../vim-7.4.021/src/os_unix.c 2013-07-03 16:32:32.000000000 +0200
|
||||
--- src/os_unix.c 2013-09-05 21:40:06.000000000 +0200
|
||||
***************
|
||||
*** 957,964 ****
|
||||
|
||||
/*
|
||||
* This function handles deadly signals.
|
||||
! * It tries to preserve any swap file and exit properly.
|
||||
* (partly from Elvis).
|
||||
*/
|
||||
static RETSIGTYPE
|
||||
deathtrap SIGDEFARG(sigarg)
|
||||
--- 957,966 ----
|
||||
|
||||
/*
|
||||
* This function handles deadly signals.
|
||||
! * It tries to preserve any swap files and exit properly.
|
||||
* (partly from Elvis).
|
||||
+ * NOTE: Avoid unsafe functions, such as allocating memory, they can result in
|
||||
+ * a deadlock.
|
||||
*/
|
||||
static RETSIGTYPE
|
||||
deathtrap SIGDEFARG(sigarg)
|
||||
***************
|
||||
*** 1090,1107 ****
|
||||
}
|
||||
if (entered == 2)
|
||||
{
|
||||
! OUT_STR(_("Vim: Double signal, exiting\n"));
|
||||
out_flush();
|
||||
getout(1);
|
||||
}
|
||||
|
||||
#ifdef SIGHASARG
|
||||
! sprintf((char *)IObuff, _("Vim: Caught deadly signal %s\n"),
|
||||
signal_info[i].name);
|
||||
#else
|
||||
! sprintf((char *)IObuff, _("Vim: Caught deadly signal\n"));
|
||||
#endif
|
||||
! preserve_exit(); /* preserve files and exit */
|
||||
|
||||
#ifdef NBDEBUG
|
||||
reset_signals();
|
||||
--- 1092,1114 ----
|
||||
}
|
||||
if (entered == 2)
|
||||
{
|
||||
! /* No translation, it may call malloc(). */
|
||||
! OUT_STR("Vim: Double signal, exiting\n");
|
||||
out_flush();
|
||||
getout(1);
|
||||
}
|
||||
|
||||
+ /* No translation, it may call malloc(). */
|
||||
#ifdef SIGHASARG
|
||||
! sprintf((char *)IObuff, "Vim: Caught deadly signal %s\n",
|
||||
signal_info[i].name);
|
||||
#else
|
||||
! sprintf((char *)IObuff, "Vim: Caught deadly signal\n");
|
||||
#endif
|
||||
!
|
||||
! /* Preserve files and exit. This sets the really_exiting flag to prevent
|
||||
! * calling free(). */
|
||||
! preserve_exit();
|
||||
|
||||
#ifdef NBDEBUG
|
||||
reset_signals();
|
||||
*** ../vim-7.4.021/src/misc1.c 2013-08-03 17:29:33.000000000 +0200
|
||||
--- src/misc1.c 2013-09-05 21:34:04.000000000 +0200
|
||||
***************
|
||||
*** 9174,9179 ****
|
||||
--- 9174,9181 ----
|
||||
/*
|
||||
* Preserve files and exit.
|
||||
* When called IObuff must contain a message.
|
||||
+ * NOTE: This may be called from deathtrap() in a signal handler, avoid unsafe
|
||||
+ * functions, such as allocating memory.
|
||||
*/
|
||||
void
|
||||
preserve_exit()
|
||||
***************
|
||||
*** 9196,9202 ****
|
||||
{
|
||||
if (buf->b_ml.ml_mfp != NULL && buf->b_ml.ml_mfp->mf_fname != NULL)
|
||||
{
|
||||
! OUT_STR(_("Vim: preserving files...\n"));
|
||||
screen_start(); /* don't know where cursor is now */
|
||||
out_flush();
|
||||
ml_sync_all(FALSE, FALSE); /* preserve all swap files */
|
||||
--- 9198,9204 ----
|
||||
{
|
||||
if (buf->b_ml.ml_mfp != NULL && buf->b_ml.ml_mfp->mf_fname != NULL)
|
||||
{
|
||||
! OUT_STR("Vim: preserving files...\n");
|
||||
screen_start(); /* don't know where cursor is now */
|
||||
out_flush();
|
||||
ml_sync_all(FALSE, FALSE); /* preserve all swap files */
|
||||
***************
|
||||
*** 9206,9212 ****
|
||||
|
||||
ml_close_all(FALSE); /* close all memfiles, without deleting */
|
||||
|
||||
! OUT_STR(_("Vim: Finished.\n"));
|
||||
|
||||
getout(1);
|
||||
}
|
||||
--- 9208,9214 ----
|
||||
|
||||
ml_close_all(FALSE); /* close all memfiles, without deleting */
|
||||
|
||||
! OUT_STR("Vim: Finished.\n");
|
||||
|
||||
getout(1);
|
||||
}
|
||||
*** ../vim-7.4.021/src/version.c 2013-09-05 21:15:38.000000000 +0200
|
||||
--- src/version.c 2013-09-05 21:30:18.000000000 +0200
|
||||
***************
|
||||
*** 740,741 ****
|
||||
--- 740,743 ----
|
||||
{ /* Add new patch number below this line */
|
||||
+ /**/
|
||||
+ 22,
|
||||
/**/
|
||||
|
||||
--
|
||||
hundred-and-one symptoms of being an internet addict:
|
||||
175. You send yourself e-mail before you go to bed to remind you
|
||||
what to do when you wake up.
|
||||
|
||||
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
|
||||
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
|
||||
\\\ an exciting new programming language -- http://www.Zimbu.org ///
|
||||
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
|
@ -1,53 +0,0 @@
|
||||
To: vim_dev@googlegroups.com
|
||||
Subject: Patch 7.4.023
|
||||
Fcc: outbox
|
||||
From: Bram Moolenaar <Bram@moolenaar.net>
|
||||
Mime-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
------------
|
||||
|
||||
Patch 7.4.023
|
||||
Problem: Compiler warning on 64 bit windows.
|
||||
Solution: Add type cast. (Mike Williams)
|
||||
Files: src/edit.c
|
||||
|
||||
|
||||
*** ../vim-7.4.022/src/edit.c 2013-09-05 13:50:49.000000000 +0200
|
||||
--- src/edit.c 2013-09-06 17:32:55.000000000 +0200
|
||||
***************
|
||||
*** 5189,5195 ****
|
||||
mb_ptr_back(line, p);
|
||||
while (vim_isfilec(PTR2CHAR(p)) && p >= line)
|
||||
mb_ptr_back(line, p);
|
||||
! startcol = p - line;
|
||||
|
||||
compl_col += ++startcol;
|
||||
compl_length = (int)curs_col - startcol;
|
||||
--- 5189,5195 ----
|
||||
mb_ptr_back(line, p);
|
||||
while (vim_isfilec(PTR2CHAR(p)) && p >= line)
|
||||
mb_ptr_back(line, p);
|
||||
! startcol = (int)(p - line);
|
||||
|
||||
compl_col += ++startcol;
|
||||
compl_length = (int)curs_col - startcol;
|
||||
*** ../vim-7.4.022/src/version.c 2013-09-05 21:41:35.000000000 +0200
|
||||
--- src/version.c 2013-09-06 17:33:41.000000000 +0200
|
||||
***************
|
||||
*** 740,741 ****
|
||||
--- 740,743 ----
|
||||
{ /* Add new patch number below this line */
|
||||
+ /**/
|
||||
+ 23,
|
||||
/**/
|
||||
|
||||
--
|
||||
Wizards had always known that the act of observation changed the thing that
|
||||
was observed, and sometimes forgot that it also changed the observer too.
|
||||
Terry Pratchett - Interesting times
|
||||
|
||||
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
|
||||
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
|
||||
\\\ an exciting new programming language -- http://www.Zimbu.org ///
|
||||
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
|
@ -146,10 +146,9 @@ rec {
|
||||
gmic =
|
||||
let
|
||||
imagemagick = pkgs.imagemagickBig; # maybe the non big version is enough?
|
||||
fftw = pkgs.fftw.override {pthreads = true;};
|
||||
in pluginDerivation rec {
|
||||
name = "gmic-1.5.7.2";
|
||||
buildInputs = [imagemagick pkgconfig fftw gimp] ++ gimp.nativeBuildInputs;
|
||||
buildInputs = [imagemagick pkgconfig pkgs.fftw gimp] ++ gimp.nativeBuildInputs;
|
||||
src = fetchurl {
|
||||
url = mirror://sourceforge/gmic/gmic_1.5.7.2.tar.gz;
|
||||
sha256 = "1cpbxb3p2c8bcv2cbr150whapzjc7w09i3jza0z9x3xj8c0vdyv1";
|
||||
|
@ -1,5 +1,6 @@
|
||||
{ stdenv, fetchurl, qt4, bison, flex, eigen, boost, mesa, glew, opencsg, cgal
|
||||
, mpfr, gmp }:
|
||||
, mpfr, gmp
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "2013.06";
|
||||
|
@ -7,12 +7,12 @@ in
|
||||
assert hotplugSupport -> (stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux");
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "sane-backends-1.0.23.296-gf139120";
|
||||
name = "sane-backends-1.0.24.73-g6c4f6bc";
|
||||
|
||||
src = fetchgit {
|
||||
url = "http://git.debian.org/git/sane/sane-backends.git";
|
||||
rev = "f139120c72db6de98be95b52c206c2a4d8071e92";
|
||||
sha256 = "1b2fv19c8ijh9l0jjilli3j70n17wvcgpqq1nxmiby3ai6nrzk8d";
|
||||
url = "git://alioth.debian.org/git/sane/sane-backends.git";
|
||||
rev = "6c4f6bc58615755dc734281703b594cea3ebf848";
|
||||
sha256 = "0f7lbv1rnr53n4rpihcd8dkfm01xvwfnx9i1nqaadrzbpvgkjrfa";
|
||||
};
|
||||
|
||||
udevSupport = hotplugSupport;
|
||||
|
@ -8,12 +8,13 @@ let
|
||||
firmware = gt68xxFirmware { inherit fetchurl; };
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
version = "1.0.23";
|
||||
version = "1.0.24";
|
||||
name = "sane-backends-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://launchpad.net/ubuntu/+archive/primary/+files/sane-backends_${version}.orig.tar.gz";
|
||||
sha256 = "4d4f5b2881615af7fc0ed75fdde7dc623a749e80e40f3f792fe4010163cbb029";
|
||||
url = "https://alioth.debian.org/frs/download.php/file/3958/${name}.tar.gz";
|
||||
curlOpts = "--insecure";
|
||||
sha256 = "0ba68m6bzni54axjk15i51rya7hfsdliwvqyan5msl7iaid0iir7";
|
||||
};
|
||||
|
||||
udevSupport = hotplugSupport;
|
||||
|
@ -1,8 +1,12 @@
|
||||
{ stdenv, fetchurl, cmake, openssl, libedit, flex, bison, qt4, makeWrapper, gcc }:
|
||||
{ stdenv, fetchurl, cmake, openssl, libedit, flex, bison, qt4, makeWrapper
|
||||
, gcc, nettools, iproute, linuxHeaders }:
|
||||
|
||||
# NOTE: use $out/etc/iked.conf as sample configuration and also set: dhcp_file "/etc/iked.dhcp";
|
||||
# launch with "iked -f /etc/iked.conf"
|
||||
|
||||
# NOTE: my testings reveal that kernels 3.11.10 and 3.12.6 won't let the traffic through the tunnel,
|
||||
# so I'm sticking with 3.4
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "ike-2.2.1";
|
||||
|
||||
@ -11,11 +15,13 @@ stdenv.mkDerivation rec {
|
||||
sha256 = "0fhyr2psd93b0zf7yfb72q3nqnh65mymgq5jpjcsj9jv5kfr6l8y";
|
||||
};
|
||||
|
||||
buildInputs = [ cmake openssl libedit flex bison qt4 makeWrapper ];
|
||||
buildInputs = [ cmake openssl libedit flex bison qt4 makeWrapper nettools iproute ];
|
||||
|
||||
configurePhase = ''
|
||||
mkdir -p $out/{bin,sbin,lib}
|
||||
cmake -DQTGUI=YES -DETCDIR=$out/etc -DLIBDIR=$out/lib -DSBINDIR=$out/sbin -DBINDIR=$out/bin -DMANDIR=$out/man -DNATT=YES -DCMAKE_INSTALL_PREFIX:BOOL=$out
|
||||
cmake -DQTGUI=YES -DETCDIR=$out/etc -DLIBDIR=$out/lib -DSBINDIR=$out/sbin -DBINDIR=$out/bin \
|
||||
-DKRNINC="${linuxHeaders}/include/" -DTESTS=YES \
|
||||
-DMANDIR=$out/man -DNATT=YES -DCMAKE_INSTALL_PREFIX:BOOL=$out
|
||||
'';
|
||||
|
||||
buildPhase = ''
|
||||
|
@ -4,11 +4,11 @@
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "calibre-1.15.0";
|
||||
name = "calibre-1.17.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/calibre/${name}.tar.xz";
|
||||
sha256 = "0kisdrvsbdpfkirg0p8ifzcm7fjidx74xsw4bdb96gry2wmpjwf7";
|
||||
sha256 = "1g0kwfr0v4hgwik7hpajdvg1ganyi7hlq6wvq4r5218yvdq5mkzn";
|
||||
};
|
||||
|
||||
inherit python;
|
||||
|
@ -17,6 +17,6 @@ stdenv.mkDerivation rec {
|
||||
description = "Simple tool for input event debugging";
|
||||
license = "GPLv2";
|
||||
platforms = platforms.linux;
|
||||
maintainers = [maintainers.bjornfor];
|
||||
maintainers = [ maintainers.bjornfor ];
|
||||
};
|
||||
}
|
||||
|
12
pkgs/applications/misc/gammu/bashcomp-dir.patch
Normal file
12
pkgs/applications/misc/gammu/bashcomp-dir.patch
Normal file
@ -0,0 +1,12 @@
|
||||
diff -Naur gammu-1.33.0.orig/contrib/CMakeLists.txt gammu-1.33.0/contrib/CMakeLists.txt
|
||||
--- gammu-1.33.0.orig/contrib/CMakeLists.txt 2013-12-26 20:56:22.887772110 +0100
|
||||
+++ gammu-1.33.0/contrib/CMakeLists.txt 2013-12-26 20:57:04.386276037 +0100
|
||||
@@ -85,7 +85,7 @@
|
||||
if (INSTALL_BASH_COMPLETION)
|
||||
install (
|
||||
FILES bash-completion/gammu
|
||||
- DESTINATION "/etc/bash_completion.d"
|
||||
+ DESTINATION "${CMAKE_INSTALL_PREFIX}/etc/bash_completion.d"
|
||||
COMPONENT "bash"
|
||||
)
|
||||
endif (INSTALL_BASH_COMPLETION)
|
29
pkgs/applications/misc/gammu/default.nix
Normal file
29
pkgs/applications/misc/gammu/default.nix
Normal file
@ -0,0 +1,29 @@
|
||||
{ stdenv, fetchurl, python, pkgconfig, cmake, bluez, libusb1, curl
|
||||
, libiconv, gettext, sqlite }:
|
||||
|
||||
with stdenv.lib;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "gammu-${version}";
|
||||
version = "1.33.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://sourceforge.net/projects/gammu/files/gammu/${version}/gammu-${version}.tar.xz";
|
||||
sha256 = "18gplx1v9d70k1q86d5i4n4dfpx367g34pj3zscppx126vwhv112";
|
||||
};
|
||||
|
||||
patches = [ ./bashcomp-dir.patch ];
|
||||
|
||||
buildInputs = [ python pkgconfig cmake bluez libusb1 curl libiconv
|
||||
gettext sqlite ];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
meta = {
|
||||
homepage = "http://wammu.eu/gammu/";
|
||||
description = "Command line utility and library to control mobil phones";
|
||||
license = licenses.gpl2;
|
||||
platforms = platforms.linux;
|
||||
maintainers = [ maintainers.coroa ];
|
||||
};
|
||||
}
|
@ -18,7 +18,8 @@
|
||||
# gr-video-sdl: PAL and NTSC display
|
||||
, SDL
|
||||
, libusb1, orc, pyopengl
|
||||
, makeWrapper }:
|
||||
, makeWrapper
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "gnuradio-${version}";
|
||||
|
@ -1,5 +1,6 @@
|
||||
{ stdenv, fetchurl, buildPythonPackage, tempita, jinja2, pyyaml, clepy, mock
|
||||
, nose, decorator, docutils }:
|
||||
, nose, decorator, docutils
|
||||
}:
|
||||
|
||||
# TODO: pitz has a pitz-shell utility that depends on ipython, but it just
|
||||
# errors out and dies (it probably depends on an old ipython version):
|
||||
@ -28,6 +29,6 @@ buildPythonPackage rec {
|
||||
license = licenses.bsd3;
|
||||
homepage = http://pitz.tplus1.com/;
|
||||
platforms = platforms.linux;
|
||||
maintainers = [maintainers.bjornfor];
|
||||
maintainers = [ maintainers.bjornfor ];
|
||||
};
|
||||
}
|
||||
|
@ -2,7 +2,8 @@
|
||||
# Perl modules:
|
||||
, EncodeLocale, MathClipper, ExtUtilsXSpp, BoostGeometryUtils
|
||||
, MathConvexHullMonotoneChain, MathGeometryVoronoi, MathPlanePath, Moo
|
||||
, IOStringy, ClassXSAccessor, Wx, GrowlGNTP, NetDBus }:
|
||||
, IOStringy, ClassXSAccessor, Wx, GrowlGNTP, NetDBus
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "0.9.10b";
|
||||
|
32
pkgs/applications/misc/tint2/default.nix
Normal file
32
pkgs/applications/misc/tint2/default.nix
Normal file
@ -0,0 +1,32 @@
|
||||
{ stdenv, fetchurl, pkgconfig, cmake, pango, cairo, glib, imlib2, libXinerama
|
||||
, libXrender, libXcomposite, libXdamage, libX11, libXrandr, gtk, libpthreadstubs
|
||||
, libXdmcp
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "tint2-${version}";
|
||||
version = "0.11";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://tint2.googlecode.com/files/${name}.tar.bz2";
|
||||
sha256 = "07a74ag7lhc6706z34zvqj2ikyyl7wnzisfxpld67ljpc1m6w47y";
|
||||
};
|
||||
|
||||
buildInputs = [ pkgconfig cmake pango cairo glib imlib2 libXinerama
|
||||
libXrender libXcomposite libXdamage libX11 libXrandr gtk libpthreadstubs
|
||||
libXdmcp
|
||||
];
|
||||
|
||||
preConfigure = "substituteInPlace CMakeLists.txt --replace /etc $out/etc";
|
||||
|
||||
cmakeFlags = [
|
||||
"-DENABLE_TINT2CONF=0"
|
||||
];
|
||||
|
||||
meta = {
|
||||
homepage = http://code.google.com/p/tint2;
|
||||
license = stdenv.lib.licenses.gpl2;
|
||||
description = "A simple panel/taskbar unintrusive and light (memory / cpu / aestetic)";
|
||||
platforms = stdenv.lib.platforms.linux;
|
||||
};
|
||||
}
|
@ -9,11 +9,12 @@ stdenv.mkDerivation rec {
|
||||
|
||||
buildInputs = with pythonPackages;
|
||||
[
|
||||
python twisted urwid beautifulsoup wxPython distribute pygobject
|
||||
wokkel pythonDBus pyfeed wrapPython
|
||||
python twisted urwid beautifulsoup wxPython pygobject
|
||||
wokkel pythonDBus pyfeed wrapPython setuptools
|
||||
];
|
||||
|
||||
configurePhase = ''
|
||||
sed -i "/use_setuptools/d" setup.py
|
||||
sed -e "s@sys.prefix@'$out'@g" -i setup.py
|
||||
sed -e "1aexport PATH=\"\$PATH\":\"$out/bin\":\"${pythonPackages.twisted}/bin\"" -i src/sat.sh
|
||||
sed -e "1aexport PYTHONPATH=\"\$PYTHONPATHPATH\":\"$PYTHONPATH\":"$out/lib/${python.libPrefix}/site-packages"" -i src/sat.sh
|
||||
|
@ -52,6 +52,6 @@ buildPythonPackage rec {
|
||||
homepage = https://code.google.com/p/spyderlib/;
|
||||
license = licenses.mit;
|
||||
platforms = platforms.linux;
|
||||
maintainers = [maintainers.bjornfor];
|
||||
maintainers = [ maintainers.bjornfor ];
|
||||
};
|
||||
}
|
||||
|
@ -1,37 +1,33 @@
|
||||
{ bdbSupport ? false # build support for Berkeley DB repositories
|
||||
, httpServer ? false # build Apache DAV module
|
||||
, httpSupport ? false # client must support http
|
||||
, sslSupport ? false # client must support https
|
||||
, compressionSupport ? false # client must support http compression
|
||||
, pythonBindings ? false
|
||||
, perlBindings ? false
|
||||
, javahlBindings ? false
|
||||
, saslSupport ? false
|
||||
, stdenv, fetchurl, apr, aprutil, neon, zlib, sqlite
|
||||
, stdenv, fetchurl, apr, aprutil, zlib, sqlite
|
||||
, httpd ? null, expat, swig ? null, jdk ? null, python ? null, perl ? null
|
||||
, sasl ? null
|
||||
, sasl ? null, serf ? null
|
||||
}:
|
||||
|
||||
assert bdbSupport -> aprutil.bdbSupport;
|
||||
assert httpServer -> httpd != null;
|
||||
assert pythonBindings -> swig != null && python != null;
|
||||
assert javahlBindings -> jdk != null && perl != null;
|
||||
assert sslSupport -> neon.sslSupport;
|
||||
assert compressionSupport -> neon.compressionSupport;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
|
||||
version = "1.7.14";
|
||||
version = "1.8.5";
|
||||
|
||||
name = "subversion-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://apache/subversion//${name}.tar.bz2";
|
||||
sha256 = "038jbcpwm083abp0rvk0fhnx65kp9mz1qvzs3f83ig8fxcvqzb64";
|
||||
url = "mirror://apache/subversion/${name}.tar.bz2";
|
||||
sha256 = "0r3mxrrlr1l9s2nh829bf0qmrfaafkq3di6ndr10j76sxkqjnlpx";
|
||||
};
|
||||
|
||||
buildInputs = [ zlib apr aprutil sqlite ]
|
||||
++ stdenv.lib.optional httpSupport neon
|
||||
++ stdenv.lib.optional httpSupport serf
|
||||
++ stdenv.lib.optional pythonBindings python
|
||||
++ stdenv.lib.optional perlBindings perl
|
||||
++ stdenv.lib.optional saslSupport sasl;
|
||||
@ -43,6 +39,7 @@ stdenv.mkDerivation rec {
|
||||
${if javahlBindings then "--enable-javahl --with-jdk=${jdk}" else ""}
|
||||
${if stdenv.isDarwin then "--enable-keychain" else "--disable-keychain"}
|
||||
${if saslSupport then "--enable-sasl --with-sasl=${sasl}" else "--disable-sasl"}
|
||||
${if httpSupport then "--enable-serf --with-serf=${serf}" else "--disable-serf"}
|
||||
--with-zlib=${zlib}
|
||||
--with-sqlite=${sqlite}
|
||||
'';
|
||||
|
@ -10,11 +10,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "vlc-${version}";
|
||||
version = "2.1.1";
|
||||
version = "2.1.2";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://download.videolan.org/pub/videolan/vlc/${version}/${name}.tar.xz";
|
||||
sha256 = "14mrcswz5mz976dmplbrdm3mkwjrksspvkignhbnbvrrp77r571k";
|
||||
sha256 = "1i4fzjv2x8mzx0bg52mgh1rrlircmb81jr58z90blbmww4mq36r1";
|
||||
};
|
||||
|
||||
buildInputs =
|
||||
|
@ -1,7 +1,7 @@
|
||||
{ stdenv, lib, fetchurl, makeWrapper
|
||||
, pkgconfig, cmake, gnumake, yasm, pythonFull
|
||||
, boost, avahi, libdvdcss, lame
|
||||
, gettext, pcre, yajl, fribidi
|
||||
, boost, avahi, libdvdcss, lame, autoreconfHook
|
||||
, gettext, pcre, yajl, fribidi, which
|
||||
, openssl, gperf, tinyxml2, taglib, libssh, swig, jre
|
||||
, libX11, xproto, inputproto
|
||||
, libXt, libXmu, libXext, xextproto
|
||||
@ -34,20 +34,20 @@ assert vdpauSupport -> libvdpau != null && ffmpeg.vdpauSupport;
|
||||
assert pulseSupport -> pulseaudio != null;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "xbmc-12.2";
|
||||
name = "xbmc-12.3";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://mirrors.xbmc.org/releases/source/${name}.tar.gz";
|
||||
sha256 = "077apkq9sx6wlwkwmiz63w5dcqbbrbjbn6qk9fj2fgaizhs0ccxj";
|
||||
sha256 = "0wyy9rsl11px4mh0fyq75n29905ldiqp8yraz6jxxvrls1hcj59y";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
makeWrapper
|
||||
pkgconfig cmake gnumake yasm pythonFull
|
||||
boost libmicrohttpd
|
||||
boost libmicrohttpd autoreconfHook
|
||||
gettext pcre yajl fribidi
|
||||
openssl gperf tinyxml2 taglib libssh swig jre
|
||||
libX11 xproto inputproto
|
||||
libX11 xproto inputproto which
|
||||
libXt libXmu libXext xextproto
|
||||
libXinerama libXrandr randrproto
|
||||
libXtst libXfixes fixesproto
|
||||
@ -72,6 +72,7 @@ stdenv.mkDerivation rec {
|
||||
preConfigure = ''
|
||||
substituteInPlace xbmc/linux/LinuxTimezone.cpp \
|
||||
--replace 'usr/share/zoneinfo' 'etc/zoneinfo'
|
||||
./bootstrap
|
||||
'';
|
||||
|
||||
configureFlags = [
|
||||
|
@ -1,17 +1,24 @@
|
||||
{ stdenv, fetchgit, pkgconfig, libXcomposite, libXfixes, libXdamage
|
||||
, libXrender, libXext }:
|
||||
{ stdenv, fetchurl, pkgconfig
|
||||
, dbus, libconfig, libdrm, libxml2, mesa, pcre
|
||||
, libXcomposite, libXfixes, libXdamage, libXinerama
|
||||
, libXrandr, libXrender, libXext }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "compton-20120507";
|
||||
src = fetchgit {
|
||||
url = git://github.com/chjj/compton.git;
|
||||
rev = "d52f7a06dbc55d92e061f976730952177edac739";
|
||||
sha256 = "0f7600a841c4c77d181b54bc14cf7d90d0bad25aa5edbade320ca8b9946f14eb";
|
||||
|
||||
name = "compton-0.1_beta2";
|
||||
|
||||
src = fetchurl {
|
||||
url = https://github.com/chjj/compton/releases/download/v0.1_beta2/compton-git-v0.1_beta2-2013-10-21.tar.xz;
|
||||
sha256 = "1mpgn1d98dv66xs2j8gaxjiw26nzwl9a641lrday7h40g3k45g9v";
|
||||
};
|
||||
buildInputs = [ pkgconfig libXcomposite libXfixes libXdamage libXrender libXext ];
|
||||
|
||||
buildInputs = [ pkgconfig dbus libconfig libdrm libxml2 mesa pcre
|
||||
libXcomposite libXfixes libXdamage libXinerama libXrandr libXrender libXext ];
|
||||
buildFlagsArray = ["CFLAGS=-O3 -fomit-frame-pointer"];
|
||||
installFlags = "PREFIX=$(out)";
|
||||
meta = {
|
||||
homepage = http://www.x.org/;
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = https://github.com/chjj/compton/;
|
||||
description = "A fork of XCompMgr, a sample compositing manager for X servers";
|
||||
longDescription = ''
|
||||
A fork of XCompMgr, which is a sample compositing manager for X servers
|
||||
@ -19,7 +26,7 @@ stdenv.mkDerivation rec {
|
||||
basic eye-candy effects. This fork adds additional features, such as additional
|
||||
effects, and a fork at a well-defined and proper place.
|
||||
'';
|
||||
license = "bsd";
|
||||
platforms = with stdenv.lib.platforms; linux;
|
||||
license = licenses.mit;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
# generic builder for Cabal packages
|
||||
|
||||
{ stdenv, fetchurl, lib, pkgconfig, ghc, Cabal, jailbreakCabal, glibcLocales
|
||||
, gnugrep, coreutils
|
||||
, enableLibraryProfiling ? false
|
||||
, enableSharedLibraries ? false
|
||||
, enableSharedExecutables ? false
|
||||
@ -140,6 +141,10 @@ assert !enableStaticLibraries -> versionOlder "7.7" ghc.version;
|
||||
# and run any regression test suites the package might have
|
||||
doCheck = enableCheckPhase;
|
||||
|
||||
# abort the build if the configure phase detects that the package
|
||||
# depends on multiple versions of the same build input
|
||||
strictConfigurePhase = true;
|
||||
|
||||
# pass the '--enable-library-vanilla' flag to cabal in the
|
||||
# configure stage to enable building shared libraries
|
||||
inherit enableStaticLibraries;
|
||||
@ -195,7 +200,15 @@ assert !enableStaticLibraries -> versionOlder "7.7" ghc.version;
|
||||
''}
|
||||
|
||||
echo "configure flags: $extraConfigureFlags $configureFlags"
|
||||
./Setup configure --verbose --prefix="$out" --libdir='$prefix/lib/$compiler' --libsubdir='$pkgid' $extraConfigureFlags $configureFlags
|
||||
./Setup configure --verbose --prefix="$out" --libdir='$prefix/lib/$compiler' \
|
||||
--libsubdir='$pkgid' $extraConfigureFlags $configureFlags 2>&1 \
|
||||
${optionalString self.strictConfigurePhase ''
|
||||
| ${coreutils}/bin/tee "$NIX_BUILD_TOP/cabal-configure.log"
|
||||
if ${gnugrep}/bin/egrep -q '^Warning:.*depends on multiple versions' "$NIX_BUILD_TOP/cabal-configure.log"; then
|
||||
echo >&2 "*** abort because of serious configure-time warning from Cabal"
|
||||
exit 1
|
||||
fi
|
||||
''}
|
||||
|
||||
eval "$postConfigure"
|
||||
'';
|
||||
|
@ -22,7 +22,7 @@ fi;
|
||||
# server's certificate. This is perfectly safe: we don't care
|
||||
# whether the server is being spoofed --- only the cryptographic
|
||||
# hash of the output matters. Pass in extra p's to handle redirects.
|
||||
printf 'p\np\np\n' | svn export ${ignoreExternals:+--ignore-externals} \
|
||||
printf 'p\np\np\n' | svn export --trust-server-cert --non-interactive ${ignoreExternals:+--ignore-externals} \
|
||||
-r "$rev" "$url" "$out"
|
||||
|
||||
stopNest
|
||||
|
@ -19,6 +19,6 @@ stdenv.mkDerivation rec {
|
||||
homepage = http://freepats.zenvoid.org/;
|
||||
license = licenses.gpl2;
|
||||
platforms = platforms.all;
|
||||
maintainers = [maintainers.bjornfor];
|
||||
maintainers = [ maintainers.bjornfor ];
|
||||
};
|
||||
}
|
||||
|
@ -1,7 +1,5 @@
|
||||
{ callPackage, self, stdenv, gettext, gvfs, libunique, overrides ? {} }:
|
||||
{
|
||||
__overrides = overrides;
|
||||
|
||||
let overridden = set // overrides; set = with overridden; {
|
||||
# Backward compatibility.
|
||||
gtkdoc = self.gtk_doc;
|
||||
startupnotification = self.startup_notification;
|
||||
@ -117,4 +115,4 @@
|
||||
|
||||
libglademm = callPackage ./bindings/libglademm { };
|
||||
|
||||
}
|
||||
}; in overridden
|
||||
|
@ -1,18 +1,18 @@
|
||||
{ cabal, aeson, aesonPretty, binary, blazeHtml, blazeMarkup
|
||||
, cmdargs, filepath, HTF, indents, languageEcmascript, mtl, pandoc
|
||||
, parsec, text, transformers, unionFind, uniplate
|
||||
, parsec, text, transformers, unionFind, unorderedContainers
|
||||
}:
|
||||
|
||||
cabal.mkDerivation (self: {
|
||||
pname = "Elm";
|
||||
version = "0.10.0.2";
|
||||
sha256 = "08aqz9lf754ygdwvjf4bs5ivnjyjx9rd43vrbzp0p4d3if6w6avz";
|
||||
version = "0.10.1";
|
||||
sha256 = "1y533vanhrxc14x304ig6q8ch6zih8yqgpfgw4h5vk5fpdmn09a2";
|
||||
isLibrary = true;
|
||||
isExecutable = true;
|
||||
buildDepends = [
|
||||
aeson aesonPretty binary blazeHtml blazeMarkup cmdargs filepath
|
||||
indents languageEcmascript mtl pandoc parsec text transformers
|
||||
unionFind uniplate
|
||||
unionFind unorderedContainers
|
||||
];
|
||||
testDepends = [ HTF ];
|
||||
doCheck = false;
|
||||
|
@ -29,10 +29,10 @@ let
|
||||
requireFile {
|
||||
name = "UnlimitedJCEPolicyJDK7.zip";
|
||||
url = http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html;
|
||||
sha256 = "0qljzfxbikm8br5k7rkamibp1vkyjrf6blbxpx6hn4k46f62bhnh";
|
||||
sha256 = "7a8d790e7bd9c2f82a83baddfae765797a4a56ea603c9150c87b7cdb7800194d";
|
||||
}
|
||||
else
|
||||
null;
|
||||
"";
|
||||
in
|
||||
|
||||
stdenv.mkDerivation {
|
||||
@ -93,12 +93,13 @@ stdenv.mkDerivation {
|
||||
jrePath=$out/jre
|
||||
fi
|
||||
|
||||
if test -n "$jce"; then
|
||||
unzip $jce
|
||||
cp -v jce/*.jar $jrePath/lib/security
|
||||
if test -n "${jce}"; then
|
||||
unzip ${jce}
|
||||
cp -v UnlimitedJCEPolicy/*.jar $jrePath/lib/security
|
||||
fi
|
||||
|
||||
rpath=$rpath''${rpath:+:}$jrePath/lib/${architecture}/jli
|
||||
rpath=$rpath''${rpath:+:}$jrePath/lib/${architecture}
|
||||
|
||||
# set all the dynamic linkers
|
||||
find $out -type f -perm +100 \
|
||||
|
@ -11,5 +11,6 @@ stdenv.mkDerivation rec {
|
||||
meta = {
|
||||
homepage = http://www.nasm.us/;
|
||||
description = "An 80x86 and x86-64 assembler designed for portability and modularity";
|
||||
platforms = stdenv.lib.platforms.linux;
|
||||
};
|
||||
}
|
||||
|
@ -4,11 +4,11 @@ let
|
||||
s= # Generated upstream information
|
||||
rec {
|
||||
baseName="sbcl";
|
||||
version="1.1.13";
|
||||
version="1.1.14";
|
||||
name="${baseName}-${version}";
|
||||
hash="1f4abgzfvb0f006vbykahqg7a11d6afnjrw332r54gj8753qj7x0";
|
||||
url="mirror://sourceforge/project/sbcl/sbcl/1.1.13/sbcl-1.1.13-source.tar.bz2";
|
||||
sha256="1f4abgzfvb0f006vbykahqg7a11d6afnjrw332r54gj8753qj7x0";
|
||||
hash="0vqsq6q4xvz7vn1akvjwxp406mysak4h955pp8x32dfqc6ina7k7";
|
||||
url="mirror://sourceforge/project/sbcl/sbcl/1.1.14/sbcl-1.1.14-source.tar.bz2";
|
||||
sha256="0vqsq6q4xvz7vn1akvjwxp406mysak4h955pp8x32dfqc6ina7k7";
|
||||
};
|
||||
buildInputs = with a; [
|
||||
clisp makeWrapper
|
||||
|
@ -1,43 +0,0 @@
|
||||
Fixes for glibc 2.17.
|
||||
|
||||
linux-os.c is just a missing header (for personality()).
|
||||
|
||||
In x86-64-linux-os.c, __USE_GNU is a glibc-internal name that features.h
|
||||
defines; _GNU_SOURCE is what it should actually be using to get GNU extensions.
|
||||
|
||||
diff -x config.log -x config.status -ru tmp/sbcl-1.1.2/src/runtime/linux-os.c work/sbcl-1.1.2/src/runtime/linux-os.c
|
||||
--- tmp/sbcl-1.1.2/src/runtime/linux-os.c 2012-12-01 11:32:38.000000000 +0000
|
||||
+++ work/sbcl-1.1.2/src/runtime/linux-os.c 2012-12-31 01:20:37.619000000 +0000
|
||||
@@ -46,6 +46,7 @@
|
||||
#include <sys/stat.h>
|
||||
#include <unistd.h>
|
||||
#include <linux/version.h>
|
||||
+#include <sys/personality.h>
|
||||
|
||||
#include "validate.h"
|
||||
#include "thread.h"
|
||||
diff -x config.log -x config.status -ru tmp/sbcl-1.1.2/src/runtime/x86-64-linux-os.c work/sbcl-1.1.2/src/runtime/x86-64-linux-os.c
|
||||
--- tmp/sbcl-1.1.2/src/runtime/x86-64-linux-os.c 2012-12-01 11:32:38.000000000 +0000
|
||||
+++ work/sbcl-1.1.2/src/runtime/x86-64-linux-os.c 2012-12-31 01:20:25.450000000 +0000
|
||||
@@ -14,6 +14,9 @@
|
||||
* files for more information.
|
||||
*/
|
||||
|
||||
+/* This is to get REG_RAX etc. from sys/ucontext.h. */
|
||||
+#define _GNU_SOURCE
|
||||
+
|
||||
#include <stdio.h>
|
||||
#include <stddef.h>
|
||||
#include <sys/param.h>
|
||||
@@ -21,11 +24,7 @@
|
||||
#include <sys/types.h>
|
||||
#include <unistd.h>
|
||||
#include <errno.h>
|
||||
-
|
||||
-#define __USE_GNU
|
||||
#include <sys/ucontext.h>
|
||||
-#undef __USE_GNU
|
||||
-
|
||||
|
||||
#include "./signal.h"
|
||||
#include "os.h"
|
@ -29,6 +29,6 @@ stdenv.mkDerivation rec {
|
||||
homepage = http://sdcc.sourceforge.net/;
|
||||
license = licenses.gpl2;
|
||||
platforms = platforms.linux;
|
||||
maintainers = [maintainers.bjornfor];
|
||||
maintainers = [ maintainers.bjornfor ];
|
||||
};
|
||||
}
|
||||
|
@ -12,5 +12,6 @@ stdenv.mkDerivation rec {
|
||||
homepage = http://www.tortall.net/projects/yasm/;
|
||||
description = "Complete rewrite of the NASM assembler";
|
||||
license = "BSD";
|
||||
platforms = stdenv.lib.platforms.linux;
|
||||
};
|
||||
}
|
||||
|
@ -1,14 +1,14 @@
|
||||
{ stdenv, fetchurl, erlang, rebar, makeWrapper, coreutils }:
|
||||
|
||||
let
|
||||
version = "0.11.2";
|
||||
version = "0.12.0";
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
name = "elixir-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/elixir-lang/elixir/archive/v${version}.tar.gz";
|
||||
sha256 = "0rgx33q013c5y2jjwd4l93pzd3v3fha8xdsrhpl9c9wb7yprjc5x";
|
||||
sha256 = "0cir2y36zljwphiqyz8xmq7qq0f094jmfy3qwk3wdm05c05nqnc8";
|
||||
};
|
||||
|
||||
buildInputs = [ erlang rebar makeWrapper ];
|
||||
|
@ -26,7 +26,8 @@ let
|
||||
|
||||
C_INCLUDE_PATH = stdenv.lib.concatStringsSep ":" (map (p: "${p}/include") buildInputs);
|
||||
LIBRARY_PATH = stdenv.lib.concatStringsSep ":" (map (p: "${p}/lib") buildInputs);
|
||||
LD_LIBRARY_PATH = LIBRARY_PATH;
|
||||
LD_LIBRARY_PATH = stdenv.lib.concatStringsSep ":" (map (p: "${p}/lib")
|
||||
(stdenv.lib.filter (x : x.outPath != stdenv.gcc.libc.outPath or "") buildInputs));
|
||||
|
||||
preConfigure = ''
|
||||
substituteInPlace Makefile \
|
||||
|
@ -17,7 +17,7 @@ with stdenv.lib;
|
||||
|
||||
let
|
||||
majorVersion = "3.3";
|
||||
version = "${majorVersion}.2";
|
||||
version = "${majorVersion}.3";
|
||||
|
||||
buildInputs = filter (p: p != null) [
|
||||
zlib bzip2 gdbm sqlite db4 readline ncurses openssl tcl tk libX11 xproto
|
||||
@ -29,7 +29,7 @@ stdenv.mkDerivation {
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://www.python.org/ftp/python/${version}/Python-${version}.tar.bz2";
|
||||
sha256 = "16myvina7nakyyg7r5gnjyydk8bzar988vmxsw2k485w5gz04wpp";
|
||||
sha256 = "1jwd9pw7vx6xpjyi7iv5j3rwwkf3vzrwj36kcj1qh8zn2avfj9p5";
|
||||
};
|
||||
|
||||
NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isLinux "-lgcc_s";
|
||||
|
@ -1,4 +1,4 @@
|
||||
{ stdenv, fetchurl, apr, expat
|
||||
{ stdenv, fetchurl, makeWrapper, apr, expat, gnused
|
||||
, sslSupport ? true, openssl
|
||||
, bdbSupport ? false, db4
|
||||
, ldapSupport ? true, openldap
|
||||
@ -8,6 +8,10 @@ assert sslSupport -> openssl != null;
|
||||
assert bdbSupport -> db4 != null;
|
||||
assert ldapSupport -> openldap != null;
|
||||
|
||||
let
|
||||
optional = stdenv.lib.optional;
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "apr-util-1.5.3";
|
||||
|
||||
@ -24,7 +28,15 @@ stdenv.mkDerivation rec {
|
||||
${stdenv.lib.optionalString ldapSupport "--with-ldap"}
|
||||
'';
|
||||
|
||||
propagatedBuildInputs = stdenv.lib.optional ldapSupport openldap;
|
||||
propagatedBuildInputs = [ makeWrapper apr expat ]
|
||||
++ optional sslSupport openssl
|
||||
++ optional bdbSupport db4
|
||||
++ optional ldapSupport openldap;
|
||||
|
||||
# Give apr1 access to sed for runtime invocations
|
||||
postInstall = ''
|
||||
wrapProgram $out/bin/apu-1-config --prefix PATH : "${gnused}/bin"
|
||||
'';
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
|
@ -1,30 +1,32 @@
|
||||
{fetchurl, stdenv, builderDefs, stringsWithDeps, singlePrecision ? false, pthreads ? false, float ? false}:
|
||||
{ fetchurl, stdenv, builderDefs, precision ? "double" }:
|
||||
|
||||
assert stdenv.lib.elem precision [ "single" "double" "long-double" "quad-precision" ];
|
||||
|
||||
with { inherit (stdenv.lib) optional; };
|
||||
|
||||
let
|
||||
version = "3.3.2";
|
||||
localDefs = builderDefs.passthru.function {
|
||||
src =
|
||||
fetchurl {
|
||||
url = "ftp://ftp.fftw.org/pub/fftw/fftw-${version}.tar.gz";
|
||||
sha256 = "b1236a780ca6e66fc5f8eda6ef0665d680e8253d9f01d7bf211b714a50032d01";
|
||||
};
|
||||
buildInputs = [];
|
||||
configureFlags = ["--enable-shared"]
|
||||
# some distros seem to be shipping both versions within the same package?
|
||||
# why does --enable-float still result in ..3f.so instead of ..3.so?
|
||||
++ (if singlePrecision then [ "--enable-single" ] else [ ])
|
||||
++ (if float then [ "--enable-float" ] else [ ])
|
||||
++ (stdenv.lib.optional (!pthreads) "--enable-openmp")
|
||||
++ (stdenv.lib.optional pthreads "--enable-threads")
|
||||
# I think all i686 has sse
|
||||
++ (if (stdenv.isi686 || stdenv.isx86_64) && singlePrecision then [ "--enable-sse" ] else [ ])
|
||||
# I think all x86_64 has sse2
|
||||
++ (if stdenv.isx86_64 && ! singlePrecision then [ "--enable-sse2" ] else [ ]);
|
||||
|
||||
version = "3.3.3";
|
||||
localDefs = builderDefs.passthru.function {
|
||||
src =
|
||||
fetchurl {
|
||||
url = "ftp://ftp.fftw.org/pub/fftw/fftw-${version}.tar.gz";
|
||||
sha256 = "1wwp9b2va7vkq3ay7a9jk22nr4x5q6m37rzqy2j8y3d11c5grkc5";
|
||||
};
|
||||
buildInputs = [];
|
||||
configureFlags = [
|
||||
"--enable-shared" "--disable-static"
|
||||
"--enable-threads" "--enable-openmp" # very small wrappers
|
||||
]
|
||||
++ optional (precision != "double") "--enable-${precision}"
|
||||
# all x86_64 have sse2
|
||||
++ optional stdenv.isx86_64 "--enable-sse2";
|
||||
};
|
||||
|
||||
in with localDefs;
|
||||
stdenv.mkDerivation {
|
||||
name = "fftw-3.3.2" + ( if singlePrecision then "-single" else "-double" );
|
||||
builder = writeScript "fftw-3.3.2-builder"
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "fftw-${precision}-${version}";
|
||||
builder = writeScript "${name}-builder"
|
||||
(textClosure localDefs [doConfigure doMakeInstall doForceShare]);
|
||||
meta = {
|
||||
description = "Fastest Fourier Transform in the West library";
|
||||
@ -34,3 +36,4 @@ stdenv.mkDerivation {
|
||||
inherit src;
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -3,13 +3,13 @@
|
||||
|
||||
let inherit (composableDerivation) edf; in
|
||||
|
||||
let version = "1.3.0"; in
|
||||
let version = "1.3.2"; in
|
||||
composableDerivation.composableDerivation {} {
|
||||
name = "fltk-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "ftp://ftp.easysw.com/pub/fltk/${version}/fltk-${version}-source.tar.gz";
|
||||
sha256 = "075j6ljx4dfg9rnkardn24y0f26ylpakm0yylg6a9kllha07c1lr";
|
||||
url = "http://fltk.org/pub/fltk/${version}/fltk-${version}-source.tar.gz";
|
||||
sha256 = "1974brlk723095vf8z72kazq1cbqr9a51kq6b0xda6zkjkgl8q0p";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ x11 inputproto libXi freeglut ];
|
||||
|
20
pkgs/development/libraries/haskell/DRBG/default.nix
Normal file
20
pkgs/development/libraries/haskell/DRBG/default.nix
Normal file
@ -0,0 +1,20 @@
|
||||
{ cabal, cereal, cipherAes128, cryptoApi, cryptohashCryptoapi
|
||||
, entropy, mtl, parallel, prettyclass, tagged
|
||||
}:
|
||||
|
||||
cabal.mkDerivation (self: {
|
||||
pname = "DRBG";
|
||||
version = "0.5.1";
|
||||
sha256 = "0mqgll5rf0h0yrdng1w9i8pis4yv9f4qffkh4c0g1ng5lxa9l747";
|
||||
isLibrary = true;
|
||||
isExecutable = true;
|
||||
buildDepends = [
|
||||
cereal cipherAes128 cryptoApi cryptohashCryptoapi entropy mtl
|
||||
parallel prettyclass tagged
|
||||
];
|
||||
meta = {
|
||||
description = "Deterministic random bit generator (aka RNG, PRNG) based HMACs, Hashes, and Ciphers";
|
||||
license = self.stdenv.lib.licenses.bsd3;
|
||||
platforms = self.ghc.meta.platforms;
|
||||
};
|
||||
})
|
@ -2,8 +2,8 @@
|
||||
|
||||
cabal.mkDerivation (self: {
|
||||
pname = "HsOpenSSL";
|
||||
version = "0.10.3.6";
|
||||
sha256 = "0h2q9isbrfvsyr4yzcv7y0vd3gha8ym67l4sn7zlz39n376i2z10";
|
||||
version = "0.10.4";
|
||||
sha256 = "1vpidm3jfwlyf61r0g9fks445w4w0kxk3g37fw4slfb1q3xknq2r";
|
||||
buildDepends = [ network time ];
|
||||
extraLibraries = [ openssl ];
|
||||
meta = {
|
||||
|
@ -1,16 +1,19 @@
|
||||
{ cabal, binary, cryptoApi, cryptoPubkeyTypes, monadcryptorandom
|
||||
, pureMD5, SHA
|
||||
{ cabal, binary, cryptoApi, cryptoPubkeyTypes, DRBG
|
||||
, monadcryptorandom, pureMD5, QuickCheck, SHA, tagged
|
||||
, testFramework, testFrameworkQuickcheck2
|
||||
}:
|
||||
|
||||
cabal.mkDerivation (self: {
|
||||
pname = "RSA";
|
||||
version = "1.2.2.0";
|
||||
sha256 = "0x4an1060slppyccf18isqrdl548ll33xzzqch3qxg285a0mm12m";
|
||||
isLibrary = true;
|
||||
isExecutable = true;
|
||||
version = "2.0";
|
||||
sha256 = "170bjcqd6q8q0c0idjpm9vgn02ifwxz1xvwp1l30qdf56293p4bq";
|
||||
buildDepends = [
|
||||
binary cryptoApi cryptoPubkeyTypes monadcryptorandom pureMD5 SHA
|
||||
];
|
||||
testDepends = [
|
||||
binary cryptoApi cryptoPubkeyTypes DRBG pureMD5 QuickCheck SHA
|
||||
tagged testFramework testFrameworkQuickcheck2
|
||||
];
|
||||
meta = {
|
||||
description = "Implementation of RSA, using the padding schemes of PKCS#1 v2.1.";
|
||||
license = self.stdenv.lib.licenses.bsd3;
|
||||
|
@ -2,8 +2,8 @@
|
||||
|
||||
cabal.mkDerivation (self: {
|
||||
pname = "ansi-wl-pprint";
|
||||
version = "0.6.6";
|
||||
sha256 = "1zkbiv5cpdgjiyn2nrrha29r84al7jg6647flqmc8riz2nn91zqy";
|
||||
version = "0.6.7.1";
|
||||
sha256 = "1by11bg1bd7z18hqgayk0w76hy5n63kmdl14gainlvfgr9jw506r";
|
||||
isLibrary = true;
|
||||
isExecutable = true;
|
||||
buildDepends = [ ansiTerminal ];
|
||||
|
@ -2,8 +2,8 @@
|
||||
|
||||
cabal.mkDerivation (self: {
|
||||
pname = "asn1-types";
|
||||
version = "0.2.2";
|
||||
sha256 = "0h3ww7iyf1xzl88mzmi03h6ws942953dr56v896vrkj3mj01hayx";
|
||||
version = "0.2.3";
|
||||
sha256 = "1cdzhj6zls6qmy82218cj2a25b7rkxsjbcqnx4zng3wp6s5pghw4";
|
||||
buildDepends = [ time ];
|
||||
meta = {
|
||||
homepage = "http://github.com/vincenthz/hs-asn1-types";
|
||||
|
14
pkgs/development/libraries/haskell/cipher-aes128/default.nix
Normal file
14
pkgs/development/libraries/haskell/cipher-aes128/default.nix
Normal file
@ -0,0 +1,14 @@
|
||||
{ cabal, cereal, cryptoApi, tagged }:
|
||||
|
||||
cabal.mkDerivation (self: {
|
||||
pname = "cipher-aes128";
|
||||
version = "0.5";
|
||||
sha256 = "14rwnz0nwmy1zch1ywjxf2fgfs1xj84l4n785rhb6npmx6k7rmqd";
|
||||
buildDepends = [ cereal cryptoApi tagged ];
|
||||
meta = {
|
||||
homepage = "https://github.com/TomMD/cipher-aes128";
|
||||
description = "AES128 using AES-NI when available";
|
||||
license = self.stdenv.lib.licenses.bsd3;
|
||||
platforms = self.ghc.meta.platforms;
|
||||
};
|
||||
})
|
@ -4,8 +4,8 @@
|
||||
|
||||
cabal.mkDerivation (self: {
|
||||
pname = "classy-prelude-conduit";
|
||||
version = "0.6.0";
|
||||
sha256 = "122clkwrz1n009b5gxq96sbby7i8kb4dgvc90ydamd86bx3pvc84";
|
||||
version = "0.7.0";
|
||||
sha256 = "0njhfqbcbsy1rv61fc4xqzqlb68hzqg9cr31f8bs6h7pa12n38zq";
|
||||
buildDepends = [
|
||||
classyPrelude conduit monadControl resourcet systemFileio
|
||||
transformers void
|
||||
|
@ -1,16 +1,16 @@
|
||||
{ cabal, async, basicPrelude, deepseq, hashable, hspec, liftedBase
|
||||
, monadControl, monoTraversable, QuickCheck, semigroups
|
||||
, systemFilepath, text, transformers, unorderedContainers, vector
|
||||
, vectorInstances
|
||||
, systemFilepath, text, time, transformers, unorderedContainers
|
||||
, vector, vectorInstances
|
||||
}:
|
||||
|
||||
cabal.mkDerivation (self: {
|
||||
pname = "classy-prelude";
|
||||
version = "0.6.0";
|
||||
sha256 = "0wpymr2gl0hmbgpw0qd0h1ik1h42s8raykq7jsdjqnmcvsmww5j6";
|
||||
version = "0.7.0";
|
||||
sha256 = "19n2kzzskrdwyacq14y8gf1avcy7clp7gzqh36dhw7pypy3x0k9n";
|
||||
buildDepends = [
|
||||
async basicPrelude deepseq hashable liftedBase monadControl
|
||||
monoTraversable semigroups systemFilepath text transformers
|
||||
monoTraversable semigroups systemFilepath text time transformers
|
||||
unorderedContainers vector vectorInstances
|
||||
];
|
||||
testDepends = [
|
||||
|
@ -5,8 +5,8 @@
|
||||
|
||||
cabal.mkDerivation (self: {
|
||||
pname = "crypto-pubkey";
|
||||
version = "0.2.3";
|
||||
sha256 = "198gpaxlcqkp6wa5cwwnlzdxnrs7j6h7zyizczd4imwbpl0gd2mk";
|
||||
version = "0.2.4";
|
||||
sha256 = "0mdjr6zma2q7r2z9qibp2bwf73bis6zrv7ss62i4pz42kndb9hh4";
|
||||
buildDepends = [
|
||||
byteable cryptohash cryptoNumbers cryptoPubkeyTypes cryptoRandom
|
||||
];
|
||||
|
@ -3,8 +3,8 @@
|
||||
|
||||
cabal.mkDerivation (self: {
|
||||
pname = "digestive-functors-heist";
|
||||
version = "0.8.3.1";
|
||||
sha256 = "11hrp3j3pz1ljp4mh5770fn70bga90kxgwqrm1fl6ki10q2q6z2h";
|
||||
version = "0.8.4.0";
|
||||
sha256 = "15n8piiqys010in8xp5iszjqsa2ndgk52adqgk2h6q3m5q0jkdb3";
|
||||
buildDepends = [
|
||||
blazeBuilder digestiveFunctors heist mtl text xmlhtml
|
||||
];
|
||||
|
@ -1,12 +1,14 @@
|
||||
{ cabal, MonadRandom, mtl, semigroupoids, semigroups, transformers
|
||||
{ cabal, monadControl, MonadRandom, mtl, semigroupoids, semigroups
|
||||
, transformers, transformersBase
|
||||
}:
|
||||
|
||||
cabal.mkDerivation (self: {
|
||||
pname = "either";
|
||||
version = "4.0";
|
||||
sha256 = "07axaq43cqyglndr5az7ns4mvkjmybq6z8s32l1jxc5x7532scwr";
|
||||
version = "4.1";
|
||||
sha256 = "1wddidjqwk283zrydl6xwi0crrrlskayici0fhjyf2abd3lgnnkc";
|
||||
buildDepends = [
|
||||
MonadRandom mtl semigroupoids semigroups transformers
|
||||
monadControl MonadRandom mtl semigroupoids semigroups transformers
|
||||
transformersBase
|
||||
];
|
||||
meta = {
|
||||
homepage = "http://github.com/ekmett/either/";
|
||||
|
@ -2,8 +2,8 @@
|
||||
|
||||
cabal.mkDerivation (self: {
|
||||
pname = "fast-logger";
|
||||
version = "2.0.0";
|
||||
sha256 = "0a2pmdj2q1mlpkwjszlb4gp6xk2bn8540cqhwjya55arx6rj9vs7";
|
||||
version = "2.1.0";
|
||||
sha256 = "116xdk455vlgyj3ck3bpzyavbfwq9asj2hlyjazb8vb1f9byxxkf";
|
||||
buildDepends = [ blazeBuilder filepath text ];
|
||||
testDepends = [ hspec ];
|
||||
meta = {
|
||||
|
15
pkgs/development/libraries/haskell/fastcgi/default.nix
Normal file
15
pkgs/development/libraries/haskell/fastcgi/default.nix
Normal file
@ -0,0 +1,15 @@
|
||||
{ cabal, cgi, fcgi }:
|
||||
|
||||
cabal.mkDerivation (self: {
|
||||
pname = "fastcgi";
|
||||
version = "3001.0.2.4";
|
||||
sha256 = "0lp17w098043xczwkah7h1x47wzrym7vv5adgla0aq9iybqay7xr";
|
||||
buildDepends = [ cgi ];
|
||||
extraLibraries = [ fcgi ];
|
||||
meta = {
|
||||
description = "A Haskell library for writing FastCGI programs";
|
||||
license = self.stdenv.lib.licenses.bsd3;
|
||||
platforms = self.ghc.meta.platforms;
|
||||
maintainers = [ self.stdenv.lib.maintainers.tomberek ];
|
||||
};
|
||||
})
|
@ -2,8 +2,8 @@
|
||||
|
||||
cabal.mkDerivation (self: {
|
||||
pname = "fclabels";
|
||||
version = "2.0.0.5";
|
||||
sha256 = "1xg0bvk6m981v05j3jp35hyclfilnic1q83kla8zlbnmdpqljqdb";
|
||||
version = "2.0.1";
|
||||
sha256 = "0gx0vqdxx797zh69xy2s62kyfsp9m48dfpbjykllg4fsk0x60wav";
|
||||
buildDepends = [ mtl transformers ];
|
||||
meta = {
|
||||
homepage = "https://github.com/sebastiaanvisser/fclabels";
|
||||
|
@ -15,7 +15,7 @@ cabal.mkDerivation (self: {
|
||||
transformers wlPprintText
|
||||
];
|
||||
patchPhase = ''
|
||||
sed -i -e 's|polyparse.*,|polyparse,|' -e 's|dlist ==.*|dlist|' graphviz.cabal
|
||||
sed -i -e 's|polyparse.*,|polyparse,|' -e 's|dlist ==.*|dlist|' -e 's|temporary.*,|temporary,|' graphviz.cabal
|
||||
'';
|
||||
doCheck = false;
|
||||
meta = {
|
||||
|
@ -4,8 +4,8 @@
|
||||
|
||||
cabal.mkDerivation (self: {
|
||||
pname = "hamlet";
|
||||
version = "1.1.7.5";
|
||||
sha256 = "1ph92n5l63qr5hpjcvl37j1w857dwwzzgsxn8mdadi2pz35lxm82";
|
||||
version = "1.1.7.6";
|
||||
sha256 = "1b0y7imdihm87nkz32bmh2gbalidy9rzp85x677lvxc99c1m9d1d";
|
||||
buildDepends = [
|
||||
blazeBuilder blazeHtml blazeMarkup failure parsec shakespeare text
|
||||
];
|
||||
|
13
pkgs/development/libraries/haskell/heredoc/default.nix
Normal file
13
pkgs/development/libraries/haskell/heredoc/default.nix
Normal file
@ -0,0 +1,13 @@
|
||||
{ cabal }:
|
||||
|
||||
cabal.mkDerivation (self: {
|
||||
pname = "heredoc";
|
||||
version = "0.2.0.0";
|
||||
sha256 = "0h0g2f7yscwl1ba1yn3jnz2drvd6ns9m910hwlmq3kdq3k39y3f9";
|
||||
meta = {
|
||||
homepage = "http://hackage.haskell.org/package/heredoc";
|
||||
description = "multi-line string / here document using QuasiQuotes";
|
||||
license = self.stdenv.lib.licenses.publicDomain;
|
||||
platforms = self.ghc.meta.platforms;
|
||||
};
|
||||
})
|
23
pkgs/development/libraries/haskell/lens-aeson/default.nix
Normal file
23
pkgs/development/libraries/haskell/lens-aeson/default.nix
Normal file
@ -0,0 +1,23 @@
|
||||
{ cabal, aeson, attoparsec, doctest, filepath, genericDeriving
|
||||
, lens, semigroups, simpleReflect, text, unorderedContainers
|
||||
, utf8String, vector
|
||||
}:
|
||||
|
||||
cabal.mkDerivation (self: {
|
||||
pname = "lens-aeson";
|
||||
version = "0.1.2";
|
||||
sha256 = "1h0w8p227r8gzvgqjl210i0z7xxv3435vwyi3j7vkm7a05cdk03l";
|
||||
buildDepends = [
|
||||
aeson attoparsec lens text unorderedContainers utf8String vector
|
||||
];
|
||||
testDepends = [
|
||||
doctest filepath genericDeriving semigroups simpleReflect
|
||||
];
|
||||
meta = {
|
||||
homepage = "http://github.com/lens/lens-aeson/";
|
||||
description = "Law-abiding lenses for aeson";
|
||||
license = self.stdenv.lib.licenses.bsd3;
|
||||
platforms = self.ghc.meta.platforms;
|
||||
maintainers = [ self.stdenv.lib.maintainers.ocharles ];
|
||||
};
|
||||
})
|
@ -9,8 +9,8 @@
|
||||
|
||||
cabal.mkDerivation (self: {
|
||||
pname = "lens";
|
||||
version = "3.10.0.1";
|
||||
sha256 = "0ar19ls0w1x1cnl6aj5qvrlyhfk51v8czahq4k861666rzglqd28";
|
||||
version = "3.10.1";
|
||||
sha256 = "0xjjld1ra1a0a739ia8swgbpw7r72hv0bs9akbqr9wyw8qdzibnh";
|
||||
buildDepends = [
|
||||
bifunctors comonad contravariant distributive filepath
|
||||
genericDeriving hashable MonadCatchIOTransformers mtl parallel
|
||||
|
@ -1,15 +1,15 @@
|
||||
{ cabal, conduit, fastLogger, liftedBase, monadControl, monadLoops
|
||||
, mtl, resourcet, stm, stmChans, text, transformers
|
||||
, transformersBase
|
||||
{ cabal, blazeBuilder, conduit, fastLogger, liftedBase
|
||||
, monadControl, monadLoops, mtl, resourcet, stm, stmChans, text
|
||||
, transformers, transformersBase
|
||||
}:
|
||||
|
||||
cabal.mkDerivation (self: {
|
||||
pname = "monad-logger";
|
||||
version = "0.3.3.2";
|
||||
sha256 = "0s75q974q6jwp89xj5kkqziy4crm9484dqvrpgd8ms7rw613jjz6";
|
||||
version = "0.3.4.0";
|
||||
sha256 = "16nrzms87klbs26rbaw4j8xal5k7glpbhg7r2x1m3gxbdhsp696n";
|
||||
buildDepends = [
|
||||
conduit fastLogger liftedBase monadControl monadLoops mtl resourcet
|
||||
stm stmChans text transformers transformersBase
|
||||
blazeBuilder conduit fastLogger liftedBase monadControl monadLoops
|
||||
mtl resourcet stm stmChans text transformers transformersBase
|
||||
];
|
||||
meta = {
|
||||
homepage = "https://github.com/kazu-yamamoto/logger";
|
||||
|
@ -4,8 +4,8 @@
|
||||
|
||||
cabal.mkDerivation (self: {
|
||||
pname = "mono-traversable";
|
||||
version = "0.1.0.0";
|
||||
sha256 = "1pkg8lagfiixgq2xb4ficgcqv1hhmxy2r49lq9szar7knh0gcjn1";
|
||||
version = "0.2.0.0";
|
||||
sha256 = "1wg0yzim3ql73w5rsxjnglwlg8r2hqliddmdk8vwsbvg02kgwxvz";
|
||||
buildDepends = [
|
||||
comonad hashable semigroupoids semigroups text transformers
|
||||
unorderedContainers vector
|
||||
|
@ -4,8 +4,8 @@
|
||||
|
||||
cabal.mkDerivation (self: {
|
||||
pname = "persistent-postgresql";
|
||||
version = "1.2.1.3";
|
||||
sha256 = "0chr8bs0823rkpf9cfx56ghjf29s9xaw23qx5a8g27x7dw5xvc12";
|
||||
version = "1.3.0";
|
||||
sha256 = "1mayfq1z9i46nqgiajkhxx4z3hfy3gl5nzx8d5xlp7s1mliz3qjv";
|
||||
buildDepends = [
|
||||
aeson blazeBuilder conduit monadControl persistent postgresqlLibpq
|
||||
postgresqlSimple text time transformers
|
||||
|
@ -4,8 +4,8 @@
|
||||
|
||||
cabal.mkDerivation (self: {
|
||||
pname = "persistent-sqlite";
|
||||
version = "1.2.1";
|
||||
sha256 = "1lbb8s6p3xixlkgwx30p473b438qjnw9s41bcm1q38vkklpa75y0";
|
||||
version = "1.3.0";
|
||||
sha256 = "04h0k3zf1jpa8y37naqjmh38jx32y61mg22rsmqjjpz1b0m0pwgb";
|
||||
buildDepends = [
|
||||
aeson conduit monadControl monadLogger persistent text transformers
|
||||
];
|
||||
|
@ -1,13 +1,14 @@
|
||||
{ cabal, aeson, hspec, monadControl, monadLogger, persistent
|
||||
, QuickCheck, text, transformers
|
||||
, QuickCheck, text, transformers, unorderedContainers
|
||||
}:
|
||||
|
||||
cabal.mkDerivation (self: {
|
||||
pname = "persistent-template";
|
||||
version = "1.2.0.6";
|
||||
sha256 = "1vkrxf2dabk9z0igfbvb2ib2bxcxi5af2vpxllv74cbjz9r6ip3s";
|
||||
version = "1.3.0";
|
||||
sha256 = "0amg5xncxgpc19yhj3gi7ldw126dy725pxj7kp43lbgggap0yfv9";
|
||||
buildDepends = [
|
||||
aeson monadControl monadLogger persistent text transformers
|
||||
unorderedContainers
|
||||
];
|
||||
testDepends = [ aeson hspec persistent QuickCheck text ];
|
||||
meta = {
|
||||
|
@ -7,8 +7,8 @@
|
||||
|
||||
cabal.mkDerivation (self: {
|
||||
pname = "persistent";
|
||||
version = "1.2.3.2";
|
||||
sha256 = "18kail3v524k10gjx2j6yh462bvf89lq49gya0hiwxkmqsbx9fdn";
|
||||
version = "1.3.0";
|
||||
sha256 = "03m2knmjkm25n48shqc7i7mjr0npwdq2dva8ygv9imzjdcb1146m";
|
||||
buildDepends = [
|
||||
aeson attoparsec base64Bytestring blazeHtml blazeMarkup conduit
|
||||
liftedBase monadControl monadLogger pathPieces poolConduit
|
||||
|
12
pkgs/development/libraries/haskell/prettyclass/default.nix
Normal file
12
pkgs/development/libraries/haskell/prettyclass/default.nix
Normal file
@ -0,0 +1,12 @@
|
||||
{ cabal }:
|
||||
|
||||
cabal.mkDerivation (self: {
|
||||
pname = "prettyclass";
|
||||
version = "1.0.0.0";
|
||||
sha256 = "11l9ajci7nh1r547hx8hgxrhq8mh5gdq30pdf845wvilg9p48dz5";
|
||||
meta = {
|
||||
description = "Pretty printing class similar to Show";
|
||||
license = self.stdenv.lib.licenses.bsd3;
|
||||
platforms = self.ghc.meta.platforms;
|
||||
};
|
||||
})
|
@ -2,8 +2,8 @@
|
||||
|
||||
cabal.mkDerivation (self: {
|
||||
pname = "profunctors";
|
||||
version = "4.0.1";
|
||||
sha256 = "13yr3n7jkhxbk4gk6nd1j8p1a7g5ir8g9xprcy3s1x39cqf4m986";
|
||||
version = "4.0.2";
|
||||
sha256 = "1p98pczrxvhk1imwics25b5ac59qzixblns83a1k9zszvz42kmix";
|
||||
buildDepends = [ comonad semigroupoids tagged transformers ];
|
||||
meta = {
|
||||
homepage = "http://github.com/ekmett/profunctors/";
|
||||
|
@ -14,7 +14,7 @@ cabal.mkDerivation (self: {
|
||||
];
|
||||
meta = {
|
||||
homepage = "http://github.com/atnnn/haskell-rethinkdb";
|
||||
description = "RethinkDB is a distributed document store with a powerful query language";
|
||||
description = "RethinkDB driver for Haskell";
|
||||
license = self.stdenv.lib.licenses.asl20;
|
||||
platforms = self.ghc.meta.platforms;
|
||||
};
|
||||
|
15
pkgs/development/libraries/haskell/robots-txt/default.nix
Normal file
15
pkgs/development/libraries/haskell/robots-txt/default.nix
Normal file
@ -0,0 +1,15 @@
|
||||
{ cabal, attoparsec, heredoc, hspec, QuickCheck, transformers }:
|
||||
|
||||
cabal.mkDerivation (self: {
|
||||
pname = "robots-txt";
|
||||
version = "0.4.0.0";
|
||||
sha256 = "1z0bn4v6fx0nx1hr4bbxi5k2c8bv6x3d4pywpav67m5pswxb2yp7";
|
||||
buildDepends = [ attoparsec ];
|
||||
testDepends = [ attoparsec heredoc hspec QuickCheck transformers ];
|
||||
meta = {
|
||||
homepage = "http://github.com/meanpath/robots";
|
||||
description = "Parser for robots.txt";
|
||||
license = self.stdenv.lib.licenses.bsd3;
|
||||
platforms = self.ghc.meta.platforms;
|
||||
};
|
||||
})
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user