Skip to content
  • Kyle Lippincott's avatar
    filemerge: make last line of prompts <40 english chars (issue6158) · 4764e8436b2a
    Kyle Lippincott authored
    I've chosen <40 as the target so that other languages that may have a 2x blowup
    in character count can still have a chance to fit into an 80 column screen.
    
    Previously, we would show a prompt like:
    
    ```
    keep (l)ocal [dest], take (o)ther [source], or leave (u)nresolved for some/potentially/really/long/path?
    ```
    
    On at least some systems, if readline was in use then the last line of the
    prompt would be wrapped strangely if it couldn't fit entirely on one line. This
    strange wrapping may be just a carriage return without a line feed, overwriting
    the beginning of the line; example (100 columns wide, 65 character filename, and
    yes there's 10 spaces on the end, I assume this is to handle the user inputting
    longest word we provide as an option, "unresolved"):
    
    ```
    ng/dir/name/that/does/not/work/well/with/readline/file.txt? ave (u)nresolved for some/lon
    ```
    
    In some cases it may partially wrap onto the next line, but still be missing
    earlier parts in the line, such as below (60 columns wide, 65 character
    filename):
    
    ```
     rev], or leave (u)nresolved for some/long/dir/name/that/do
    s/not/work/well/with/readline/file.txt?
    ```
    
    With this fix, this looks like this on a 60 column screen:
    
    ```
    tool vim_with_markers (for pattern some/long/dir/name/that/d
    oes/not/work/well/with/readline/file.txt) can't handle binar
    y
    tool meld can't handle binary
    tool vim_with_markers can't handle binary
    tool internal:merge3 can't handle binary
    tool merge can't handle binary
    no tool found to merge some/long/dir/name/that/does/not/work
    /well/with/readline/file.txt
    file 'some/long/dir/name/that/does/not/work/well/with/readli
    ne/file.txt' needs to be resolved.
    You can keep (l)ocal [working copy], take (o)ther [merge rev
    ], or leave (u)nresolved.
    What do you want to do?
    ```
    
    Differential Revision: https://phab.mercurial-scm.org/D6562
    4764e8436b2a