@@ -116,10 +116,12 @@ var structData = map[string]ChunkData{
116
116
"PREF.ICTL" : {handlePrefIctl , "IControl Preferences" },
117
117
"PREF.INPT" : {handlePrefInpt , "Input Preferences" },
118
118
"PREF.KMSW" : {handlePrefKmsw , "Keyboard/Mouse Preferences" },
119
- "PREF.LCLE" : {nil , "Locale Preferences" },
120
- "PREF.PALT" : {nil , "Palette Preferences" },
119
+ "PREF.LCLE" : {handlePrefLcle , "Locale Preferences" },
120
+ "PREF.OSCN" : {handlePrefOscn , "Overscan Preferences" },
121
+ "PREF.PALT" : {handlePrefPalt , "Palette Preferences" },
121
122
"PREF.CMAP" : {handleIlbmCmap , "Color Map" },
122
- "PREF.NPTR" : {nil , "Pointer Preferences" },
123
+ "PREF.PNTR" : {handlePrefPntr , "Pointer Preferences" },
124
+ "PREF.NPTR" : {handlePrefNptr , "New Pointer Preferences" }, // AROS specific
123
125
"PREF.PTXT" : {nil , "Printer Preferences" },
124
126
"PREF.PUNT" : {nil , "Printer Unit Preferences" },
125
127
"PREF.PDEV" : {nil , "Printer Device Preferences" },
@@ -275,3 +277,20 @@ func getStringBuffer(data []byte, offset *uint32, bufLen uint32) (string, error)
275
277
* offset += bufLen
276
278
return result , nil
277
279
}
280
+
281
+ // getStringBuffer reads a string from the data at the given offset.
282
+ // The numer of bytes to read is given by bufLen. The offset is incremented
283
+ // by the bufLen.
284
+ // In case of an error, it returns "" and the error. The offset is unchanged.
285
+ func getByteBuffer (data []byte , offset * uint32 , bufLen uint32 ) ([]byte , error ) {
286
+ var result []byte
287
+
288
+ if len (data ) < int (* offset + bufLen ) {
289
+ return nil , fmt .Errorf ("data too short for []byte" )
290
+ }
291
+ high := int (* offset + bufLen )
292
+ result = data [* offset :high ]
293
+
294
+ * offset += bufLen
295
+ return result , nil
296
+ }
0 commit comments