aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lisp/calc/calc-menu.el65
1 files changed, 47 insertions, 18 deletions
diff --git a/lisp/calc/calc-menu.el b/lisp/calc/calc-menu.el
index b3b54fc1c86..01a820c75fe 100644
--- a/lisp/calc/calc-menu.el
+++ b/lisp/calc/calc-menu.el
@@ -1125,48 +1125,77 @@
1125 (call-interactively 'calc-decimal-radix)) 1125 (call-interactively 'calc-decimal-radix))
1126 :keys "d 0" 1126 :keys "d 0"
1127 :style radio 1127 :style radio
1128 :selected (= calc-number-radix 10)] 1128 :selected (and (= calc-number-radix 10)
1129 (not calc-twos-complement-mode))]
1129 ["Binary" 1130 ["Binary"
1130 (progn 1131 (progn
1131 (require 'calc-bin) 1132 (require 'calc-bin)
1132 (call-interactively 'calc-binary-radix)) 1133 (call-interactively 'calc-binary-radix))
1133 :keys "d 2" 1134 :keys "d 2"
1134 :style radio 1135 :style radio
1135 :selected (= calc-number-radix 2)] 1136 :selected (and (= calc-number-radix 2)
1136 ["Twos complement" 1137 (not calc-twos-complement-mode))]
1137 (progn
1138 (require 'calc-bin)
1139 (call-interactively
1140 (lambda () (interactive) (calc-binary-radix t))))
1141 :keys "C-u d 2"
1142 :style radio
1143 :selected calc-complement-signed-mode]
1144 ["Octal" 1138 ["Octal"
1145 (progn 1139 (progn
1146 (require 'calc-bin) 1140 (require 'calc-bin)
1147 (call-interactively 'calc-octal-radix)) 1141 (call-interactively 'calc-octal-radix))
1148 :keys "d 8" 1142 :keys "d 8"
1149 :style radio 1143 :style radio
1150 :selected (= calc-number-radix 8)] 1144 :selected (and (= calc-number-radix 8)
1145 (not calc-twos-complement-mode))]
1151 ["Hexadecimal" 1146 ["Hexadecimal"
1152 (progn 1147 (progn
1153 (require 'calc-bin) 1148 (require 'calc-bin)
1154 (call-interactively 'calc-hex-radix)) 1149 (call-interactively 'calc-hex-radix))
1155 :keys "d 6" 1150 :keys "d 6"
1156 :style radio 1151 :style radio
1157 :selected (= calc-number-radix 16)] 1152 :selected (and (= calc-number-radix 16)
1153 (not calc-twos-complement-mode))]
1158 ["Other" 1154 ["Other"
1159 (progn 1155 (progn
1160 (require 'calc-bin) 1156 (require 'calc-bin)
1161 (call-interactively 'calc-radix)) 1157 (call-interactively 'calc-radix))
1162 :keys "d r" 1158 :keys "d r"
1163 :style radio 1159 :style radio
1164 :selected (not 1160 :selected (and
1165 (or 1161 (not calc-twos-complement-mode)
1166 (= calc-number-radix 10) 1162 (not
1167 (= calc-number-radix 2) 1163 (or
1168 (= calc-number-radix 8) 1164 (= calc-number-radix 10)
1169 (= calc-number-radix 16)))]) 1165 (= calc-number-radix 2)
1166 (= calc-number-radix 8)
1167 (= calc-number-radix 16))))]
1168 ["--Two's Complement--"
1169 (lambda () ())
1170 :style radio
1171 :selected nil]
1172 ["Binary"
1173 (progn
1174 (require 'calc-bin)
1175 (call-interactively
1176 (lambda () (interactive) (calc-binary-radix t))))
1177 :keys "C-u d 2"
1178 :style radio
1179 :selected (and (= calc-number-radix 2)
1180 calc-twos-complement-mode)]
1181 ["Octal"
1182 (progn
1183 (require 'calc-bin)
1184 (call-interactively
1185 (lambda () (interactive) (calc-octal-radix t))))
1186 :keys "C-u d 8"
1187 :style radio
1188 :selected (and (= calc-number-radix 8)
1189 calc-twos-complement-mode)]
1190 ["Hexadecimal"
1191 (progn
1192 (require 'calc-bin)
1193 (call-interactively
1194 (lambda () (interactive) (calc-hex-radix t))))
1195 :keys "C-u d 6"
1196 :style radio
1197 :selected (and (= calc-number-radix 16)
1198 calc-twos-complement-mode)])
1170 (list "Float Format" 1199 (list "Float Format"
1171 ["Normal" 1200 ["Normal"
1172 (progn 1201 (progn