* ,------|------|------| |------+------+------. * | | | Copy | | UP | | | * | Enter| Space|------| |------| Space|Enter | * | ~WIN | ~LSFT| Past | | DOWN | ~LSFT| ~WIN | * `--------------------' `--------------------' */ // If it accepts an argument (i.e, is a function), it doesn't need KC_. // Otherwise, it needs KC_* [BASE] = LAYOUT_ergodox( // layer 0 : default // left hand KC_LPRN, KC_1, KC_2, KC_3, KC_4, KC_5, LSFT(KC_QUOTE), KC_RPRN, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_BSPACE, KC_LCBR, KC_A, KC_S, KC_D, KC_F, KC_G, KC_RCBR, ALT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_SLASH, CTL_T(KC_TAB), LSFT(KC_COMMA),LSFT(KC_DOT),KC_PIPE,KC_AMPR, LT(1,KC_DOT), KC_COMM, LCTL(KC_C), GUI_T(KC_ENTER),SFT_T(KC_SPACE),LCTL(KC_V), // right hand LCTL(KC_S) , KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRACKET, KC_DELETE, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_RBRACKET, KC_H, KC_J, KC_K, KC_L, KC_UNDS,LCTL(KC_Y), KC_SCOLON,KC_N, KC_M, KC_QUOTE ,KC_EXLM , LSFT(KC_SLASH), LCTL(KC_Z), KC_EQUAL,KC_PLUS , KC_MINUS,KC_ASTR , TG(1), KC_HOME, LT(1,KC_END), KC_UP, KC_DOWN,SFT_T(KC_SPACE), GUI_T(KC_ENTER) ), /* Keymap 1: F keys + macros *
/* Qwerty * ,-----------------------------------------------------------------------------------. * | Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp | * |------+------+------+------+------+-------------+------+------+------+------+------| * | Tab | A | S | D | F | G | H | J | K | L | ; | ' | * |------+------+------+------+------+------|------+------+------+------+------+------| * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| * | Ctrl | GUI | \ | Alt | Lower|SpcRse| Space|Raise | [ | - | = | ] | * `-----------------------------------------------------------------------------------' */ [_QWERTY] = KEYMAP( \ KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_T(KC_ENT), \ KC_LCTL, KC_LGUI, KC_BSLS, KC_LALT, LOWER, LT(4, KC_SPC), KC_SPC, RAISE, LT(3, KC_LBRC), KC_MINS, KC_EQL, CTL_T(KC_RBRC) \ ), /* Arrow * ,-----------------------------------------------------------------------------------. * | Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp | * |------+------+------+------+------+-------------+------+------+------+------+------| * | Tab | A | S | D | F | G | H | J | K | L | ; | ' | * |------+------+------+------+------+------|------+------+------+------+------+------| * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| * | Ctrl | GUI | \ | Alt | Lower|SpcRse| Space|Raise | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ [_ARROW] = KEYMAP( \ KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \
/* handler for function 2 */ static Obj HdlrFunc2 ( Obj self ) { Obj t_1 = 0; Obj t_2 = 0; Obj t_3 = 0; Bag oldFrame; /* allocate new stack frame */ SWITCH_TO_NEW_FRAME(self,0,0,oldFrame); /* Print( AssertionLevel( ), "\n" ); */ t_1 = GF_Print; t_3 = GF_AssertionLevel; t_2 = CALL_0ARGS( t_3 ); CHECK_FUNC_RESULT( t_2 ) t_3 = MakeString( "\n" ); CALL_2ARGS( t_1, t_2, t_3 ); /* Assert( ... ); */ if ( ! LT(CurrentAssertionLevel, INTOBJ_INT(1)) ) { t_2 = False; t_1 = (Obj)(UInt)(t_2 != False); if ( ! t_1 ) { t_2 = MakeString( "fail-A" ); if ( t_2 != (Obj)(UInt)0 ){ if ( IS_STRING_REP ( t_2 ) ) PrintString1( t_2); else PrintObj(t_2); } } } /* Assert( ... ); */ if ( ! LT(CurrentAssertionLevel, INTOBJ_INT(1)) ) { t_2 = False; t_1 = (Obj)(UInt)(t_2 != False); if ( ! t_1 ) { ErrorReturnVoid("Assertion failure",0L,0L,"you may 'return;'"); } } /* Assert( ... ); */ if ( ! LT(CurrentAssertionLevel, INTOBJ_INT(0)) ) { t_2 = True; t_1 = (Obj)(UInt)(t_2 != False); if ( ! t_1 ) { t_2 = MakeString( "fail-B" ); if ( t_2 != (Obj)(UInt)0 ){ if ( IS_STRING_REP ( t_2 ) ) PrintString1( t_2); else PrintObj(t_2); } } } /* Assert( ... ); */ if ( ! LT(CurrentAssertionLevel, INTOBJ_INT(0)) ) { t_2 = True; t_1 = (Obj)(UInt)(t_2 != False); if ( ! t_1 ) { ErrorReturnVoid("Assertion failure",0L,0L,"you may 'return;'"); } } /* SetAssertionLevel( 2 ); */ t_1 = GF_SetAssertionLevel; CALL_1ARGS( t_1, INTOBJ_INT(2) ); /* Print( AssertionLevel( ), "\n" ); */ t_1 = GF_Print; t_3 = GF_AssertionLevel; t_2 = CALL_0ARGS( t_3 ); CHECK_FUNC_RESULT( t_2 ) t_3 = MakeString( "\n" ); CALL_2ARGS( t_1, t_2, t_3 ); /* Assert( ... ); */ if ( ! LT(CurrentAssertionLevel, INTOBJ_INT(3)) ) { t_2 = False; t_1 = (Obj)(UInt)(t_2 != False); if ( ! t_1 ) { t_2 = MakeString( "fail-C" ); if ( t_2 != (Obj)(UInt)0 ){ if ( IS_STRING_REP ( t_2 ) ) PrintString1( t_2); else PrintObj(t_2); } } } /* Assert( ... ); */ if ( ! LT(CurrentAssertionLevel, INTOBJ_INT(3)) ) { t_2 = False; t_1 = (Obj)(UInt)(t_2 != False); if ( ! t_1 ) { ErrorReturnVoid("Assertion failure",0L,0L,"you may 'return;'"); } } /* Assert( ... ); */ if ( ! LT(CurrentAssertionLevel, INTOBJ_INT(2)) ) { t_2 = True; t_1 = (Obj)(UInt)(t_2 != False); if ( ! t_1 ) { t_2 = MakeString( "fail-D" ); if ( t_2 != (Obj)(UInt)0 ){ if ( IS_STRING_REP ( t_2 ) ) PrintString1( t_2); else PrintObj(t_2); } } } /* Assert( ... ); */ if ( ! LT(CurrentAssertionLevel, INTOBJ_INT(2)) ) { t_2 = True; t_1 = (Obj)(UInt)(t_2 != False); if ( ! t_1 ) { ErrorReturnVoid("Assertion failure",0L,0L,"you may 'return;'"); } } /* Assert( ... ); */ if ( ! LT(CurrentAssertionLevel, INTOBJ_INT(2)) ) { t_2 = False; t_1 = (Obj)(UInt)(t_2 != False); if ( ! t_1 ) { t_2 = MakeString( "pass!\n" ); if ( t_2 != (Obj)(UInt)0 ){ if ( IS_STRING_REP ( t_2 ) ) PrintString1( t_2); else PrintObj(t_2); } } } /* Print( "end of function\n" ); */ t_1 = GF_Print; t_2 = MakeString( "end of function\n" ); CALL_1ARGS( t_1, t_2 ); /* return; */ SWITCH_TO_OLD_FRAME(oldFrame); return 0; /* return; */ SWITCH_TO_OLD_FRAME(oldFrame); return 0; }
/* * Convert value x (0..63) to corresponding Base64 character. */ static int b64_byte_to_char(unsigned x) { return (LT(x, 26) & (x + 'A')) | (GE(x, 26) & LT(x, 52) & (x + ('a' - 26))) | (GE(x, 52) & LT(x, 62) & (x + ('0' - 52))) | (EQ(x, 62) & '+') | (EQ(x, 63) & '/'); }
/* Second member's email address (leave blank if none) */ "" }; #else static unsigned int do_init = 0; #define end_heap sbrk(0) #endif static const char LogTable256[256] = { #define LT(n) n, n, n, n, n, n, n, n, n, n, n, n, n, n, n, n -1, 0, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, LT(4), LT(5), LT(5), LT(6), LT(6), LT(6), LT(6), LT(7), LT(7), LT(7), LT(7), LT(7), LT(7), LT(7), LT(7) }; /* * Definire queste macro per avere alcune print() di supporto * in fase di debugging. E' necessario definire almeno DEBUG in caso * di definizione di un'altra macro di debugging. */ /* #define DEBUG #define DEBUG_INIT #define DEBUG_MALLOC #define DEBUG_FREE #define DEBUG_REALLOC #define DEBUG_COALESCE
* | App | LGui | | Alt |Ctrl/Esc| * ,------|------|------| |------+--------+------. * | | | Home | | PgUp | | | * | Space|Backsp|------| |------| Tab |Enter | * | |ace | End | | PgDn | | | * `--------------------' `----------------------' */ // If it accepts an argument (i.e, is a function), it doesn't need KC_. // Otherwise, it needs KC_* [BASE] = LAYOUT_ergodox( // layer 0 : default // left hand FR_MINS, FR_AMP, FR_EACU, FR_QUOT, FR_APOS, FR_LPRN, KC_LEFT, KC_DELT, FR_A, FR_Z, KC_E, KC_R, KC_T, TG(1), KC_BSPC, FR_Q, KC_S, KC_D, KC_F, KC_G, KC_LSFT, CTL_T(FR_W), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO), LT(SYMB,FR_UGRV), FR_LESS, LALT(KC_LSFT), KC_LEFT, KC_RGHT, ALT_T(KC_APP), KC_LGUI, KC_HOME, KC_SPC, KC_BSPC, KC_END, // right hand KC_RGHT, FR_SECT, FR_EGRV, FR_EXLM, FR_CCED, FR_AGRV, FR_RPRN, TG(1), KC_Y, KC_U, KC_I, KC_O, KC_P, FR_GRV, KC_H, KC_J, KC_K, KC_L, FR_M, KC_LGUI, MEH_T(KC_NO), KC_N, FR_COMM, LT(MDIA, FR_SCLN), FR_COLN, CTL_T(FR_EQL), KC_RSFT, KC_UP, KC_DOWN, KC_LBRC, KC_RBRC, TT(SYMB), KC_LALT, CTL_T(KC_ESC), KC_PGUP, KC_PGDN, KC_TAB, KC_ENT ), /* Keymap 1: Symbol Layer
/*---------------------------------------------------------------------------*/ static void recv_mesh(struct mesh_conn *mesh, const rimeaddr_t *from, uint8_t hops) { struct rudolph1mh_conn *c = (struct rudolph1mh_conn *) ((char *) mesh - offsetof(struct rudolph1mh_conn, mesh)); struct rudolph1mh_datapacket *p = packetbuf_dataptr(); PRINTF("%d.%d: Got mesh type %d from %d.%d\n", rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1], p->h.type, from->u8[0], from->u8[1]); if(!rimeaddr_cmp(&c->partner, from)){ if(!rimeaddr_cmp(&c->partner, &rimeaddr_null)){ rimeaddr_t lfrom; PRINTF("%d.%d: Unexpected packet from %d.%d\n", rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1], from->u8[0], from->u8[1]); rimeaddr_copy(&lfrom, from); send_busy(c, &lfrom); return; } else { rimeaddr_copy(&c->partner, from); } } if(p->h.type == TYPE_ACK){ if(p->h.s_id == c->s_id && p->h.chunk == c->highest_chunk){ ctimer_stop(&c->t); rimeaddr_copy(&c->partner, &rimeaddr_null); if(c->cb->read_done){ c->cb->read_done(c); } PRINTF("GOT ACK\n"); } else { PRINTF("Unexpected ACK sid %i,%i C %i,%i\n", p->h.s_id, c->s_id, p->h.chunk, c->highest_chunk); } } else if(p->h.type == TYPE_NACK) { c->nacks++; PRINTF("%d.%d: Got NACK for %d:%d (%d:%d)\n", rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1], p->h.s_id, p->h.chunk, c->s_id, c->chunk); if(p->h.s_id == c->s_id) { if(p->h.chunk < c->chunk) { /* Format and send a repair packet */ PRINTF("%d.%d: sending repair for chunk %d\n", rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1], p->h.chunk); format_data(c, p->h.chunk); mesh_send(&c->mesh, &c->partner); } } else if(LT(p->h.s_id, c->s_id)) { format_data(c, 0); mesh_send(&c->mesh, &c->partner); } } else if(p->h.type == TYPE_DATA ) { /* This is a repair packet from someone else. */ PRINTF("%d.%d: got chunk %d\n", rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1], p->h.chunk); handle_data(c, p); } else if(p->h.type == TYPE_FIN ) { /* This is a repair packet from someone else. */ PRINTF("%d.%d: got last chunk %d\n", rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1], p->h.chunk); if(!rimeaddr_cmp(&c->partner, &rimeaddr_null)){ handle_data(c, p); }{ rimeaddr_copy(&c->partner, from); } send_ack(c); rimeaddr_copy(&c->partner, &rimeaddr_null); } else if(p->h.type == TYPE_BUSY){ PRINTF("%d.%d: %d.%d is busy\n", rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1], from->u8[0], from->u8[1]); //Wait } }
* ,-----------------------------------------------------------. * |Esc~| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | * |-----------------------------------------------------------| * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ | * |-----------------------------------------------------------| * |CAPS/MO| A| S| D| F| G| H| J| K| L| ;| '|Return | * |-----------------------------------------------------------| * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | * |-----------------------------------------------------------| * |Ctrl|Gui |Alt | Space |Alt |Gui |MO |Ctrl | * `-----------------------------------------------------------' */ LAYOUT( KC_GESC, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , XXXXXXX, KC_BSPC, KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC, KC_RBRC, KC_BSLS, LT(MO(1), KC_CAPS),KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT , KC_LSFT, XXXXXXX, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, XXXXXXX, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_SPC , KC_SPC , KC_RALT, KC_RGUI, XXXXXXX, MO(2) , KC_RCTL), /* Keymap : Second Layer (WASD and Media) * ,-----------------------------------------------------------. * |ESC| F1| F2| F3 | | | | | | | | | | DEL | * |-----------------------------------------------------------| * | | | | | | | | | | | | | | | * |-----------------------------------------------------------| * | | | | | | | | | | | | | | * |-----------------------------------------------------------| * | | | | | | | | | | | | | * |-----------------------------------------------------------| * | | | | | | | | | * `-----------------------------------------------------------'
* |-----------------------------------------------------------------------------| * |Tab | Q | W | E | R | T | Y | U | I| O| P| [| ]| | * |----------------------------------------------------------------------- | * |Caps/Fn | A| S| D| F| G| H| J| K| L| ;| '| #|Enter| * |-----------------------------------------------------------------------------| * |Shift| \| Z| X| C| V| B| N| M| ,| .| /| Shift | * |-----------------------------------------------------------------------------| * |Fn|Alt |Gui | Space(tapped), Fn(held) |Gui |Alt |Menu(tapped, Fn2(held)|Ctrl| * `-----------------------------------------------------------------------------' */ [_BL] = LAYOUT_60_iso( KC_ESC,KC_1,KC_2,KC_3,KC_4,KC_5,KC_6,KC_7,KC_8,KC_9,KC_0,KC_MINS,KC_EQL,KC_BSPC, \ KC_TAB,KC_Q,KC_W,KC_E,KC_R,KC_T,KC_Y,KC_U,KC_I,KC_O,KC_P,KC_LBRC,KC_RBRC, \ KC_LCTL,KC_A,KC_S,KC_D,KC_F,KC_G,KC_H,KC_J,KC_K,KC_L,KC_SCLN,KC_QUOT,KC_NUHS,KC_ENT, \ KC_LSFT,KC_NUBS,KC_Z,KC_X,KC_C,KC_V,KC_B,KC_N,KC_M,KC_COMM,KC_DOT,KC_SLSH,KC_RSFT, \ MO(1),KC_LALT,KC_LGUI, LT(1,KC_SPACE), KC_RGUI, KC_RALT, LT(2,KC_MENU), KC_RCTL), /* * Pok3r style arrow cluster * ,-----------------------------------------------------------. * |`~ | F1| F2| F3| F4| F5| F6| F7| F8| F9| F10| F11| F12|DEL | * |-----------------------------------------------------------| * | | | | | | | | |Up| | | | | | * |------------------------------------------------------- | * | | | | | | | |Left|Down|Right| | | | * |-----------------------------------------------------------| * | | | | | | | | | | | | | * |-----------------------------------------------------------| * | | | | | | | | | * `-----------------------------------------------------------' */
* ,-----------------------------------------------------------. * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| `|BSp| * |-----------------------------------------------------------| * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| * |-----------------------------------------------------------| * |Contro| A| S| D| F| G| H| J| K| L| ;| '|Enter | * |-----------------------------------------------------------| * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |Fn0| * |-----------------------------------------------------------' * | |Gui|Alt | Space |Alt |Gui| | | * `-----------------------------------------------------------' */ [0] = KEYMAP( KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_BSLS,KC_GRV, \ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,KC_RBRC,KC_BSPC, \ KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, LT(3, KC_SCLN), KC_QUOT,MT(KC_RCTL, KC_ENT), \ OSM(MOD_LSFT), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, LT(2, KC_SLSH), KC_RSFT,TG(1), \ KC_NO, KC_LGUI,KC_LALT, LT(4, KC_SPC), MO(4), KC_RGUI,KC_NO, KC_NO), /* Layer 1: HHKB mode (HHKB Fn) * ,-----------------------------------------------------------. * |Pwr| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del| * |-----------------------------------------------------------| * |Caps | | | | | | | |Psc|Slk|Pus|Up | |Backs| * |-----------------------------------------------------------| * | |VoD|VoU|Mut| | | *| /|Hom|PgU|Lef|Rig|Enter | * |-----------------------------------------------------------| * | | | | | | | +| -|End|PgD|Dow| | | * `-----------------------------------------------------------' * | |Gui|Alt | Space |Alt |Gui| | | * `-----------------------------------------------------------'
/* really glu_wrath_gl_pqSortInit */ int pqInit( PriorityQ *pq ) { PQkey **p, **r, **i, **j, *piv; struct { PQkey **p, **r; } Stack[50], *top = Stack; unsigned long seed = 2016473283; /* Create an array of indirect pointers to the keys, so that we * the handles we have returned are still valid. */ /* pq->order = (PQHeapKey **)memAlloc( (size_t) (pq->size * sizeof(pq->order[0])) ); */ pq->order = (PQHeapKey **)memAlloc( (size_t) ((pq->size+1) * sizeof(pq->order[0])) ); /* the previous line is a patch to compensate for the fact that IBM */ /* machines return a null on a malloc of zero bytes (unlike SGI), */ /* so we have to put in this defense to guard against a memory */ /* fault four lines down. from [email protected]. */ if (pq->order == NULL) return 0; p = pq->order; r = p + pq->size - 1; for( piv = pq->keys, i = p; i <= r; ++piv, ++i ) { *i = piv; } /* Sort the indirect pointers in descending order, * using randomized Quicksort */ top->p = p; top->r = r; ++top; while( --top >= Stack ) { p = top->p; r = top->r; while( r > p + 10 ) { seed = seed * 1539415821 + 1; i = p + seed % (r - p + 1); piv = *i; *i = *p; *p = piv; i = p - 1; j = r + 1; do { do { ++i; } while( GT( **i, *piv )); do { --j; } while( LT( **j, *piv )); Swap( i, j ); } while( i < j ); Swap( i, j ); /* Undo last swap */ if( i - p < r - j ) { top->p = j+1; top->r = r; ++top; r = i-1; } else { top->p = p; top->r = i-1; ++top; p = j+1; } } /* Insertion sort small lists */ for( i = p+1; i <= r; ++i ) { piv = *i; for( j = i; j > p && LT( **(j-1), *piv ); --j ) { *j = *(j-1); } *j = piv; } } pq->max = pq->size; pq->initialized = TRUE; glu_wrath_gl_pqHeapInit( pq->heap ); /* always succeeds */ #ifndef NDEBUG p = pq->order; r = p + pq->size - 1; for( i = p; i < r; ++i ) { assert( LEQ( **(i+1), **i )); } #endif return 1; }
* | App | Home | | PgUp |Ctrl/Esc| * ,------|------|------| |------+--------+------. * | | | End | | PgDn | | | * |Backsp|Delete|------| |------| Enter |Space | * | ace | | LAlt | |TabCtl| | | * `--------------------' `----------------------' */ // If it accepts an argument (i.e, is a function), it doesn't need KC_. // Otherwise, it needs KC_* [BASE] = KEYMAP( // layer 0 : default // left hand KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LGUI, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(1), CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO), KC_FN1, KC_GRV, KC_QUOT,KC_LEFT, LT(MDIA, KC_RGHT), KC_APP, KC_HOME, KC_END, KC_BSPC,KC_DELT,KC_LALT, // right hand TG(3), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, TG(2), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, KC_H, KC_J, KC_K, KC_L, KC_SCLN, CTL_T(KC_QUOT), MEH_T(KC_NO),KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, LT(MDIA, KC_UP), KC_DOWN,KC_LBRC,KC_RBRC, KC_FN1, KC_PGUP, CTL_T(KC_ESC), KC_PGDN, CTL_T(KC_TAB),KC_ENT, KC_SPC ), /* Keymap 1: Symbol Layer *
* ,-----------------------. * | 7 | 8 | 9 |Bksp | * |-----`-----`-----`-----| * | 4 | 5 | 6 | Tab | * |-----`-----`-----`-----| * | 1 | 2 | 3 |Enter| * |-----`-----`-----`-----| * | 0 |Space| . | / | * `-----`-----`-----`-----' * | L1 | L2 | | | Layer hold */ [_NP] = /* Numpad */ LAYOUT_ortho_4x4(KC_P7, KC_P8, KC_P9, KC_BSPC, \ KC_P4, KC_P5, KC_P6, KC_TAB, \ KC_P1, KC_P2, KC_P3, KC_PENT, \ LT(1, KC_P0), LT(2, KC_SPC), KC_PDOT, KC_PSLS), /* L1 * ,-----------------------. * |Reset| | | Del | * |-----`-----`-----`-----| * | Left| Down| Up |Right| * |-----`-----`-----`-----| * | 192.| 255 | | | * |-----`-----`-----`-----| * |_____| LED | . | | * `-----`-----`-----`-----' */ [_L1] = /* LAYER 1 */ LAYOUT_ortho_4x4(RESET, XXXXXXX, XXXXXXX, KC_DEL, \ KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, \
//Tap Dance Declarations enum { TD_DOTCOM = 0 }; //Tap Dance Definitions qk_tap_dance_action_t tap_dance_actions[] = { //Tap once for Esc, twice for Caps Lock [TD_DOTCOM] = ACTION_TAP_DANCE_DOUBLE(KC_COMMA, KC_DOT) // Other declarations would go here, separated by commas, if you have them }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_BL] = LAYOUT_625_space( LT(OSL(2), KC_TAB), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, GUI_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, LT(3, KC_ENT), KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, TD(TD_DOTCOM), OSL(2), OSM(MOD_RSFT), KC_ESC, KC_LALT, KC_LCTL, KC_SPC, KC_RGUI, RGB_TOG), [_WIN] = LAYOUT_625_space( LT(OSL(2), KC_TAB), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, LT(3, KC_ENT), KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, TD(TD_DOTCOM), OSL(2), OSM(MOD_RSFT), KC_ESC, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, RGB_TOG), [_FN1] = LAYOUT_625_space( KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, GUI_T(KC_ESC), KC_PGUP, KC_VOLU, KC_DEL, KC_TRNS, KC_BSLS, KC_LBRC, KC_RBRC, KC_MINS, KC_EQL, KC_TRNS, KC_LSFT, KC_PGDN, KC_VOLD, BL_STEP, BL_TOGG, KC_SCLN, KC_QUOT, KC_SLSH, KC_DOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), [_FN2] = LAYOUT_625_space(
* | App | LGui | | Alt |Ctrl/Esc| * ,------|------|------| |------+--------+------. * | | | Home | | PgUp | | | * | Space|Backsp|------| |------| Tab |Enter | * | |ace | End | | PgDn | | | * `--------------------' `----------------------' */ // If it accepts an argument (i.e, is a function), it doesn't need KC_. // Otherwise, it needs KC_* [BASE] = KEYMAP( // layer 0 : default // left hand KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT, KC_DELT, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(1), KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO), LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_LEFT,KC_RGHT, ALT_T(KC_APP), KC_LGUI, KC_HOME, KC_SPC,KC_BSPC,KC_END, // right hand KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, TG(1), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),KC_LGUI, MEH_T(KC_NO),KC_N, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT, KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, KC_FN1, KC_LALT, CTL_T(KC_ESC), KC_PGUP, KC_PGDN,KC_TAB, KC_ENT ), /* Keymap 1: Symbol Layer *
#include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { LAYOUT_60_ansi( KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, RSFT_T(KC_UP), MO(1), KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, RGUI_T(KC_LEFT), RALT_T(KC_DOWN), LT(2, KC_RIGHT) ), LAYOUT_60_ansi( KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_END, KC_PGDN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), LAYOUT_60_ansi( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_SCROLLLOCK, KC_PAUSE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) };
void Parser::traceOut(const std::string& rname) { std::cout << "exit " << rname << "; LA(1)==" << LT(1)->getText() << ((inputState->guessing>0)?" [guessing]":"") << std::endl; }
#include "keymap_nordic.h" enum custom_keycodes { PLACEHOLDER = SAFE_RANGE, // can always be here EPRM, VRSN, RGB_SLD, }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = KEYMAP(KC_ESCAPE,KC_1,KC_2,KC_3,KC_4,KC_5,TG(1),KC_TAB,KC_Q,KC_W,KC_E,KC_R,KC_T,KC_EQUAL,KC_CAPSLOCK,KC_A,KC_S,KC_D,KC_F,KC_G,KC_LSHIFT,CTL_T(KC_Z),KC_X,KC_C,KC_V,KC_B,ALT_T(KC_NO),KC_LCTL,KC_TILD,ALT_T(KC_QUOTE),KC_LEFT,KC_RIGHT,KC_COPY,KC_PASTE,KC_HOME,KC_SPACE,KC_LGUI,KC_END,TG(2),KC_6,KC_7,KC_8,KC_9,KC_0,KC_BSPACE,KC_MINUS,KC_Y,KC_U,KC_I,KC_O,KC_P,KC_BSLASH,KC_H,KC_J,KC_K,KC_L,LT(2,KC_SCOLON),KC_ENTER,ALT_T(KC_NO),KC_N,KC_M,KC_COMMA,KC_DOT,CTL_T(KC_SLASH),KC_RSHIFT,KC_UP,KC_DOWN,KC_LBRACKET,KC_RBRACKET,LT(1,KC_NO),KC_CUT,KC_INSERT,KC_PGUP,KC_PGDOWN,KC_TAB,KC_LGUI), [1] = KEYMAP(KC_ESCAPE,KC_F1,KC_F2,KC_F3,KC_F4,KC_F5,KC_TRANSPARENT,KC_TRANSPARENT,KC_EXLM,KC_AT,KC_LCBR,KC_RCBR,KC_PIPE,KC_TRANSPARENT,KC_TRANSPARENT,KC_HASH,KC_DLR,KC_LPRN,KC_RPRN,KC_GRAVE,KC_TRANSPARENT,KC_PERC,KC_CIRC,KC_LBRACKET,KC_RBRACKET,KC_TILD,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_COPY,KC_PASTE,KC_TRANSPARENT,KC_TRANSPARENT,KC_F6,KC_F7,KC_F8,KC_F9,KC_F10,KC_F11,KC_TRANSPARENT,KC_UP,KC_7,KC_8,KC_9,KC_ASTR,KC_F12,KC_DOWN,KC_4,KC_5,KC_6,KC_PLUS,KC_TRANSPARENT,KC_TRANSPARENT,KC_AMPR,KC_1,KC_2,KC_3,KC_BSLASH,KC_TRANSPARENT,KC_TRANSPARENT,KC_DOT,KC_0,KC_EQUAL,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_CUT,KC_APPLICATION), [2] = KEYMAP(KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_MS_UP,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_MS_LEFT,KC_MS_DOWN,KC_MS_RIGHT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_MS_BTN3,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_MS_ACCEL2,KC_MS_ACCEL1,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_MS_BTN1,KC_MS_BTN2,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_MS_WH_UP,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_MS_WH_LEFT,KC_MS_WH_DOWN,KC_MS_WH_RIGHT,KC_TRANSPARENT,KC_TRANSPARENT,KC_MEDIA_PLAY_PAUSE,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_MEDIA_PREV_TRACK,KC_MEDIA_NEXT_TRACK,KC_TRANSPARENT,KC_TRANSPARENT,KC_AUDIO_VOL_UP,KC_AUDIO_VOL_DOWN,KC_AUDIO_MUTE,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_WWW_FORWARD,KC_WWW_BACK), }; const uint16_t PROGMEM fn_actions[] = { [1] = ACTION_LAYER_TAP_TOGGLE(1) }; // leaving this in place for compatibilty with old keymaps cloned and re-compiled. const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { switch(id) {
/* Keymap _FL: Function Layer * .-------------------. * |NL F| | | Fn0| * |-------------------| * | | Fn4| | | * |--------------| | * | Fn3|BL_S| Fn2| Fn6| * |-------------------| * | | Fn5| | | * |--------------| | * | Fn1| | Fn7| * '-------------------' */ [_FL] = KEYMAP( LT(_FL, KC_NLCK), KC_TRNS, KC_TRNS, F(0), \ KC_TRNS, F(4), KC_TRNS, F(6), \ F(3), BL_STEP, F(2), \ KC_TRNS, F(5), KC_TRNS, F(7), \ F(1), KC_TRNS) }; enum function_id { RGBLED_TOGGLE, RGBLED_STEP_MODE, RGBLED_INCREASE_HUE, RGBLED_DECREASE_HUE, RGBLED_INCREASE_SAT, RGBLED_DECREASE_SAT, RGBLED_INCREASE_VAL, RGBLED_DECREASE_VAL,
/**************************************************************************** ** *F FuncIS_SUBSET_SET(<self>,<s1>,<s2>) test if a set is a subset of another ** ** 'FuncIS_SUBSET_SET' implements the internal function 'IsSubsetSet'. ** ** 'IsSubsetSet( <set1>, <set2> )' ** ** 'IsSubsetSet' returns 'true' if the set <set2> is a subset of the set ** <set1>, that is if every element of <set2> is also an element of <set1>. ** Either argument may also be a list that is not a proper set, in which ** case 'IsSubsetSet' silently applies 'Set' (see "Set") to it first. */ Obj FuncIS_SUBSET_SET ( Obj self, Obj set1, Obj set2 ) { UInt len1; /* length of the left set */ UInt len2; /* length of the right set */ UInt i1; /* index into the left set */ UInt i2; /* index into the right set */ Obj e1; /* element of left set */ Obj e2; /* element of right set */ UInt pos; /* position */ /* check the arguments, convert to sets if necessary */ while ( ! IS_SMALL_LIST(set1) ) { set1 = ErrorReturnObj( "IsSubsetSet: <set1> must be a small list (not a %s)", (Int)TNAM_OBJ(set1), 0L, "you can replace <set1> via 'return <set1>;'" ); } while ( ! IS_SMALL_LIST(set2) ) { set2 = ErrorReturnObj( "IsSubsetSet: <set2> must be a small list (not a %s)", (Int)TNAM_OBJ(set2), 0L, "you can replace <set2> via 'return <set2>;'" ); } if ( ! IsSet( set1 ) ) set1 = SetList( set1 ); if ( ! IsSet( set2 ) ) set2 = SetList( set2 ); /* special case if the second argument is a set */ if ( IsSet( set2 ) ) { /* get the logical lengths and get the pointer */ len1 = LEN_PLIST( set1 ); len2 = LEN_PLIST( set2 ); i1 = 1; i2 = 1; /* now compare the two sets */ while ( i1 <= len1 && i2 <= len2 && len2 - i2 <= len1 - i1 ) { e1 = ELM_PLIST( set1, i1 ); e2 = ELM_PLIST( set2, i2 ); if ( EQ( e1, e2 ) ) { i1++; i2++; } else if ( LT( e1, e2 ) ) { i1++; } else { break; } } } /* general case */ else { /* first convert the other argument into a proper list */ PLAIN_LIST( set2 ); /* get the logical lengths */ len1 = LEN_PLIST( set1 ); len2 = LEN_PLIST( set2 ); /* loop over the second list and look for every element */ for ( i2 = 1; i2 <= len2; i2++ ) { /* ignore holes */ if ( ELM_PLIST(set2,i2) == 0 ) continue; /* perform the binary search to find the position */ pos = PositionSortedDensePlist( set1, ELM_PLIST(set2,i2) ); /* test if the element was found at position k */ if ( len1<pos || ! EQ(ELM_PLIST(set1,pos),ELM_PLIST(set2,i2)) ) { break; } } } /* return 'true' if every element of <set2> appeared in <set1> */ return ((i2 == len2 + 1) ? True : False); }