void addShortcut(String name) {
   int index1 = name.indexOf('[');
   if (index1 == -1) return;
   int index2 = name.lastIndexOf(']');
   if (index2 <= (index1 + 1)) return;
   String shortcut = name.substring(index1 + 1, index2);
   int len = shortcut.length();
   if (len > 1) shortcut = shortcut.toUpperCase(Locale.US);
   ;
   if (len > 3 || (len > 1 && shortcut.charAt(0) != 'F' && shortcut.charAt(0) != 'N')) return;
   int code = Menus.convertShortcutToCode(shortcut);
   if (code == 0) return;
   if (nShortcuts == 0) removeShortcuts();
   // One character shortcuts go in a separate hash table to
   // avoid conflicts with ImageJ menu shortcuts.
   if (len == 1 || shortcut.equals("N+") || shortcut.equals("N-")) {
     Hashtable macroShortcuts = Menus.getMacroShortcuts();
     macroShortcuts.put(new Integer(code), commandPrefix + name);
     nShortcuts++;
     return;
   }
   Hashtable shortcuts = Menus.getShortcuts();
   if (shortcuts.get(new Integer(code)) != null) {
     if (shortcutsInUse == null) shortcutsInUse = "\n \n";
     shortcutsInUse += "	  " + name + "\n";
     inUseCount++;
     return;
   }
   shortcuts.put(new Integer(code), commandPrefix + name);
   nShortcuts++;
   // IJ.log("addShortcut3: "+name+"	  "+shortcut+"	  "+code);
 }