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:
Vladimír Čunát 2014-01-04 12:45:06 +01:00
commit 9443129b08
189 changed files with 2274 additions and 3830 deletions

View file

@ -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>

View file

@ -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>

View file

@ -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.

View file

@ -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;

View file

@ -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";
};
};
}

View file

@ -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

View file

@ -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})

View 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;
};
}

View file

@ -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/;
};
}

View file

@ -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;

View file

@ -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;

View file

@ -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

View file

@ -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 ///

View file

@ -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 ///

View file

@ -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 ///

View file

@ -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 ///

View file

@ -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 ///

View file

@ -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 ///

View file

@ -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 ///

View file

@ -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 ///

View file

@ -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 ///

View file

@ -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 ///

View file

@ -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 ///

View file

@ -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 ///

View file

@ -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 ///

View file

@ -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 ///

View file

@ -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 ///

View file

@ -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 ///

View file

@ -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 ///

View file

@ -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 ///

View file

@ -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 ///

View file

@ -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 ///

View file

@ -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 ///

View file

@ -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 ///

View file

@ -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 ///

View file

@ -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";

View file

@ -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";

View file

@ -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;

View file

@ -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;

View file

@ -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 = ''

View file

@ -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;

View file

@ -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 ];
};
}

View 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)

View 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 ];
};
}

View file

@ -18,7 +18,8 @@
# gr-video-sdl: PAL and NTSC display
, SDL
, libusb1, orc, pyopengl
, makeWrapper }:
, makeWrapper
}:
stdenv.mkDerivation rec {
name = "gnuradio-${version}";

View file

@ -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 ];
};
}

View file

@ -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";

View 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;
};
}

View file

@ -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

View file

@ -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 ];
};
}

View file

@ -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}
'';

View file

@ -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 =

View file

@ -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 = [

View file

@ -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;
};
}

View file

@ -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"
'';

View file

@ -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

View file

@ -19,6 +19,6 @@ stdenv.mkDerivation rec {
homepage = http://freepats.zenvoid.org/;
license = licenses.gpl2;
platforms = platforms.all;
maintainers = [maintainers.bjornfor];
maintainers = [ maintainers.bjornfor ];
};
}

View file

@ -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

View file

@ -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;

View file

@ -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 \

View file

@ -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;
};
}

View file

@ -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

View file

@ -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"

View file

@ -29,6 +29,6 @@ stdenv.mkDerivation rec {
homepage = http://sdcc.sourceforge.net/;
license = licenses.gpl2;
platforms = platforms.linux;
maintainers = [maintainers.bjornfor];
maintainers = [ maintainers.bjornfor ];
};
}

View file

@ -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;
};
}

View file

@ -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 ];

View file

@ -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 \

View file

@ -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";

View file

@ -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;

View file

@ -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;
};
}

View file

@ -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 ];

View 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;
};
})

View file

@ -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 = {

View file

@ -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;

View file

@ -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 ];

View file

@ -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";

View 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;
};
})

View file

@ -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

View file

@ -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 = [

View file

@ -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
];

View file

@ -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
];

View file

@ -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/";

View file

@ -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 = {

View 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 ];
};
})

View file

@ -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";

View file

@ -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 = {

View file

@ -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
];

View 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;
};
})

View 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 ];
};
})

View file

@ -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

View file

@ -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";

View file

@ -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

View file

@ -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

View file

@ -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
];

View file

@ -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 = {

View file

@ -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

View 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;
};
})

View file

@ -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/";

View file

@ -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;
};

View 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