This seems to be fixed with newer version of libxdiff (which is used by xdiff extension).
According to library changelog:
--------------------------------------
* Sun, Mar 26 2006 - Davide Libenzi
Fixed the missing end of line problem for text diff and patch.
--------------------------------------
xdiff İşlevleri
İçindekiler
- xdiff_file_bdiff_size — Belirtilen ikil yama uygulanarak oluşturulacak dosyanın boyutunu döndürür
- xdiff_file_bdiff — İki dosyanın ikil farkını alır
- xdiff_file_bpatch — Bir dosyaya bir ikil yama uygular
- xdiff_file_diff_binary — xdiff_file_bdiff işlevinin takma adıdır
- xdiff_file_diff — İki dosyanın tekil farkını alır
- xdiff_file_merge3 — Üç dosyayı tek dosya haline getirir
- xdiff_file_patch_binary — xdiff_file_bpatch işlevinin takma adıdır
- xdiff_file_patch — Bir dosyaya bir tekil yama uygular
- xdiff_file_rabdiff — Rabin'in çok terimli parmakizi algoritmasını kullanarak iki dizgenin ikil olarak farkını alır
- xdiff_string_bdiff_size — Belirtilen ikil yama uygulanarak oluşturulacak dosyanın boyutunu döndürür
- xdiff_string_bdiff — İki dizgenin ikil farkını alır
- xdiff_string_bpatch — Bir dizgeyi bir ikil fark dizgesiyle yamar
- xdiff_string_diff_binary — xdiff_string_bdiff işlevinin takma adıdır
- xdiff_string_diff — İki dizgenin tekil farkını alır
- xdiff_string_merge3 — Üç dizgeyi tek bir dizge haline getirir
- xdiff_string_patch_binary — xdiff_string_bpatch işlevinin takma ismidir
- xdiff_string_patch — Bir dizgeyi bir tekil fark dizgesi ile yamar
- xdiff_string_rabdiff — Rabin'in çok terimli parmakizi algoritmasını kullanarak iki dizgenin ikil olarak farkını alır
mg
01-Jul-2008 06:00
amir.laher
05-Apr-2005 11:09
the xdiff functions require your initial string to end with a \n character.
When you use xdiff_string_diff, the initial string must either be zero-length or end with \n
eg. $patch= xdiff_string_diff($string,$string2);
if not, the patch will return an empty string.
xdiff_string_patch($string,$patch);
This will not normally affect xdiff_file_diff, but it's annoying nevertheless. To prevent this unexpected effect, I append a \n to the string before applying the initial diff, as follows.
if (!ereg("\n$",$string)) $string.="\n";
