summaryrefslogtreecommitdiff
path: root/vendor/modernc.org/libc/printf.go
diff options
context:
space:
mode:
authorLibravatar tobi <31960611+tsmethurst@users.noreply.github.com>2022-08-15 12:35:05 +0200
committerLibravatar GitHub <noreply@github.com>2022-08-15 11:35:05 +0100
commitac6ed3d939fe9dad81aadbd04541e905c625ca82 (patch)
tree6116baf25675837dc99f69c49b9fec2ff112ce5c /vendor/modernc.org/libc/printf.go
parent[frontend] Sensitive media spoilers (#752) (diff)
downloadgotosocial-ac6ed3d939fe9dad81aadbd04541e905c625ca82.tar.xz
[chore] Update bun / sqlite versions; update gtsmodels (#754)
* upstep bun and sqlite versions * allow specific columns to be updated in the db * only update necessary columns for user * bit tidier * only update necessary fields of media_attachment * only update relevant instance fields * update tests * update only specific account columns * use bool pointers on gtsmodels includes attachment, status, account, user * update columns more selectively * test all default fields on new account insert * updating remaining bools on gtsmodels * initialize pointer fields when extracting AP emoji * copy bools properly * add copyBoolPtr convenience function + test it * initialize false bool ptrs a bit more neatly
Diffstat (limited to 'vendor/modernc.org/libc/printf.go')
-rw-r--r--vendor/modernc.org/libc/printf.go32
1 files changed, 26 insertions, 6 deletions
diff --git a/vendor/modernc.org/libc/printf.go b/vendor/modernc.org/libc/printf.go
index ce580daf5..b8200add2 100644
--- a/vendor/modernc.org/libc/printf.go
+++ b/vendor/modernc.org/libc/printf.go
@@ -18,6 +18,7 @@ const (
modH
modL
modLL
+ modLD
modQ
modCapitalL
modJ
@@ -167,7 +168,9 @@ more:
format++
var arg uint64
switch mod {
- case modNone, modL, modLL, mod64:
+ case modNone:
+ arg = uint64(VaUint32(args))
+ case modL, modLL, mod64:
arg = VaUint64(args)
case modH:
arg = uint64(uint16(VaInt32(args)))
@@ -198,7 +201,9 @@ more:
format++
var arg uint64
switch mod {
- case modNone, modL, modLL, mod64:
+ case modNone:
+ arg = uint64(VaUint32(args))
+ case modL, modLL, mod64:
arg = VaUint64(args)
case modH:
arg = uint64(uint16(VaInt32(args)))
@@ -280,7 +285,9 @@ more:
format++
var arg uint64
switch mod {
- case modNone, modL, modLL, mod64:
+ case modNone:
+ arg = uint64(VaUint32(args))
+ case modL, modLL, mod64:
arg = VaUint64(args)
case modH:
arg = uint64(uint16(VaInt32(args)))
@@ -335,7 +342,7 @@ more:
prec = 6
}
f := fmt.Sprintf("%s.%d%c", spec, prec, c)
- str = fmt.Sprintf(f, arg)
+ str = fixNanInf(fmt.Sprintf(f, arg))
case 'G':
fallthrough
case 'g':
@@ -356,7 +363,7 @@ more:
}
f := fmt.Sprintf("%s.%d%c", spec, prec, c)
- str = fmt.Sprintf(f, arg)
+ str = fixNanInf(fmt.Sprintf(f, arg))
case 's':
// If no l modifier is present: the const char * argument is expected to be a
// pointer to an array of character type (pointer to a string). Characters
@@ -577,7 +584,9 @@ func parseLengthModifier(format uintptr) (_ uintptr, n int) {
case 'q':
panic(todo(""))
case 'L':
- panic(todo(""))
+ format++
+ n = modLD
+ return format, n
case 'j':
panic(todo(""))
case 'z':
@@ -590,3 +599,14 @@ func parseLengthModifier(format uintptr) (_ uintptr, n int) {
return format, 0
}
}
+
+func fixNanInf(s string) string {
+ switch s {
+ case "NaN":
+ return "nan"
+ case "+Inf", "-Inf":
+ return "inf"
+ default:
+ return s
+ }
+}