SF.net SVN: docutils:[10095 ] trunk/docutils

grubert--- via Docutils-checkins <[email protected]> Sun, 20 Apr 2025 12:34:28 +0000
Newsgroups gmane.text.docutils.cvs
Message-ID <[email protected]>
Revision: 10095
          http://sourceforge.net/p/docutils/code/10095
Author:   grubert
Date:     2025-04-20 12:34:28 +0000 (Sun, 20 Apr 2025)
Log Message:
-----------
add uri break points before "."s

Modified Paths:
--------------
    trunk/docutils/docutils/writers/manpage.py
    trunk/docutils/test/test_writers/test_manpage.py

Modified: trunk/docutils/docutils/writers/manpage.py
===================================================================
--- trunk/docutils/docutils/writers/manpage.py	2025-04-18 15:48:45 UTC (rev 10094)
+++ trunk/docutils/docutils/writers/manpage.py	2025-04-20 12:34:28 UTC (rev 10095)
@@ -96,13 +96,16 @@
 # after ampersands
 # after number signs
 # (?=.) avoids matching the end of string, requires something
-# TODO before each dot or a series of
+# MAYBE require 5 after the break point
 NONBREAKING_INSERT_RE = re.compile(r'([/@?&#]+)(?=.)')
+# before each dot or a series of
+NONBREAKING_INSERT_RE2 = re.compile(r'([^\.]+)(?=\.+)(?=.)')
 
 
 def insert_URI_breakpoints(s):
     # TODO only for long URIs ?
-    return NONBREAKING_INSERT_RE.sub(r'\1' + NONPRINTING_BREAKPOINT, s)
+    return NONBREAKING_INSERT_RE2.sub(r'\1' + NONPRINTING_BREAKPOINT, 
+               NONBREAKING_INSERT_RE.sub(r'\1' + NONPRINTING_BREAKPOINT, s))
 
 
 class Writer(writers.Writer):

Modified: trunk/docutils/test/test_writers/test_manpage.py
===================================================================
--- trunk/docutils/test/test_writers/test_manpage.py	2025-04-18 15:48:45 UTC (rev 10094)
+++ trunk/docutils/test/test_writers/test_manpage.py	2025-04-20 12:34:28 UTC (rev 10095)
@@ -21,14 +21,15 @@
 from docutils.writers import manpage
 
 URI_tests = (
-        ("///abc.de", r"///\:abc.de"),
-        ("/abc.de/", r"/\:abc.de/"),
-        ("http://abc.de", r"http://\:abc.de"),
-        ("http://abc.de/fg", r"http://\:abc.de/\:fg"),
-        ("http://abc.de/fg?q=abc", r"http://\:abc.de/\:fg?\:q=abc"),
-        ("http://abc.de/fg/?q=abc", r"http://\:abc.de/\:fg/?\:q=abc"),
-        ("http://abc.de/fg/?q=abc&me#", r"http://\:abc.de/\:fg/?\:q=abc&\:me#"),
-        ("[email protected]", r"me@\:home.here"),
+        ("///abc.de", r"///\:abc\:.de"),
+        ("/abc.de/", r"/\:abc\:.de/"),
+        ("http://abc.de", r"http://\:abc\:.de"),
+        ("http://abc.de/fg", r"http://\:abc\:.de/\:fg"),
+        ("http://abc.de/fg?q=abc", r"http://\:abc\:.de/\:fg?\:q=abc"),
+        ("http://abc.de/fg/?q=abc", r"http://\:abc\:.de/\:fg/?\:q=abc"),
+        ("http://abc.de/fg/?q=abc&me#", r"http://\:abc\:.de/\:fg/?\:q=abc&\:me#"),
+        ("[email protected]", r"me@\:home\:.here"),
+        ("[email protected]..", r"me\:..dot@\:home\:.here\:.."),
         )
 
 

This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.