Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 82768 - gtuxnes cannot read a .gtuxnesrc that contains spaces -- diff included
Summary: gtuxnes cannot read a .gtuxnesrc that contains spaces -- diff included
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: All Linux
: High normal
Assignee: Gentoo Games
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-02-20 23:27 UTC by Myk Taylor
Modified: 2005-02-26 20:32 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments
diff to fix .gtuxnesrc reading error (gtuxnes.config.c.diff,457 bytes, patch)
2005-02-20 23:29 UTC, Myk Taylor
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Myk Taylor 2005-02-20 23:27:06 UTC
gtuxnes loads the ROM name properly (the first line in .gtuxnesrc), but chokes on any parameter value that contained a space.

Reproducible: Always
Steps to Reproduce:
1. Select '8-bit Signed' for the audio
2. Select other options (like 'Ignore Unknown Instructions')
3. Exit, cat ~/.gtuxnesrc to see the order in which the settings were saved
4. Reload, observe all settings after the 'SNDFORMAT0=8-bit Signed' line are not loaded properly

Actual Results:  
All settings after the 'SNDFORMAT0=8-bit Signed' line are not loaded properly

Expected Results:  
Load all settings that were saved

I tracked the bug down to the fscanf line in config.c (see diff below). 
According to the fscanf man page, any whitespace specified in the format string
matches any sequence of whitespace characters (so "\n" == " " == "\t" == the
regex "[ \n\t]+").  Reading the string '8-bit Signed' would copy '8-bit' into
raw_data, and the next "parameter name" would be 'Signed'. This screwed up the
parsing logic.  The fix below uses the '%[...]' conversion syntax to properly
read until a literal newline (or EOF) is hit.


--- config.c    2001-04-16 21:16:44.000000000 -0700
+++ config.c.new        2005-02-12 23:07:46.246921944 -0800
@@ -56,7 +56,7 @@
        while (!feof(config_file))
                {
                raw_data[0] = '\0';
-               fscanf(config_file, "%s\n", raw_data);
+               fscanf(config_file, "%[^\n]\n", raw_data);
                if (strlen(raw_data) < 10)
                        break;
                strncpy(str_opname, raw_data, 10);
Comment 1 Myk Taylor 2005-02-20 23:29:35 UTC
Created attachment 51758 [details, diff]
diff to fix .gtuxnesrc reading error
Comment 2 Myk Taylor 2005-02-20 23:32:36 UTC
Comment on attachment 51758 [details, diff]
diff to fix .gtuxnesrc reading error

this patch was also sent to  Scott Weber, the author of gtuxnes.  However he
replied that he was too busy to update the source, and suggested that I submit
the patch to the Gentoo team directly to integrate into the ebuild.
Comment 3 Mr. Bones. (RETIRED) gentoo-dev 2005-02-26 20:32:37 UTC
added to portage.  thanks for the patch and bug report.