Re: [O] PATCH: ox: Starting source code export at non-zero (-n value)

2016-05-31 Thread Nicolas Goaziou
Hello,

Brian Carlson  writes:

> Should I have made the changes to contrib/orgmanual.org rather than
> doc/org.texi. Or should I have made changes to both?

Changes to both is fine.

I applied your patch. Thank you.

Regards,

-- 
Nicolas Goaziou



Re: [O] PATCH: ox: Starting source code export at non-zero (-n value)

2016-05-31 Thread Brian Carlson



On 2016-05-26 02:52, Nicolas Goaziou wrote:


I realize that the org texinfo manual probably needs to be updated, as well. 
I'll take a stab at updating that unless
someone else wants to take that on.


You're right. You can merge ORG-NEWS modifications into the
documentation patch.


I just realized. I the patch I submitted had modifications to doc/org.texi.

Should I have made the changes to contrib/orgmanual.org rather than 
doc/org.texi. Or should I have made changes to both?



Thanks,
;-b



Re: [O] PATCH: ox: Starting source code export at non-zero (-n value)

2016-05-29 Thread Brian Carlson


On 2016-05-26 02:52, Nicolas Goaziou wrote:

I realize that the org texinfo manual probably needs to be updated, as well. 
I'll take a stab at updating that unless
someone else wants to take that on.


You're right. You can merge ORG-NEWS modifications into the
documentation patch.



Here is the patch for both doc/org.texi and etc/ORG-NEWS. I apologize for the 
delay in getting this to the list.


Thanks!
;-b


>From 466f0c755180f7475484abc6715accdf74a8a0f3 Mon Sep 17 00:00:00 2001
From: "Brian J. Carlson" 
Date: Sun, 29 May 2016 22:37:18 -0400
Subject: [PATCH] org.texi: Updated doc for [+-]n in SRC/EXAMPLE export

* doc/org.texi (Timers): Added information about optional argument to
  -n/+n line-numbering
* etc/ORG-NEWS: Added infomation for "Provide offset to [+-]n in
  SRC/EXAMPLE export"  (commit af8e3d8)
---
 doc/org.texi | 29 ++---
 etc/ORG-NEWS | 16 
 2 files changed, 38 insertions(+), 7 deletions(-)

diff --git a/doc/org.texi b/doc/org.texi
index 9d89975..0d0d30f 100644
--- a/doc/org.texi
+++ b/doc/org.texi
@@ -10045,13 +10045,28 @@ shortcuts to easily insert code blocks.
 
 Both in @code{example} and in @code{src} snippets, you can add a @code{-n}
 switch to the end of the @code{BEGIN} line, to get the lines of the example
