[JM:02802] Re: [POST:DP] GNU diffutils 3.8 diff.1

Back to archive index
IIJIMA Hiromitsu delmo****@denno*****
2021年 8月 4日 (水) 23:27:04 JST


いいじまです。

> 話がわからなくなりました。
> 結局のところ、 "copied context" をどう訳したら良いとお考えですか?

原文にはこうありますね。
> -c, -C NUM, --context[=NUM]
>     output NUM (default 3) lines of copied context
> -u, -U NUM, --unified[=NUM]
>     output NUM (default 3) lines of unified context

で、実験してみました。

$ foreach n ( 1 2 3 4 5 6 7 8 9 10 11 12 13 )
?    echo $n >> a
? end

$ foreach n ( 1 2 3 4 5 x 7 8 9 10 11 12 13 )
?    echo $n >> b
? end

$ diff -C 4 a b
*** a   2021-08-04 23:18:54.991799739 +0900
--- b   2021-08-04 23:19:27.235571884 +0900
***************
*** 2,10 ****
  2
  3
  4
  5
! 6
  7
  8
  9
  10
--- 2,10 ----
  2
  3
  4
  5
! x
  7
  8
  9
  10

$ diff -U 4 a b
--- a   2021-08-04 23:18:54.991799739 +0900
+++ b   2021-08-04 23:19:27.235571884 +0900
@@ -2,9 +2,9 @@
 2
 3
 4
 5
-6
+x
 7
 8
 9
 10

ということで、copied context、unified contextの「context」とは「差異の前後にある共通部分」のことです。

そして、context diff(-C NUM)の場合は共通部分が「ファイルaとファイルbについてそれぞれ1回、都合2回」出力されます。一方で、unified diff(-U NUM)の場合は、共通部分は1回だけです。

なので結局、2回出力されることをcopyと称しているのだと思います。たぶんソースコードにも、共通部分を2つのバッファにコピーする処理があると思われます。

-- 
飯嶋 浩光/でるもんた・いいじま @ PC 
IIJIMA Hiromitsu, aka Delmonta
Email <delmo****@denno*****>



linuxjm-discuss メーリングリストの案内
Back to archive index