diff -urN ChangeLog ChangeLog
--- ChangeLog	Sun Jan 16 22:04:26 2005
+++ ChangeLog	Mon Jan 17 01:12:37 2005
@@ -1,3 +1,13 @@
+2005-01-17  Erlend Aasland  <erlenda@gmail.com>
+
+	* scm/define-markup-commands.scm: Change number->markletter-string
+	to take two arguments (vector number). Add number->mark-alphabet-vector
+	and markalphabet markup command.
+
+	* scm/translation-functions.scm: Add format-mark-box-alphabet,
+	format-mark-alphabet, format-mark-box-barnumbers and
+	format-mark-barnumbers. Fix bug in format-mark-box-numbers.
+
 2005-01-16  Graham Percival  <gperlist@shaw.ca>
 
 	* Documentation/user/lilypond.tely: changed order of appendices;
diff -urN scm/define-markup-commands.scm scm/define-markup-commands.scm
--- scm/define-markup-commands.scm	Sun Jan  2 21:41:00 2005
+++ scm/define-markup-commands.scm	Mon Jan 17 01:01:21 2005
@@ -670,22 +670,30 @@
   (vector-set! number->mark-letter-vector j
                (integer->char (+ i (char->integer #\A)))))
 
-(define (number->markletter-string n)
+(define number->mark-alphabet-vector (list->vector
+  (map (lambda (i) (integer->char (+ i (char->integer #\A)))) (iota 26))))
+
+(define (number->markletter-string vec n)
   "Double letters for big marks."
-  (let* ((lst (vector-length number->mark-letter-vector)))
+  (let* ((lst (vector-length vec)))
     
     (if (>= n lst)
-	(string-append (number->markletter-string (1- (quotient n lst)))
-		       (number->markletter-string (remainder n lst)))
-	(make-string 1 (vector-ref number->mark-letter-vector n)))))
-
+	(string-append (number->markletter-string vec (1- (quotient n lst)))
+		       (number->markletter-string vec (remainder n lst)))
+	(make-string 1 (vector-ref vec n)))))
 
 (def-markup-command (markletter layout props num) (integer?)
   "Make a markup letter for @var{num}.  The letters start with A to Z
  (skipping I), and continues with double letters."
   
-  (Text_interface::interpret_markup layout props (number->markletter-string num)))
+  (Text_interface::interpret_markup layout props
+    (number->markletter-string number->mark-letter-vector num)))
 
+(def-markup-command (markalphabet layout props num) (integer?)
+   "Make a markup letter for @var{num}.  The letters start with A to Z
+ and continues with double letters."
+   (Text_interface::interpret_markup layout props
+     (number->markletter-string number->mark-alphabet-vector num)))
 
 (def-markup-command (bracketed-y-column layout props indices args)
   (list? markup-list?)
diff -urN scm/translation-functions.scm scm/translation-functions.scm
--- scm/translation-functions.scm	Tue Jan  4 23:21:40 2005
+++ scm/translation-functions.scm	Mon Jan 17 00:58:53 2005
@@ -28,14 +28,27 @@
       (make-simple-markup  "=")
       (make-simple-markup (number->string count))))))
 
+(define-public (format-mark-alphabet mark context)
+  (make-bold-markup (make-markalphabet-markup (1- mark))))
+
+(define-public (format-mark-box-alphabet mark context)
+  (make-bold-markup (make-box-markup (make-markalphabet-markup (1- mark)))))
+
 (define-public (format-mark-letters mark context)
   (make-bold-markup (make-markletter-markup (1- mark))))
 
 (define-public (format-mark-numbers mark context)
   (make-bold-markup (number->string mark)))
 
+(define-public (format-mark-barnumbers mark context)
+  (make-bold-markup (number->string (ly:context-property context 'currentBarNumber))))
+
 (define-public (format-mark-box-letters mark context)
   (make-bold-markup (make-box-markup (make-markletter-markup (1- mark)))))
 
 (define-public (format-mark-box-numbers mark context)
-  (make-bold-markup (make-box-markup (make-markletter-markup (1- mark)))))
+  (make-bold-markup (make-box-markup (number->string mark))))
+
+(define-public (format-mark-box-barnumbers mark context)
+  (make-bold-markup (make-box-markup
+    (number->string (ly:context-property context 'currentBarNumber)))))
