Parsing Printf Format Strings
?
?

Keyboard Navigation

Global Keys

[, < / ], > Jump to previous / next episode
W, K, P / S, J, N Jump to previous / next timestamp
t / T Toggle theatre / SUPERtheatre mode
V Revert filter to original state Y Select link (requires manual Ctrl-c)

Menu toggling

q Quotes r References f Filter y Link c Credits

In-Menu and Index Controls

a
w
s
d
h j k l


Esc Close menu / unfocus timestamp

Quotes and References Menus and Index

Enter Jump to timestamp

Quotes, References and Credits Menus

o Open URL (in new tab)

Filter Menu

x, Space Toggle category and focus next
X, ShiftSpace Toggle category and focus previous
v Invert topics / media as per focus

Filter and Link Menus

z Toggle filter / linking mode

Credits Menu

Enter Open URL (in new tab)
0:23Announcement: Early registration for HandmadeCon 2016 ends soon1
0:23Announcement: Early registration for HandmadeCon 2016 ends soon1
0:23Announcement: Early registration for HandmadeCon 2016 ends soon1
1:18Announcement: Casey will be speaking at PWLConf 20162,3
1:18Announcement: Casey will be speaking at PWLConf 20162,3
1:18Announcement: Casey will be speaking at PWLConf 20162,3
5:06Recap and set the stage for the day
5:06Recap and set the stage for the day
5:06Recap and set the stage for the day
6:16A few words on the difficulty of printing floating point numbers4
6:16A few words on the difficulty of printing floating point numbers4
6:16A few words on the difficulty of printing floating point numbers4
9:07handmade_shared.h: Enable FormatStringList() to process the %s specifier
9:07handmade_shared.h: Enable FormatStringList() to process the %s specifier
9:07handmade_shared.h: Enable FormatStringList() to process the %s specifier
11:26Debugger: Go to definition of va_arg()
11:26Debugger: Go to definition of va_arg()
11:26Debugger: Go to definition of va_arg()
14:07Run the game, crash in FormatStringList() and investigate why
14:07Run the game, crash in FormatStringList() and investigate why
14:07Run the game, crash in FormatStringList() and investigate why
15:12handmade_shared.h: Make FormatStringList() skip other % specifiers than %s
15:12handmade_shared.h: Make FormatStringList() skip other % specifiers than %s
15:12handmade_shared.h: Make FormatStringList() skip other % specifiers than %s
16:48Run the game and see how that works
16:48Run the game and see how that works
16:48Run the game and see how that works
18:46handmade_shared.h: Enable FormatStringList() to handle the flags in the printf spec5
18:46handmade_shared.h: Enable FormatStringList() to handle the flags in the printf spec5
18:46handmade_shared.h: Enable FormatStringList() to handle the flags in the printf spec5
25:05handmade_shared.h: Enable FormatStringList() to handle the width field and introduce S32FromZInternal()6
25:05handmade_shared.h: Enable FormatStringList() to handle the width field and introduce S32FromZInternal()6
25:05handmade_shared.h: Enable FormatStringList() to handle the width field and introduce S32FromZInternal()6
31:16handmade_shared.h: Enable FormatStringList() to handle the precision7
31:16handmade_shared.h: Enable FormatStringList() to handle the precision7
31:16handmade_shared.h: Enable FormatStringList() to handle the precision7
33:19handmade_shared.h: Begin to enable FormatStringList() to handle each of the % specifiers8
33:19handmade_shared.h: Begin to enable FormatStringList() to handle each of the % specifiers8
33:19handmade_shared.h: Begin to enable FormatStringList() to handle each of the % specifiers8
34:42"No sense not dotting your t's, crossing your i's and so on..."α
34:42"No sense not dotting your t's, crossing your i's and so on..."α
34:42"No sense not dotting your t's, crossing your i's and so on..."α
38:04handmade_shared.h: Enable FormatStringList() to handle the length9
38:04handmade_shared.h: Enable FormatStringList() to handle the length9
38:04handmade_shared.h: Enable FormatStringList() to handle the length9
42:02handmade_shared.h: Introduce ReadVarArgInteger() and ReadVarArgFloat(), with a few words on the ugliness of this in C
42:02handmade_shared.h: Introduce ReadVarArgInteger() and ReadVarArgFloat(), with a few words on the ugliness of this in C
42:02handmade_shared.h: Introduce ReadVarArgInteger() and ReadVarArgFloat(), with a few words on the ugliness of this in C
45:51handmade_shared.h: Continue enabling FormatStringList() to handle each of the % specifiers10
45:51handmade_shared.h: Continue enabling FormatStringList() to handle each of the % specifiers10
45:51handmade_shared.h: Continue enabling FormatStringList() to handle each of the % specifiers10
48:06handmade_shared.h: Separate ReadVarArgInteger() out into ReadVarArgUnsignedInteger() and ReadVarArgSignedInteger()
48:06handmade_shared.h: Separate ReadVarArgInteger() out into ReadVarArgUnsignedInteger() and ReadVarArgSignedInteger()
48:06handmade_shared.h: Separate ReadVarArgInteger() out into ReadVarArgUnsignedInteger() and ReadVarArgSignedInteger()
49:08handmade_shared.h: Continue working on the % specifiers in FormatStringList()11
49:08handmade_shared.h: Continue working on the % specifiers in FormatStringList()11
49:08handmade_shared.h: Continue working on the % specifiers in FormatStringList()11
52:31Debugger: Step through FormatStringList() and inspect what's happening
52:31Debugger: Step through FormatStringList() and inspect what's happening
52:31Debugger: Step through FormatStringList() and inspect what's happening
53:15handmade_shared.h: Make FormatStringList() consume the .
53:15handmade_shared.h: Make FormatStringList() consume the .
53:15handmade_shared.h: Make FormatStringList() consume the .
53:39Run the game, see the printing in action, hit our assertion in FormatString() and investigate why
53:39Run the game, see the printing in action, hit our assertion in FormatString() and investigate why
53:39Run the game, see the printing in action, hit our assertion in FormatString() and investigate why
58:10handmade_shared.h: Make FormatString() increment At at the end
58:10handmade_shared.h: Make FormatString() increment At at the end
58:10handmade_shared.h: Make FormatString() increment At at the end
59:17Run the game and see that we're now all good
59:17Run the game and see that we're now all good
59:17Run the game and see that we're now all good
1:00:42Q&A
🗩
1:00:42Q&A
🗩
1:00:42Q&A
🗩
1:02:49soysaucethekid Will you be doing a sprintf?
🗪
1:02:49soysaucethekid Will you be doing a sprintf?
🗪
1:02:49soysaucethekid Will you be doing a sprintf?
🗪
1:03:49chzmstr Is the GitHub repo accessible to preorders?
🗪
1:03:49chzmstr Is the GitHub repo accessible to preorders?
🗪
1:03:49chzmstr Is the GitHub repo accessible to preorders?
🗪
1:04:53neres909 I'm following your series from beginning and I'm writing my own game (obviously from scratch too!). Is it okay to use in my win32 layer similar code (with same thought by mostly written by myself)?
🗪
1:04:53neres909 I'm following your series from beginning and I'm writing my own game (obviously from scratch too!). Is it okay to use in my win32 layer similar code (with same thought by mostly written by myself)?
🗪
1:04:53neres909 I'm following your series from beginning and I'm writing my own game (obviously from scratch too!). Is it okay to use in my win32 layer similar code (with same thought by mostly written by myself)?
🗪
1:05:56mightyarm What are you using for DRM?
🗪
1:05:56mightyarm What are you using for DRM?
🗪
1:05:56mightyarm What are you using for DRM?
🗪
1:06:43hmd_bot Neres909: Casey is currently using a Razer BlackWidow Tournament Edition Stealth. See also: !switches
🗪
1:06:43hmd_bot Neres909: Casey is currently using a Razer BlackWidow Tournament Edition Stealth. See also: !switches
🗪
1:06:43hmd_bot Neres909: Casey is currently using a Razer BlackWidow Tournament Edition Stealth. See also: !switches
🗪
1:07:09insofaras Throw in a hardware keyfob for good measure
🗪
1:07:09insofaras Throw in a hardware keyfob for good measure
🗪
1:07:09insofaras Throw in a hardware keyfob for good measure
🗪
1:07:47Shut this down
🗩
1:07:47Shut this down
🗩
1:07:47Shut this down
🗩