<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rockbox/firmware/common/vuprintf.c, branch quake5</title>
<subtitle>My Rockbox tree</subtitle>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/rockbox/'/>
<entry>
<title>Limit float formatting to only targets building Quake</title>
<updated>2019-07-20T03:20:56+00:00</updated>
<author>
<name>Franklin Wei</name>
<email>git@fwei.tk</email>
</author>
<published>2019-07-20T03:20:56+00:00</published>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/rockbox/commit/?id=b0e9bb1b91567500475aa3fa6c4085423e774983'/>
<id>b0e9bb1b91567500475aa3fa6c4085423e774983</id>
<content type='text'>
The Quake plugin is the only code that actually relies on float
formatting. Because Quake only runs on targets with huge memory
anyway, limiting their formatting to just those targets will minimize
the increased memory use in the core.

Change-Id: Icdbe26ec6ede564861cc01ac4add76a12b00ecd5
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The Quake plugin is the only code that actually relies on float
formatting. Because Quake only runs on targets with huge memory
anyway, limiting their formatting to just those targets will minimize
the increased memory use in the core.

Change-Id: Icdbe26ec6ede564861cc01ac4add76a12b00ecd5
</pre>
</div>
</content>
</entry>
<entry>
<title>Add proper float formatting to vuprintf</title>
<updated>2019-07-20T02:07:41+00:00</updated>
<author>
<name>Michael Sevakis</name>
<email>jethead71@rockbox.org</email>
</author>
<published>2018-01-06T12:17:04+00:00</published>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/rockbox/commit/?id=b70fecf21ddc21877ec1ae7888d9c18a979e37ad'/>
<id>b70fecf21ddc21877ec1ae7888d9c18a979e37ad</id>
<content type='text'>
Wanted to see how gnarly it is to do.

Big number handling could be done with better algorithms
since it can get a bit slow with large integers or tiny
fractions with many lead zeros when only a few digits are
needed.

Anyway, it supports %e, %E, %f, %F, %g and %G. No %a or long
double support seems warranted at the moment.

Assumes IEEE 754 double format but it's laid out to be able to
replace a function to handle others if needed.

Tested in a driver program that has a duplicate vuprintf and
the content was pasted in once it looked sound enough to put
up a patch.

Change-Id: I6dae8624d3208e644c88e36e6a17d8fc9144f988
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Wanted to see how gnarly it is to do.

Big number handling could be done with better algorithms
since it can get a bit slow with large integers or tiny
fractions with many lead zeros when only a few digits are
needed.

Anyway, it supports %e, %E, %f, %F, %g and %G. No %a or long
double support seems warranted at the moment.

Assumes IEEE 754 double format but it's laid out to be able to
replace a function to handle others if needed.

Tested in a driver program that has a duplicate vuprintf and
the content was pasted in once it looked sound enough to put
up a patch.

Change-Id: I6dae8624d3208e644c88e36e6a17d8fc9144f988
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix vuprintf fix possible %s buffer over-read</title>
<updated>2018-11-10T01:47:19+00:00</updated>
<author>
<name>William Wilgus</name>
<email>me.theuser@yahoo.com</email>
</author>
<published>2018-11-06T17:33:38+00:00</published>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/rockbox/commit/?id=de6618a2713ef26f888762cbe6539cc65a393c7c'/>
<id>de6618a2713ef26f888762cbe6539cc65a393c7c</id>
<content type='text'>
when precision is not specified memchr recieved -1 for count
count is unsigned so it looks in a potentially very large area
for a terminator and returns this whole area if \0 is not found

Instead we should use memchr when precision is specified
and if precision is not specified use strlen

Fixes 60+Mb Config.cfg files

Change-Id: Ic4d1439334588f999c9071235430c42df2af5cc4
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
when precision is not specified memchr recieved -1 for count
count is unsigned so it looks in a potentially very large area
for a terminator and returns this whole area if \0 is not found

Instead we should use memchr when precision is specified
and if precision is not specified use strlen

Fixes 60+Mb Config.cfg files

Change-Id: Ic4d1439334588f999c9071235430c42df2af5cc4
</pre>
</div>
</content>
</entry>
<entry>
<title>Don't enable full vuprintf file in bootloader.  Saves ~2KB packed space when patching clip+ OF.</title>
<updated>2018-05-22T23:07:57+00:00</updated>
<author>
<name>Michael Giacomelli</name>
<email>giac2000@hotmail.com</email>
</author>
<published>2018-05-22T23:07:57+00:00</published>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/rockbox/commit/?id=0b2f5187a3e607c3c3981359d4b8b0c726d1accb'/>
<id>0b2f5187a3e607c3c3981359d4b8b0c726d1accb</id>
<content type='text'>
Change-Id: Ie03714778918bfb4a1087f60534d60ff349a8330
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change-Id: Ie03714778918bfb4a1087f60534d60ff349a8330
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "Support floating-point formatting"</title>
<updated>2017-12-25T00:22:17+00:00</updated>
<author>
<name>Franklin Wei</name>
<email>git@fwei.tk</email>
</author>
<published>2017-12-25T00:22:17+00:00</published>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/rockbox/commit/?id=6a843ca2b2008310f4b27070a2ea8fd7d0490fe5'/>
<id>6a843ca2b2008310f4b27070a2ea8fd7d0490fe5</id>
<content type='text'>
This reverts commit 01c6dcf6c7b9bb1ad2fa0450f99bacc5f3d3e04b.

The hack isn't used in duke, so having it is redundant.

