docs: public static void main(String[] arg) {
  
          bMustExit = true;
  
          // (ulrivo): read all arguments from the command line
          int i = 0;
  
          while (i < arg.length) {
              if (arg[i].equalsIgnoreCase("-driver") && (i + 1 < arg.length)) {
                  i++;
  
                  defDriver = arg[i];
              } else if (arg[i].equalsIgnoreCase("-url")
                         && (i + 1 < arg.length)) {
                  i++;
  
                  defURL = arg[i];
              } else if (arg[i].equalsIgnoreCase("-width")
                         && (i + 1 < arg.length)) {
                  i++;
  
                  try {
                      defWidth = Integer.parseInt(arg[i]);
                  } catch (Exception e) {}
              } else if (arg[i].equalsIgnoreCase("-height")
                         && (i + 1 < arg.length)) {
                  i++;
  
                  try {
                      defHeight = Integer.parseInt(arg[i]);
                  } catch (Exception e) {}
              } else if (arg[i].equalsIgnoreCase("-locx")
                         && (i + 1 < arg.length)) {
                  i++;
  
                  try {
                      defLocX = Integer.parseInt(arg[i]);
                  } catch (Exception e) {}
              } else if (arg[i].equalsIgnoreCase("-locy")
                         && (i + 1 < arg.length)) {
                  i++;
  
                  try {
                      defLocY = Integer.parseInt(arg[i]);
                  } catch (Exception e) {}
              } else if (arg[i].equalsIgnoreCase("-user")
                         && (i + 1 < arg.length)) {
                  i++;
  
                  defUser = arg[i];
              } else if (arg[i].equalsIgnoreCase("-password")
                         && (i + 1 < arg.length)) {
                  i++;
  
                  defPassword = arg[i];
              } else if (arg[i].equalsIgnoreCase("-query")
                         && (i + 1 < arg.length)) {
                  i++;
  
                  defQuery = arg[i];
              } else if (arg[i].equalsIgnoreCase("-defDirectory")
                         && (i + 1 < arg.length)) {
                  i++;
  
                  defDirectory = arg[i];
              } else if (arg[i].equalsIgnoreCase("-database")
                         && (i + 1 < arg.length)) {
                  i++;
  
                  defDatabase = arg[i];
              } else {
                  showUsage();
  
                  return;
              }
  
              i++;
          }
  
          ZaurusDatabaseManager m = new ZaurusDatabaseManager();
  
          m.main();
  
          // (ulrivo): make default connection if arguments set via the command line
          Connection c = null;
  
          if ((defDriver != null && defURL != null) || (defDatabase != null)) {
              if (defDatabase != null) {
                  defDriver   = "org.hsqldb_voltpatches.jdbcDriver";
                  defURL      = "jdbc:hsqldb:" + defDatabase;
                  defUser     = "SA";
                  defPassword = "";
              }
  
              try {
                  Class.forName(defDriver).newInstance();
  
                  c = DriverManager.getConnection(defURL, defUser, defPassword);
              } catch (Exception e) {
                  System.out.println("No connection for " + defDriver + " at "
                                     + defURL);
                  e.printStackTrace();
              }
          } else {
              c = ZaurusConnectionDialog.createConnection(m.fMain, "Connect",
                      new Insets(defWidth, defHeight, defLocX, defLocY));
          }
  
          if (c == null) {
              return;
          }
  
          m.connect(c);
      }