DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400 Tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Rational R1000/400 Tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download
Index: ┃ T x

⟦cd65e4bda⟧ TextFile

    Length: 2743 (0xab7)
    Types: TextFile
    Names: »xallkeys.c«

Derivation

└─⟦d10a02448⟧ Bits:30000409 8mm tape, Rational 1000, ENVIRONMENT, D_12_7_3
    └─ ⟦fc9b38f02⟧ »DATA« 
        └─⟦8e9e227a9⟧ 
            └─⟦0b3b13f5b⟧ 
                └─ ⟦this⟧ »./xallkeys.c« 
└─⟦5f3412b64⟧ Bits:30000745 8mm tape, Rational 1000, ENVIRONMENT 12_6_5 TOOLS 
    └─ ⟦91c658230⟧ »DATA« 
        └─⟦5d656759a⟧ 
            └─⟦7d9cab9a9⟧ 
└─⟦d10a02448⟧ Bits:30000409 8mm tape, Rational 1000, ENVIRONMENT, D_12_7_3
    └─ ⟦fc9b38f02⟧ »DATA« 
        └─⟦8e9e227a9⟧ 
            └─⟦7d9cab9a9⟧ 
                └─ ⟦this⟧ »./xallkeys.c« 
└─⟦5f3412b64⟧ Bits:30000745 8mm tape, Rational 1000, ENVIRONMENT 12_6_5 TOOLS 
    └─ ⟦91c658230⟧ »DATA« 
        └─⟦5d656759a⟧ 
            └─⟦85ff0a957⟧ 
└─⟦d10a02448⟧ Bits:30000409 8mm tape, Rational 1000, ENVIRONMENT, D_12_7_3
    └─ ⟦fc9b38f02⟧ »DATA« 
        └─⟦8e9e227a9⟧ 
            └─⟦85ff0a957⟧ 
                └─ ⟦this⟧ »./xallkeys.c« 
└─⟦d10a02448⟧ Bits:30000409 8mm tape, Rational 1000, ENVIRONMENT, D_12_7_3
    └─ ⟦fc9b38f02⟧ »DATA« 
        └─⟦8e9e227a9⟧ 
            └─⟦90cbe8196⟧ 
                └─ ⟦this⟧ »./xallkeys.c« 
└─⟦d10a02448⟧ Bits:30000409 8mm tape, Rational 1000, ENVIRONMENT, D_12_7_3
    └─ ⟦fc9b38f02⟧ »DATA« 
        └─⟦8e9e227a9⟧ 
            └─⟦e9895db93⟧ 
                └─ ⟦this⟧ »./xallkeys.c« 

TextFile

/******************************************************************************
 * Description
 *	Connect to a display and run through all defined Modifiers and Keysyms
 *	and print the names and numbers to stdout.
 *****************************************************************************/


#include <X11/Xlib.h>
#include <X11/Xatom.h>
#include <X11/Xutil.h>
#include <stdio.h>

#define TRUE  1
#define FALSE 0

char *ProgramName;
Display *dpy;

static char *help_message[] = {
"where options include:",
"    -display host:dpy                X server to use",
NULL};

/******************************************************************************
 * Description
 *	Main routine.  Process command-line arguments, then get the info.
 *****************************************************************************/

main(argc, argv)
int argc;
char **argv;
{
	char *display = NULL;

	/* Process arguments: */

	while (*++argv) {
		if (!strcmp (*argv, "-display")) {
			display = *++argv;
		}
		else {	/* unknown arg */
		    char **cpp;

		    fprintf (stderr, "usage:  %s [-options]\n\n", argv[0]);
		    for (cpp = help_message; *cpp; cpp++) {
			fprintf (stderr, "%s\n", *cpp);
		    }
		    fprintf (stderr, "\n");
		    exit (1);
		}
	}
	if (!(dpy= XOpenDisplay(display))) {
		perror("Cannot open display\n"); 
		exit(-1);
	      }

	{ XModifierKeymap *mm = XGetModifierMapping(dpy);
	  KeyCode         *map = mm->modifiermap;
	  int 		  i;
	  KeyCode 	  kc;
	  KeySym 	  ks;
	  char 		 *sym;

#define mm_loop(modif) \
	  for (i = 0; i < mm->max_keypermod; i++) { \
	    kc = *map++; \
	    if (kc != 0) { \
	      ks = XKeycodeToKeysym(dpy,kc,0); \
	      sym = XKeysymToString(ks); \
	      printf( "Modifier %s %x %s\n", modif, (int)kc, sym ); \
	    } \
	  }

	  mm_loop("Shift");
	  mm_loop("Lock ");
	  mm_loop("Ctrl ");
	  mm_loop("Mod1 ");
	  mm_loop("Mod2 ");
	  mm_loop("Mod3 ");
	  mm_loop("Mod4 ");
	  mm_loop("Mod5 ");

	  XFreeModifiermap(mm);
	}

	{ KeySym *Mapping;
	  KeySym *ks;
	  int     per_keycode;
	  int     i;
	  KeyCode kc;
	  char   *sym;
	  int	  first;

	  printf( "Min_KeyCode %x  Max_KeyCode %x\n",
		  (int)dpy->min_keycode, (int)dpy->max_keycode );

	  Mapping = XGetKeyboardMapping( dpy,dpy->min_keycode,
					 dpy->max_keycode -
						dpy->min_keycode + 1,
					 &per_keycode );

	  ks = Mapping;
	  for (kc = dpy->min_keycode; kc <= dpy->max_keycode; kc++) {
	    first = TRUE;
	    for (i = 0; i < per_keycode; ks++,i++) {
	      if (*ks != NoSymbol) {
		sym = XKeysymToString( *ks );
		if (first) {
		  first = FALSE;
		  printf( "KeyCode %d 0x%x", (int)kc, (int)kc );
		}
		printf( " %s", sym );
	      }
	    }
	    if (!first) printf("\n");
	  }

	  XFree( Mapping );
	}

	XCloseDisplay(dpy);
}