Change-Id: Ieb36d75718e0c2d1305440d08021744625117886
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit 01c6dcf6c7b9bb1ad2fa0450f99bacc5f3d3e04b.

The hack isn't used in duke, so having it is redundant.

Change-Id: Ieb36d75718e0c2d1305440d08021744625117886
</pre>
</div>
</content>
</entry>
<entry>
<title>fix red</title>
<updated>2017-12-24T02:28:20+00:00</updated>
<author>
<name>Franklin Wei</name>
<email>git@fwei.tk</email>
</author>
<published>2017-12-24T02:23:06+00:00</published>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/rockbox/commit/?id=6416d96fbc6946a0eee8ba29bb881fbf4dcbe607'/>
<id>6416d96fbc6946a0eee8ba29bb881fbf4dcbe607</id>
<content type='text'>
Change-Id: I20f1bd6f0208f6108d68fb59206b09dd9da4f1af
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change-Id: I20f1bd6f0208f6108d68fb59206b09dd9da4f1af
</pre>
</div>
</content>
</entry>
<entry>
<title>Port of Duke Nukem 3D</title>
<updated>2017-12-24T02:01:26+00:00</updated>
<author>
<name>Franklin Wei</name>
<email>git@fwei.tk</email>
</author>
<published>2017-01-21T20:18:31+00:00</published>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/rockbox/commit/?id=a855d6202536ff28e5aae4f22a0f31d8f5b325d0'/>
<id>a855d6202536ff28e5aae4f22a0f31d8f5b325d0</id>
<content type='text'>
This ports Fabien Sanglard's Chocolate Duke to run on a version of SDL
for Rockbox.

Change-Id: I8f2c4c78af19de10c1633ed7bb7a997b43256dd9
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This ports Fabien Sanglard's Chocolate Duke to run on a version of SDL
for Rockbox.

Change-Id: I8f2c4c78af19de10c1633ed7bb7a997b43256dd9
</pre>
</div>
</content>
</entry>
<entry>
<title>Support floating-point formatting</title>
<updated>2017-12-24T01:55:02+00:00</updated>
<author>
<name>Franklin Wei</name>
<email>git@fwei.tk</email>
</author>
<published>2017-09-29T20:54:31+00:00</published>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/rockbox/commit/?id=01c6dcf6c7b9bb1ad2fa0450f99bacc5f3d3e04b'/>
<id>01c6dcf6c7b9bb1ad2fa0450f99bacc5f3d3e04b</id>
<content type='text'>
This is just a quick and dirty way to get %f formatting to work for
some games. It works.

Change-Id: I75585e0c6a0f9d6db41a87b71ca405b067d8b85d
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is just a quick and dirty way to get %f formatting to work for
some games. It works.

Change-Id: I75585e0c6a0f9d6db41a87b71ca405b067d8b85d
</pre>
</div>
</content>
</entry>
<entry>
<title>Implement a much more capable vuprintf()</title>
<updated>2017-11-21T10:00:27+00:00</updated>
<author>
<name>Michael Sevakis</name>
<email>jethead71@rockbox.org</email>
</author>
<published>2017-09-08T23:28:02+00:00</published>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/rockbox/commit/?id=5c9688961ef9166cec5225db50d5f73691d8292d'/>
<id>5c9688961ef9166cec5225db50d5f73691d8292d</id>
<content type='text'>
New support as well as some buggy support fixed.

Still no floating point support if ever that would be desired.

Support (*):
* Flags: '-', '+', ' ', '#', '0'

* Width and precision: 'n', '.n', '*' and '.*'

* Length modifiers: 'hh', 'h', 'j', 'l', 'll', 't', 'z'

* Radix: 'c', 'd', 'i', 'n', 'o', 'p/P', 's', 'u', 'x/X'

(*) Provision exists to switch lesser-used stuff on or off or when
certain functionality isn't desired (bootloader?). The compulsory
radixes are everything but 'o', 'n', 'p/P' and 'x/X' with length
modifiers being optional. The default setup is 'l', 'z', 'c', 'd',
'p/P', 's', 'u', 'x/X'.

* Move fdprintf() to its own file. It was in a strange place.

* Make callers compatible and fix a couple snprintf() bugs while
at it.

Could smush it down in size but I'm gonna get over the binsize
neurosis and just the let optimizer do its thing.

Change-Id: Ibdc613a9b6775802c188b29b9dd46c568c94f7c3
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
New support as well as some buggy support fixed.

Still no floating point support if ever that would be desired.

Support (*):
* Flags: '-', '+', ' ', '#', '0'

* Width and precision: 'n', '.n', '*' and '.*'

* Length modifiers: 'hh', 'h', 'j', 'l', 'll', 't', 'z'

* Radix: 'c', 'd', 'i', 'n', 'o', 'p/P', 's', 'u', 'x/X'

(*) Provision exists to switch lesser-used stuff on or off or when
certain functionality isn't desired (bootloader?). The compulsory
radixes are everything but 'o', 'n', 'p/P' and 'x/X' with length
modifiers being optional. The default setup is 'l', 'z', 'c', 'd',
'p/P', 's', 'u', 'x/X'.

* Move fdprintf() to its own file. It was in a strange place.

* Make callers compatible and fix a couple snprintf() bugs while
at it.

Could smush it down in size but I'm gonna get over the binsize
neurosis and just the let optimizer do its thing.

Change-Id: Ibdc613a9b6775802c188b29b9dd46c568c94f7c3
</pre>
</div>
</content>
</entry>
</feed>