-numbered.  If you use a @code{+n} switch, the numbering from the previous
-numbered snippet will be continued in the current one.  In literal examples,
-Org will interpret strings like @samp{(ref:name)} as labels, and use them as
-targets for special hyperlinks like @code{[[(name)]]} (i.e., the reference name
-enclosed in single parenthesis).  In HTML, hovering the mouse over such a
-link will remote-highlight the corresponding code line, which is kind of
-cool.
+numbered.  The @code{-n} takes an optional numeric argument specifying the starting
+line number of the block. If you use a @code{+n} switch, the numbering from
+the previous numbered snippet will be continued in the current one.  The
+@code{+n} can also take a numeric argument. The value of the argument will be
+added to the last line of the previous block to determine the starting line
+number. 
+@example
+#+BEGIN_SRC emacs-lisp -n 20
+ ;; this will export with line number 20
+ (message "This is line 21")
+#+END_SRC
+#+BEGIN_SRC emacs-lisp +n 10
+ ;; This will be listed as line 31
+ (message "This is line 32")
+#+END_SRC
+@end example
+
+In literal examples, Org will interpret strings like @samp{(ref:name)} as
+labels, and use them as targets for special hyperlinks like @code{[[(name)]]}
+(i.e., the reference name enclosed in single parenthesis).  In HTML, hovering
+the mouse over such a link will remote-highlight the corresponding code line,
+which is kind of cool.
 
 You can also add a @code{-r} switch which @i{removes} the labels from the
 source code@footnote{Adding @code{-k} to @code{-n -r} will @i{keep} the
diff --git a/etc/ORG-NEWS b/etc/ORG-NEWS
index 72f8d5c..34eb9ab 100644
--- a/etc/ORG-NEWS
+++ b/etc/ORG-NEWS
@@ -159,6 +159,22 @@ If the block has a =#+NAME:= attribute assigned, then the HTML element
 will have an ~id~ attribute with that name in the HTML export. This
 enables one to create links to these elements in other places, e.g.,
 ~text~.
+ Line Numbering in SRC/EXAMPLE blocks support arbitrary start number
+The ~-n~ option to ~SRC~ and ~EXAMPLE~ blocks can now take a numeric
+argument to specify the staring line number for the source or example
+block. The ~+n~ option can now take a numeric argument that will be
+added to the last line number from the previous block as the starting
+point for the SRC/EXAMPLE block.
+#+BEGIN_SRC org
+  ,#+BEGIN_SRC emacs-lisp -n 20
+;; this will export with line number 20
+(message "This is line 21")
+  ,#+END_SRC
+  ,#+BEGIN_SRC emacs-lisp +n 10
+;; This will be listed as line 31
+(message "This is line 32")
+  ,#+END_SRC
+#+END_SRC
 
 *** Babel
  Support for SLY in Lisp blocks
-- 
2.8.3



Re: [O] PATCH: ox: Starting source code export at non-zero (-n value)

2016-05-29 Thread Brian Carlson



On 2016-05-26 02:52, Nicolas Goaziou wrote:

Hello,

Brian Carlson  writes:


I put the signed paperwork into the mail this evening.

Great.


Sure. I'll use previous entries as a starting point.
I was thinking that the entry should go under: Version 9.0/New Features/Export/
unless there's a more appropriate place in the Document.

I also think this is the correct location.


Here's what I thought about putting. I can make a patch if that is preferred
means of submission. If what I've written doesn't make sense let me know.

 Line Numbering in SRC/EXAMPLE blocks support arbitrary start number
The -n option to SRC and EXAMPLE blocks can now take an numeric argument to 
specify

"a numeric argument"


the staring line number for the source or example block. The +n option can now
take a numeric argument that will be added to the last line number from the
previous block as the starting point for the SRC/EXAMPLE block.
#+BEGIN_SRC emacs-lisp -n 20
;; this will export with line number 20
(message "This is line 21")
#+END_SRC

#+BEGIN_SRC emacs-lisp +n 10
;; This will be listed as line 31
(message "This is line 32")
#+END_SRC

I realize that the org texinfo manual probably needs to be updated, as well. 
I'll take a stab at updating that unless
someone else wants to take that on.

You're right. You can merge ORG-NEWS modifications into the
documentation patch.

Thank you !

Regards,






Re: [O] PATCH: ox: Starting source code export at non-zero (-n value)

2016-05-26 Thread Nicolas Goaziou
Hello,

Brian Carlson  writes:

> I put the signed paperwork into the mail this evening.

Great.

> Sure. I'll use previous entries as a starting point.
> I was thinking that the entry should go under: Version 9.0/New 
> Features/Export/
> unless there's a more appropriate place in the Document.

I also think this is the correct location.

> Here's what I thought about putting. I can make a patch if that is preferred
> means of submission. If what I've written doesn't make sense let me know.
>
>  Line Numbering in SRC/EXAMPLE blocks support arbitrary start number
> The -n option to SRC and EXAMPLE blocks can now take an numeric argument to 
> specify

"a numeric argument"

> the staring line number for the source or example block. The +n option can now
> take a numeric argument that will be added to the last line number from the
> previous block as the starting point for the SRC/EXAMPLE block.
> #+BEGIN_SRC emacs-lisp -n 20
> ;; this will export with line number 20
> (message "This is line 21")
> #+END_SRC
>
> #+BEGIN_SRC emacs-lisp +n 10
> ;; This will be listed as line 31
> (message "This is line 32")
> #+END_SRC
>
> I realize that the org texinfo manual probably needs to be updated, as well. 
> I'll take a stab at updating that unless 
> someone else wants to take that on.

You're right. You can merge ORG-NEWS modifications into the
documentation patch.

Thank you !

Regards,

-- 
Nicolas Goaziou



Re: [O] PATCH: ox: Starting source code export at non-zero (-n value)

2016-05-25 Thread Brian Carlson


On 2016-05-24 16:33, Nicolas Goaziou wrote:
> Completing myself

Great. Thanks! Very much appreciated. I went back and forth on the tests
with the "string formatting." I should have gone with my original thoughts ;)
The fixes to (org-export-get-loc) were a bit beyond my skill level.
I don't work in lisp/scheme/emacs-lisp too much. Usually I know just enough
to be dangerous ;)

