summaryrefslogtreecommitdiff
path: root/wizards/source/access2base/Utils.xba
diff options
context:
space:
mode:
Diffstat (limited to 'wizards/source/access2base/Utils.xba')
-rw-r--r--wizards/source/access2base/Utils.xba26
1 files changed, 19 insertions, 7 deletions
diff --git a/wizards/source/access2base/Utils.xba b/wizards/source/access2base/Utils.xba
index dd639d513e25..cd0645747fb6 100644
--- a/wizards/source/access2base/Utils.xba
+++ b/wizards/source/access2base/Utils.xba
@@ -126,13 +126,23 @@ Const cstObject = "[com.sun.star.script.NativeObjectWrapper]"
End Function ' CheckArgument V0.9.0
REM -----------------------------------------------------------------------------------------------------------------------
-Public Function _CStr(pvArg As Variant, ByVal Optional pbShort As Boolean) As String
+Public Function _CStr(ByVal pvArg As Variant, ByVal Optional pbShort As Boolean) As String
' Convert pvArg into a readable string (truncated if too long and pbShort = True or missing)
+' pvArg may be a byte-array. Other arrays are rejected
-Dim sArg As String, sObject As String, oArg As Object, sLength As String
+Dim sArg As String, sObject As String, oArg As Object, sLength As String, i As Long, iMax As Long
Const cstLength = 50
+Const cstByteLength = 25
If IsArray(pvArg) Then
- sArg = "[ARRAY]"
+ If VarType(pvArg) = vbByte Or VarType(pvArg) - 8192 = vbByte Then
+ sArg = ""
+ If pbShort And UBound(pvArg) > cstByteLength Then iMax = cstByteLength Else iMax = UBound(pvArg)
+ For i = 0 To iMax
+ sArg = sArg & Right("00" & Hex(pvArg(i)), 2)
+ Next i
+ Else
+ sArg = "[ARRAY]"
+ End If
Else
Select Case VarType(pvArg)
Case vbEmpty : sArg = "[EMPTY]"
@@ -143,7 +153,8 @@ Const cstLength = 50
Else
sObject = Utils._ImplementationName(pvArg)
If Utils._IsPseudo(pvArg, Array(OBJDATABASE, OBJCOLLECTION, OBJPROPERTY, OBJFORM, OBJSUBFORM, OBJCONTROL, OBJOPTIONGROUP _
- , OBJEVENT, OBJFIELD, OBJTABLEDEF, OBJQUERYDEF, OBJRECORDSET _
+ , OBJEVENT, OBJFIELD, OBJTABLEDEF, OBJQUERYDEF, OBJRECORDSET, OBJTEMPVAR, OBJCOMMANDBAR, OBJCOMMANDBARCONTROL _
+ , OBJDIALOG _
)) Then
Set oArg = pvArg ' To avoid "Object variable not set" error message
sArg = "[" & oArg._Type & "] " & oArg._Name
@@ -156,6 +167,7 @@ Const cstLength = 50
Case vbVariant : sArg = "[VARIANT]"
Case vbString : sArg = pvArg
Case vbBoolean : sArg = Iif(pvArg, "TRUE", "FALSE")
+ Case vbByte : sArg = Right("00" & Hex(pvArg), 2)
Case Else : sArg = CStr(pvArg)
End Select
End If
@@ -597,13 +609,13 @@ Private Function _PercentEncode(ByVal psChar As String) As String
Dim lChar As Long, sByte1 As String, sByte2 As String, sByte3 As String
lChar = Asc(psChar)
-
+
Select Case lChar
Case 48 To 57, 65 To 90, 97 To 122 ' 0-9, A-Z, a-z
_PercentEncode = psChar
Case Asc("-"), Asc("."), Asc("_"), Asc("~")
_PercentEncode = psChar
- Case Asc("!"), Asc("$"), Asc("&"), Asc("'"), Asc("("), Asc(")"), Asc("*"), Asc("+"), Asc(","), Asc(";"), Asc("=") ' Reserved characters used as delimiters in query strings
+ Case Asc("!"), Asc("$"), Asc("&"), Asc("'"), Asc("("), Asc(")"), Asc("*"), Asc("+"), Asc(","), Asc(";"), Asc("=") ' Reserved characters used as delimitors in query strings
_PercentEncode = psChar
Case Asc(" "), Asc("%")
_PercentEncode = "%" & Right("00" & Hex(lChar), 2)
@@ -839,4 +851,4 @@ Private Function _UTF8Encode(ByVal psChar As String) As String
End Function ' _UTF8Encode V1.4.0
-</script:module>
+</script:module> \ No newline at end of file