mawww / kakoune

mawww's experiment for a better code editor
http://kakoune.org
The Unlicense
9.85k stars 710 forks source link

make test fails on OpenBSD #4417

Closed fredg0 closed 2 months ago

fredg0 commented 2 years ago

Version of Kakoune

2021-10-28

Reproducer

make test

Outcome

:kakoune > make test
===> Regression tests for kakoune-2021.10.28 gmake -C src Makefile gmake[1]: Entering directory '/usr/ports/pobj/kakoune-2021.10.28/kakoune-2021.10.28/src' gmake[1]: Nothing to be done for 'Makefile'. gmake[1]: Leaving directory '/usr/ports/pobj/kakoune-2021.10.28/kakoune-2021.10.28/src' gmake -C src test gmake[1]: Entering directory '/usr/ports/pobj/kakoune-2021.10.28/kakoune-2021.10.28/src' ln -sf kak.opt kak cd ../test && ./run kak-tests.pk8cQLql compose backward-search catch-error-desc complex-pipe del-empty-line discard-selections-with-itersel do-not-run-hooks-added-by-parent echo-to-file eof-multi-delete file-expansion history hook-named-captures inline-sort line-completion no-hook-on-unset-option-with-same-parent pipe-at-eof select-codepoints select-display-columns --- /usr/ports/pobj/kakoune-2021.10.28/kakoune-2021.10.28/test/./compose/select-display-columns/kak_selections_char_desc Thu Oct 28 00:13:34 2021 +++ kak_selections_char_desc Mon Nov 1 13:30:07 2021 @@ -1 +1 @@ -1.2,1.4 +1.3,1.8 --- /usr/ports/pobj/kakoune-2021.10.28/kakoune-2021.10.28/test/./compose/select-display-columns/kak_selections_desc Thu Oct 28 00:13:34 2021 +++ kak_selections_desc Mon Nov 1 13:30:07 2021 @@ -1 +1 @@ -1.4,1.10 +1.7,1.22 --- /usr/ports/pobj/kakoune-2021.10.28/kakoune-2021.10.28/test/./compose/select-display-columns/kak_selections_display_column_desc Thu Oct 28 00:13:34 2021 +++ kak_selections_display_column_desc Mon Nov 1 13:30:07 2021 @@ -1 +1 @@ -1.3,1.7 +1.3,1.8

debug buffer: This is the debug buffer, where debug info will be written

  select-timestamp
  selections_char_desc-expansion
  undo-multi-replace-at-end
  unicode

--- /usr/ports/pobj/kakoune-2021.10.28/kakoune-2021.10.28/test/./compose/unicode/out Thu Oct 28 00:13:34 2021 +++ out Mon Nov 1 13:30:08 2021 @@ -1 +1 @@ -MAÏS MÉLANGE BIENTÔT +MAïS MéLANGE BIENTôT

debug buffer: This is the debug buffer, where debug info will be written

display
  horizontal-scroll
  horizontal-scroll-onto-tab
  horizontal-scroll-with-tab
  vertical-scroll
