Changeset 8677


Ignore:
Timestamp:
03/01/05 21:18:47 (16 years ago)
Author:
piso
Message:

addBindingsFromKeyMap(): support emacs-style key bindings (work in progress).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/j/src/org/armedbear/j/Help.java

    r3005 r8677  
    22 * Help.java
    33 *
    4  * Copyright (C) 1998-2003 Peter Graves
    5  * $Id: Help.java,v 1.14 2003-07-18 17:15:05 piso Exp $
     4 * Copyright (C) 1998-2005 Peter Graves
     5 * $Id: Help.java,v 1.15 2005-03-01 21:18:47 piso Exp $
    66 *
    77 * This program is free software; you can redistribute it and/or
     
    230230            FastStringBuffer sb = new FastStringBuffer(64);
    231231            sb.append(mapping.getKeyText());
     232            int spaces = 32 - sb.length();
     233            for (int j = spaces; j-- > 0;)
     234                sb.append(" ");
    232235            Object command = mapping.getCommand();
    233236            if (command instanceof String) {
    234237                String commandString = (String) command;
    235                 int spaces = 32 - sb.length();
    236                 for (int j = spaces; j-- > 0;)
    237                     sb.append(" ");
    238238                if (docDir != null) {
    239239                    sb.append("<a href=\"");
     
    247247                } else
    248248                    sb.append(commandString);
    249                 sb.append("<br>\n");
    250249            } else if (command instanceof LispObject) {
    251                 int spaces = 32 - sb.length();
    252                 for (int j = spaces; j-- > 0;)
    253                     sb.append("&nbsp;");
    254                 String name = ((LispObject)command).getName();
    255                 if (name != null) {
    256                     sb.append(name);
    257                 } else if (command instanceof Closure) {
    258                     sb.append("#&lt;CLOSURE ");
    259                     sb.append("@ ");
    260                     sb.append(Integer.toHexString(command.hashCode()));
    261                     sb.append("&gt;");
    262                 }
    263                 sb.append("<br>\n");
    264             }
     250                try {
     251                    String s = ((LispObject)command).writeToString();
     252                    if (s.startsWith("#<"))
     253                        s = "#&lt;".concat(s.substring(2));
     254                    if (s.endsWith(">"))
     255                        s = s.substring(0, s.length() - 1).concat("&gt;");
     256                    sb.append(s);
     257                }
     258                catch (Throwable t) {
     259                    Log.debug(t);
     260                }
     261            } else if (command instanceof KeyMap) {
     262                sb.append(mapping.getKeyText());
     263                sb.append(" prefix command");
     264            }
     265            sb.append("<br>\n");
    265266            writer.write(sb.toString());
    266267        }
Note: See TracChangeset for help on using the changeset viewer.