Re: [O] Parser - which values are possible for `archivedp'?

2014-03-04 Thread Nick Dokos
Thorsten Jolitz tjol...@gmail.com writes:

 Hi List, 

 the name of headline attribute `archivedp' suggests its just a boolean
 nil/t variable, but in parse trees I see e.g. a list as value 

 ,---
 | :archivedp (ARCHIVE)
 `---

 and I vaguely remember that I have seen different symbols as values of
 this attribute too. 

 So what do I have to expect as values here? A list of strings or nil? Or
 something else too? Whatever is defined in 

 ,---
 | org-archive-tag is a variable defined in `org.el'.
 | Its value is ARCHIVE
 `---

 ? 

 PS 

 If the tag is just a string like in this case, why is it shown as
 list in the parse tree?

It is set like this
  (let
   ...
   (archivedp (member org-archive-tag tags))
   ...)

in org-element.el. It is effectively a boolean, but there is no
need to reduce the return value of ``member'' to t if it is non-nil:

,
|member is a built-in function in `C source code'.
| 
| (member ELT LIST)
| 
| Return non-nil if ELT is an element of LIST.  Comparison done with `equal'.
`

So if non-nil, it will be a list of tags, starting with the value of
org-archive-tag. AFAICT, the rest of the tags can be arbitrary.

-- 
Nick




Re: [O] Parser - which values are possible for `archivedp'?

2014-03-04 Thread Thorsten Jolitz
Nick Dokos ndo...@gmail.com writes:

 Thorsten Jolitz tjol...@gmail.com writes:

 Hi List, 

 the name of headline attribute `archivedp' suggests its just a boolean
 nil/t variable, but in parse trees I see e.g. a list as value 

 ,---
 | :archivedp (ARCHIVE)
 `---

 and I vaguely remember that I have seen different symbols as values of
 this attribute too. 

 So what do I have to expect as values here? A list of strings or nil? Or
 something else too? Whatever is defined in 

 ,---
 | org-archive-tag is a variable defined in `org.el'.
 | Its value is ARCHIVE
 `---

 ? 

 PS 

 If the tag is just a string like in this case, why is it shown as
 list in the parse tree?

 It is set like this
   (let
...
(archivedp (member org-archive-tag tags))
...)

 in org-element.el. It is effectively a boolean, but there is no
 need to reduce the return value of ``member'' to t if it is non-nil:

 ,
 |member is a built-in function in `C source code'.
 | 
 | (member ELT LIST)
 | 
 | Return non-nil if ELT is an element of LIST.  Comparison done with
 | equal'.
 `

 So if non-nil, it will be a list of tags, starting with the value of
 org-archive-tag. AFAICT, the rest of the tags can be arbitrary.


** Second Level 2 :tag:my:ARCHIVE:


,
| :tags (tag my) [...] :archivedp (ARCHIVE)
`

-- 
cheers,
Thorsten




Re: [O] Parser - which values are possible for `archivedp'?

2014-03-04 Thread Thorsten Jolitz
Nick Dokos ndo...@gmail.com writes:

 Thorsten Jolitz tjol...@gmail.com writes:

 Hi List, 

 the name of headline attribute `archivedp' suggests its just a boolean
 nil/t variable, but in parse trees I see e.g. a list as value 

 ,---
 | :archivedp (ARCHIVE)
 `---

 and I vaguely remember that I have seen different symbols as values of
 this attribute too. 

 So what do I have to expect as values here? A list of strings or nil? Or
 something else too? Whatever is defined in 

 ,---
 | org-archive-tag is a variable defined in `org.el'.
 | Its value is ARCHIVE
 `---

 ? 

 PS 

 If the tag is just a string like in this case, why is it shown as
 list in the parse tree?

 It is set like this
   (let
...
(archivedp (member org-archive-tag tags))
...)

 in org-element.el. It is effectively a boolean, but there is no
 need to reduce the return value of ``member'' to t if it is non-nil:

 ,
 |member is a built-in function in `C source code'.
 | 
 | (member ELT LIST)
 | 
 | Return non-nil if ELT is an element of LIST.  Comparison done with
 | equal'.
 `

 So if non-nil, it will be a list of tags, starting with the value of
 org-archive-tag. AFAICT, the rest of the tags can be arbitrary.

[ups ... I sent this unfinished by accident first]

Ok, thanks, this explains a lot, and it seems that Org-mode inserts the
:ARCHIVE: tag always at the end, and other tags in front of it: 

,---
| ** Second Level 2 :tag:my:ARCHIVE:
`---

so it will almost always look like this:

,
| :tags (tag my) [...] :archivedp (ARCHIVE)
`



-- 
cheers,
Thorsten




Re: [O] Parser - which values are possible for `archivedp'?

2014-03-04 Thread Jonathan Leech-Pepin
Hello,