So Thanks!

>> Applied, with a small refactoring. Thank you.

No problem. Hope it helps others.

>> Please let us know when the FSF paperwork is done

I put the signed paperwork into the mail this evening.


> Also, could you provide and ORG-NEWS entry for that patch?

Sure. I'll use previous entries as a starting point.
I was thinking that the entry should go under: Version 9.0/New Features/Export/
unless there's a more appropriate place in the Document.

Here's what I thought about putting. I can make a patch if that is preferred
means of submission. If what I've written doesn't make sense let me know.

--8<---cut here---start->8---
 Line Numbering in SRC/EXAMPLE blocks support arbitrary start number
The -n option to SRC and EXAMPLE blocks can now take an numeric argument to 
specify
the staring line number for the source or example block. The +n option can now
take a numeric argument that will be added to the last line number from the
previous block as the starting point for the SRC/EXAMPLE block.
#+BEGIN_SRC emacs-lisp -n 20
;; this will export with line number 20
(message "This is line 21")
#+END_SRC

#+BEGIN_SRC emacs-lisp +n 10
;; This will be listed as line 31
(message "This is line 32")
#+END_SRC
--8<---cut here---end--->8---

I realize that the org texinfo manual probably needs to be updated, as well. I'll take a stab at updating that unless 
someone else wants to take that on.


Thanks,
;-b



Re: [O] PATCH: ox: Starting source code export at non-zero (-n value)

2016-05-24 Thread Nicolas Goaziou
Completing myself

Nicolas Goaziou  writes:

> Applied, with a small refactoring. Thank you.
>
> Please let us know when the FSF paperwork is done

Also, could you provide and ORG-NEWS entry for that patch?

Thank you.

Regards,



Re: [O] PATCH: ox: Starting source code export at non-zero (-n value)

2016-05-24 Thread Nicolas Goaziou
Hello,

Brian Carlson  writes:

> I believe that I addressed all your review comments/recommendations.
> I am submitting the latest patch. This patch also include some
> additions to /testing/lisp/test-ox.el to test the feature. All of the
> existing tests pass (without modification).

Applied, with a small refactoring. Thank you.

Please let us know when the FSF paperwork is done


Regards,

-- 
Nicolas Goaziou



[O] PATCH: ox: Starting source code export at non-zero (-n value)

2016-05-22 Thread Brian Carlson



On 2016-05-20 16:48, Nicolas Goaziou wrote:

The code is written with the following design:

-n   is the same as -n 1 : The functionality is unchanged
+n   is the same as +n 1 :  The functionality is unchanged

-n X   will "reset" and start new code block starting at line X
+n X   will "add" X to the last line of the block before.


Thank you for the patch. It looks like an useful addition to Org. Some
comments follow.


I believe that I addressed all your review comments/recommendations. I 
am submitting the latest patch. This patch also include some additions 
to /testing/lisp/test-ox.el to test the feature. All of the existing 
tests pass (without modification).



