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/InlineFormatter.h"
#include "../mediawiki-php-wikidiff2/src/lib/InlineJSONFormatter.h"
using wikidiff2::Wikidiff2;
using wikidiff2::TableFormatter;
using wikidiff2::Formatter;
@ -95,7 +94,7 @@ static PyObject *pywikidiff2_inline_json_diff(pywikidiff2Obj *self, PyObject *ar
static char* kwdlist[] = {"text1", "text2", "numContextLines", NULL};
char* text1;
char* text2;
long numContextLines;
long numContextLines = NULL;
if (!PyArg_ParseTupleAndKeywords(args, kwargs, "ss|$i",
kwdlist,
&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");
return NULL;
}
if(numContextLines == NULL){
*(&self->config.numContextLines) = numContextLines;
}
Wikidiff2 wikidiff2( *(&self->config));
size_t text1_len = sizeof(text1);
size_t text2_len = sizeof(text2);
size_t text1_len = strlen(text1);
size_t text2_len = strlen(text2);
Wikidiff2::String text1String(text1, text1_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.execute(text1String, text2String);
Wikidiff2::String ret = formatter.getResult().str();
PySys_WriteStdout(ret.c_str());
return PyUnicode_FromFormat("%s",ret.c_str());
};

View File

@ -1,7 +1,7 @@
import pywikidiff2
obj = pywikidiff2.pywikidiff2()
obj = pywikidiff2.pywikidiff2(numContextLines=100000)
obj = pywikidiff2.pywikidiff2(numContextLines=500000)
print(obj.num_context_lines())
print(obj.moved_line_threshold())
print(obj.change_threshold())
@ -10,6 +10,6 @@ print(obj.max_split_size())
print(obj.initial_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(res)