Ah, you're right: there is a difference between printing a textual 
representation on a stream / window and doing the same with the actual 
(print)string. I was not yet fully awake I guess. 

> On 19 Feb 2017, at 10:59, Tudor Girba <[email protected]> wrote:
> 
> Hi,
> 
> Hmm, I think I do not see it :).
> 
> Let’s take it slowly. From what I see, the behavior is the same since at 
> least Pharo 3.
> 
> Here is a script that seems to reproduce your situation:
> 
> Object subclass: #AAA
>       instanceVariableNames: 'name'
>       classVariableNames: ''
>       package: 'AAA'.
> #AAA asClass compile: 'printOn: aStream
>     aStream << name'.
> #AAA asClass compile: 'name: aString 
>       name := aString'.
> #AAA asClass new name: 'comics'
> 
> In Pharo 6, we have in a Playground:
> 
> <Screen Shot 2017-02-19 at 10.48.55 AM.png>
> 
> In Pharo 3, we have this in a Workspace:
> 
> <Screen Shot 2017-02-19 at 10.49.26 AM.png>
> 
> Calling Print It on an object produces a string out of the contents of the 
> stream, and displaying it shows the contents of the stream (so, no quotes). 
> Calling Print It on a string produces a string of the string, and displaying 
> it shows the quotes of the first string.
> 
> You can see this in the String tab of the inspector:
> 
> <p1.png>
> 
> 
> <p2.png>
> 
> Does this make sense?
> 
> I think this is not inconsistent, but maybe there is a better way. In any 
> case, the behavior seems to exist since a long time.
> 
> Cheers,
> Doru
> 
> 
>> On Feb 19, 2017, at 9:06 AM, stepharong <[email protected]> wrote:
>> 
>> Hi doru
>> 
>> may be I do not see the obvious.
>> I defined a class
>> 
>> Object subclass: #MFElement
>>     instanceVariableNames: 'name parent'
>>     classVariableNames: ''
>>     package: 'MyFS2'
>> 
>> printOn: aStream
>>     parent isNil ifFalse: [ parent printOn: aStream ].
>>     aStream << name
>> 
>> name: aString
>>      name := aString
>> 
>> 
>> MFDirectory new name: 'comics'.
>> 
>> 
>> And when I do 
>> 
>> 
>> (MFDirectory new name: 'comics')
>> comics/
>> 
>> 
>> (MFDirectory new name: 'comics') printString
>>>>> 'comics/'
>> 
>> 
>> Hi Stef,
>> 
>> I think I do not understand the issue.
>> 
>> Here is the screenshot of a Playground.
>> 
>> ‘comics’ -> print-it -> ‘comics'
>> 
>> <Mail Attachment.png>
>> 
>> What am I missing?
>> 
>> Cheers,
>> Doru
>> 
>> 
>>> On Feb 18, 2017, at 6:26 PM, stepharong <[email protected]> wrote:
>>> 
>>> 
>>> Hi guys
>>> 
>>> I'm working on an introduction chapter for my future book and I do not like 
>>> the behavior I see in latest pharo 60.
>>> 
>>> And I do not understand the behavior of print-it
>>> 
>>> (MFDirectory new name: 'comics')
>>> comics/
>>> 
>>> 
>>> (MFDirectory new name: 'comics') printString
>>>>>> 'comics/'
>>> 
>>> 
>>> Why print it does not produce ''?
>>> 
>>> 
>>> Stef
>>> 
>>> 
>>> printIt
>>>     "Treat the current text selection as an expression; evaluate it. Insert 
>>> the
>>>     description of the result of evaluation after the selection and then 
>>> make
>>>     this description the new text selection."
>>> 
>>>     | printString |
>>>     self
>>>             evaluateSelectionAndDo: [ :result |
>>>                     printString := [ result printString ]
>>>                             on: Error
>>>                             do: [ '<error in printString: try ''Inspect 
>>> it'' to debug>' ].
>>>                     self afterSelectionInsertAndSelect: printString ]
>>> 
>>> 
>>> 
>>> 
>>> -- 
>>> Using Opera's mail client: http://www.opera.com/mail/
>>> 
>> 
>> --
>> www.tudorgirba.com
>> www.feenk.com
>> 
>> "It's not how it is, it is how we see it."
>> 
>> 
>> 
>> 
>> -- 
>> Using Opera's mail client: http://www.opera.com/mail/
>> <MFElement.st>
> 
> --
> www.tudorgirba.com
> www.feenk.com
> 
> "Problem solving should be focused on describing
> the problem in a way that makes the solution obvious."
> 
> 
> 
> 
> 


Reply via email to