Andy, thanks for your help.

I've checked and the displayed result is different only in LightTable. When 
I execute the format functions from a CLI REPL I get the correct number of 
characters displayed. I've checked the LT issues and can't see anything 
that matches, so I'll probably raise it as a Clojure plugin bug.

On Sunday, 6 April 2014 14:45:31 UTC-6, Andy Fingerhut wrote:
>
> Using Clojure from the REPL will also show double quotes around the result 
> of format, since the result is a string and that is how the Clojure REPL 
> shows string values, so that is not specific to LightTable.
>
> The display of the wrong number of spaces between the double quotes could 
> be a LightTable bug, though.
>
> Andy
>
>
> On Sun, Apr 6, 2014 at 12:57 PM, Paul Umbers <[email protected]<javascript:>
> > wrote:
>
>> Interesting.
>>
>> The result of (format "'%-9s'" "12345") displays as "'12345 '" - " added 
>> by LT. Yet (count (format "'%-9s'" "12345")) returns 11, as you say, 
>> which is correct.
>>
>> Am I looking at a LightTable bug then?
>>
>>
>> On Sunday, 6 April 2014 13:42:40 UTC-6, Andy Fingerhut wrote:
>>
>>> Paul, can you double-check the result you are getting from (format 
>>> "'%-9s'" "12345") ?
>>>
>>> For example, wrap it in a call to count, i.e. (count (format "'%-9s'" 
>>> "12345")).  I get the expected string back from format, and the expected 
>>> length of 11 characters, on all of these Clojure/JVM/OS combos I tested:
>>>
>>> Mac OS X 10.8.5 + JVM 1.7.0_51 + Clojure 1.5.1
>>> Mac OS X 10.8.5 + JVM 1.7.0_51 + Clojure 1.6.0
>>> Ubuntu Linux 12.04.4 + OpenJDK 1.6.0_30 + Clojure 1.5.1
>>>
>>> If you are still getting incorrect results, what combination of software 
>>> versions are you using?
>>>
>>> Andy
>>>
>>>
>>>
>>> On Sun, Apr 6, 2014 at 12:27 PM, Paul Umbers <[email protected]> wrote:
>>>
>>>> I'm trying to right-pad a string up to 9 characters, for example 
>>>> "12345" should become "12345    ", and the only idea I've come up with so 
>>>> far is to use clojure.core/format which states: "Formats a string 
>>>> using java.lang.String.format, see java.util.Formatter for format string 
>>>> syntax". However, there seems to be a discrepancy in what the Clojure 
>>>> format function returns compared with the Java formatter.
>>>>
>>>> In Java, new Formatter().format("'%-9s'", "12345") correctly returns 
>>>> '12345 
>>>>    ' - the ' are there for legibility. String.format("'%-9s'", 
>>>> "12345")also returns the correctly padded string.
>>>>
>>>> However, in Clojure (format "'%-9s'" "12345") returns '12345 ' - it 
>>>> has only padded the string by 1 space, and not 4 as with the Java version.
>>>>
>>>> Also, (String/format "'%-9s'" (to-array "12345")) - taken from the 
>>>> clojure.core/format source and substituting parameters directly- returns 
>>>> '1 
>>>>        ', and (String/format "'%-9s'" (to-array '(\1 \2 \3 \4 \5)))returns 
>>>> '1 
>>>> '.
>>>>
>>>> The one thing that works correctly is (String/format "'%-9s'" 
>>>> (to-array ["12345"])) which returns '12345    '.
>>>>
>>>> I'm not really clear on what's going wrong here, but 
>>>> clojure.core/format doesn't appear to be working as described - at least 
>>>> for a single string argument.
>>>>
>>>> I'll continue to investigate, but if anyone can offer some comments to 
>>>> help? ...
>>>>
>>>> -- 
>>>> You received this message because you are subscribed to the Google
>>>> Groups "Clojure" group.
>>>> To post to this group, send email to [email protected]
>>>>
>>>> Note that posts from new members are moderated - please be patient with 
>>>> your first post.
>>>> To unsubscribe from this group, send email to
>>>> [email protected]
>>>>
>>>> For more options, visit this group at
>>>> http://groups.google.com/group/clojure?hl=en
>>>> --- 
>>>> You received this message because you are subscribed to the Google 
>>>> Groups "Clojure" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send 
>>>> an email to [email protected].
>>>>
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>>
>>>  -- 
>> You received this message because you are subscribed to the Google
>> Groups "Clojure" group.
>> To post to this group, send email to [email protected]<javascript:>
>> Note that posts from new members are moderated - please be patient with 
>> your first post.
>> To unsubscribe from this group, send email to
>> [email protected] <javascript:>
>> For more options, visit this group at
>> http://groups.google.com/group/clojure?hl=en
>> --- 
>> You received this message because you are subscribed to the Google Groups 
>> "Clojure" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected] <javascript:>.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to [email protected]
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to