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.
--------------------------------------
Funciones de xdiff
Tabla de contenidos
- xdiff_file_bdiff_size — Lee el tamaño de un archivo creado tras aplicar una diferencia binaria
- xdiff_file_bdiff — Realiza una diferencia binaria de dos archivos
- xdiff_file_bpatch — Parchea un archivo con una diferencia binaria
- xdiff_file_diff_binary — Alias de xdiff_file_bdiff
- xdiff_file_diff — Hacer un diff unificado de dos archivos
- xdiff_file_merge3 — Une 3 archivos en uno
- xdiff_file_patch_binary — Alias de xdiff_file_bpatch
- xdiff_file_patch — Parchea un archivo con un diff unificado
- xdiff_file_rabdiff — Hacer una diferencia binaria de dos archivos utilizando el algoritmo polinomial de huella digital (fingerprinting) de Rabin
- xdiff_string_bdiff_size — Lee el tamaño de un archivo creado tras aplicar una diferencia binaria
- xdiff_string_bdiff — Hacer una diferencia binaria de dos cadenas
- xdiff_string_bpatch — Parchear una cadena con una diferencia binaria
- xdiff_string_diff_binary — Alias de xdiff_string_bdiff
- xdiff_string_diff — Hacer un diff unificado de dos cadenas
- xdiff_string_merge3 — Unir tres cadenas en una
- xdiff_string_patch_binary — Alias de xdiff_string_bpatch
- xdiff_string_patch — Parchear una cadena con un diff unificado
- xdiff_string_rabdiff — Hacer una diferencia binaria de dos cadenas utilizando el algoritmo polinomial de huella digital (fingerprinting) de Rabin
mg ¶
4 years ago
amir.laher ¶
8 years ago
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";