highlight
  column
    multi-columns
  face-override
  named-captures
  ranges
  regions
  regions-recurse
  replace-empty-range
  replace-multiline-range
  replace-multiline-range-pulls-new-lines
  replace-only-fully-selected-ranges
  rust
    comment0
    doc_comment_hidden
    doc_comment_hidden_with_empty_line
    inner_block_comment1
    inner_block_doc_comment1
    inner_line_doc_comment1
    let
    line_comment1
    outer_block_doc_comment0
    pub
    todo
    value
      - { "jsonrpc": "2.0", "method": "draw", "params": [[[{ "face": { "fg": "black", "bg": "white", "underline": "default", "attributes": ["final_fg","final_bg"] }, "contents": "b" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": "'\\' " }, { "face": { "fg": "yellow", "bg": "default", "underline": "default", "attributes": [] }, "contents": "b'\\x00'" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": " " }, { "face": { "fg": "yellow", "bg": "default", "underline": "default", "attributes": [] }, "contents": "b'0'" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": " " }, { "face": { "fg": "yellow", "bg": "default", "underline": "default", "attributes": [] }, "contents": "b'a'" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": " " }, { "face": { "fg": "yellow", "bg": "default", "underline": "default", "attributes": [] }, "contents": "b' '" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": " " }, { "face": { "fg": "yellow", "bg": "default", "underline": "default", "attributes": [] }, "contents": "b'!'" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": " " }, { "face": { "fg": "yellow", "bg": "default", "underline": "default", "attributes": [] }, "contents": "b'\\n'" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": " b" }, { "face": { "fg": "green", "bg": "default", "underline": "default", "attributes": [] }, "contents": "'一'" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": " b" }, { "face": { "fg": "green", "bg": "default", "underline": "default", "attributes": [] }, "contents": "'\\u{12}'" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": "\u000a" }], [{ "face": { "fg": "green", "bg": "default", "underline": "default", "attributes": [] }, "contents": "'\\x00'" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": " " }, { "face": { "fg": "green", "bg": "default", "underline": "default", "attributes": [] }, "contents": "'0'" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": " " }, { "face": { "fg": "green", "bg": "default", "underline": "default", "attributes": [] }, "contents": "'a'" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": " " }, { "face": { "fg": "green", "bg": "default", "underline": "default", "attributes": [] }, "contents": "' '" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": " " }, { "face": { "fg": "green", "bg": "default", "underline": "default", "attributes": [] }, "contents": "'!'" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": " " }, { "face": { "fg": "green", "bg": "default", "underline": "default", "attributes": [] }, "contents": "'\\n'" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": " " }, { "face": { "fg": "green", "bg": "default", "underline": "default", "attributes": [] }, "contents": "'\\u{12}'" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": " " }, { "face": { "fg": "green", "bg": "default", "underline": "default", "attributes": [] }, "contents": "'一'" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": "\u000a" }]], { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, { "fg": "blue", "bg": "default", "underline": "default", "attributes": [] }] }
      + { "jsonrpc": "2.0", "method": "draw", "params": [[[{ "face": { "fg": "black", "bg": "white", "underline": "default", "attributes": ["final_fg","final_bg"] }, "contents": "b" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": "'\\' " }, { "face": { "fg": "yellow", "bg": "default", "underline": "default", "attributes": [] }, "contents": "b'\\x00'" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": " " }, { "face": { "fg": "yellow", "bg": "default", "underline": "default", "attributes": [] }, "contents": "b'0'" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": " " }, { "face": { "fg": "yellow", "bg": "default", "underline": "default", "attributes": [] }, "contents": "b'a'" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": " " }, { "face": { "fg": "yellow", "bg": "default", "underline": "default", "attributes": [] }, "contents": "b' '" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": " " }, { "face": { "fg": "yellow", "bg": "default", "underline": "default", "attributes": [] }, "contents": "b'!'" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": " " }, { "face": { "fg": "yellow", "bg": "default", "underline": "default", "attributes": [] }, "contents": "b'\\n'" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": " b" }, { "face": { "fg": "green", "bg": "default", "underline": "default", "attributes": [] }, "contents": "'" }, { "face": { "fg": "black", "bg": "red", "underline": "default", "attributes": [] }, "contents": "�" }, { "face": { "fg": "green", "bg": "default", "underline": "default", "attributes": [] }, "contents": "'" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": " b" }, { "face": { "fg": "green", "bg": "default", "underline": "default", "attributes": [] }, "contents": "'\\u{12}'" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": "\u000a" }], [{ "face": { "fg": "green", "bg": "default", "underline": "default", "attributes": [] }, "contents": "'\\x00'" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": " " }, { "face": { "fg": "green", "bg": "default", "underline": "default", "attributes": [] }, "contents": "'0'" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": " " }, { "face": { "fg": "green", "bg": "default", "underline": "default", "attributes": [] }, "contents": "'a'" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": " " }, { "face": { "fg": "green", "bg": "default", "underline": "default", "attributes": [] }, "contents": "' '" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": " " }, { "face": { "fg": "green", "bg": "default", "underline": "default", "attributes": [] }, "contents": "'!'" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": " " }, { "face": { "fg": "green", "bg": "default", "underline": "default", "attributes": [] }, "contents": "'\\n'" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": " " }, { "face": { "fg": "green", "bg": "default", "underline": "default", "attributes": [] }, "contents": "'\\u{12}'" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": " " }, { "face": { "fg": "green", "bg": "default", "underline": "default", "attributes": [] }, "contents": "'" }, { "face": { "fg": "black", "bg": "red", "underline": "default", "attributes": [] }, "contents": "�" }, { "face": { "fg": "green", "bg": "default", "underline": "default", "attributes": [] }, "contents": "'" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": "\u000a" }]], { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, { "fg": "blue", "bg": "default", "underline": "default", "attributes": [] }] }

debug buffer: This is the debug buffer, where debug info will be written

  wrap
    avoid-odd-places
hooks
  once
  remove-regex
indent
  c-family
    align-while-expr
    close-function-with-struct-param
    close-namespace
    close-struct
    comment-line-continuation
    construct-align
    deindent-function-closing-brace
    deindent-generic-closing-brace
    deindent-if-body
    deindent-if-closing-brace
    indent-after-parenthesis
    indent-else-brace
    indent-if-body
    indent-if-brace
    move-brace
    multiline-nested-align
    nested-align
    open-function
    paren-in-literal
    preserve-tabs
  clojure
    doubled-brackets
  comment
    comment-multiple-lines-indented
    comment-multiple-lines-unindented
    comment-multiple-lines-when-partially-commented
    uncomment-multiple-indented-lines
  elixir
    do-keyword
    following-blocks-should-not-prevent-end
    function-definition-shouldnt-duplicate
    insert-comment-hash
  go
    deindent-function-closing-brace
    deindent-generic-closing-brace
    deindent-if-closing-brace
  haskell
    before-comment
    indented-comment
    inside-comment
  html
    indent-closing-tag
    indent-on-new-line
  javascript
    deindent-complex-brace-structure
  lisp
    doubled-brackets
  lua
    insert-end-only-when-needed
    unindent-after-end
  markdown
    inside-complex-blockquote
    inside-list-item
    inside-nested-list-item
    inside-simple-blockquote
    inside-strong-emphasis
    list-item
    open-after-setext-heading-1
    open-after-setext-heading-2
  ruby
    deindent-on-if-else-end
    do-keyword
    following-blocks-should-not-prevent-end
    indent-after-class
    insert-comment-hash
    method-definition-shouldnt-duplicate
  rust
    after-open
    after-open-with-chars
    after-variable
    after-where
    align-closing-brace
    align-closing-brack
    align-closing-paren
    before-where
    block-comment
    block-comment-close
    dedent
    dedent-async
    dedent-function-closing-brace
    dedent-generic-closing-brace
    dedent-if-closing-brace
    empty-line
    empty-match
    line-comment
    line-comment-close
    line-start-with-operator
    on-open-paren
  sh
    deindent-after-done
    deindent-after-esac
    deindent-after-fi
    deindent-case-option
    deindent-compound-command
    deindent-one-line-case-option
    deindent-only-else
    indent-after-do
    indent-after-in
    indent-after-then
    indent-block-case
    indent-compound-command
    no-deindent-after-else
    no-deindent-after-fi
normal
  align
  align-tab
  all
  append
  append-at-eol
  change
  clear-selections
  codepoint-width
    tab-width
    vertical-movement

--- /usr/ports/pobj/kakoune-2021.10.28/kakoune-2021.10.28/test/./normal/codepoint-width/vertical-movement/kak_quoted_selections Thu Oct 28 00:13:34 2021 +++ kak_quoted_selections Mon Nov 1 13:30:21 2021 @@ -1 +1 @@ -'3' '7' +'2' '4'

debug buffer: This is the debug buffer, where debug info will be written

  concat-paste-line
  convert-spaces-to-tabs
  convert-tabs-to-spaces
  copy-sel-above
  copy-sel-below
  copy-sel-below-multi-line
  deindent
  delete
  extend-lines
  extra-word-chars
  facedesc-invalid-syntax
    attributes
    bg-color
  find-char-backward
  find-char-backward-extending
  find-char-forward
  find-char-forward-extending
  goto
  goto-extending
    buffer-bottom
    buffer-end
    buffer-top
    last-change
    line-begin
    line-end
    buffer-bottom
    buffer-end
    buffer-top
    file
    last-buffer
    last-change
    line-begin
    line-end
  indent
  insert
  insert-at-line-start
  insert-replace
  jump
    backward
    backward-count
    backward-invalid-count
    forward
    forward-count
    forward-invalid-count
  keep-cmd

--- /usr/ports/pobj/kakoune-2021.10.28/kakoune-2021.10.28/test/./normal/keep-cmd/kak_quoted_selections Thu Oct 28 00:13:34 2021 +++ kak_quoted_selections Mon Nov 1 13:30:23 2021 @@ -1 +1 @@ -'foo' 'bar' +'foo' 'rha' 'bar'

debug buffer: This is the debug buffer, where debug info will be written

  keep-cmd-reg

--- /usr/ports/pobj/kakoune-2021.10.28/kakoune-2021.10.28/test/./normal/keep-cmd-reg/kak_quoted_selections Thu Oct 28 00:13:34 2021 +++ kak_quoted_selections Mon Nov 1 13:30:23 2021 @@ -1 +1 @@ -'foo' 'bar' +'foo' 'rha' 'bar'

debug buffer: This is the debug buffer, where debug info will be written

  lower-case
  match-char
  move
    down
    down-extending
    left
    left-extending
    right
    right-extending
    up
    up-extending
  next-big-word
  next-big-word-extending
  next-match
  next-match-appending
  next-word
  next-word-extending
  object
    around
    around-parent
      angle
      braces
      brackets
      parenthesis
      angle
      argument
        multi-level
        single-level
      big-word
      braces
      brackets
      double_quote
      grave_quote
      indent
      paragraph
      parenthesis
      sentence
      single_quote
      slash
      word
    drop-non-whitespace
    end
    end-extending
    end-extending-parent
      braces
      angle
      argument
      big-word
      braces
      brackets
      double_quote
      grave_quote
      indent
      paragraph
        count
        single
      parenthesis
      sentence
        count
        single
      single_quote
      word
      angle
      argument
      big-word
      braces
      brackets
      double_quote
      grave_quote
      indent
      paragraph
        count
        single
        to-buffer-end
      parenthesis
      sentence
        count
        single
        to-buffer-end
      single_quote
      word
    inner
      angle
      argument
        multi-level
        single-level
      big-word
      braces
      brackets
      double_quote
      grave_quote
      indent
      paragraph
      parenthesis
      sentence
      single_quote
      slash
      word
    on-end
      around
        angle
        braces
        brackets
        parenthesis
      inner
        angle
        braces
        brackets
        parenthesis
      to-end
        angle
        braces
        brackets
        parenthesis
    on-start
      around
        angle
        braces
        brackets
        double_quote
        grave_quote
        parenthesis
        single_quote
        slash
      inner
        angle
        braces
        brackets
        double_quote
        grave_quote
        parenthesis
        single_quote
      to-start
        angle
        braces
        brackets
        parenthesis
    start
    start-extending
      angle
      argument
      big-word
      braces
      brackets
      double_quote
      grave_quote
      indent
      paragraph
        count
        single
      parenthesis
      sentence
        count
        single
      single_quote
      word
      angle
      argument
      big-word
      braces
      brackets
      double_quote
      grave_quote
      indent
      paragraph
        count
        single
      parenthesis
      sentence
        count
        single
        to-buffer-begin
      single_quote
      word
  open-above
  open-below
  open-multiple-above
  open-multiple-below
  paste-after
  paste-all-after
  paste-all-before
  paste-all-replace
  paste-before
  pipe
  pipe-reg
  pipe-to
  pipe-to-reg
  previous-big-word
  previous-big-word-extending
  previous-word
  previous-word-extending
  previous-word-no-underscore
  record-macro
  redo
  reload
  repeat-insert
  repeat-select
    repeat-end-paragraph
    repeat-find-char
  replace
  replace-lines
  replay-complex-insert
  replay-macro
  restore-selections
  rotate
  rotate-content
  save-selections
  search
  search-extending
  search-reverse
  search-reverse-extending
  search-reverse-rightmost
    missed-match
    overlap
  select
  select-horizontal-whitespace
  select-line
  select-line-extending
  split
  split-at-begin
  split-multiple-lines
  switch-case
  to-char-backward
  to-char-backward-extending
  to-char-forward
  to-char-forward-extending
  trim
  trim-drop-empty
  trim-lines
    table
  undo
  undo-after-replace-lines
  upper-case
  user-modes
    lock
    once
  yank
regression
  0-assert-on-itersel
  0-comment-after-command
  0-compute-modified-range-crash
  0-crash-on-BufSetOption-hook
  0-crash-on-backspace-at-buffer-begin
  0-crash-on-delete-buffer-BufClose
  0-crash-on-pipe-with-selection-access
  0-crash-on-specialy-crafted-modeline
  0-deindent-on-mixed-indent-line
  0-nothing-selected-on-prompt-initial-shift-tab
  0-open-below-should-not-move-cursor-on-eol
  0-replace-last-eol-with-eol
  0-rotate-at-eof-mutates-selection
  0-select-object-with-empty-begin-match
  0-spurious-undo-group-on-external
  0-undo-change-at-eof
  1014-ambiguous-kak_selections
  1051-crash-on-empty-param
  1053-crash-on-deletion-and-paste
  1074-comment-leader-autoinsert-error
  1105-object-selection-behaviour
  1111-unexpected-behaviour-on-new-line-in-comment
  1118-misaligned-comment-start
  1129-capture-groups-are-broken
  1195-infinite-loop-in-regex-matching
  1227-segfault-on-option-access
  1233-corrent-cursor-handling-for-indent-objects
  1275-replaced-range-split
  1308-wrong-behaviour-of-kak-indent-on-newline
  1382-column-highlighter-broken-on-horizontal-scroll
  1433-scrolloff-broken-with-soft-wrap
  1435-misplaced-cursor-with-show_matching-hl
  1453-show_whitespaces-highlighter-breaks-tab-alignment
  1459-assertion-on-wrapped-long-line
  1469-assert-on-repeat-insert
  1504-assertion-on-incorrect-pipe-use
  1518-wrong-undo-handling-with-fifo-buffers
  1525-lua-indent-error
  1580-A-not-moving-to-eol
  1680-crash-with-dot-and-alt-semicolon
  1731-wrap-hidden-buffer
  1741-scrolloff-hides-end-of-lines
  1829-unicode-as-string-delimiter
  1902-regex-lookbehind-ignore-before-current-pos
  1904-select-empty-line-indent-gets-whole-buffer
  1920-crash-on-python-in-docstring
  1937-opening-missing-file-by-full-path-fails
  1964-O-does-not-position-cursor-correctly
  2030-custom-selection-nesting
  2056-assert-on-small-window
  2078-assert-on-restoring-invalid-selections
  2129-inside-parentheses
  2133-assert-on-rotate-contents
  2245-wrap-long-word
  2367-surround-with-tight-nesting
  2420-discrepancy-in-star-behaviour
  2499-html-regions-assert
  2562-column-highlighter-bleeding
  2711-weird-regex-highlighter-behaviour
  2737-segfault-on-WinDisplay-hook
  2755-segfault-on-double-wrap-highlighters
  2861-backspace-merges-selections
  2999-buggy-wrapping
  3010-extra_word_chars-fails-with-other-buffers
  3025-last-buffer-does-not-work-in-draft-context
  3041-invalid-regex-highlight-accross-regions
  3048-word-wrapping-broken
  3219-scroll-json-ui
  3270-crash-in-autocomplete
  3275-crash-on-replace-at-buffer-start
  3349-crash-in-completion
  3388-command-line-parsing-does-not-preserve-invalid-utf8
  3398-readonly-fifo-failure
    - { "jsonrpc": "2.0", "method": "draw_status", "params": [[], [{ "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": "out 1:1 " }, { "face": { "fg": "black", "bg": "yellow", "underline": "default", "attributes": [] }, "contents": "[scratch][fifo][readonly]" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": " " }, { "face": { "fg": "blue", "bg": "default", "underline": "default", "attributes": [] }, "contents": "1 sel" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": " - client0@[kak-tests]" }], { "fg": "cyan", "bg": "default", "underline": "default", "attributes": [] }] }
    + { "jsonrpc": "2.0", "method": "draw_status", "params": [[{ "face": { "fg": "black", "bg": "yellow", "underline": "default", "attributes": [] }, "contents": "waiting for shell command to finish (shell terminated) (1s)" }], [{ "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": "out 1:1 " }, { "face": { "fg": "black", "bg": "yellow", "underline": "default", "attributes": [] }, "contents": "" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": " " }, { "face": { "fg": "blue", "bg": "default", "underline": "default", "attributes": [] }, "contents": "1 sel" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": " - client0@[kak-tests]" }], { "fg": "cyan", "bg": "default", "underline": "default", "attributes": [] }] }
    - { "jsonrpc": "2.0", "method": "draw", "params": [[[{ "face": { "fg": "black", "bg": "white", "underline": "default", "attributes": [] }, "contents": "b" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": "lah\u000a" }]], { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, { "fg": "blue", "bg": "default", "underline": "default", "attributes": [] }] }
    + { "jsonrpc": "2.0", "method": "draw_status", "params": [[{ "face": { "fg": "black", "bg": "yellow", "underline": "default", "attributes": [] }, "contents": "waiting for shell command to finish (shell terminated) (2s)" }], [{ "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": "out 1:1 " }, { "face": { "fg": "black", "bg": "yellow", "underline": "default", "attributes": [] }, "contents": "" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": " " }, { "face": { "fg": "blue", "bg": "default", "underline": "default", "attributes": [] }, "contents": "1 sel" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": " - client0@[kak-tests]" }], { "fg": "cyan", "bg": "default", "underline": "default", "attributes": [] }] }

Expectations

no failure

Additional information

Hi,

Running make test hangs with some failures. Make test didn't succeed neither with the previous releases, I had just not taken the time to make a report. Indeed, despite of this, kakoune has always been built and it runs smoothly since 6.9. This last build is made under OpenBSD -current. (> 7.0).

I didn't have any bugs reports on OpenBSD.

Best regards.

-fredg

mawww commented 2 years ago

This looks a lot like running the test suite with a non-utf8 locale. Can you check that ?

fredg0 commented 2 years ago

Hi,

OpenBSD support unicode ( https://www.openbsd.org/faq/faq8.html#locales ), the locale used in the previous post was fr_FR.UTF-8

Below, running make test with LC_ALL=C hangs at the same point.

:kakoune > LC_ALL=C make test
===>  Checking files for kakoune-2021.10.28
`/usr/ports/distfiles/kakoune-2021.10.28.tar.bz2' is up to date.
>> (SHA256) kakoune-2021.10.28.tar.bz2: OK
===> kakoune-2021.10.28 depends on: gmake-* -> gmake-4.3
===> kakoune-2021.10.28 depends on: bzip2-* -> bzip2-1.0.8p0
===>  Verifying specs:  c++ c++abi pthread c m
===>  found c++.8.0 c++abi.5.0 pthread.26.1 c.96.1 m.10.1
===>  Extracting for kakoune-2021.10.28
===>  Patching for kakoune-2021.10.28
===>   Applying OpenBSD patch patch-src_Makefile
Hmm...  Looks like a unified diff to me...
The text leading up to this was:
--------------------------
|$OpenBSD: patch-src_Makefile,v 1.1.1.1 2020/06/14 13:07:04 solene Exp $
|
|Remove optimization flags for debug or release builds
|
|Index: src/Makefile
|--- src/Makefile.orig
|+++ src/Makefile
--------------------------
Patching file src/Makefile using Plan A...
Hunk #1 succeeded at 12.
done
===>  Compiler link: clang -> /usr/bin/clang
===>  Compiler link: clang++ -> /usr/bin/clang++
===>  Compiler link: cc -> /usr/bin/cc
===>  Compiler link: c++ -> /usr/bin/c++
===>  Generating configure for kakoune-2021.10.28
===>  Configuring for kakoune-2021.10.28
===>  Building for kakoune-2021.10.28
gmake -C src Makefile
gmake[1]: Entering directory '/usr/ports/pobj/kakoune-2021.10.28/kakoune-2021.10.28/src'
gmake[1]: Nothing to be done for 'Makefile'.
gmake[1]: Leaving directory '/usr/ports/pobj/kakoune-2021.10.28/kakoune-2021.10.28/src'
gmake -C src all
gmake[1]: Entering directory '/usr/ports/pobj/kakoune-2021.10.28/kakoune-2021.10.28/src'
c++ -D'KAK_BIN_PATH="/usr/local/bin/kak"' -I/usr/local/include -O2 -pipe   -pedantic -std=c++17 -g -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-address -frelaxed-template-template-args -MD -MP -MF .alias_registry.opt.d -c -o .alias_registry.opt.o alias_registry.cc
c++ -D'KAK_BIN_PATH="/usr/local/bin/kak"' -I/usr/local/include -O2 -pipe   -pedantic -std=c++17 -g -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-address -frelaxed-template-template-args -MD -MP -MF .assert.opt.d -c -o .assert.opt.o assert.cc
c++ -D'KAK_BIN_PATH="/usr/local/bin/kak"' -I/usr/local/include -O2 -pipe   -pedantic -std=c++17 -g -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-address -frelaxed-template-template-args -MD -MP -MF .backtrace.opt.d -c -o .backtrace.opt.o backtrace.cc
c++ -D'KAK_BIN_PATH="/usr/local/bin/kak"' -I/usr/local/include -O2 -pipe   -pedantic -std=c++17 -g -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-address -frelaxed-template-template-args -MD -MP -MF .buffer.opt.d -c -o .buffer.opt.o buffer.cc
c++ -D'KAK_BIN_PATH="/usr/local/bin/kak"' -I/usr/local/include -O2 -pipe   -pedantic -std=c++17 -g -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-address -frelaxed-template-template-args -MD -MP -MF .buffer_manager.opt.d -c -o .buffer_manager.opt.o buffer_manager.cc
c++ -D'KAK_BIN_PATH="/usr/local/bin/kak"' -I/usr/local/include -O2 -pipe   -pedantic -std=c++17 -g -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-address -frelaxed-template-template-args -MD -MP -MF .buffer_utils.opt.d -c -o .buffer_utils.opt.o buffer_utils.cc
c++ -D'KAK_BIN_PATH="/usr/local/bin/kak"' -I/usr/local/include -O2 -pipe   -pedantic -std=c++17 -g -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-address -frelaxed-template-template-args -MD -MP -MF .changes.opt.d -c -o .changes.opt.o changes.cc
c++ -D'KAK_BIN_PATH="/usr/local/bin/kak"' -I/usr/local/include -O2 -pipe   -pedantic -std=c++17 -g -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-address -frelaxed-template-template-args -MD -MP -MF .client.opt.d -c -o .client.opt.o client.cc
c++ -D'KAK_BIN_PATH="/usr/local/bin/kak"' -I/usr/local/include -O2 -pipe   -pedantic -std=c++17 -g -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-address -frelaxed-template-template-args -MD -MP -MF .client_manager.opt.d -c -o .client_manager.opt.o client_manager.cc
c++ -D'KAK_BIN_PATH="/usr/local/bin/kak"' -I/usr/local/include -O2 -pipe   -pedantic -std=c++17 -g -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-address -frelaxed-template-template-args -MD -MP -MF .color.opt.d -c -o .color.opt.o color.cc
c++ -D'KAK_BIN_PATH="/usr/local/bin/kak"' -I/usr/local/include -O2 -pipe   -pedantic -std=c++17 -g -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-address -frelaxed-template-template-args -MD -MP -MF .command_manager.opt.d -c -o .command_manager.opt.o command_manager.cc
c++ -D'KAK_BIN_PATH="/usr/local/bin/kak"' -I/usr/local/include -O2 -pipe   -pedantic -std=c++17 -g -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-address -frelaxed-template-template-args -MD -MP -MF .commands.opt.d -c -o .commands.opt.o commands.cc
c++ -D'KAK_BIN_PATH="/usr/local/bin/kak"' -I/usr/local/include -O2 -pipe   -pedantic -std=c++17 -g -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-address -frelaxed-template-template-args -MD -MP -MF .completion.opt.d -c -o .completion.opt.o completion.cc
c++ -D'KAK_BIN_PATH="/usr/local/bin/kak"' -I/usr/local/include -O2 -pipe   -pedantic -std=c++17 -g -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-address -frelaxed-template-template-args -MD -MP -MF .context.opt.d -c -o .context.opt.o context.cc
c++ -D'KAK_BIN_PATH="/usr/local/bin/kak"' -I/usr/local/include -O2 -pipe   -pedantic -std=c++17 -g -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-address -frelaxed-template-template-args -MD -MP -MF .display_buffer.opt.d -c -o .display_buffer.opt.o display_buffer.cc
c++ -D'KAK_BIN_PATH="/usr/local/bin/kak"' -I/usr/local/include -O2 -pipe   -pedantic -std=c++17 -g -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-address -frelaxed-template-template-args -MD -MP -MF .env_vars.opt.d -c -o .env_vars.opt.o env_vars.cc
c++ -D'KAK_BIN_PATH="/usr/local/bin/kak"' -I/usr/local/include -O2 -pipe   -pedantic -std=c++17 -g -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-address -frelaxed-template-template-args -MD -MP -MF .event_manager.opt.d -c -o .event_manager.opt.o event_manager.cc
c++ -D'KAK_BIN_PATH="/usr/local/bin/kak"' -I/usr/local/include -O2 -pipe   -pedantic -std=c++17 -g -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-address -frelaxed-template-template-args -MD -MP -MF .exception.opt.d -c -o .exception.opt.o exception.cc
c++ -D'KAK_BIN_PATH="/usr/local/bin/kak"' -I/usr/local/include -O2 -pipe   -pedantic -std=c++17 -g -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-address -frelaxed-template-template-args -MD -MP -MF .face_registry.opt.d -c -o .face_registry.opt.o face_registry.cc
c++ -D'KAK_BIN_PATH="/usr/local/bin/kak"' -I/usr/local/include -O2 -pipe   -pedantic -std=c++17 -g -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-address -frelaxed-template-template-args -MD -MP -MF .file.opt.d -c -o .file.opt.o file.cc
file.cc:599:10: warning: unused variable 'buffer' [-Wunused-variable]
    char buffer[2048];
         ^
1 warning generated.
c++ -D'KAK_BIN_PATH="/usr/local/bin/kak"' -I/usr/local/include -O2 -pipe   -pedantic -std=c++17 -g -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-address -frelaxed-template-template-args -MD -MP -MF .hash.opt.d -c -o .hash.opt.o hash.cc
c++ -D'KAK_BIN_PATH="/usr/local/bin/kak"' -I/usr/local/include -O2 -pipe   -pedantic -std=c++17 -g -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-address -frelaxed-template-template-args -MD -MP -MF .hash_map.opt.d -c -o .hash_map.opt.o hash_map.cc
c++ -D'KAK_BIN_PATH="/usr/local/bin/kak"' -I/usr/local/include -O2 -pipe   -pedantic -std=c++17 -g -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-address -frelaxed-template-template-args -MD -MP -MF .highlighter.opt.d -c -o .highlighter.opt.o highlighter.cc
c++ -D'KAK_BIN_PATH="/usr/local/bin/kak"' -I/usr/local/include -O2 -pipe   -pedantic -std=c++17 -g -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-address -frelaxed-template-template-args -MD -MP -MF .highlighter_group.opt.d -c -o .highlighter_group.opt.o highlighter_group.cc
c++ -D'KAK_BIN_PATH="/usr/local/bin/kak"' -I/usr/local/include -O2 -pipe   -pedantic -std=c++17 -g -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-address -frelaxed-template-template-args -MD -MP -MF .highlighters.opt.d -c -o .highlighters.opt.o highlighters.cc
c++ -D'KAK_BIN_PATH="/usr/local/bin/kak"' -I/usr/local/include -O2 -pipe   -pedantic -std=c++17 -g -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-address -frelaxed-template-template-args -MD -MP -MF .hook_manager.opt.d -c -o .hook_manager.opt.o hook_manager.cc
c++ -D'KAK_BIN_PATH="/usr/local/bin/kak"' -I/usr/local/include -O2 -pipe   -pedantic -std=c++17 -g -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-address -frelaxed-template-template-args -MD -MP -MF .input_handler.opt.d -c -o .input_handler.opt.o input_handler.cc
c++ -D'KAK_BIN_PATH="/usr/local/bin/kak"' -I/usr/local/include -O2 -pipe   -pedantic -std=c++17 -g -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-address -frelaxed-template-template-args -MD -MP -MF .insert_completer.opt.d -c -o .insert_completer.opt.o insert_completer.cc
c++ -D'KAK_BIN_PATH="/usr/local/bin/kak"' -I/usr/local/include -O2 -pipe   -pedantic -std=c++17 -g -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-address -frelaxed-template-template-args -MD -MP -MF .json.opt.d -c -o .json.opt.o json.cc
c++ -D'KAK_BIN_PATH="/usr/local/bin/kak"' -I/usr/local/include -O2 -pipe   -pedantic -std=c++17 -g -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-address -frelaxed-template-template-args -MD -MP -MF .json_ui.opt.d -c -o .json_ui.opt.o json_ui.cc
c++ -D'KAK_BIN_PATH="/usr/local/bin/kak"' -I/usr/local/include -O2 -pipe   -pedantic -std=c++17 -g -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-address -frelaxed-template-template-args -MD -MP -MF .keymap_manager.opt.d -c -o .keymap_manager.opt.o keymap_manager.cc
c++ -D'KAK_BIN_PATH="/usr/local/bin/kak"' -I/usr/local/include -O2 -pipe   -pedantic -std=c++17 -g -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-address -frelaxed-template-template-args -MD -MP -MF .keys.opt.d -c -o .keys.opt.o keys.cc
c++ -D'KAK_BIN_PATH="/usr/local/bin/kak"' -I/usr/local/include -O2 -pipe   -pedantic -std=c++17 -g -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-address -frelaxed-template-template-args -MD -MP -MF .line_modification.opt.d -c -o .line_modification.opt.o line_modification.cc
c++ -D'KAK_BIN_PATH="/usr/local/bin/kak"' -I/usr/local/include -O2 -pipe   -pedantic -std=c++17 -g -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-address -frelaxed-template-template-args -MD -MP -MF .main.opt.d -c -o .main.opt.o main.cc
c++ -D'KAK_BIN_PATH="/usr/local/bin/kak"' -I/usr/local/include -O2 -pipe   -pedantic -std=c++17 -g -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-address -frelaxed-template-template-args -MD -MP -MF .memory.opt.d -c -o .memory.opt.o memory.cc
c++ -D'KAK_BIN_PATH="/usr/local/bin/kak"' -I/usr/local/include -O2 -pipe   -pedantic -std=c++17 -g -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-address -frelaxed-template-template-args -MD -MP -MF .normal.opt.d -c -o .normal.opt.o normal.cc
c++ -D'KAK_BIN_PATH="/usr/local/bin/kak"' -I/usr/local/include -O2 -pipe   -pedantic -std=c++17 -g -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-address -frelaxed-template-template-args -MD -MP -MF .option_manager.opt.d -c -o .option_manager.opt.o option_manager.cc
c++ -D'KAK_BIN_PATH="/usr/local/bin/kak"' -I/usr/local/include -O2 -pipe   -pedantic -std=c++17 -g -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-address -frelaxed-template-template-args -MD -MP -MF .option_types.opt.d -c -o .option_types.opt.o option_types.cc
c++ -D'KAK_BIN_PATH="/usr/local/bin/kak"' -I/usr/local/include -O2 -pipe   -pedantic -std=c++17 -g -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-address -frelaxed-template-template-args -MD -MP -MF .parameters_parser.opt.d -c -o .parameters_parser.opt.o parameters_parser.cc
c++ -D'KAK_BIN_PATH="/usr/local/bin/kak"' -I/usr/local/include -O2 -pipe   -pedantic -std=c++17 -g -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-address -frelaxed-template-template-args -MD -MP -MF .ranges.opt.d -c -o .ranges.opt.o ranges.cc
c++ -D'KAK_BIN_PATH="/usr/local/bin/kak"' -I/usr/local/include -O2 -pipe   -pedantic -std=c++17 -g -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-address -frelaxed-template-template-args -MD -MP -MF .ranked_match.opt.d -c -o .ranked_match.opt.o ranked_match.cc
c++ -D'KAK_BIN_PATH="/usr/local/bin/kak"' -I/usr/local/include -O2 -pipe   -pedantic -std=c++17 -g -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-address -frelaxed-template-template-args -MD -MP -MF .regex.opt.d -c -o .regex.opt.o regex.cc
c++ -D'KAK_BIN_PATH="/usr/local/bin/kak"' -I/usr/local/include -O2 -pipe   -pedantic -std=c++17 -g -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-address -frelaxed-template-template-args -MD -MP -MF .regex_impl.opt.d -c -o .regex_impl.opt.o regex_impl.cc
c++ -D'KAK_BIN_PATH="/usr/local/bin/kak"' -I/usr/local/include -O2 -pipe   -pedantic -std=c++17 -g -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-address -frelaxed-template-template-args -MD -MP -MF .register_manager.opt.d -c -o .register_manager.opt.o register_manager.cc
c++ -D'KAK_BIN_PATH="/usr/local/bin/kak"' -I/usr/local/include -O2 -pipe   -pedantic -std=c++17 -g -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-address -frelaxed-template-template-args -MD -MP -MF .remote.opt.d -c -o .remote.opt.o remote.cc
c++ -D'KAK_BIN_PATH="/usr/local/bin/kak"' -I/usr/local/include -O2 -pipe   -pedantic -std=c++17 -g -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-address -frelaxed-template-template-args -MD -MP -MF .scope.opt.d -c -o .scope.opt.o scope.cc
c++ -D'KAK_BIN_PATH="/usr/local/bin/kak"' -I/usr/local/include -O2 -pipe   -pedantic -std=c++17 -g -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-address -frelaxed-template-template-args -MD -MP -MF .selection.opt.d -c -o .selection.opt.o selection.cc
c++ -D'KAK_BIN_PATH="/usr/local/bin/kak"' -I/usr/local/include -O2 -pipe   -pedantic -std=c++17 -g -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-address -frelaxed-template-template-args -MD -MP -MF .selectors.opt.d -c -o .selectors.opt.o selectors.cc
c++ -D'KAK_BIN_PATH="/usr/local/bin/kak"' -I/usr/local/include -O2 -pipe   -pedantic -std=c++17 -g -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-address -frelaxed-template-template-args -MD -MP -MF .shared_string.opt.d -c -o .shared_string.opt.o shared_string.cc
c++ -D'KAK_BIN_PATH="/usr/local/bin/kak"' -I/usr/local/include -O2 -pipe   -pedantic -std=c++17 -g -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-address -frelaxed-template-template-args -MD -MP -MF .shell_manager.opt.d -c -o .shell_manager.opt.o shell_manager.cc
c++ -D'KAK_BIN_PATH="/usr/local/bin/kak"' -I/usr/local/include -O2 -pipe   -pedantic -std=c++17 -g -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-address -frelaxed-template-template-args -MD -MP -MF .string.opt.d -c -o .string.opt.o string.cc
c++ -D'KAK_BIN_PATH="/usr/local/bin/kak"' -I/usr/local/include -O2 -pipe   -pedantic -std=c++17 -g -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-address -frelaxed-template-template-args -MD -MP -MF .string_utils.opt.d -c -o .string_utils.opt.o string_utils.cc
c++ -D'KAK_BIN_PATH="/usr/local/bin/kak"' -I/usr/local/include -O2 -pipe   -pedantic -std=c++17 -g -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-address -frelaxed-template-template-args -MD -MP -MF .terminal_ui.opt.d -c -o .terminal_ui.opt.o terminal_ui.cc
c++ -D'KAK_BIN_PATH="/usr/local/bin/kak"' -I/usr/local/include -O2 -pipe   -pedantic -std=c++17 -g -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-address -frelaxed-template-template-args -MD -MP -MF .unit_tests.opt.d -c -o .unit_tests.opt.o unit_tests.cc
c++ -D'KAK_BIN_PATH="/usr/local/bin/kak"' -I/usr/local/include -O2 -pipe   -pedantic -std=c++17 -g -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-address -frelaxed-template-template-args -MD -MP -MF .window.opt.d -c -o .window.opt.o window.cc
c++ -D'KAK_BIN_PATH="/usr/local/bin/kak"' -I/usr/local/include -O2 -pipe   -pedantic -std=c++17 -g -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-address -frelaxed-template-template-args -MD -MP -MF .word_db.opt.d -c -o .word_db.opt.o word_db.cc
c++ -D'KAK_BIN_PATH="/usr/local/bin/kak"' -I/usr/local/include -O2 -pipe   -pedantic -std=c++17 -g -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-address -frelaxed-template-template-args -c -o .version.o .version.cc
c++ -L/usr/local/lib -O2 -pipe   -pedantic -std=c++17 -g -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-address -frelaxed-template-template-args .alias_registry.opt.o .assert.opt.o .backtrace.opt.o .buffer.opt.o .buffer_manager.opt.o .buffer_utils.opt.o .changes.opt.o .client.opt.o .client_manager.opt.o .color.opt.o .command_manager.opt.o .commands.opt.o .completion.opt.o .context.opt.o .display_buffer.opt.o .env_vars.opt.o .event_manager.opt.o .exception.opt.o .face_registry.opt.o .file.opt.o .hash.opt.o .hash_map.opt.o .highlighter.opt.o .highlighter_group.opt.o .highlighters.opt.o .hook_manager.opt.o .input_handler.opt.o .insert_completer.opt.o .json.opt.o .json_ui.opt.o .keymap_manager.opt.o .keys.opt.o .line_modification.opt.o .main.opt.o .memory.opt.o .normal.opt.o .option_manager.opt.o .option_types.opt.o .parameters_parser.opt.o .ranges.opt.o .ranked_match.opt.o .regex.opt.o .regex_impl.opt.o .register_manager.opt.o .remote.opt.o .scope.opt.o .selection.opt.o .selectors.opt.o .shared_string.opt.o .shell_manager.opt.o .string.opt.o .string_utils.opt.o .terminal_ui.opt.o .unit_tests.opt.o .window.opt.o .word_db.opt.o .version.o  -o kak.opt
ln -sf kak.opt kak
gmake[1]: Leaving directory '/usr/ports/pobj/kakoune-2021.10.28/kakoune-2021.10.28/src'
===>  Regression tests for kakoune-2021.10.28
gmake -C src Makefile
gmake[1]: Entering directory '/usr/ports/pobj/kakoune-2021.10.28/kakoune-2021.10.28/src'
gmake[1]: Nothing to be done for 'Makefile'.
gmake[1]: Leaving directory '/usr/ports/pobj/kakoune-2021.10.28/kakoune-2021.10.28/src'
gmake -C src test
gmake[1]: Entering directory '/usr/ports/pobj/kakoune-2021.10.28/kakoune-2021.10.28/src'
ln -sf kak.opt kak
cd ../test && ./run
  kak-tests.bEkNIlsN
    compose
      backward-search
      catch-error-desc
      complex-pipe
      del-empty-line
      discard-selections-with-itersel
      do-not-run-hooks-added-by-parent
      echo-to-file
      eof-multi-delete
      file-expansion
      history
      hook-named-captures
      inline-sort
      line-completion
      no-hook-on-unset-option-with-same-parent
      pipe-at-eof
      select-codepoints
      select-display-columns
--- /usr/ports/pobj/kakoune-2021.10.28/kakoune-2021.10.28/test/./compose/select-display-columns/kak_selections_char_desc    Thu Oct 28 00:13:34 2021
+++ kak_selections_char_desc    Tue Nov  2 18:23:08 2021
@@ -1 +1 @@
-1.2,1.4
+1.3,1.8
--- /usr/ports/pobj/kakoune-2021.10.28/kakoune-2021.10.28/test/./compose/select-display-columns/kak_selections_desc Thu Oct 28 00:13:34 2021
+++ kak_selections_desc Tue Nov  2 18:23:08 2021
@@ -1 +1 @@
-1.4,1.10
+1.7,1.22
--- /usr/ports/pobj/kakoune-2021.10.28/kakoune-2021.10.28/test/./compose/select-display-columns/kak_selections_display_column_desc  Thu Oct 28 00:13:34 2021
+++ kak_selections_display_column_desc  Tue Nov  2 18:23:08 2021
@@ -1 +1 @@
-1.3,1.7
+1.3,1.8

debug buffer:
*** This is the debug buffer, where debug info will be written ***

      select-timestamp
      selections_char_desc-expansion
      undo-multi-replace-at-end
      unicode
--- /usr/ports/pobj/kakoune-2021.10.28/kakoune-2021.10.28/test/./compose/unicode/out    Thu Oct 28 00:13:34 2021
+++ out Tue Nov  2 18:23:08 2021
@@ -1 +1 @@
-MAÏS MÉLANGE BIENTÔT
+MAïS MéLANGE BIENTôT

debug buffer:
*** This is the debug buffer, where debug info will be written ***

    display
      horizontal-scroll
      horizontal-scroll-onto-tab
      horizontal-scroll-with-tab
      vertical-scroll
    highlight
      column
        multi-columns
      face-override
      named-captures
      ranges
      regions
      regions-recurse
      replace-empty-range
      replace-multiline-range
      replace-multiline-range-pulls-new-lines
      replace-only-fully-selected-ranges
      rust
        comment0
        doc_comment_hidden
        doc_comment_hidden_with_empty_line
        inner_block_comment1
        inner_block_doc_comment1
        inner_line_doc_comment1
        let
        line_comment1
        outer_block_doc_comment0
        pub
        todo
        value
          - { "jsonrpc": "2.0", "method": "draw", "params": [[[{ "face": { "fg": "black", "bg": "white", "underline": "default", "attributes": ["final_fg","final_bg"] }, "contents": "b" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": "'\\' " }, { "face": { "fg": "yellow", "bg": "default", "underline": "default", "attributes": [] }, "contents": "b'\\x00'" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": " " }, { "face": { "fg": "yellow", "bg": "default", "underline": "default", "attributes": [] }, "contents": "b'0'" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": " " }, { "face": { "fg": "yellow", "bg": "default", "underline": "default", "attributes": [] }, "contents": "b'a'" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": " " }, { "face": { "fg": "yellow", "bg": "default", "underline": "default", "attributes": [] }, "contents": "b' '" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": " " }, { "face": { "fg": "yellow", "bg": "default", "underline": "default", "attributes": [] }, "contents": "b'!'" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": " " }, { "face": { "fg": "yellow", "bg": "default", "underline": "default", "attributes": [] }, "contents": "b'\\n'" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": " b" }, { "face": { "fg": "green", "bg": "default", "underline": "default", "attributes": [] }, "contents": "'一'" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": " b" }, { "face": { "fg": "green", "bg": "default", "underline": "default", "attributes": [] }, "contents": "'\\u{12}'" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": "\u000a" }], [{ "face": { "fg": "green", "bg": "default", "underline": "default", "attributes": [] }, "contents": "'\\x00'" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": " " }, { "face": { "fg": "green", "bg": "default", "underline": "default", "attributes": [] }, "contents": "'0'" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": " " }, { "face": { "fg": "green", "bg": "default", "underline": "default", "attributes": [] }, "contents": "'a'" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": " " }, { "face": { "fg": "green", "bg": "default", "underline": "default", "attributes": [] }, "contents": "' '" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": " " }, { "face": { "fg": "green", "bg": "default", "underline": "default", "attributes": [] }, "contents": "'!'" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": " " }, { "face": { "fg": "green", "bg": "default", "underline": "default", "attributes": [] }, "contents": "'\\n'" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": " " }, { "face": { "fg": "green", "bg": "default", "underline": "default", "attributes": [] }, "contents": "'\\u{12}'" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": " " }, { "face": { "fg": "green", "bg": "default", "underline": "default", "attributes": [] }, "contents": "'一'" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": "\u000a" }]], { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, { "fg": "blue", "bg": "default", "underline": "default", "attributes": [] }] }
          + { "jsonrpc": "2.0", "method": "draw", "params": [[[{ "face": { "fg": "black", "bg": "white", "underline": "default", "attributes": ["final_fg","final_bg"] }, "contents": "b" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": "'\\' " }, { "face": { "fg": "yellow", "bg": "default", "underline": "default", "attributes": [] }, "contents": "b'\\x00'" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": " " }, { "face": { "fg": "yellow", "bg": "default", "underline": "default", "attributes": [] }, "contents": "b'0'" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": " " }, { "face": { "fg": "yellow", "bg": "default", "underline": "default", "attributes": [] }, "contents": "b'a'" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": " " }, { "face": { "fg": "yellow", "bg": "default", "underline": "default", "attributes": [] }, "contents": "b' '" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": " " }, { "face": { "fg": "yellow", "bg": "default", "underline": "default", "attributes": [] }, "contents": "b'!'" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": " " }, { "face": { "fg": "yellow", "bg": "default", "underline": "default", "attributes": [] }, "contents": "b'\\n'" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": " b" }, { "face": { "fg": "green", "bg": "default", "underline": "default", "attributes": [] }, "contents": "'" }, { "face": { "fg": "black", "bg": "red", "underline": "default", "attributes": [] }, "contents": "�" }, { "face": { "fg": "green", "bg": "default", "underline": "default", "attributes": [] }, "contents": "'" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": " b" }, { "face": { "fg": "green", "bg": "default", "underline": "default", "attributes": [] }, "contents": "'\\u{12}'" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": "\u000a" }], [{ "face": { "fg": "green", "bg": "default", "underline": "default", "attributes": [] }, "contents": "'\\x00'" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": " " }, { "face": { "fg": "green", "bg": "default", "underline": "default", "attributes": [] }, "contents": "'0'" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": " " }, { "face": { "fg": "green", "bg": "default", "underline": "default", "attributes": [] }, "contents": "'a'" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": " " }, { "face": { "fg": "green", "bg": "default", "underline": "default", "attributes": [] }, "contents": "' '" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": " " }, { "face": { "fg": "green", "bg": "default", "underline": "default", "attributes": [] }, "contents": "'!'" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": " " }, { "face": { "fg": "green", "bg": "default", "underline": "default", "attributes": [] }, "contents": "'\\n'" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": " " }, { "face": { "fg": "green", "bg": "default", "underline": "default", "attributes": [] }, "contents": "'\\u{12}'" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": " " }, { "face": { "fg": "green", "bg": "default", "underline": "default", "attributes": [] }, "contents": "'" }, { "face": { "fg": "black", "bg": "red", "underline": "default", "attributes": [] }, "contents": "�" }, { "face": { "fg": "green", "bg": "default", "underline": "default", "attributes": [] }, "contents": "'" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": "\u000a" }]], { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, { "fg": "blue", "bg": "default", "underline": "default", "attributes": [] }] }

debug buffer:
*** This is the debug buffer, where debug info will be written ***

      wrap
        avoid-odd-places
    hooks
      once
      remove-regex
    indent
      c-family
        align-while-expr
        close-function-with-struct-param
        close-namespace
        close-struct
        comment-line-continuation
        construct-align
        deindent-function-closing-brace
        deindent-generic-closing-brace
        deindent-if-body
        deindent-if-closing-brace
        indent-after-parenthesis
        indent-else-brace
        indent-if-body
        indent-if-brace
        move-brace
        multiline-nested-align
        nested-align
        open-function
        paren-in-literal
        preserve-tabs
      clojure
        doubled-brackets
      comment
        comment-multiple-lines-indented
        comment-multiple-lines-unindented
        comment-multiple-lines-when-partially-commented
        uncomment-multiple-indented-lines
      elixir
        do-keyword
        following-blocks-should-not-prevent-end
        function-definition-shouldnt-duplicate
        insert-comment-hash
      go
        deindent-function-closing-brace
        deindent-generic-closing-brace
        deindent-if-closing-brace
      haskell
        before-comment
        indented-comment
        inside-comment
      html
        indent-closing-tag
        indent-on-new-line
      javascript
        deindent-complex-brace-structure
      lisp
        doubled-brackets
      lua
        insert-end-only-when-needed
        unindent-after-end
      markdown
        inside-complex-blockquote
        inside-list-item
        inside-nested-list-item
        inside-simple-blockquote
        inside-strong-emphasis
        list-item
        open-after-setext-heading-1
        open-after-setext-heading-2
      ruby
        deindent-on-if-else-end
        do-keyword
        following-blocks-should-not-prevent-end
        indent-after-class
        insert-comment-hash
        method-definition-shouldnt-duplicate
      rust
        after-open
        after-open-with-chars
        after-variable
        after-where
        align-closing-brace
        align-closing-brack
        align-closing-paren
        before-where
        block-comment
        block-comment-close
        dedent
        dedent-async
        dedent-function-closing-brace
        dedent-generic-closing-brace
        dedent-if-closing-brace
        empty-line
        empty-match
        line-comment
        line-comment-close
        line-start-with-operator
        on-open-paren
      sh
        deindent-after-done
        deindent-after-esac
        deindent-after-fi
        deindent-case-option
        deindent-compound-command
        deindent-one-line-case-option
        deindent-only-else
        indent-after-do
        indent-after-in
        indent-after-then
        indent-block-case
        indent-compound-command
        no-deindent-after-else
        no-deindent-after-fi
    normal
      align
      align-tab
      all
      append
      append-at-eol
      change
      clear-selections
      codepoint-width
        tab-width
        vertical-movement
--- /usr/ports/pobj/kakoune-2021.10.28/kakoune-2021.10.28/test/./normal/codepoint-width/vertical-movement/kak_quoted_selections Thu Oct 28 00:13:34 2021
+++ kak_quoted_selections   Tue Nov  2 18:23:23 2021
@@ -1 +1 @@
-'3' '7'
+'2' '4'

debug buffer:
*** This is the debug buffer, where debug info will be written ***

      concat-paste-line
      convert-spaces-to-tabs
      convert-tabs-to-spaces
      copy-sel-above
      copy-sel-below
      copy-sel-below-multi-line
      deindent
      delete
      extend-lines
      extra-word-chars
      facedesc-invalid-syntax
        attributes
        bg-color
      find-char-backward
      find-char-backward-extending
      find-char-forward
      find-char-forward-extending
      goto
      goto-extending
        buffer-bottom
        buffer-end
        buffer-top
        last-change
        line-begin
        line-end
        buffer-bottom
        buffer-end
        buffer-top
        file
        last-buffer
        last-change
        line-begin
        line-end
      indent
      insert
      insert-at-line-start
      insert-replace
      jump
        backward
        backward-count
        backward-invalid-count
        forward
        forward-count
        forward-invalid-count
      keep-cmd
--- /usr/ports/pobj/kakoune-2021.10.28/kakoune-2021.10.28/test/./normal/keep-cmd/kak_quoted_selections  Thu Oct 28 00:13:34 2021
+++ kak_quoted_selections   Tue Nov  2 18:23:26 2021
@@ -1 +1 @@
-'foo' 'bar'
+'foo' 'rha' 'bar'

debug buffer:
*** This is the debug buffer, where debug info will be written ***

      keep-cmd-reg
--- /usr/ports/pobj/kakoune-2021.10.28/kakoune-2021.10.28/test/./normal/keep-cmd-reg/kak_quoted_selections  Thu Oct 28 00:13:34 2021
+++ kak_quoted_selections   Tue Nov  2 18:23:26 2021
@@ -1 +1 @@
-'foo' 'bar'
+'foo' 'rha' 'bar'

debug buffer:
*** This is the debug buffer, where debug info will be written ***

      lower-case
      match-char
      move
        down
        down-extending
        left
        left-extending
        right
        right-extending
        up
        up-extending
      next-big-word
      next-big-word-extending
      next-match
      next-match-appending
      next-word
      next-word-extending
      object
        around
        around-parent
          angle
          braces
          brackets
          parenthesis
          angle
          argument
            multi-level
            single-level
          big-word
          braces
          brackets
          double_quote
          grave_quote
          indent
          paragraph
          parenthesis
          sentence
          single_quote
          slash
          word
        drop-non-whitespace
        end
        end-extending
        end-extending-parent
          braces
          angle
          argument
          big-word
          braces
          brackets
          double_quote
          grave_quote
          indent
          paragraph
            count
            single
          parenthesis
          sentence
            count
            single
          single_quote
          word
          angle
          argument
          big-word
          braces
          brackets
          double_quote
          grave_quote
          indent
          paragraph
            count
            single
            to-buffer-end
          parenthesis
          sentence
            count
            single
            to-buffer-end
          single_quote
          word
        inner
          angle
          argument
            multi-level
            single-level
          big-word
          braces
          brackets
          double_quote
          grave_quote
          indent
          paragraph
          parenthesis
          sentence
          single_quote
          slash
          word
        on-end
          around
            angle
            braces
            brackets
            parenthesis
          inner
            angle
            braces
            brackets
            parenthesis
          to-end
            angle
            braces
            brackets
            parenthesis
        on-start
          around
            angle
            braces
            brackets
            double_quote
            grave_quote
            parenthesis
            single_quote
            slash
          inner
            angle
            braces
            brackets
            double_quote
            grave_quote
            parenthesis
            single_quote
          to-start
            angle
            braces
            brackets
            parenthesis
        start
        start-extending
          angle
          argument
          big-word
          braces
          brackets
          double_quote
          grave_quote
          indent
          paragraph
            count
            single
          parenthesis
          sentence
            count
            single
          single_quote
          word
          angle
          argument
          big-word
          braces
          brackets
          double_quote
          grave_quote
          indent
          paragraph
            count
            single
          parenthesis
          sentence
            count
            single
            to-buffer-begin
          single_quote
          word
      open-above
      open-below
      open-multiple-above
      open-multiple-below
      paste-after
      paste-all-after
      paste-all-before
      paste-all-replace
      paste-before
      pipe
      pipe-reg
      pipe-to
      pipe-to-reg
      previous-big-word
      previous-big-word-extending
      previous-word
      previous-word-extending
      previous-word-no-underscore
      record-macro
      redo
      reload
      repeat-insert
      repeat-select
        repeat-end-paragraph
        repeat-find-char
      replace
      replace-lines
      replay-complex-insert
      replay-macro
      restore-selections
      rotate
      rotate-content
      save-selections
      search
      search-extending
      search-reverse
      search-reverse-extending
      search-reverse-rightmost
        missed-match
        overlap
      select
      select-horizontal-whitespace
      select-line
      select-line-extending
      split
      split-at-begin
      split-multiple-lines
      switch-case
      to-char-backward
      to-char-backward-extending
      to-char-forward
      to-char-forward-extending
      trim
      trim-drop-empty
      trim-lines
        table
      undo
      undo-after-replace-lines
      upper-case
      user-modes
        lock
        once
      yank
    regression
      0-assert-on-itersel
      0-comment-after-command
      0-compute-modified-range-crash
      0-crash-on-BufSetOption-hook
      0-crash-on-backspace-at-buffer-begin
      0-crash-on-delete-buffer-BufClose
      0-crash-on-pipe-with-selection-access
      0-crash-on-specialy-crafted-modeline
      0-deindent-on-mixed-indent-line
      0-nothing-selected-on-prompt-initial-shift-tab
      0-open-below-should-not-move-cursor-on-eol
      0-replace-last-eol-with-eol
      0-rotate-at-eof-mutates-selection
      0-select-object-with-empty-begin-match
      0-spurious-undo-group-on-external
      0-undo-change-at-eof
      1014-ambiguous-kak_selections
      1051-crash-on-empty-param
      1053-crash-on-deletion-and-paste
      1074-comment-leader-autoinsert-error
      1105-object-selection-behaviour
      1111-unexpected-behaviour-on-new-line-in-comment
      1118-misaligned-comment-start
      1129-capture-groups-are-broken
      1195-infinite-loop-in-regex-matching
      1227-segfault-on-option-access
      1233-corrent-cursor-handling-for-indent-objects
      1275-replaced-range-split
      1308-wrong-behaviour-of-kak-indent-on-newline
      1382-column-highlighter-broken-on-horizontal-scroll
      1433-scrolloff-broken-with-soft-wrap
      1435-misplaced-cursor-with-show_matching-hl
      1453-show_whitespaces-highlighter-breaks-tab-alignment
      1459-assertion-on-wrapped-long-line
      1469-assert-on-repeat-insert
      1504-assertion-on-incorrect-pipe-use
      1518-wrong-undo-handling-with-fifo-buffers
      1525-lua-indent-error
      1580-A-not-moving-to-eol
      1680-crash-with-dot-and-alt-semicolon
      1731-wrap-hidden-buffer
      1741-scrolloff-hides-end-of-lines
      1829-unicode-as-string-delimiter
      1902-regex-lookbehind-ignore-before-current-pos
      1904-select-empty-line-indent-gets-whole-buffer
      1920-crash-on-python-in-docstring
      1937-opening-missing-file-by-full-path-fails
      1964-O-does-not-position-cursor-correctly
      2030-custom-selection-nesting
      2056-assert-on-small-window
      2078-assert-on-restoring-invalid-selections
      2129-inside-parentheses
      2133-assert-on-rotate-contents
      2245-wrap-long-word
      2367-surround-with-tight-nesting
      2420-discrepancy-in-star-behaviour
      2499-html-regions-assert
      2562-column-highlighter-bleeding
      2711-weird-regex-highlighter-behaviour
      2737-segfault-on-WinDisplay-hook
      2755-segfault-on-double-wrap-highlighters
      2861-backspace-merges-selections
      2999-buggy-wrapping
      3010-extra_word_chars-fails-with-other-buffers
      3025-last-buffer-does-not-work-in-draft-context
      3041-invalid-regex-highlight-accross-regions
      3048-word-wrapping-broken
      3219-scroll-json-ui
      3270-crash-in-autocomplete
      3275-crash-on-replace-at-buffer-start
      3349-crash-in-completion
      3388-command-line-parsing-does-not-preserve-invalid-utf8
      3398-readonly-fifo-failure
        - { "jsonrpc": "2.0", "method": "draw_status", "params": [[], [{ "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": "out 1:1 " }, { "face": { "fg": "black", "bg": "yellow", "underline": "default", "attributes": [] }, "contents": "[scratch][fifo][readonly]" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": " " }, { "face": { "fg": "blue", "bg": "default", "underline": "default", "attributes": [] }, "contents": "1 sel" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": " - client0@[kak-tests]" }], { "fg": "cyan", "bg": "default", "underline": "default", "attributes": [] }] }
        + { "jsonrpc": "2.0", "method": "draw_status", "params": [[{ "face": { "fg": "black", "bg": "yellow", "underline": "default", "attributes": [] }, "contents": "waiting for shell command to finish (shell terminated) (1s)" }], [{ "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": "out 1:1 " }, { "face": { "fg": "black", "bg": "yellow", "underline": "default", "attributes": [] }, "contents": "" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": " " }, { "face": { "fg": "blue", "bg": "default", "underline": "default", "attributes": [] }, "contents": "1 sel" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": " - client0@[kak-tests]" }], { "fg": "cyan", "bg": "default", "underline": "default", "attributes": [] }] }
        - { "jsonrpc": "2.0", "method": "draw", "params": [[[{ "face": { "fg": "black", "bg": "white", "underline": "default", "attributes": [] }, "contents": "b" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": "lah\u000a" }]], { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, { "fg": "blue", "bg": "default", "underline": "default", "attributes": [] }] }
        + { "jsonrpc": "2.0", "method": "draw_status", "params": [[{ "face": { "fg": "black", "bg": "yellow", "underline": "default", "attributes": [] }, "contents": "waiting for shell command to finish (shell terminated) (2s)" }], [{ "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": "out 1:1 " }, { "face": { "fg": "black", "bg": "yellow", "underline": "default", "attributes": [] }, "contents": "" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": " " }, { "face": { "fg": "blue", "bg": "default", "underline": "default", "attributes": [] }, "contents": "1 sel" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": " - client0@[kak-tests]" }], { "fg": "cyan", "bg": "default", "underline": "default", "attributes": [] }] }
mawww commented 2 years ago

For the compose/unicode test, we can see that we get this issue:

-MAÏS MÉLANGE BIENTÔT
+MAïS MéLANGE BIENTôT

Kakoune relies on the towupper function provided by libc to convert, here it seems like towupper('é') returned é instead of É. This likely indicates some issues on the host side. Kakoune calls setlocale(LC_ALL, ""); on startup to ensure the current environment selected locale gets applied.

Can you try

$ echo "héhé" | sed 's/./\U&/g'
HÉHÉ

And see if that works on your side ?

fredg0 commented 2 years ago

You are right 👍

:~ > echo "héhé" | sed 's/./\U&/g'
UhU�U�UhU�U�
mawww commented 2 years ago

Hum, here it looks like a different issue, namely that your version of sed worked on bytes instead of unicode codepoint (and does not know about \U. using GNU sed (I think its usually called gsed on BSD) might get us further.

fredg0 commented 2 years ago

Here we go

:~ > LC_ALL=C echo "héhé" | gsed 's/./\U&/g' 
HÉHÉ
mawww commented 2 years ago

That looks even weirder then, as gsed does the correct thing. If you run the built kakoune, insert "héhé", select it and use ~ to convert to upper case, what do you get ?

If its still HéHé that would indicate gsed bypasses the system libc towupper (maybe it relies on a port of glibc instead of the system one ? Or goes through iconv ?).

Overall, I remain unsure about what is going on, but it sounds very likely it has something to do with the locale setup and libc, not directly with Kakoune's code.

fredg0 commented 2 years ago

Indeed, I have checked with a dev. OpenBSD sed doesn't support unicode and utf-8. So, for OpenBSD, can you make your test use gsed instead ?

++

mawww commented 2 years ago

Oh, I think we misunderstood each other. The test does not rely on sed or gsed, Kakoune has its own primitive for case conversion.

I tried (and failed) to demonstrate that this issue was coming from the locale/libc interaction, not from Kakoune itself. I used sed as an exemple of something that would likely go through the same code to convert case, but in the end the base sed did not support unicode, and gsed does not reproduce the issue.

Although I did not manage to prove it with sed, I still think the most likely explanation for this is around your locale configuration, Kakoune just relies on your system libc to convert codepoint to upper/lower case, the only way to influence libc upper/lower case conversion behaviour is through the locale, which Kakoune does not control either (besides doing the necessary incantation to enable it).

In order to investigate this further I need to get access to an OpenBSD box and see if I can reproduce, I might get to do that at some point.

fredg0 commented 2 years ago

Yes, I see.

Thank you for all that you do.

Best regards.

sidkshatriya commented 2 years ago

@fredg0 See PR #4473 for workarounds and fixes.

cc: @mawww

sidkshatriya commented 2 years ago

This ticket can be closed now I believe as PR #4473 was merged

fredg0 commented 2 years ago

Thank you very much @sidkshatriya !! I will test ASAP

sidkshatriya commented 2 years ago

Please make sure you have something like the following in your shell or environment before running the test suite.

# Customize this for your own country/language
$ export LC_ALL=en_US.UTF-8

You can use the default sh of OpenBSD and it should pass all the kakoune tests now.

If you encounter any issues, try doing

$ export KAKOUNE_POSIX_SHELL=/usr/local/bin/bash

and see if it makes any difference!

dontlaugh commented 3 months ago

Is this fixed? Build has been recently changed to POSIX make

dontlaugh commented 2 months ago

All tests pass for me

export LC_ALL=en_US.UTF-8
export KAKOUNE_POSIX_SHELL=/usr/local/bin/bash
make test

These results are from Kakoune's latest master branch at commit c93cb5c4d8f1c2aec21f8bdeba59dfb8f153499c and OpenBSD 7.5 GENERIC.MP#138 arm64

mawww commented 2 months ago

Thanks for testing and reporting back.