Skip to content
  • Jeff King's avatar
    do not run pager with diff --no-index --quiet · af63b543
    Jeff King authored and Junio C Hamano's avatar Junio C Hamano committed
    
    
    There is no point in running a pager when --quiet is given,
    since we are producing no output. The regular diff code path
    handles this already, because --quiet implies --exit-code,
    and we check for --exit-code when deciding not to run the
    pager.
    
    However, the "quiet implies exit-code" logic is done in
    diff_setup_done, and the no-index code path sets up its
    pager before running diff_setup_done, and misses this case.
    
    We can fix this by reordering our initialization.
    Currently we do:
    
      1. read command line arguments into diff_options
    
      2. Set pager if EXIT_CODE not requested
    
      3. always set EXIT_CODE, since we are emulating
         traditional diff
    
      4. call diff_setup_done
    
    We can fix the problem by moving pager initialization (step
    2) after step 4. But step 3 must come after step 2 (since we
    want to know whether the _user_ requested --exit-code, not
    whether we turned it on unconditionally). So we must move
    both.
    
    Signed-off-by: default avatarJeff King <peff@peff.net>
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
    af63b543