Fix deprecated 'prog_*' typedef - Issue #34

- Remove prog_char from xpritnf
- Remove prog_macro_t from acton_macro

avr-libc-1.8 removed 'prog_*' typedef because the usage of
the __progmem__ attribute on a type is not supported in GCC.
http://www.nongnu.org/avr-libc/changes-1.8.html
example_keyboards
tmk 12 years ago
parent adbd15d5bd
commit 796defa86c

@ -50,7 +50,7 @@ void action_exec(keyevent_t event);
action_t action_for_key(uint8_t layer, key_t key); action_t action_for_key(uint8_t layer, key_t key);
/* macro */ /* macro */
const prog_macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt); const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt);
/* user defined special function */ /* user defined special function */
void action_function(keyrecord_t *record, uint8_t id, uint8_t opt); void action_function(keyrecord_t *record, uint8_t id, uint8_t opt);

@ -28,7 +28,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#ifndef NO_ACTION_MACRO #ifndef NO_ACTION_MACRO
#define MACRO_READ() (macro = pgm_read_byte(macro_p++)) #define MACRO_READ() (macro = pgm_read_byte(macro_p++))
void action_macro_play(const prog_macro_t *macro_p) void action_macro_play(const macro_t *macro_p)
{ {
macro_t macro = END; macro_t macro = END;
uint8_t interval = 0; uint8_t interval = 0;

@ -21,15 +21,14 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MACRO_NONE 0 #define MACRO_NONE 0
#define MACRO(...) ({ static prog_macro_t _m[] PROGMEM = { __VA_ARGS__ }; _m; }) #define MACRO(...) ({ static const macro_t __m[] PROGMEM = { __VA_ARGS__ }; &__m[0]; })
typedef uint8_t macro_t; typedef uint8_t macro_t;
typedef macro_t prog_macro_t PROGMEM;
#ifndef NO_ACTION_MACRO #ifndef NO_ACTION_MACRO
void action_macro_play(const prog_macro_t *macro); void action_macro_play(const macro_t *macro_p);
#else #else
#define action_macro_play(macro) #define action_macro_play(macro)
#endif #endif

@ -106,7 +106,7 @@ action_t action_for_key(uint8_t layer, key_t key)
/* Macro */ /* Macro */
__attribute__ ((weak)) __attribute__ ((weak))
const prog_macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{ {
return MACRO_NONE; return MACRO_NONE;
} }

@ -80,7 +80,7 @@ xputc:
;--------------------------------------------------------------------------- ;---------------------------------------------------------------------------
; Direct ROM string output ; Direct ROM string output
; ;
;Prototype: void xputs (const prog_char *str // rom string to be output ;Prototype: void xputs (const char *str_p // rom string to be output
; ); ; );
.func xputs .func xputs
@ -179,9 +179,9 @@ xitoa:
; Formatted string output (16/32bit version) ; Formatted string output (16/32bit version)
; ;
;Prototype: ;Prototype:
; void xprintf (const prog_char *format, ...); ; void __xprintf (const char *format_p, ...);
; void xsprintf(char*, const prog_char *format, ...); ; void __xsprintf(char*, const char *format_p, ...);
; void xfprintf(void(*func)(char), const prog_char *format, ...); ; void __xfprintf(void(*func)(char), const char *format_p, ...);
; ;
#if USE_XPRINTF #if USE_XPRINTF

@ -23,7 +23,7 @@ void xputc(char chr);
/*-----------------------------------------------------------------------------*/ /*-----------------------------------------------------------------------------*/
void xputs(const prog_char *string); void xputs(const char *string_p);
/* The string placed in the ROM is forwarded to xputc() directly. /* The string placed in the ROM is forwarded to xputc() directly.
*/ */
@ -51,9 +51,9 @@ void xitoa(long value, char radix, char width);
#define xsprintf(str, format, ...) __xsprintf(str, PSTR(format), ##__VA_ARGS__) #define xsprintf(str, format, ...) __xsprintf(str, PSTR(format), ##__VA_ARGS__)
#define xfprintf(func, format, ...) __xfprintf(func, PSTR(format), ##__VA_ARGS__) #define xfprintf(func, format, ...) __xfprintf(func, PSTR(format), ##__VA_ARGS__)
void __xprintf(const prog_char *format, ...); /* Send formatted string to the registered device */ void __xprintf(const char *format_p, ...); /* Send formatted string to the registered device */
void __xsprintf(char*, const prog_char *format, ...); /* Put formatted string to the memory */ void __xsprintf(char*, const char *format_p, ...); /* Put formatted string to the memory */
void __xfprintf(void(*func)(uint8_t), const prog_char *format, ...); /* Send formatted string to the specified device */ void __xfprintf(void(*func)(uint8_t), const char *format_p, ...); /* Send formatted string to the specified device */
/* Format string is placed in the ROM. The format flags is similar to printf(). /* Format string is placed in the ROM. The format flags is similar to printf().

@ -125,7 +125,7 @@ enum macro_id {
DUMMY, DUMMY,
}; };
const prog_macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{ {
keyevent_t event = record->event; keyevent_t event = record->event;
//uint8_t tap_count = record->tap_count; //uint8_t tap_count = record->tap_count;

@ -209,7 +209,7 @@ static const uint16_t PROGMEM fn_actions[] = {
/* /*
* Macro definition * Macro definition
*/ */
const prog_macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{ {
keyevent_t event = record->event; keyevent_t event = record->event;
tap_t tap = record->tap; tap_t tap = record->tap;

Loading…
Cancel
Save