Annotation of researchv9/X11/src/X.V11R1/lib/Xrm/XErrDes.c, revision 1.1.1.1

1.1       root        1: #include "copyright.h"
                      2: 
                      3: /* $Header: XErrDes.c,v 11.15 87/06/14 18:00:13 jg 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:     static XrmResourceDataBase db;
                     68:     XrmName namelist[5];
                     69:     XrmClass classlist[5];
                     70:     XrmValue result;
                     71:     static int initialized = False;
                     72:     char temp[BUFSIZ];
                     73: 
                     74:     if (initialized == False) {
                     75:        _XInitErrorHandling (&db);
                     76:        initialized = True;
                     77:     }
                     78:     sprintf(temp, "%s.%s", name, type);
                     79:     XrmStringToNameList(temp, namelist);
                     80:     XrmStringToClassList("ErrorType.ErrorNumber", classlist);
                     81: 
                     82:     XrmGetResource(DefaultScreen(dpy), db,
                     83:                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: 
                     96:     XrmInitialize();
                     97: 
                     98:     errordb = XrmGetDataBase(ErrorDataBase);
                     99:     XrmMergeDataBases(errordb, db);
                    100:     }

unix.superglobalmegacorp.com

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