[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: concat vs format
From: |
Jean-Christophe Helary |
Subject: |
Re: concat vs format |
Date: |
Sun, 9 Dec 2018 22:42:15 +0900 |
Stephan,
I tried your suggestion but it did not (seem to) work.
But after simplifying the code, I found a simpler way to identify the issue, so
that I can show it to the list.
I run edebug on this:
(defun dailyTemplate (myDay)
(interactive (list
(read-number "Date: " (string-to-number (format-time-string
"%d")))))
(let* ((myToday (getMyDates myDay))
; (myTomorrow (+ (getMyDates myDay) 84600))
; (myYesterday (- (getMyDates myDay) 84600))
(siteRoot "/Users/suzume/Documents/Code/brandelune.github.io/")
(cssRoot (concat siteRoot "css/" (format-time-string "%Y" myToday)
"/"))
And here are the edebug messages:
Edebug: dailyTemplate
[4 times]
Result: "09"
Result: 9 (#o11, #x9, ?\C-i)
Result: 9 (#o11, #x9, ?\C-i)
Result: (9)
[3 times]
Result: 9 (#o11, #x9, ?\C-i)
Result: 1544324400 (#o13403102460, #x5c0c8530)
[2 times]
Result: "/Users/suzume/Documents/Code/brandelune.github.io/"
[2 times]
Result: 1544324400 (#o13403102460, #x5c0c8530)
Result: "2018"
Result: "/Users/suzume/Documents/Code/brandelune.github.io/..."
So, the last concat gives me a path that's not the result of a "concat" on the
values that I feed it. Why ?
"myDay" is checked to be between 1 and 31 and "getMyDates" returns this:
(encode-time (list 0 0 12 myDay myMonth myYear nil nil 32400) 'integer)
When I run:
(concat "/Users/suzume/Documents/Code/brandelune.github.io/" "css/"
(format-time-string "%Y" 1544324400) "/")
I *do* get what I expect, which is:
"/Users/suzume/Documents/Code/brandelune.github.io/css/2018/"
There is clearly something I do not understand here... :(
Jean-Christophe
> On Dec 9, 2018, at 20:30, Stefan Huchler <stefan.huchler@mail.de> wrote:
>
> I run into a similar problem when I used the prin1 function. It had to
> do with the default value auf print-length which was to low.
>
> can you put a (let* ((print-length 5000)) around your code and test
> that? Or look up the variable if it could have something todo with your
> problem.
>
> Jean-Christophe Helary <brandelune@gmail.com> writes:
>
>>> On Dec 9, 2018, at 13:09, Drew Adams <drew.adams@oracle.com> wrote:
>>>
>>>> Is there a difference between:
>>>> (concat firstPartofURL secondPartofURL) and
>>>> (format "%s%s" firstPartofURL secondPartofURL)?
>>>
>>> If both args are strings then no; the result
>>> is the same. But the functions are very
>>> different - they take different args and,
>>> aside from some cases like this one where
>>> the result is the same for some args, their
>>> uses/purposes are different.
>>
>> Thank you.
>>
>> I'm trying to create URLs from dates and at one point I get a concat that
>> outputs "/path/to/url/..." instead of "/path/to/url/12/04/index.html".
>> I checked the code and put format instead of concat and got the same
>> result. All the things I try to concat are strings that I
>> progressively build over other strings, and edebug gives me correct
>> values up to the point where the wrong string is created...
>>
>> I'm going to re-check the whole thing...
>>
>> Jean-Christophe Helary
>> -----------------------------------------------
>> http://mac4translators.blogspot.com @brandelune
>
>
Jean-Christophe Helary
-----------------------------------------------
http://mac4translators.blogspot.com @brandelune