From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.comp.tex.context/86565 Path: news.gmane.org!not-for-mail From: Rik Kabel Newsgroups: gmane.comp.tex.context Subject: Trimming strings and Lua string.trim question Date: Tue, 04 Mar 2014 23:45:39 -0500 Message-ID: <5316ABF3.5050302@rik.users.panix.com> Reply-To: mailing list for ConTeXt users NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1617257782==" X-Trace: ger.gmane.org 1393994756 5565 80.91.229.3 (5 Mar 2014 04:45:56 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 5 Mar 2014 04:45:56 +0000 (UTC) To: mailing list for ConTeXt users Original-X-From: ntg-context-bounces@ntg.nl Wed Mar 05 05:46:03 2014 Return-path: Envelope-to: gctc-ntg-context-518@m.gmane.org Original-Received: from balder.ntg.nl ([5.39.185.229]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1WL3iV-000511-1w for gctc-ntg-context-518@m.gmane.org; Wed, 05 Mar 2014 05:46:03 +0100 Original-Received: from localhost (localhost [127.0.0.1]) by balder.ntg.nl (Postfix) with ESMTP id 364AD101F3; Wed, 5 Mar 2014 05:46:02 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at balder.ntg.nl Original-Received: from balder.ntg.nl ([127.0.0.1]) by localhost (balder.ntg.nl [127.0.0.1]) (amavisd-new, port 10024) with LMTP id q3iM03kmsCi7; Wed, 5 Mar 2014 05:46:00 +0100 (CET) Original-Received: from balder.ntg.nl (localhost [IPv6:::1]) by balder.ntg.nl (Postfix) with ESMTP id 5361A101E9; Wed, 5 Mar 2014 05:46:00 +0100 (CET) Original-Received: from localhost (localhost [127.0.0.1]) by balder.ntg.nl (Postfix) with ESMTP id 59CF9101E9 for ; Wed, 5 Mar 2014 05:45:58 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at balder.ntg.nl Original-Received: from balder.ntg.nl ([127.0.0.1]) by localhost (balder.ntg.nl [127.0.0.1]) (amavisd-new, port 10024) with LMTP id AqIwcx+IKoyb for ; Wed, 5 Mar 2014 05:45:55 +0100 (CET) Original-Received: from filter5-til.mf.surf.net (filter5-til.mf.surf.net [194.171.167.221]) by balder.ntg.nl (Postfix) with ESMTP id A6784101E1 for ; Wed, 5 Mar 2014 05:45:45 +0100 (CET) Original-Received: from mailbackend.panix.com (mailbackend.panix.com [166.84.1.89]) by filter5-til.mf.surf.net (8.14.3/8.14.3/Debian-9.4) with ESMTP id s254jhlI021355 for ; Wed, 5 Mar 2014 05:45:44 +0100 Original-Received: from [192.168.1.153] (adsl-98-77-175-214.mia.bellsouth.net [98.77.175.214]) by mailbackend.panix.com (Postfix) with ESMTP id B2D0D2E752 for ; Tue, 4 Mar 2014 23:45:42 -0500 (EST) User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:24.0) Gecko/20100101 Thunderbird/24.3.0 X-Bayes-Prob: 0.0001 (Score 0, tokens from: ntg-context@ntg.nl, base:default, @@RPTN) X-CanIt-Geo: ip=166.84.1.89; country=US; region=NY; city=Richmond Hill; postalcode=11418; latitude=40.7005; longitude=-73.8345; metrocode=501; areacode=718; http://maps.google.com/maps?q=40.7005,-73.8345&z=6 X-CanItPRO-Stream: uu:ntg-context@ntg.nl (inherits from uu:default, base:default) X-Canit-Stats-ID: 0WLxEJHVe - a1d69c00fd63 - 20140305 (trained as not-spam) X-Scanned-By: CanIt (www . roaringpenguin . com) on 194.171.167.221 X-BeenThere: ntg-context@ntg.nl X-Mailman-Version: 2.1.14 Precedence: list List-Id: mailing list for ConTeXt users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: ntg-context-bounces@ntg.nl Original-Sender: ntg-context-bounces@ntg.nl Xref: news.gmane.org gmane.comp.tex.context:86565 Archived-At: This is a multi-part message in MIME format. --===============1617257782== Content-Type: multipart/alternative; boundary="------------050509090002090704000703" This is a multi-part message in MIME format. --------------050509090002090704000703 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: quoted-printable I am trying to strip all leading and trailing whitespace from a string.=20 I have tried two methods, neither of which is satisfactory. The first method uses \ignorespaces and \removeunwantedspaces. This=20 fails to strip leading and trailing newlines. The second method uses the Lua string.strip function. The wiki descriptio= n: Yields string with leading and trailing whitespace (spaces, horizontal and vertical tabs, newlines) removed suggests that this should do what I want, but I find that it removes=20 internal whitespace as well as the leading and trailing whitespace. Can somebody suggest a better way of doing this? The following code demonstrates the problem: % macros=3Dmkvi \starttexdefinition StringStrip #STRING \startluacode context(string.strip([=3D=3D[#STRING]=3D=3D])) \stopluacode \stoptexdefinition \long\def\test{ This is a test. \quad And it has an unexpected result. With \tex{ignorespaces} and \tex{removeunwantedspaces}, the newlines remain. With Lua {\tt string.strip}, the \tex{quad} at the end of a paragraph is preserved, but the other internal whitespace (including newlines) is gone! } \starttext \subject{ignorespaces and removeunwantedspaces} =A6\ignorespaces\test\removeunwantedspaces=A6 \subject{Lua string.strip} =A6\StringStrip{\test}=A6 \stoptext --=20 Rik --------------050509090002090704000703 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit I am trying to strip all leading and trailing whitespace from a string. I have tried two methods, neither of which is satisfactory.

The first method uses \ignorespaces and \removeunwantedspaces. This fails to strip leading and trailing newlines.

The second method uses the Lua string.strip function. The wiki description:
Yields string with leading and trailing whitespace (spaces, horizontal and vertical tabs, newlines) removed
suggests that this should do what I want, but I find that it removes internal whitespace as well as the leading and trailing whitespace.

Can somebody suggest a better way of doing this?

The following code demonstrates the problem:

% macros=mkvi
\starttexdefinition StringStrip #STRING
  \startluacode
    context(string.strip([==[#STRING]==]))
  \stopluacode
\stoptexdefinition
\long\def\test{

This is a test. \quad

And it has an unexpected result.

With \tex{ignorespaces} and \tex{removeunwantedspaces}, the
newlines remain.

With Lua {\tt string.strip}, the \tex{quad} at the end of a
paragraph is preserved,    but the other internal whitespace
(including newlines) is gone!

}
\starttext
\subject{ignorespaces and removeunwantedspaces}
¦\ignorespaces\test\removeunwantedspaces¦

\subject{Lua string.strip}
¦\StringStrip{\test}¦
\stoptext
--
Rik
--------------050509090002090704000703-- --===============1617257782== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline ___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : http://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___________________________________________________________________________________ --===============1617257782==--