On 8/15/2018 03:07, Hans Hagen wrote: > On 8/15/2018 5:31 AM, Aditya Mahajan wrote: >> On Tue, 14 Aug 2018, Rik Kabel wrote: >> >>> I really think, though, that a buffers.strip function would be the >>> way to go, instead of futzing after the damage is done. >> >> In lua, buffers.getcontent('name') gives the contents of the buffer >> labelled 'name'. You can post-process this in whatever way you want. >> For example, you could write a lua function userdata.strip that >> strips the leading and ending black spaces from a string, and then call >> >> context(userdata.strip(buffers.getcontent('name))) > local s = [[ > > foo > > bar > > > bar > > ]] > > print(string.fullstrip(s)) > > So, it looks likethe following is closer to working for me in a simple test harness, but not in my full-blown work: \dontleavehmode{\llap{StripA~}}\ctxlua{context(utilities.strings.striplines(string.gsub(buffers.getcontent("TestBuffer"),"^\\relax",""),"prune"))} (or similar with string.fullstrip). However, it fails when the buffer starts with an unescaped left square bracket. That is probably why the \relax is inserted, and I can see that it is not a simple job to handle this. So, I will accept that I must either append [] or get rid of the open layout for these cases. I suspect that the issue in the larger project has to do with quoting for the RE ("^\\relax") since compilation fails with: %% \stopAttribution ...getcontent("Attribution"),"^\\ %% relax","")))}\stopparagrap... Any pointers on such quoting would be appreciated. -- Rik