# -*- coding: utf-8 -*-
# :-
# SPDX-FileCopyrightText: © 2026 Franz Glasner
# SPDX-License-Identifier: MIT
# :-
r"""A somewhat changed variant of :mod:`pygments.unistring`.

We handle ASCII characters mostly ourself.

"""

__all__ = []


import pygments.unistring


def _remove_ascii(s):
    """Remove the characters in the ASCII range from `s` and return the
    adjusted string.

    Assumes that in `s` the ASCII chars are sorted before the Unicode
    codepoints as in :mod:`pygments.unistring`.

    """
    idx = 0
    while ord(s[idx]) < 0x80:
        idx += 1
    if idx > 0:
        return s[idx:]
    else:
        # nothing changed
        return s


Pc = _remove_ascii(pygments.unistring.Pc)
Pd = _remove_ascii(pygments.unistring.Pd)
Pe = _remove_ascii(pygments.unistring.Pe)
Ps = _remove_ascii(pygments.unistring.Ps)
Pi = _remove_ascii(pygments.unistring.Pi)
Pf = _remove_ascii(pygments.unistring.Pf)
Po = _remove_ascii(pygments.unistring.Po)
Sc = _remove_ascii(pygments.unistring.Sc)
So = _remove_ascii(pygments.unistring.So)
Sm = _remove_ascii(pygments.unistring.Sm)
Zl = _remove_ascii(pygments.unistring.Zl)
Zp = _remove_ascii(pygments.unistring.Zp)
Zs = _remove_ascii(pygments.unistring.Zs)