In general the main change was to (org-export-get-loc) which returns
the number of lines "before" the first line of a block (as it always 
has) regardless of the type (new/continued) (or nil if the block does 
not provide +/-n option (as it always has).



Thanks,
;-b



>From dd01dada2c3c0ee0d8cc28184026720f8602680b Mon Sep 17 00:00:00 2001
From: Brian Carlson 
Date: Mon, 16 May 2016 10:58:01 -0400
Subject: [PATCH] ox: Provide offset to [+-]n in SRC/EXAMPLE export

* lisp/org-element.el (org-element-example-block-parser): Use cons cell
  for :number-lines specifying offset in addition to type (new/continue).
  ('continue . offset) for :number-lines will add this offset count to
  the last line number. ('new . offset) for :number-lines will reset the
  line number counting starting at offset
(org-element-src-block-parser): same for SRC block as EXAMPLE block

* lisp/ox-html.el (org-html-format-code): Use cons cell :number-lines

* lisp/ox-latex.el (org-latex-src-block): Use cons cell :number-lines

* lisp/ox-odt.el (org-odt-format-code): Use cons cell for :number-lines

* lisp/ox.el (org-export-resolve-coderef): Use cons cell for :number-lines
(org-export-get-loc): Use new cons cell for :number-lines
(org-export-format-code-default): Use new cons cell for :number-lines

* testing/lisp/test-ox.el  (ert-deftest test-org-export/get-loc): Tests for
changes
(test-org-gen-loc-list): helper function for test-org-export/get-loc

* contrib/lisp/ox-groff.el (org-groff-src-block): Use new cons cell for
  :number-lines
---
 contrib/lisp/ox-groff.el |   4 +-
 lisp/org-element.el  |  26 ---
 lisp/ox-html.el  |   4 +-
 lisp/ox-latex.el |   4 +-
 lisp/ox-odt.el   |   4 +-
 lisp/ox.el   |  20 +
 testing/lisp/test-ox.el  | 109 +++
 7 files changed, 146 insertions(+), 25 deletions(-)

diff --git a/contrib/lisp/ox-groff.el b/contrib/lisp/ox-groff.el
index b49edce..25ed8b0 100644
--- a/contrib/lisp/ox-groff.el
+++ b/contrib/lisp/ox-groff.el
@@ -1488,9 +1488,7 @@ contextual information."
  (custom-env (and lang
   (cadr (assq (intern lang)
   org-groff-custom-lang-environments
- (num-start (case (org-element-property :number-lines src-block)
-  (continued (org-export-get-loc src-block info))
-  (new 0)))
+ (num-start (org-export-get-loc src-block info))
  (retain-labels (org-element-property :retain-labels src-block))
  (caption (and (not (org-export-read-attribute
 			 :attr_groff src-block :disable-caption))
diff --git a/lisp/org-element.el b/lisp/org-element.el
index 368da60..5f62a7e 100644
--- a/lisp/org-element.el
+++ b/lisp/org-element.el
@@ -1896,8 +1896,16 @@ containing `:begin', `:end', `:number-lines', `:preserve-indent',
 		 ;; Switches analysis
 		 (number-lines
 		  (cond ((not switches) nil)
-			((string-match "-n\\>" switches) 'new)
-			((string-match "+n\\>" switches) 'continued)))
+			((string-match "-n *\\([0-9]+\\)\\>" switches)
+			 ;; subtract 1 to give number of lines before first line
+			 (cons 'new (- (string-to-number (match-string 1 switches)) 1)))
+			((string-match "-n\\>" switches)
+			 (cons 'new 0))
+			((string-match "+n *\\([0-9]+\\)\\>" switches)
+			 ;; subtract 1 to give number of lines between last number and first line
+			 (cons 'continued (- (string-to-number (match-string 1 switches)) 1)))
+			((string-match "+n\\>" switches)
+			 (cons 'continued 0
 		 (preserve-indent
 		  (and switches (string-match "-i\\>" switches)))
 		 ;; Should labels be retained in (or stripped from) example
@@ -2393,7 +2401,7 @@ Assume point is at the beginning of the block."
 		(looking-at
 		 (concat "^[ \t]*#\\+BEGIN_SRC"
 			 "\\(?: +\\(\\S-+\\)\\)?"
-			 "\\(\\(?: +\\(?:-l \".*?\"\\|[-+][A-Za-z]\\)\\)+\\)?"
+			 "\\(\\(?: +\\(?:-l \".+\"\\|[+-]n *[0-9]+\\|-[iIkKrRnN]\\|+[nN]\\)\\)+\\)?"
 			 "\\(.*\\)[ \t]*$"))
 		(org-match-string-no-properties 1)))
 		 ;; Get switches.
@@ -2403,8 +2411,16 @@ Assume point is at the beginning of the block."
 		 ;; Switches analysis
 		 (number-lines
 		  (cond ((not switches) nil)
-			((string-match "-n\\>"