parsav  Diff

Differences From Artifact [5c4e9df122]:

To Artifact [18e4a71c1d]:


    73     73   					lib.str.cmp(art(0).mime, 'application/sql') == 0
    74     74   					-- and so on (we need a mimelib at some point) --
    75     75   				then
    76     76   					var view = data.view.media_text(viewerprops)
    77     77   					var text, mime = co.srv:artifact_load(id) mime:free()
    78     78   					var san = lib.html.sanitize(&co.srv.pool,pstr{[rawstring](text.ptr),text.ct}, false)
    79     79   					text:free()
    80         -					view.text = lib.str.acc{}:compose('<pre>',san,'</pre>'):finalize()
    81         -					san:free()
    82         -					var pg = view:tostr()
    83         -					view.text:free()
           80  +					view.text = co:qstr('<pre>',san,'</pre>')
           81  +					--san:free()
           82  +					var pg = view:poolstr(&co.srv.pool)
           83  +					--view.text:free()
    84     84   					co:stdpage([lib.srv.convo.page] {
    85     85   						title = lib.str.plit'media :: text';
    86     86   						class = lib.str.plit'media viewer text';
    87     87   						cache = false, body = pg;
    88     88   					})
    89         -					pg:free()
           89  +					--pg:free()
    90     90   				else co:complain(500,'bad file type','this file type is not supported') end
    91     91   			elseif path.ct == 4 then
    92     92   				var act = path(3)
    93         -				var curl = lib.str.acc{}:compose(pfx, '/media/a/', path(2)):finalize()
    94         -				defer curl:free()
           93  +				var curl = co:qstr('/media/a/', path(2))
           94  +				-- defer curl:free()
    95     95   				if act:cmp(lib.str.lit'avi') and lib.str.ncmp(art(0).mime, 'image/', 6) == 0 then
    96     96   					co:confirm('set avatar', 'are you sure you want this image to be your new avatar?',curl)
    97     97   				elseif act:cmp(lib.str.lit'del') then
    98     98   					co:confirm('delete', 'are you sure you want to permanently delete this artifact?',curl)
    99     99   				else goto e404 end
   100    100   			end
   101    101   		else
................................................................................
   123    123   				folders = pstr{'',0};
   124    124   				directory = pstr{'',0};
   125    125   				images = pstr{'',0};
   126    126   				pfx = pfx;
   127    127   			}
   128    128   
   129    129   			if folders.ct > 0 then
   130         -				var fa: lib.str.acc fa:pool(&co.srv.pool,128)
          130  +				var fa = co:stra(128)
   131    131   				var fldr = co:pgetv('folder')
   132    132   				for i=0,folders.ct do
   133    133   					var ule = lib.html.urlenc(&co.srv.pool,folders(i), true) -- defer ule:free()
   134    134   					var san = lib.html.sanitize(&co.srv.pool,folders(i), true) -- defer san:free()
   135    135   					fa:lpush('<a href="'):ppush(pfx):lpush('/media?folder='):ppush(ule)
   136    136   						:lpush('">'):ppush(san):lpush('</a>')
   137    137   					lib.dbg('checking folder ',{fldr.ptr,fldr.ct},' against ',{folders(i).ptr,folders(i).ct})