Commits

trunk
Switch branches/tags
All users
Until Apr 3, 2026
April 2026
Su Mo Tu We Th Fr Sa
29 30 31 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 1 2
3 4 5 6 7 8 9

Commits on April 3, 2026

  1. add set -o fuzzy-complete for opt-in fuzzy tab completion
    Tab completion now uses prefix-only matching by default (like bash/zsh).
    Fuzzy subsequence matching (where 'fort' matches 'install_intel_fortran')
    is available via: set -o fuzzy-complete
    
    Short patterns (≤3 chars) always require prefix match regardless of
    the setting, to prevent noise like 'ls' matching 'false'.
    espadonne committed
  2. allow Ctrl+L to clear screen on empty prompt
    Ctrl+L was gated on buffer length > 0 as a workaround for a phantom
    form-feed from Fortran I/O flush. The root cause was fixed by explicit
    flush(output_unit) after command execution, so the guard is no longer
    needed. Now Ctrl+L works like bash/fish on empty prompts.
    espadonne committed
  3. add Ctrl+P/Ctrl+N emacs keybindings for history navigation
    Ctrl+P (previous-history) and Ctrl+N (next-history) are standard emacs
    readline bindings that were missing. Only arrow keys worked for history
    navigation. Fixes history tests 5-8 on all platforms.
    espadonne committed
  4. fix USE_C_STRINGS vs USE_MEMORY_POOL preprocessor precedence in readline
    On macOS ARM64 both flags are defined. Accessor functions for search
    strings, vi command buffer, menu prefix, and original buffer checked
    USE_MEMORY_POOL first, dereferencing uninitialized pool refs → SIGSEGV
    in Ctrl+R search, vi-mode commands, tab completion, and undo.
    
    Fix 29 accessor guards (not init/cleanup) to avoid flang-new codegen
    butterfly effect. Also sync editing_mode from global on each readline
    call so set -o vi / set -o emacs takes effect immediately.
    espadonne committed
  5. harden macOS interactive test runner for flang-new I/O timing
    Three changes to fix 135 of 158 macOS PTY test failures:
    
    1. tests_per_session=1 on macOS: fresh PTY per test eliminates cursor
       tracking corruption from readline state leaking across sessions.
    
    2. Marker-based sync for send_line→send_line steps: echo a unique
       marker after setup commands, wait for it. Replaces unreliable 50ms
       fixed delay and avoids greedy '> ' prompt matching.
    
    3. wait_for_prompt for send_line→interactive steps: ensures quick
       commands (set -o vi) complete before key sequences arrive. Skipped
       for long-running commands (sleep) where next step is 'wait'.
    
    Linux unchanged (50ms delay, tests_per_session=10).
    espadonne committed
  6. fix USE_C_STRINGS vs USE_MEMORY_POOL preprocessor precedence in readline
    On macOS ARM64 both flags are defined. Accessor functions for search
    strings, vi command buffer, menu prefix, and original buffer checked
    USE_MEMORY_POOL first, dereferencing uninitialized pool refs → SIGSEGV
    in Ctrl+R search, vi-mode commands, tab completion, and undo.
    
    Fix accessor guards only (not init/cleanup) to avoid flang-new codegen
    butterfly effect that silently breaks echo output when init blocks are
    restructured.
    
    Also sync editing_mode from global_editing_mode on each readline call
    so set -o vi / set -o emacs takes effect immediately.
    espadonne committed

Commits on April 1, 2026

  1. espadonne committed

Commits on March 29, 2026

Commits on March 28, 2026

  1. remove debug logging, fix interactive continuation prompt — CR+LF in raw mode, keep_raw across continuation calls, null-byte-aware visual_length
    Root cause: in raw mode, bare LF moves cursor down without returning to
    column 0. Multi-line prompts and Enter key sent bare LF, causing cursor
    to drift right. Fix: replace all LF with CR+LF in prompt printing, Enter
    handler, and redraw code. Also keep raw mode across continuation calls.
    espadonne committed