From: Petr Lautrbach <plautrba@redhat.com>
To: selinux@vger.kernel.org
Cc: Nicolas Iooss <nicolas.iooss@m4x.org>
Subject: Re: [PATCH 1/1] gui: remove html_util.py
Date: Thu, 22 Nov 2018 10:46:25 +0100 [thread overview]
Message-ID: <pjdk1l5qwb2.fsf@redhat.com> (raw)
In-Reply-To: <pjdsgzur14f.fsf@redhat.com> (Petr Lautrbach's message of "Wed, 21 Nov 2018 14:50:08 +0100")
> Nicolas Iooss <nicolas.iooss@m4x.org> writes:
>
>> This file is not used anywhere.
>>
>> Signed-off-by: Nicolas Iooss <nicolas.iooss@m4x.org>
>
> Acked-by: Petr Lautrbach <plautrba@redhat.com>
Merged.
>
>
>> gui/Makefile | 1 -
>> gui/html_util.py | 175 -----------------------------------------------
>> 2 files changed, 176 deletions(-)
>> delete mode 100644 gui/html_util.py
>>
>> diff --git a/gui/Makefile b/gui/Makefile
>> index a72e58cee9b4..d42348b5f7fe 100644
>> --- a/gui/Makefile
>> +++ b/gui/Makefile
>> @@ -9,7 +9,6 @@ TARGETS= \
>> booleansPage.py \
>> domainsPage.py \
>> fcontextPage.py \
>> -html_util.py \
>> loginsPage.py \
>> modulesPage.py \
>> polgen.ui \
>> diff --git a/gui/html_util.py b/gui/html_util.py
>> deleted file mode 100644
>> index 420f6b967114..000000000000
>> --- a/gui/html_util.py
>> +++ /dev/null
>> @@ -1,175 +0,0 @@
>> -# Authors: John Dennis <jdennis@redhat.com>
>> -#
>> -# Copyright (C) 2007 Red Hat, Inc.
>> -#
>> -# This program is free software; you can redistribute it and/or modify
>> -# it under the terms of the GNU General Public License as published by
>> -# the Free Software Foundation; either version 2 of the License, or
>> -# (at your option) any later version.
>> -#
>> -# This program is distributed in the hope that it will be useful,
>> -# but WITHOUT ANY WARRANTY; without even the implied warranty of
>> -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
>> -# GNU General Public License for more details.
>> -#
>> -# You should have received a copy of the GNU General Public License
>> -# along with this program; if not, write to the Free Software
>> -# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
>> -#
>> -
>> -
>> -__all__ = [
>> - 'escape_html',
>> - 'unescape_html',
>> - 'html_to_text',
>> -
>> - 'html_document',
>> -]
>> -
>> -import htmllib
>> -import formatter as Formatter
>> -import string
>> -from types import *
>> -try:
>> - from io import StringIO
>> -except ImportError:
>> - from StringIO import StringIO
>> -
>> -#------------------------------------------------------------------------------
>> -
>> -
>> -class TextWriter(Formatter.DumbWriter):
>> -
>> - def __init__(self, file=None, maxcol=80, indent_width=4):
>> - Formatter.DumbWriter.__init__(self, file, maxcol)
>> - self.indent_level = 0
>> - self.indent_width = indent_width
>> - self._set_indent()
>> -
>> - def _set_indent(self):
>> - self.indent_col = self.indent_level * self.indent_width
>> - self.indent = ' ' * self.indent_col
>> -
>> - def new_margin(self, margin, level):
>> - self.indent_level = level
>> - self._set_indent()
>> -
>> - def send_label_data(self, data):
>> - data = data + ' '
>> - if len(data) > self.indent_col:
>> - self.send_literal_data(data)
>> - else:
>> - offset = self.indent_col - len(data)
>> - self.send_literal_data(' ' * offset + data)
>> -
>> - def send_flowing_data(self, data):
>> - if not data:
>> - return
>> - atbreak = self.atbreak or data[0] in string.whitespace
>> - col = self.col
>> - maxcol = self.maxcol
>> - write = self.file.write
>> - col = self.col
>> - if col == 0:
>> - write(self.indent)
>> - col = self.indent_col
>> - for word in data.split():
>> - if atbreak:
>> - if col + len(word) >= maxcol:
>> - write('\n' + self.indent)
>> - col = self.indent_col
>> - else:
>> - write(' ')
>> - col = col + 1
>> - write(word)
>> - col = col + len(word)
>> - atbreak = 1
>> - self.col = col
>> - self.atbreak = data[-1] in string.whitespace
>> -
>> -
>> -class HTMLParserAnchor(htmllib.HTMLParser):
>> -
>> - def __init__(self, formatter, verbose=0):
>> - htmllib.HTMLParser.__init__(self, formatter, verbose)
>> -
>> - def anchor_bgn(self, href, name, type):
>> - self.anchor = href
>> -
>> - def anchor_end(self):
>> - if self.anchor:
>> - self.handle_data(' (%s) ' % self.anchor)
>> - self.anchor = None
>> -
>> -#------------------------------------------------------------------------------
>> -
>> -
>> -def escape_html(s):
>> - if s is None:
>> - return None
>> - s = s.replace("&", "&") # Must be done first!
>> - s = s.replace("<", "<")
>> - s = s.replace(">", ">")
>> - s = s.replace("'", "'")
>> - s = s.replace('"', """)
>> - return s
>> -
>> -
>> -def unescape_html(s):
>> - if s is None:
>> - return None
>> - if '&' not in s:
>> - return s
>> - s = s.replace("<", "<")
>> - s = s.replace(">", ">")
>> - s = s.replace("'", "'")
>> - s = s.replace(""", '"')
>> - s = s.replace("&", "&") # Must be last
>> - return s
>> -
>> -
>> -def html_to_text(html, maxcol=80):
>> - try:
>> - buffer = StringIO()
>> - formatter = Formatter.AbstractFormatter(TextWriter(buffer, maxcol))
>> - parser = HTMLParserAnchor(formatter)
>> - parser.feed(html)
>> - parser.close()
>> - text = buffer.getvalue()
>> - buffer.close()
>> - return text
>> - except Exception as e:
>> - log_program.error('cannot convert html to text: %s' % e)
>> - return None
>> -
>> -
>> -def html_document(*body_components):
>> - '''Wrap the body components in a HTML document structure with a valid header.
>> - Accepts a variable number of arguments of which can be:
>> - * string
>> - * a sequences of strings (tuple or list).
>> - * a callable object taking no parameters and returning a string or sequence of strings.
>> - '''
>> - head = '<html>\n <head>\n <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>\n </head>\n <body>\n'
>> - tail = '\n </body>\n</html>'
>> -
>> - doc = head
>> -
>> - for body_component in body_components:
>> - if type(body_component) is StringTypes:
>> - doc += body_component
>> - elif type(body_component) in [TupleType, ListType]:
>> - for item in body_component:
>> - doc += item
>> - elif callable(body_component):
>> - result = body_component()
>> - if type(result) in [TupleType, ListType]:
>> - for item in result:
>> - doc += item
>> - else:
>> - doc += result
>> - else:
>> - doc += body_component
>> -
>> - doc += tail
>> - return doc
prev parent reply other threads:[~2018-11-22 9:46 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-11-11 20:50 [PATCH 1/1] gui: remove html_util.py Nicolas Iooss
2018-11-21 13:50 ` Petr Lautrbach
2018-11-22 9:46 ` Petr Lautrbach [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=pjdk1l5qwb2.fsf@redhat.com \
--to=plautrba@redhat.com \
--cc=nicolas.iooss@m4x.org \
--cc=selinux@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.