task attributes work now

found out that the get attribute functions can return error conditions in the return value of string buffer as usual, even if you pass NULL to get the size