No script-local scope for NextNonBlankLine().
The example does not work when used literally, since the
NextNonBlankLine() function is defined to be script-local, but is not
invoked as such (i.e. using the <SID> prefix).
As this is left to the reader as an exercise anyway, it should better be
removed here.
    
        | author | Vincent Driessen <vincent@3rdcloud.com> | 
    
        | date | Mon, 04 Jun 2012 23:52:31 +0200 | 
    
    
        | parents | fbdd1072a913 | 
    
        | children | 7dcc3e9f4ec3 | 
    
        | branches/tags | (none) | 
    
        | files | chapters/49.markdown | 
Changes
    
--- a/chapters/49.markdown	Mon Jun 04 22:52:33 2012 +0200
+++ b/chapters/49.markdown	Mon Jun 04 23:52:31 2012 +0200
@@ -330,7 +330,7 @@
 a given line.  Add the following function above `IndentLevel`:
 
     :::vim
-    function! s:NextNonBlankLine(lnum)
+    function! NextNonBlankLine(lnum)
         let numlines = line('$')
         let current = a:lnum + 1