xrpn 1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/bin/xrpn +110 -0
- data/cmd/abs +7 -0
- data/cmd/acos +10 -0
- data/cmd/adate +12 -0
- data/cmd/adateiso +13 -0
- data/cmd/add +9 -0
- data/cmd/adv +7 -0
- data/cmd/agsub +8 -0
- data/cmd/aleng +8 -0
- data/cmd/almcat +7 -0
- data/cmd/almnow +7 -0
- data/cmd/anum +10 -0
- data/cmd/aoff +7 -0
- data/cmd/aon +7 -0
- data/cmd/appchr +13 -0
- data/cmd/apprec +13 -0
- data/cmd/arcl +22 -0
- data/cmd/arcli +7 -0
- data/cmd/arclrec +30 -0
- data/cmd/arot +13 -0
- data/cmd/ashf +7 -0
- data/cmd/asin +10 -0
- data/cmd/asroom +7 -0
- data/cmd/asto +21 -0
- data/cmd/asub +8 -0
- data/cmd/atan +10 -0
- data/cmd/atime +26 -0
- data/cmd/atime24 +21 -0
- data/cmd/atox +9 -0
- data/cmd/aview +7 -0
- data/cmd/aviewc +7 -0
- data/cmd/beep +7 -0
- data/cmd/bindec +8 -0
- data/cmd/cat +26 -0
- data/cmd/cf +7 -0
- data/cmd/chs +7 -0
- data/cmd/cla +7 -0
- data/cmd/clalma +7 -0
- data/cmd/clalmx +7 -0
- data/cmd/cld +6 -0
- data/cmd/clear +7 -0
- data/cmd/clfl +13 -0
- data/cmd/clk12 +7 -0
- data/cmd/clk24 +7 -0
- data/cmd/clkeys +7 -0
- data/cmd/clock +7 -0
- data/cmd/clp +8 -0
- data/cmd/clralms +7 -0
- data/cmd/clrg +7 -0
- data/cmd/clrgx +12 -0
- data/cmd/cls +12 -0
- data/cmd/clst +10 -0
- data/cmd/clx +8 -0
- data/cmd/cmdadd +7 -0
- data/cmd/cmddel +7 -0
- data/cmd/correct +7 -0
- data/cmd/cos +10 -0
- data/cmd/crflas +9 -0
- data/cmd/crfld +9 -0
- data/cmd/cube +8 -0
- data/cmd/d_r +8 -0
- data/cmd/date +8 -0
- data/cmd/dateplus +12 -0
- data/cmd/ddate +11 -0
- data/cmd/dec +7 -0
- data/cmd/decbin +8 -0
- data/cmd/dechex +8 -0
- data/cmd/decoct +8 -0
- data/cmd/deg +7 -0
- data/cmd/degq +7 -0
- data/cmd/delchr +14 -0
- data/cmd/delrec +12 -0
- data/cmd/divide +9 -0
- data/cmd/dmy +7 -0
- data/cmd/dot +7 -0
- data/cmd/dow +9 -0
- data/cmd/drop +7 -0
- data/cmd/dropy +7 -0
- data/cmd/dse +40 -0
- data/cmd/ed +7 -0
- data/cmd/emdir +7 -0
- data/cmd/emdirx +14 -0
- data/cmd/emroom +7 -0
- data/cmd/end +9 -0
- data/cmd/eng +9 -0
- data/cmd/enter +8 -0
- data/cmd/exp +9 -0
- data/cmd/expx1 +9 -0
- data/cmd/fact +9 -0
- data/cmd/fc +7 -0
- data/cmd/fcc +8 -0
- data/cmd/fcs +8 -0
- data/cmd/fix +9 -0
- data/cmd/fixq +7 -0
- data/cmd/flsize +7 -0
- data/cmd/frc +8 -0
- data/cmd/fs +7 -0
- data/cmd/fsc +8 -0
- data/cmd/fss +8 -0
- data/cmd/geir +11 -0
- data/cmd/getas +7 -0
- data/cmd/getfile +12 -0
- data/cmd/getfilea +11 -0
- data/cmd/getkey +9 -0
- data/cmd/getkeyx +10 -0
- data/cmd/getp +13 -0
- data/cmd/getr +13 -0
- data/cmd/getrec +8 -0
- data/cmd/getrx +17 -0
- data/cmd/getsub +7 -0
- data/cmd/getweb +12 -0
- data/cmd/getx +12 -0
- data/cmd/grad +7 -0
- data/cmd/gsb +7 -0
- data/cmd/gto +23 -0
- data/cmd/help +14 -0
- data/cmd/hexdec +8 -0
- data/cmd/hms +12 -0
- data/cmd/hmsminus +14 -0
- data/cmd/hmsplus +13 -0
- data/cmd/hr +11 -0
- data/cmd/inschr +14 -0
- data/cmd/insrec +12 -0
- data/cmd/int +8 -0
- data/cmd/invf +7 -0
- data/cmd/isg +40 -0
- data/cmd/lastx +8 -0
- data/cmd/lbl +6 -0
- data/cmd/lift +8 -0
- data/cmd/ln +8 -0
- data/cmd/ln1x +8 -0
- data/cmd/log +8 -0
- data/cmd/mdy +7 -0
- data/cmd/mean +11 -0
- data/cmd/mod +13 -0
- data/cmd/multiply +9 -0
- data/cmd/oct +7 -0
- data/cmd/octdec +8 -0
- data/cmd/off +8 -0
- data/cmd/on +7 -0
- data/cmd/p_r +13 -0
- data/cmd/pack +7 -0
- data/cmd/page +13 -0
- data/cmd/pagedel +8 -0
- data/cmd/pageq +7 -0
- data/cmd/pageswap +8 -0
- data/cmd/pasn +7 -0
- data/cmd/pcat +14 -0
- data/cmd/pclps +12 -0
- data/cmd/percent +9 -0
- data/cmd/percentch +9 -0
- data/cmd/pi +8 -0
- data/cmd/posa +23 -0
- data/cmd/posfl +26 -0
- data/cmd/pow +9 -0
- data/cmd/pprg +27 -0
- data/cmd/pprgx +33 -0
- data/cmd/pra +7 -0
- data/cmd/prflags +8 -0
- data/cmd/prompt +8 -0
- data/cmd/prp +7 -0
- data/cmd/prregs +8 -0
- data/cmd/prstk +10 -0
- data/cmd/prx +7 -0
- data/cmd/prxm +21 -0
- data/cmd/pse +7 -0
- data/cmd/psize +7 -0
- data/cmd/purfl +14 -0
- data/cmd/r_d +8 -0
- data/cmd/r_p +18 -0
- data/cmd/rad +7 -0
- data/cmd/rand +10 -0
- data/cmd/rcl +23 -0
- data/cmd/rclaf +7 -0
- data/cmd/rclflag +16 -0
- data/cmd/rclpt +8 -0
- data/cmd/rclpta +16 -0
- data/cmd/rclsw +7 -0
- data/cmd/rdn +7 -0
- data/cmd/recip +8 -0
- data/cmd/regmove +18 -0
- data/cmd/regswap +19 -0
- data/cmd/reload +7 -0
- data/cmd/reszfl +7 -0
- data/cmd/rnd +8 -0
- data/cmd/root +9 -0
- data/cmd/rtn +12 -0
- data/cmd/rubycmd +7 -0
- data/cmd/runsw +7 -0
- data/cmd/rup +7 -0
- data/cmd/saveas +7 -0
- data/cmd/savep +7 -0
- data/cmd/saver +24 -0
- data/cmd/saverx +31 -0
- data/cmd/savex +10 -0
- data/cmd/savexm +7 -0
- data/cmd/sci +9 -0
- data/cmd/sdev +11 -0
- data/cmd/seekpt +10 -0
- data/cmd/seekpta +7 -0
- data/cmd/sep +7 -0
- data/cmd/setaf +7 -0
- data/cmd/setsw +7 -0
- data/cmd/sf +7 -0
- data/cmd/shellcmd +7 -0
- data/cmd/sign +19 -0
- data/cmd/sin +10 -0
- data/cmd/size +7 -0
- data/cmd/sizeq +7 -0
- data/cmd/sminus +20 -0
- data/cmd/splus +20 -0
- data/cmd/sqr +8 -0
- data/cmd/sqrt +8 -0
- data/cmd/sreg +7 -0
- data/cmd/sregq +7 -0
- data/cmd/stdivide +22 -0
- data/cmd/stmultiply +22 -0
- data/cmd/sto +21 -0
- data/cmd/stoflag +13 -0
- data/cmd/stop +7 -0
- data/cmd/stopsw +7 -0
- data/cmd/stplus +22 -0
- data/cmd/stsubtract +22 -0
- data/cmd/subtract +9 -0
- data/cmd/sw +7 -0
- data/cmd/swap +7 -0
- data/cmd/swpt +7 -0
- data/cmd/tan +10 -0
- data/cmd/tenx +8 -0
- data/cmd/time +8 -0
- data/cmd/tx +7 -0
- data/cmd/version +7 -0
- data/cmd/view +7 -0
- data/cmd/writefile +12 -0
- data/cmd/xeq +21 -0
- data/cmd/xeq0 +7 -0
- data/cmd/xeqnn +9 -0
- data/cmd/xeqy +7 -0
- data/cmd/xf +20 -0
- data/cmd/xgt0 +7 -0
- data/cmd/xgteq0 +7 -0
- data/cmd/xgteqnn +9 -0
- data/cmd/xgteqy +7 -0
- data/cmd/xgtnn +9 -0
- data/cmd/xgty +7 -0
- data/cmd/xlt0 +7 -0
- data/cmd/xlteq0 +7 -0
- data/cmd/xlteqnn +9 -0
- data/cmd/xlteqy +7 -0
- data/cmd/xltnn +9 -0
- data/cmd/xlty +7 -0
- data/cmd/xmexistq +15 -0
- data/cmd/xmfileq +7 -0
- data/cmd/xneq0 +7 -0
- data/cmd/xneqnn +9 -0
- data/cmd/xneqy +7 -0
- data/cmd/xnn +21 -0
- data/cmd/xtoa +7 -0
- data/cmd/xy +7 -0
- data/cmd/xyzalm +7 -0
- data/lib/_xrpn_version +5 -0
- data/lib/bei +18 -0
- data/lib/check +26 -0
- data/lib/conditional +10 -0
- data/lib/convert_base +8 -0
- data/lib/debug_mode +124 -0
- data/lib/dtparse +10 -0
- data/lib/error +10 -0
- data/lib/fact +7 -0
- data/lib/getpt +7 -0
- data/lib/help +12 -0
- data/lib/hp_41 +83 -0
- data/lib/ind +21 -0
- data/lib/load_xm +28 -0
- data/lib/locate_prg +32 -0
- data/lib/numeric +62 -0
- data/lib/numformat +12 -0
- data/lib/optparse +23 -0
- data/lib/read_cmd +12 -0
- data/lib/read_state +6 -0
- data/lib/save_state +18 -0
- data/lib/save_xm +5 -0
- data/lib/setpt +5 -0
- data/lib/string +28 -0
- data/lib/theme_dark +10 -0
- data/lib/theme_light +10 -0
- data/lib/xrpn_class +34 -0
- metadata +348 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: ec611b098ae31061be5df9cb0d924ff76b84ecb71d606acd204775f7b3775a56
|
4
|
+
data.tar.gz: 62e8c735f5cffaa562ac2620d564d7b41b6841443d94819b63a4342c0ee2009b
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 6f030302c85ef1b7606c370b174a20e91cf1cc32fe28ecd992ffee376c5dcd69d827bc437287d7c40b76cc90cb1e4debe5cbde59c5f7d73530c70d7f5a69be1a
|
7
|
+
data.tar.gz: ba1c3c64c2f5d5e5aa7551dd991c7fbe89c2e778590df08feb12893ee95be4d6991967dbe66c9c91c0fa343f8c8fc9420940bf6709df28448216b5d5793d96cc
|
data/bin/xrpn
ADDED
@@ -0,0 +1,110 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# encoding: utf-8
|
3
|
+
|
4
|
+
# GET EXTENSIONS
|
5
|
+
begin
|
6
|
+
require 'xrpn'
|
7
|
+
rescue LoadError
|
8
|
+
puts "You may want to install xrpn via `gem install xrpn`"
|
9
|
+
end
|
10
|
+
require 'optparse'
|
11
|
+
require 'io/console'
|
12
|
+
require 'date'
|
13
|
+
require 'bigdecimal'
|
14
|
+
require 'open-uri'
|
15
|
+
require 'json'
|
16
|
+
require 'tty-prompt'
|
17
|
+
|
18
|
+
# ENSURE DIRs
|
19
|
+
Dir.mkdir(Dir.home + "/.xrpn") unless File.exist?(Dir.home + "/.xrpn")
|
20
|
+
["cmd", "data", "extra", "lib", "print"].each do |d|
|
21
|
+
Dir.mkdir(Dir.home + "/.xrpn/" + d) unless File.exist?(Dir.home + "/.xrpn/" + d)
|
22
|
+
end
|
23
|
+
|
24
|
+
# INITIALIZE
|
25
|
+
@x, @y, @z, @t, @a = 0, 0, 0, 0, ""
|
26
|
+
Dir[Dir.home+"/.xrpn/lib/*"].each { |file| load file } # Read libraries
|
27
|
+
read_cmd # Read XRPN commands
|
28
|
+
@p = XRPN.new($rfile)
|
29
|
+
@p.x, @p.y, @p.z, @p.t, @p.a = @x, @y, @z, @t, @a
|
30
|
+
@p.prg[@p.pg] = ["LBL \"XRPN\"", "END"] unless $rfile # Put dummy program in page 0 if no file to run
|
31
|
+
@p.prg[@p.pg] = hp_41(@p.prg[@p.pg]) if $rfile # Substitute HP-41 commands with XRPN commands
|
32
|
+
if $lfile # Read file to load but not run if -l switch is used
|
33
|
+
$lfile.each_with_index do |f, i|
|
34
|
+
@p.prg[i] = File.read(f).split("\n")
|
35
|
+
@p.prg[i] = hp_41(@p.prg[i])
|
36
|
+
end
|
37
|
+
end
|
38
|
+
read_state($sfile) if $sfile # Read state file in ~.xrpn/ if -s switch is used
|
39
|
+
$debug = true if $lfile or $sfile # Do not run loaded program or program in state file
|
40
|
+
load(Dir.home+'/.xrpn/lib/theme_dark') if File.exist?(Dir.home+'/.xrpn/lib/theme_dark') # Read theme file
|
41
|
+
load(Dir.home+'/.xrpn/conf') if File.exist?(Dir.home+'/.xrpn/conf') # Read config file
|
42
|
+
load(Dir.home+'/.xrpn/lib/theme_light') if $theme == "light" and File.exist?(Dir.home+'/.xrpn/lib/theme_light') # Read theme file
|
43
|
+
load(Dir.home+'/.xrpn/theme') if File.exist?(Dir.home+'/.xrpn/theme') # Override theme if user theme file exists
|
44
|
+
|
45
|
+
|
46
|
+
# THE CORE OF THE RPN PROGRAM
|
47
|
+
@nl = false # Nolift set to false
|
48
|
+
@i = 0 # Counter to prevent infinite loops
|
49
|
+
until @p.pc == @p.prg[@p.pg].length do
|
50
|
+
# Enter debug mode if $debug or $prompt is set, else read next program line
|
51
|
+
($debug or $prompt) ? debug_mode : @line = @p.prg[@p.pg][@p.pc]
|
52
|
+
@line = "" if @line == nil
|
53
|
+
if @line.match(/^-*[\d\.,e]+$/) # If a number is supplied
|
54
|
+
@line.sub!(/,/, '.')
|
55
|
+
@p.lift
|
56
|
+
@p.x = @line.to_f
|
57
|
+
@p.flg["22"] = true # Number has been entered
|
58
|
+
@p.flg["23"] = false
|
59
|
+
elsif @line.match(/^>?".*"/) # If an Alpha string is supplied
|
60
|
+
if @line.match(/^"\|/)
|
61
|
+
@p.a += @line.sub(/\|-?/, '').gsub(/\"/, '') # Append to Alpha if "|abc", "|-abc"
|
62
|
+
elsif @line.match(/^>"/)
|
63
|
+
@p.a += @line.sub(/>/, '').gsub(/\"/, '') # Append to Alpha if >"abc"
|
64
|
+
else
|
65
|
+
@p.a = @line.gsub(/\"/, '') # ...or set Alpha to the supplied string
|
66
|
+
end
|
67
|
+
@p.flg["22"] = false
|
68
|
+
@p.flg["23"] = true # String has been entered
|
69
|
+
else # Split command in maximum three words (e.g. STO IND 13)
|
70
|
+
l1, l2, l3 = @line.split[0], @line.split[1], @line.split[2]
|
71
|
+
l2 = "%02d" % [l2] if l2 == l2.to_i.to_s
|
72
|
+
l3 = "%02d" % [l3] if l3 == l3.to_i.to_s
|
73
|
+
l2 = ind(l3) if l3 # If middle word is "IND" (or anything actually - since IND is the only possibility)
|
74
|
+
l1 = "" if l1 == nil
|
75
|
+
if not $cmd.include?(l1.downcase) # Catch unknown command
|
76
|
+
puts "No such command: #{l1}"
|
77
|
+
@p.stop
|
78
|
+
elsif XRPN.method_defined?(l1.downcase) # Or execute the command with either 1 or 2 parts
|
79
|
+
begin
|
80
|
+
l2 ? ret = @p.send(l1.downcase, l2) : ret = @p.send(l1.downcase)
|
81
|
+
rescue ArgumentError
|
82
|
+
puts "Command needs an argument."
|
83
|
+
@p.stop
|
84
|
+
rescue TypeError
|
85
|
+
error("ERROR: Wrong type.")
|
86
|
+
rescue ZeroDivisionError
|
87
|
+
error("ERROR: Division by zero.")
|
88
|
+
rescue FloatDomainError
|
89
|
+
error("ERROR: Number out of range.")
|
90
|
+
rescue Math::DomainError
|
91
|
+
error("ERROR: Number out of domain.")
|
92
|
+
end
|
93
|
+
puts ret if $debug and ret.instance_of? String
|
94
|
+
puts ret if not $debug and ret.to_s.match(/Error:/)
|
95
|
+
@p.flg["22"] = false
|
96
|
+
@p.flg["23"] = false
|
97
|
+
end
|
98
|
+
end
|
99
|
+
@p.nolift = false if @nl
|
100
|
+
@p.nolift ? @nl = true : @nl = false
|
101
|
+
@p.pc += 1 unless ($debug or $prompt)
|
102
|
+
@i += 1 unless ($debug or @i < 0) # Handling of potential infinite loops
|
103
|
+
if @i > 1000
|
104
|
+
puts "Looped 1000 times. Press 'c' to continue indefinitely or any other key to stop."
|
105
|
+
ans = STDIN.getch
|
106
|
+
ans == "c" ? @i = -1 : $debug = true
|
107
|
+
end
|
108
|
+
end
|
109
|
+
|
110
|
+
# vim: set sw=2 sts=2 et ft=ruby fdm=syntax fdn=2 fcs=fold\:\ :
|
data/cmd/abs
ADDED
data/cmd/acos
ADDED
data/cmd/adate
ADDED
data/cmd/adateiso
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
class XRPN
|
2
|
+
def adateiso
|
3
|
+
d = @x.to_s
|
4
|
+
d = "0" + d if d.match(/^\d\./)
|
5
|
+
if @flg["31"] # DMY
|
6
|
+
@a += d.sub(/(\d*)\.(\d\d)(\d\d\d\d)\d*/, '\3-\2-\1')
|
7
|
+
else # MDY
|
8
|
+
@a += d.sub(/(\d*)\.(\d\d)(\d\d\d\d)\d*/, '\3-\1-\2')
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
# vim:ft=ruby:
|
data/cmd/add
ADDED
data/cmd/adv
ADDED
data/cmd/agsub
ADDED
data/cmd/aleng
ADDED
data/cmd/almcat
ADDED
data/cmd/almnow
ADDED
data/cmd/anum
ADDED
data/cmd/aoff
ADDED
data/cmd/aon
ADDED
data/cmd/appchr
ADDED
data/cmd/apprec
ADDED
data/cmd/arcl
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
class XRPN
|
2
|
+
def arcl (r)
|
3
|
+
a = false
|
4
|
+
case r.downcase
|
5
|
+
when "x"
|
6
|
+
a = @x
|
7
|
+
when "y"
|
8
|
+
a = @y
|
9
|
+
when "z"
|
10
|
+
a = @z
|
11
|
+
when "t"
|
12
|
+
a = @t
|
13
|
+
end
|
14
|
+
a ? @a += numformat(a) : @a += numformat(@reg[r])
|
15
|
+
if @a == nil
|
16
|
+
@reg[r] = ""
|
17
|
+
@a = ""
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
# vim:ft=ruby:
|
data/cmd/arcli
ADDED
data/cmd/arclrec
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
class XRPN
|
2
|
+
def arclrec
|
3
|
+
if @xmcont[0][0] == ""
|
4
|
+
return
|
5
|
+
else
|
6
|
+
if @xmcont[0][3] > @xmcont.length - 2
|
7
|
+
@xmcont[0][3] = 0.0
|
8
|
+
return "END OF FILE"
|
9
|
+
end
|
10
|
+
r, c = getpt
|
11
|
+
n = 24 - @a.length
|
12
|
+
n = 0 if n < 0
|
13
|
+
e = c + n
|
14
|
+
n > 0 ? s = @xmcont[r][c..e - 1] : s = ""
|
15
|
+
@a += s
|
16
|
+
if e > @xmcont[r].length - 2
|
17
|
+
setpt(r + 1, 0)
|
18
|
+
@flg["17"] = true
|
19
|
+
elsif n > 0
|
20
|
+
p c, n, @xmcont[0][3]
|
21
|
+
setpt(r, e + 1)
|
22
|
+
p "After", @xmcont[0][3]
|
23
|
+
@flg["17"] = false
|
24
|
+
end
|
25
|
+
savexm
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
# vim:ft=ruby:
|
data/cmd/arot
ADDED
data/cmd/ashf
ADDED
data/cmd/asin
ADDED
data/cmd/asroom
ADDED
data/cmd/asto
ADDED
data/cmd/asub
ADDED
data/cmd/atan
ADDED
data/cmd/atime
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
class XRPN
|
2
|
+
def atime
|
3
|
+
t = @x.to_f
|
4
|
+
am = true
|
5
|
+
case t
|
6
|
+
when ..-12
|
7
|
+
t = t.abs
|
8
|
+
when -12..-1
|
9
|
+
t = t.abs
|
10
|
+
am = false
|
11
|
+
t += 12 if @clk24
|
12
|
+
when -1..0
|
13
|
+
t = t.abs
|
14
|
+
end
|
15
|
+
t = BigDecimal(t.to_s).truncate(@i).to_f
|
16
|
+
h = t.to_i
|
17
|
+
m = (100 * (t - h)).to_i
|
18
|
+
s = (100 * (100 * (t -h) - m)).round(@i)
|
19
|
+
@a += "#{h}:#{m}:#{s}"
|
20
|
+
if @clk24 == false
|
21
|
+
am ? @a += " AM" : @a += " PM"
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
# vim:ft=ruby:
|
data/cmd/atime24
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
class XRPN
|
2
|
+
def atime24
|
3
|
+
t = @x.to_f
|
4
|
+
case t
|
5
|
+
when ..-12
|
6
|
+
t = t.abs
|
7
|
+
when -12..-1
|
8
|
+
t = t.abs
|
9
|
+
t += 12
|
10
|
+
when -1..0
|
11
|
+
t = t.abs
|
12
|
+
end
|
13
|
+
t = BigDecimal(t.to_s).truncate(@i).to_f
|
14
|
+
h = t.to_i
|
15
|
+
m = (100 * (t - h)).to_i
|
16
|
+
s = (100 * (100 * (t -h) - m)).round(@i)
|
17
|
+
@a += "#{h}:#{m}:#{s}"
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
# vim:ft=ruby:
|
data/cmd/atox
ADDED
data/cmd/aview
ADDED
data/cmd/aviewc
ADDED
data/cmd/beep
ADDED
data/cmd/bindec
ADDED
data/cmd/cat
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
class XRPN
|
2
|
+
def cat (c)
|
3
|
+
case c.to_i
|
4
|
+
when 1
|
5
|
+
pcat
|
6
|
+
when 3
|
7
|
+
puts "Commands:"
|
8
|
+
i = 1
|
9
|
+
$cmd.each do |cm|
|
10
|
+
print cm.ljust(12)
|
11
|
+
print "\n" if i % 7 == 0
|
12
|
+
i += 1
|
13
|
+
end
|
14
|
+
print "\n"
|
15
|
+
when 4
|
16
|
+
Dir[Dir.home+"/.xrpn/data/*"].each do |file|
|
17
|
+
f = file.sub(/.*\/(.*)\...$/, '\1')
|
18
|
+
t = file.sub(/.*\.(..)$/, '\1').upcase
|
19
|
+
l = File.size(file) / 7
|
20
|
+
puts "#{f.ljust(12)} #{t} #{l.to_s.rjust(4)}"
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
# vim:ft=ruby:
|
data/cmd/cf
ADDED
data/cmd/chs
ADDED
data/cmd/cla
ADDED
data/cmd/clalma
ADDED
data/cmd/clalmx
ADDED
data/cmd/cld
ADDED
data/cmd/clear
ADDED
data/cmd/clfl
ADDED
data/cmd/clk12
ADDED
data/cmd/clk24
ADDED
data/cmd/clkeys
ADDED