parsav  Diff

Differences From Artifact [0d2437aadd]:

To Artifact [74775ce158]:


     1      1   -- vim: ft=terra
     2         -local pstr = lib.mem.ptr(int8)
            2  +local pstr = lib.str.t
     3      3   local terra cs(s: rawstring)
     4      4   	return pstr { ptr = s, ct = lib.str.sz(s) }
     5      5   end
     6      6   
     7      7   local terra 
     8         -render_nym(who: &lib.store.actor, scope: uint64)
     9         -	var n: lib.str.acc n:init(128)
            8  +render_nym(who: &lib.store.actor, scope: uint64, tgt: &lib.str.acc)
            9  +	var acc: lib.str.acc
           10  +	var n: &lib.str.acc
           11  +	if tgt ~= nil then n = tgt else
           12  +		n = &acc
           13  +		n:init(128)
           14  +	end
    10     15   	var xidsan = lib.html.sanitize(cs(who.xid),false)
    11     16   	if who.nym ~= nil and who.nym[0] ~= 0 then
    12     17   		var nymsan = lib.html.sanitize(cs(who.nym),false)
    13         -		n:compose('<span class="nym">',nymsan,'</span> [<span class="handle">',
    14         -			xidsan,'</span>]')
           18  +		n:lpush('<span class="nym">'):ppush(nymsan)
           19  +			:lpush('</span> [<span class="handle">'):ppush(xidsan)
           20  +			:lpush('</span>]')
    15     21   		nymsan:free()
    16         -	else n:compose('<span class="handle">',xidsan,'</span>') end
           22  +	else n:lpush('<span class="handle">'):ppush(xidsan):lpush('</span>') end
    17     23   	xidsan:free()
    18     24   
    19     25   	if who.epithet ~= nil then
    20     26   		var episan = lib.html.sanitize(cs(who.epithet),false)
    21         -		n:lpush(' <span class="epithet">'):ppush(episan):lpush('</span>')
           27  +		n:lpush('<span class="epithet">'):ppush(episan):lpush('</span>')
    22     28   		episan:free()
    23     29   	end
    24     30   	
    25     31   	-- TODO: if scope == chat room then lookup titles in room member db
    26         -	return n:finalize()
           32  +	if tgt == nil then
           33  +		return n:finalize()
           34  +	else return pstr.null() end
    27     35   end
    28     36   
    29     37   return render_nym