summaryrefslogtreecommitdiff
path: root/wizards/source/scriptforge/SF_String.xba
diff options
context:
space:
mode:
Diffstat (limited to 'wizards/source/scriptforge/SF_String.xba')
-rw-r--r--wizards/source/scriptforge/SF_String.xba9
1 files changed, 3 insertions, 6 deletions
diff --git a/wizards/source/scriptforge/SF_String.xba b/wizards/source/scriptforge/SF_String.xba
index 888cf672c5da..01205534fcb9 100644
--- a/wizards/source/scriptforge/SF_String.xba
+++ b/wizards/source/scriptforge/SF_String.xba
@@ -2281,7 +2281,7 @@ Public Function SplitNotQuoted(Optional ByRef InputStr As Variant _
''' Args:
''' InputStr: the input string
''' Might contain quoted substrings:
-''' The quoting character must be the double quote (")
+''' The quoting character must be the double quote ["] (default) or the single quote [']
''' To preserve a quoting character inside the quoted substring, use (\) or (") as escape character
''' => [str\"i""ng] means [str"i"ng]
''' Delimiter: A string of one or more characters that is used to delimit the input string
@@ -2303,7 +2303,6 @@ Dim vEnd As Variant ' Array of end positions of quoted strings
Dim lInStr As Long ' InStr() on input string
Dim lInStrPrev As Long ' Previous value of lInputStr
Dim lBound As Long ' UBound of vStart and vEnd
-Dim lMin As Long ' Lower bound to consider when searching vStart and vEnd
Dim oCharacterClass As Object ' com.sun.star.i18n.CharacterClassification
Dim oLocale As Object ' com.sun.star.lang.Locale
Dim oParse As Object ' com.sun.star.i18n.ParseResult
@@ -2366,22 +2365,20 @@ Try:
vSplit = Split(InputStr, Delimiter, Occurrences)
Else
' Split chunk by chunk
- lMin = 0
lInStrPrev = 0
lInStr = InStr(1, InputStr, Delimiter, 0)
Do While lInStr > 0
If Occurrences > 0 And Occurrences = UBound(vSplit) - 1 Then Exit Do
bSplit = False
' Ignore found Delimiter if in quoted string
- For i = lMin To lBound
+ For i = 0 To lBound
If lInStr < vStart(i) Then
bSplit = True
Exit For
ElseIf lInStr > vStart(i) And lInStr < vEnd (i) Then
Exit For
Else
- lMin = i + 1
- If i = lBound Then bSplit = True Else bSplit = ( lInStr < vStart(lMin) )
+ If i = lBound Then bSplit = True Else bSplit = ( lInStr < vStart(i + 1) )
End If
Next i
' Build next chunk and store in split array