On 4 March 2014 09:47, Thorsten Jolitz tjol...@gmail.com wrote:

 Nick Dokos ndo...@gmail.com writes:

  Thorsten Jolitz tjol...@gmail.com writes:
 
  Hi List,
 
  the name of headline attribute `archivedp' suggests its just a boolean
  nil/t variable, but in parse trees I see e.g. a list as value
 
  ,---
  | :archivedp (ARCHIVE)
  `---
 
  and I vaguely remember that I have seen different symbols as values of
  this attribute too.
 
  So what do I have to expect as values here? A list of strings or nil? Or
  something else too? Whatever is defined in
 
  ,---
  | org-archive-tag is a variable defined in `org.el'.
  | Its value is ARCHIVE
  `---
 
  ?
 
  PS
 
  If the tag is just a string like in this case, why is it shown as
  list in the parse tree?
 
  It is set like this
(let
 ...
 (archivedp (member org-archive-tag tags))
 ...)
 
  in org-element.el. It is effectively a boolean, but there is no
  need to reduce the return value of ``member'' to t if it is non-nil:
 
  ,
  |member is a built-in function in `C source code'.
  |
  | (member ELT LIST)
  |
  | Return non-nil if ELT is an element of LIST.  Comparison done with
  | equal'.
  `
 
  So if non-nil, it will be a list of tags, starting with the value of
  org-archive-tag. AFAICT, the rest of the tags can be arbitrary.


 ** Second Level 2 :tag:my:ARCHIVE:


 ,
 | :tags (tag my) [...] :archivedp (ARCHIVE)
 `


Change the order of the tags so that Archive comes before the others and
you get:

** Second level 2 :ARCHIVE:tag:my:
:tags (tag my) :archivedp (ARCHIVE tag my)

Regards,
Jon


 --
 cheers,
 Thorsten





Re: [O] Parser - which values are possible for `archivedp'?

2014-03-04 Thread Thorsten Jolitz
Jonathan Leech-Pepin jonathan.leechpe...@gmail.com writes:

 Hello,

 On 4 March 2014 09:47, Thorsten Jolitz tjol...@gmail.com wrote:

 
 Nick Dokos ndo...@gmail.com writes:
 
  Thorsten Jolitz tjol...@gmail.com writes:
 
  Hi List,
 
  the name of headline attribute `archivedp' suggests its just a
 boolean
  nil/t variable, but in parse trees I see e.g. a list as value
 
  ,---
  | :archivedp (ARCHIVE)
  `---
 
  and I vaguely remember that I have seen different symbols as
 values of
  this attribute too.
 
  So what do I have to expect as values here? A list of strings
 or nil? Or
  something else too? Whatever is defined in
 
  ,---
  | org-archive-tag is a variable defined in `org.el'.
  | Its value is ARCHIVE
  `---
 
  ?
 
  PS
 
  If the tag is just a string like in this case, why is it shown
 as
  list in the parse tree?
 
  It is set like this
  (let
  ...
  (archivedp (member org-archive-tag tags))
  ...)
 
  in org-element.el. It is effectively a boolean, but there is no
  need to reduce the return value of ``member'' to t if it is
 non-nil:
 
  ,
  | member is a built-in function in `C source code'.
  |
  | (member ELT LIST)
  |
  | Return non-nil if ELT is an element of LIST. Comparison done
 with
  | equal'.
  `
 
  So if non-nil, it will be a list of tags, starting with the
 value of
  org-archive-tag. AFAICT, the rest of the tags can be arbitrary.
 
 
 
 ** Second Level 2 :tag:my:ARCHIVE:
 
 
 ,
 | :tags (tag my) [...] :archivedp (ARCHIVE)
 `

 Change the order of the tags so that Archive comes before the others
 and you get:

 ** Second level 2 :ARCHIVE:tag:my:
 :tags (tag my) :archivedp (ARCHIVE tag my)

A very useful feature of the `member' function in lisp programming, but
not that great in this case I would say ... why not use (car (member ...))?
Then its just a string, and the single value of interest.

-- 
cheers,
Thorsten




Re: [O] Parser - which values are possible for `archivedp'?

2014-03-04 Thread Thorsten Jolitz
Nick Dokos ndo...@gmail.com writes:

 Thorsten Jolitz tjol...@gmail.com writes:

  So if non-nil, it will be a list of tags, starting with the
 value of
  org-archive-tag. AFAICT, the rest of the tags can be arbitrary.
 
 
 
 ** Second Level 2 :tag:my:ARCHIVE:
 
 
 ,
 | :tags (tag my) [...] :archivedp (ARCHIVE)
 `

 Change the order of the tags so that Archive comes before the others
 and you get:

 ** Second level 2 :ARCHIVE:tag:my:
 :tags (tag my) :archivedp (ARCHIVE tag my)

 A very useful feature of the `member' function in lisp programming, but
 not that great in this case I would say ... why not use (car (member
 ...))?
 Then its just a string, and the single value of interest.

 Why? All that matters is whether it's nil or not.

Why not? With a tiny change in the code one would get rid of potential
redundancy in the parse tree, would cause less surprise for people who
look at the parsers output (what does :archivedp (ARCHIVE tag
my) mean?) and would get something more logical (the value of
:archivedp is either nil or the string in org-archive-tag). 

But its not really that important I guess, I just needed to know what
kind of values to expect in that place - thanks for the hints. I
use that in another program where it does matter if its a boolean, a
string or a list of strings ...

-- 
cheers,
Thorsten