From mboxrd@z Thu Jan 1 00:00:00 1970 From: Xebar Saram Subject: Re: [ANN] org-dp-wrap-in-block Date: Sat, 7 Mar 2015 10:08:16 +0200 Message-ID: References: <87y4ukefci.fsf@gmail.com> <87k364e07m.fsf@gmail.com> Mime-Version: 1.0 Content-Type: multipart/alternative; boundary=047d7b0722d6a50ba90510ae4d15 Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:57719) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YU9mW-0006p7-JZ for emacs-orgmode@gnu.org; Sat, 07 Mar 2015 03:08:23 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YU9mU-000634-24 for emacs-orgmode@gnu.org; Sat, 07 Mar 2015 03:08:20 -0500 Received: from mail-pd0-x234.google.com ([2607:f8b0:400e:c02::234]:38610) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YU9mT-00062v-Hl for emacs-orgmode@gnu.org; Sat, 07 Mar 2015 03:08:17 -0500 Received: by pdbfl12 with SMTP id fl12so49871183pdb.5 for ; Sat, 07 Mar 2015 00:08:16 -0800 (PST) In-Reply-To: List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Thorsten Jolitz Cc: org mode --047d7b0722d6a50ba90510ae4d15 Content-Type: text/plain; charset=UTF-8 Ok so spend all morning picking up some elisp and i made some progress :) i can bind a key to auto warp a line. though i had to add a delete command since it always added 2 empty spaces after the wrap for some reason., it now looks like this (since its my first ever elisp code its probably very ugly :) ) : ;;;;;;;;;; wrap in elisp (defun z/wrap-in-elisp-block () (org-dp-wrap-in-block nil '(src-block nil nil nil (:language "emacs-lisp")))) (global-set-key (kbd "C-c w e") (lambda () (interactive) (beginning-of-line) (z/wrap-in-elisp-block) (beginning-of-line) (delete-char 2) ; (delete-indentation) )) this seems to work on a selection as well (with the whitespace again appearing) i have some more ideas and wondered if anyone knew how to extend it by maybe creating functions that will: 1. ask how many X lines to wrap 2. paste from clip already wrapped in language X 3. auto select a region/paragraph and wrap. im thinking maybe using expand-region.el for that thanks alot Thorsten for this great library! Z On Sat, Mar 7, 2015 at 8:37 AM, Xebar Saram wrote: > H Thorsten > > i know this is a *very* late response but life/work has dragged me in last > few months and only now i have time to take a look at org-dp :) > > if you remember i have near to null coding skills but i am trying to make > sense of stuff looking at the github site and the org-dp.el examples > > i understand (or at least i think i do) that org-dp is very complex and > covers not just wrapping in source code lines/areas but what i basically > need is to assign hotkeys to specific wrapping. mainly these: > > 1. a hotkey to quick wrap in language X a line > 2. a hotkey to quick wrap in language X y lines > 3. a hotkey to quick wrap in language X a selection > > any tips and how to start/create these keybinds? is there a more > comprehensive documentation on org-dp somewhere else i may have overlooked? > > thx alot! > > z > > > > > On Tue, Aug 19, 2014 at 10:41 PM, Thorsten Jolitz > wrote: > >> Xebar Saram writes: >> >> Hi, >> >> > will use it over the next few days and report bug (if any) that i find >> >> good, thanks. >> >> As a hint, here the global keybindings I defined in my init.el (my >> default use-case is to simply wrap in a plain emacs-lisp src-block). >> >> You can define all kinds of functions that don't prompt the user anymore >> by giving a list like >> >> '(elem-type contents replace affiliated args) >> >> as second arg to `org-dp-wrap-in-block', and in that list you can >> specify any kind of customized block. >> >> #+BEGIN_SRC emacs-lisp >> (when (require 'org-dp-lib nil t) >> >> (defun tj/wrap-in-elisp-block () >> (org-dp-wrap-in-block >> nil '(src-block nil nil nil (:language "emacs-lisp")))) >> >> (global-set-key (kbd "C-c w w") 'org-dp-wrap-in-block) >> >> (global-set-key (kbd "C-c w l") >> (lambda () >> (interactive) >> (let ((current-prefix-arg '(4))) >> (call-interactively >> 'org-dp-wrap-in-block)))) >> >> (global-set-key (kbd "C-c w e") >> (lambda () >> (interactive) >> (beginning-of-line) >> (tj/wrap-in-elisp-block))) >> >> (global-set-key (kbd "C-c w a") >> (lambda () >> (interactive) >> (backward-sexp) >> (beginning-of-line) >> (tj/wrap-in-elisp-block))) ) >> #+END_SRC >> >> >> > On Tue, Aug 19, 2014 at 5:14 PM, Thorsten Jolitz >> > wrote: >> > >> > Hi List, >> > >> > I've written the "eierlegende Wollmilchsau" of wrap-in-block >> > functions >> > (i.e. the 'all-inclusive mother of all wrap-in-block functions'). >> > >> > To check it out, you need to >> > 1. Clone or fork the git repo (https://github.com/tj64/org-dp) >> > 2. (add-to-list 'load-path "/path/to/org-dp/") and >> > 3. (require 'org-dp-lib') in your init file >> > >> > `org-dp-wrap-in-block' works on/with all kinds of Org blocks, and >> > can be >> > called interactively or non-interactively. >> > >> > It >> > >> > - inserts a new block when called on an empty line without >> > arguments >> > >> > - wraps sexp or region or '+/- X lines from point' into a newly >> > created >> > block >> > >> > - when called with point inside a block, it either >> > >> > + unwraps the blocks content, i.e. deletes the surrounding block >> > or >> > >> > + replaces the surrounding block with a different block >> > >> > It takes full account of affiliated keywords. In case of >> > src-blocks, >> > it puts src-block parameters on the block's headline, but with >> > `org-dp-toggle-headers' its easy to toggle between parameters >> > >> > ,---- >> > | #+begin_src R :noweb yes >> > `---- >> > >> > and headers >> > >> > ,---- >> > | #+header: :noweb yes >> > | #+begin_src R >> > `---- >> > >> > This function takes into account so many options that >> > combinatorics hits >> > you badly when trying to test all of them. Everything I tried >> > works now >> > with the current version, but its not unlikely that daily usage >> > will >> > discover some bugs or untreated corner cases. Please report them >> > with >> > backtrace. >> > >> > The good news is that besides its complexity, its not one >> > mega-convoluted monolithic function for a single task only. >> > Instead I >> > outfactored the core functionality into the 'org-dp.el' library >> > ("Declarative Programming with Org Elements") which offers >> > potentially >> > massive time (and headache) savings when programming with Org >> > Elements >> > on the local level. >> > >> > 'org-dp' acts on the internal representation of Org elements, and >> > due to >> > the total uniformity of this representation it is possible to do >> > diverse >> > actions on diverse elements in a very uniform way, thus the 3 >> > functions >> > >> > - `org-dp-create' >> > >> > - `org-dp-rewire' >> > >> > - `org-dp-prompt' >> > >> > should be all you need for all kinds of programming >> > tasks. `org-dp-wrap-in-block' is one example of how to program >> > with >> > org-dp, `org-dp-toggle-headers' is another one. >> > >> > Hope that this is useful. >> > >> > PS >> > >> > For the sake of completeness, here the docstring of >> > `org-dp-wrap-in-block': >> > >> > ,----[ C-h f org-dp-wrap-in-block RET ] >> > | org-dp-wrap-in-block is an interactive Lisp function in >> > | `org-dp-lib.el'. >> > | >> > | It is bound to C-c w w. >> > | >> > | (org-dp-wrap-in-block &optional LINES USER-INFO) >> > | >> > | Wrap sexp-at-point or region in Org block. >> > | >> > | A region instead of the sexp-at-point is wrapped if either >> > | >> > | - optional arg LINES is an (positive or negative) integer or >> > | >> > | - the region is active >> > | >> > | In the first case the region is determined by moving +/- LINES >> > | forward/backward from point using `forward-line', in the second >> > | case the active region is used. >> > | >> > | If point is already inside of a block, modify it or unwrap its >> > | content/value instead of wrapping it in another block, except if >> > | explicitly asked for by user. >> > | >> > | If USER-INFO is given, it should be a list in the format >> > returned by >> > | `org-dp-prompt', i.e. >> > | >> > | (elem-type contents replace affiliated args) >> > | >> > | Look up that function's docstring for more information about the >> > | list's elements. A non-nil USER-INFO suppresses calls to >> > | `org-dp-prompt' and is used instead of its return value. >> > `---- >> > >> > -- >> > cheers, >> > Thorsten >> > >> > >> > >> > >> >> -- >> cheers, >> Thorsten >> >> >> > --047d7b0722d6a50ba90510ae4d15 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Ok so spend all morning picking up some elisp and i made s= ome progress :)

i can bind a key to auto warp a line. th= ough i had to add a delete command since it always added 2 empty spaces aft= er the wrap for some reason., it now looks like this (since its my first ev= er elisp code its probably very ugly :) ) :

;= ;;;;;;;;; wrap in elisp
=C2=A0 (defun z/wrap-in-elisp-block ()
=C2=A0 =C2=A0 =C2=A0 (org-dp-wrap-in-block
=C2=A0 =C2=A0 = =C2=A0 =C2=A0nil '(src-block nil nil nil (:language "emacs-lisp&qu= ot;))))

(global-set-key (kbd "C-c w e")<= /div>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 (lambda ()
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (interactive)
=C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (beginning-of-l= ine)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 (z/wrap-in-elisp-block)
=C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (beginning-of-line)=
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0(delete-char 2)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0; (delete-indentation)
= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 ))
=

this seems to work on a selection as well (with t= he whitespace again appearing)

i have some more id= eas and wondered if anyone knew how to extend it by maybe creating function= s that will:
1. ask how many X lines to wrap
2. paste f= rom clip already wrapped in language X
3. auto select a region/pa= ragraph and wrap. im thinking maybe using expand-region.el for that

thanks alot Thorsten for this great library!
Z



On Sat, Mar 7, 2015 at 8:37 AM, Xeba= r Saram <zeltakc@gmail.com> wrote:
H Thorsten

i know this is a = *very* late response but life/work has dragged me in last few months and on= ly now i have time to take a look at org-dp :)

if = you remember i have near to null coding skills but i am trying to make sens= e of stuff looking at the github site and the org-dp.el examples
=
i understand (or at least i think i do) that org-dp is very = complex and covers not just wrapping in source code lines/areas but what i = basically need is to assign hotkeys to specific wrapping. mainly these:

1. a hotkey to quick wrap in language X a line
<= div>2. a hotkey to quick wrap in language X y lines
3. a hotk= ey to quick wrap in language X a selection

any= tips and how to start/create these keybinds? is there a more comprehensive= documentation on org-dp somewhere else i may have overlooked?
thx alot!

z

=


On Tue, Aug 19, 2014 = at 10:41 PM, Thorsten Jolitz <tjolitz@gmail.com> wrote:
<= blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px= #ccc solid;padding-left:1ex">Xebar Saram <zeltakc@gmail.com> writes:

Hi,

> will use it over the next few days and report bug (if any) that i find=

good, thanks.

As a hint, here the global keybindings I defined in my init.el (my
default use-case is to simply wrap in a plain emacs-lisp src-block).

You can define all kinds of functions that don't prompt the user anymor= e
by giving a list like

=C2=A0'(elem-type contents replace affiliated args)

as second arg to `org-dp-wrap-in-block', and in that list you can
specify any kind of customized block.

#+BEGIN_SRC emacs-lisp
(when (require 'org-dp-lib nil t)

=C2=A0 (defun tj/wrap-in-elisp-block ()
=C2=A0 =C2=A0 (org-dp-wrap-in-block
=C2=A0 =C2=A0 =C2=A0nil '(src-block nil nil nil (:language "emacs-= lisp"))))

=C2=A0 (global-set-key (kbd "C-c w w") 'org-dp-wrap-in-block)=

=C2=A0 (global-set-key (kbd "C-c w l")
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (lambda () =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (inte= ractive)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (let = ((current-prefix-arg '(4)))
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 (call-interactively
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0'org-dp-wrap-in-block))))

=C2=A0 (global-set-key (kbd "C-c w e")
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (lambda () =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (inte= ractive)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (begi= nning-of-line)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (tj/w= rap-in-elisp-block)))

=C2=A0 (global-set-key (kbd "C-c w a")
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (lambda () =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (inte= ractive)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (back= ward-sexp)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (begi= nning-of-line)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (tj/w= rap-in-elisp-block))) )
#+END_SRC


> On Tue, Aug 19, 2014 at 5:14 PM, Thorsten Jolitz <tjolitz@gmail.com>
> wrote:
>
>=C2=A0 =C2=A0 =C2=A0Hi List,
>
>=C2=A0 =C2=A0 =C2=A0I've written the "eierlegende Wollmilchsau= " of wrap-in-block
>=C2=A0 =C2=A0 =C2=A0functions
>=C2=A0 =C2=A0 =C2=A0(i.e. the 'all-inclusive mother of all wrap-in-= block functions').
>
>=C2=A0 =C2=A0 =C2=A0To check it out, you need to
>=C2=A0 =C2=A0 =C2=A01. Clone or fork the git repo (https://github.com/tj64/org-dp= )
>=C2=A0 =C2=A0 =C2=A02. (add-to-list 'load-path "/path/to/org-d= p/") and
>=C2=A0 =C2=A0 =C2=A03. (require 'org-dp-lib') in your init file=
>
>=C2=A0 =C2=A0 =C2=A0`org-dp-wrap-in-block' works on/with all kinds = of Org blocks, and
>=C2=A0 =C2=A0 =C2=A0can be
>=C2=A0 =C2=A0 =C2=A0called interactively or non-interactively.
>
>=C2=A0 =C2=A0 =C2=A0It
>
>=C2=A0 =C2=A0 =C2=A0- inserts a new block when called on an empty line = without
>=C2=A0 =C2=A0 =C2=A0arguments
>
>=C2=A0 =C2=A0 =C2=A0- wraps sexp or region or '+/- X lines from poi= nt' into a newly
>=C2=A0 =C2=A0 =C2=A0created
>=C2=A0 =C2=A0 =C2=A0block
>
>=C2=A0 =C2=A0 =C2=A0- when called with point inside a block, it either<= br> >
>=C2=A0 =C2=A0 =C2=A0+ unwraps the blocks content, i.e. deletes the surr= ounding block
>=C2=A0 =C2=A0 =C2=A0or
>
>=C2=A0 =C2=A0 =C2=A0+ replaces the surrounding block with a different b= lock
>
>=C2=A0 =C2=A0 =C2=A0It takes full account of affiliated keywords. In ca= se of
>=C2=A0 =C2=A0 =C2=A0src-blocks,
>=C2=A0 =C2=A0 =C2=A0it puts src-block parameters on the block's hea= dline, but with
>=C2=A0 =C2=A0 =C2=A0`org-dp-toggle-headers' its easy to toggle betw= een parameters
>
>=C2=A0 =C2=A0 =C2=A0,----
>=C2=A0 =C2=A0 =C2=A0| #+begin_src R :noweb yes
>=C2=A0 =C2=A0 =C2=A0`----
>
>=C2=A0 =C2=A0 =C2=A0and headers
>
>=C2=A0 =C2=A0 =C2=A0,----
>=C2=A0 =C2=A0 =C2=A0| #+header: :noweb yes
>=C2=A0 =C2=A0 =C2=A0| #+begin_src R
>=C2=A0 =C2=A0 =C2=A0`----
>
>=C2=A0 =C2=A0 =C2=A0This function takes into account so many options th= at
>=C2=A0 =C2=A0 =C2=A0combinatorics hits
>=C2=A0 =C2=A0 =C2=A0you badly when trying to test all of them. Everythi= ng I tried
>=C2=A0 =C2=A0 =C2=A0works now
>=C2=A0 =C2=A0 =C2=A0with the current version, but its not unlikely that= daily usage
>=C2=A0 =C2=A0 =C2=A0will
>=C2=A0 =C2=A0 =C2=A0discover some bugs or untreated corner cases. Pleas= e report them
>=C2=A0 =C2=A0 =C2=A0with
>=C2=A0 =C2=A0 =C2=A0backtrace.
>
>=C2=A0 =C2=A0 =C2=A0The good news is that besides its complexity, its n= ot one
>=C2=A0 =C2=A0 =C2=A0mega-convoluted monolithic function for a single ta= sk only.
>=C2=A0 =C2=A0 =C2=A0Instead I
>=C2=A0 =C2=A0 =C2=A0outfactored the core functionality into the 'or= g-dp.el' library
>=C2=A0 =C2=A0 =C2=A0("Declarative Programming with Org Elements&qu= ot;) which offers
>=C2=A0 =C2=A0 =C2=A0potentially
>=C2=A0 =C2=A0 =C2=A0massive time (and headache) savings when programmin= g with Org
>=C2=A0 =C2=A0 =C2=A0Elements
>=C2=A0 =C2=A0 =C2=A0on the local level.
>
>=C2=A0 =C2=A0 =C2=A0'org-dp' acts on the internal representatio= n of Org elements, and
>=C2=A0 =C2=A0 =C2=A0due to
>=C2=A0 =C2=A0 =C2=A0the total uniformity of this representation it is p= ossible to do
>=C2=A0 =C2=A0 =C2=A0diverse
>=C2=A0 =C2=A0 =C2=A0actions on diverse elements in a very uniform way, = thus the 3
>=C2=A0 =C2=A0 =C2=A0functions
>
>=C2=A0 =C2=A0 =C2=A0- `org-dp-create'
>
>=C2=A0 =C2=A0 =C2=A0- `org-dp-rewire'
>
>=C2=A0 =C2=A0 =C2=A0- `org-dp-prompt'
>
>=C2=A0 =C2=A0 =C2=A0should be all you need for all kinds of programming=
>=C2=A0 =C2=A0 =C2=A0tasks. `org-dp-wrap-in-block' is one example of= how to program
>=C2=A0 =C2=A0 =C2=A0with
>=C2=A0 =C2=A0 =C2=A0org-dp, `org-dp-toggle-headers' is another one.=
>
>=C2=A0 =C2=A0 =C2=A0Hope that this is useful.
>
>=C2=A0 =C2=A0 =C2=A0PS
>
>=C2=A0 =C2=A0 =C2=A0For the sake of completeness, here the docstring of=
>=C2=A0 =C2=A0 =C2=A0`org-dp-wrap-in-block':
>
>=C2=A0 =C2=A0 =C2=A0,----[ C-h f org-dp-wrap-in-block RET ]
>=C2=A0 =C2=A0 =C2=A0| org-dp-wrap-in-block is an interactive Lisp funct= ion in
>=C2=A0 =C2=A0 =C2=A0| `org-dp-lib.el'.
>=C2=A0 =C2=A0 =C2=A0|
>=C2=A0 =C2=A0 =C2=A0| It is bound to C-c w w.
>=C2=A0 =C2=A0 =C2=A0|
>=C2=A0 =C2=A0 =C2=A0| (org-dp-wrap-in-block &optional LINES USER-IN= FO)
>=C2=A0 =C2=A0 =C2=A0|
>=C2=A0 =C2=A0 =C2=A0| Wrap sexp-at-point or region in Org block.
>=C2=A0 =C2=A0 =C2=A0|
>=C2=A0 =C2=A0 =C2=A0| A region instead of the sexp-at-point is wrapped = if either
>=C2=A0 =C2=A0 =C2=A0|
>=C2=A0 =C2=A0 =C2=A0| - optional arg LINES is an (positive or negative)= integer or
>=C2=A0 =C2=A0 =C2=A0|
>=C2=A0 =C2=A0 =C2=A0| - the region is active
>=C2=A0 =C2=A0 =C2=A0|
>=C2=A0 =C2=A0 =C2=A0| In the first case the region is determined by mov= ing +/- LINES
>=C2=A0 =C2=A0 =C2=A0| forward/backward from point using `forward-line&#= 39;, in the second
>=C2=A0 =C2=A0 =C2=A0| case the active region is used.
>=C2=A0 =C2=A0 =C2=A0|
>=C2=A0 =C2=A0 =C2=A0| If point is already inside of a block, modify it = or unwrap its
>=C2=A0 =C2=A0 =C2=A0| content/value instead of wrapping it in another b= lock, except if
>=C2=A0 =C2=A0 =C2=A0| explicitly asked for by user.
>=C2=A0 =C2=A0 =C2=A0|
>=C2=A0 =C2=A0 =C2=A0| If USER-INFO is given, it should be a list in the= format
>=C2=A0 =C2=A0 =C2=A0returned by
>=C2=A0 =C2=A0 =C2=A0| `org-dp-prompt', i.e.
>=C2=A0 =C2=A0 =C2=A0|
>=C2=A0 =C2=A0 =C2=A0| (elem-type contents replace affiliated args)
>=C2=A0 =C2=A0 =C2=A0|
>=C2=A0 =C2=A0 =C2=A0| Look up that function's docstring for more in= formation about the
>=C2=A0 =C2=A0 =C2=A0| list's elements. A non-nil USER-INFO suppress= es calls to
>=C2=A0 =C2=A0 =C2=A0| `org-dp-prompt' and is used instead of its re= turn value.
>=C2=A0 =C2=A0 =C2=A0`----
>
>=C2=A0 =C2=A0 =C2=A0--
>=C2=A0 =C2=A0 =C2=A0cheers,
>=C2=A0 =C2=A0 =C2=A0Thorsten
>
>
>
>

--
cheers,
Thorsten




--047d7b0722d6a50ba90510ae4d15--