Annotation of researchv9/X11/src/X.V11R1/lib/oldXrm/XErrDes.c, revision 1.1

1.1     ! root        1: #include "copyright.h"
        !             2: 
        !             3: /* $Header: XErrDes.c,v 11.15 87/09/11 08:02:54 toddb Exp $ */
        !             4: /* Copyright    Massachusetts Institute of Technology    1986  */
        !             5: 
        !             6: #include <stdio.h>
        !             7: #include "Xlibint.h"
        !             8: #include "Xresource.h"
        !             9: #include "Quarks.h"
        !            10: #include <strings.h>
        !            11: 
        !            12: char *XErrorList[] = {
        !            13:        /* No error     */      "",
        !            14:        /* BadRequest   */      "bad request code",
        !            15:        /* BadValue     */      "integer parameter out of range",
        !            16:        /* BadWindow    */      "parameter not a Window",
        !            17:        /* BadPixmap    */      "parameter not a Pixmap",
        !            18:        /* BadAtom      */      "parameter not an Atom",
        !            19:        /* BadCursor    */      "parameter not a Cursor",
        !            20:        /* BadFont      */      "parameter not a Font",
        !            21:        /* BadMatch     */      "parameter mismatch",
        !            22:        /* BadDrawable  */      "parameter not a Pixmap or Window",
        !            23:        /* BadAccess    */      "attempt to access private resource", 
        !            24:        /* BadAlloc     */      "insufficient resources",
        !            25:        /* BadColor     */      "no such colormap",
        !            26:        /* BadGC        */      "parameter not a GC",
        !            27:        /* BadIDChoice  */      "invalid resource ID for this connection",
        !            28:        /* BadName      */      "font or color name does not exist",
        !            29:        /* BadLength    */      "request length incorrect; internal Xlib error",
        !            30:        /* BadImplementation */ "server does not implement function",
        !            31: };
        !            32: 
        !            33: XGetErrorText(dpy, code, buffer, nbytes)
        !            34:     register int code;
        !            35:     register Display *dpy;
        !            36:     char *buffer;
        !            37:     int nbytes;
        !            38: {
        !            39: 
        !            40:     char *defaultp = NULL;
        !            41:     char buf[32];
        !            42:     register _XExtension *ext;
        !            43: 
        !            44:     sprintf(buf, "%d\0", code);
        !            45: 
        !            46:     
        !            47:     if (code <= (sizeof(XErrorList)/ sizeof (char *)) && code > 0) {
        !            48:        defaultp =  XErrorList[code];
        !            49:        XGetErrorDatabaseText(dpy, "XProtoError", buf, defaultp, buffer, nbytes);
        !            50:        }
        !            51:     ext = dpy->ext_procs;
        !            52:     while (ext) {              /* call out to any extensions interested */
        !            53:        if (ext->error_string != NULL) 
        !            54:            (*ext->error_string)(dpy, code, &ext->codes, buffer, nbytes);
        !            55:        ext = ext->next;
        !            56:     }    
        !            57:     return;
        !            58: }
        !            59: 
        !            60: XGetErrorDatabaseText(dpy, name, type, defaultp, buffer, nbytes)
        !            61:     register char *name, *type;
        !            62:     char *defaultp;
        !            63:     register Display *dpy;
        !            64:     char *buffer;
        !            65:     int nbytes;
        !            66: {
        !            67: 
        !            68:     XrmResourceDataBase db;
        !            69:     XrmName namelist[5];
        !            70:     XrmClass classlist[5];
        !            71:     XrmValue result;
        !            72:     static int initialized = False;
        !            73:     char temp[BUFSIZ];
        !            74: 
        !            75:     if (initialized == False) {
        !            76:        _XInitErrorHandling (&db);
        !            77:        initialized = True;
        !            78:     }
        !            79:     sprintf(temp, "%s.%s", name, type);
        !            80:     XrmStringToNameList(temp, namelist);
        !            81:     XrmStringToClassList("ErrorType.ErrorNumber", classlist);
        !            82: 
        !            83:     XrmGetResource(dpy, namelist, classlist, XrmQString, &result);
        !            84:     if (result.addr) {
        !            85:        (void) strncpy (buffer, result.addr, nbytes);
        !            86:        if (result.size < nbytes) buffer[result.size] = 0;
        !            87:     } else (void) strncpy(buffer, defaultp, nbytes);
        !            88: }
        !            89: 
        !            90: 
        !            91: _XInitErrorHandling (db)
        !            92:     XrmResourceDataBase *db;
        !            93:     {
        !            94:     XrmResourceDataBase errordb;
        !            95:     FILE *f;
        !            96: 
        !            97:     XrmInitialize();
        !            98: 
        !            99:     XrmGetCurrentDataBase(db);
        !           100: 
        !           101:     f = fopen(ErrorDataBase, "r");
        !           102:     if (f) {
        !           103:        XrmGetDataBase(f, &errordb);
        !           104:        XrmMergeDataBases(errordb, db);
        !           105:        XrmSetCurrentDataBase(*db);
        !           106:        (void) fclose(f);
        !           107:        }
        !           108:      }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.