view src/testdir/test_makeencoding.py @ 33002:b4efdb3357f7 v9.0.1793

patch 9.0.1793: obsolete macros in configure script Commit: https://github.com/vim/vim/commit/f39842f148c9a8112432644b7f4a0129315de771 Author: Illia Bobyr <illia.bobyr@gmail.com> Date: Sun Aug 27 18:21:23 2023 +0200 patch 9.0.1793: obsolete macros in configure script Problem: obsolete macros in configure script Solution: Remove those and start moving to autoconf 2.71 src/configure.ac: Remove obsolete macros These macros are declared obsolete in autoconf 2.69, which is almost 10 years old by now: https://www.gnu.org/software/autoconf/manual/autoconf-2.69/html_node/Obsolete-Macros.html They generate warnings when in a subsequent upgrade to autoconf 2.71. `autoupdate` from autoupdate 2.71 suggests most of these changes, except that it also adds obsolete warnings, that where individually checked and removed. Regenerated `src/auto/configure` by running: cd src autoconf2.69 --output=auto/configure configure.ac sed --in-place --expression='s@>config.log@>auto/config.log@g' auto/configure closes: #12888 Signed-off-by: Christian Brabandt <cb@256bit.org> Co-authored-by: Illia Bobyr <illia.bobyr@gmail.com>
author Christian Brabandt <cb@256bit.org>
date Sun, 27 Aug 2023 18:30:04 +0200
parents e71d3bdf3bc3
children
line wrap: on
line source

#!/usr/bin/python
# -*- coding: utf-8 -*-

# Test program for :make, :grep and :cgetfile.

from __future__ import print_function, unicode_literals
import locale
import io
import sys

def set_output_encoding(enc=None):
    """Set the encoding of stdout and stderr

    arguments:
      enc -- Encoding name.
             If omitted, locale.getpreferredencoding() is used.
    """
    if enc is None:
        enc = locale.getpreferredencoding()

    def get_text_writer(fo, **kwargs):
        kw = dict(kwargs)
        kw.setdefault('errors', 'backslashreplace') # use \uXXXX style
        kw.setdefault('closefd', False)

        if sys.version_info[0] < 3:
            # Work around for Python 2.x
            # New line conversion isn't needed here. Done in somewhere else.
            writer = io.open(fo.fileno(), mode='w', newline='', **kw)
            write = writer.write    # save the original write() function
            enc = locale.getpreferredencoding()
            def convwrite(s):
                if isinstance(s, bytes):
                    write(s.decode(enc))    # convert to unistr
                else:
                    write(s)
                try:
                    writer.flush()  # needed on Windows
                except IOError:
                    pass
            writer.write = convwrite
        else:
            writer = io.open(fo.fileno(), mode='w', **kw)
        return writer

    sys.stdout = get_text_writer(sys.stdout, encoding=enc)
    sys.stderr = get_text_writer(sys.stderr, encoding=enc)


def main():
    enc = 'utf-8'
    if len(sys.argv) > 1:
        enc = sys.argv[1]
    set_output_encoding(enc)

    message_tbl = {
            'utf-8': 'ÀÈÌÒÙ こんにちは 你好',
            'latin1': 'ÀÈÌÒÙ',
            'cp932': 'こんにちは',
            'cp936': '你好',
            }

    print('Xfoobar.c(10) : %s (%s)' % (message_tbl[enc], enc))


if __name__ == "__main__":
    main()