コード例 #1
0
void charsort(std *ls,int n,int d){
	std outls[n];
	int ar[62],i,j,asc;
	for(i=0;i<62;i++)
		ar[i]=0;
	for(i=0;i<n;i++){
	   asc=getascii(ls[i].roll[d-1]);
	   ar[asc]++;
	}
	for(i=1;i<62;i++){
	   ar[i]+=ar[i-1];
	   
	}
	int b;
	for(i=n-1;i>=0;i--){
	   asc=getascii(ls[i].roll[d-1]);
	   b=ar[asc]-1;
	   outls[b]=ls[i];
	   ar[asc]--;
	}
	for(i=0;i<n;i++){
	ls[i]=outls[i];
	}
}
コード例 #2
0
ファイル: socket.c プロジェクト: DanIverson/OpenVnmrJ
int talk_2_acqproc(char *hostname, char *username, int cmd,
                   char *msg_for_acqproc, char *msg_for_vnmr, int mfv_len )
{
	char	*tptr;
	int	 connsid, ival;

#ifdef NESSIE

        ival = talk2Acq(hostname, username,  cmd, msg_for_acqproc, msg_for_vnmr, mfv_len);
	if (ival < 0) {
		return( -1 );
	}
	else
	  connsid = ival;
#else

/*  When you poke the Acqproc here, you expect to receive a reply.  If the poke
    works, the return value is the socket from which to receive this reply.	*/

	ival = poke_acqproc(hostname, username, cmd, msg_for_acqproc );
	if (ival < 0) {
		return( -1 );
	}
	else
	  connsid = ival;
#endif

	ival = prepare_reply_socket( connsid );
	if (ival != 0) {
		return( -1 );
	}

	ival = getascii( connsid, msg_for_vnmr, mfv_len-1 );	/* room for NUL */

/* Eliminate the ^D character from the Acqproc response.	*/

	if ( (tptr = strchr( msg_for_vnmr, '\004' )) != NULL )
	  *tptr = '\0';
	close( connsid );

	return( 0 );
}
コード例 #3
0
ファイル: keyboard.c プロジェクト: bernds/UAE
/* there's a problem remaining with the semantics of the '#' key on U.S. keyboards */
static int scancode2amiga (int keycode, int scancode)
{
	static int firstscan=0;
	if (!firstscan)
	{
	    keyboardlayoutid=GetKeyboardLayout(0);
	    keyboardlangid=LOWORD(keyboardlayoutid);
	    firstscan=1;
	}
#if DEBUG_KBD
    write_log ( "keycode = 0x%x, scancode = 0x%x\n", keycode, scancode ); 
#endif

    if(keyboardlangid==MAKELANGID(LANG_GERMAN, SUBLANG_GERMAN))
    {
	if (keystate[AK_CTRL] &&
	    keystate[AK_RALT])
	{
	    switch (keycode & 0xff) 
	    {
	    case 0xdb:
		return AK_BACKSLASH;
	    case 0x51:          //@	     
		record_key ((AK_CTRL << 1)+1);
		return 0x10;
	    case 0xbb:          //~
		record_key ((AK_CTRL << 1)+1);
		return 0x1b;
		
	    }
	}
    }

#define USE_OLD_SHIFT_CODE

    switch (keycode & 0xff) 
    {
#ifndef USE_OLD_SHIFT_CODE
    case VK_SHIFT:
	{
	    SHORT lsh, rsh;
	    lsh = GetKeyState( VK_LSHIFT );
	    rsh = GetKeyState( VK_RSHIFT );
	    if( !keystate[AK_RSH] && (rsh & 0x8000))
		return AK_RSH;
	    if( keystate[AK_RSH] && !(rsh & 0x8000))
		return AK_RSH;
	    if( !keystate[AK_LSH] && (lsh & 0x8000))
		return AK_LSH;
	    if( keystate[AK_LSH] && !(lsh & 0x8000))
		return AK_LSH;
	}
#endif
     case VK_INSERT:
     case VK_LWIN:
	return AK_LAMI;
     case VK_HOME:
     case VK_RWIN:
	return AK_RAMI;
     case VK_MENU:
	 return scancode & KF_EXTENDED ? AK_RALT:AK_LALT;
     case VK_APPS: /* Map Windows "Menu" key to Right-Alt of Amiga, for Stefan Stuntz */
	 return AK_RALT;
     case VK_SCROLL:
	return AK_inhibit;
     case VK_F11:
#if 0
	 if( currprefs.win32_ctrl_F11_is_quit )
	 {
	    if (GetAsyncKeyState (VK_CONTROL)&0x8000)
		uae_quit();
	 }
#endif
	 return AK_BACKSLASH;
     case VK_F12:
	 if (GetAsyncKeyState (VK_CONTROL)&0x8000)
	     return -6;
	 if( shiftpressed() )
	     return -5;
	 else
	     return -2;
	 break;
     case VK_PAUSE:
	return -3;
     case VK_DECIMAL:
	return AK_NPDEL;
     case VK_DIVIDE:
	return AK_NPDIV;
     case VK_MULTIPLY:
	return AK_NPMUL;
     case VK_SUBTRACT:
	return AK_NPSUB;
     case VK_ADD:
	return AK_NPADD;
     case VK_NUMPAD0:
	return AK_NP0;
     case VK_NUMPAD1:
	return AK_NP1;
     case VK_NUMPAD2:
	return AK_NP2;
     case VK_NUMPAD3:
	return AK_NP3;
     case VK_NUMPAD4:
	return AK_NP4;
     case VK_NUMPAD5:
	return AK_NP5;
     case VK_NUMPAD6:
	return AK_NP6;
     case VK_NUMPAD7:
	return AK_NP7;
     case VK_NUMPAD8:
	return AK_NP8;
     case VK_NUMPAD9:
	return AK_NP9;
     case VK_UP:
	return AK_UP;
     case VK_DOWN:
	return AK_DN;
     case VK_LEFT:
	return AK_LF;
     case VK_RIGHT:
	return AK_RT;
     case VK_CONTROL:
	return scancode & KF_EXTENDED ? AK_RCTRL : AK_CTRL;
     case VK_RETURN:
	return scancode & KF_EXTENDED ? AK_ENT : AK_RET;
     case VK_CAPITAL:
	return -4;
     case VK_F1:
	if (helppressed ())
	    return -10 - shiftpressed ();
	return AK_F1;
     case VK_F2:
	if (helppressed ())
	    return -12 - shiftpressed ();
	return AK_F2;
    case VK_F3:
	if (helppressed ())
	    return -14 - shiftpressed ();
	return AK_F3;
    case VK_F4:
	if (helppressed ())
	    return -16 - shiftpressed ();
	return AK_F4;
     case VK_F5:
	return AK_F5;
     case VK_F6:
	return AK_F6;
     case VK_F7:
	return AK_F7;
     case VK_F8:
	return AK_F8;
     case VK_F9:
	return AK_F9;
     case VK_F10:
	return AK_F10;
     case VK_NEXT:
	return AK_HELP;
    }

    switch (scancode) {
     case 0x01:
	return 0x45;
     case 0x29:
	return 0x00;
     case 0x02:
	return 0x01;
     case 0x03:
	return 0x02;
     case 0x04:
	return 0x03;
     case 0x05:
	return 0x04;
     case 0x06:
	return 0x05;
     case 0x07:
	return 0x06;
     case 0x08:
	return 0x07;
     case 0x09:
	return 0x08;
     case 0x0a:
	return 0x09;
     case 0x0b:
	return 0x0a;
     case 0x0c:
	return 0x0b;
     case 0x0d:
	return 0x0c;
     case 0x57: /* This is F11 */
	return AK_BACKSLASH;
     case 0x0e:
	return 0x41;
     case 0x0f:
	return 0x42;
     case 0x10:
	return 0x10;
     case 0x11:
	return 0x11;
     case 0x12:
	return 0x12;
     case 0x13:
	return 0x13;
     case 0x14:
	return 0x14;
     case 0x15:
	return 0x15;
     case 0x16:
	return 0x16;
     case 0x17:
	return 0x17;
     case 0x18:
	return 0x18;
     case 0x19:
	return 0x19;
     case 0x1a:
	return 0x1a;
     case 0x1b:
	return 0x1b;
	/* special handling for caps lock: return 0x63*/
     case 0x3a:
	return 0x62;
     case 0x1e:
	return 0x20;
     case 0x1f:
	return 0x21;
     case 0x20:
	return 0x22;
     case 0x21:
	return 0x23;
     case 0x22:
	return 0x24;
     case 0x23:
	return 0x25;
     case 0x24:
	return 0x26;
     case 0x25:
	return 0x27;
     case 0x26:
	return 0x28;
     case 0x27:
	return AK_SEMICOLON;
     case 0x28:
	return AK_QUOTE;
     case 0x2b: /* This scancode is \ on US keyboards, but # on German ones - figure out which! */
	 if( getascii( keycode & 0xFF, scancode ) == '#' )
	     return AK_NUMBERSIGN;
	 else
	     return AK_BACKSLASH;
	 break;
#ifdef USE_OLD_SHIFT_CODE
     case 0x2a:
	return AK_LSH;
     case 0x36:
	return AK_RSH;
#endif
     case 0x56:
	return AK_LTGT;
     case 0x2c:
	return 0x31;
     case 0x2d:
	return 0x32;
     case 0x2e:
	return 0x33;
     case 0x2f:
	return 0x34;
     case 0x30:
	return 0x35;
     case 0x31:
	return 0x36;
     case 0x32:
	return 0x37;
     case 0x33:
	return 0x38;
     case 0x34:
	return 0x39;
     case 0x35:
	return 0x3a;
     case 0x38:
	return 0x64;
     case 0x39:
	return 0x40;
     case 0x153:
	return 0x46;
     case 0x51:
	return 0x5f;
     case 0x52:
	return AK_LAMI;
     case 0x47:
	return AK_RAMI;
     case 0x4b:
	return 0x4f;
     case 0x50:
	return 0x4d;
     case 0x4d:
	return 0x4e;
     case 0x48:
	return 0x4c;
     case 0x4e:
	return 0x5e;
     case 0x4a:
	return 0x4a;
     case 0x37:
	return 0x5d;
    }

    return -1;
}
コード例 #4
0
ファイル: socket.c プロジェクト: DanIverson/OpenVnmrJ
int
get_ia_stat(char *hostname, char *username )
{

#ifdef NESSIE
	int		connsid, iter, ival, initOpsCompl, newOpsCompl, updated;
	TIMESTAMP	timeStamp, timeStamp2;
	char		expprocReply[ 122 ];

	gettimeofday( &timeStamp, NULL);
	initOpsCompl = getStatOpsCompl();
	ival = talk2Acq( hostname, username, READACQHW, "", &expprocReply[ 0 ], sizeof( expprocReply ) );
	if (ival < 0)
	  return( -1 );
	else
	  connsid = ival;

	ival = prepare_reply_socket( connsid );
	if (ival != 0) {
		close( connsid );
		return( -1 );
	}
	ival = getascii( connsid, &expprocReply[ 0 ], sizeof( expprocReply ) - 1 );
	close( connsid );

	updated = 0;
	for (iter = 0; iter < 50; iter++) {		/* increased from 10 to 50, July 1997 */
		usleep2( 20000 );			/* 20 ms, 0.02 s */
		getStatTimeStamp( &timeStamp2 );
		newOpsCompl = getStatOpsCompl();
		if (cmpTimeStamp( &timeStamp2, &timeStamp ) > 0 &&
		    newOpsCompl != initOpsCompl) {
			updated = 1;
			break;
		}
	}

	if (updated == 0)
	  return( -1 );
	else
	  return( 0 );
#else
	int	connsid, ival;
#if defined(WINBRIDGE) && defined(DEBUG)
        fprintf(stdout, "DEBUG jgw: socket.c get_ia_stat calling poke_acqproc\n");
        fprintf(stdout, "DEBUG jgw: socket.c get_ia_stat hostname = %s\n", hostname);
        fprintf(stdout, "DEBUG jgw: socket.c get_ia_stat username = %s\n", username);
        fprintf(stdout, "DEBUG jgw: socket.c get_ia_stat cmd = %d\n", READACQHW);
#endif
	ival = poke_acqproc(hostname, username, READACQHW, "1,24,");
	if (ival < 0) {
		return( -1 );
	}
	else
	  connsid = ival;

	ival = prepare_reply_socket( connsid );
	if (ival != 0) {
		return( -1 );
	}

	memset( &shlk_block, 0, sizeof( struct ia_stat ) );
	ival = getbinary( connsid, &shlk_block, sizeof( struct ia_stat ) );
	close( connsid );

	if (ival > 0)
	  return( 0 );
	else
	  return( -1 );
#endif
}