Hello community,

here is the log from the commit of package file for openSUSE:Factory checked in 
at 2016-01-26 10:14:24
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/file (Old)
 and      /work/SRC/openSUSE:Factory/.file.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "file"

Changes:
--------
--- /work/SRC/openSUSE:Factory/file/file.changes        2015-10-14 
16:34:48.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.file.new/file.changes   2016-01-26 
10:14:26.000000000 +0100
@@ -1,0 +2,5 @@
+Thu Jan 21 11:32:14 UTC 2016 - [email protected]
+
+- add file-5.25-avoid-double-evaluation-in-python-bindings.dif (bsc#949905)
+
+-------------------------------------------------------------------
python-magic.changes: same change

New:
----
  file-5.25-avoid-double-evaluation-in-python-bindings.dif

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ file.spec ++++++
--- /var/tmp/diff_new_pack.sg1ai6/_old  2016-01-26 10:14:27.000000000 +0100
+++ /var/tmp/diff_new_pack.sg1ai6/_new  2016-01-26 10:14:27.000000000 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package file
 #
-# 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
@@ -62,6 +62,7 @@
 Patch35:        file-5.24-nitpick.dif
 Patch36:        file-5.15-clear-invalid.patch
 Patch37:        file-secure_getenv.patch
+Patch38:        file-5.25-avoid-double-evaluation-in-python-bindings.dif
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 %global         _sysconfdir /etc
 %global         _miscdir    %{_datadir}/misc
@@ -127,6 +128,7 @@
 %patch35 -p0 -b .nitpick
 %patch36 -p1 -b .clear
 %patch37 -p1 -b .getenv
+%patch38 -p1 -b .pythondouble
 %patch -b .0
 test -s src/magic.h.in || cp -p src/magic.h src/magic.h.in
 

++++++ python-magic.spec ++++++
--- /var/tmp/diff_new_pack.sg1ai6/_old  2016-01-26 10:14:28.000000000 +0100
+++ /var/tmp/diff_new_pack.sg1ai6/_new  2016-01-26 10:14:28.000000000 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package python-magic
 #
-# 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

++++++ file-5.25-avoid-double-evaluation-in-python-bindings.dif ++++++
>From f0adf3e6811aafde00dba8ba236609869a973769 Mon Sep 17 00:00:00 2001
From: Christos Zoulas <[email protected]>
Date: Thu, 29 Oct 2015 19:23:42 +0000
Subject: [PATCH] PR/489: Avoid evaluating things twice.

---
 python/magic.py | 35 +++++++++++++++++++----------------
 1 file changed, 19 insertions(+), 16 deletions(-)

diff --git a/python/magic.py b/python/magic.py
index a17e8da..2c1c012 100644
--- a/python/magic.py
+++ b/python/magic.py
@@ -118,14 +118,15 @@ def file(self, filename):
         as a filename or None if an error occurred and the MAGIC_ERROR flag
         is set.  A call to errno() will return the numeric error code.
         """
-        try:  # attempt python3 approach first
-            if isinstance(filename, bytes):
-                bi = filename
-            else:
-                bi = bytes(filename, 'utf-8')
-            return str(_file(self._magic_t, bi), 'utf-8')
-        except:
-            return _file(self._magic_t, filename.encode('utf-8'))
+        if isinstance(filename, bytes):
+            bi = filename
+        else:
+            bi = bytes(filename, 'utf-8')
+        r = _file(self._magic_t, bi)
+        if isinstance(r, str):
+            return r
+        else:
+            return str(r, 'utf-8')
 
     def descriptor(self, fd):
         """
@@ -139,20 +140,22 @@ def buffer(self, buf):
         as a buffer or None if an error occurred and the MAGIC_ERROR flag
         is set. A call to errno() will return the numeric error code.
         """
-        try:  # attempt python3 approach first
-            return str(_buffer(self._magic_t, buf, len(buf)), 'utf-8')
-        except:
-            return _buffer(self._magic_t, buf, len(buf))
+        r = _buffer(self._magic_t, buf, len(buf))
+        if isinstance(r, str):
+            return r
+        else:
+            return str(r, 'utf-8')
 
     def error(self):
         """
         Returns a textual explanation of the last error or None
         if there was no error.
         """
-        try:  # attempt python3 approach first
-            return str(_error(self._magic_t), 'utf-8')
-        except:
-            return _error(self._magic_t)
+        e = _error(self._magic_t)
+        if isinstance(e, str):
+            return e
+        else:
+            return str(e, 'utf-8')
 
     def setflags(self, flags):
         """

Reply via email to