diff mupdf-source/scripts/wrap/util.py @ 2:b50eed0cc0ef upstream

ADD: MuPDF v1.26.7: the MuPDF source as downloaded by a default build of PyMuPDF 1.26.4. The directory name has changed: no version number in the expanded directory now.
author Franz Glasner <fzglas.hg@dom66.de>
date Mon, 15 Sep 2025 11:43:07 +0200
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mupdf-source/scripts/wrap/util.py	Mon Sep 15 11:43:07 2025 +0200
@@ -0,0 +1,50 @@
+'''
+Utility fns.
+'''
+
+import os
+
+import jlib
+
+def clip( text, prefixes, suffixes=''):
+    '''
+    Returns <text> with prefix(s) and suffix(s) removed if present.
+    '''
+    if isinstance( prefixes, str):
+        prefixes = prefixes,
+    if isinstance( suffixes, str):
+        suffixes = suffixes,
+    while 1:
+        for prefix in prefixes:
+            if text.startswith( prefix):
+                text = text[ len( prefix):]
+                break
+        else:
+            break
+    while 1:
+        for suffix in suffixes:
+            if suffix and text.endswith( suffix):
+                text = text[ :-len( suffix)]
+                break
+        else:
+            break
+    return text
+
+
+def update_file_regress( text, filename, check_regression):
+    '''
+    Behaves like jlib.fs_update(), but if check_regression is true and
+    <filename> already exists with different content from <text>, we show a
+    diff and return an exception.
+    '''
+    text_old = jlib.fs_update( text, filename, check_regression)
+    if check_regression:
+        if text_old is not None:
+            # Existing content differs and <check_regression> is true.
+            with open( f'{filename}-2', 'w') as f:
+                f.write( text)
+            message = f'File would have changed: {os.path.relpath(filename)}'
+            jlib.log( message)
+            jlib.system( f'diff -u {filename} {filename}-2', verbose=True, raise_errors=False, prefix=f'diff {os.path.relpath(filename)}: ', out='log')
+            return Exception( message)
+    return text_old