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.
--------------------------------------
Fonctions xdiff
Sommaire
- xdiff_file_diff_binary — Créé un diff binaire de deux fichier
- xdiff_file_diff — Créé un diff unifié entre deux fichiers
- xdiff_file_merge3 — Fusionne trois fichiers en un seul
- xdiff_file_patch_binary — Patche un fichier avec un diff binaire
- xdiff_file_patch — Patche un fichier avec un diff unifié
- xdiff_string_diff_binary — Créé un diff binaire de deux chaînes
- xdiff_string_diff — Créé un diff unifié entre deux chaînes
- xdiff_string_merge3 — Fusionne trois chaînes en une seule
- xdiff_string_patch_binary — Patche une chaîne avec un diff binaire
- xdiff_string_patch — Patche une chaîne avec un diff unifié
Fonctions xdiff
mg
01-Jul-2008 09:00
01-Jul-2008 09:00
amir.laher
05-Apr-2005 02:09
05-Apr-2005 02: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";
