[tor-commits] [arm/master] fix: miscropping strings breaking on first word

atagar at torproject.org atagar at torproject.org
Sat Jun 18 23:14:48 UTC 2011


commit e6b64e48e67a5590a4069510f7f53bb28c11ed7d
Author: Damian Johnson <atagar at torproject.org>
Date:   Fri Jun 17 19:29:36 2011 -0700

    fix: miscropping strings breaking on first word
    
    When cropping strings where we'd be splitting the first word only the last
    character would be dropped. For instance...
    
    >>> uiTools.cropStr("CookieAuthFileGroupReadable", 8)
    'CookieAuthFileGroupReadabl...'
    
    rather than...
    
    >>> uiTools.cropStr("CookieAuthFileGroupReadable", 8)
    'Cooki...'
---
 src/util/uiTools.py |   21 +++++++++++++++------
 1 files changed, 15 insertions(+), 6 deletions(-)

diff --git a/src/util/uiTools.py b/src/util/uiTools.py
index 5204960..1b32caa 100644
--- a/src/util/uiTools.py
+++ b/src/util/uiTools.py
@@ -242,13 +242,22 @@ def cropStr(msg, size, minWordLen = 4, minCrop = 0, endType = Ending.ELLIPSE, ge
   
   # checks if there isn't the minimum space needed to include anything
   lastWordbreak = msg.rfind(" ", 0, size + 1)
-  lastWordbreak = len(msg[:lastWordbreak].rstrip()) # drops extra ending whitespaces
-  if (minWordLen != None and size < minWordLen) or (minWordLen == None and lastWordbreak < 1):
-    if getRemainder: return ("", msg)
-    else: return ""
   
-  if minWordLen == None: minWordLen = sys.maxint
-  includeCrop = size - lastWordbreak - 1 >= minWordLen
+  if lastWordbreak == -1:
+    # we're splitting the first word
+    if minWordLen == None or size < minWordLen:
+      if getRemainder: return ("", msg)
+      else: return ""
+    
+    includeCrop = True
+  else:
+    lastWordbreak = len(msg[:lastWordbreak].rstrip()) # drops extra ending whitespaces
+    if (minWordLen != None and size < minWordLen) or (minWordLen == None and lastWordbreak < 1):
+      if getRemainder: return ("", msg)
+      else: return ""
+    
+    if minWordLen == None: minWordLen = sys.maxint
+    includeCrop = size - lastWordbreak - 1 >= minWordLen
   
   # if there's a max crop size then make sure we're cropping at least that many characters
   if includeCrop and minCrop:





More information about the tor-commits mailing list