Reflection: space in MetaData
Archives Forums/BlitzMax Bug Reports/Reflection: space in MetaData
| ||
Hi, If a space is present in a metadata string it won't show up during runtime: Type TTypeA Field testA:Int {uiName="a thing"} Field testB:Int {uiName="a_thing"} EndType Local obj:TTypeA = New TTypeA Local t:TTypeId = TTypeId.ForObject(obj) For Local f:TField = EachIn t.Fields() Print f.name()+", uiName=~q"+f.MetaData("uiName")+"~q" NextReplacing the space with an underscore as an example solves the problem. |
| ||
And a fix for reflection.bmx:Function ExtractMetaData$( meta$,key$ ) 'not currently safe: , or = in metadata could stuff it up 'should use a map If Not key Return meta key=" "+key+"=" meta=" "+meta+" " Local i=meta.Tolower().Find( key.Tolower() ) If i=-1 Return i:+key.length Local ret:String =meta[i..meta.Find( " ",i )] If ret.StartsWith( "~q" ) ret = meta[i+1..meta.Find("~q",i+1)] EndIf Return ret End Function |