jota 0.9.0dev4 → 0.9.0dev5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/clip.rb +5 -2
- data/lib/helper.rb +13 -3
- data/lib/immediate.rb +4 -2
- data/lib/jota.rb +10 -4
- data/lib/jota_curses.rb +103 -43
- data/lib/version.rb +2 -2
- metadata +4 -5
    
        data/lib/clip.rb
    CHANGED
    
    | @@ -1,5 +1,5 @@ | |
| 1 1 |  | 
| 2 | 
            -
            # $Id: clip.rb  | 
| 2 | 
            +
            # $Id: clip.rb 287 2010-11-21 17:31:39Z dz $
         | 
| 3 3 |  | 
| 4 4 | 
             
            require 'time'
         | 
| 5 5 | 
             
            require 'version'
         | 
| @@ -158,11 +158,14 @@ def text=(str) | |
| 158 158 | 
             
            end 
         | 
| 159 159 |  | 
| 160 160 | 
             
            # Return modified title for easier readabiliy
         | 
| 161 | 
            +
            # - empty string is replaced with "..."
         | 
| 162 | 
            +
            # - tabs are replaced with 4 spaces
         | 
| 161 163 | 
             
            def title!
         | 
| 162 164 | 
             
            	if @title.strip == "" then
         | 
| 163 165 | 
             
            		return "..."
         | 
| 164 166 | 
             
            	else
         | 
| 165 | 
            -
            		 | 
| 167 | 
            +
            		
         | 
| 168 | 
            +
            		return expand_tabs(@title)
         | 
| 166 169 | 
             
            	end
         | 
| 167 170 | 
             
            end
         | 
| 168 171 |  | 
    
        data/lib/helper.rb
    CHANGED
    
    | @@ -1,5 +1,5 @@ | |
| 1 1 |  | 
| 2 | 
            -
            # $Id: helper.rb  | 
| 2 | 
            +
            # $Id: helper.rb 287 2010-11-21 17:31:39Z dz $
         | 
| 3 3 |  | 
| 4 4 | 
             
            def escape_from(str)
         | 
| 5 5 | 
             
            	str.gsub!(/\n(>*)From /,"\n\\1>From ")
         | 
| @@ -12,17 +12,27 @@ def unescape_from(str) | |
| 12 12 | 
             
            end
         | 
| 13 13 |  | 
| 14 14 | 
             
            # expand strftime() time in str and expand %s to 'filename'
         | 
| 15 | 
            +
             | 
| 15 16 | 
             
            def expand_filename(str, dirname, filename)
         | 
| 17 | 
            +
                    # test on $RUBY_PLATFORM is less reliable, can be mswin, mingw, java
         | 
| 18 | 
            +
                    if ENV["HOMEDRIVE"] then
         | 
| 19 | 
            +
                            homedir = ENV["HOMEDRIVE"]+"\\"+ENV["HOMEPATH"]
         | 
| 20 | 
            +
                    else
         | 
| 21 | 
            +
                            homedir = ENV["HOME"]
         | 
| 22 | 
            +
                    end
         | 
| 16 23 | 
             
            	result = Time.now.strftime(str)
         | 
| 17 24 | 
             
            	result = result.gsub(/\$f/,filename)
         | 
| 18 | 
            -
            	result = result.gsub(/\$d/,dirname.gsub(/[^a-z0-9._-]+/i,"_"))
         | 
| 19 25 | 
             
            	result = result.gsub(/\$p/,Process::pid.to_s)
         | 
