diff -Wの関数名長制限をなくす

diffには差分文脈の関数を表示する機能があり、-W (--show-function-line)で関数とするパターンをカスタマイズできる。ただ関数名の長さに40字の制限があって長いと途中で途切れてしまう。
unix diff --show-function-line truncates outputfunction is truncated to 40 charactersによると文字数はハードコードされているらしい。入れているMSYSですんなりコンパイルできるか不明なのでバイナリをいじってみた。
ソースに当たるまでもなく、上記情報によると、print_context_functionでputc(' ', out);した後のfor (j = i; j < i + 40 && function[j] != '\n'; j++)が問題の箇所。関数冒頭でputc(' '...しているところを探す。

PUSH EBP
PUSH EDI
MOV EBP,EDX
PUSH ESI
PUSH EBX
MOV EDI,EAX
XOR ESI,ESI
SUB ESP,1C
MOV DWORD PTR SS:[LOCAL.9],EAX
MOV DWORD PTR SS:[LOCAL.10],20
CALL <JMP.&msys-2_0.putc_unlocked>       ; Jump to msys-2_0._putc_unlocked
MOV EDX,EBP
 MOVZX ECX,BYTE PTR DS:[EDX]
 MOV EAX,EDX
 LEA EBX,[ECX-9]
 CMP BL,4
 JBE SHORT _00402B00
 CMP CL,20
 JE SHORT _00402B00
 LEA EDX,[ESI+27]              ; 8D56 27
 MOV ECX,ESI                   ; 89F1
  ADD ECX,1                    ; 83C1 01
  CMP ECX,EDX                  ; 39D1
  JG SHORT _00402AB4           ; 7F 07
  CMP BYTE PTR SS:[ECX+EBP],0A ; 807C0D 00 0A
  JNE SHORT _00402AA6          ; 75 F2
 CMP ESI,ECX

あった。条件分岐JG SHORT _00402AB4NOPにする(1EABの7F 07を90 90とする)と、長さ制限が消えた。