Anatoly Vorobey (avva) wrote,
Anatoly Vorobey
avva

Category:

интересно только программистам

Пытаясь понять, почему моя программа не выводит текст так, как я хочу, обнаружил баг в одной из стандартных функций языка Перл. Подробности под катом - понятны будут только тем, кто знает Перл.

Баг в функции sprintf. Он проявляется, когда при выводе строки (аргумент %s), которая к тому же содержит широкие символы в UTF-8 (напр. русские буквы), используются одновременно оба ограничения на длину - минимальное и максимальное - и они равны. Ниже копирую вывод моей тест-программы, которая изолирует баг, и демонстрирует, при каких вызовах функции он происходит.

Первые две пары вызовов printf демонстрируют баг, остальные - его отсутствие при других аргументах.

printf('%-3.3s', 'абвгд'): |абв  |
printf('%-3.3s', '01234'): |012|

printf('%3.3s', 'абвгд'): |  абв|
printf('%3.3s', '01234'): |012|

printf('%3s', 'абвгд'): |абвгд|
printf('%3s', '01234'): |01234|

printf('%.3s', 'абвгд'): |абв|
printf('%.3s', '01234'): |012|

printf('%3.4s', 'абвгд'): |абвг|
printf('%3.4s', '01234'): |0123|

Проверил, что баг содержится и в самой последней версии языка. Теперь надо посмотреть, сколько осталось пороха в пороховницах и насколько будет легко его починить...

Subscribe

Recent Posts from This Journal

  • то что

    Мне уже несколько лет попадаются обсуждения того, что в молодежном русском языке есть тенденция говорить/писать "то, что" там, где нужно только "что"…

  • что они себе думали?

    Мне интересно разобраться в том, что именно думали сторонники Дональда Трампа, когда шли штурмовать Капитолий 6 января 2021 года. Как они…

  • pbf

    Много лет назад мне нравились комиксы Perry Bible Fellowship, но очень давно о них не вспоминал. А они замечательные, посмотрите. Вот например,…

  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 49 comments

Recent Posts from This Journal

  • то что

    Мне уже несколько лет попадаются обсуждения того, что в молодежном русском языке есть тенденция говорить/писать "то, что" там, где нужно только "что"…

  • что они себе думали?

    Мне интересно разобраться в том, что именно думали сторонники Дональда Трампа, когда шли штурмовать Капитолий 6 января 2021 года. Как они…

  • pbf

    Много лет назад мне нравились комиксы Perry Bible Fellowship, но очень давно о них не вспоминал. А они замечательные, посмотрите. Вот например,…