| 20 | 
            -
            	result = result.gsub(/\$h/, | 
| 26 | 
            +
            	result = result.gsub(/\$h/,homedir)
         | 
| 21 27 | 
             
            	result = result.gsub(/\$\$/,"$")
         | 
| 22 28 | 
             
            	print_debug "expanding '#{filename}' to '#{result}'"
         | 
| 23 29 | 
             
            	return result
         | 
| 24 30 | 
             
            end
         | 
| 25 31 |  | 
| 32 | 
            +
            def expand_tabs(str)
         | 
| 33 | 
            +
                    return str.gsub(/([^\t]{8})|([^\t]*)\t/n){[$+].pack("A8")}
         | 
| 34 | 
            +
            end
         | 
| 35 | 
            +
             | 
| 26 36 | 
             
            def debug_file
         | 
| 27 37 | 
             
            	if $debug_file.nil? then
         | 
| 28 38 | 
             
            		begin
         | 
    
        data/lib/immediate.rb
    CHANGED
    
    | @@ -13,6 +13,7 @@ def open(filename) | |
| 13 13 | 
             
            	begin
         | 
| 14 14 | 
             
            		new_data = ClipArray.open(filename)
         | 
| 15 15 | 
             
            	rescue AppError, SystemCallError => msg
         | 
| 16 | 
            +
                            puts msg
         | 
| 16 17 | 
             
            		return nil
         | 
| 17 18 | 
             
            	end
         | 
| 18 19 |  | 
| @@ -53,8 +54,9 @@ end | |
| 53 54 |  | 
| 54 55 | 
             
            def list
         | 
| 55 56 | 
             
            	print_verbose "immediately listing #{@data.length} clips"
         | 
| 56 | 
            -
            	@data. | 
| 57 | 
            -
             | 
| 57 | 
            +
            	@data.each_index do | i |
         | 
| 58 | 
            +
                            c = @data[i]
         | 
| 59 | 
            +
                            print "%d\t%s\t%s\n" % [i,c.type,c.title!]
         | 
| 58 60 | 
             
            	end
         | 
| 59 61 | 
             
            	@data.close
         | 
| 60 62 | 
             
            end
         | 
    
        data/lib/jota.rb
    CHANGED
    
    | @@ -1,6 +1,6 @@ | |
| 1 1 | 
             
            #!/usr/bin/env ruby
         | 
| 2 2 |  | 
| 3 | 
            -
            # $Id: jota.rb  | 
| 3 | 
            +
            # $Id: jota.rb 287 2010-11-21 17:31:39Z dz $
         | 
| 4 4 |  | 
| 5 5 |  | 
| 6 6 | 
             
            require 'getoptlong'
         | 
| @@ -130,7 +130,8 @@ def parse_args | |
| 130 130 | 
             
            				error("Illegal argument '#{opt}'")
         | 
| 131 131 | 
             
            			end
         | 
| 132 132 | 
             
            		end
         | 
| 133 | 
            -
            	rescue GetoptLong::InvalidOption
         | 
| 133 | 
            +
            	rescue GetoptLong::InvalidOption, GetoptLong::MissingArgument
         | 
| 134 | 
            +
                            puts "type #{$0} -h for help"
         | 
| 134 135 | 
             
            		exit(EX_USAGE)
         | 
| 135 136 | 
             
            	end
         | 
| 136 137 |  | 
| @@ -163,18 +164,23 @@ end | |
| 163 164 |  | 
| 164 165 | 
             
            def goto_or_fail(object,re)
         | 
| 165 166 | 
             
            	if not object.clip_array.goto_regexp(re) then
         | 
| 167 | 
            +
                            if object.respond_to? :finish then
         | 
| 168 | 
            +
                                    object.finish   # some objects needs to be tidied up
         | 
| 169 | 
            +
                            end
         | 
| 166 170 | 
             
            		error("Clip with title matching /#{re}/ not found.")
         | 
| 167 171 | 
             
            	end
         | 
| 168 172 | 
             
            end
         | 
| 169 173 |  | 
| 170 174 | 
             
            def open_or_fail(object,filename)
         | 
| 171 175 | 
             
            	if not object.open(filename) then
         | 
| 172 | 
            -
             | 
| 176 | 
            +
                            # error message should be written in object.open
         | 
| 177 | 
            +
                            error("")
         | 
| 173 178 | 
             
            	end
         | 
| 174 179 | 
             
            end
         | 
| 175 180 |  | 
| 176 181 | 
             
            def start_curses
         | 
| 177 182 | 
             
            	curses = JotaCurses.new
         | 
| 183 | 
            +
             | 
| 178 184 | 
             
            	if @filename then
         | 
| 179 185 | 
             
            		open_or_fail(curses,@filename) 
         | 
| 180 186 | 
             
            		if @regexp then
         | 
| @@ -299,7 +305,7 @@ def run | |
| 299 305 | 
             
            	else
         | 
| 300 306 | 
             
            		start_gui
         | 
| 301 307 | 
             
            	end
         | 
| 302 | 
            -
             | 
| 308 | 
            +
             | 
| 303 309 | 
             
            	if $VERBOSE then
         | 
| 304 310 | 
             
            		print_verbose "stopped at #{Time.now}"
         | 
| 305 311 | 
             
            	end
         | 
    
        data/lib/jota_curses.rb
    CHANGED
    
    | @@ -1,5 +1,5 @@ | |
| 1 1 |  | 
| 2 | 
            -
            # $Id: jota_curses.rb  | 
| 2 | 
            +
            # $Id: jota_curses.rb 287 2010-11-21 17:31:39Z dz $
         | 
| 3 3 |  | 
| 4 4 | 
             
            require "curses"
         | 
| 5 5 | 
             
            require 'tempfile'
         | 
| @@ -55,9 +55,10 @@ def initialize | |
| 55 55 | 
             
            	@bot_bar = nil
         | 
| 56 56 |  | 
| 57 57 | 
             
            	@mode = :normal
         | 
| 58 | 
            -
             | 
| 59 58 | 
             
            	@editor_running = false
         | 
| 60 59 |  | 
| 60 | 
            +
                    default_focus
         | 
| 61 | 
            +
             | 
| 61 62 | 
             
            	Curses.init_screen
         | 
| 62 63 | 
             
            	Curses.cbreak
         | 
| 63 64 | 
             
            	Curses.noecho
         | 
| @@ -67,6 +68,7 @@ def initialize | |
| 67 68 | 
             
            	@top_win_height = @lines/2
         | 
| 68 69 | 
             
            	set_windows
         | 
| 69 70 |  | 
| 71 | 
            +
             | 
| 70 72 | 
             
            	begin
         | 
| 71 73 | 
             
            		# set SIGgnal handler if terminal WINdow CHanged
         | 
| 72 74 | 
             
            		Signal.trap("SIGWINCH") do
         | 
| @@ -85,11 +87,16 @@ def initialize | |
| 85 87 | 
             
            	end
         | 
| 86 88 | 
             
            end 
         | 
| 87 89 |  | 
| 90 | 
            +
            def finish
         | 
| 91 | 
            +
                    Curses.close_screen
         | 
| 92 | 
            +
            end
         | 
| 93 | 
            +
             | 
| 88 94 | 
             
            def open(filename)
         | 
| 89 95 | 
             
            	begin
         | 
| 90 96 | 
             
            		new_data = ClipArray.open(filename)
         | 
| 91 97 | 
             
            	rescue AppError, SystemCallError => msg
         | 
| 92 | 
            -
             | 
| 98 | 
            +
                            finish
         | 
| 99 | 
            +
                            puts msg
         | 
| 93 100 | 
             
            		return nil
         | 
| 94 101 | 
             
            	end
         | 
| 95 102 |  | 
| @@ -205,18 +212,24 @@ def draw_bars | |
| 205 212 | 
             
            	@top_bar.refresh
         | 
| 206 213 |  | 
| 207 214 | 
             
            	@mid_bar.clear
         | 
| 208 | 
            -
             | 
| 215 | 
            +
                    @mid_bar.addstr("==")
         | 
| 216 | 
            +
                    if @top_focus then
         | 
| 217 | 
            +
                            @mid_bar.addstr("^^^")
         | 
| 218 | 
            +
                    else
         | 
| 219 | 
            +
                            @mid_bar.addstr("vvv")
         | 
| 220 | 
            +
                    end
         | 
| 221 | 
            +
            	@mid_bar.addstr("="*(@columns-5))
         | 
| 209 222 | 
             
            	@mid_bar.refresh
         | 
| 210 223 |  | 
| 211 224 | 
             
            	@bot_bar.clear
         | 
| 212 225 | 
             
            	case @mode
         | 
| 213 226 | 
             
            	when :normal
         | 
| 214 | 
            -
            		@bot_bar.addstr("Crsr=le/ri/up/dn, e=edit, n=new, d=del,  | 
| 227 | 
            +
            		@bot_bar.addstr("Crsr=le/ri/up/dn, Tab=focus, e=edit, n=new, d=del, +/-=resize, h=help, q=quit")
         | 
| 215 228 | 
             
            	when :help
         | 
| 216 | 
            -
            		@bot_bar.addstr("Crsr=up/dn, +/-=resize win, h/q=quit help")
         | 
| 229 | 
            +
            		@bot_bar.addstr("Crsr=up/dn, Tab=focus, +/-=resize win, h/q=quit help")
         | 
| 217 230 |  | 
| 218 231 | 
             
            	when :pref
         | 
| 219 | 
            -
            		@bot_bar.addstr("Crsr=up/dn, e=edit pref, +/-=resize win, p/q=quit pref")
         | 
| 232 | 
            +
            		@bot_bar.addstr("Crsr=up/dn, Tab=focus, e=edit pref, +/-=resize win, p/q=quit pref")
         | 
| 220 233 | 
             
            	else
         | 
| 221 234 | 
             
            		@bot_bar.addstr("h=help, q=quit")
         | 
| 222 235 | 
             
            	end
         | 
| @@ -234,7 +247,7 @@ def draw_top_window | |
| 234 247 | 
             
            			end
         | 
| 235 248 | 
             
            			if i < @data.length then
         | 
| 236 249 | 
             
            				@top_win.addstr("%s %s\n" % 
         | 
| 237 | 
            -
             | 
| 250 | 
            +
                                               [marker, @data[i].title![@left_margin_top..@left_margin_top+@columns-4]])
         | 
| 238 251 | 
             
            			end
         | 
| 239 252 | 
             
            		end
         | 
| 240 253 | 
             
            	end
         | 
| @@ -244,7 +257,7 @@ end | |
| 244 257 | 
             
            def draw_bottom_window
         | 
| 245 258 | 
             
            	print_debug "drawing text in #{@mode} mode"
         | 
| 246 259 | 
             
            	case @mode
         | 
| 247 | 
            -
             | 
| 260 | 
            +
                    when :normal
         | 
| 248 261 | 
             
            		if @data then
         | 
| 249 262 | 
             
            			text = @data.current.text
         | 
| 250 263 | 
             
            		else
         | 
| @@ -266,10 +279,9 @@ def draw_bottom_window | |
| 266 279 | 
             
            	arr = text.split(/\n/)
         | 
| 267 280 | 
             
            	@bot_win_first.upto @bot_win_first+self.get_bot_win_height-1 do | i |
         | 
| 268 281 | 
             
            		str = arr[i] || ""
         | 
| 269 | 
            -
            		 | 
| 270 | 
            -
             | 
| 271 | 
            -
             | 
| 272 | 
            -
            		@bot_win.addstr("\n")
         | 
| 282 | 
            +
            		str = expand_tabs(str)
         | 
| 283 | 
            +
                            @bot_win.addstr(str[@left_margin_bot..@left_margin_bot+@columns-2])
         | 
| 284 | 
            +
                            @bot_win.addstr("\n")
         | 
| 273 285 | 
             
            	end
         | 
| 274 286 | 
             
            	result = arr.length
         | 
| 275 287 | 
             
            	@bot_win.refresh
         | 
| @@ -283,7 +295,8 @@ Jota #{Version::STRING}, (C) #{Version::YEARS} #{Version::AUTHOR} <#{Version::AU | |
| 283 295 |  | 
| 284 296 | 
             
             Keys:
         | 
| 285 297 | 
             
                Cursor up/down	Scroll up/down
         | 
| 286 | 
            -
                Cursor left/right	 | 
| 298 | 
            +
                Cursor left/right	Scroll left/right
         | 
| 299 | 
            +
                Tab                 toggle focus between top and bottom window
         | 
| 287 300 | 
             
                e, ENTER		Edit current clip (with $EDITOR)
         | 
| 288 301 | 
             
                n			Append new clip
         | 
| 289 302 | 
             
                d			Delete current clip
         | 
| @@ -292,7 +305,7 @@ Jota #{Version::STRING}, (C) #{Version::YEARS} #{Version::AUTHOR} <#{Version::AU | |
| 292 305 | 
             
                c			Create new file
         | 
| 293 306 | 
             
                C			Close file
         | 
| 294 307 |  | 
| 295 | 
            -
                 | 
| 308 | 
            +
                +,=			Grow top window
         | 
| 296 309 | 
             
                -			Shrink top window
         | 
| 297 310 | 
             
                p			Preferences
         | 
| 298 311 | 
             
                !			Execute command (default $SHELL)
         | 
| @@ -347,9 +360,11 @@ def app_quit | |
| 347 360 | 
             
            	if @data then
         | 
| 348 361 | 
             
            		if really?("confirm_quit","Really quit?") then
         | 
| 349 362 | 
             
            			@data.close
         | 
| 350 | 
            -
             | 
| 363 | 
            +
                                    finish
         | 
| 364 | 
            +
            		exit
         | 
| 351 365 | 
             
            		end
         | 
| 352 366 | 
             
            	else
         | 
| 367 | 
            +
                            finish
         | 
| 353 368 | 
             
            		exit
         | 
| 354 369 | 
             
            	end
         | 
| 355 370 | 
             
            end 
         | 
| @@ -364,11 +379,18 @@ def call_editor(text) | |
| 364 379 | 
             
            	return text
         | 
| 365 380 | 
             
            end
         | 
| 366 381 |  | 
| 382 | 
            +
            def default_focus
         | 
| 383 | 
            +
                    @top_focus = 0
         | 
| 384 | 
            +
                    @left_margin_top = 0
         | 
| 385 | 
            +
                    @left_margin_bot = 0
         | 
| 386 | 
            +
            end
         | 
| 387 | 
            +
             | 
| 367 388 | 
             
            def handle_key
         | 
| 368 389 | 
             
            	@bot_bar.move(0,79)
         | 
| 369 390 | 
             
            	@bot_bar.refresh
         | 
| 370 391 | 
             
            	# Ruby 1.8: getch return alway a Fixnum
         | 
| 371 | 
            -
            	# Ruby 1.9: getch return a String if char is printable (between " "  | 
| 392 | 
            +
            	# Ruby 1.9: getch return a String if char is printable (between " " 
         | 
| 393 | 
            +
                    # and "~"), Fixnum otherwise
         | 
| 372 394 | 
             
            	begin
         | 
| 373 395 | 
             
            		ch = @bot_bar.getch
         | 
| 374 396 | 
             
            		ch = 0 if ch.nil?
         | 
| @@ -381,7 +403,10 @@ def handle_key | |
| 381 403 | 
             
            		case ch.chr
         | 
| 382 404 | 
             
            		when "\f" 	# Ctrl-L
         | 
| 383 405 | 
             
            			redraw_all
         | 
| 384 | 
            -
             | 
| 406 | 
            +
                            when "\t"       # Tab
         | 
| 407 | 
            +
                                    @top_focus = ! @top_focus
         | 
| 408 | 
            +
                                    draw_bars
         | 
| 409 | 
            +
                            when "c"
         | 
| 385 410 | 
             
            			filename = prompt_filename("Create File (?=list): ")
         | 
| 386 411 | 
             
            			if filename and filename != "" then
         | 
| 387 412 | 
             
            				create(filename)
         | 
| @@ -403,19 +428,23 @@ def handle_key | |
| 403 428 | 
             
            			when :normal
         | 
| 404 429 | 
             
            				if @data then
         | 
| 405 430 | 
             
            					@data.current.text = call_editor(@data.current.text)
         | 
| 431 | 
            +
                                                    default_focus
         | 
| 406 432 | 
             
            					@data.save
         | 
| 407 433 | 
             
            				end
         | 
| 408 434 | 
             
            			when :pref
         | 
| 409 435 | 
             
            				if @data
         | 
| 410 436 | 
             
            					newpref = call_editor(@data.pref.write)
         | 
| 411 437 | 
             
            					@data.pref = Preferences.read(newpref)
         | 
| 438 | 
            +
                                                    default_focus
         | 
| 412 439 | 
             
            				end
         | 
| 413 440 | 
             
            			end
         | 
| 414 441 | 
             
            		when "h"
         | 
| 415 442 | 
             
            			if @mode == :help then
         | 
| 416 443 | 
             
            				@mode = :normal
         | 
| 444 | 
            +
                                            @top_focus = true
         | 
| 417 445 | 
             
            			else
         | 
| 418 446 | 
             
            				@mode = :help
         | 
| 447 | 
            +
                                            @top_focus = false
         | 
| 419 448 | 
             
            			end
         | 
| 420 449 | 
             
            			redraw_all
         | 
| 421 450 | 
             
            			@bot_win_first = 0
         | 
| @@ -424,6 +453,7 @@ def handle_key | |
| 424 453 | 
             
            				@data.new
         | 
| 425 454 | 
             
            				@mode = :normal
         | 
| 426 455 | 
             
            				@data.current.text = call_editor(@data.current.text)
         | 
| 456 | 
            +
                                            default_focus
         | 
| 427 457 | 
             
            				@data.save
         | 
| 428 458 | 
             
            			end
         | 
| 429 459 | 
             
            		when "o"
         | 
| @@ -435,8 +465,10 @@ def handle_key | |
| 435 465 | 
             
            		when "p"
         | 
| 436 466 | 
             
            			if @mode == :pref then
         | 
| 437 467 | 
             
            				@mode = :normal
         | 
| 468 | 
            +
                                            @top_focus = true
         | 
| 438 469 | 
             
            			else
         | 
| 439 470 | 
             
            				@mode = :pref
         | 
| 471 | 
            +
                                            @top_focus = false
         | 
| 440 472 | 
             
            			end
         | 
| 441 473 | 
             
            			@bot_win_first = 0
         | 
| 442 474 | 
             
            			redraw_all
         | 
| @@ -446,7 +478,8 @@ def handle_key | |
| 446 478 | 
             
            			else
         | 
| 447 479 | 
             
            				@mode = :normal
         | 
| 448 480 | 
             
            			end
         | 
| 449 | 
            -
            		when "+"	# grow top window
         | 
| 481 | 
            +
            		when "+","="	# grow top window
         | 
| 482 | 
            +
                                            # = is on the same key as + on us-layout
         | 
| 450 483 | 
             
            			if @top_win_height + 5 <= @lines then
         | 
| 451 484 | 
             
            				@top_win_height += 1
         | 
| 452 485 | 
             
            				set_windows
         | 
| @@ -479,33 +512,52 @@ def handle_key | |
| 479 512 | 
             
            		end
         | 
| 480 513 | 
             
            	else
         | 
| 481 514 | 
             
            		case ch
         | 
| 482 | 
            -
            		when Curses::Key::LEFT | 
| 483 | 
            -
             | 
| 484 | 
            -
             | 
| 485 | 
            -
             | 
| 486 | 
            -
             | 
| 487 | 
            -
             | 
| 488 | 
            -
             | 
| 489 | 
            -
             | 
| 490 | 
            -
             | 
| 491 | 
            -
             | 
| 492 | 
            -
             | 
| 493 | 
            -
             | 
| 494 | 
            -
            				end
         | 
| 495 | 
            -
            				@mode = :normal
         | 
| 496 | 
            -
            			end
         | 
| 515 | 
            +
            		when Curses::Key::LEFT
         | 
| 516 | 
            +
                                    if @top_focus then
         | 
| 517 | 
            +
                                            @left_margin_top -= 1 if @left_margin_top >= 1
         | 
| 518 | 
            +
                                    else
         | 
| 519 | 
            +
                                            @left_margin_bot -= 1 if @left_margin_bot >= 1
         | 
| 520 | 
            +
                                    end
         | 
| 521 | 
            +
                            when Curses::Key::RIGHT
         | 
| 522 | 
            +
                                    if @top_focus then
         | 
| 523 | 
            +
                                            @left_margin_top += 1
         | 
| 524 | 
            +
                                    else
         | 
| 525 | 
            +
                                            @left_margin_bot += 1
         | 
| 526 | 
            +
                                            end
         | 
| 497 527 | 
             
            		when Curses::Key::UP, Curses::Key::DOWN
         | 
| 498 | 
            -
             | 
| 499 | 
            -
             | 
| 500 | 
            -
             | 
| 501 | 
            -
             | 
| 502 | 
            -
             | 
| 503 | 
            -
             | 
| 504 | 
            -
             | 
| 528 | 
            +
                                    if @data then
         | 
| 529 | 
            +
                                            if @top_focus then
         | 
| 530 | 
            +
                                                    @data.current.pos = @bot_win_first
         | 
| 531 | 
            +
                                                    if ch == Curses::Key::UP then
         | 
| 532 | 
            +
                                                            @data.prev
         | 
| 533 | 
            +
                                                    else
         | 
| 534 | 
            +
                                                            @data.next
         | 
| 535 | 
            +
                                                    end
         | 
| 536 | 
            +
                                                    if @data.current.pos then
         | 
| 537 | 
            +
                                                            @bot_win_first = @data.current.pos
         | 
| 538 | 
            +
                                                    else
         | 
| 539 | 
            +
                                                            @bot_win_first = 0
         | 
| 540 | 
            +
                                                    end
         | 
| 541 | 
            +
                                                    @mode = :normal
         | 
| 542 | 
            +
                                            else
         | 
| 543 | 
            +
                                                    if ch == Curses::Key::UP then
         | 
| 544 | 
            +
                                                            @bot_win_first -= 1
         | 
| 545 | 
            +
                                                    else
         | 
| 546 | 
            +
                                                            @bot_win_first += 1
         | 
| 547 | 
            +
                                                    end
         | 
| 548 | 
            +
             | 
| 549 | 
            +
                                            end
         | 
| 550 | 
            +
                                    end
         | 
| 505 551 | 
             
            		when Curses::Key::HOME
         | 
| 506 552 | 
             
            			if @data then
         | 
| 507 553 | 
             
            				@bot_win_first = 0
         | 
| 508 554 | 
             
            			end
         | 
| 555 | 
            +
            		when Curses::Key::END
         | 
| 556 | 
            +
                                    # XXX
         | 
| 557 | 
            +
            		when Curses::Key::NPAGE
         | 
| 558 | 
            +
                                    # XXX
         | 
| 559 | 
            +
            		when Curses::Key::PPAGE
         | 
| 560 | 
            +
                                    # XXX
         | 
| 509 561 | 
             
            		end
         | 
| 510 562 | 
             
            	end
         | 
| 511 563 |  | 
| @@ -565,8 +617,16 @@ def prompt_filename(str) | |
| 565 617 | 
             
            		filename = prompt(str)
         | 
| 566 618 | 
             
            		if filename == "?" then
         | 
| 567 619 | 
             
            			@bot_win.clear
         | 
| 568 | 
            -
             | 
| 569 | 
            -
             | 
| 620 | 
            +
                                    @bot_win.addstr File.expand_path(".")
         | 
| 621 | 
            +
                                    @bot_win.addstr(":\n")
         | 
| 622 | 
            +
                                    ent = (Dir.entries ".").sort
         | 
| 623 | 
            +
            			ent.each  do | f | 
         | 
| 624 | 
            +
                                            next if f =~ /^\./
         | 
| 625 | 
            +
            				@bot_win.addstr(f)
         | 
| 626 | 
            +
                                            if File.directory? f then
         | 
| 627 | 
            +
                                                    @bot_win.addstr("/")
         | 
| 628 | 
            +
                                            end
         | 
| 629 | 
            +
                                            @bot_win.addstr("\t")
         | 
| 570 630 | 
             
            			end
         | 
| 571 631 | 
             
            			@bot_win.refresh
         | 
| 572 632 | 
             
            		else
         | 
    
        data/lib/version.rb
    CHANGED
    
    | @@ -1,5 +1,5 @@ | |
| 1 1 |  | 
| 2 | 
            -
            # $Id: version.rb  | 
| 2 | 
            +
            # $Id: version.rb 285 2010-11-21 09:26:46Z dz $
         | 
| 3 3 |  | 
| 4 4 |  | 
| 5 5 | 
             
            class Version
         | 
| @@ -29,7 +29,7 @@ MAJOR = 0 | |
| 29 29 | 
             
            MINOR = 9
         | 
| 30 30 | 
             
            PATCH = 0
         | 
| 31 31 | 
             
            STATE = "dev"	# "dev", "beta", "rc", "" (for final)
         | 
| 32 | 
            -
            STATEVER =  | 
| 32 | 
            +
            STATEVER = 5
         | 
| 33 33 |  | 
| 34 34 | 
             
            STRING = "%d.%d.%d%s" % [MAJOR, MINOR,PATCH,Version.state]
         | 
| 35 35 |  | 
    
        metadata
    CHANGED
    
    | @@ -1,13 +1,13 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification 
         | 
| 2 2 | 
             
            name: jota
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version 
         | 
| 4 | 
            -
              hash:  | 
| 4 | 
            +
              hash: 470221477
         | 
| 5 5 | 
             
              prerelease: true
         | 
| 6 6 | 
             
              segments: 
         | 
| 7 7 | 
             
              - 0
         | 
| 8 8 | 
             
              - 9
         | 
| 9 | 
            -
              -  | 
| 10 | 
            -
              version: 0.9. | 
| 9 | 
            +
              - 0dev5
         | 
| 10 | 
            +
              version: 0.9.0dev5
         | 
| 11 11 | 
             
            platform: ruby
         | 
| 12 12 | 
             
            authors: 
         | 
| 13 13 | 
             
            - Derik van Zuetphen
         | 
| @@ -15,7 +15,7 @@ autorequire: | |
| 15 15 | 
             
            bindir: bin
         | 
| 16 16 | 
             
            cert_chain: []
         | 
| 17 17 |  | 
| 18 | 
            -
            date: 2010- | 
| 18 | 
            +
            date: 2010-11-22 08:22:25 +01:00
         | 
| 19 19 | 
             
            default_executable: 
         | 
| 20 20 | 
             
            dependencies: []
         | 
| 21 21 |  | 
| @@ -23,7 +23,6 @@ description: "" | |
| 23 23 | 
             
            email: dz@426.ch
         | 
| 24 24 | 
             
            executables: 
         | 
| 25 25 | 
             
            - jota
         | 
| 26 | 
            -
            - jota.bat
         | 
| 27 26 | 
             
            extensions: []
         | 
| 28 27 |  | 
| 29 28 | 
             
            extra_rdoc_files: 
         |