How to Extend Editor types for cvsClient

After you have installed cvsClient in some location, say, CVSCLIENT/, copy the EditorTypes.java file (see below) and place it into CVSCLIENT/cvs subdirectory. After editing it, do the following:
    setenv CLASSPATH CVSCLIENT
    javac EditorTypes.java
Then run cvsClient and you should see your changes appear in the Options->Define->Editor ... menu.
package cvs;

/*
 * EditorTypes provides a means to define editor "types"
 */

class EditorTypes {

  public static int defaultType = 7;
  public ContentEditor[] etype = new ContentEditor[8];

  /*
    Here is how you should use this class:

    Make sure the size of etype (see array above) matches the number of 
    editor types you will be defining.  Then start adding new types as 
    follows:

    etype[++e] = new ContentEditor("type of editor","file extensions");
    etype[e].addEditor("/an/editor/program possibly-with-args");
    etype[e].addEditor("andMaybeAnotherOne");
    ...
    etype[e].setEditor(indexOfDefaultEditorOfThisType);

    That's all!  Note that the order you list them below will be the
    order that they appear in the scroll menu.
    */

  public EditorTypes() {
    int e=-1;
    // audio editor
    etype[++e] = new ContentEditor("audio","au snd");
    etype[e].addEditor("/usr/bin/audioplay");
    etype[e].addEditor("/usr/sbin/sfplay");
    //    etype[e].setEditor(0); // no default X audio player per se ...
    // dvi (tex) editor
    etype[++e] = new ContentEditor("dvi","dvi");
    etype[e].addEditor("xdvi");
    etype[e].addEditor("/usr/bin/X11/xterm -e dvips");
    etype[e].setEditor(0);
    // hypertext markup editor
    etype[++e] = new ContentEditor("HTML","htm html");
    etype[e].addEditor("/usr/bin/X11/xterm -e lynx");
    etype[e].addEditor("netscape");
    etype[e].addEditor("{text} {*}");
    etype[e].setEditor(0);
    // image editor
    etype[++e] = new ContentEditor("image","gif jpg jpeg rgb xbm xpm");
    etype[e].addEditor("xpaint");
    etype[e].addEditor("xv");
    etype[e].setEditor(1);
    // matlab editor
    etype[++e] = new ContentEditor("matlab","m");
    etype[e].addEditor("{shell} -e matlab");
    etype[e].addEditor("{text 2} {*}");
    etype[e].setEditor(0);
    // mpeg video editor
    etype[++e] = new ContentEditor("mpeg video","mpeg mpg");
    etype[e].addEditor("mpeg_play");
    etype[e].setEditor(0);
    // postscript editor
    etype[++e] = new ContentEditor("postscript","eps ps");
    etype[e].addEditor("ghostview");
    etype[e].addEditor("{image 1} {*}");
    etype[e].addEditor("{text} {*}");
    etype[e].addEditor("xpsview");
    etype[e].setEditor(0);
    // note: "text" should be considered the "default" editor, and should
    //       accept anything not accepted by other editors
    etype[++e] = new ContentEditor("text","txt c f java");
    etype[e].addEditor("/usr/bin/X11/xedit");
    etype[e].addEditor("/usr/bin/X11/xterm -e emacs -nw");
    etype[e].addEditor("/usr/bin/X11/xterm -e vi");
    etype[e].addEditor("emacs");
    etype[e].addEditor("gnuclient");
    etype[e].addEditor("xemacs");
    etype[e].setEditor(0);
  }

}