openSUSE Commits
Threads by month
- ----- 2024 -----
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
April 2016
- 1 participants
- 1255 discussions
Hello community,
here is the log from the commit of package lsvpd for openSUSE:Factory checked in at 2016-04-22 16:24:17
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/lsvpd (Old)
and /work/SRC/openSUSE:Factory/.lsvpd.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "lsvpd"
Changes:
--------
--- /work/SRC/openSUSE:Factory/lsvpd/lsvpd.changes 2015-11-12 19:40:22.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.lsvpd.new/lsvpd.changes 2016-04-22 16:24:19.000000000 +0200
@@ -1,0 +2,6 @@
+Tue Apr 12 13:45:37 UTC 2016 - jloeser(a)suse.com
+
+- version update to 1.7.7 (FATE#319553)
+ - for changes see lsvpd-1.7.7/ChangeLog
+
+-------------------------------------------------------------------
Old:
----
lsvpd-1.7.6.tar.gz
New:
----
lsvpd-1.7.7.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ lsvpd.spec ++++++
--- /var/tmp/diff_new_pack.hE03A8/_old 2016-04-22 16:24:20.000000000 +0200
+++ /var/tmp/diff_new_pack.hE03A8/_new 2016-04-22 16:24:20.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package lsvpd
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,13 +17,13 @@
Name: lsvpd
-Version: 1.7.6
+Version: 1.7.7
Release: 0
Summary: VPD Hardware Inventory Utilities for Linux
License: GPL-2.0+
Group: System/Monitoring
Url: http://sourceforge.net/projects/linux-diag/
-Source0: http://sourceforge.net/projects/linux-diag/files/lsvpd-new/%{version}/%{nam…
+Source0: http://sourceforge.net/projects/linux-diag/files/lsvpd-new/v%{version}/%{na…
BuildRequires: gcc-c++
BuildRequires: librtas-devel
BuildRequires: libvpd2-devel
++++++ lsvpd-1.7.6.tar.gz -> lsvpd-1.7.7.tar.gz ++++++
++++ 20569 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package lightdm for openSUSE:Factory checked in at 2016-04-22 16:24:13
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/lightdm (Old)
and /work/SRC/openSUSE:Factory/.lightdm.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "lightdm"
Changes:
--------
--- /work/SRC/openSUSE:Factory/lightdm/lightdm.changes 2016-03-07 13:29:17.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.lightdm.new/lightdm.changes 2016-04-22 16:24:14.000000000 +0200
@@ -1,0 +2,13 @@
+Mon Apr 11 06:39:25 UTC 2016 - mimi.vx(a)gmail.com
+
+- fix config file to use new Seat:* sematics
+
+-------------------------------------------------------------------
+Sun Apr 10 22:01:11 UTC 2016 - mimi.vx(a)gmail.com
+
+- update to 1.18.1
+* Use /dev/tty0 instead of /dev/console for VT operations
+* Small documentation fixes
+* Don't write $DISPLAY into tty line in utmp/btmp.
+
+-------------------------------------------------------------------
Old:
----
lightdm-1.17.5.tar.xz
New:
----
lightdm-1.18.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ lightdm.spec ++++++
--- /var/tmp/diff_new_pack.45mQRn/_old 2016-04-22 16:24:15.000000000 +0200
+++ /var/tmp/diff_new_pack.45mQRn/_new 2016-04-22 16:24:15.000000000 +0200
@@ -16,7 +16,7 @@
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
-
+%define ver_master 1.18
%define gobject_libname lightdm-gobject-1
%define gobject_lib lib%{gobject_libname}-0
%define qt_libname lightdm-qt-3
@@ -26,13 +26,13 @@
%define typelibname typelib-1_0-LightDM-1
%define rundir /run
Name: lightdm
-Version: 1.17.5
+Version: 1.18.1
Release: 0
Summary: Lightweight, Cross-desktop Display Manager
License: GPL-3.0+
Group: System/X11/Displaymanagers
Url: http://www.freedesktop.org/wiki/Software/LightDM
-Source0: https://launchpad.net/lightdm/1.17/%{version}/+download/%{name}-%{version}.…
+Source0: https://launchpad.net/lightdm/%{ver_master}/%{version}/+download/%{name}-%{…
Source1: %{name}-greeter.pamd
Source2: X11-displaymanagers-%{name}
Source3: gdmflexiserver
++++++ 50-suse-defaults.conf ++++++
--- /var/tmp/diff_new_pack.45mQRn/_old 2016-04-22 16:24:15.000000000 +0200
+++ /var/tmp/diff_new_pack.45mQRn/_new 2016-04-22 16:24:15.000000000 +0200
@@ -1,7 +1,7 @@
[LightDM]
user-authority-in-system-dir=true
-[SeatDefaults]
+[Seat:*]
pam-service = lightdm
pam-autologin-service = lightdm-autologin
pam-greeter-service = lightdm-greeter
++++++ lightdm-1.17.5.tar.xz -> lightdm-1.18.1.tar.xz ++++++
++++ 23793 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package scintilla for openSUSE:Factory checked in at 2016-04-22 16:24:11
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/scintilla (Old)
and /work/SRC/openSUSE:Factory/.scintilla.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "scintilla"
Changes:
--------
--- /work/SRC/openSUSE:Factory/scintilla/scintilla.changes 2016-02-01 19:57:02.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.scintilla.new/scintilla.changes 2016-04-22 16:24:13.000000000 +0200
@@ -1,0 +2,7 @@
+Sun Apr 10 09:38:49 UTC 2016 - mpluskal(a)suse.com
+
+- Update to 3.6.4
+ * avoids some folding bugs by automatically unfolding and
+ improves clipboard robustness on Win32.
+
+-------------------------------------------------------------------
Old:
----
scintilla363.tgz
New:
----
scintilla364.tgz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ scintilla.spec ++++++
--- /var/tmp/diff_new_pack.vwaMJX/_old 2016-04-22 16:24:14.000000000 +0200
+++ /var/tmp/diff_new_pack.vwaMJX/_new 2016-04-22 16:24:14.000000000 +0200
@@ -16,10 +16,10 @@
#
-%define tar_ver 363
+%define tar_ver 364
%define so_ver 3.0
Name: scintilla
-Version: 3.6.3
+Version: 3.6.4
Release: 0
Summary: A free source code editing component
License: MIT
++++++ scintilla-shared.patch ++++++
--- /var/tmp/diff_new_pack.vwaMJX/_old 2016-04-22 16:24:14.000000000 +0200
+++ /var/tmp/diff_new_pack.vwaMJX/_new 2016-04-22 16:24:14.000000000 +0200
@@ -2,7 +2,7 @@
===================================================================
--- gtk/makefile.orig
+++ gtk/makefile
-@@ -41,7 +41,7 @@ DEL = del /q
+@@ -42,7 +42,7 @@ DEL = del /q
COMPLIB=..\bin\scintilla.a
else
DEL = rm -f
@@ -11,16 +11,16 @@
endif
vpath %.h ../src ../include ../lexlib
-@@ -76,7 +76,7 @@ endif
+@@ -77,7 +77,7 @@ endif
CFLAGS:=$(CTFLAGS)
- CXXTFLAGS:=--std=c++0x $(CTFLAGS) $(REFLAGS)
+ CXXTFLAGS:=--std=gnu++0x $(CTFLAGS) $(REFLAGS)
-CONFIGFLAGS:=$(shell pkg-config --cflags $(GTKVERSION))
+CONFIGFLAGS:=$(shell pkg-config --cflags --libs $(GTKVERSION))
MARSHALLER=scintilla-marshal.o
.cxx.o:
-@@ -104,8 +104,7 @@ $(COMPLIB): Accessor.o CharacterSet.o Le
+@@ -105,8 +105,7 @@ $(COMPLIB): Accessor.o CharacterSet.o Le
KeyMap.o LineMarker.o PositionCache.o ScintillaGTK.o CellBuffer.o CharacterCategory.o ViewStyle.o \
RESearch.o RunStyles.o Selection.o Style.o Indicator.o AutoComplete.o UniConversion.o XPM.o \
$(MARSHALLER) $(LEXOBJS)
++++++ scintilla363.tgz -> scintilla364.tgz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/scintilla/cocoa/ScintillaFramework/Info.plist new/scintilla/cocoa/ScintillaFramework/Info.plist
--- old/scintilla/cocoa/ScintillaFramework/Info.plist 2016-01-17 23:34:04.000000000 +0100
+++ new/scintilla/cocoa/ScintillaFramework/Info.plist 2016-03-13 05:16:34.000000000 +0100
@@ -17,11 +17,11 @@
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
- <string>3.6.3</string>
+ <string>3.6.4</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
- <string>3.6.3</string>
+ <string>3.6.4</string>
<key>NSPrincipalClass</key>
<string></string>
</dict>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/scintilla/doc/ScintillaDownload.html new/scintilla/doc/ScintillaDownload.html
--- old/scintilla/doc/ScintillaDownload.html 2016-01-17 23:34:04.000000000 +0100
+++ new/scintilla/doc/ScintillaDownload.html 2016-03-13 05:16:34.000000000 +0100
@@ -26,9 +26,9 @@
<table bgcolor="#CCCCCC" width="100%" cellspacing="0" cellpadding="8" border="0">
<tr>
<td>
- <font size="4"> <a href="http://www.scintilla.org/scintilla363.zip">
+ <font size="4"> <a href="http://www.scintilla.org/scintilla364.zip">
Windows</a>
- <a href="http://www.scintilla.org/scintilla363.tgz">
+ <a href="http://www.scintilla.org/scintilla364.tgz">
GTK+/Linux</a>
</font>
</td>
@@ -42,7 +42,7 @@
containing very few restrictions.
</p>
<h3>
- Release 3.6.3
+ Release 3.6.4
</h3>
<h4>
Source Code
@@ -50,8 +50,8 @@
The source code package contains all of the source code for Scintilla but no binary
executable code and is available in
<ul>
- <li><a href="http://www.scintilla.org/scintilla363.zip">zip format</a> (1500K) commonly used on Windows</li>
- <li><a href="http://www.scintilla.org/scintilla363.tgz">tgz format</a> (1400K) commonly used on Linux and compatible operating systems</li>
+ <li><a href="http://www.scintilla.org/scintilla364.zip">zip format</a> (1500K) commonly used on Windows</li>
+ <li><a href="http://www.scintilla.org/scintilla364.tgz">tgz format</a> (1400K) commonly used on Linux and compatible operating systems</li>
</ul>
Instructions for building on both Windows and Linux are included in the readme file.
<h4>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/scintilla/doc/ScintillaHistory.html new/scintilla/doc/ScintillaHistory.html
--- old/scintilla/doc/ScintillaHistory.html 2016-01-17 23:34:04.000000000 +0100
+++ new/scintilla/doc/ScintillaHistory.html 2016-03-13 05:16:34.000000000 +0100
@@ -480,6 +480,10 @@
<td>Yury Dubinsky</td>
<td>Sam Hocevar</td>
<td>Luyomi</td>
+ <td>Matt Gilarde</td>
+ </tr><tr>
+ <td>Mark C</td>
+ <td>Johannes Sasongko</td>
</tr>
</table>
<p>
@@ -492,6 +496,73 @@
</li>
</ul>
<h3>
+ <a href="http://www.scintilla.org/scite364.zip">Release 3.6.4</a>
+ </h3>
+ <ul>
+ <li>
+ Released 13 March 2016.
+ </li>
+ <li>
+ SciTE allows setting the autocompletion type separator character.
+ </li>
+ <li>
+ The C++ folder folds code on '(' and ')' to allow multi-line calls to be folded.
+ <a href="http://sourceforge.net/p/scintilla/feature-requests/1138/">Feature #1138.</a>
+ </li>
+ <li>
+ For the HTML lexer, limit the extent of Mako line comments to finish before
+ the line end characters.
+ </li>
+ <li>
+ Folds unfolded when two fold regions are merged by either deleting an intervening line
+ or changing its fold level by adding characters.
+ This was fixed both in Scintilla and in SciTE's equivalent code.
+ <a href="http://sourceforge.net/p/scintilla/bugs/1799/">Bug #1799</a>.<br />
+ </li>
+ <li>
+ The Progress lexer supports hexadecimal numeric literals,
+ single-line comments, abbreviated keywords and
+ extends nested comments to unlimited levels.
+ </li>
+ <li>
+ Ruby lexer treats alternate hash key syntax "key:" as a symbol.
+ <a href="http://sourceforge.net/p/scintilla/bugs/1810/">Bug #1810</a>.
+ </li>
+ <li>
+ Rust lexer handles bracketed Unicode string escapes like "\u{123abc}".
+ <a href="http://sourceforge.net/p/scintilla/bugs/1809/">Bug #1809</a>.
+ </li>
+ <li>
+ For GTK+ on Windows fix 64-bit build which was broken in 3.6.3.
+ </li>
+ <li>
+ For Qt, release builds have assertions turned off.
+ </li>
+ <li>
+ For Qt on Windows, fix compilation failure for Qt 4.x.
+ </li>
+ <li>
+ IME target range displayed on Qt for OS X.
+ </li>
+ <li>
+ On Windows, make clipboard operations more robust by retrying OpenClipboard if it fails
+ as this may occur when another application has opened the clipboard.
+ </li>
+ <li>
+ On Windows back out change that removed use of def file to ensure
+ Scintilla_DirectFunction exported without name mangling.
+ <a href="http://sourceforge.net/p/scintilla/bugs/1813/">Bug #1813</a>.
+ </li>
+ <li>
+ On GTK+ and Qt over Win32 in Korean fix bug caused by last release's word input change.
+ </li>
+ <li>
+ For SciTE, more descriptive error messages are displayed when there are problems loading the
+ Lua startup script.
+ <a href="http://sourceforge.net/p/scintilla/feature-requests/1139/">Feature #1139.</a>
+ </li>
+ </ul>
+ <h3>
<a href="http://www.scintilla.org/scite363.zip">Release 3.6.3</a>
</h3>
<ul>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/scintilla/doc/index.html new/scintilla/doc/index.html
--- old/scintilla/doc/index.html 2016-01-17 23:34:04.000000000 +0100
+++ new/scintilla/doc/index.html 2016-03-13 05:16:34.000000000 +0100
@@ -9,7 +9,7 @@
<meta name="keywords" content="Scintilla, SciTE, Editing Component, Text Editor" />
<meta name="Description"
content="www.scintilla.org is the home of the Scintilla editing component and SciTE text editor application." />
- <meta name="Date.Modified" content="20160118" />
+ <meta name="Date.Modified" content="20160313" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<style type="text/css">
#versionlist {
@@ -56,8 +56,8 @@
GTK+, and OS X</font>
</td>
<td width="40%" align="right">
- <font color="#FFCC99" size="3"> Release version 3.6.3<br />
- Site last modified January 18 2016</font>
+ <font color="#FFCC99" size="3"> Release version 3.6.4<br />
+ Site last modified March 13 2016</font>
</td>
<td width="20%">
@@ -72,6 +72,7 @@
</tr>
</table>
<ul id="versionlist">
+ <li>Version 3.6.4 avoids some folding bugs by automatically unfolding and improves clipboard robustness on Win32.</li>
<li>Version 3.6.3 supports idle-time styling.</li>
<li>Version 3.6.2 fixes crashes and other bugs, particularly on Cocoa.</li>
<li>Version 3.6.1 adds minor features and fixes bugs.</li>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/scintilla/gtk/ScintillaGTK.cxx new/scintilla/gtk/ScintillaGTK.cxx
--- old/scintilla/gtk/ScintillaGTK.cxx 2016-01-17 23:34:04.000000000 +0100
+++ new/scintilla/gtk/ScintillaGTK.cxx 2016-03-13 05:16:34.000000000 +0100
@@ -2485,7 +2485,9 @@
MoveImeCarets( - (imeCharPos[preeditStr.uniStrLen]) + imeCharPos[preeditStr.cursor_pos]);
if (KoreanIME()) {
+#if !PLAT_GTK_WIN32
MoveImeCarets( - imeCharPos[1]); // always 2 bytes for DBCS or 3 bytes for UTF8.
+#endif
view.imeCaretBlockOverride = true;
}
@@ -3051,7 +3053,7 @@
return psci->WndProc(iMessage, wParam, lParam);
}
-sptr_t scintilla_object_send_message(ScintillaObject *sci, unsigned int iMessage, uptr_t wParam, sptr_t lParam) {
+gintptr scintilla_object_send_message(ScintillaObject *sci, unsigned int iMessage, uptr_t wParam, sptr_t lParam) {
return scintilla_send_message(sci, iMessage, wParam, lParam);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/scintilla/gtk/makefile new/scintilla/gtk/makefile
--- old/scintilla/gtk/makefile 2016-01-17 23:34:04.000000000 +0100
+++ new/scintilla/gtk/makefile 2016-03-13 05:16:34.000000000 +0100
@@ -37,6 +37,7 @@
endif
ifdef windir
+CC = gcc
DEL = del /q
COMPLIB=..\bin\scintilla.a
else
@@ -74,7 +75,7 @@
endif
CFLAGS:=$(CTFLAGS)
-CXXTFLAGS:=--std=c++0x $(CTFLAGS) $(REFLAGS)
+CXXTFLAGS:=--std=gnu++0x $(CTFLAGS) $(REFLAGS)
CONFIGFLAGS:=$(shell pkg-config --cflags $(GTKVERSION))
MARSHALLER=scintilla-marshal.o
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/scintilla/include/ScintillaWidget.h new/scintilla/include/ScintillaWidget.h
--- old/scintilla/include/ScintillaWidget.h 2016-01-17 23:34:04.000000000 +0100
+++ new/scintilla/include/ScintillaWidget.h 2016-03-13 05:16:34.000000000 +0100
@@ -44,7 +44,7 @@
GType scintilla_object_get_type (void);
GtkWidget* scintilla_object_new (void);
-long scintilla_object_send_message (ScintillaObject *sci, unsigned int iMessage, guintptr wParam, gintptr lParam);
+gintptr scintilla_object_send_message (ScintillaObject *sci, unsigned int iMessage, guintptr wParam, gintptr lParam);
#ifndef G_IR_SCANNING
/* The legacy names confuse the g-ir-scanner program */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/scintilla/lexers/LexCPP.cxx new/scintilla/lexers/LexCPP.cxx
--- old/scintilla/lexers/LexCPP.cxx 2016-01-17 23:34:04.000000000 +0100
+++ new/scintilla/lexers/LexCPP.cxx 2016-03-13 05:16:34.000000000 +0100
@@ -1349,14 +1349,14 @@
}
}
if (options.foldSyntaxBased && (style == SCE_C_OPERATOR)) {
- if (ch == '{' || ch == '[') {
+ if (ch == '{' || ch == '[' || ch == '(') {
// Measure the minimum before a '{' to allow
// folding on "} else {"
if (levelMinCurrent > levelNext) {
levelMinCurrent = levelNext;
}
levelNext++;
- } else if (ch == '}' || ch == ']') {
+ } else if (ch == '}' || ch == ']' || ch == ')') {
levelNext--;
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/scintilla/lexers/LexHTML.cxx new/scintilla/lexers/LexHTML.cxx
--- old/scintilla/lexers/LexHTML.cxx 2015-08-03 01:21:07.000000000 +0200
+++ new/scintilla/lexers/LexHTML.cxx 2016-03-13 05:16:34.000000000 +0100
@@ -828,7 +828,7 @@
// handle end of Mako comment line
else if (isMako && makoComment && (ch == '\r' || ch == '\n')) {
makoComment = 0;
- styler.ColourTo(i, StateToPrint);
+ styler.ColourTo(i - 1, StateToPrint);
if (scriptLanguage == eScriptPython) {
state = SCE_HP_DEFAULT;
} else {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/scintilla/lexers/LexProgress.cxx new/scintilla/lexers/LexProgress.cxx
--- old/scintilla/lexers/LexProgress.cxx 2015-08-03 01:21:07.000000000 +0200
+++ new/scintilla/lexers/LexProgress.cxx 2016-03-13 05:16:34.000000000 +0100
@@ -9,7 +9,6 @@
/** TODO:
WebSpeed support in html lexer
Support "end triggers" expression of the triggers phrase
-Support more than 6 comments levels
**/
#include <stdlib.h>
#include <string.h>
@@ -44,13 +43,26 @@
enum SentenceStart { SetSentenceStart = 0xf, ResetSentenceStart = 0x10}; // true -> bit = 0
static void Colourise4glDoc(Sci_PositionU startPos, Sci_Position length, int initStyle, WordList *keywordlists[],
- Accessor &styler) {
+ Accessor &styler) {
- WordList &keywords1 = *keywordlists[0]; // regular keywords
- WordList &keywords2 = *keywordlists[1]; // block opening keywords, only when SentenceStart
- WordList &keywords3 = *keywordlists[2]; // block opening keywords
- //WordList &keywords4 = *keywordlists[3]; // preprocessor keywords. Not implemented
+ WordList &keywords1 = *keywordlists[0]; // regular keywords
+ WordList &keywords2 = *keywordlists[1]; // block opening keywords, only when SentenceStart
+ WordList &keywords3 = *keywordlists[2]; // block opening keywords
+ //WordList &keywords4 = *keywordlists[3]; // preprocessor keywords. Not implemented
+
+ Sci_Position currentLine = styler.GetLine(startPos);
+ // Initialize the block comment /* */ nesting level, if we are inside such a comment.
+ int blockCommentLevel = 0;
+ if (initStyle == SCE_4GL_COMMENT1 ||
+ initStyle == SCE_4GL_COMMENT1_) {
+ blockCommentLevel = styler.GetLineState(currentLine - 1);
+ }
+ // Do not leak single-line comments onto next line
+ if (initStyle == SCE_4GL_COMMENT2 ||
+ initStyle == SCE_4GL_COMMENT2_) {
+ initStyle = SCE_4GL_DEFAULT;
+ }
int visibleChars = 0;
int mask;
@@ -65,6 +77,19 @@
visibleChars = 0;
}
+ if (sc.atLineEnd) {
+ // Update the line state, so it can be seen by next line
+ currentLine = styler.GetLine(sc.currentPos);
+ if (sc.state == SCE_4GL_COMMENT1 ||
+ sc.state == SCE_4GL_COMMENT1_) {
+ // Inside a block comment, we set the line state
+ styler.SetLineState(currentLine, blockCommentLevel);
+ } else {
+ // Reset the line state
+ styler.SetLineState(currentLine, 0);
+ }
+ }
+
// Handle line continuation generically.
if ((sc.state & 0xf) < SCE_4GL_COMMENT1) {
if (sc.ch == '~') {
@@ -96,7 +121,9 @@
sc.SetState(SCE_4GL_DEFAULT | mask);
break;
case SCE_4GL_NUMBER:
- if (!(IsADigit(sc.ch))) {
+ // Hex numbers (0xnnnn) are supported so accept any
+ // alphanumeric character if it follows a leading digit.
+ if (!(IsAlphaNumeric(sc.ch))) {
sc.SetState(SCE_4GL_DEFAULT | mask);
}
break;
@@ -104,10 +131,10 @@
if (!IsAWordChar(sc.ch) && sc.ch != '-') {
char s[1000];
sc.GetCurrentLowered(s, sizeof(s));
- if ((((sc.state & 0x10) == 0) && keywords2.InList(s)) || keywords3.InList(s)) {
+ if ((((sc.state & 0x10) == 0) && keywords2.InListAbbreviated(s, '(')) || keywords3.InListAbbreviated(s, '(')) {
sc.ChangeState(SCE_4GL_BLOCK | ResetSentenceStart);
}
- else if (keywords1.InList(s)) {
+ else if (keywords1.InListAbbreviated(s, '(')) {
if ((s[0] == 'e' && s[1] =='n' && s[2] == 'd' && !isalnum(s[3]) && s[3] != '-') ||
(s[0] == 'f' && s[1] =='o' && s[2] == 'r' && s[3] == 'w' && s[4] =='a' && s[5] == 'r' && s[6] == 'd'&& !isalnum(s[7]))) {
sc.ChangeState(SCE_4GL_END | ResetSentenceStart);
@@ -141,20 +168,23 @@
sc.ForwardSetState(SCE_4GL_DEFAULT | mask);
}
break;
- default:
- if ((sc.state & 0xf) >= SCE_4GL_COMMENT1) {
- if (sc.ch == '*' && sc.chNext == '/') {
- sc.Forward();
- if ((sc.state & 0xf) == SCE_4GL_COMMENT1) {
- sc.ForwardSetState(SCE_4GL_DEFAULT | mask);
- }
- else
- sc.SetState((sc.state & 0x1f) - 1);
- } else if (sc.ch == '/' && sc.chNext == '*') {
- sc.Forward();
- sc.SetState((sc.state & 0x1f) + 1);
+ case SCE_4GL_COMMENT1:
+ if (sc.Match('/', '*')) {
+ blockCommentLevel++;
+ sc.Forward();
+ } else if (sc.Match('*', '/') && blockCommentLevel > 0) {
+ blockCommentLevel--;
+ sc.Forward();
+ if (blockCommentLevel == 0) {
+ sc.ForwardSetState(SCE_4GL_DEFAULT | mask);
}
}
+ break;
+ case SCE_4GL_COMMENT2:
+ if (sc.atLineEnd) {
+ sc.ForwardSetState(SCE_4GL_DEFAULT | mask);
+ }
+ break;
}
// Determine if a new state should be entered.
@@ -164,9 +194,13 @@
sc.SetState(SCE_4GL_NUMBER | ResetSentenceStart);
} else if (IsAWordStart(sc.ch) || (sc.ch == '@')) {
sc.SetState(SCE_4GL_IDENTIFIER | mask);
- } else if (sc.ch == '/' && sc.chNext == '*') {
+ } else if (sc.Match('/', '*')) {
+ blockCommentLevel = 1;
sc.SetState(SCE_4GL_COMMENT1 | mask);
sc.Forward();
+ } else if (sc.Match('/', '/') &&
+ (sc.atLineStart || sc.chPrev == ' ')) {
+ sc.SetState(SCE_4GL_COMMENT2 | mask);
} else if (sc.ch == '\"') {
sc.SetState(SCE_4GL_STRING | ResetSentenceStart);
} else if (sc.ch == '\'') {
@@ -199,7 +233,7 @@
}
static bool IsStreamCommentStyle(int style) {
- return (style & 0xf) >= SCE_4GL_COMMENT1 ;
+ return (style & 0xf) == SCE_4GL_COMMENT1 ;
}
// Store both the current line's fold level and the next lines in the
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/scintilla/lexers/LexRuby.cxx new/scintilla/lexers/LexRuby.cxx
--- old/scintilla/lexers/LexRuby.cxx 2015-08-03 01:21:07.000000000 +0200
+++ new/scintilla/lexers/LexRuby.cxx 2016-03-13 05:16:34.000000000 +0100
@@ -433,6 +433,32 @@
return true;
}
+// Finds the start position of the expression containing @p pos
+// @p min_pos should be a known expression start, e.g. the start of the line
+static Sci_Position findExpressionStart(Sci_Position pos,
+ Sci_Position min_pos,
+ Accessor &styler) {
+ int depth = 0;
+ for (; pos > min_pos; pos -= 1) {
+ int style = styler.StyleAt(pos - 1);
+ if (style == SCE_RB_OPERATOR) {
+ int ch = styler[pos - 1];
+ if (ch == '}' || ch == ')' || ch == ']') {
+ depth += 1;
+ } else if (ch == '{' || ch == '(' || ch == '[') {
+ if (depth == 0) {
+ break;
+ } else {
+ depth -= 1;
+ }
+ } else if (ch == ';' && depth == 0) {
+ break;
+ }
+ }
+ }
+ return pos;
+}
+
// We need a check because the form
// [identifier] <<[target]
// is ambiguous. The Ruby lexer/parser resolves it by
@@ -458,14 +484,18 @@
const bool definitely_not_a_here_doc = true;
const bool looks_like_a_here_doc = false;
+ // find the expression start rather than the line start
+ Sci_Position exprStartPosn = findExpressionStart(lt2StartPos, lineStartPosn, styler);
+
// Find the first word after some whitespace
- Sci_Position firstWordPosn = skipWhitespace(lineStartPosn, lt2StartPos, styler);
+ Sci_Position firstWordPosn = skipWhitespace(exprStartPosn, lt2StartPos, styler);
if (firstWordPosn >= lt2StartPos) {
return definitely_not_a_here_doc;
}
prevStyle = styler.StyleAt(firstWordPosn);
// If we have '<<' following a keyword, it's not a heredoc
if (prevStyle != SCE_RB_IDENTIFIER
+ && prevStyle != SCE_RB_SYMBOL
&& prevStyle != SCE_RB_INSTANCE_VAR
&& prevStyle != SCE_RB_CLASS_VAR) {
return definitely_not_a_here_doc;
@@ -503,6 +533,16 @@
}
// Skip next batch of white-space
firstWordPosn = skipWhitespace(firstWordPosn, lt2StartPos, styler);
+ // possible symbol for an implicit hash argument
+ if (firstWordPosn < lt2StartPos && styler.StyleAt(firstWordPosn) == SCE_RB_SYMBOL) {
+ for (; firstWordPosn <= lt2StartPos; firstWordPosn += 1) {
+ if (styler.StyleAt(firstWordPosn) != SCE_RB_SYMBOL) {
+ break;
+ }
+ }
+ // Skip next batch of white-space
+ firstWordPosn = skipWhitespace(firstWordPosn, lt2StartPos, styler);
+ }
if (firstWordPosn != lt2StartPos) {
// Have [[^ws[identifier]ws[*something_else*]ws<<
return definitely_not_a_here_doc;
@@ -1088,6 +1128,10 @@
// <name>= is a name only when being def'd -- Get it the next time
// This means that <name>=<name> is always lexed as
// <name>, (op, =), <name>
+ } else if (ch == ':'
+ && isSafeWordcharOrHigh(chPrev)
+ && strchr(" \t\n\r", chNext) != NULL) {
+ state = SCE_RB_SYMBOL;
} else if ((ch == '?' || ch == '!')
&& isSafeWordcharOrHigh(chPrev)
&& !isSafeWordcharOrHigh(chNext)) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/scintilla/lexers/LexRust.cxx new/scintilla/lexers/LexRust.cxx
--- old/scintilla/lexers/LexRust.cxx 2016-01-17 23:34:04.000000000 +0100
+++ new/scintilla/lexers/LexRust.cxx 2016-03-13 05:16:34.000000000 +0100
@@ -407,7 +407,18 @@
valid_char = ScanNumericEscape(styler, pos, 2, false);
} else if (n == 'u' && !ascii_only) {
pos += 2;
- valid_char = ScanNumericEscape(styler, pos, 4, false);
+ if (styler.SafeGetCharAt(pos, '\0') != '{') {
+ // old-style
+ valid_char = ScanNumericEscape(styler, pos, 4, false);
+ } else {
+ int n_digits = 0;
+ while (IsADigit(styler.SafeGetCharAt(++pos, '\0'), 16) && n_digits++ < 6) {
+ }
+ if (n_digits > 0 && styler.SafeGetCharAt(pos, '\0') == '}')
+ pos++;
+ else
+ valid_char = false;
+ }
} else if (n == 'U' && !ascii_only) {
pos += 2;
valid_char = ScanNumericEscape(styler, pos, 8, false);
@@ -579,7 +590,18 @@
error = !ScanNumericEscape(styler, pos, 2, true);
} else if (n == 'u' && !ascii_only) {
pos += 2;
- error = !ScanNumericEscape(styler, pos, 4, true);
+ if (styler.SafeGetCharAt(pos, '\0') != '{') {
+ // old-style
+ error = !ScanNumericEscape(styler, pos, 4, true);
+ } else {
+ int n_digits = 0;
+ while (IsADigit(styler.SafeGetCharAt(++pos, '\0'), 16) && n_digits++ < 6) {
+ }
+ if (n_digits > 0 && styler.SafeGetCharAt(pos, '\0') == '}')
+ pos++;
+ else
+ error = true;
+ }
} else if (n == 'U' && !ascii_only) {
pos += 2;
error = !ScanNumericEscape(styler, pos, 8, true);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/scintilla/qt/ScintillaEdit/ScintillaEdit.pro new/scintilla/qt/ScintillaEdit/ScintillaEdit.pro
--- old/scintilla/qt/ScintillaEdit/ScintillaEdit.pro 2016-01-17 23:34:04.000000000 +0100
+++ new/scintilla/qt/ScintillaEdit/ScintillaEdit.pro 2016-03-13 05:16:34.000000000 +0100
@@ -11,7 +11,7 @@
TEMPLATE = lib
CONFIG += lib_bundle
-VERSION = 3.6.3
+VERSION = 3.6.4
SOURCES += \
ScintillaEdit.cpp \
@@ -70,6 +70,9 @@
INCLUDEPATH += ../ScintillaEditBase ../../include ../../src ../../lexlib
DEFINES += SCINTILLA_QT=1 MAKING_LIBRARY=1 SCI_LEXER=1 _CRT_SECURE_NO_DEPRECATE=1
+CONFIG(release, debug|release) {
+ DEFINES += NDEBUG=1
+}
DESTDIR = ../../bin
DLLDESTDIR = ../../bin
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/scintilla/qt/ScintillaEditBase/PlatQt.cpp new/scintilla/qt/ScintillaEditBase/PlatQt.cpp
--- old/scintilla/qt/ScintillaEditBase/PlatQt.cpp 2016-01-17 23:34:04.000000000 +0100
+++ new/scintilla/qt/ScintillaEditBase/PlatQt.cpp 2016-03-13 05:16:34.000000000 +0100
@@ -819,8 +819,11 @@
#if defined(Q_OS_WIN)
// On Windows, Qt::ToolTip causes a crash when the list is clicked on
// so Qt::Tool is used.
- list->setParent(0, Qt::Tool | Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint |
- Qt::WindowDoesNotAcceptFocus);
+ list->setParent(0, Qt::Tool | Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint
+#if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)
+ | Qt::WindowDoesNotAcceptFocus
+#endif
+ );
#else
// On OS X, Qt::Tool takes focus so main window loses focus so
// keyboard stops working. Qt::ToolTip works but its only really
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/scintilla/qt/ScintillaEditBase/ScintillaEditBase.cpp new/scintilla/qt/ScintillaEditBase/ScintillaEditBase.cpp
--- old/scintilla/qt/ScintillaEditBase/ScintillaEditBase.cpp 2016-01-17 23:34:04.000000000 +0100
+++ new/scintilla/qt/ScintillaEditBase/ScintillaEditBase.cpp 2016-03-13 05:16:34.000000000 +0100
@@ -447,17 +447,9 @@
return 0;
}
-static std::vector<int> MapImeIndicators(QInputMethodEvent *event, bool preeditNotChanged)
+static std::vector<int> MapImeIndicators(QInputMethodEvent *event)
{
-#ifndef Q_OS_LINUX
- Q_UNUSED(preeditNotChanged)
-#endif
- const QString preeditStr = event->preeditString();
- std::vector<int> imeIndicator(preeditStr.length(), SC_INDICATOR_UNKNOWN);
-#ifdef Q_OS_LINUX
- const int imeCaretPos = GetImeCaretPos(event);
-#endif
-
+ std::vector<int> imeIndicator(event->preeditString().size(), SC_INDICATOR_UNKNOWN);
foreach (QInputMethodEvent::Attribute attr, event->attributes()) {
if (attr.type == QInputMethodEvent::TextFormat) {
QTextFormat format = attr.value.value<QTextFormat>();
@@ -465,12 +457,12 @@
int indicator = SC_INDICATOR_UNKNOWN;
switch (charFormat.underlineStyle()) {
- case QTextCharFormat::NoUnderline:
- indicator = SC_INDICATOR_TARGET; //target input
+ case QTextCharFormat::NoUnderline: // win32, linux
+ indicator = SC_INDICATOR_TARGET;
break;
- case QTextCharFormat::SingleUnderline:
- case QTextCharFormat::DashUnderline:
- indicator = SC_INDICATOR_INPUT; //normal input
+ case QTextCharFormat::SingleUnderline: // osx
+ case QTextCharFormat::DashUnderline: // win32, linux
+ indicator = SC_INDICATOR_INPUT;
break;
case QTextCharFormat::DotLine:
case QTextCharFormat::DashDotLine:
@@ -482,16 +474,19 @@
default:
indicator = SC_INDICATOR_UNKNOWN;
}
-#ifdef Q_OS_LINUX
- // ibus-qt has a bug to return only one underline style.
- // Q_OS_LINUX blocks are temporary work around to cope with it.
- if ((attr.length > 0) && (attr.start == imeCaretPos)) {
+
+ if (format.hasProperty(QTextFormat::BackgroundBrush)) // win32, linux
indicator = SC_INDICATOR_TARGET;
- if ((imeCaretPos == 0) && (preeditNotChanged)) { // moved by an arrow key.
- indicator = SC_INDICATOR_INPUT;
+
+#ifdef Q_OS_OSX
+ if (charFormat.underlineStyle() == QTextCharFormat::SingleUnderline) {
+ QColor uc = charFormat.underlineColor();
+ if (uc.lightness() < 2) { // osx
+ indicator = SC_INDICATOR_TARGET;
}
}
#endif
+
for (int i = attr.start; i < attr.start+attr.length; i++) {
imeIndicator[i] = indicator;
}
@@ -544,10 +539,7 @@
sqt->pdoc->TentativeStart(); // TentativeActive() from now on.
- std::vector<int> imeIndicator = MapImeIndicators(event, preeditString == preeditStr);
-#ifdef Q_OS_LINUX
- preeditString = preeditStr;
-#endif
+ std::vector<int> imeIndicator = MapImeIndicators(event);
// Display preedit characters one by one.
int imeCharPos[MAXLENINPUTIME] = {0};
@@ -578,7 +570,9 @@
MoveImeCarets(- imeCharPos[preeditStrLen] + imeCharPos[imeCaretPos]);
if (IsHangul(preeditStr.at(0))) {
+#ifndef Q_OS_WIN
MoveImeCarets(- imeCharPos[1]);
+#endif
sqt->view.imeCaretBlockOverride = true;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/scintilla/qt/ScintillaEditBase/ScintillaEditBase.pro new/scintilla/qt/ScintillaEditBase/ScintillaEditBase.pro
--- old/scintilla/qt/ScintillaEditBase/ScintillaEditBase.pro 2016-01-17 23:34:04.000000000 +0100
+++ new/scintilla/qt/ScintillaEditBase/ScintillaEditBase.pro 2016-03-13 05:16:34.000000000 +0100
@@ -11,7 +11,7 @@
TEMPLATE = lib
CONFIG += lib_bundle
-VERSION = 3.6.3
+VERSION = 3.6.4
SOURCES += \
PlatQt.cpp \
@@ -113,6 +113,9 @@
INCLUDEPATH += ../../include ../../src ../../lexlib
DEFINES += SCINTILLA_QT=1 MAKING_LIBRARY=1 SCI_LEXER=1 _CRT_SECURE_NO_DEPRECATE=1
+CONFIG(release, debug|release) {
+ DEFINES += NDEBUG=1
+}
DESTDIR = ../../bin
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/scintilla/qt/ScintillaEditPy/ScintillaEditPy.pro new/scintilla/qt/ScintillaEditPy/ScintillaEditPy.pro
--- old/scintilla/qt/ScintillaEditPy/ScintillaEditPy.pro 2014-08-10 01:52:02.000000000 +0200
+++ new/scintilla/qt/ScintillaEditPy/ScintillaEditPy.pro 2016-03-13 05:16:34.000000000 +0100
@@ -107,6 +107,9 @@
../ScintillaEditBase/ScintillaEditBase.h
DEFINES += SCINTILLA_QT=1 MAKING_LIBRARY=1 SCI_LEXER=1 _CRT_SECURE_NO_DEPRECATE=1
+CONFIG(release, debug|release) {
+ DEFINES += NDEBUG=1
+}
DESTDIR = ../../bin
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/scintilla/src/Document.cxx new/scintilla/src/Document.cxx
--- old/scintilla/src/Document.cxx 2016-01-17 23:34:04.000000000 +0100
+++ new/scintilla/src/Document.cxx 2016-03-13 05:16:34.000000000 +0100
@@ -436,12 +436,12 @@
if (levelTry & SC_FOLDLEVELWHITEFLAG)
return true;
else
- return (levelStart & SC_FOLDLEVELNUMBERMASK) < (levelTry & SC_FOLDLEVELNUMBERMASK);
+ return LevelNumber(levelStart) < LevelNumber(levelTry);
}
int Document::GetLastChild(int lineParent, int level, int lastLine) {
if (level == -1)
- level = GetLevel(lineParent) & SC_FOLDLEVELNUMBERMASK;
+ level = LevelNumber(GetLevel(lineParent));
int maxLine = LinesTotal();
int lookLastLine = (lastLine != -1) ? Platform::Minimum(LinesTotal() - 1, lastLine) : -1;
int lineMaxSubord = lineParent;
@@ -454,7 +454,7 @@
lineMaxSubord++;
}
if (lineMaxSubord > lineParent) {
- if (level > (GetLevel(lineMaxSubord + 1) & SC_FOLDLEVELNUMBERMASK)) {
+ if (level > LevelNumber(GetLevel(lineMaxSubord + 1))) {
// Have chewed up some whitespace that belongs to a parent so seek back
if (GetLevel(lineMaxSubord) & SC_FOLDLEVELWHITEFLAG) {
lineMaxSubord--;
@@ -465,16 +465,16 @@
}
int Document::GetFoldParent(int line) const {
- int level = GetLevel(line) & SC_FOLDLEVELNUMBERMASK;
+ int level = LevelNumber(GetLevel(line));
int lineLook = line - 1;
while ((lineLook > 0) && (
(!(GetLevel(lineLook) & SC_FOLDLEVELHEADERFLAG)) ||
- ((GetLevel(lineLook) & SC_FOLDLEVELNUMBERMASK) >= level))
+ (LevelNumber(GetLevel(lineLook)) >= level))
) {
lineLook--;
}
if ((GetLevel(lineLook) & SC_FOLDLEVELHEADERFLAG) &&
- ((GetLevel(lineLook) & SC_FOLDLEVELNUMBERMASK) < level)) {
+ (LevelNumber(GetLevel(lineLook)) < level)) {
return lineLook;
} else {
return -1;
@@ -487,11 +487,11 @@
int lookLine = line;
int lookLineLevel = level;
- int lookLineLevelNum = lookLineLevel & SC_FOLDLEVELNUMBERMASK;
+ int lookLineLevelNum = LevelNumber(lookLineLevel);
while ((lookLine > 0) && ((lookLineLevel & SC_FOLDLEVELWHITEFLAG) ||
- ((lookLineLevel & SC_FOLDLEVELHEADERFLAG) && (lookLineLevelNum >= (GetLevel(lookLine + 1) & SC_FOLDLEVELNUMBERMASK))))) {
+ ((lookLineLevel & SC_FOLDLEVELHEADERFLAG) && (lookLineLevelNum >= LevelNumber(GetLevel(lookLine + 1)))))) {
lookLineLevel = GetLevel(--lookLine);
- lookLineLevelNum = lookLineLevel & SC_FOLDLEVELNUMBERMASK;
+ lookLineLevelNum = LevelNumber(lookLineLevel);
}
int beginFoldBlock = (lookLineLevel & SC_FOLDLEVELHEADERFLAG) ? lookLine : GetFoldParent(lookLine);
@@ -505,7 +505,7 @@
if (endFoldBlock < line) {
lookLine = beginFoldBlock - 1;
lookLineLevel = GetLevel(lookLine);
- lookLineLevelNum = lookLineLevel & SC_FOLDLEVELNUMBERMASK;
+ lookLineLevelNum = LevelNumber(lookLineLevel);
while ((lookLine >= 0) && (lookLineLevelNum >= SC_FOLDLEVELBASE)) {
if (lookLineLevel & SC_FOLDLEVELHEADERFLAG) {
if (GetLastChild(lookLine, -1, lookLastLine) == line) {
@@ -514,17 +514,17 @@
firstChangeableLineBefore = line - 1;
}
}
- if ((lookLine > 0) && (lookLineLevelNum == SC_FOLDLEVELBASE) && ((GetLevel(lookLine - 1) & SC_FOLDLEVELNUMBERMASK) > lookLineLevelNum))
+ if ((lookLine > 0) && (lookLineLevelNum == SC_FOLDLEVELBASE) && (LevelNumber(GetLevel(lookLine - 1)) > lookLineLevelNum))
break;
lookLineLevel = GetLevel(--lookLine);
- lookLineLevelNum = lookLineLevel & SC_FOLDLEVELNUMBERMASK;
+ lookLineLevelNum = LevelNumber(lookLineLevel);
}
}
if (firstChangeableLineBefore == -1) {
- for (lookLine = line - 1, lookLineLevel = GetLevel(lookLine), lookLineLevelNum = lookLineLevel & SC_FOLDLEVELNUMBERMASK;
+ for (lookLine = line - 1, lookLineLevel = GetLevel(lookLine), lookLineLevelNum = LevelNumber(lookLineLevel);
lookLine >= beginFoldBlock;
- lookLineLevel = GetLevel(--lookLine), lookLineLevelNum = lookLineLevel & SC_FOLDLEVELNUMBERMASK) {
- if ((lookLineLevel & SC_FOLDLEVELWHITEFLAG) || (lookLineLevelNum > (level & SC_FOLDLEVELNUMBERMASK))) {
+ lookLineLevel = GetLevel(--lookLine), lookLineLevelNum = LevelNumber(lookLineLevel)) {
+ if ((lookLineLevel & SC_FOLDLEVELWHITEFLAG) || (lookLineLevelNum > LevelNumber(level))) {
firstChangeableLineBefore = lookLine;
break;
}
@@ -534,10 +534,10 @@
firstChangeableLineBefore = beginFoldBlock - 1;
int firstChangeableLineAfter = -1;
- for (lookLine = line + 1, lookLineLevel = GetLevel(lookLine), lookLineLevelNum = lookLineLevel & SC_FOLDLEVELNUMBERMASK;
+ for (lookLine = line + 1, lookLineLevel = GetLevel(lookLine), lookLineLevelNum = LevelNumber(lookLineLevel);
lookLine <= endFoldBlock;
- lookLineLevel = GetLevel(++lookLine), lookLineLevelNum = lookLineLevel & SC_FOLDLEVELNUMBERMASK) {
- if ((lookLineLevel & SC_FOLDLEVELHEADERFLAG) && (lookLineLevelNum < (GetLevel(lookLine + 1) & SC_FOLDLEVELNUMBERMASK))) {
+ lookLineLevel = GetLevel(++lookLine), lookLineLevelNum = LevelNumber(lookLineLevel)) {
+ if ((lookLineLevel & SC_FOLDLEVELHEADERFLAG) && (lookLineLevelNum < LevelNumber(GetLevel(lookLine + 1)))) {
firstChangeableLineAfter = lookLine;
break;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/scintilla/src/Document.h new/scintilla/src/Document.h
--- old/scintilla/src/Document.h 2016-01-17 23:34:04.000000000 +0100
+++ new/scintilla/src/Document.h 2016-03-13 05:16:34.000000000 +0100
@@ -171,6 +171,10 @@
class Document;
+inline int LevelNumber(int level) {
+ return level & SC_FOLDLEVELNUMBERMASK;
+}
+
class LexInterface {
protected:
Document *pdoc;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/scintilla/src/EditView.cxx new/scintilla/src/EditView.cxx
--- old/scintilla/src/EditView.cxx 2016-01-17 23:34:04.000000000 +0100
+++ new/scintilla/src/EditView.cxx 2016-03-13 05:16:34.000000000 +0100
@@ -1744,7 +1744,7 @@
const int level = model.pdoc->GetLevel(line);
const int levelNext = model.pdoc->GetLevel(line + 1);
if ((level & SC_FOLDLEVELHEADERFLAG) &&
- ((level & SC_FOLDLEVELNUMBERMASK) < (levelNext & SC_FOLDLEVELNUMBERMASK))) {
+ (LevelNumber(level) < LevelNumber(levelNext))) {
// Paint the line above the fold
if ((expanded && (model.foldFlags & SC_FOLDFLAG_LINEBEFORE_EXPANDED))
||
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/scintilla/src/Editor.cxx new/scintilla/src/Editor.cxx
--- old/scintilla/src/Editor.cxx 2016-01-17 23:34:04.000000000 +0100
+++ new/scintilla/src/Editor.cxx 2016-03-13 05:16:34.000000000 +0100
@@ -5292,7 +5292,7 @@
if (expanding && (cs.HiddenLines() == 0))
// Nothing to do
return;
- int lineMaxSubord = pdoc->GetLastChild(line, level & SC_FOLDLEVELNUMBERMASK);
+ int lineMaxSubord = pdoc->GetLastChild(line, LevelNumber(level));
line++;
cs.SetVisible(line, lineMaxSubord, expanding);
while (line <= lineMaxSubord) {
@@ -5399,7 +5399,7 @@
for (int line = 0; line < maxLine; line++) {
int level = pdoc->GetLevel(line);
if ((level & SC_FOLDLEVELHEADERFLAG) &&
- (SC_FOLDLEVELBASE == (level & SC_FOLDLEVELNUMBERMASK))) {
+ (SC_FOLDLEVELBASE == LevelNumber(level))) {
SetFoldExpanded(line, false);
int lineMaxSubord = pdoc->GetLastChild(line, -1);
if (lineMaxSubord > line) {
@@ -5422,17 +5422,25 @@
FoldExpand(line, SC_FOLDACTION_EXPAND, levelPrev);
}
} else if (levelPrev & SC_FOLDLEVELHEADERFLAG) {
+ const int prevLine = line - 1;
+ const int prevLineLevel = pdoc->GetLevel(prevLine);
+
+ // Combining two blocks where the first block is collapsed (e.g. by deleting the line(s) which separate(s) the two blocks)
+ if ((LevelNumber(prevLineLevel) == LevelNumber(levelNow)) && !cs.GetVisible(prevLine))
+ FoldLine(pdoc->GetFoldParent(prevLine), SC_FOLDACTION_EXPAND);
+
if (!cs.GetExpanded(line)) {
// Removing the fold from one that has been contracted so should expand
// otherwise lines are left invisible with no way to make them visible
if (cs.SetExpanded(line, true)) {
RedrawSelMargin();
}
+ // Combining two blocks where the second one is collapsed (e.g. by adding characters in the line which separates the two blocks)
FoldExpand(line, SC_FOLDACTION_EXPAND, levelPrev);
}
}
if (!(levelNow & SC_FOLDLEVELWHITEFLAG) &&
- ((levelPrev & SC_FOLDLEVELNUMBERMASK) > (levelNow & SC_FOLDLEVELNUMBERMASK))) {
+ (LevelNumber(levelPrev) > LevelNumber(levelNow))) {
if (cs.HiddenLines()) {
// See if should still be hidden
int parentLine = pdoc->GetFoldParent(line);
@@ -5443,6 +5451,15 @@
}
}
}
+
+ // Combining two blocks where the first one is collapsed (e.g. by adding characters in the line which separates the two blocks)
+ if (!(levelNow & SC_FOLDLEVELWHITEFLAG) && (LevelNumber(levelPrev) < LevelNumber(levelNow))) {
+ if (cs.HiddenLines()) {
+ const int parentLine = pdoc->GetFoldParent(line);
+ if (!cs.GetExpanded(parentLine) && cs.GetExpanded(line))
+ FoldLine(parentLine, SC_FOLDACTION_EXPAND);
+ }
+ }
}
void Editor::NeedShown(int pos, int len) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/scintilla/src/MarginView.cxx new/scintilla/src/MarginView.cxx
--- old/scintilla/src/MarginView.cxx 2015-08-03 01:21:07.000000000 +0200
+++ new/scintilla/src/MarginView.cxx 2016-03-13 05:16:34.000000000 +0100
@@ -243,7 +243,7 @@
levelPrev = model.pdoc->GetLevel(lineBack);
}
if (!(levelPrev & SC_FOLDLEVELHEADERFLAG)) {
- if ((level & SC_FOLDLEVELNUMBERMASK) < (levelPrev & SC_FOLDLEVELNUMBERMASK))
+ if (LevelNumber(level) < LevelNumber(levelPrev))
needWhiteClosure = true;
}
}
@@ -279,8 +279,8 @@
// Decide which fold indicator should be displayed
const int level = model.pdoc->GetLevel(lineDoc);
const int levelNext = model.pdoc->GetLevel(lineDoc + 1);
- const int levelNum = level & SC_FOLDLEVELNUMBERMASK;
- const int levelNextNum = levelNext & SC_FOLDLEVELNUMBERMASK;
+ const int levelNum = LevelNumber(level);
+ const int levelNextNum = LevelNumber(levelNext);
if (level & SC_FOLDLEVELHEADERFLAG) {
if (firstSubLine) {
if (levelNum < levelNextNum) {
@@ -312,7 +312,7 @@
needWhiteClosure = false;
const int firstFollowupLine = model.cs.DocFromDisplay(model.cs.DisplayFromDoc(lineDoc + 1));
const int firstFollowupLineLevel = model.pdoc->GetLevel(firstFollowupLine);
- const int secondFollowupLineLevelNum = model.pdoc->GetLevel(firstFollowupLine + 1) & SC_FOLDLEVELNUMBERMASK;
+ const int secondFollowupLineLevelNum = LevelNumber(model.pdoc->GetLevel(firstFollowupLine + 1));
if (!model.cs.GetExpanded(lineDoc)) {
if ((firstFollowupLineLevel & SC_FOLDLEVELWHITEFLAG) &&
(levelNum > secondFollowupLineLevelNum))
@@ -380,7 +380,7 @@
sprintf(number, "%c%c %03X %03X",
(lev & SC_FOLDLEVELHEADERFLAG) ? 'H' : '_',
(lev & SC_FOLDLEVELWHITEFLAG) ? 'W' : '_',
- lev & SC_FOLDLEVELNUMBERMASK,
+ LevelNumber(lev),
lev >> 16
);
} else {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/scintilla/test/gi/Scintilla-0.1.gir.good new/scintilla/test/gi/Scintilla-0.1.gir.good
--- old/scintilla/test/gi/Scintilla-0.1.gir.good 2016-01-17 23:34:04.000000000 +0100
+++ new/scintilla/test/gi/Scintilla-0.1.gir.good 2016-03-13 05:16:34.000000000 +0100
@@ -53,7 +53,7 @@
</virtual-method>
<method name="send_message" c:identifier="scintilla_object_send_message">
<return-value transfer-ownership="none">
- <type name="glong" c:type="long"/>
+ <type name="gintptr" c:type="gintptr"/>
</return-value>
<parameters>
<instance-parameter name="sci" transfer-ownership="none">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/scintilla/test/simpleTests.py new/scintilla/test/simpleTests.py
--- old/scintilla/test/simpleTests.py 2015-09-05 00:28:50.000000000 +0200
+++ new/scintilla/test/simpleTests.py 2016-03-13 05:16:34.000000000 +0100
@@ -493,13 +493,15 @@
self.ed.AddText(5, b"a1b2c")
self.ed.SetSel(1,3)
self.ed.Cut()
- self.xite.DoEvents()
+ # Clipboard = "1b"
+ self.assertEquals(self.ed.Contents(), b"a2c")
self.assertEquals(self.ed.CanPaste(), 1)
self.ed.SetSel(0, 0)
self.ed.Paste()
self.assertEquals(self.ed.Contents(), b"1ba2c")
self.ed.SetSel(4,5)
self.ed.Copy()
+ # Clipboard = "c"
self.ed.SetSel(1,3)
self.ed.Paste()
self.assertEquals(self.ed.Contents(), b"1c2c")
@@ -508,13 +510,12 @@
self.assertEquals(self.ed.Contents(), b"1c")
def testCopyAllowLine(self):
- self.xite.DoEvents()
lineEndType = self.ed.EOLMode
self.ed.EOLMode = self.ed.SC_EOL_LF
self.ed.AddText(5, b"a1\nb2")
self.ed.SetSel(1,1)
self.ed.CopyAllowLine()
- self.xite.DoEvents()
+ # Clipboard = "a1\n"
self.assertEquals(self.ed.CanPaste(), 1)
self.ed.SetSel(0, 0)
self.ed.Paste()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/scintilla/version.txt new/scintilla/version.txt
--- old/scintilla/version.txt 2016-01-17 23:34:04.000000000 +0100
+++ new/scintilla/version.txt 2016-03-13 05:16:34.000000000 +0100
@@ -1 +1 @@
-363
+364
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/scintilla/win32/PlatWin.cxx new/scintilla/win32/PlatWin.cxx
--- old/scintilla/win32/PlatWin.cxx 2016-01-17 23:34:04.000000000 +0100
+++ new/scintilla/win32/PlatWin.cxx 2016-03-13 05:16:34.000000000 +0100
@@ -5,6 +5,7 @@
// Copyright 1998-2003 by Neil Hodgson <neilh(a)scintilla.org>
// The License.txt file describes the conditions under which this software may be distributed.
+#include <stddef.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/scintilla/win32/ScintRes.rc new/scintilla/win32/ScintRes.rc
--- old/scintilla/win32/ScintRes.rc 2016-01-17 23:34:04.000000000 +0100
+++ new/scintilla/win32/ScintRes.rc 2016-03-13 05:16:34.000000000 +0100
@@ -4,8 +4,8 @@
#include <windows.h>
-#define VERSION_SCINTILLA "3.6.3"
-#define VERSION_WORDS 3, 6, 3, 0
+#define VERSION_SCINTILLA "3.6.4"
+#define VERSION_WORDS 3, 6, 4, 0
VS_VERSION_INFO VERSIONINFO
FILEVERSION VERSION_WORDS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/scintilla/win32/ScintillaWin.cxx new/scintilla/win32/ScintillaWin.cxx
--- old/scintilla/win32/ScintillaWin.cxx 2016-01-17 23:34:04.000000000 +0100
+++ new/scintilla/win32/ScintillaWin.cxx 2016-03-13 05:16:34.000000000 +0100
@@ -210,6 +210,24 @@
if (hIMC)
::ImmReleaseContext(hwnd, hIMC);
}
+
+ unsigned int GetImeCaretPos() {
+ return ImmGetCompositionStringW(hIMC, GCS_CURSORPOS, NULL, 0);
+ }
+
+ std::vector<BYTE> GetImeAttributes() {
+ int attrLen = ::ImmGetCompositionStringW(hIMC, GCS_COMPATTR, NULL, 0);
+ std::vector<BYTE> attr(attrLen, 0);
+ ::ImmGetCompositionStringW(hIMC, GCS_COMPATTR, &attr[0], static_cast<DWORD>(attr.size()));
+ return attr;
+ }
+
+ std::wstring GetCompositionString(DWORD dwIndex) {
+ const LONG byteLen = ::ImmGetCompositionStringW(hIMC, dwIndex, NULL, 0);
+ std::wstring wcs(byteLen / 2, 0);
+ ::ImmGetCompositionStringW(hIMC, dwIndex, &wcs[0], byteLen);
+ return wcs;
+ }
};
}
@@ -291,6 +309,7 @@
void SelectionToHangul();
void EscapeHanja();
void ToggleHanja();
+ void AddWString(std::wstring wcs);
UINT CodePageOfDocument() const;
virtual bool ValidCodePage(int codePage) const;
@@ -834,24 +853,8 @@
if (lParam & GCS_RESULTSTR) {
IMContext imc(MainHWND());
if (imc.hIMC) {
- wchar_t wcs[maxLenInputIME];
- LONG bytes = ::ImmGetCompositionStringW(imc.hIMC,
- GCS_RESULTSTR, wcs, (maxLenInputIME-1)*2);
- int wides = bytes / 2;
- if (IsUnicodeMode()) {
- char utfval[maxLenInputIME * 3];
- unsigned int len = UTF8Length(wcs, wides);
- UTF8FromUTF16(wcs, wides, utfval, len);
- utfval[len] = '\0';
- AddCharUTF(utfval, len);
- } else {
- char dbcsval[maxLenInputIME * 2];
- int size = ::WideCharToMultiByte(InputCodePage(),
- 0, wcs, wides, dbcsval, sizeof(dbcsval) - 1, 0, 0);
- for (int i=0; i<size; i++) {
- AddChar(dbcsval[i]);
- }
- }
+ AddWString(imc.GetCompositionString(GCS_RESULTSTR));
+
// Set new position after converted
Point pos = PointMainCaret();
COMPOSITIONFORM CompForm;
@@ -1000,18 +1003,9 @@
}
}
-static unsigned int GetImeCaretPos(HIMC hIMC) {
- return ImmGetCompositionStringW(hIMC, GCS_CURSORPOS, NULL, 0);
-}
-
-static std::vector<BYTE> GetImeAttributes(HIMC hIMC) {
- int attrLen = ::ImmGetCompositionStringW(hIMC, GCS_COMPATTR, NULL, 0);
- std::vector<BYTE> attr(attrLen, 0);
- ::ImmGetCompositionStringW(hIMC, GCS_COMPATTR, &attr[0], static_cast<DWORD>(attr.size()));
- return attr;
-}
+namespace {
-static std::vector<int> MapImeIndicators(std::vector<BYTE> inputStyle) {
+std::vector<int> MapImeIndicators(std::vector<BYTE> inputStyle) {
std::vector<int> imeIndicator(inputStyle.size(), SC_INDICATOR_UNKNOWN);
for (size_t i = 0; i < inputStyle.size(); i++) {
switch (static_cast<int>(inputStyle.at(i))) {
@@ -1033,6 +1027,23 @@
return imeIndicator;
}
+}
+
+void ScintillaWin::AddWString(std::wstring wcs) {
+ if (wcs.empty())
+ return;
+
+ int codePage = CodePageOfDocument();
+ for (size_t i = 0; i < wcs.size(); ) {
+ const size_t ucWidth = UTF16CharLength(wcs[i]);
+ const std::wstring uniChar(wcs, i, ucWidth);
+ std::string docChar = StringEncode(uniChar, codePage);
+
+ AddCharUTF(docChar.c_str(), static_cast<unsigned int>(docChar.size()));
+ i += ucWidth;
+ }
+}
+
sptr_t ScintillaWin::HandleCompositionInline(uptr_t, sptr_t lParam) {
// Copy & paste by johnsonj with a lot of helps of Neil.
// Great thanks for my foreruners, jiniya and BLUEnLIVE.
@@ -1056,82 +1067,42 @@
view.imeCaretBlockOverride = false;
if (lParam & GCS_COMPSTR) {
- wchar_t wcs[maxLenInputIME] = { 0 };
- long bytes = ::ImmGetCompositionStringW
- (imc.hIMC, GCS_COMPSTR, wcs, maxLenInputIME);
- unsigned int wcsLen = bytes / 2;
-
- if ((wcsLen == 0) || (wcsLen >= maxLenInputIME)) {
+ const std::wstring wcs = imc.GetCompositionString(GCS_COMPSTR);
+ if ((wcs.size() == 0) || (wcs.size() >= maxLenInputIME)) {
ShowCaretAtCurrentPosition();
return 0;
}
pdoc->TentativeStart(); // TentativeActive from now on.
- std::vector<int> imeIndicator = MapImeIndicators(GetImeAttributes(imc.hIMC));
-
- // Display character by character.
- int numBytes = 0;
- int imeCharPos[maxLenInputIME + 1] = { 0 };
+ std::vector<int> imeIndicator = MapImeIndicators(imc.GetImeAttributes());
bool tmpRecordingMacro = recordingMacro;
recordingMacro = false;
- for (size_t i = 0; i < wcsLen; ) {
+ int codePage = CodePageOfDocument();
+ for (size_t i = 0; i < wcs.size(); ) {
const size_t ucWidth = UTF16CharLength(wcs[i]);
- const std::wstring uniChar(wcs+i, ucWidth);
- char oneChar[UTF8MaxBytes + 1] = "\0\0\0\0"; // Maximum 4 bytes in utf8
- unsigned int oneCharLen = 0;
+ const std::wstring uniChar(wcs, i, ucWidth);
+ std::string docChar = StringEncode(uniChar, codePage);
- if (IsUnicodeMode()) {
- oneCharLen = UTF8Length(uniChar.c_str(), static_cast<unsigned int>(uniChar.length()));
- UTF8FromUTF16(uniChar.c_str(), static_cast<unsigned int>(uniChar.length()), oneChar, oneCharLen);
- } else {
- oneCharLen = ::WideCharToMultiByte(InputCodePage(), 0,
- uniChar.c_str(), static_cast<unsigned int>(uniChar.length()), oneChar, sizeof(oneChar)-1, 0, 0);
- }
- oneChar[oneCharLen] = '\0';
-
- // Display a character.
- AddCharUTF(oneChar, oneCharLen);
+ AddCharUTF(docChar.c_str(), static_cast<unsigned int>(docChar.size()));
- // Record compstr character positions for moving IME carets.
- numBytes += oneCharLen;
- imeCharPos[i + ucWidth] = numBytes;
-
- DrawImeIndicator(imeIndicator[i], oneCharLen);
+ DrawImeIndicator(imeIndicator[i], static_cast<unsigned int>(docChar.size()));
i += ucWidth;
}
recordingMacro = tmpRecordingMacro;
- // Move IME caret position.
- unsigned int imeCursorPos = GetImeCaretPos(imc.hIMC);
- MoveImeCarets(-imeCharPos[wcsLen] + imeCharPos[imeCursorPos]);
+ // Move IME caret from current last position to imeCaretPos.
+ int toImeStart = static_cast<unsigned int>(StringEncode(wcs, codePage).size());
+ std::string imeCaret(StringEncode(wcs.substr(0, imc.GetImeCaretPos()), codePage));
+ int toImeCaret = static_cast<unsigned int>(imeCaret.size());
+ MoveImeCarets(- toImeStart + toImeCaret);
+
if (KoreanIME()) {
view.imeCaretBlockOverride = true;
}
} else if (lParam & GCS_RESULTSTR) {
- wchar_t wcs[maxLenInputIME] = { 0 };
- long bytes = ::ImmGetCompositionStringW
- (imc.hIMC, GCS_RESULTSTR, wcs, maxLenInputIME);
- unsigned int wcsLen = bytes / 2;
-
- for (size_t i = 0; i < wcsLen;) {
- const size_t ucWidth = UTF16CharLength(wcs[i]);
- const std::wstring uniChar(wcs+i, ucWidth);
- char oneChar[UTF8MaxBytes+1] = "\0\0\0\0"; // Maximum 4 bytes in UTF-8.
- unsigned int oneCharLen = 0;
-
- if (IsUnicodeMode()) {
- oneCharLen = UTF8Length(uniChar.c_str(), static_cast<unsigned int>(uniChar.length()));
- UTF8FromUTF16(uniChar.c_str(), static_cast<unsigned int>(uniChar.length()), oneChar, oneCharLen);
- } else {
- oneCharLen = ::WideCharToMultiByte(InputCodePage(), 0,
- uniChar.c_str(), static_cast<unsigned int>(uniChar.length()), oneChar, sizeof(oneChar)-1, 0, 0);
- }
- oneChar[oneCharLen] = '\0';
- AddCharUTF(oneChar, oneCharLen);
- i += ucWidth;
- }
+ AddWString(imc.GetCompositionString(GCS_RESULTSTR));
}
EnsureCaretVisible();
SetCandidateWindowPos();
@@ -2213,9 +2184,25 @@
}
};
+// OpenClipboard may fail if another application has opened the clipboard.
+// Try up to 8 times, with an initial delay of 1 ms and an exponential back off
+// for a maximum total delay of 127 ms (1+2+4+8+16+32+64).
+static bool OpenClipboardRetry(HWND hwnd) {
+ for (int attempt=0; attempt<8; attempt++) {
+ if (attempt > 0) {
+ ::Sleep(1 << (attempt-1));
+ }
+ if (::OpenClipboard(hwnd)) {
+ return true;
+ }
+ }
+ return false;
+}
+
void ScintillaWin::Paste() {
- if (!::OpenClipboard(MainHWND()))
+ if (!::OpenClipboardRetry(MainHWND())) {
return;
+ }
UndoGroup ug(pdoc);
const bool isLine = SelectionEmpty() &&
(::IsClipboardFormatAvailable(cfLineSelect) || ::IsClipboardFormatAvailable(cfVSLineTag));
@@ -2766,8 +2753,9 @@
}
void ScintillaWin::CopyToClipboard(const SelectionText &selectedText) {
- if (!::OpenClipboard(MainHWND()))
+ if (!::OpenClipboardRetry(MainHWND())) {
return;
+ }
::EmptyClipboard();
GlobalMemory uniText;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/scintilla/win32/makefile new/scintilla/win32/makefile
--- old/scintilla/win32/makefile 2016-01-17 23:34:04.000000000 +0100
+++ new/scintilla/win32/makefile 2016-03-13 05:16:34.000000000 +0100
@@ -31,7 +31,7 @@
D2DFLAGS=-DDISABLE_D2D
endif
-CXXBASEFLAGS=--std=c++0x -Wall -pedantic $(INCLUDEDIRS) $(D2DFLAGS)
+CXXBASEFLAGS=--std=gnu++0x -Wall -pedantic $(INCLUDEDIRS) $(D2DFLAGS)
ifdef CXX11_REGEX
REFLAGS=-DCXX11_REGEX
@@ -96,7 +96,7 @@
SOBJS = ScintillaWin.o ScintillaBase.o $(BASEOBJS)
-$(COMPONENT): $(SOBJS)
+$(COMPONENT): $(SOBJS) Scintilla.def
$(CXX) $(LDFLAGS) -o $@ $(STRIPFLAG) $(SOBJS) $(CXXFLAGS) $(LIBS)
LOBJS = \
@@ -112,7 +112,7 @@
WordList.o \
$(BASEOBJS) \
$(LEXOBJS)
-$(LEXCOMPONENT): $(LOBJS)
+$(LEXCOMPONENT): $(LOBJS) Scintilla.def
$(CXX) $(LDFLAGS) -o $@ $(STRIPFLAG) $(LOBJS) $(CXXFLAGS) $(LIBS)
$(LEXLIB): $(LEXOBJS)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/scintilla/win32/scintilla.mak new/scintilla/win32/scintilla.mak
--- old/scintilla/win32/scintilla.mak 2016-01-17 23:34:04.000000000 +0100
+++ new/scintilla/win32/scintilla.mak 2016-03-13 05:16:34.000000000 +0100
@@ -228,10 +228,10 @@
$(RC) -fo$@ $**
$(COMPONENT): $(SOBJS) $(DIR_O)\ScintRes.res
- $(LD) $(LDFLAGS) -DLL -OUT:$@ $** $(LIBS)
+ $(LD) $(LDFLAGS) -DEF:Scintilla.def -DLL -OUT:$@ $** $(LIBS)
$(LEXCOMPONENT): $(LOBJS) $(DIR_O)\ScintRes.res
- $(LD) $(LDFLAGS) -DLL -OUT:$@ $** $(LIBS)
+ $(LD) $(LDFLAGS) -DEF:Scintilla.def -DLL -OUT:$@ $** $(LIBS)
$(LEXLIB): $(LEXOBJS)
LIB /OUT:$@ $(LEXOBJS)
1
0
Hello community,
here is the log from the commit of package python3-numexpr for openSUSE:Factory checked in at 2016-04-22 16:24:08
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python3-numexpr (Old)
and /work/SRC/openSUSE:Factory/.python3-numexpr.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python3-numexpr"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python3-numexpr/python3-numexpr.changes 2016-04-03 23:07:30.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.python3-numexpr.new/python3-numexpr.changes 2016-04-22 16:24:09.000000000 +0200
@@ -1,0 +2,8 @@
+Fri Apr 8 06:03:57 UTC 2016 - arun(a)gmx.de
+
+- update to version 2.5.2:
+ * conj() and abs() actually added as VML-powered functions,
+ preventing the same problems than log10() before (PR #212). Thanks
+ to Tom Kooij for the fix!
+
+-------------------------------------------------------------------
Old:
----
numexpr-2.5.1.tar.gz
New:
----
numexpr-2.5.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python3-numexpr.spec ++++++
--- /var/tmp/diff_new_pack.xyZEKd/_old 2016-04-22 16:24:10.000000000 +0200
+++ /var/tmp/diff_new_pack.xyZEKd/_new 2016-04-22 16:24:10.000000000 +0200
@@ -17,7 +17,7 @@
Name: python3-numexpr
-Version: 2.5.1
+Version: 2.5.2
Release: 0
Url: https://github.com/pydata/numexpr
Summary: Fast numerical expression evaluator for NumPy
++++++ numexpr-2.5.1.tar.gz -> numexpr-2.5.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numexpr-2.5.1/ANNOUNCE.rst new/numexpr-2.5.2/ANNOUNCE.rst
--- old/numexpr-2.5.1/ANNOUNCE.rst 2016-03-31 09:22:51.000000000 +0200
+++ new/numexpr-2.5.2/ANNOUNCE.rst 2016-04-07 11:35:39.000000000 +0200
@@ -1,5 +1,5 @@
=========================
- Announcing Numexpr 2.5.1
+ Announcing Numexpr 2.5.2
=========================
Numexpr is a fast numerical expression evaluator for NumPy. With it,
@@ -21,12 +21,11 @@
What's new
==========
-Fixed a critical bug that caused wrong evaluations of log10() and
-conj(). These produced wrong results when numexpr was compiled with
-Intel's MKL (which is a popular build since Anaconda ships it by
-default) and non-contiguous data. This is considered a *critical* bug
-and upgrading is highly recommended. Thanks to Tom Kooij and Arne de
-Laat for reporting and providing a test unit.
+This is a maintenance release shaking some remaining problems with VML
+(it is nice to see how Anaconda VML's support helps raising hidden
+issues). Now conj() and abs() are actually added as VML-powered
+functions, preventing the same problems than log10() before (PR #212);
+thanks to Tom Kooij. Upgrading to this release is highly recommended.
In case you want to know more in detail what has changed in this
version, see:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numexpr-2.5.1/PKG-INFO new/numexpr-2.5.2/PKG-INFO
--- old/numexpr-2.5.1/PKG-INFO 2016-03-31 09:37:44.000000000 +0200
+++ new/numexpr-2.5.2/PKG-INFO 2016-04-07 11:41:55.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.0
Name: numexpr
-Version: 2.5.1
+Version: 2.5.2
Summary: Fast numerical expression evaluator for NumPy
Home-page: https://github.com/pydata/numexpr
Author: David M. Cooke, Francesc Alted and others
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numexpr-2.5.1/README.rst new/numexpr-2.5.2/README.rst
--- old/numexpr-2.5.1/README.rst 2016-03-22 22:17:02.000000000 +0100
+++ new/numexpr-2.5.2/README.rst 2016-04-07 11:40:55.000000000 +0200
@@ -11,9 +11,11 @@
.. |travis| image:: https://travis-ci.org/pydata/numexpr.png?branch=master
:target: https://travis-ci.org/pydata/numexpr
-.. |appveyor| image:: https://ci.appveyor.com/api/projects/status/github/FrancescAlted/numexpr
- :target: https://ci.appveyor.com/project/FrancescAlted/numexpr
-.. |pypi| image:: https://pypip.in/d/numexpr/badge.png
+.. |appveyor| image:: https://ci.appveyor.com/api/projects/status/github/pydata/numexpr
+ :target: https://ci.appveyor.com/project/pydata/numexpr
+.. |pypi| image:: https://img.shields.io/pypi/dm/numexpr.png
+ :target: https://pypi.python.org/pypi/numexpr
+.. |version| image:: https://img.shields.io/pypi/v/numexpr.png
:target: https://pypi.python.org/pypi/numexpr
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numexpr-2.5.1/RELEASE_NOTES.rst new/numexpr-2.5.2/RELEASE_NOTES.rst
--- old/numexpr-2.5.1/RELEASE_NOTES.rst 2016-03-31 09:34:43.000000000 +0200
+++ new/numexpr-2.5.2/RELEASE_NOTES.rst 2016-04-03 18:35:07.000000000 +0200
@@ -2,6 +2,13 @@
Release notes for Numexpr 2.5 series
======================================
+Changes from 2.5.1 to 2.5.2
+===========================
+
+- conj() and abs() actually added as VML-powered functions, preventing
+ the same problems than log10() before (PR #212). Thanks to Tom Kooij
+ for the fix!
+
Changes from 2.5 to 2.5.1
=========================
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numexpr-2.5.1/numexpr/necompiler.py new/numexpr-2.5.2/numexpr/necompiler.py
--- old/numexpr-2.5.1/numexpr/necompiler.py 2016-03-30 23:01:40.000000000 +0200
+++ new/numexpr-2.5.2/numexpr/necompiler.py 2016-04-03 18:31:48.000000000 +0200
@@ -59,8 +59,8 @@
"log10",
"exp",
"expm1",
- "abs",
- "conj",
+ "absolute",
+ "conjugate",
"arctan2",
"fmod",
]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numexpr-2.5.1/numexpr/tests/test_numexpr.py new/numexpr-2.5.2/numexpr/tests/test_numexpr.py
--- old/numexpr-2.5.1/numexpr/tests/test_numexpr.py 2016-03-30 22:20:08.000000000 +0200
+++ new/numexpr-2.5.2/numexpr/tests/test_numexpr.py 2016-04-03 18:55:33.000000000 +0200
@@ -421,6 +421,16 @@
else:
self.fail()
+ def test_ex_uses_vml(self):
+ vml_funcs = [ "sin", "cos", "tan", "arcsin", "arccos", "arctan",
+ "sinh", "cosh", "tanh", "arcsinh", "arccosh", "arctanh",
+ "log", "log1p","log10", "exp", "expm1", "abs", "conj",
+ "arctan2", "fmod"]
+ for func in vml_funcs:
+ strexpr = func+'(a)'
+ _, ex_uses_vml = numexpr.necompiler.getExprNames(strexpr, {})
+ assert_equal(ex_uses_vml, use_vml, strexpr)
+
if 'sparc' not in platform.machine():
# Execution order set here so as to not use too many threads
# during the rest of the execution. See #33 for details.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numexpr-2.5.1/numexpr/version.py new/numexpr-2.5.2/numexpr/version.py
--- old/numexpr-2.5.1/numexpr/version.py 2016-03-31 09:32:18.000000000 +0200
+++ new/numexpr-2.5.2/numexpr/version.py 2016-04-07 11:36:02.000000000 +0200
@@ -8,4 +8,4 @@
# rights to use.
####################################################################
-version = '2.5.1'
+version = '2.5.2'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numexpr-2.5.1/numexpr.egg-info/PKG-INFO new/numexpr-2.5.2/numexpr.egg-info/PKG-INFO
--- old/numexpr-2.5.1/numexpr.egg-info/PKG-INFO 2016-03-31 09:37:44.000000000 +0200
+++ new/numexpr-2.5.2/numexpr.egg-info/PKG-INFO 2016-04-07 11:41:55.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.0
Name: numexpr
-Version: 2.5.1
+Version: 2.5.2
Summary: Fast numerical expression evaluator for NumPy
Home-page: https://github.com/pydata/numexpr
Author: David M. Cooke, Francesc Alted and others
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numexpr-2.5.1/numexpr.egg-info/pbr.json new/numexpr-2.5.2/numexpr.egg-info/pbr.json
--- old/numexpr-2.5.1/numexpr.egg-info/pbr.json 2016-03-31 09:37:44.000000000 +0200
+++ new/numexpr-2.5.2/numexpr.egg-info/pbr.json 2016-04-07 11:41:55.000000000 +0200
@@ -1 +1 @@
-{"is_release": true, "git_version": "b4eaeea"}
\ No newline at end of file
+{"is_release": false, "git_version": "8bf924c"}
\ No newline at end of file
1
0
Hello community,
here is the log from the commit of package perl-WWW-Shorten for openSUSE:Factory checked in at 2016-04-22 16:24:04
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-WWW-Shorten (Old)
and /work/SRC/openSUSE:Factory/.perl-WWW-Shorten.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-WWW-Shorten"
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-WWW-Shorten/perl-WWW-Shorten.changes 2015-12-17 15:55:00.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.perl-WWW-Shorten.new/perl-WWW-Shorten.changes 2016-04-22 16:24:05.000000000 +0200
@@ -1,0 +2,12 @@
+Mon Apr 4 10:39:13 UTC 2016 - coolo(a)suse.com
+
+- updated to 3.093
+ see /usr/share/doc/packages/perl-WWW-Shorten/Changes
+
+-------------------------------------------------------------------
+Mon Mar 21 12:13:54 UTC 2016 - coolo(a)suse.com
+
+- updated to 3.092
+ see /usr/share/doc/packages/perl-WWW-Shorten/Changes
+
+-------------------------------------------------------------------
Old:
----
WWW-Shorten-3.08.tar.gz
New:
----
WWW-Shorten-3.093.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-WWW-Shorten.spec ++++++
--- /var/tmp/diff_new_pack.ytKIxx/_old 2016-04-22 16:24:06.000000000 +0200
+++ /var/tmp/diff_new_pack.ytKIxx/_new 2016-04-22 16:24:06.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package perl-WWW-Shorten
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,56 +17,74 @@
Name: perl-WWW-Shorten
-Version: 3.08
+Version: 3.093
Release: 0
%define cpan_name WWW-Shorten
Summary: Interface to URL shortening sites
-License: Artistic-2.0
+License: Artistic-1.0 or GPL-1.0+
Group: Development/Libraries/Perl
Url: http://search.cpan.org/dist/WWW-Shorten/
-Source0: http://www.cpan.org/authors/id/D/DA/DAVECROSS/%{cpan_name}-%{version}.tar.gz
+Source0: http://www.cpan.org/authors/id/C/CA/CAPOEIRAB/%{cpan_name}-%{version}.tar.gz
Source1: cpanspec.yml
BuildArch: noarch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: perl
BuildRequires: perl-macros
-BuildRequires: perl(Config::Auto)
-BuildRequires: perl(LWP) >= 5.75
-BuildRequires: perl(LWP::UserAgent) >= 2.023
-BuildRequires: perl(Module::Build) >= 0.420000
-BuildRequires: perl(URI) >= 1.27
-Requires: perl(Config::Auto)
-Requires: perl(LWP) >= 5.75
-Requires: perl(LWP::UserAgent) >= 2.023
-Requires: perl(URI) >= 1.27
+BuildRequires: perl(Getopt::Long) >= 2.4
+BuildRequires: perl(LWP::UserAgent) >= 5.835
+BuildRequires: perl(Test::More) >= 0.88
+BuildRequires: perl(Try::Tiny) >= 0.24
+Requires: perl(Getopt::Long) >= 2.4
+Requires: perl(LWP::UserAgent) >= 5.835
+Requires: perl(Try::Tiny) >= 0.24
%{perl_requires}
%description
-The function 'makeashorterlink' will call the relevant web site passing it
-your long URL and will return the shorter version.
+A Perl interface to various services that shorten URLs. These sites
+maintain databases of long URLs, each of which has a unique identifier.
-The function 'makealongerlink' does the reverse. 'makealongerlink' will
-accept as an argument either the full shortened URL or just the identifier.
+# DEPRECATION NOTICE
-If anything goes wrong, then either function will return 'undef'.
+The following shorten services have been deprecated as the endpoints no
+longer exist or function:
+
+ * WWW::Shorten::LinkToolbot
+
+ * WWW::Shorten::Linkz
+
+ * WWW::Shorten::MakeAShorterLink
+
+ * WWW::Shorten::Metamark
+
+ * WWW::Shorten::TinyClick
+
+ * WWW::Shorten::Tinylink
+
+ * WWW::Shorten::Qurl
+
+ * WWW::Shorten::Qwer
+
+When version '3.100' is released, these deprecated services will not be
+part of the distribution.
%prep
%setup -q -n %{cpan_name}-%{version}
%build
-%{__perl} Build.PL installdirs=vendor
-./Build build flags=%{?_smp_mflags}
+%{__perl} Makefile.PL INSTALLDIRS=vendor
+%{__make} %{?_smp_mflags}
%check
# MANUAL no testing (needs network)
-#./Build test
+#%{__make} test
%install
-./Build install destdir=%{buildroot} create_packlist=0
+%perl_make_install
+%perl_process_packlist
%perl_gen_filelist
%files -f %{name}.files
%defattr(-,root,root,755)
-%doc Artistic AUTHORS ChangeLog.SPOON Changes CREDITS LICENCE README TODO
+%doc Changes LICENSE README.md
%changelog
++++++ WWW-Shorten-3.08.tar.gz -> WWW-Shorten-3.093.tar.gz ++++++
++++ 5640 lines of diff (skipped)
1
0
22 Apr '16
Hello community,
here is the log from the commit of package perl-DateTime-Format-Strptime for openSUSE:Factory checked in at 2016-04-22 16:24:03
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-DateTime-Format-Strptime (Old)
and /work/SRC/openSUSE:Factory/.perl-DateTime-Format-Strptime.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-DateTime-Format-Strptime"
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-DateTime-Format-Strptime/perl-DateTime-Format-Strptime.changes 2016-03-16 10:34:17.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.perl-DateTime-Format-Strptime.new/perl-DateTime-Format-Strptime.changes 2016-04-22 16:24:04.000000000 +0200
@@ -1,0 +2,32 @@
+Mon Apr 4 09:33:20 UTC 2016 - coolo(a)suse.com
+
+- updated to 1.67
+ see /usr/share/doc/packages/perl-DateTime-Format-Strptime/Changes
+
+ 1.67 2016-03-31
+
+ - Fixed a regression introduced in 1.60. Older versions of this library would
+ match dates pretty match anywhere in a string, so "%Y-%m-%d" would match a
+ string like "abcd1234-12-30efgh". This is probably _too_ permissive, but we
+ definitely want to match on word boundaries so that we match
+ "log.2016-03-31". Based on a PR from YASUTAKE Kiyoshi. GitHub #3.
+
+
+ 1.66 2016-03-27
+
+ - Added a zone_map constructor argument. This lets you supply a mapping for
+ ambiguous time zone abbreviations. Based on a patch from Douglas Wilson. RT
+ #74762.
+
+-------------------------------------------------------------------
+Tue Mar 22 10:06:45 UTC 2016 - coolo(a)suse.com
+
+- updated to 1.65
+ see /usr/share/doc/packages/perl-DateTime-Format-Strptime/Changes
+
+ 1.65 2016-03-15
+
+ - Updated zone short name parsing to handle names like "+07", which were
+ introduced in the latest IANA time zone database release.
+
+-------------------------------------------------------------------
Old:
----
DateTime-Format-Strptime-1.64.tar.gz
New:
----
DateTime-Format-Strptime-1.67.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-DateTime-Format-Strptime.spec ++++++
--- /var/tmp/diff_new_pack.WqWGp0/_old 2016-04-22 16:24:05.000000000 +0200
+++ /var/tmp/diff_new_pack.WqWGp0/_new 2016-04-22 16:24:05.000000000 +0200
@@ -17,7 +17,7 @@
Name: perl-DateTime-Format-Strptime
-Version: 1.64
+Version: 1.67
Release: 0
%define cpan_name DateTime-Format-Strptime
Summary: Parse and format strp and strf time patterns
@@ -70,6 +70,6 @@
%files -f %{name}.files
%defattr(-,root,root,755)
-%doc bench Changes LICENSE README.md
+%doc bench Changes CONTRIBUTING.md LICENSE README.md
%changelog
++++++ DateTime-Format-Strptime-1.64.tar.gz -> DateTime-Format-Strptime-1.67.tar.gz ++++++
++++ 174854 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package python-icalendar for openSUSE:Factory checked in at 2016-04-22 16:23:42
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-icalendar (Old)
and /work/SRC/openSUSE:Factory/.python-icalendar.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-icalendar"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-icalendar/python-icalendar.changes 2015-10-30 13:43:12.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.python-icalendar.new/python-icalendar.changes 2016-04-22 16:23:44.000000000 +0200
@@ -1,0 +2,5 @@
+Tue Mar 29 22:32:54 UTC 2016 - dmueller(a)suse.com
+
+- adjust to python-python-dateutil renaming
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-icalendar.spec ++++++
--- /var/tmp/diff_new_pack.FOBjjo/_old 2016-04-22 16:23:45.000000000 +0200
+++ /var/tmp/diff_new_pack.FOBjjo/_new 2016-04-22 16:23:45.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-icalendar
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
# Copyright (c) 7/2011 - now open-slx GmbH <Sascha.Manns(a)open-slx.de>
# Copyright (c) 2009 - 7/2011 Sascha Manns <saigkill(a)opensuse.org>
#
@@ -30,12 +30,12 @@
Source0: https://pypi.python.org/packages/source/i/icalendar/%{modname}-%{version}.t…
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: fdupes
-BuildRequires: python-dateutil
BuildRequires: python-devel
BuildRequires: python-pytest
+BuildRequires: python-python-dateutil
BuildRequires: python-pytz
BuildRequires: python-setuptools
-Requires: python-dateutil
+Requires: python-python-dateutil
Requires: python-pytz
%{py_requires}
%if 0%{?suse_version} <= 1110
1
0
Hello community,
here is the log from the commit of package python-reportlab for openSUSE:Factory checked in at 2016-04-22 16:23:38
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-reportlab (Old)
and /work/SRC/openSUSE:Factory/.python-reportlab.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-reportlab"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-reportlab/python-reportlab.changes 2013-11-25 16:03:36.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.python-reportlab.new/python-reportlab.changes 2016-04-22 16:23:40.000000000 +0200
@@ -1,0 +2,85 @@
+Tue Mar 29 22:22:27 UTC 2016 - dmueller(a)suse.com
+
+- install LICENSE.txt
+
+-------------------------------------------------------------------
+Sat Nov 7 10:47:45 UTC 2015 - freitag(a)opensuse.org
+
+- Fixed source download link.
+
+-------------------------------------------------------------------
+Fri Jun 5 07:15:04 UTC 2015 - kkaempf(a)suse.com
+
+- Update to 3.2.0
+ * Added proportional underlining specific to font sizes, set via
+ the `underlineProportion` attribute of ParagraphStyles.
+ * TrueType fonts: added support for cmaps 10 & 13
+ * DocTemplate class now supports a boolean `displayDocTitle` argument.
+ * TableofContents now supports a formatter argument to allow
+ formatting of the displayed page numbers (eg for appendices etc).
+ * Table `repeatRows` can now be a tuple of row numbers to allow
+ incomplete ranges of rows to be repeated.
+ * Tables now do pass instance.`spaceBefore` & `spaceAfter` to
+ their split children when split
+ * Several strangenesses were fixed in the pdfbase.pdfform module;
+ Multiple usage is now allowed.
+ * Error message fixes
+ * Various environment fixes for Google Application Environment
+ * Resource fixes
+ * PDFDoc can now set the `Lang` attribute
+ * canvas.drawString and similar now allow the character spacing
+ to be set
+ * Index of accented stuff has been improved
+ * RTL code was improved
+ * fix Propertyset.clone
+ * `flowables.py`: fix ImageAndFlowables so it avoids testing
+ negative availableWidth
+
+-------------------------------------------------------------------
+Fri Jun 5 07:15:03 UTC 2015 - kkaempf(a)suse.com
+
+- Update to 3.1
+ * support for emoji
+ * improved pip-based installers
+
+-------------------------------------------------------------------
+Fri Jun 5 07:15:02 UTC 2015 - kkaempf(a)suse.com
+
+- Update to 3.0
+ * ReportLab 3.0 now supports Python 2.7, 3.3 and higher.
+ * There has been a substantial internal rewrite to ensure
+ consistent use of unicode strings for natural-language text,
+ and of bytes for all file format internals.
+ * Python 3.x compatibility
+ * New features
+ - Add ability to output greyscale and 1-bit PIL images without
+ conversion to RGB. (contributed by Matthew Duggan)
+ - highlight annotation (contributed by Ben Echols)
+ * Other
+ - numerous very minor fixes, visible through BitBucket.
+
+-------------------------------------------------------------------
+Sun Nov 24 18:38:52 UTC 2013 - kkaempf(a)suse.com
+
+- Update to version 2.7
+ * Charts / graphics enhancements
+ - Added SimpleTimeSeriesPlot
+ - added _computeMaxSpace
+ - added in lineStyle (for bars)
+ - improved SVG rendering
+ - Pie Chart now has an `innerRadiusFraction` to allow doughnut-like
+ appearance for 2d charts
+ * Charts/graphics bug fixes
+ - piecharts.py: fix Pie3d __init__ to call its superclass
+ - linecharts.py: fix swatch creation
+ - fixed `y` axis in the simple time series plot
+ * PDF
+ - Fixes to testshapes & pdfform resetting
+ - colors.py
+ - various minor fixes
+ * Platypus
+ - Defined a small bullet rather than a big circle as the default for unordered lists
+ - fixed attribute spelling bug
+ - fixed CJK + endDots
+
+-------------------------------------------------------------------
Old:
----
reportlab-2.7.tar.gz
New:
----
reportlab-3.2.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-reportlab.spec ++++++
--- /var/tmp/diff_new_pack.9NjElD/_old 2016-04-22 16:23:41.000000000 +0200
+++ /var/tmp/diff_new_pack.9NjElD/_new 2016-04-22 16:23:41.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-reportlab
#
-# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -15,15 +15,16 @@
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
+
%define modname reportlab
Name: python-%{modname}
-Version: 2.7
+Version: 3.2.0
Release: 0
Url: http://www.reportlab.com/
Summary: The Reportlab Toolkit
-License: BSD-2-Clause
+License: BSD-3-Clause
Group: Development/Languages/Python
-Source: http://www.reportlab.com/ftp/%{modname}-%{version}.tar.gz
+Source: https://pypi.python.org/packages/source/r/reportlab/reportlab-%{version}.ta…
Patch0: reportlab-missing-includes.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: freetype2-devel
@@ -45,7 +46,7 @@
%prep
%setup -q -n %{modname}-%{version}
%patch0
-sed -i "1d" src/reportlab/lib/{formatters,fonts,set_ops,corp,units,pagesizes,__init__,randomtext,logger,normalDate}.py
+sed -i "1d" src/reportlab/lib/{formatters,fonts,corp,units,pagesizes,__init__,randomtext,logger,normalDate}.py
sed -i "1d" src/reportlab/graphics/{widgets/table,barcode/test,testdrawings,testshapes}.py # Fix non-executable bits
%build
@@ -59,11 +60,12 @@
%files
%defattr(-,root,root,-)
-%doc CHANGES.txt README.txt
-%{python_sitearch}/_renderPM.so
-%{python_sitearch}/_rl_accel.so
-%{python_sitearch}/pyHnj.so
-%{python_sitearch}/sgmlop.so
+%if 0%{?suse_version} > 1315
+%license LICENSE.txt
+%else
+%doc LICENSE.txt
+%endif
+%doc CHANGES.md README.txt
%{python_sitearch}/%{modname}/
%{python_sitearch}/%{modname}-%{version}-py%{py_ver}.egg-info
++++++ reportlab-2.7.tar.gz -> reportlab-3.2.0.tar.gz ++++++
++++ 37308 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package python-d2to1 for openSUSE:Factory checked in at 2016-04-22 16:23:37
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-d2to1 (Old)
and /work/SRC/openSUSE:Factory/.python-d2to1.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-d2to1"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-d2to1/python-d2to1.changes 2013-11-15 16:56:44.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.python-d2to1.new/python-d2to1.changes 2016-04-22 16:23:38.000000000 +0200
@@ -1,0 +2,26 @@
+Wed Mar 16 21:22:46 UTC 2016 - antoine.belvire(a)laposte.net
+
+- Update to 0.2.12:
+ + Fixed a corner case where depending on the order of events when
+ installing multiple packages (i.e. when installing packages
+ with dependencies, some of which might also use d2to1) would
+ end up calling the incorrect Distribution class (the patched
+ version from setuptools, where d2to1 needs to get to the
+ unpatched version from distutils for some cases).
+ + Upgraded bundled copy of the six module to the current version
+ (1.9.0). This fixes incompatibility between d2to1 and other
+ packages that import different versions of six during their
+ setup (the older version of six had a habit of fighting with
+ other six instances over sys.modules, which is fixed in newer
+ versions).
+ + Upgraded to latest ez_setup.py so that the most up to date
+ version of setuptools will be correctly bootstrapped in the
+ rare cases that it is needed.
+ + Included some miscellaneous hacks to keep d2to1 working,
+ nominally, with Python 2.5 despite the broad move away from
+ Python 2.5 support in the Python community. The d2to1 v0.2.x
+ releases will be the last to continue Python 2.5 support,
+ given that testing it has become more difficult (and the
+ overhead is probably no longer worth it).
+
+-------------------------------------------------------------------
Old:
----
d2to1-0.2.11.tar.gz
New:
----
d2to1-0.2.12.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-d2to1.spec ++++++
--- /var/tmp/diff_new_pack.vbQdqf/_old 2016-04-22 16:23:38.000000000 +0200
+++ /var/tmp/diff_new_pack.vbQdqf/_new 2016-04-22 16:23:38.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-d2to1
#
-# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
Name: python-d2to1
-Version: 0.2.11
+Version: 0.2.12
Release: 0
Url: http://pypi.python.org/pypi/d2to1
Summary: Allows using distutils2-like setup.cfg with a distribute/setuptools
++++++ d2to1-0.2.11.tar.gz -> d2to1-0.2.12.tar.gz ++++++
++++ 2440 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package python-pecan for openSUSE:Factory checked in at 2016-04-22 16:23:36
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-pecan (Old)
and /work/SRC/openSUSE:Factory/.python-pecan.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pecan"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-pecan/python-pecan.changes 2015-09-30 05:50:06.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.python-pecan.new/python-pecan.changes 2016-04-22 16:23:37.000000000 +0200
@@ -1,0 +2,9 @@
+Fri Mar 18 10:24:38 UTC 2016 - tbechtold(a)suse.com
+
+- update to 1.0.5:
+ * Fix a bug in controller argspec detection when class-based decorators are used
+ * Removed an open file handle leak when pecan renders errors for Jinja2 and Genshi templates
+ * Resolved a bug which caused log output to be duplicated in projects created with pecan create
+ * Fixed a bug in pecan.hooks.HookController for newer versions of Python3.4
+
+-------------------------------------------------------------------
Old:
----
pecan-1.0.2.tar.gz
New:
----
pecan-1.0.5.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-pecan.spec ++++++
--- /var/tmp/diff_new_pack.HdKS4t/_old 2016-04-22 16:23:38.000000000 +0200
+++ /var/tmp/diff_new_pack.HdKS4t/_new 2016-04-22 16:23:38.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-pecan
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
Name: python-pecan
-Version: 1.0.2
+Version: 1.0.5
Release: 0
Summary: A WSGI object-dispatching web framework, designed to be lean and fast
License: BSD-3-Clause
++++++ pecan-1.0.2.tar.gz -> pecan-1.0.5.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pecan-1.0.2/PKG-INFO new/pecan-1.0.5/PKG-INFO
--- old/pecan-1.0.2/PKG-INFO 2015-08-21 20:53:28.000000000 +0200
+++ new/pecan-1.0.5/PKG-INFO 2016-03-16 17:52:22.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: pecan
-Version: 1.0.2
+Version: 1.0.5
Summary: A WSGI object-dispatching web framework, designed to be lean and fast, with few dependencies.
Home-page: http://github.com/pecan/pecan
Author: Jonathan LaCour
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pecan-1.0.2/pecan/hooks.py new/pecan-1.0.5/pecan/hooks.py
--- old/pecan-1.0.2/pecan/hooks.py 2015-07-31 20:30:09.000000000 +0200
+++ new/pecan-1.0.5/pecan/hooks.py 2016-03-16 17:50:58.000000000 +0100
@@ -48,7 +48,7 @@
if (
isinstance(value, types.MethodType) and
any(filter(lambda c: value.__func__ in c.__dict__.values(),
- value.im_class.mro()[1:]))
+ value.__self__.__class__.mro()[1:]))
):
continue
walk_controller(root_class, value, hooks, seen)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pecan-1.0.2/pecan/scaffolds/base/config.py_tmpl new/pecan-1.0.5/pecan/scaffolds/base/config.py_tmpl
--- old/pecan-1.0.2/pecan/scaffolds/base/config.py_tmpl 2015-07-31 20:30:09.000000000 +0200
+++ new/pecan-1.0.5/pecan/scaffolds/base/config.py_tmpl 2016-03-16 17:50:58.000000000 +0100
@@ -20,8 +20,8 @@
logging = {
'root': {'level': 'INFO', 'handlers': ['console']},
'loggers': {
- '${package}': {'level': 'DEBUG', 'handlers': ['console']},
- 'pecan': {'level': 'DEBUG', 'handlers': ['console']},
+ '${package}': {'level': 'DEBUG', 'handlers': ['console'], 'propagate': False},
+ 'pecan': {'level': 'DEBUG', 'handlers': ['console'], 'propagate': False},
'py.warnings': {'handlers': ['console']},
'__force_dict__': True
},
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pecan-1.0.2/pecan/scaffolds/rest-api/config.py_tmpl new/pecan-1.0.5/pecan/scaffolds/rest-api/config.py_tmpl
--- old/pecan-1.0.2/pecan/scaffolds/rest-api/config.py_tmpl 2015-07-31 20:30:09.000000000 +0200
+++ new/pecan-1.0.5/pecan/scaffolds/rest-api/config.py_tmpl 2016-03-16 17:50:58.000000000 +0100
@@ -14,8 +14,8 @@
logging = {
'root': {'level': 'INFO', 'handlers': ['console']},
'loggers': {
- '${package}': {'level': 'DEBUG', 'handlers': ['console']},
- 'pecan': {'level': 'DEBUG', 'handlers': ['console']},
+ '${package}': {'level': 'DEBUG', 'handlers': ['console'], 'propagate': False},
+ 'pecan': {'level': 'DEBUG', 'handlers': ['console'], 'propagate': False},
'py.warnings': {'handlers': ['console']},
'__force_dict__': True
},
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pecan-1.0.2/pecan/templating.py new/pecan-1.0.5/pecan/templating.py
--- old/pecan-1.0.2/pecan/templating.py 2015-07-31 20:30:09.000000000 +0200
+++ new/pecan-1.0.5/pecan/templating.py 2016-03-16 17:50:58.000000000 +0100
@@ -189,7 +189,8 @@
:param context: number of lines of code to display before and after the
offending line.
'''
- lines = open(filename).readlines()
+ with open(filename) as f:
+ lines = f.readlines()
lineno = lineno - 1 # files are indexed by 1 not 0
if lineno > 0:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pecan-1.0.2/pecan/testing.py new/pecan-1.0.5/pecan/testing.py
--- old/pecan-1.0.2/pecan/testing.py 2015-07-31 20:30:09.000000000 +0200
+++ new/pecan-1.0.5/pecan/testing.py 2016-03-16 17:50:58.000000000 +0100
@@ -1,3 +1,4 @@
+import os
from pecan import load_app
from webtest import TestApp
@@ -33,3 +34,17 @@
assert resp.status_int == 200
"""
return TestApp(load_app(config, **kwargs))
+
+
+def reset_global_config():
+ """
+ When tests alter application configurations they can get sticky and pollute
+ other tests that might rely on a pristine configuration. This helper will
+ reset the config by overwriting it with ``pecan.configuration.DEFAULT``.
+ """
+ from pecan import configuration
+ configuration.set_config(
+ dict(configuration.initconf()),
+ overwrite=True
+ )
+ os.environ.pop('PECAN_CONFIG', None)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pecan-1.0.2/pecan/tests/__init__.py new/pecan-1.0.5/pecan/tests/__init__.py
--- old/pecan-1.0.2/pecan/tests/__init__.py 2015-07-31 20:30:09.000000000 +0200
+++ new/pecan-1.0.5/pecan/tests/__init__.py 2016-03-16 17:50:58.000000000 +0100
@@ -4,17 +4,10 @@
from unittest2 import TestCase # pragma: nocover
else:
from unittest import TestCase # pragma: nocover
+from pecan.testing import reset_global_config
class PecanTestCase(TestCase):
def setUp(self):
- self.addCleanup(self._reset_global_config)
-
- def _reset_global_config(self):
- from pecan import configuration
- configuration.set_config(
- dict(configuration.initconf()),
- overwrite=True
- )
- os.environ.pop('PECAN_CONFIG', None)
+ self.addCleanup(reset_global_config)
Files old/pecan-1.0.2/pecan/tests/__init__.pyc and new/pecan-1.0.5/pecan/tests/__init__.pyc differ
Files old/pecan-1.0.2/pecan/tests/__pycache__/test_util.cpython-26-PYTEST.pyc and new/pecan-1.0.5/pecan/tests/__pycache__/test_util.cpython-26-PYTEST.pyc differ
Files old/pecan-1.0.2/pecan/tests/__pycache__/test_util.cpython-27-PYTEST.pyc and new/pecan-1.0.5/pecan/tests/__pycache__/test_util.cpython-27-PYTEST.pyc differ
Files old/pecan-1.0.2/pecan/tests/config_fixtures/bad/importerror.pyc and new/pecan-1.0.5/pecan/tests/config_fixtures/bad/importerror.pyc differ
Files old/pecan-1.0.2/pecan/tests/config_fixtures/bad/module_and_underscore.pyc and new/pecan-1.0.5/pecan/tests/config_fixtures/bad/module_and_underscore.pyc differ
Files old/pecan-1.0.2/pecan/tests/config_fixtures/config.pyc and new/pecan-1.0.5/pecan/tests/config_fixtures/config.pyc differ
Files old/pecan-1.0.2/pecan/tests/config_fixtures/empty.pyc and new/pecan-1.0.5/pecan/tests/config_fixtures/empty.pyc differ
Files old/pecan-1.0.2/pecan/tests/config_fixtures/foobar.pyc and new/pecan-1.0.5/pecan/tests/config_fixtures/foobar.pyc differ
Files old/pecan-1.0.2/pecan/tests/config_fixtures/forcedict.pyc and new/pecan-1.0.5/pecan/tests/config_fixtures/forcedict.pyc differ
Files old/pecan-1.0.2/pecan/tests/middleware/__init__.pyc and new/pecan-1.0.5/pecan/tests/middleware/__init__.pyc differ
Files old/pecan-1.0.2/pecan/tests/middleware/test_errordocument.pyc and new/pecan-1.0.5/pecan/tests/middleware/test_errordocument.pyc differ
Files old/pecan-1.0.2/pecan/tests/middleware/test_recursive.pyc and new/pecan-1.0.5/pecan/tests/middleware/test_recursive.pyc differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pecan-1.0.2/pecan/tests/middleware/test_static.py new/pecan-1.0.5/pecan/tests/middleware/test_static.py
--- old/pecan-1.0.2/pecan/tests/middleware/test_static.py 2015-07-31 20:30:09.000000000 +0200
+++ new/pecan-1.0.5/pecan/tests/middleware/test_static.py 2016-03-16 17:50:58.000000000 +0100
@@ -40,6 +40,7 @@
def test_file_can_be_found(self):
result = self._request('/static_fixtures/text.txt')
assert isinstance(result, FileWrapper)
+ result.close()
def test_no_file_found_causes_passthrough(self):
result = self._request('/static_fixtures/nosuchfile.txt')
@@ -47,8 +48,9 @@
assert result == ['Hello world!\n']
def test_mime_type_works_for_png_files(self):
- self._request('/static_fixtures/self.png')
+ result = self._request('/static_fixtures/self.png')
assert self._get_response_header('Content-Type') == 'image/png'
+ result.close()
def test_file_can_be_closed(self):
result = self._request('/static_fixtures/text.txt')
@@ -57,6 +59,7 @@
def test_file_can_be_iterated_over(self):
result = self._request('/static_fixtures/text.txt')
assert len([x for x in result])
+ result.close()
def test_date_dumping_on_unix_timestamps(self):
result = _dump_date(1331755274.59, ' ')
@@ -66,3 +69,4 @@
os.altsep = ':'
result = self._request(':static_fixtures:text.txt')
assert isinstance(result, FileWrapper)
+ result.close()
Files old/pecan-1.0.2/pecan/tests/middleware/test_static.pyc and new/pecan-1.0.5/pecan/tests/middleware/test_static.pyc differ
Files old/pecan-1.0.2/pecan/tests/scaffold_builder.pyc and new/pecan-1.0.5/pecan/tests/scaffold_builder.pyc differ
Files old/pecan-1.0.2/pecan/tests/scaffold_fixtures/__init__.pyc and new/pecan-1.0.5/pecan/tests/scaffold_fixtures/__init__.pyc differ
Files old/pecan-1.0.2/pecan/tests/templates/__init__.pyc and new/pecan-1.0.5/pecan/tests/templates/__init__.pyc differ
Files old/pecan-1.0.2/pecan/tests/test_base.pyc and new/pecan-1.0.5/pecan/tests/test_base.pyc differ
Files old/pecan-1.0.2/pecan/tests/test_commands.pyc and new/pecan-1.0.5/pecan/tests/test_commands.pyc differ
Files old/pecan-1.0.2/pecan/tests/test_conf.pyc and new/pecan-1.0.5/pecan/tests/test_conf.pyc differ
Files old/pecan-1.0.2/pecan/tests/test_generic.pyc and new/pecan-1.0.5/pecan/tests/test_generic.pyc differ
Files old/pecan-1.0.2/pecan/tests/test_hooks.pyc and new/pecan-1.0.5/pecan/tests/test_hooks.pyc differ
Files old/pecan-1.0.2/pecan/tests/test_jsonify.pyc and new/pecan-1.0.5/pecan/tests/test_jsonify.pyc differ
Files old/pecan-1.0.2/pecan/tests/test_no_thread_locals.pyc and new/pecan-1.0.5/pecan/tests/test_no_thread_locals.pyc differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pecan-1.0.2/pecan/tests/test_rest.py new/pecan-1.0.5/pecan/tests/test_rest.py
--- old/pecan-1.0.2/pecan/tests/test_rest.py 2015-07-31 20:30:09.000000000 +0200
+++ new/pecan-1.0.5/pecan/tests/test_rest.py 2016-03-16 17:50:58.000000000 +0100
@@ -1558,6 +1558,7 @@
assert r.status_int == 405
assert r.headers['Allow'] == 'GET'
+ @unittest.skipIf(sys.maxunicode <= 65536, 'narrow python build with UCS-2')
def test_rest_with_utf8_uri(self):
class FooController(RestController):
Files old/pecan-1.0.2/pecan/tests/test_rest.pyc and new/pecan-1.0.5/pecan/tests/test_rest.pyc differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pecan-1.0.2/pecan/tests/test_scaffolds.py new/pecan-1.0.5/pecan/tests/test_scaffolds.py
--- old/pecan-1.0.2/pecan/tests/test_scaffolds.py 2015-07-31 20:30:09.000000000 +0200
+++ new/pecan-1.0.5/pecan/tests/test_scaffolds.py 2016-03-16 17:50:58.000000000 +0100
@@ -61,12 +61,10 @@
assert os.path.isfile(os.path.join(
self.scaffold_destination, 'someapp', 'bar', 'spam.txt'
))
- assert open(os.path.join(
+ with open(os.path.join(
self.scaffold_destination, 'someapp', 'foo'
- ), 'r').read().strip() == 'YAR'
- assert open(os.path.join(
- self.scaffold_destination, 'someapp', 'foo'
- ), 'r').read().strip() == 'YAR'
+ ), 'r') as f:
+ assert f.read().strip() == 'YAR'
def test_destination_directory_levels_deep(self):
from pecan.scaffolds import copy_dir
@@ -86,12 +84,14 @@
assert os.path.isfile(os.path.join(
self.scaffold_destination, 'some', 'app', 'bar', 'spam.txt')
)
- assert open(os.path.join(
+ with open(os.path.join(
self.scaffold_destination, 'some', 'app', 'foo'
- ), 'r').read().strip() == 'YAR'
- assert open(os.path.join(
+ ), 'r') as f:
+ assert f.read().strip() == 'YAR'
+ with open(os.path.join(
self.scaffold_destination, 'some', 'app', 'bar', 'spam.txt'
- ), 'r').read().strip() == 'Pecan'
+ ), 'r') as f:
+ assert f.read().strip() == 'Pecan'
def test_destination_directory_already_exists(self):
from pecan.scaffolds import copy_dir
@@ -125,12 +125,14 @@
assert os.path.isfile(os.path.join(
self.scaffold_destination, 'someapp', 'bar_thingy', 'spam.txt')
)
- assert open(os.path.join(
+ with open(os.path.join(
self.scaffold_destination, 'someapp', 'foo_thingy'
- ), 'r').read().strip() == 'YAR'
- assert open(os.path.join(
+ ), 'r') as f:
+ assert f.read().strip() == 'YAR'
+ with open(os.path.join(
self.scaffold_destination, 'someapp', 'bar_thingy', 'spam.txt'
- ), 'r').read().strip() == 'Pecan'
+ ), 'r') as f:
+ assert f.read().strip() == 'Pecan'
def test_copy_dir_with_file_content_substitution(self):
from pecan.scaffolds import copy_dir
@@ -152,9 +154,11 @@
assert os.path.isfile(os.path.join(
self.scaffold_destination, 'someapp', 'bar', 'spam.txt')
)
- assert open(os.path.join(
+ with open(os.path.join(
self.scaffold_destination, 'someapp', 'foo'
- ), 'r').read().strip() == 'YAR thingy'
- assert open(os.path.join(
+ ), 'r') as f:
+ assert f.read().strip() == 'YAR thingy'
+ with open(os.path.join(
self.scaffold_destination, 'someapp', 'bar', 'spam.txt'
- ), 'r').read().strip() == 'Pecan thingy'
+ ), 'r') as f:
+ assert f.read().strip() == 'Pecan thingy'
Files old/pecan-1.0.2/pecan/tests/test_scaffolds.pyc and new/pecan-1.0.5/pecan/tests/test_scaffolds.pyc differ
Files old/pecan-1.0.2/pecan/tests/test_secure.pyc and new/pecan-1.0.5/pecan/tests/test_secure.pyc differ
Files old/pecan-1.0.2/pecan/tests/test_templating.pyc and new/pecan-1.0.5/pecan/tests/test_templating.pyc differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pecan-1.0.2/pecan/tests/test_util.py new/pecan-1.0.5/pecan/tests/test_util.py
--- old/pecan-1.0.2/pecan/tests/test_util.py 2015-08-21 18:57:00.000000000 +0200
+++ new/pecan-1.0.5/pecan/tests/test_util.py 2016-03-16 17:50:58.000000000 +0100
@@ -113,3 +113,26 @@
argspec = util._cfg(RootController.index)['argspec']
assert argspec.args == ['self', 'a', 'b', 'c']
+
+ def test_class_based_decorator(self):
+
+ class deco(object):
+
+ def __init__(self, arg):
+ self.arg = arg
+
+ def __call__(self, f):
+ @functools.wraps(f)
+ def wrapper(*args, **kw):
+ assert self.arg == '12345'
+ return f(*args, **kw)
+ return wrapper
+
+ class RootController(object):
+ @expose()
+ @deco('12345')
+ def index(self, a, b, c):
+ return 'Hello, World!'
+
+ argspec = util._cfg(RootController.index)['argspec']
+ assert argspec.args == ['self', 'a', 'b', 'c']
Files old/pecan-1.0.2/pecan/tests/test_util.pyc and new/pecan-1.0.5/pecan/tests/test_util.pyc differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pecan-1.0.2/pecan/util.py new/pecan-1.0.5/pecan/util.py
--- old/pecan-1.0.2/pecan/util.py 2015-08-21 18:57:00.000000000 +0200
+++ new/pecan-1.0.5/pecan/util.py 2016-03-16 17:50:58.000000000 +0100
@@ -33,9 +33,12 @@
# In the case of deeply nested decorators (with arguments), it's possible
# that there are several callables in scope; Take a best guess and go
# with the one that looks most like a pecan controller function
- # ('self' is the first argument)
+ # (has a __code__ object, and 'self' is the first argument)
func_closure = filter(
- lambda c: six.callable(c.cell_contents),
+ lambda c: (
+ six.callable(c.cell_contents) and
+ hasattr(c.cell_contents, '__code__')
+ ),
func_closure
)
func_closure = sorted(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pecan-1.0.2/pecan.egg-info/PKG-INFO new/pecan-1.0.5/pecan.egg-info/PKG-INFO
--- old/pecan-1.0.2/pecan.egg-info/PKG-INFO 2015-08-21 20:53:27.000000000 +0200
+++ new/pecan-1.0.5/pecan.egg-info/PKG-INFO 2016-03-16 17:52:21.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: pecan
-Version: 1.0.2
+Version: 1.0.5
Summary: A WSGI object-dispatching web framework, designed to be lean and fast, with few dependencies.
Home-page: http://github.com/pecan/pecan
Author: Jonathan LaCour
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pecan-1.0.2/pecan.egg-info/SOURCES.txt new/pecan-1.0.5/pecan.egg-info/SOURCES.txt
--- old/pecan-1.0.2/pecan.egg-info/SOURCES.txt 2015-08-21 20:53:28.000000000 +0200
+++ new/pecan-1.0.5/pecan.egg-info/SOURCES.txt 2016-03-16 17:52:21.000000000 +0100
@@ -25,7 +25,6 @@
pecan.egg-info/dependency_links.txt
pecan.egg-info/entry_points.txt
pecan.egg-info/not-zip-safe
-pecan.egg-info/pbr.json
pecan.egg-info/requires.txt
pecan.egg-info/top_level.txt
pecan/commands/__init__.py
@@ -73,59 +72,32 @@
pecan/scaffolds/rest-api/+package+/tests/test_functional.py_tmpl
pecan/scaffolds/rest-api/+package+/tests/test_units.py
pecan/tests/__init__.py
-pecan/tests/__init__.pyc
pecan/tests/scaffold_builder.py
-pecan/tests/scaffold_builder.pyc
pecan/tests/test_base.py
-pecan/tests/test_base.pyc
pecan/tests/test_commands.py
-pecan/tests/test_commands.pyc
pecan/tests/test_conf.py
-pecan/tests/test_conf.pyc
pecan/tests/test_generic.py
-pecan/tests/test_generic.pyc
pecan/tests/test_hooks.py
-pecan/tests/test_hooks.pyc
pecan/tests/test_jsonify.py
-pecan/tests/test_jsonify.pyc
pecan/tests/test_no_thread_locals.py
-pecan/tests/test_no_thread_locals.pyc
pecan/tests/test_rest.py
-pecan/tests/test_rest.pyc
pecan/tests/test_scaffolds.py
-pecan/tests/test_scaffolds.pyc
pecan/tests/test_secure.py
-pecan/tests/test_secure.pyc
pecan/tests/test_templating.py
-pecan/tests/test_templating.pyc
pecan/tests/test_util.py
-pecan/tests/test_util.pyc
-pecan/tests/__pycache__/test_util.cpython-26-PYTEST.pyc
-pecan/tests/__pycache__/test_util.cpython-27-PYTEST.pyc
pecan/tests/config_fixtures/config.py
-pecan/tests/config_fixtures/config.pyc
pecan/tests/config_fixtures/empty.py
-pecan/tests/config_fixtures/empty.pyc
pecan/tests/config_fixtures/foobar.py
-pecan/tests/config_fixtures/foobar.pyc
pecan/tests/config_fixtures/forcedict.py
-pecan/tests/config_fixtures/forcedict.pyc
pecan/tests/config_fixtures/bad/importerror.py
-pecan/tests/config_fixtures/bad/importerror.pyc
pecan/tests/config_fixtures/bad/module_and_underscore.py
-pecan/tests/config_fixtures/bad/module_and_underscore.pyc
pecan/tests/middleware/__init__.py
-pecan/tests/middleware/__init__.pyc
pecan/tests/middleware/test_errordocument.py
-pecan/tests/middleware/test_errordocument.pyc
pecan/tests/middleware/test_recursive.py
-pecan/tests/middleware/test_recursive.pyc
pecan/tests/middleware/test_static.py
-pecan/tests/middleware/test_static.pyc
pecan/tests/middleware/static_fixtures/self.png
pecan/tests/middleware/static_fixtures/text.txt
pecan/tests/scaffold_fixtures/__init__.py
-pecan/tests/scaffold_fixtures/__init__.pyc
pecan/tests/scaffold_fixtures/content_sub/foo_tmpl
pecan/tests/scaffold_fixtures/content_sub/bar/spam.txt_tmpl
pecan/tests/scaffold_fixtures/file_sub/foo_+package+
@@ -133,7 +105,6 @@
pecan/tests/scaffold_fixtures/simple/foo
pecan/tests/scaffold_fixtures/simple/bar/spam.txt
pecan/tests/templates/__init__.py
-pecan/tests/templates/__init__.pyc
pecan/tests/templates/form_colors.html
pecan/tests/templates/form_colors_invalid.html
pecan/tests/templates/form_colors_valid.html
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pecan-1.0.2/pecan.egg-info/pbr.json new/pecan-1.0.5/pecan.egg-info/pbr.json
--- old/pecan-1.0.2/pecan.egg-info/pbr.json 2015-08-20 22:45:24.000000000 +0200
+++ new/pecan-1.0.5/pecan.egg-info/pbr.json 1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-{"is_release": false, "git_version": "982ed55"}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pecan-1.0.2/setup.py new/pecan-1.0.5/setup.py
--- old/pecan-1.0.2/setup.py 2015-08-21 19:01:14.000000000 +0200
+++ new/pecan-1.0.5/setup.py 2016-03-16 17:50:58.000000000 +0100
@@ -3,7 +3,7 @@
from setuptools import setup, find_packages
-version = '1.0.2'
+version = '1.0.5'
#
# determine requirements
1
0