| From 3ff78f1f00973393d1a7ee4e467a2bacf1c807f3 Mon Sep 17 00:00:00 2001 |
| From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <git@andred.net> |
| Date: Wed, 5 Feb 2020 16:14:21 +0000 |
| Subject: [PATCH] smem: fix support for --source option (python3) |
| MIME-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| Using --source doesn't work without this patch: |
| Traceback (most recent call last): |
| File "./smem", line 727, in <module> |
| showpids() |
| File "./smem", line 299, in showpids |
| showtable(pt.keys(), fields, columns.split(), options.sort or 'pss') |
| File "./smem", line 519, in showtable |
| mt = totalmem() |
| File "./smem", line 118, in totalmem |
| _totalmem = memory()['memtotal'] |
| File "./smem", line 193, in memory |
| m = f.match(l) |
| TypeError: cannot use a string pattern on a bytes-like object |
| |
| python3's tarfile returns bytes, whereas all of the rest of |
| the code assumes str. |
| |
| Fix the tarfile usage to convert to str before returning the |
| results. |
| |
| Signed-off-by: André Draszik <git@andred.net> |
| Upstream-Status: Inappropriate [upstream wants to support python2 & python3] |
| --- |
| smem | 4 ++-- |
| 1 file changed, 2 insertions(+), 2 deletions(-) |
| |
| diff --git a/smem b/smem |
| index 46a3189..54d40dd 100755 |
| --- a/smem |
| +++ b/smem |
| @@ -90,9 +90,9 @@ class tardata(procdata): |
| d,f = ti.name.split('/') |
| yield d |
| def _read(self, f): |
| - return self.tar.extractfile(f).read() |
| + return self.tar.extractfile(f).read().decode() |
| def _readlines(self, f): |
| - return self.tar.extractfile(f).readlines() |
| + return [l.decode() for l in self.tar.extractfile(f).readlines()] |
| def piduser(self, p): |
| t = self.tar.getmember("%d" % p) |
| if t.uname: |
| -- |
| 2.23.0.rc1 |
| |