Subject: 24.0.50; format function broken for zero-padded hex chars
From: Steve Purcell <[email-masked]>
To: [email-masked]
Date: Sun, 5 Jun 2011 20:34:50 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

Evaluate the following expression:

(format "%06x" 176)

Expected result: "0000b0"

Actual result: "    b0"

This breaks some Slime backends, since swank packet lengths are encoded
into network messages using this method.

Some inputs appear to work fine, e.g.

(format "%06x" 95) => "00005f"

I'm using a snapshot build from emacsformacosx.com, and it's 2 or 3 days
old.

In GNU Emacs 24.0.50.1 (x86_64-apple-darwin, NS apple-appkit-1038.35)
of 2011-06-03 on black.porkrind.org
Windowing system distributor `Apple', version 10.3.1038
configured using `configure  '--host=x86_64-apple-darwin' '--build=i686-apple-darwin' '--with-ns' 'build_alias=i686-apple-darwin' 'host_alias=x86_64-apple-darwin' 'CC=gcc -mmacosx-version-min=10.5''

Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: nil
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: nil
  value of $XMODIFIERS: nil
  locale-coding-system: utf-8
  default enable-multibyte-characters: t

Major mode: Clojure

Minor modes in effect:
  shell-dirtrack-mode: t
  goto-address-prog-mode: t
  paredit-mode: t
  slime-mode: t
  diff-auto-refine-mode: t
  global-fuzzy-format-mode: t
  cua-mode: t
  global-pointback-mode: t
  pointback-mode: t
  global-undo-tree-mode: t
  undo-tree-mode: t
  desktop-save-mode: t
  recentf-mode: t
  global-smart-tab-mode: t
  smart-tab-mode: t
  global-auto-complete-mode: t
  auto-complete-mode: t
  hl-sexp-mode: t
  ido-everywhere: t
  tooltip-mode: t
  mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  unify-8859-on-decoding-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t

Features:
(shadow sort mail-extr emacsbug descr-text arc-mode archive-mode
executable shell vc network-stream starttls tramp tramp-compat
tramp-loaddefs help-mode multi-isearch jka-compr mmm-mode mmm-univ
mmm-class mmm-region mmm-utils org-wl org-w3m org-vm org-rmail org-mhe
org-mew org-irc org-jsinfo org-infojs org-html org-info org-gnus
org-docview org-bibtex bibtex org-bbdb org-fstree org-checklist
org-clock org-exp ob-exp org-exp-blocks org-agenda org-mac-iCal org
ob-emacs-lisp ob-tangle ob-ref ob-lob ob-table org-footnote org-src
ob-comint ob-keys ob ob-eval org-pcomplete org-list org-faces org-compat
org-entities org-macs vc-dispatcher flymake-js moz flymake eldoc
vc-darcs goto-addr paredit project-local-variables clojure-test-mode
durendal ac-slime hippie-expand-slime slime-repl slime-fuzzy slime
apropos hideshow pp clojure-mode init-locales init-edit-server
edit-server init-misc init-twitter twit url-http tls url-auth url-gw
init-mail init-common-lisp init-clojure init-slime init-lisp etags
init-rails rinari jump inflections findr ruby-compilation which-func
ansi-color inf-ruby init-ruby-mode flymake-ruby init-ocaml init-haskell
init-python-mode flymake-python init-haml flymake-haml init-css
init-nxml nxml-enc init-htmlize init-org init-php init-sh
init-javascript js-comint init-erlang init-csv init-markdown
init-textile init-crontab init-gnuplot init-git diff-git magithub crm
rebase-mode rx magit-svn magit server pcomplete ediff iswitchb view
diff-mode log-edit pcvs-util magit-bisect magit-key-mode vc-git
init-darcs darcsum gnus-art mm-uu mml2015 epg-config mm-view mml-smime
smime dig nnir gnus-sum nnoo gnus-group gnus-undo nnmail mail-source
gnus-start gnus-spec gnus-int gnus-range message rfc822 mml mml-sec
mailabbrev gmm-utils mailheader gnus-win gnus gnus-ems nnheader
mm-decode mm-bodies mm-encode mail-parse rfc2231 add-log init-svn
init-editing-utils fuzzy-format whole-line-or-region eol-conversion
cua-base pointback undo-tree init-growl init-mmm mmm-auto mmm-vars
mmm-compat init-themes color-theme-sanityinc-solarized cus-edit
cus-start cus-load color-theme-autoloads init-fonts init-sessions
session desktop init-windows winner init-auto-complete
init-hippie-expand init-ido init-recentf recentf tree-widget
init-regex-tool init-flymake init-ibuffer ibuffer-vc ibuf-macs ibuf-ext
ibuffer init-uniquify uniquify init-iedit init-isearch init-viper
init-dired dired+ dired-x ediff-merg ediff-diff ediff-wind ediff-mult
ediff-help ediff-init ediff-util dired-aux init-proxies init-gui-frames
init-maxframe maxframe init-osx-keys init-title-bar init-xterm
init-frame-hooks init-utils find-func init-el-get erc-autoloads
fringe-helper-autoloads highlight-symbol-autoloads json-autoloads
lua-mode-autoloads project-local-variables-autoloads sass-mode-autoloads
haml-mode-autoloads slime-fuzzy-autoloads slime-repl-autoloads
slime-autoloads yaml-mode-autoloads lua-mode markdown-mode noutline
outline rainbow-mode erlang-start coffee-mode org-google-weather solar
cal-dst cal-menu calendar cal-loaddefs format-spec google-weather xml
url-cache url url-proxy url-privacy url-expand url-methods url-history
url-cookie url-util url-parse auth-source eieio assoc gnus-util
time-date password-cache url-vars mailcap quack compile cmuscheme comint
ring scheme elein git-blame sass-mode haml-mode derived js json imenu
newcomment cc-mode cc-fonts cc-menus cc-cmds cc-styles cc-align
cc-engine cc-vars cc-defs css-mode ruby-mode whattf-dt html5-langs
color-theme wid-edit sendmail rfc2047 rfc2045 ietf-drums mm-util
mail-prsvr mail-utils reporter smart-tab auto-complete-config
auto-complete popup flymake-point iedit edmacro kmacro help-macro
fringe-helper todochiku growl smooth-scrolling byte-opt warnings paren
mic-paren highlight-symbol hi-lock hl-sexp thingatpt autopair advice
advice-preload easy-mmode diminish info easymenu revive smex ido el-get
autoload help-fns bytecomp byte-compile cconv macroexp package
tabulated-list dired regexp-opt init-elpa init-exec-path cl tooltip
ediff-hook vc-hooks lisp-float-type mwheel ns-win tool-bar dnd fontset
image fringe lisp-mode register page menu-bar rfn-eshadow timer select
scroll-bar mouse jit-lock font-lock syntax facemenu font-core frame cham
georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao
korean japanese hebrew greek romanian slovak czech european ethiopic
indian cyrillic chinese case-table epa-hook jka-cmpr-hook help simple
abbrev minibuffer loaddefs button faces cus-face files text-properties
overlay sha1 md5 base64 format env code-pages mule custom widget
hashtable-print-readable backquote make-network-process ns multi-tty
emacs)