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
January 2016
- 1 participants
- 1523 discussions
Hello community,
here is the log from the commit of package mlocate for openSUSE:Factory checked in at 2016-01-21 23:44:46
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/mlocate (Old)
and /work/SRC/openSUSE:Factory/.mlocate.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "mlocate"
Changes:
--------
--- /work/SRC/openSUSE:Factory/mlocate/mlocate.changes 2015-08-23 17:44:41.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.mlocate.new/mlocate.changes 2016-01-22 01:10:29.000000000 +0100
@@ -1,0 +2,12 @@
+Wed Jan 20 10:58:56 UTC 2016 - tchvatal(a)suse.com
+
+- Cron file updates:
+ - Remove the ac/battery detection that does not work
+ - Exit with 1 when the updatedb is not executable
+
+-------------------------------------------------------------------
+Wed Jan 20 10:53:55 UTC 2016 - tchvatal(a)suse.com
+
+- Add more mounts to exclude in updatedb.conf
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ mlocate.spec ++++++
--- /var/tmp/diff_new_pack.VoWHxe/_old 2016-01-22 01:10:31.000000000 +0100
+++ /var/tmp/diff_new_pack.VoWHxe/_new 2016-01-22 01:10:31.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package mlocate
#
-# 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
++++++ mlocate.cron ++++++
--- /var/tmp/diff_new_pack.VoWHxe/_old 2016-01-22 01:10:31.000000000 +0100
+++ /var/tmp/diff_new_pack.VoWHxe/_new 2016-01-22 01:10:31.000000000 +0100
@@ -4,15 +4,6 @@
# ensure we have proper umask bnc#941296
umask 0022
-# check if we run on battery and if so then don't run
-if which on_ac_power >/dev/null 2>&1; then
- ON_BATTERY=0
- on_ac_power >/dev/null 2>&1 || ON_BATTERY=$?
- if [ "${ON_BATTERY}" -eq 1 ]; then
- exit 0
- fi
-fi
-
# check if we are already running (lockfile)
LOCKFILE="/var/lock/mlocate.daily.lock"
if [ -e "${LOCKFILE}" ]; then
@@ -68,5 +59,5 @@
/usr/bin/su "${RUN_UPDATEDB_AS}" -c "/usr/bin/updatedb ${NODEVS} ${UPDATEDB_PRUNEFS} ${UPDATEDB_PRUNEPATHS}"
else
echo >&2 "Warning: \"/usr/bin/updatedb\" is not executable, unable to run updatedb."
- exit 0
+ exit 1
fi
++++++ updatedb.conf ++++++
--- /var/tmp/diff_new_pack.VoWHxe/_old 2016-01-22 01:10:31.000000000 +0100
+++ /var/tmp/diff_new_pack.VoWHxe/_new 2016-01-22 01:10:31.000000000 +0100
@@ -4,13 +4,13 @@
# For more info, see the updatedb.conf(5) manpage.
# Filesystems that are pruned from updatedb database
-PRUNEFS="afs anon_inodefs auto autofs bdev binfmt binfmt_misc cgroup cifs coda configfs cramfs cpuset debugfs devfs devpts devtmps ecryptfs eventpollfs exofs futexfs ftpfs fuse fusectl gfs gfs2 hostfs hugetlbfs inotifyfs iso9660 jffs2 lustre misc mqueue ncpfs nfs NFS nfs4 nfsd nnpfs ocfs ocfs2 pipefs proc ramfs rpc_pipefs securityfs selinuxfs sfs shfs smbfs sockfs spufs sshfs subfs supermount sysfs tmpfs ubifs udf usbfs vboxsf vperfctrfs"
+PRUNEFS="9p afs anon_inodefs auto autofs bdev binfmt binfmt_misc ceph fuse.ceph cgroup cifs coda configfs cramfs cpuset debugfs devfs devpts devtmps ecryptfs eventpollfs exofs futexfs ftpfs fuse fusectl gfs gfs2 gpfs hostfs hugetlbfs inotifyfs iso9660 jffs2 lustre misc mqueue ncpfs nfs NFS nfs4 nfsd nnpfs ocfs ocfs2 pipefs proc ramfs rpc_pipefs securityfs selinuxfs sfs shfs smbfs sockfs spufs sshfs subfs supermount sysfs tmpfs ubifs udf usbfs vboxsf vperfctrfs"
# Paths which are pruned from updatedb database
PRUNEPATHS="/tmp /var/tmp /var/cache /var/lock /var/run /var/spool /mnt /cdrom /usr/tmp /proc /media /sys /.snapshots /var/run/media"
# Folder names that are pruned from updatedb database
-PRUNENAMES=".git .hg .svn CVS"
+PRUNENAMES = ".git .hg .svn .bzr .arch-ids {arch} CVS"
# Skip bind mounts.
PRUNE_BIND_MOUNTS="yes"
1
0
Hello community,
here is the log from the commit of package python3-pip for openSUSE:Factory checked in at 2016-01-21 23:44:44
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python3-pip (Old)
and /work/SRC/openSUSE:Factory/.python3-pip.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python3-pip"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python3-pip/python3-pip.changes 2015-10-28 17:30:38.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.python3-pip.new/python3-pip.changes 2016-01-22 01:10:26.000000000 +0100
@@ -1,0 +2,88 @@
+Wed Jan 20 10:34:10 UTC 2016 - toddrme2178(a)gmail.com
+
+- Update to 0.8.0
+ * BACKWARD INCOMPATIBLE Drop support for Python 3.2.
+ * BACKWARD INCOMPATIBLE Remove the ability to find any files other than the
+ ones directly linked from the index or find-links pages.
+ * BACKWARD INCOMPATIBLE Remove the ``--download-cache`` which had been
+ deprecated and no-op'd in 6.0.
+ * BACKWARD INCOMPATIBLE Remove the ``--log-explicit-levels`` which had been
+ deprecated in 6.0.
+ * BACKWARD INCOMPATIBLE Change pip wheel --wheel-dir default path from
+ <cwd>/wheelhouse to <cwd>.
+ * Deprecate and no-op the ``--allow-external``, ``--allow-all-external``, and
+ ``--allow-unverified`` functionality that was added as part of PEP 438. With
+ changes made to the repository protocol made in PEP 470, these options are no
+ longer functional.
+ * Allow ``--trusted-host`` within a requirements file. :issue:`2822`.
+ * Allow ``--process-dependency-links`` within a requirements file. :issue:`1274`.
+ * Allow ``--pre`` within a requirements file. :issue:`1273`.
+ * Allow repository URLs with secure transports to count as trusted. (E.g.,
+ "git+ssh" is okay.) :issue:`2811`.
+ * Implement a top-level ``pip download`` command and deprecate
+ ``pip install --download``.
+ * Fixed :issue:`3141`, when uninstalling, look for the case of paths containing
+ symlinked directories (:pull:`3154`)
+ * When installing, if building a wheel fails, clear up the build directory
+ before falling back to a source install. :issue:`3047`.
+ * Fix user directory expansion when ``HOME=/``. Workaround for Python bug
+ http://bugs.python.org/issue14768, reported in :issue:`2996`.
+ * Fixed :issue:`3009`, correct reporting of requirements file line numbers
+ (:pull:`3125`)
+ * Fixed :issue:`1062`, Exception(IOError) for ``pip freeze`` and ``pip list``
+ commands with subversion >= 1.7. (:pull:`3346`)
+ * Provide a spinner showing that progress is happening when installing or
+ building a package via ``setup.py``. This will alleviate concerns that
+ projects with unusually long build times have with pip appearing to stall.
+ * Include the functionality of ``peep`` into pip, allowing hashes to be baked
+ into a requirements file and ensuring that the packages being downloaded
+ match one of those hashes. This is an additional, opt-in security measure
+ that, when used, removes the need to trust the repository.
+ * Fix a bug causing pip to not select a wheel compiled against an OSX SDK later
+ than what Python itself was compiled against when running on a newer version
+ of OSX.
+ * Add a new ``--prefix`` option for ``pip install`` that supports wheels and
+ sdists. (:pull:`3252`)
+ * Fixed :issue:`2042` regarding wheel building with setup.py using a different
+ encoding than the system.
+ * Drop PasteScript specific egg_info hack. (:pull:`3270`)
+ * Allow combination of pip list options --editable with --outdated/--updtodate.
+ (:issue:`933`)
+ * Gives VCS implementations control over saying whether a project
+ is under their control (:pull:`3258`)
+ * Git detection now works when ``setup.py`` is not at the Git repo root
+ and when ``package_dir`` is used, so ``pip freeze`` works in more
+ cases (:pull:`3258`)
+ * Correctly freeze Git develop packages in presence of the &subdirectory
+ option (:pull:`3258`)
+ * The detection of editable packages now relies on the presence of ``.egg-link``
+ instead of looking for a VCS, so ``pip list -e`` is more reliable
+ (:pull:`3258`)
+ * Add the ``--prefix`` flag to ``pip install`` which allows specifying a root
+ prefix to use instead of ``sys.prefix`` (:pull:`3252`).
+ * Allow duplicate specifications in the case that only the extras differ, and
+ union all specified extras together (:pull:`3198`).
+ * Fix the detection of the user's current platform on OSX when determining the
+ OSX SDK version (:pull:`3232`).
+ * Prevent the automatically built wheels from mistakenly being used across
+ multiple versions of Python when they may not be correctly configured for
+ that by making the wheel specific to a specific version of Python and
+ specific interpreter (:pull:`3225`).
+ * Emulate the SOABI support in wheels from Python 2.x on Python 2.x as closely
+ as we can with the information available within the interpreter
+ (:pull:`3075`).
+ * Don't roundtrip to the network when git is pinned to a specific commit hash
+ and that hash already exists locally (:pull:`3066`).
+ * Prefer wheels built against a newer SDK to wheels built against an older SDK
+ on OSX (:pull:`3163`).
+ * Show entry points for projects installed via wheel (:pull:`3122`).
+ * Improve message when an unexisting path is passed to --find-links option
+ (:issue:`2968`).
+ * pip freeze does not add the VCS branch/tag name in the #egg=... fragment anymore
+ (:pull:`3312`).
+ * Warn on installation of editable if the provided #egg=name part does not
+ match the metadata produced by `setup.py egg_info`. :issue:`3143`.
+ * Add support for .xz files for python versions supporting them (>= 3.3).
+ :issue:`722`.
+
+-------------------------------------------------------------------
Old:
----
pip-7.1.2.tar.gz
New:
----
pip-8.0.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python3-pip.spec ++++++
--- /var/tmp/diff_new_pack.Oep1om/_old 2016-01-22 01:10:28.000000000 +0100
+++ /var/tmp/diff_new_pack.Oep1om/_new 2016-01-22 01:10:28.000000000 +0100
@@ -17,7 +17,7 @@
Name: python3-pip
-Version: 7.1.2
+Version: 8.0.0
Release: 0
Url: http://www.pip-installer.org
Summary: Pip installs packages. Python packages. An easy_install replacement
++++++ pip-7.1.2.tar.gz -> pip-8.0.0.tar.gz ++++++
++++ 18691 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package starfighter for openSUSE:Factory checked in at 2016-01-21 23:44:41
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/starfighter (Old)
and /work/SRC/openSUSE:Factory/.starfighter.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "starfighter"
Changes:
--------
--- /work/SRC/openSUSE:Factory/starfighter/starfighter.changes 2015-07-12 22:52:23.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.starfighter.new/starfighter.changes 2016-01-22 01:10:19.000000000 +0100
@@ -1,0 +2,11 @@
+Tue Jan 19 18:41:05 UTC 2016 - nemysis(a)openSUSE.org
+
+- Update to 1.5.1.1, announce message is here:
+
+https://savannah.nongnu.org/forum/forum.php?forum_id=8443
+
+- Use %{oversion} instead of 1.5
+- Remove Desktop entry file, Upstream have accepted changes
+- Add BuildRequires for fdupes and use %fdupes macro to reduce size of the package
+
+-------------------------------------------------------------------
Old:
----
starfighter-1.4-src.tar.gz
starfighter.desktop
New:
----
starfighter-1.5.1.1-src.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ starfighter.spec ++++++
--- /var/tmp/diff_new_pack.Tp1QJL/_old 2016-01-22 01:10:26.000000000 +0100
+++ /var/tmp/diff_new_pack.Tp1QJL/_new 2016-01-22 01:10:26.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package starfighter
#
-# 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
@@ -16,17 +16,19 @@
#
+%define oversion 1.5
+
Name: starfighter
-Version: 1.4
+Version: 1.5.1.1
Release: 0
Summary: Liberate the universe from the evil company WEAPCO
License: GPL-3.0+
Group: Amusements/Games/Action/Arcade
Url: http://starfighter.nongnu.org/
-Source0: http://download.savannah.gnu.org/releases/%{name}/%{version}/%{name}-%{vers…
+Source0: http://download.savannah.gnu.org/releases/%{name}/%{oversion}/%{name}-%{ver…
Source1: %{name}-icons.tar
-Source2: %{name}.desktop
%if 0%{?suse_version}
+BuildRequires: fdupes
BuildRequires: hicolor-icon-theme
BuildRequires: update-desktop-files
%endif
@@ -52,14 +54,6 @@
# Some docs have the DOS line ends
dos2unix README.txt
-# Correct what fdupes find
-for f in brief20 brief21 ; do
- rm -fv data/"$f".txt
- ln -sf brief19.txt data/"$f".txt
-done
-rm -fv aliens26.dat
-ln -sf aliens25.dat data/aliens26.dat
-
# SED-FIX-OPENSUSE -- Fix RPM_OPT_FLAGS
sed -i -e 's|-O2 -Wall -g|%{optflags}|' Makefile
@@ -74,24 +68,18 @@
install -Dm 0644 icons/%{name}_${i}x${i}.png %{buildroot}%{_datadir}/icons/hicolor/${i}x${i}/apps/%{name}.png
done
-# install Desktop file
-install -Dm 0644 %{S:2} %{buildroot}%{_datadir}/applications/%{name}.desktop
-
%if 0%{?suse_version}
%suse_update_desktop_file %{name}
+ %fdupes -s %{buildroot}%{_prefix}
%endif
-# SED-FIX-UPSTREAM -- Correct bad linking, fdupes make bad Symlinks and Game not works
-for f in arrowNorthEast dollar heart plasmaAmmo plasmaDamage plasmaRate rocket rocketAmmo sflogo superCharge ; do
- ln -sf ../../../%{name}/gfx/"$f".png docs/"$f".png
-done
-
%files
%defattr(-,root,root,-)
%doc docs/* COPYING LICENSES README.txt
%{_bindir}/%{name}
%{_datadir}/applications/%{name}.desktop
%{_datadir}/icons/hicolor/
+%{_datadir}/pixmaps/%{name}.png
%{_datadir}/%{name}
%changelog
++++++ starfighter-1.4-src.tar.gz -> starfighter-1.5.1.1-src.tar.gz ++++++
/work/SRC/openSUSE:Factory/starfighter/starfighter-1.4-src.tar.gz /work/SRC/openSUSE:Factory/.starfighter.new/starfighter-1.5.1.1-src.tar.gz differ: char 5, line 1
1
0
Hello community,
here is the log from the commit of package apache2-mod_jk for openSUSE:Factory checked in at 2016-01-21 23:44:39
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/apache2-mod_jk (Old)
and /work/SRC/openSUSE:Factory/.apache2-mod_jk.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "apache2-mod_jk"
Changes:
--------
--- /work/SRC/openSUSE:Factory/apache2-mod_jk/apache2-mod_jk.changes 2015-09-24 06:13:51.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.apache2-mod_jk.new/apache2-mod_jk.changes 2016-01-22 01:10:15.000000000 +0100
@@ -1,0 +2,8 @@
+Wed Jan 20 09:38:37 UTC 2016 - tchvatal(a)suse.com
+
+- Version update to 1.2.41:
+ * remove merged patch apache2-mod_jk-CVE-2014-8111.patch
+ * many small bugfixes all around:
+ + http://tomcat.apache.org/connectors-doc/miscellaneous/changelog.html
+
+-------------------------------------------------------------------
Old:
----
apache2-mod_jk-CVE-2014-8111.patch
tomcat-connectors-1.2.40-src.tar.gz
New:
----
tomcat-connectors-1.2.41-src.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ apache2-mod_jk.spec ++++++
--- /var/tmp/diff_new_pack.LRKn9X/_old 2016-01-22 01:10:17.000000000 +0100
+++ /var/tmp/diff_new_pack.LRKn9X/_new 2016-01-22 01:10:17.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package apache2-mod_jk
#
-# 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
@@ -18,7 +18,7 @@
%define connectors_root tomcat-connectors-%{version}-src
Name: apache2-mod_jk
-Version: 1.2.40
+Version: 1.2.41
Release: 0
Summary: Connectors between Apache and Tomcat Servlet Container
License: Apache-2.0
@@ -27,8 +27,6 @@
Source0: http://www.apache.org/dist/tomcat/tomcat-connectors/jk/tomcat-connectors-%{…
Source1: jk.conf
Source2: README.SUSE
-# PATCH-FIX-UPSTREAM: CVE-2014-8111 patch taken from upstream
-Patch0: apache2-mod_jk-CVE-2014-8111.patch
BuildRequires: apache-rpm-macros
BuildRequires: apache2-devel
BuildRequires: java2-devel-packages
@@ -51,7 +49,6 @@
%prep
%setup -q -n %{connectors_root}
-%patch0 -p1
%build
# prepare apr
++++++ tomcat-connectors-1.2.40-src.tar.gz -> tomcat-connectors-1.2.41-src.tar.gz ++++++
++++ 96590 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package libpfm for openSUSE:Factory checked in at 2016-01-21 23:44:36
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libpfm (Old)
and /work/SRC/openSUSE:Factory/.libpfm.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libpfm"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libpfm/libpfm.changes 2015-06-01 09:55:53.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.libpfm.new/libpfm.changes 2016-01-22 01:10:13.000000000 +0100
@@ -1,0 +2,6 @@
+Tue Jan 19 18:17:58 UTC 2016 - tonyj(a)suse.com
+
+- Package useful utilities (check_events. evt2raw and showevtinfo)
+ in devel package.
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libpfm.spec ++++++
--- /var/tmp/diff_new_pack.u2togP/_old 2016-01-22 01:10:15.000000000 +0100
+++ /var/tmp/diff_new_pack.u2togP/_new 2016-01-22 01:10:15.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package libpfm
#
-# 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
@@ -88,6 +88,10 @@
%{python_config} \
LDCONFIG=/bin/true \
install
+mkdir -p %{buildroot}/%{_bindir}
+install -m 0755 examples/check_events %{buildroot}/%{_bindir}/check_events
+install -m 0755 examples/showevtinfo %{buildroot}/%{_bindir}/showevtinfo
+install -m 0755 perf_examples/evt2raw %{buildroot}/%{_bindir}/evt2raw
# temp hack to fix rpmlint file-contains-buildroot for *.pyc
# http://lists.opensuse.org/opensuse-factory/2012-01/msg00235.html
@@ -108,6 +112,9 @@
%{_includedir}/*
%{_mandir}/man3/*
%{_libdir}/lib*.so
+%attr(755,root,root) %{_bindir}/check_events
+%attr(755,root,root) %{_bindir}/showevtinfo
+%attr(755,root,root) %{_bindir}/evt2raw
%files devel-static
%defattr(-,root,root)
1
0
Hello community,
here is the log from the commit of package redshift for openSUSE:Factory checked in at 2016-01-21 23:44:33
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/redshift (Old)
and /work/SRC/openSUSE:Factory/.redshift.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "redshift"
Changes:
--------
--- /work/SRC/openSUSE:Factory/redshift/redshift.changes 2016-01-17 09:23:32.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.redshift.new/redshift.changes 2016-01-22 01:10:11.000000000 +0100
@@ -1,0 +2,11 @@
+Tue Jan 19 16:19:58 UTC 2016 - zaitor(a)opensuse.org
+
+- Add pkgconfig(libdrm) BuildRequires: Build support for DRM
+ adjustement method.
+- Change --with-systemduserunitdir=no to
+ --with-systemduserunitdir=%{_userunitdir} and package the
+ produced service files. Users can do systemctl enable/disable
+ --user redshift.service or redshift-gtk.service depending on what
+ package they install/want.
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ redshift.spec ++++++
--- /var/tmp/diff_new_pack.5rhqrh/_old 2016-01-22 01:10:13.000000000 +0100
+++ /var/tmp/diff_new_pack.5rhqrh/_new 2016-01-22 01:10:13.000000000 +0100
@@ -33,6 +33,7 @@
BuildRequires: update-desktop-files
BuildRequires: pkgconfig(gconf-2.0)
BuildRequires: pkgconfig(geoclue-2.0)
+BuildRequires: pkgconfig(libdrm)
BuildRequires: pkgconfig(python3)
BuildRequires: pkgconfig(systemd)
BuildRequires: pkgconfig(x11)
@@ -60,10 +61,8 @@
%setup -q
%build
-#./bootstrap
-# disable systemd unit installation, not really sure how that's expected to work
%configure --enable-gui --disable-geoclue --enable-geoclue2 --enable-randr --enable-vidmode \
- --with-systemduserunitdir=no
+ --with-systemduserunitdir=%{_userunitdir}
make %{?_smp_mflags}
%install
@@ -93,6 +92,7 @@
%{_datadir}/icons/hicolor/scalable/apps/redshift-status-off.svg
%{_datadir}/icons/hicolor/scalable/apps/redshift-status-on.svg
%{_datadir}/icons/hicolor/scalable/apps/redshift.svg
+%{_userunitdir}/redshift-gtk.service
%if 0%{?suse_version} > 1310
%dir %{_datadir}/appdata
%{_datadir}/appdata/redshift-gtk.appdata.xml
@@ -103,5 +103,6 @@
%{_bindir}/redshift
%{_mandir}/man1/redshift.1.gz
%{_datadir}/applications/redshift.desktop
+%{_userunitdir}/redshift.service
%changelog
1
0
22 Jan '16
Hello community,
here is the log from the commit of package golang-github-cpuguy83-go-md2man for openSUSE:Factory checked in at 2016-01-21 23:44:31
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/golang-github-cpuguy83-go-md2man (Old)
and /work/SRC/openSUSE:Factory/.golang-github-cpuguy83-go-md2man.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "golang-github-cpuguy83-go-md2man"
Changes:
--------
--- /work/SRC/openSUSE:Factory/golang-github-cpuguy83-go-md2man/golang-github-cpuguy83-go-md2man.changes 2015-08-01 14:17:08.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.golang-github-cpuguy83-go-md2man.new/golang-github-cpuguy83-go-md2man.changes 2016-01-22 01:10:09.000000000 +0100
@@ -1,0 +2,7 @@
+Sun Jan 17 09:56:53 UTC 2016 - i(a)marguerite.su
+
+- Update to version 1.0.5+git20160104.2724a9c:
+ + md2man usable as a library (again)
+ + Improve man page rendering
+
+-------------------------------------------------------------------
Old:
----
go-md2man-1.0.2+git20150617.e69ac41.tar.xz
New:
----
_servicedata
go-md2man-1.0.5+git20160104.2724a9c.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ golang-github-cpuguy83-go-md2man.spec ++++++
--- /var/tmp/diff_new_pack.uUkqsJ/_old 2016-01-22 01:10:11.000000000 +0100
+++ /var/tmp/diff_new_pack.uUkqsJ/_new 2016-01-22 01:10:11.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package golang-github-cpuguy83-go-md2man
#
-# Copyright (c) 2015 SUSE LLC
+# 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,47 +17,41 @@
Name: golang-github-cpuguy83-go-md2man
-Version: 1.0.2+git20150617.e69ac41
+Version: 1.0.5+git20160104.2724a9c
Release: 0
Summary: Convert markdown into man pages
License: MIT
-Group: Development/Languages/Other
-URL: https://github.com/cpuguy83/go-md2man
+Group: Development/Languages/Golang
+Url: https://github.com/cpuguy83/go-md2man
Source0: go-md2man-%{version}.tar.xz
-BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: golang-packaging
-BuildRequires: golang(golang.org/x/net)
+BuildRequires: xz
BuildRequires: golang(github.com/russross/blackfriday)
+BuildRequires: golang(golang.org/x/net)
Provides: go-go-md2man = %{version}
Obsoletes: go-go-md2man < %{version}
+BuildRoot: %{_tmppath}/%{name}-%{version}-build
%{go_provides}
%description
Tool to converts markdown into man pages
-%gosrc_package
-
%prep
%setup -q -n go-md2man-%{version}
%build
-%goprep github.com/cpuguy83/go-md2man
-%gobuild ...
+%{goprep} github.com/cpuguy83/go-md2man
+%{gobuild} ...
%install
-%goinstall
-%gosrc
+%{goinstall}
+%{go_filelist}
%check
-%gotest github.com/cpuguy83/go-md2man
+%{gotest} github.com/cpuguy83/go-md2man
-%files
+%files -f file.lst
%defattr(-,root,root,-)
%doc README.md LICENSE.md
-%{_bindir}/go-md2man
-
-%files source
-%defattr(-,root,root,-)
-%{go_contribsrcdir}/*
%changelog
++++++ _service ++++++
--- /var/tmp/diff_new_pack.uUkqsJ/_old 2016-01-22 01:10:11.000000000 +0100
+++ /var/tmp/diff_new_pack.uUkqsJ/_new 2016-01-22 01:10:11.000000000 +0100
@@ -1,16 +1,17 @@
<services>
- <service name="tar_scm" mode="localonly">
- <param name="url">http://github.com/cpuguy83/go-md2man</param>
+ <service name="tar_scm" mode="disabled">
+ <param name="url">https://github.com/cpuguy83/go-md2man</param>
<param name="scm">git</param>
<param name="exclude">.git</param>
- <param name="versionformat">1.0.2+git%cd.%h</param>
+ <param name="versionformat">1.0.5+git%cd.%h</param>
<param name="revision">master</param>
+ <param name="changesgenerate">enable</param>
</service>
- <service name="recompress" mode="localonly">
+ <service name="recompress" mode="disabled">
<param name="file">go-md2man-*.tar</param>
<param name="compression">xz</param>
</service>
- <service name="set_version" mode="localonly">
+ <service name="set_version" mode="disabled">
<param name="basename">go-md2man</param>
</service>
</services>
++++++ _servicedata ++++++
<servicedata>
<service name="tar_scm">
<param name="url">https://github.com/cpuguy83/go-md2man</param>
<param name="changesrevision">2724a9c9051aa62e9cca11304e7dd518e9e41599</param></service></servicedata>++++++ go-md2man-1.0.2+git20150617.e69ac41.tar.xz -> go-md2man-1.0.5+git20160104.2724a9c.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/go-md2man-1.0.2+git20150617.e69ac41/md2man/md2man.go new/go-md2man-1.0.5+git20160104.2724a9c/md2man/md2man.go
--- old/go-md2man-1.0.2+git20150617.e69ac41/md2man/md2man.go 1970-01-01 01:00:00.000000000 +0100
+++ new/go-md2man-1.0.5+git20160104.2724a9c/md2man/md2man.go 2016-01-17 10:56:53.000000000 +0100
@@ -0,0 +1,19 @@
+package md2man
+
+import (
+ "github.com/russross/blackfriday"
+)
+
+func Render(doc []byte) []byte {
+ renderer := RoffRenderer(0)
+ extensions := 0
+ extensions |= blackfriday.EXTENSION_NO_INTRA_EMPHASIS
+ extensions |= blackfriday.EXTENSION_TABLES
+ extensions |= blackfriday.EXTENSION_FENCED_CODE
+ extensions |= blackfriday.EXTENSION_AUTOLINK
+ extensions |= blackfriday.EXTENSION_SPACE_HEADERS
+ extensions |= blackfriday.EXTENSION_FOOTNOTES
+ extensions |= blackfriday.EXTENSION_TITLEBLOCK
+
+ return blackfriday.Markdown(doc, renderer, extensions)
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/go-md2man-1.0.2+git20150617.e69ac41/md2man/roff.go new/go-md2man-1.0.5+git20160104.2724a9c/md2man/roff.go
--- old/go-md2man-1.0.2+git20150617.e69ac41/md2man/roff.go 1970-01-01 01:00:00.000000000 +0100
+++ new/go-md2man-1.0.5+git20160104.2724a9c/md2man/roff.go 2016-01-17 10:56:53.000000000 +0100
@@ -0,0 +1,281 @@
+package md2man
+
+import (
+ "bytes"
+ "fmt"
+ "html"
+ "strings"
+
+ "github.com/russross/blackfriday"
+)
+
+type roffRenderer struct{}
+
+var listCounter int
+
+func RoffRenderer(flags int) blackfriday.Renderer {
+ return &roffRenderer{}
+}
+
+func (r *roffRenderer) GetFlags() int {
+ return 0
+}
+
+func (r *roffRenderer) TitleBlock(out *bytes.Buffer, text []byte) {
+ out.WriteString(".TH ")
+
+ splitText := bytes.Split(text, []byte("\n"))
+ for i, line := range splitText {
+ line = bytes.TrimPrefix(line, []byte("% "))
+ if i == 0 {
+ line = bytes.Replace(line, []byte("("), []byte("\" \""), 1)
+ line = bytes.Replace(line, []byte(")"), []byte("\" \""), 1)
+ }
+ line = append([]byte("\""), line...)
+ line = append(line, []byte("\" ")...)
+ out.Write(line)
+ }
+ out.WriteString("\n")
+
+ // disable hyphenation
+ out.WriteString(".nh\n")
+ // disable justification (adjust text to left margin only)
+ out.WriteString(".ad l\n")
+}
+
+func (r *roffRenderer) BlockCode(out *bytes.Buffer, text []byte, lang string) {
+ out.WriteString("\n.PP\n.RS\n\n.nf\n")
+ escapeSpecialChars(out, text)
+ out.WriteString("\n.fi\n.RE\n")
+}
+
+func (r *roffRenderer) BlockQuote(out *bytes.Buffer, text []byte) {
+ out.WriteString("\n.PP\n.RS\n")
+ out.Write(text)
+ out.WriteString("\n.RE\n")
+}
+
+func (r *roffRenderer) BlockHtml(out *bytes.Buffer, text []byte) {
+ out.Write(text)
+}
+
+func (r *roffRenderer) Header(out *bytes.Buffer, text func() bool, level int, id string) {
+ marker := out.Len()
+
+ switch {
+ case marker == 0:
+ // This is the doc header
+ out.WriteString(".TH ")
+ case level == 1:
+ out.WriteString("\n\n.SH ")
+ case level == 2:
+ out.WriteString("\n.SH ")
+ default:
+ out.WriteString("\n.SS ")
+ }
+
+ if !text() {
+ out.Truncate(marker)
+ return
+ }
+}
+
+func (r *roffRenderer) HRule(out *bytes.Buffer) {
+ out.WriteString("\n.ti 0\n\\l'\\n(.lu'\n")
+}
+
+func (r *roffRenderer) List(out *bytes.Buffer, text func() bool, flags int) {
+ marker := out.Len()
+ if flags&blackfriday.LIST_TYPE_ORDERED != 0 {
+ listCounter = 1
+ }
+ if !text() {
+ out.Truncate(marker)
+ return
+ }
+}
+
+func (r *roffRenderer) ListItem(out *bytes.Buffer, text []byte, flags int) {
+ if flags&blackfriday.LIST_TYPE_ORDERED != 0 {
+ out.WriteString(fmt.Sprintf(".IP \"%3d.\" 5\n", listCounter))
+ listCounter += 1
+ } else {
+ out.WriteString(".IP \\(bu 2\n")
+ }
+ out.Write(text)
+ out.WriteString("\n")
+}
+
+func (r *roffRenderer) Paragraph(out *bytes.Buffer, text func() bool) {
+ marker := out.Len()
+ out.WriteString("\n.PP\n")
+ if !text() {
+ out.Truncate(marker)
+ return
+ }
+ if marker != 0 {
+ out.WriteString("\n")
+ }
+}
+
+// TODO: This might now work
+func (r *roffRenderer) Table(out *bytes.Buffer, header []byte, body []byte, columnData []int) {
+ out.WriteString(".TS\nallbox;\n")
+
+ out.Write(header)
+ out.Write(body)
+ out.WriteString("\n.TE\n")
+}
+
+func (r *roffRenderer) TableRow(out *bytes.Buffer, text []byte) {
+ if out.Len() > 0 {
+ out.WriteString("\n")
+ }
+ out.Write(text)
+ out.WriteString("\n")
+}
+
+func (r *roffRenderer) TableHeaderCell(out *bytes.Buffer, text []byte, align int) {
+ if out.Len() > 0 {
+ out.WriteString(" ")
+ }
+ out.Write(text)
+ out.WriteString(" ")
+}
+
+// TODO: This is probably broken
+func (r *roffRenderer) TableCell(out *bytes.Buffer, text []byte, align int) {
+ if out.Len() > 0 {
+ out.WriteString("\t")
+ }
+ out.Write(text)
+ out.WriteString("\t")
+}
+
+func (r *roffRenderer) Footnotes(out *bytes.Buffer, text func() bool) {
+
+}
+
+func (r *roffRenderer) FootnoteItem(out *bytes.Buffer, name, text []byte, flags int) {
+
+}
+
+func (r *roffRenderer) AutoLink(out *bytes.Buffer, link []byte, kind int) {
+ out.WriteString("\n\\[la]")
+ out.Write(link)
+ out.WriteString("\\[ra]")
+}
+
+func (r *roffRenderer) CodeSpan(out *bytes.Buffer, text []byte) {
+ out.WriteString("\\fB\\fC")
+ escapeSpecialChars(out, text)
+ out.WriteString("\\fR")
+}
+
+func (r *roffRenderer) DoubleEmphasis(out *bytes.Buffer, text []byte) {
+ out.WriteString("\\fB")
+ out.Write(text)
+ out.WriteString("\\fP")
+}
+
+func (r *roffRenderer) Emphasis(out *bytes.Buffer, text []byte) {
+ out.WriteString("\\fI")
+ out.Write(text)
+ out.WriteString("\\fP")
+}
+
+func (r *roffRenderer) Image(out *bytes.Buffer, link []byte, title []byte, alt []byte) {
+}
+
+func (r *roffRenderer) LineBreak(out *bytes.Buffer) {
+ out.WriteString("\n.br\n")
+}
+
+func (r *roffRenderer) Link(out *bytes.Buffer, link []byte, title []byte, content []byte) {
+ r.AutoLink(out, link, 0)
+}
+
+func (r *roffRenderer) RawHtmlTag(out *bytes.Buffer, tag []byte) {
+ out.Write(tag)
+}
+
+func (r *roffRenderer) TripleEmphasis(out *bytes.Buffer, text []byte) {
+ out.WriteString("\\s+2")
+ out.Write(text)
+ out.WriteString("\\s-2")
+}
+
+func (r *roffRenderer) StrikeThrough(out *bytes.Buffer, text []byte) {
+}
+
+func (r *roffRenderer) FootnoteRef(out *bytes.Buffer, ref []byte, id int) {
+
+}
+
+func (r *roffRenderer) Entity(out *bytes.Buffer, entity []byte) {
+ out.WriteString(html.UnescapeString(string(entity)))
+}
+
+func processFooterText(text []byte) []byte {
+ text = bytes.TrimPrefix(text, []byte("% "))
+ newText := []byte{}
+ textArr := strings.Split(string(text), ") ")
+
+ for i, w := range textArr {
+ if i == 0 {
+ w = strings.Replace(w, "(", "\" \"", 1)
+ w = fmt.Sprintf("\"%s\"", w)
+ } else {
+ w = fmt.Sprintf(" \"%s\"", w)
+ }
+ newText = append(newText, []byte(w)...)
+ }
+ newText = append(newText, []byte(" \"\"")...)
+
+ return newText
+}
+
+func (r *roffRenderer) NormalText(out *bytes.Buffer, text []byte) {
+ escapeSpecialChars(out, text)
+}
+
+func (r *roffRenderer) DocumentHeader(out *bytes.Buffer) {
+}
+
+func (r *roffRenderer) DocumentFooter(out *bytes.Buffer) {
+}
+
+func needsBackslash(c byte) bool {
+ for _, r := range []byte("-_&\\~") {
+ if c == r {
+ return true
+ }
+ }
+ return false
+}
+
+func escapeSpecialChars(out *bytes.Buffer, text []byte) {
+ for i := 0; i < len(text); i++ {
+ // escape initial apostrophe or period
+ if len(text) >= 1 && (text[0] == '\'' || text[0] == '.') {
+ out.WriteString("\\&")
+ }
+
+ // directly copy normal characters
+ org := i
+
+ for i < len(text) && !needsBackslash(text[i]) {
+ i++
+ }
+ if i > org {
+ out.Write(text[org:i])
+ }
+
+ // escape a character
+ if i >= len(text) {
+ break
+ }
+ out.WriteByte('\\')
+ out.WriteByte(text[i])
+ }
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/go-md2man-1.0.2+git20150617.e69ac41/md2man.go new/go-md2man-1.0.5+git20160104.2724a9c/md2man.go
--- old/go-md2man-1.0.2+git20150617.e69ac41/md2man.go 2015-07-28 14:32:58.000000000 +0200
+++ new/go-md2man-1.0.5+git20160104.2724a9c/md2man.go 2016-01-17 10:56:53.000000000 +0100
@@ -6,7 +6,7 @@
"io/ioutil"
"os"
- "github.com/russross/blackfriday"
+ "github.com/cpuguy83/go-md2man/md2man"
)
var inFilePath = flag.String("in", "", "Path to file to be processed")
@@ -28,17 +28,7 @@
os.Exit(1)
}
- renderer := RoffRenderer(0)
- extensions := 0
- extensions |= blackfriday.EXTENSION_NO_INTRA_EMPHASIS
- extensions |= blackfriday.EXTENSION_TABLES
- extensions |= blackfriday.EXTENSION_FENCED_CODE
- extensions |= blackfriday.EXTENSION_AUTOLINK
- extensions |= blackfriday.EXTENSION_SPACE_HEADERS
- extensions |= blackfriday.EXTENSION_FOOTNOTES
- extensions |= blackfriday.EXTENSION_TITLEBLOCK
-
- out := blackfriday.Markdown(doc, renderer, extensions)
+ out := md2man.Render(doc)
outFile, err := os.Create(*outFilePath)
if err != nil {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/go-md2man-1.0.2+git20150617.e69ac41/roff.go new/go-md2man-1.0.5+git20160104.2724a9c/roff.go
--- old/go-md2man-1.0.2+git20150617.e69ac41/roff.go 2015-07-28 14:32:58.000000000 +0200
+++ new/go-md2man-1.0.5+git20160104.2724a9c/roff.go 1970-01-01 01:00:00.000000000 +0100
@@ -1,269 +0,0 @@
-package main
-
-import (
- "bytes"
- "fmt"
- "html"
- "strings"
-
- "github.com/russross/blackfriday"
-)
-
-type roffRenderer struct{}
-
-func RoffRenderer(flags int) blackfriday.Renderer {
- return &roffRenderer{}
-}
-
-func (r *roffRenderer) GetFlags() int {
- return 0
-}
-
-func (r *roffRenderer) TitleBlock(out *bytes.Buffer, text []byte) {
- out.WriteString(".TH ")
-
- splitText := bytes.Split(text, []byte("\n"))
- for i, line := range splitText {
- line = bytes.TrimPrefix(line, []byte("% "))
- if i == 0 {
- line = bytes.Replace(line, []byte("("), []byte("\" \""), 1)
- line = bytes.Replace(line, []byte(")"), []byte("\" \""), 1)
- }
- line = append([]byte("\""), line...)
- line = append(line, []byte("\" ")...)
- out.Write(line)
- }
-
- out.WriteString(" \"\"\n")
-}
-
-func (r *roffRenderer) BlockCode(out *bytes.Buffer, text []byte, lang string) {
- out.WriteString("\n.PP\n.RS\n\n.nf\n")
- escapeSpecialChars(out, text)
- out.WriteString("\n.fi\n.RE\n")
-}
-
-func (r *roffRenderer) BlockQuote(out *bytes.Buffer, text []byte) {
- out.WriteString("\n.PP\n.RS\n")
- out.Write(text)
- out.WriteString("\n.RE\n")
-}
-
-func (r *roffRenderer) BlockHtml(out *bytes.Buffer, text []byte) {
- out.Write(text)
-}
-
-func (r *roffRenderer) Header(out *bytes.Buffer, text func() bool, level int, id string) {
- marker := out.Len()
-
- switch {
- case marker == 0:
- // This is the doc header
- out.WriteString(".TH ")
- case level == 1:
- out.WriteString("\n\n.SH ")
- case level == 2:
- out.WriteString("\n.SH ")
- default:
- out.WriteString("\n.SS ")
- }
-
- if !text() {
- out.Truncate(marker)
- return
- }
-}
-
-func (r *roffRenderer) HRule(out *bytes.Buffer) {
- out.WriteString("\n.ti 0\n\\l'\\n(.lu'\n")
-}
-
-func (r *roffRenderer) List(out *bytes.Buffer, text func() bool, flags int) {
- marker := out.Len()
- out.WriteString(".IP ")
- if flags&blackfriday.LIST_TYPE_ORDERED != 0 {
- out.WriteString("\\(bu 2")
- } else {
- out.WriteString("\\n+[step" + string(flags) + "]")
- }
- out.WriteString("\n")
- if !text() {
- out.Truncate(marker)
- return
- }
-
-}
-
-func (r *roffRenderer) ListItem(out *bytes.Buffer, text []byte, flags int) {
- out.WriteString("\n\\item ")
- out.Write(text)
-}
-
-func (r *roffRenderer) Paragraph(out *bytes.Buffer, text func() bool) {
- marker := out.Len()
- out.WriteString("\n.PP\n")
- if !text() {
- out.Truncate(marker)
- return
- }
- if marker != 0 {
- out.WriteString("\n")
- }
-}
-
-// TODO: This might now work
-func (r *roffRenderer) Table(out *bytes.Buffer, header []byte, body []byte, columnData []int) {
- out.WriteString(".TS\nallbox;\n")
-
- out.Write(header)
- out.Write(body)
- out.WriteString("\n.TE\n")
-}
-
-func (r *roffRenderer) TableRow(out *bytes.Buffer, text []byte) {
- if out.Len() > 0 {
- out.WriteString("\n")
- }
- out.Write(text)
- out.WriteString("\n")
-}
-
-func (r *roffRenderer) TableHeaderCell(out *bytes.Buffer, text []byte, align int) {
- if out.Len() > 0 {
- out.WriteString(" ")
- }
- out.Write(text)
- out.WriteString(" ")
-}
-
-// TODO: This is probably broken
-func (r *roffRenderer) TableCell(out *bytes.Buffer, text []byte, align int) {
- if out.Len() > 0 {
- out.WriteString("\t")
- }
- out.Write(text)
- out.WriteString("\t")
-}
-
-func (r *roffRenderer) Footnotes(out *bytes.Buffer, text func() bool) {
-
-}
-
-func (r *roffRenderer) FootnoteItem(out *bytes.Buffer, name, text []byte, flags int) {
-
-}
-
-func (r *roffRenderer) AutoLink(out *bytes.Buffer, link []byte, kind int) {
- out.WriteString("\n\\[la]")
- out.Write(link)
- out.WriteString("\\[ra]")
-}
-
-func (r *roffRenderer) CodeSpan(out *bytes.Buffer, text []byte) {
- out.WriteString("\\fB\\fC")
- escapeSpecialChars(out, text)
- out.WriteString("\\fR")
-}
-
-func (r *roffRenderer) DoubleEmphasis(out *bytes.Buffer, text []byte) {
- out.WriteString("\\fB")
- out.Write(text)
- out.WriteString("\\fP")
-}
-
-func (r *roffRenderer) Emphasis(out *bytes.Buffer, text []byte) {
- out.WriteString("\\fI")
- out.Write(text)
- out.WriteString("\\fP")
-}
-
-func (r *roffRenderer) Image(out *bytes.Buffer, link []byte, title []byte, alt []byte) {
-}
-
-func (r *roffRenderer) LineBreak(out *bytes.Buffer) {
- out.WriteString("\n.br\n")
-}
-
-func (r *roffRenderer) Link(out *bytes.Buffer, link []byte, title []byte, content []byte) {
- r.AutoLink(out, link, 0)
-}
-
-func (r *roffRenderer) RawHtmlTag(out *bytes.Buffer, tag []byte) {
- out.Write(tag)
-}
-
-func (r *roffRenderer) TripleEmphasis(out *bytes.Buffer, text []byte) {
- out.WriteString("\\s+2")
- out.Write(text)
- out.WriteString("\\s-2")
-}
-
-func (r *roffRenderer) StrikeThrough(out *bytes.Buffer, text []byte) {
-}
-
-func (r *roffRenderer) FootnoteRef(out *bytes.Buffer, ref []byte, id int) {
-
-}
-
-func (r *roffRenderer) Entity(out *bytes.Buffer, entity []byte) {
- out.WriteString(html.UnescapeString(string(entity)))
-}
-
-func processFooterText(text []byte) []byte {
- text = bytes.TrimPrefix(text, []byte("% "))
- newText := []byte{}
- textArr := strings.Split(string(text), ") ")
-
- for i, w := range textArr {
- if i == 0 {
- w = strings.Replace(w, "(", "\" \"", 1)
- w = fmt.Sprintf("\"%s\"", w)
- } else {
- w = fmt.Sprintf(" \"%s\"", w)
- }
- newText = append(newText, []byte(w)...)
- }
- newText = append(newText, []byte(" \"\"")...)
-
- return newText
-}
-
-func (r *roffRenderer) NormalText(out *bytes.Buffer, text []byte) {
- escapeSpecialChars(out, text)
-}
-
-func (r *roffRenderer) DocumentHeader(out *bytes.Buffer) {
-}
-
-func (r *roffRenderer) DocumentFooter(out *bytes.Buffer) {
-}
-
-func needsBackslash(c byte) bool {
- for _, r := range []byte("-_&\\~") {
- if c == r {
- return true
- }
- }
- return false
-}
-
-func escapeSpecialChars(out *bytes.Buffer, text []byte) {
- for i := 0; i < len(text); i++ {
- // directly copy normal characters
- org := i
-
- for i < len(text) && !needsBackslash(text[i]) {
- i++
- }
- if i > org {
- out.Write(text[org:i])
- }
-
- // escape a character
- if i >= len(text) {
- break
- }
- out.WriteByte('\\')
- out.WriteByte(text[i])
- }
-}
1
0
22 Jan '16
Hello community,
here is the log from the commit of package golang-github-russross-blackfriday for openSUSE:Factory checked in at 2016-01-21 23:44:29
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/golang-github-russross-blackfriday (Old)
and /work/SRC/openSUSE:Factory/.golang-github-russross-blackfriday.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "golang-github-russross-blackfriday"
Changes:
--------
--- /work/SRC/openSUSE:Factory/golang-github-russross-blackfriday/golang-github-russross-blackfriday.changes 2015-08-01 11:37:44.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.golang-github-russross-blackfriday.new/golang-github-russross-blackfriday.changes 2016-01-22 01:10:07.000000000 +0100
@@ -1,0 +2,23 @@
+Sun Jan 17 09:55:17 UTC 2016 - i(a)marguerite.su
+
+- Update to version 1.4.0+git20151230.c8875c0:
+ + remove check that brace is > 0
+ + Use more idiomatic form for set of strings
+ + Add a few missing HTML5 block tags
+ + Fix footnote following an exclamation point
+ + Add String() method to reference struct
+ + Fix nested footnotes
+ + Fix fenced code processing inside blockquotes
+ + Refix fenced code blocks w/o preceding blank lines
+ + Fix escaping asterisks within emphasis
+ + Fix footnote followed by a reference style link
+ + Fix bug parsing emphasis
+ + Add HTML_SMARTYPANTS_DASHES for togging smart dashes
+ + LaTex backend: add # to list of characters requiring
+ backslash-escaping
+ + Don't require the input to end with a newline
+ + Implement support for CDATA section
+ + Convert constant variables into consts
+ + Fix bug with gathering list item lines
+
+-------------------------------------------------------------------
Old:
----
blackfriday-1.2.0+git20150720.8cec3a8.tar.xz
New:
----
_servicedata
blackfriday-1.4.0+git20151230.c8875c0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ golang-github-russross-blackfriday.spec ++++++
--- /var/tmp/diff_new_pack.4h9UD3/_old 2016-01-22 01:10:08.000000000 +0100
+++ /var/tmp/diff_new_pack.4h9UD3/_new 2016-01-22 01:10:08.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package golang-github-russross-blackfriday
#
-# Copyright (c) 2015 SUSE LLC
+# 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,20 +17,21 @@
Name: golang-github-russross-blackfriday
-Version: 1.2.0+git20150720.8cec3a8
+Version: 1.4.0+git20151230.c8875c0
Release: 0
Summary: Markdown processor implemented in Go
License: BSD-2-Clause
-Group: Development/Languages/Other
-URL: https://github.com/russross/blackfriday
+Group: Development/Languages/Golang
+Url: https://github.com/russross/blackfriday
Source: blackfriday-%{version}.tar.xz
-BuildRoot: %{_tmppath}/%{name}-%{version}-build
-BuildRequires: golang-packaging
-BuildRequires: golang(github.com/shurcooL/sanitized_anchor_name)
BuildRequires: findutils
+BuildRequires: golang-packaging
BuildRequires: sed
+BuildRequires: xz
+BuildRequires: golang(github.com/shurcooL/sanitized_anchor_name)
Provides: go-blackfriday = %{version}
Obsoletes: go-blackfriday < %{version}
+BuildRoot: %{_tmppath}/%{name}-%{version}-build
%{go_provides}
%description
@@ -38,29 +39,22 @@
HTML output is currently supported, along with Smartypants extensions. An experimental LaTeX output engine is also included.
-%gosrc_package
-
%prep
%setup -q -n blackfriday-%{version}
%build
-%goprep github.com/russross/blackfriday
-%gobuild ...
+%{goprep} github.com/russross/blackfriday
+%{gobuild} ...
%install
-%goinstall
-%gosrc
+%{goinstall}
+%{go_filelist}
%check
-%gotest github.com/russross/blackfriday
+%{gotest} github.com/russross/blackfriday
-%files
+%files -f file.lst
%defattr(-,root,root,-)
%doc README.md
-%{go_contribdir}/*
-
-%files source
-%defattr(-,root,root,-)
-%{go_contribsrcdir}/*
%changelog
++++++ _service ++++++
--- /var/tmp/diff_new_pack.4h9UD3/_old 2016-01-22 01:10:08.000000000 +0100
+++ /var/tmp/diff_new_pack.4h9UD3/_new 2016-01-22 01:10:08.000000000 +0100
@@ -1,16 +1,17 @@
<services>
- <service name="tar_scm" mode="localonly">
- <param name="url">http://github.com/russross/blackfriday</param>
+ <service name="tar_scm" mode="disabled">
+ <param name="url">https://github.com/russross/blackfriday</param>
<param name="scm">git</param>
<param name="exclude">.git</param>
- <param name="versionformat">1.2.0+git%cd.%h</param>
+ <param name="versionformat">1.4.0+git%cd.%h</param>
<param name="revision">master</param>
+ <param name="changesgenerate">enable</param>
</service>
- <service name="recompress" mode="localonly">
+ <service name="recompress" mode="disabled">
<param name="file">blackfriday-*.tar</param>
<param name="compression">xz</param>
</service>
- <service name="set_version" mode="localonly">
+ <service name="set_version" mode="disabled">
<param name="basename">blackfriday</param>
</service>
</services>
++++++ _servicedata ++++++
<servicedata>
<service name="tar_scm">
<param name="url">https://github.com/russross/blackfriday</param>
<param name="changesrevision">c8875c0ed47e07b063c3628e2e4d4c9826721795</param></service></servicedata>++++++ blackfriday-1.2.0+git20150720.8cec3a8.tar.xz -> blackfriday-1.4.0+git20151230.c8875c0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/blackfriday-1.2.0+git20150720.8cec3a8/.travis.yml new/blackfriday-1.4.0+git20151230.c8875c0/.travis.yml
--- old/blackfriday-1.2.0+git20150720.8cec3a8/.travis.yml 2015-07-28 14:23:19.000000000 +0200
+++ new/blackfriday-1.4.0+git20151230.c8875c0/.travis.yml 2016-01-17 10:55:17.000000000 +0100
@@ -8,6 +8,7 @@
- 1.2
- 1.3
- 1.4
+ - 1.5
install:
- go get -d -t -v ./...
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/blackfriday-1.2.0+git20150720.8cec3a8/README.md new/blackfriday-1.4.0+git20151230.c8875c0/README.md
--- old/blackfriday-1.2.0+git20150720.8cec3a8/README.md 2015-07-28 14:23:19.000000000 +0200
+++ new/blackfriday-1.4.0+git20151230.c8875c0/README.md 2016-01-17 10:55:17.000000000 +0100
@@ -169,6 +169,25 @@
You can use 3 or more backticks to mark the beginning of the
block, and the same number to mark the end of the block.
+* **Definition lists**. A simple definition list is made of a single-line
+ term followed by a colon and the definition for that term.
+
+ Cat
+ : Fluffy animal everyone likes
+
+ Internet
+ : Vector of transmission for pictures of cats
+
+ Terms must be separated from the previous definition by a blank line.
+
+* **Footnotes**. A marker in the text that will become a superscript number;
+ a footnote definition that will be placed in a list of footnotes at the
+ end of the document. A footnote looks like this:
+
+ This is a footnote.[^1]
+
+ [^1]: the footnote text.
+
* **Autolinking**. Blackfriday can find URLs that have not been
explicitly marked as links and turn them into links.
@@ -223,6 +242,8 @@
point. In particular, it does not do any inline escaping, so input
that happens to look like LaTeX code will be passed through without
modification.
+
+* [Md2Vim](https://github.com/FooSoft/md2vim): transforms markdown files into vimdoc format.
Todo
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/blackfriday-1.2.0+git20150720.8cec3a8/block.go new/blackfriday-1.4.0+git20151230.c8875c0/block.go
--- old/blackfriday-1.2.0+git20150720.8cec3a8/block.go 2015-07-28 14:23:19.000000000 +0200
+++ new/blackfriday-1.4.0+git20151230.c8875c0/block.go 2016-01-17 10:55:17.000000000 +0100
@@ -320,6 +320,11 @@
return size
}
+ // check for HTML CDATA
+ if size := p.htmlCDATA(out, data, doRender); size > 0 {
+ return size
+ }
+
// no special case recognized
return 0
}
@@ -397,40 +402,50 @@
return i
}
+func (p *parser) renderHTMLBlock(out *bytes.Buffer, data []byte, start int, doRender bool) int {
+ // html block needs to end with a blank line
+ if i := p.isEmpty(data[start:]); i > 0 {
+ size := start + i
+ if doRender {
+ // trim trailing newlines
+ end := size
+ for end > 0 && data[end-1] == '\n' {
+ end--
+ }
+ p.r.BlockHtml(out, data[:end])
+ }
+ return size
+ }
+ return 0
+}
+
// HTML comment, lax form
func (p *parser) htmlComment(out *bytes.Buffer, data []byte, doRender bool) int {
- if data[0] != '<' || data[1] != '!' || data[2] != '-' || data[3] != '-' {
+ i := p.inlineHTMLComment(out, data)
+ return p.renderHTMLBlock(out, data, i, doRender)
+}
+
+// HTML CDATA section
+func (p *parser) htmlCDATA(out *bytes.Buffer, data []byte, doRender bool) int {
+ const cdataTag = "<![cdata["
+ const cdataTagLen = len(cdataTag)
+ if len(data) < cdataTagLen+1 {
return 0
}
-
- i := 5
-
+ if !bytes.Equal(bytes.ToLower(data[:cdataTagLen]), []byte(cdataTag)) {
+ return 0
+ }
+ i := cdataTagLen
// scan for an end-of-comment marker, across lines if necessary
- for i < len(data) && !(data[i-2] == '-' && data[i-1] == '-' && data[i] == '>') {
+ for i < len(data) && !(data[i-2] == ']' && data[i-1] == ']' && data[i] == '>') {
i++
}
i++
-
// no end-of-comment marker
if i >= len(data) {
return 0
}
-
- // needs to end with a blank line
- if j := p.isEmpty(data[i:]); j > 0 {
- size := i + j
- if doRender {
- // trim trailing newlines
- end := size
- for end > 0 && data[end-1] == '\n' {
- end--
- }
- p.r.BlockHtml(out, data[:end])
- }
- return size
- }
-
- return 0
+ return p.renderHTMLBlock(out, data, i, doRender)
}
// HR, which is the only self-closing block tag considered
@@ -449,19 +464,7 @@
}
if data[i] == '>' {
- i++
- if j := p.isEmpty(data[i:]); j > 0 {
- size := i + j
- if doRender {
- // trim newlines
- end := size
- for end > 0 && data[end-1] == '\n' {
- end--
- }
- p.r.BlockHtml(out, data[:end])
- }
- return size
- }
+ return p.renderHTMLBlock(out, data, i+1, doRender)
}
return 0
@@ -473,7 +476,7 @@
i++
}
key := string(data[:i])
- if blockTags[key] {
+ if _, ok := blockTags[key]; ok {
return key, true
}
return "", false
@@ -908,13 +911,35 @@
return 0
}
+// blockquote ends with at least one blank line
+// followed by something without a blockquote prefix
+func (p *parser) terminateBlockquote(data []byte, beg, end int) bool {
+ if p.isEmpty(data[beg:]) <= 0 {
+ return false
+ }
+ if end >= len(data) {
+ return true
+ }
+ return p.quotePrefix(data[end:]) == 0 && p.isEmpty(data[end:]) == 0
+}
+
// parse a blockquote fragment
func (p *parser) quote(out *bytes.Buffer, data []byte) int {
var raw bytes.Buffer
beg, end := 0, 0
for beg < len(data) {
end = beg
+ // Step over whole lines, collecting them. While doing that, check for
+ // fenced code and if one's found, incorporate it altogether,
+ // irregardless of any contents inside it
for data[end] != '\n' {
+ if p.flags&EXTENSION_FENCED_CODE != 0 {
+ if i := p.fencedCode(out, data[end:], false); i > 0 {
+ // -1 to compensate for the extra end++ after the loop:
+ end += i - 1
+ break
+ }
+ }
end++
}
end++
@@ -922,11 +947,7 @@
if pre := p.quotePrefix(data[beg:]); pre > 0 {
// skip the prefix
beg += pre
- } else if p.isEmpty(data[beg:]) > 0 &&
- (end >= len(data) ||
- (p.quotePrefix(data[end:]) == 0 && p.isEmpty(data[end:]) == 0)) {
- // blockquote ends with at least one blank line
- // followed by something without a blockquote prefix
+ } else if p.terminateBlockquote(data, beg, end) {
break
}
@@ -1132,6 +1153,7 @@
// and move on to the next line
if p.isEmpty(data[line:i]) > 0 {
containsBlankLine = true
+ raw.Write(data[line:i])
line = i
continue
}
@@ -1199,17 +1221,10 @@
// a blank line means this should be parsed as a block
case containsBlankLine:
- raw.WriteByte('\n')
*flags |= LIST_ITEM_CONTAINS_BLOCK
}
- // if this line was preceeded by one or more blanks,
- // re-introduce the blank into the buffer
- if containsBlankLine {
- containsBlankLine = false
- raw.WriteByte('\n')
-
- }
+ containsBlankLine = false
// add the line into the working buffer without prefix
raw.Write(data[line+indent : i])
@@ -1359,6 +1374,14 @@
return i
}
+ // if there's a fenced code block, paragraph is over
+ if p.flags&EXTENSION_FENCED_CODE != 0 {
+ if p.fencedCode(out, current, false) > 0 {
+ p.renderParagraph(out, data[:i])
+ return i
+ }
+ }
+
// if there's a definition list item, prev line is a definition term
if p.flags&EXTENSION_DEFINITION_LISTS != 0 {
if p.dliPrefix(current) != 0 {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/blackfriday-1.2.0+git20150720.8cec3a8/block_test.go new/blackfriday-1.4.0+git20151230.c8875c0/block_test.go
--- old/blackfriday-1.2.0+git20150720.8cec3a8/block_test.go 2015-07-28 14:23:19.000000000 +0200
+++ new/blackfriday-1.4.0+git20151230.c8875c0/block_test.go 2016-01-17 10:55:17.000000000 +0100
@@ -14,6 +14,7 @@
package blackfriday
import (
+ "strings"
"testing"
)
@@ -701,10 +702,41 @@
"* List\n\n * sublist\n\n normal text\n\n * another sublist\n",
"<ul>\n<li><p>List</p>\n\n<ul>\n<li>sublist</li>\n</ul>\n\n<p>normal text</p>\n\n<ul>\n<li>another sublist</li>\n</ul></li>\n</ul>\n",
+
+ `* Foo
+
+ bar
+
+ qux
+`,
+ `<ul>
+<li><p>Foo</p>
+
+<pre><code>bar
+
+qux
+</code></pre></li>
+</ul>
+`,
}
doTestsBlock(t, tests, 0)
}
+func TestFencedCodeBlockWithinList(t *testing.T) {
+ doTestsBlock(t, []string{
+ "* Foo\n\n ```\n bar\n\n qux\n ```\n",
+ `<ul>
+<li><p>Foo</p>
+
+<pre><code>bar
+
+qux
+</code></pre></li>
+</ul>
+`,
+ }, EXTENSION_FENCED_CODE)
+}
+
func TestOrderedList(t *testing.T) {
var tests = []string{
"1. Hello\n",
@@ -797,6 +829,26 @@
"1. numbers\n1. are ignored\n",
"<ol>\n<li>numbers</li>\n<li>are ignored</li>\n</ol>\n",
+
+ `1. Foo
+
+ bar
+
+
+
+ qux
+`,
+ `<ol>
+<li><p>Foo</p>
+
+<pre><code>bar
+
+
+
+qux
+</code></pre></li>
+</ol>
+`,
}
doTestsBlock(t, tests, 0)
}
@@ -1065,6 +1117,118 @@
doTestsBlock(t, tests, EXTENSION_FENCED_CODE)
}
+func TestFencedCodeInsideBlockquotes(t *testing.T) {
+ cat := func(s ...string) string { return strings.Join(s, "\n") }
+ var tests = []string{
+ cat("> ```go",
+ "package moo",
+ "",
+ "```",
+ ""),
+ `<blockquote>
+<pre><code class="language-go">package moo
+
+</code></pre>
+</blockquote>
+`,
+ // -------------------------------------------
+ cat("> foo",
+ "> ",
+ "> ```go",
+ "package moo",
+ "```",
+ "> ",
+ "> goo.",
+ ""),
+ `<blockquote>
+<p>foo</p>
+
+<pre><code class="language-go">package moo
+</code></pre>
+
+<p>goo.</p>
+</blockquote>
+`,
+ // -------------------------------------------
+ cat("> foo",
+ "> ",
+ "> quote",
+ "continues",
+ "```",
+ ""),
+ `<blockquote>
+<p>foo</p>
+
+<p>quote
+continues
+` + "```" + `</p>
+</blockquote>
+`,
+ // -------------------------------------------
+ cat("> foo",
+ "> ",
+ "> ```go",
+ "package moo",
+ "```",
+ "> ",
+ "> goo.",
+ "> ",
+ "> ```go",
+ "package zoo",
+ "```",
+ "> ",
+ "> woo.",
+ ""),
+ `<blockquote>
+<p>foo</p>
+
+<pre><code class="language-go">package moo
+</code></pre>
+
+<p>goo.</p>
+
+<pre><code class="language-go">package zoo
+</code></pre>
+
+<p>woo.</p>
+</blockquote>
+`,
+ }
+
+ // These 2 alternative forms of blockquoted fenced code blocks should produce same output.
+ forms := [2]string{
+ cat("> plain quoted text",
+ "> ```fenced",
+ "code",
+ " with leading single space correctly preserved",
+ "okay",
+ "```",
+ "> rest of quoted text"),
+ cat("> plain quoted text",
+ "> ```fenced",
+ "> code",
+ "> with leading single space correctly preserved",
+ "> okay",
+ "> ```",
+ "> rest of quoted text"),
+ }
+ want := `<blockquote>
+<p>plain quoted text</p>
+
+<pre><code class="language-fenced">code
+ with leading single space correctly preserved
+okay
+</code></pre>
+
+<p>rest of quoted text</p>
+</blockquote>
+`
+ tests = append(tests, forms[0], want)
+ tests = append(tests, forms[1], want)
+
+ doTestsBlock(t, tests, EXTENSION_FENCED_CODE)
+}
+
func TestTable(t *testing.T) {
var tests = []string{
"a | b\n---|---\nc | d\n",
@@ -1401,7 +1565,57 @@
"Yep, more here too\n" +
"</h1>",
}
-
doTestsBlock(t, tests, EXTENSION_TITLEBLOCK)
+}
+
+func TestBlockComments(t *testing.T) {
+ var tests = []string{
+ "Some text\n\n<!-- comment -->\n",
+ "<p>Some text</p>\n\n<!-- comment -->\n",
+
+ "Some text\n\n<!--\n\nmultiline\ncomment\n-->\n",
+ "<p>Some text</p>\n\n<!--\n\nmultiline\ncomment\n-->\n",
+
+ "Some text\n\n<!--\n\n<div><p>Commented</p>\n<span>html</span></div>\n-->\n",
+ "<p>Some text</p>\n\n<!--\n\n<div><p>Commented</p>\n<span>html</span></div>\n-->\n",
+ }
+ doTestsBlock(t, tests, 0)
+}
+
+func TestCDATA(t *testing.T) {
+ var tests = []string{
+ "Some text\n\n<![CDATA[foo]]>\n",
+ "<p>Some text</p>\n\n<![CDATA[foo]]>\n",
+
+ "CDATA ]]\n\n<![CDATA[]]]]>\n",
+ "<p>CDATA ]]</p>\n\n<![CDATA[]]]]>\n",
+ "CDATA >\n\n<![CDATA[>]]>\n",
+ "<p>CDATA ></p>\n\n<![CDATA[>]]>\n",
+
+ "Lots of text\n\n<![CDATA[lots of te><t\non\nseveral\nlines]]>\n",
+ "<p>Lots of text</p>\n\n<![CDATA[lots of te><t\non\nseveral\nlines]]>\n",
+
+ "<![CDATA[>]]>\n",
+ "<![CDATA[>]]>\n",
+ }
+ doTestsBlock(t, tests, 0)
+ doTestsBlock(t, []string{
+ "``` html\n<![CDATA[foo]]>\n```\n",
+ "<pre><code class=\"language-html\"><![CDATA[foo]]>\n</code></pre>\n",
+
+ "<![CDATA[\n``` python\ndef func():\n pass\n```\n]]>\n",
+ "<![CDATA[\n``` python\ndef func():\n pass\n```\n]]>\n",
+
+ `<![CDATA[
+> def func():
+> pass
+]]>
+`,
+ `<![CDATA[
+> def func():
+> pass
+]]>
+`,
+ }, EXTENSION_FENCED_CODE)
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/blackfriday-1.2.0+git20150720.8cec3a8/html.go new/blackfriday-1.4.0+git20151230.c8875c0/html.go
--- old/blackfriday-1.2.0+git20150720.8cec3a8/html.go 2015-07-28 14:23:19.000000000 +0200
+++ new/blackfriday-1.4.0+git20151230.c8875c0/html.go 2016-01-17 10:55:17.000000000 +0100
@@ -39,7 +39,8 @@
HTML_USE_XHTML // generate XHTML output instead of HTML
HTML_USE_SMARTYPANTS // enable smart punctuation substitutions
HTML_SMARTYPANTS_FRACTIONS // enable smart fractions (with HTML_USE_SMARTYPANTS)
- HTML_SMARTYPANTS_LATEX_DASHES // enable LaTeX-style dashes (with HTML_USE_SMARTYPANTS)
+ HTML_SMARTYPANTS_DASHES // enable smart dashes (with HTML_USE_SMARTYPANTS)
+ HTML_SMARTYPANTS_LATEX_DASHES // enable LaTeX-style dashes (with HTML_USE_SMARTYPANTS and HTML_SMARTYPANTS_DASHES)
HTML_SMARTYPANTS_ANGLED_QUOTES // enable angled double quotes (with HTML_USE_SMARTYPANTS) for double quotes rendering
HTML_FOOTNOTE_RETURN_LINKS // generate a link at the end of a footnote to return to the source
)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/blackfriday-1.2.0+git20150720.8cec3a8/inline.go new/blackfriday-1.4.0+git20151230.c8875c0/inline.go
--- old/blackfriday-1.2.0+git20150720.8cec3a8/inline.go 2015-07-28 14:23:19.000000000 +0200
+++ new/blackfriday-1.4.0+git20151230.c8875c0/inline.go 2016-01-17 10:55:17.000000000 +0100
@@ -191,6 +191,13 @@
linkInlineFootnote
)
+func isReferenceStyleLink(data []byte, pos int, t linkType) bool {
+ if t == linkDeferredFootnote {
+ return false
+ }
+ return pos < len(data)-1 && data[pos] == '[' && data[pos+1] != '^'
+}
+
// '[': parse a link or an image or a footnote
func link(p *parser, out *bytes.Buffer, data []byte, offset int) int {
// no links allowed inside regular links, footnote, and deferred footnotes
@@ -198,19 +205,26 @@
return 0
}
- // [text] == regular link
+ var t linkType
+ switch {
+ // special case: ![^text] == deferred footnote (that follows something with
+ // an exclamation point)
+ case p.flags&EXTENSION_FOOTNOTES != 0 && len(data)-1 > offset && data[offset+1] == '^':
+ t = linkDeferredFootnote
// ![alt] == image
+ case offset > 0 && data[offset-1] == '!':
+ t = linkImg
// ^[text] == inline footnote
// [^refId] == deferred footnote
- var t linkType
- if offset > 0 && data[offset-1] == '!' {
- t = linkImg
- } else if p.flags&EXTENSION_FOOTNOTES != 0 {
+ case p.flags&EXTENSION_FOOTNOTES != 0:
if offset > 0 && data[offset-1] == '^' {
t = linkInlineFootnote
} else if len(data)-1 > offset && data[offset+1] == '^' {
t = linkDeferredFootnote
}
+ // [text] == regular link
+ default:
+ t = linkNormal
}
data = data[offset:]
@@ -226,6 +240,8 @@
i++
}
+ brace := 0
+
// look for the matching closing bracket
for level := 1; level > 0 && i < len(data); i++ {
switch {
@@ -259,8 +275,8 @@
i++
}
- // inline style link
switch {
+ // inline style link
case i < len(data) && data[i] == '(':
// skip initial whitespace
i++
@@ -271,14 +287,27 @@
linkB := i
- // look for link end: ' " )
+ // look for link end: ' " ), check for new opening braces and take this
+ // into account, this may lead for overshooting and probably will require
+ // some fine-tuning.
findlinkend:
for i < len(data) {
switch {
case data[i] == '\\':
i += 2
- case data[i] == ')' || data[i] == '\'' || data[i] == '"':
+ case data[i] == '(':
+ brace++
+ i++
+
+ case data[i] == ')':
+ if brace <= 0 {
+ break findlinkend
+ }
+ brace--
+ i++
+
+ case data[i] == '\'' || data[i] == '"':
break findlinkend
default:
@@ -353,7 +382,7 @@
i++
// reference style link
- case i < len(data)-1 && data[i] == '[' && data[i+1] != '^':
+ case isReferenceStyleLink(data, i, t):
var id []byte
altContentConsidered := false
@@ -395,7 +424,6 @@
lr, ok := p.getRef(string(id))
if !ok {
return 0
-
}
// keep link and title from reference
@@ -547,12 +575,33 @@
return i
}
+func (p *parser) inlineHTMLComment(out *bytes.Buffer, data []byte) int {
+ if len(data) < 5 {
+ return 0
+ }
+ if data[0] != '<' || data[1] != '!' || data[2] != '-' || data[3] != '-' {
+ return 0
+ }
+ i := 5
+ // scan for an end-of-comment marker, across lines if necessary
+ for i < len(data) && !(data[i-2] == '-' && data[i-1] == '-' && data[i] == '>') {
+ i++
+ }
+ // no end-of-comment marker
+ if i >= len(data) {
+ return 0
+ }
+ return i + 1
+}
+
// '<' when tags or autolinks are allowed
func leftAngle(p *parser, out *bytes.Buffer, data []byte, offset int) int {
data = data[offset:]
altype := LINK_TYPE_NOT_AUTOLINK
end := tagLength(data, &altype)
-
+ if size := p.inlineHTMLComment(out, data); size > 0 {
+ end = size
+ }
if end > 2 {
if altype != LINK_TYPE_NOT_AUTOLINK {
var uLink bytes.Buffer
@@ -634,10 +683,7 @@
func linkEndsWithEntity(data []byte, linkEnd int) bool {
entityRanges := htmlEntity.FindAllIndex(data[:linkEnd], -1)
- if entityRanges != nil && entityRanges[len(entityRanges)-1][1] == linkEnd {
- return true
- }
- return false
+ return entityRanges != nil && entityRanges[len(entityRanges)-1][1] == linkEnd
}
func autoLink(p *parser, out *bytes.Buffer, data []byte, offset int) int {
@@ -910,7 +956,7 @@
// look for the next emph char, skipping other constructs
func helperFindEmphChar(data []byte, c byte) int {
- i := 1
+ i := 0
for i < len(data) {
for i < len(data) && data[i] != c && data[i] != '`' && data[i] != '[' {
@@ -919,15 +965,14 @@
if i >= len(data) {
return 0
}
- if data[i] == c {
- return i
- }
-
// do not count escaped chars
if i != 0 && data[i-1] == '\\' {
i++
continue
}
+ if data[i] == c {
+ return i
+ }
if data[i] == '`' {
// skip a code span
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/blackfriday-1.2.0+git20150720.8cec3a8/inline_test.go new/blackfriday-1.4.0+git20151230.c8875c0/inline_test.go
--- old/blackfriday-1.2.0+git20150720.8cec3a8/inline_test.go 2015-07-28 14:23:19.000000000 +0200
+++ new/blackfriday-1.4.0+git20151230.c8875c0/inline_test.go 2016-01-17 10:55:17.000000000 +0100
@@ -15,9 +15,8 @@
import (
"regexp"
- "testing"
-
"strings"
+ "testing"
)
func runMarkdownInline(input string, opts Options, htmlFlags int, params HtmlRendererParameters) string {
@@ -153,10 +152,38 @@
"mix of *markers_\n",
"<p>mix of *markers_</p>\n",
+
+ "*What is A\\* algorithm?*\n",
+ "<p><em>What is A* algorithm?</em></p>\n",
+
+ "some para_graph with _emphasised_ text.\n",
+ "<p>some para_graph with <em>emphasised</em> text.</p>\n",
+
+ "some paragraph with _emphasised_ te_xt.\n",
+ "<p>some paragraph with <em>emphasised</em> te_xt.</p>\n",
+
+ "some paragraph with t_wo bi_ts of _emphasised_ text.\n",
+ "<p>some paragraph with t<em>wo bi</em>ts of <em>emphasised</em> text.</p>\n",
+
+ "un*frigging*believable\n",
+ "<p>un<em>frigging</em>believable</p>\n",
}
doTestsInline(t, tests)
}
+func TestNoIntraEmphasis(t *testing.T) {
+ tests := []string{
+ "some para_graph with _emphasised_ text.\n",
+ "<p>some para_graph with <em>emphasised</em> text.</p>\n",
+
+ "un*frigging*believable\n",
+ "<p>un*frigging*believable</p>\n",
+ }
+ doTestsInlineParam(t, tests, Options{
+ Extensions: EXTENSION_NO_INTRA_EMPHASIS},
+ 0, HtmlRendererParameters{})
+}
+
func TestReferenceOverride(t *testing.T) {
var tests = []string{
"test [ref1][]\n",
@@ -263,6 +290,12 @@
"mix of **markers__\n",
"<p>mix of **markers__</p>\n",
+
+ "**`/usr`** : this folder is named `usr`\n",
+ "<p><strong><code>/usr</code></strong> : this folder is named <code>usr</code></p>\n",
+
+ "**`/usr`** :\n\n this folder is named `usr`\n",
+ "<p><strong><code>/usr</code></strong> :</p>\n\n<p>this folder is named <code>usr</code></p>\n",
}
doTestsInline(t, tests)
}
@@ -291,7 +324,7 @@
"<p><strong>improper *nesting</strong> is* bad</p>\n",
"*improper **nesting* is** bad\n",
- "<p><em>improper **nesting</em> is** bad</p>\n",
+ "<p>*improper <strong>nesting* is</strong> bad</p>\n",
}
doTestsInline(t, tests)
}
@@ -532,6 +565,20 @@
"[link](<../>)\n",
"<p><a href=\"../\">link</a></p>\n",
+
+ // Issue 116 in blackfriday
+ "![](http://www.broadgate.co.uk/Content/Upload/DetailImages/Cyclus700(1).jpg)",
+ "<p><img src=\"http://www.broadgate.co.uk/Content/Upload/DetailImages/Cyclus700(1).jpg\" alt=\"\" /></p>\n",
+
+ // no closing ), autolinking detects the url next
+ "[disambiguation](http://en.wikipedia.org/wiki/Disambiguation_(disambiguation) is the",
+ "<p>[disambiguation](<a href=\"http://en.wikipedia.org/wiki/Disambiguation_(disambiguation\">http://en.wikipedia.org/wiki/Disambiguation_(disambiguation</a>) is the</p>\n",
+
+ "[disambiguation](http://en.wikipedia.org/wiki/Disambiguation_(disambiguation… is the",
+ "<p><a href=\"http://en.wikipedia.org/wiki/Disambiguation_(disambiguation)\">disambiguation</a> is the</p>\n",
+
+ "[disambiguation](http://en.wikipedia.org/wiki/Disambiguation_(disambiguation…",
+ "<p><a href=\"http://en.wikipedia.org/wiki/Disambiguation_(disambiguation)\">disambiguation</a></p>\n",
}
doLinkTestsInline(t, tests)
@@ -672,6 +719,9 @@
"[ref]\n [ref]: ../url/ \"title\"\n",
"<p><a href=\"../url/\" title=\"title\">ref</a></p>\n",
+
+ "[link][ref]\n [ref]: /url/",
+ "<p><a href=\"/url/\">link</a></p>\n",
}
doLinkTestsInline(t, tests)
}
@@ -942,6 +992,40 @@
"Some text.[^note1][^note2]\n\n[^note1]: fn1\n[^note2]: fn2\n",
"<p>Some text.<sup class=\"footnote-ref\" id=\"fnref:note1\"><a rel=\"footnote\" href=\"#fn:note1\">1</a></sup><sup class=\"footnote-ref\" id=\"fnref:note2\"><a rel=\"footnote\" href=\"#fn:note2\">2</a></sup></p>\n<div class=\"footnotes\">\n\n<hr />\n\n<ol>\n<li id=\"fn:note1\">fn1\n</li>\n<li id=\"fn:note2\">fn2\n</li>\n</ol>\n</div>\n",
+
+ `Bla bla [^1] [WWW][w3]
+
+[^1]: This is a footnote
+
+[w3]: http://www.w3.org/
+`,
+ `<p>Bla bla <sup class="footnote-ref" id="fnref:1"><a rel="footnote" href="#fn:1">1</a></sup> <a href="http://www.w3.org/">WWW</a></p>
+<div class="footnotes">
+
+<hr />
+
+<ol>
+<li id="fn:1">This is a footnote
+</li>
+</ol>
+</div>
+`,
+
+ `This is exciting![^fn1]
+
+[^fn1]: Fine print
+`,
+ `<p>This is exciting!<sup class="footnote-ref" id="fnref:fn1"><a rel="footnote" href="#fn:fn1">1</a></sup></p>
+<div class="footnotes">
+
+<hr />
+
+<ol>
+<li id="fn:fn1">Fine print
+</li>
+</ol>
+</div>
+`,
}
func TestFootnotes(t *testing.T) {
@@ -973,6 +1057,62 @@
doTestsInlineParam(t, tests, Options{Extensions: EXTENSION_FOOTNOTES}, HTML_FOOTNOTE_RETURN_LINKS, params)
}
+func TestNestedFootnotes(t *testing.T) {
+ var tests = []string{
+ `Paragraph.[^fn1]
+
+[^fn1]:
+ Asterisk[^fn2]
+
+[^fn2]:
+ Obelisk`,
+ `<p>Paragraph.<sup class="footnote-ref" id="fnref:fn1"><a rel="footnote" href="#fn:fn1">1</a></sup></p>
+<div class="footnotes">
+
+<hr />
+
+<ol>
+<li id="fn:fn1">Asterisk<sup class="footnote-ref" id="fnref:fn2"><a rel="footnote" href="#fn:fn2">2</a></sup>
+</li>
+<li id="fn:fn2">Obelisk
+</li>
+</ol>
+</div>
+`,
+ }
+ doTestsInlineParam(t, tests, Options{Extensions: EXTENSION_FOOTNOTES}, 0,
+ HtmlRendererParameters{})
+}
+
+func TestInlineComments(t *testing.T) {
+ var tests = []string{
+ "Hello <!-- there ->\n",
+ "<p>Hello <!— there –></p>\n",
+
+ "Hello <!-- there -->\n",
+ "<p>Hello <!-- there --></p>\n",
+
+ "Hello <!-- there -->",
+ "<p>Hello <!-- there --></p>\n",
+
+ "Hello <!---->\n",
+ "<p>Hello <!----></p>\n",
+
+ "Hello <!-- there -->\na",
+ "<p>Hello <!-- there -->\na</p>\n",
+
+ "* list <!-- item -->\n",
+ "<ul>\n<li>list <!-- item --></li>\n</ul>\n",
+
+ "<!-- Front --> comment\n",
+ "<p><!-- Front --> comment</p>\n",
+
+ "blahblah\n<!--- foo -->\nrhubarb\n",
+ "<p>blahblah\n<!--- foo -->\nrhubarb</p>\n",
+ }
+ doTestsInlineParam(t, tests, Options{}, HTML_USE_SMARTYPANTS|HTML_SMARTYPANTS_DASHES, HtmlRendererParameters{})
+}
+
func TestSmartDoubleQuotes(t *testing.T) {
var tests = []string{
"this should be normal \"quoted\" text.\n",
@@ -1014,3 +1154,41 @@
doTestsInlineParam(t, tests, Options{}, HTML_USE_SMARTYPANTS|HTML_SMARTYPANTS_FRACTIONS, HtmlRendererParameters{})
}
+
+func TestDisableSmartDashes(t *testing.T) {
+ doTestsInlineParam(t, []string{
+ "foo - bar\n",
+ "<p>foo - bar</p>\n",
+ "foo -- bar\n",
+ "<p>foo -- bar</p>\n",
+ "foo --- bar\n",
+ "<p>foo --- bar</p>\n",
+ }, Options{}, 0, HtmlRendererParameters{})
+ doTestsInlineParam(t, []string{
+ "foo - bar\n",
+ "<p>foo – bar</p>\n",
+ "foo -- bar\n",
+ "<p>foo — bar</p>\n",
+ "foo --- bar\n",
+ "<p>foo —– bar</p>\n",
+ }, Options{}, HTML_USE_SMARTYPANTS|HTML_SMARTYPANTS_DASHES, HtmlRendererParameters{})
+ doTestsInlineParam(t, []string{
+ "foo - bar\n",
+ "<p>foo - bar</p>\n",
+ "foo -- bar\n",
+ "<p>foo – bar</p>\n",
+ "foo --- bar\n",
+ "<p>foo — bar</p>\n",
+ }, Options{}, HTML_USE_SMARTYPANTS|HTML_SMARTYPANTS_LATEX_DASHES|HTML_SMARTYPANTS_DASHES,
+ HtmlRendererParameters{})
+ doTestsInlineParam(t, []string{
+ "foo - bar\n",
+ "<p>foo - bar</p>\n",
+ "foo -- bar\n",
+ "<p>foo -- bar</p>\n",
+ "foo --- bar\n",
+ "<p>foo --- bar</p>\n",
+ }, Options{},
+ HTML_USE_SMARTYPANTS|HTML_SMARTYPANTS_LATEX_DASHES,
+ HtmlRendererParameters{})
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/blackfriday-1.2.0+git20150720.8cec3a8/markdown.go new/blackfriday-1.4.0+git20151230.c8875c0/markdown.go
--- old/blackfriday-1.2.0+git20150720.8cec3a8/markdown.go 2015-07-28 14:23:19.000000000 +0200
+++ new/blackfriday-1.4.0+git20151230.c8875c0/markdown.go 2016-01-17 10:55:17.000000000 +0100
@@ -20,11 +20,12 @@
import (
"bytes"
+ "fmt"
"strings"
"unicode/utf8"
)
-const VERSION = "1.1"
+const VERSION = "1.5"
// These are the supported markdown parsing extensions.
// OR these values together to select multiple extensions.
@@ -50,6 +51,7 @@
HTML_USE_XHTML |
HTML_USE_SMARTYPANTS |
HTML_SMARTYPANTS_FRACTIONS |
+ HTML_SMARTYPANTS_DASHES |
HTML_SMARTYPANTS_LATEX_DASHES
commonExtensions = 0 |
@@ -100,45 +102,49 @@
TAB_SIZE_EIGHT = 8
)
-// These are the tags that are recognized as HTML block tags.
+// blockTags is a set of tags that are recognized as HTML block tags.
// Any of these can be included in markdown text without special escaping.
-var blockTags = map[string]bool{
- "p": true,
- "dl": true,
- "h1": true,
- "h2": true,
- "h3": true,
- "h4": true,
- "h5": true,
- "h6": true,
- "ol": true,
- "ul": true,
- "del": true,
- "div": true,
- "ins": true,
- "pre": true,
- "form": true,
- "math": true,
- "table": true,
- "iframe": true,
- "script": true,
- "fieldset": true,
- "noscript": true,
- "blockquote": true,
+var blockTags = map[string]struct{}{
+ "blockquote": struct{}{},
+ "del": struct{}{},
+ "div": struct{}{},
+ "dl": struct{}{},
+ "fieldset": struct{}{},
+ "form": struct{}{},
+ "h1": struct{}{},
+ "h2": struct{}{},
+ "h3": struct{}{},
+ "h4": struct{}{},
+ "h5": struct{}{},
+ "h6": struct{}{},
+ "iframe": struct{}{},
+ "ins": struct{}{},
+ "math": struct{}{},
+ "noscript": struct{}{},
+ "ol": struct{}{},
+ "pre": struct{}{},
+ "p": struct{}{},
+ "script": struct{}{},
+ "style": struct{}{},
+ "table": struct{}{},
+ "ul": struct{}{},
// HTML5
- "video": true,
- "aside": true,
- "canvas": true,
- "figure": true,
- "footer": true,
- "header": true,
- "hgroup": true,
- "output": true,
- "article": true,
- "section": true,
- "progress": true,
- "figcaption": true,
+ "address": struct{}{},
+ "article": struct{}{},
+ "aside": struct{}{},
+ "canvas": struct{}{},
+ "figcaption": struct{}{},
+ "figure": struct{}{},
+ "footer": struct{}{},
+ "header": struct{}{},
+ "hgroup": struct{}{},
+ "main": struct{}{},
+ "nav": struct{}{},
+ "output": struct{}{},
+ "progress": struct{}{},
+ "section": struct{}{},
+ "video": struct{}{},
}
// Renderer is the rendering interface.
@@ -384,7 +390,6 @@
// - expand tabs
// - normalize newlines
// - copy everything else
-// - add missing newlines before fenced code blocks
func firstPass(p *parser, input []byte) []byte {
var out bytes.Buffer
tabSize := TAB_SIZE_DEFAULT
@@ -392,7 +397,6 @@
tabSize = TAB_SIZE_EIGHT
}
beg, end := 0, 0
- lastLineWasBlank := false
lastFencedCodeBlockEnd := 0
for beg < len(input) { // iterate over lines
if end = isReference(p, input[beg:], tabSize); end > 0 {
@@ -404,16 +408,13 @@
}
if p.flags&EXTENSION_FENCED_CODE != 0 {
- // when last line was none blank and a fenced code block comes after
+ // track fenced code block boundaries to suppress tab expansion
+ // inside them:
if beg >= lastFencedCodeBlockEnd {
if i := p.fencedCode(&out, input[beg:], false); i > 0 {
- if !lastLineWasBlank {
- out.WriteByte('\n') // need to inject additional linebreak
- }
lastFencedCodeBlockEnd = beg + i
}
}
- lastLineWasBlank = end == beg
}
// add the line body if present
@@ -455,7 +456,8 @@
if p.flags&EXTENSION_FOOTNOTES != 0 && len(p.notes) > 0 {
p.r.Footnotes(&output, func() bool {
flags := LIST_ITEM_BEGINNING_OF_LIST
- for _, ref := range p.notes {
+ for i := 0; i < len(p.notes); i += 1 {
+ ref := p.notes[i]
var buf bytes.Buffer
if ref.hasBlock {
flags |= LIST_ITEM_CONTAINS_BLOCK
@@ -518,6 +520,11 @@
text []byte
}
+func (r *reference) String() string {
+ return fmt.Sprintf("{link: %q, title: %q, text: %q, noteId: %d, hasBlock: %v}",
+ r.link, r.title, r.text, r.noteId, r.hasBlock)
+}
+
// Check whether or not data starts with a reference link.
// If so, it is parsed and stored in the list of references
// (in the render struct).
@@ -631,9 +638,6 @@
for i < len(data) && data[i] != ' ' && data[i] != '\t' && data[i] != '\n' && data[i] != '\r' {
i++
}
- if i == len(data) {
- return
- }
linkEnd = i
if data[linkOffset] == '<' && data[linkEnd-1] == '>' {
linkOffset++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/blackfriday-1.2.0+git20150720.8cec3a8/smartypants.go new/blackfriday-1.4.0+git20151230.c8875c0/smartypants.go
--- old/blackfriday-1.2.0+git20150720.8cec3a8/smartypants.go 2015-07-28 14:23:19.000000000 +0200
+++ new/blackfriday-1.4.0+git20151230.c8875c0/smartypants.go 2016-01-17 10:55:17.000000000 +0100
@@ -378,10 +378,12 @@
}
r['\''] = smartSingleQuote
r['('] = smartParens
- if flags&HTML_SMARTYPANTS_LATEX_DASHES == 0 {
- r['-'] = smartDash
- } else {
- r['-'] = smartDashLatex
+ if flags&HTML_SMARTYPANTS_DASHES != 0 {
+ if flags&HTML_SMARTYPANTS_LATEX_DASHES == 0 {
+ r['-'] = smartDash
+ } else {
+ r['-'] = smartDashLatex
+ }
}
r['.'] = smartPeriod
if flags&HTML_SMARTYPANTS_FRACTIONS == 0 {
1
0
commit golang-github-shurcool-sanitized_anchor_name for openSUSE:Factory
by root@hilbert.suse.de 22 Jan '16
by root@hilbert.suse.de 22 Jan '16
22 Jan '16
Hello community,
here is the log from the commit of package golang-github-shurcool-sanitized_anchor_name for openSUSE:Factory checked in at 2016-01-21 23:44:27
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/golang-github-shurcool-sanitized_anchor_name (Old)
and /work/SRC/openSUSE:Factory/.golang-github-shurcool-sanitized_anchor_name.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "golang-github-shurcool-sanitized_anchor_name"
Changes:
--------
--- /work/SRC/openSUSE:Factory/golang-github-shurcool-sanitized_anchor_name/golang-github-shurcool-sanitized_anchor_name.changes 2015-08-01 11:37:42.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.golang-github-shurcool-sanitized_anchor_name.new/golang-github-shurcool-sanitized_anchor_name.changes 2016-01-22 01:10:04.000000000 +0100
@@ -1,0 +2,7 @@
+Sun Jan 17 09:48:00 UTC 2016 - i(a)marguerite.su
+
+- Update to version 0.0.0+git20151027.10ef21a
+ * pollute repository with an extraneous non-executable file
+- don't build -source sub-package
+
+-------------------------------------------------------------------
Old:
----
sanitized_anchor_name-0.0.0+git20150514.11a20b7.tar.xz
New:
----
_servicedata
sanitized_anchor_name-0.0.0+git20151027.10ef21a.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ golang-github-shurcool-sanitized_anchor_name.spec ++++++
--- /var/tmp/diff_new_pack.miVQPS/_old 2016-01-22 01:10:06.000000000 +0100
+++ /var/tmp/diff_new_pack.miVQPS/_new 2016-01-22 01:10:06.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package golang-github-shurcool-sanitized_anchor_name
#
-# Copyright (c) 2015 SUSE LLC
+# 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,16 +17,16 @@
Name: golang-github-shurcool-sanitized_anchor_name
-Version: 0.0.0+git20150514.11a20b7
+Version: 0.0.0+git20151027.10ef21a
Release: 0
Summary: Go function to create sanitized anchor names
License: MIT
-Group: Development/Languages/Other
-URL: https://github.com/shurcooL/sanitized_anchor_name
+Group: Development/Languages/Golang
+Url: https://github.com/shurcooL/sanitized_anchor_name
Source: sanitized_anchor_name-%{version}.tar.xz
-BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: golang-packaging
BuildRequires: xz
+BuildRoot: %{_tmppath}/%{name}-%{version}-build
%{go_provides}
%description
@@ -36,29 +36,22 @@
At this time, it does not try to ensure that generated anchor names are unique, that responsibility falls on the caller.
-%gosrc_package
-
%prep
%setup -q -n sanitized_anchor_name-%{version}
%build
-%goprep github.com/shurcooL/sanitized_anchor_name
-%gobuild
+%{goprep} github.com/shurcooL/sanitized_anchor_name
+%{gobuild}
%install
-%goinstall
-%gosrc
+%{goinstall}
+%{go_filelist}
%check
-%gotest github.com/shurcooL/sanitized_anchor_name
+%{gotest} github.com/shurcooL/sanitized_anchor_name
-%files
+%files -f file.lst
%defattr(-,root,root,-)
%doc README.md
-%{go_contribdir}/*
-
-%files source
-%defattr(-,root,root,-)
-%{go_contribsrcdir}/*
%changelog
++++++ _service ++++++
--- /var/tmp/diff_new_pack.miVQPS/_old 2016-01-22 01:10:06.000000000 +0100
+++ /var/tmp/diff_new_pack.miVQPS/_new 2016-01-22 01:10:06.000000000 +0100
@@ -1,16 +1,17 @@
<services>
- <service name="tar_scm" mode="localonly">
+ <service name="tar_scm" mode="disabled">
<param name="url">http://github.com/shurcooL/sanitized_anchor_name</param>
<param name="scm">git</param>
<param name="exclude">.git</param>
<param name="versionformat">0.0.0+git%cd.%h</param>
<param name="revision">master</param>
+ <param name="changesgenerate">enable</param>
</service>
- <service name="recompress" mode="localonly">
+ <service name="recompress" mode="disabled">
<param name="file">sanitized_anchor_name-*.tar</param>
<param name="compression">xz</param>
</service>
- <service name="set_version" mode="localonly">
+ <service name="set_version" mode="disabled">
<param name="basename">sanitized_anchor_name</param>
</service>
</services>
++++++ _servicedata ++++++
<servicedata>
<service name="tar_scm">
<param name="url">http://github.com/shurcooL/sanitized_anchor_name</param>
<param name="changesrevision">10ef21a441db47d8b13ebcc5fd2310f636973c77</param></service></servicedata>++++++ sanitized_anchor_name-0.0.0+git20150514.11a20b7.tar.xz -> sanitized_anchor_name-0.0.0+git20151027.10ef21a.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sanitized_anchor_name-0.0.0+git20150514.11a20b7/.travis.yml new/sanitized_anchor_name-0.0.0+git20151027.10ef21a/.travis.yml
--- old/sanitized_anchor_name-0.0.0+git20150514.11a20b7/.travis.yml 2015-07-28 16:11:54.000000000 +0200
+++ new/sanitized_anchor_name-0.0.0+git20151027.10ef21a/.travis.yml 2016-01-17 10:47:59.000000000 +0100
@@ -1,10 +1,10 @@
language: go
go:
- - 1.4
+ - 1.5
install:
- go get golang.org/x/tools/cmd/vet
script:
- go get -t -v ./...
- - diff -u <(echo -n) <(gofmt -d ./)
- - go tool vet ./
+ - diff -u <(echo -n) <(gofmt -d -s .)
+ - go tool vet .
- go test -v -race ./...
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sanitized_anchor_name-0.0.0+git20150514.11a20b7/LICENSE new/sanitized_anchor_name-0.0.0+git20151027.10ef21a/LICENSE
--- old/sanitized_anchor_name-0.0.0+git20150514.11a20b7/LICENSE 1970-01-01 01:00:00.000000000 +0100
+++ new/sanitized_anchor_name-0.0.0+git20151027.10ef21a/LICENSE 2016-01-17 10:47:59.000000000 +0100
@@ -0,0 +1,19 @@
+Copyright (c) 2015 Dmitri Shuralyov
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sanitized_anchor_name-0.0.0+git20150514.11a20b7/README.md new/sanitized_anchor_name-0.0.0+git20151027.10ef21a/README.md
--- old/sanitized_anchor_name-0.0.0+git20150514.11a20b7/README.md 2015-07-28 16:11:54.000000000 +0200
+++ new/sanitized_anchor_name-0.0.0+git20151027.10ef21a/README.md 2016-01-17 10:47:59.000000000 +0100
@@ -1,12 +1,18 @@
-sanitized_anchor_name [![Build Status](https://travis-ci.org/shurcooL/sanitized_anchor_name.svg?branch=mas…
-=====================
+# sanitized_anchor_name [![Build Status](https://travis-ci.org/shurcooL/sanitized_anchor_name.svg?branch=mas… [![GoDoc](https://godoc.org/github.com/shurcooL/sanitized_anchor_name?status.svg)](https://godoc.org/github.com/shurcooL/sanitized_anchor_name)
-Package `sanitized_anchor_name` provides a func to create sanitized anchor names.
+Package sanitized_anchor_name provides a func to create sanitized anchor names.
Its logic can be reused by multiple packages to create interoperable anchor names and links to those anchors.
At this time, it does not try to ensure that generated anchor names are unique, that responsibility falls on the caller.
+Installation
+------------
+
+```bash
+go get -u github.com/shurcooL/sanitized_anchor_name
+```
+
Example
-------
@@ -22,4 +28,4 @@
License
-------
-- [MIT License](http://opensource.org/licenses/mit-license.php)
+- [MIT License](LICENSE)
1
0
Hello community,
here is the log from the commit of package perl-Data-Dump-Streamer for openSUSE:Factory checked in at 2016-01-21 23:44:22
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Data-Dump-Streamer (Old)
and /work/SRC/openSUSE:Factory/.perl-Data-Dump-Streamer.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Data-Dump-Streamer"
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Data-Dump-Streamer/perl-Data-Dump-Streamer.changes 2014-07-20 10:50:08.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.perl-Data-Dump-Streamer.new/perl-Data-Dump-Streamer.changes 2016-01-22 01:10:00.000000000 +0100
@@ -1,0 +2,7 @@
+Mon Jan 18 12:55:39 UTC 2016 - dimstar(a)opensuse.org
+
+- Update to version 2.39:
+ + No changelog available.
+- Add perl(PadWalker) BuildRequires: needed to pass the test suite.
+
+-------------------------------------------------------------------
Old:
----
Data-Dump-Streamer-2.38.tar.gz
New:
----
Data-Dump-Streamer-2.39.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Data-Dump-Streamer.spec ++++++
--- /var/tmp/diff_new_pack.aT5XaC/_old 2016-01-22 01:10:02.000000000 +0100
+++ /var/tmp/diff_new_pack.aT5XaC/_new 2016-01-22 01:10:02.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package perl-Data-Dump-Streamer
#
-# Copyright (c) 2014 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: perl-Data-Dump-Streamer
-Version: 2.38
+Version: 2.39
Release: 0
%define cpan_name Data-Dump-Streamer
Summary: Accurately serialize a data structure as Perl code.
@@ -32,6 +32,7 @@
BuildRequires: perl(ExtUtils::CBuilder)
BuildRequires: perl(ExtUtils::Depends)
BuildRequires: perl(Module::Build)
+BuildRequires: perl(PadWalker)
Requires: perl(B::Utils)
Recommends: perl(Algorithm::Diff)
Recommends: perl(Compress::Zlib)
++++++ Data-Dump-Streamer-2.38.tar.gz -> Data-Dump-Streamer-2.39.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Data-Dump-Streamer-2.38/META.json new/Data-Dump-Streamer-2.39/META.json
--- old/Data-Dump-Streamer-2.38/META.json 2014-06-12 12:58:11.000000000 +0200
+++ new/Data-Dump-Streamer-2.39/META.json 2015-12-24 06:51:10.000000000 +0100
@@ -4,7 +4,7 @@
"Yves Orton <yves(a)cpan.org>, Joshua ben Jore <jjore(a)cpan.org>"
],
"dynamic_config" : 1,
- "generated_by" : "Module::Build version 0.38, CPAN::Meta::Converter version 2.120351",
+ "generated_by" : "Module::Build version 0.4214",
"license" : [
"perl_5"
],
@@ -73,11 +73,11 @@
"provides" : {
"Data::Dump::Streamer" : {
"file" : "lib/Data/Dump/Streamer.pm",
- "version" : "2.38"
+ "version" : "2.39"
},
"Data::Dump::Streamer::Deparser" : {
"file" : "lib/Data/Dump/Streamer.pm",
- "version" : "2.38"
+ "version" : "2.39"
}
},
"release_status" : "stable",
@@ -89,5 +89,6 @@
"url" : "https://github.com/demerphq/Data-Dump-Streamer"
}
},
- "version" : "2.38"
+ "version" : "2.39",
+ "x_serialization_backend" : "JSON::PP version 2.27300"
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Data-Dump-Streamer-2.38/META.yml new/Data-Dump-Streamer-2.39/META.yml
--- old/Data-Dump-Streamer-2.38/META.yml 2014-06-12 12:58:11.000000000 +0200
+++ new/Data-Dump-Streamer-2.39/META.yml 2015-12-24 06:51:10.000000000 +0100
@@ -3,65 +3,66 @@
author:
- 'Yves Orton <yves(a)cpan.org>, Joshua ben Jore <jjore(a)cpan.org>'
build_requires:
- B::Deparse: 0
- Carp: 0
- Config: 0
- Data::Dumper: 0
- Devel::Peek: 0
- ExtUtils::CBuilder: 0
- Symbol: 0
- Test::More: 0
- Text::Abbrev: 0
- base: 0
- overload: 0
- re: 0
- strict: 0
- utf8: 0
- vars: 0
- warnings: 0
+ B::Deparse: '0'
+ Carp: '0'
+ Config: '0'
+ Data::Dumper: '0'
+ Devel::Peek: '0'
+ ExtUtils::CBuilder: '0'
+ Symbol: '0'
+ Test::More: '0'
+ Text::Abbrev: '0'
+ base: '0'
+ overload: '0'
+ re: '0'
+ strict: '0'
+ utf8: '0'
+ vars: '0'
+ warnings: '0'
configure_requires:
- ExtUtils::Depends: 0
- Module::Build: 0
- perl: 5.006
+ ExtUtils::Depends: '0'
+ Module::Build: '0'
+ perl: '5.006'
dynamic_config: 1
-generated_by: 'Module::Build version 0.38, CPAN::Meta::Converter version 2.120351'
+generated_by: 'Module::Build version 0.4214, CPAN::Meta::Converter version 2.150005'
license: perl
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
- version: 1.4
+ version: '1.4'
name: Data-Dump-Streamer
provides:
Data::Dump::Streamer:
file: lib/Data/Dump/Streamer.pm
- version: 2.38
+ version: '2.39'
Data::Dump::Streamer::Deparser:
file: lib/Data/Dump/Streamer.pm
- version: 2.38
+ version: '2.39'
recommends:
- Algorithm::Diff: 0
- Compress::Zlib: 0
- JSON::XS: 0
- MIME::Base64: 0
- PadWalker: 0.99
+ Algorithm::Diff: '0'
+ Compress::Zlib: '0'
+ JSON::XS: '0'
+ MIME::Base64: '0'
+ PadWalker: '0.99'
requires:
- B: 0
- B::Deparse: 0
- B::Utils: 0
- Data::Dumper: 0
- DynaLoader: 0
- Exporter: 0
- Hash::Util: 0
- IO::File: 0
- Symbol: 0
- Text::Abbrev: 0
- Text::Balanced: 0
- overload: 0
- re: 0
- strict: 0
- vars: 0
- warnings: 0
- warnings::register: 0
+ B: '0'
+ B::Deparse: '0'
+ B::Utils: '0'
+ Data::Dumper: '0'
+ DynaLoader: '0'
+ Exporter: '0'
+ Hash::Util: '0'
+ IO::File: '0'
+ Symbol: '0'
+ Text::Abbrev: '0'
+ Text::Balanced: '0'
+ overload: '0'
+ re: '0'
+ strict: '0'
+ vars: '0'
+ warnings: '0'
+ warnings::register: '0'
resources:
license: http://dev.perl.org/licenses/
repository: https://github.com/demerphq/Data-Dump-Streamer
-version: 2.38
+version: '2.39'
+x_serialization_backend: 'CPAN::Meta::YAML version 0.012'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Data-Dump-Streamer-2.38/lib/Data/Dump/Streamer.pm new/Data-Dump-Streamer-2.39/lib/Data/Dump/Streamer.pm
--- old/Data-Dump-Streamer-2.38/lib/Data/Dump/Streamer.pm 2014-06-12 12:58:11.000000000 +0200
+++ new/Data-Dump-Streamer-2.39/lib/Data/Dump/Streamer.pm 2015-12-24 06:51:10.000000000 +0100
@@ -35,7 +35,7 @@
BEGIN{ $HasPadWalker=eval "use PadWalker 0.99; 1"; }
BEGIN {
- $VERSION ='2.38';
+ $VERSION ='2.39';
$XS_VERSION = $VERSION;
$VERSION = eval $VERSION; # used for beta stuff.
@ISA = qw(Exporter DynaLoader);
@@ -3748,7 +3748,7 @@
our @ISA=qw(B::Deparse);
my %cache;
-our $VERSION = '2.38';
+our $VERSION = '2.39';
$VERSION= eval $VERSION;
if ( $VERSION ne $Data::Dump::Streamer::VERSION ) {
die "Incompatible Data::Dump::Streamer::Deparser v$VERSION vs Data::Dump::Streamer v$Data::Dump::Streamer::VERSION";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Data-Dump-Streamer-2.38/t/globtest.t new/Data-Dump-Streamer-2.39/t/globtest.t
--- old/Data-Dump-Streamer-2.38/t/globtest.t 2014-06-12 12:58:11.000000000 +0200
+++ new/Data-Dump-Streamer-2.39/t/globtest.t 2015-12-24 06:51:10.000000000 +0100
@@ -66,7 +66,25 @@
$off, $width, $bits, $val, $res
.
';
- same( scalar $o->Data(*g)->Out, <<'EXPECT', "data slots (glob/FORMAT)", $o );
+ if ( 5.021009 <= $] ) {
+ same( scalar $o->Data(*g)->Out, <<'EXPECT', "data slots (glob/FORMAT)", $o );
+$VAR1 = *::g;
+*::g = \do { my $v = 'a string' };
+*::g = { a => 'hash' };
+*::g = [
+ 'a',
+ 'list'
+ ];
+format g =
+vec($_,@#,@#) = @<< == @######### @>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+use warnings;
+; $off, $width, $bits, $val, $res
+vec($_,@#,@#) = @<< == @######### @>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+$off, $width, $bits, $val, $res
+.
+EXPECT
+ } else {
+ same( scalar $o->Data(*g)->Out, <<'EXPECT', "data slots (glob/FORMAT)", $o );
$VAR1 = *::g;
*::g = \do { my $v = 'a string' };
*::g = { a => 'hash' };
@@ -81,12 +99,28 @@
$off, $width, $bits, $val, $res
.
EXPECT
+
+ }
SKIP: {
skip "no FORMAT refs before ".vstr(5,7)." and this is ".vstr(),
my $NUM=3
unless 5.008 <= $];
+ if ( 5.021009 <= $] ) {
- same( scalar $o->Data(*g{FORMAT})->Out, <<'EXPECT', "data slots (ref/FORMAT)", $o );
+ same( scalar $o->Data(*g{FORMAT})->Out, <<'EXPECT', "data slots (ref/FORMAT)", $o );
+$FORMAT1 = do{ local *F; my $F=<<'_EOF_FORMAT_'; $F=~s/^\s+# //mg; eval $F; die $F.$@ if $@; *F{FORMAT};
+ # format F =
+ # vec($_,@#,@#) = @<< == @######### @>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+ # use warnings;
+ # ; $off, $width, $bits, $val, $res
+ # vec($_,@#,@#) = @<< == @######### @>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+ # $off, $width, $bits, $val, $res
+ # .
+_EOF_FORMAT_
+ };
+EXPECT
+ } else {
+ same( scalar $o->Data(*g{FORMAT})->Out, <<'EXPECT', "data slots (ref/FORMAT)", $o );
$FORMAT1 = do{ local *F; my $F=<<'_EOF_FORMAT_'; $F=~s/^\s+# //mg; eval $F; die $F.$@ if $@; *F{FORMAT};
# format F =
# vec($_,@#,@#) = @<< == @######### @>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
@@ -97,14 +131,35 @@
_EOF_FORMAT_
};
EXPECT
- my $y=bless *g{FORMAT},"Thank::YSTH";
- #same ( scalar $o->Data(*g{FORMAT})->Out, <<'EXPECT', "data slots (blessed FORMAT)", $o );
- test_dump( {name=>"data slots (blessed FORMAT)",
- verbose=>1,
- pre_eval=>'our ($off,$width,$bits,$val,$res);',
- no_dumper=>1
- },
- $o, *g{FORMAT}, <<'EXPECT' );
+ }
+ my $y=bless *g{FORMAT},"Thank::YSTH";
+ if ( 5.021009 <= $] ) {
+ #same ( scalar $o->Data(*g{FORMAT})->Out, <<'EXPECT', "data slots (blessed FORMAT)", $o );
+ test_dump( {name=>"data slots (blessed FORMAT)",
+ verbose=>1,
+ pre_eval=>'our ($off,$width,$bits,$val,$res);',
+ no_dumper=>1,
+ no_redump=>1,
+ },
+ $o, *g{FORMAT}, <<'EXPECT' );
+$Thank_YSTH1 = bless( do{ local *F; my $F=<<'_EOF_FORMAT_'; $F=~s/^\s+# //mg; eval $F; die $F.$@ if $@; *F{FORMAT};
+ # format F =
+ # vec($_,@#,@#) = @<< == @######### @>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+ # use warnings;
+ # ; $off, $width, $bits, $val, $res
+ # vec($_,@#,@#) = @<< == @######### @>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+ # $off, $width, $bits, $val, $res
+ # .
+_EOF_FORMAT_
+ }, 'Thank::YSTH' );
+EXPECT
+ } else {
+ test_dump( {name=>"data slots (blessed FORMAT)",
+ verbose=>1,
+ pre_eval=>'our ($off,$width,$bits,$val,$res);',
+ no_dumper=>1,
+ },
+ $o, *g{FORMAT}, <<'EXPECT' );
$Thank_YSTH1 = bless( do{ local *F; my $F=<<'_EOF_FORMAT_'; $F=~s/^\s+# //mg; eval $F; die $F.$@ if $@; *F{FORMAT};
# format F =
# vec($_,@#,@#) = @<< == @######### @>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
@@ -115,8 +170,10 @@
_EOF_FORMAT_
}, 'Thank::YSTH' );
EXPECT
- our $gg=1; #silence a warning;
- same( scalar $o->Data(*gg{FORMAT})->Out, <<'EXPECT', "data slots (empty FORMAT)", $o );
+
+ }
+ our $gg=1; #silence a warning;
+ same( scalar $o->Data(*gg{FORMAT})->Out, <<'EXPECT', "data slots (empty FORMAT)", $o );
$VAR1 = undef;
EXPECT
};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Data-Dump-Streamer-2.38/t/test_helper.pl new/Data-Dump-Streamer-2.39/t/test_helper.pl
--- old/Data-Dump-Streamer-2.38/t/test_helper.pl 2014-06-12 12:58:11.000000000 +0200
+++ new/Data-Dump-Streamer-2.39/t/test_helper.pl 2015-12-24 06:51:10.000000000 +0100
@@ -110,12 +110,19 @@
s/\(0x[0-9a-xA-X]+\)/(0xdeadbeef)/g for $str1, $str2;
my @vars = $str2 =~ m/^(?:my\s*)?(\$\w+)\s*=/gm;
+ for ($str1, $str2) {
+ s/^\s+# use warnings;\n//mg;
+ s/^\s+# use strict[^;]*;\n//mg;
+ s/# ;/#/g;
+ }
+
#warn "@vars";
unless ( ok( "\n" . $str1 eq "\n" . $str2, $name ) ) {
if ( $str2 =~ /\S/ ) {
eval {
print string_diff( "\n" . $str2, "\n" . $str1, "Expected", "Result" );
print "Got:\n" . $str1 . "\n";
+ 1;
}
or do {
print "Expected:\n$str2\nGot:\n$str1\n";
1
0