revised pager.....

Chip Camden sterling at camdensoftware.com
Mon Feb 21 01:26:16 UTC 2011


Quoth Gary Kline on Sunday, 20 February 2011:
> 	THis is to the entire list, mostly to Chip.  It is o8.rb, my 
> 	very slightly tweaked version of what you ma/// rather, what i
> 	found and began messing with a couple, three hours ago.
> 
> 	I searched++  and could not find the C equivalent of
> 	"if counter % N == 0" in ruby.  For some reason, use of parens
> 	in ruby seems to be discouraged.  Anyway, I would have coded that
> 	ruby line as 
> 
> 	if ( counter % 15) == 0
> 
> 	but didn't want to risk it since i don't know ruby.
> 
> 	Anyway, o8.rb included.  This version, using the "[][][][][]" to
> 	emulate a bar, makes reading a reasonably-sized bunch of text
> 	much easier.
> 
> 	Thanks again for your help.  
> 
> -- 
>  Gary Kline  kline at thought.org  http://www.thought.org  Public Service Unix
> 

Try this version instead.  There's no need to find the % 15, we're
already paging on the specified number.

#!/usr/bin/env ruby
require 'optparse'

def banner
  print "\n[][][][][][][][][][][][][][][][][][][][]\n\n"
end

pagesize = 15

optparse = OptionParser.new do |opts|
  opts.banner = 'usage: npg [-n pagesize] file...'

  opts.on('-n', '--numlines pagesize', 'Specify page size in number of lines') do |n|
    pagesize = n.to_i
  end

end

begin
  optparse.parse!
rescue OptionParser::InvalidOption, OptionParser::MissingArgument => e
  puts e
  puts optparse
  exit 1
end

banner
loop do
  pagesize.times do
    if line = gets
      puts line
    else
      banner
      exit
    end
  end
  banner
  print "More..."
  system "stty raw"
  STDIN.getc
  system "stty -raw"
  banner
end

-- 
Sterling (Chip) Camden | sterling at camdensoftware.com | 2048D/3A978E4F
http://chipsquips.com  | http://camdensoftware.com   | http://chipstips.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 488 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-questions/attachments/20110221/a6e16e17/attachment.pgp


More information about the freebsd-questions mailing list