1
0

fix bug with newlines.

This commit is contained in:
Nathan TeBlunthuis 2025-07-04 21:37:52 -07:00
parent bf0739c25a
commit 0ad442d5eb
2 changed files with 10 additions and 7 deletions

View File

@ -7,7 +7,6 @@
#include "../mediawiki-php-wikidiff2/src/lib/TableFormatter.h" #include "../mediawiki-php-wikidiff2/src/lib/TableFormatter.h"
#include "../mediawiki-php-wikidiff2/src/lib/InlineFormatter.h" #include "../mediawiki-php-wikidiff2/src/lib/InlineFormatter.h"
#include "../mediawiki-php-wikidiff2/src/lib/InlineJSONFormatter.h" #include "../mediawiki-php-wikidiff2/src/lib/InlineJSONFormatter.h"
using wikidiff2::Wikidiff2; using wikidiff2::Wikidiff2;
using wikidiff2::TableFormatter; using wikidiff2::TableFormatter;
using wikidiff2::Formatter; using wikidiff2::Formatter;
@ -95,7 +94,7 @@ static PyObject *pywikidiff2_inline_json_diff(pywikidiff2Obj *self, PyObject *ar
static char* kwdlist[] = {"text1", "text2", "numContextLines", NULL}; static char* kwdlist[] = {"text1", "text2", "numContextLines", NULL};
char* text1; char* text1;
char* text2; char* text2;
long numContextLines; long numContextLines = NULL;
if (!PyArg_ParseTupleAndKeywords(args, kwargs, "ss|$i", if (!PyArg_ParseTupleAndKeywords(args, kwargs, "ss|$i",
kwdlist, kwdlist,
&text1, &text1,
@ -105,10 +104,13 @@ static PyObject *pywikidiff2_inline_json_diff(pywikidiff2Obj *self, PyObject *ar
PyErr_SetString(PyExc_ValueError, "Error in arguments to inline_json_diff"); PyErr_SetString(PyExc_ValueError, "Error in arguments to inline_json_diff");
return NULL; return NULL;
} }
if(numContextLines == NULL){
*(&self->config.numContextLines) = numContextLines;
}
Wikidiff2 wikidiff2( *(&self->config)); Wikidiff2 wikidiff2( *(&self->config));
size_t text1_len = sizeof(text1); size_t text1_len = strlen(text1);
size_t text2_len = sizeof(text2); size_t text2_len = strlen(text2);
Wikidiff2::String text1String(text1, text1_len); Wikidiff2::String text1String(text1, text1_len);
Wikidiff2::String text2String(text2, text2_len); Wikidiff2::String text2String(text2, text2_len);
@ -116,6 +118,7 @@ static PyObject *pywikidiff2_inline_json_diff(pywikidiff2Obj *self, PyObject *ar
wikidiff2.addFormatter(formatter); wikidiff2.addFormatter(formatter);
wikidiff2.execute(text1String, text2String); wikidiff2.execute(text1String, text2String);
Wikidiff2::String ret = formatter.getResult().str(); Wikidiff2::String ret = formatter.getResult().str();
PySys_WriteStdout(ret.c_str());
return PyUnicode_FromFormat("%s",ret.c_str()); return PyUnicode_FromFormat("%s",ret.c_str());
}; };

View File

@ -1,7 +1,7 @@
import pywikidiff2 import pywikidiff2
obj = pywikidiff2.pywikidiff2() obj = pywikidiff2.pywikidiff2()
obj = pywikidiff2.pywikidiff2(numContextLines=100000) obj = pywikidiff2.pywikidiff2(numContextLines=500000)
print(obj.num_context_lines()) print(obj.num_context_lines())
print(obj.moved_line_threshold()) print(obj.moved_line_threshold())
print(obj.change_threshold()) print(obj.change_threshold())
@ -10,6 +10,6 @@ print(obj.max_split_size())
print(obj.initial_split_threshold()) print(obj.initial_split_threshold())
print(obj.final_split_threshold()) print(obj.final_split_threshold())
res = obj.inline_json_diff("help! I'm alive", "help! dead I am") res = obj.inline_json_diff("help! \n I'm alive", "help! \n dead I am")
print('\n') print('\n')
print(res) print(res)