From: tmk <nobody@nowhere>
Date: Mon, 20 May 2013 13:42:29 +0000 (+0900)
Subject: Fix deprecated 'prog_*' typedef - Issue #34
X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=796defa86c3e8a756b66937f5c010640eeac2d13;p=qmk_firmware.git

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
---

diff --git a/common/action.h b/common/action.h
index 98c4ef81a..8f1f5b798 100644
--- a/common/action.h
+++ b/common/action.h
@@ -50,7 +50,7 @@ void action_exec(keyevent_t event);
 action_t action_for_key(uint8_t layer, key_t key);
 
 /* 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 */
 void action_function(keyrecord_t *record, uint8_t id, uint8_t opt);
diff --git a/common/action_macro.c b/common/action_macro.c
index 71d1506f5..29cfd23df 100644
--- a/common/action_macro.c
+++ b/common/action_macro.c
@@ -28,7 +28,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #ifndef NO_ACTION_MACRO
 
 #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;
     uint8_t interval = 0;
diff --git a/common/action_macro.h b/common/action_macro.h
index ee5c7c426..eea8ef57d 100644
--- a/common/action_macro.h
+++ b/common/action_macro.h
@@ -21,15 +21,14 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 
 #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 macro_t prog_macro_t PROGMEM;
 
 
 #ifndef NO_ACTION_MACRO
-void action_macro_play(const prog_macro_t *macro);
+void action_macro_play(const macro_t *macro_p);
 #else
 #define action_macro_play(macro)
 #endif
diff --git a/common/keymap.c b/common/keymap.c
index 8e2b8607c..cf4711bf6 100644
--- a/common/keymap.c
+++ b/common/keymap.c
@@ -106,7 +106,7 @@ action_t action_for_key(uint8_t layer, key_t key)
 
 /* Macro */
 __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;
 }
diff --git a/common/xprintf.S b/common/xprintf.S
index b5a97b20a..0cec70ce2 100644
--- a/common/xprintf.S
+++ b/common/xprintf.S
@@ -80,7 +80,7 @@ xputc:
 ;---------------------------------------------------------------------------
 ; 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
@@ -179,9 +179,9 @@ xitoa:
 ; Formatted string output (16/32bit version)
 ;
 ;Prototype:
-; void xprintf (const prog_char *format, ...);
-; void xsprintf(char*, const prog_char *format, ...);
-; void xfprintf(void(*func)(char), const prog_char *format, ...);
+; void __xprintf (const char *format_p, ...);
+; void __xsprintf(char*, const char *format_p, ...);
+; void __xfprintf(void(*func)(char), const char *format_p, ...);
 ;
 
 #if USE_XPRINTF
diff --git a/common/xprintf.h b/common/xprintf.h
index cddec9940..f58bca817 100644
--- a/common/xprintf.h
+++ b/common/xprintf.h
@@ -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.
 */
@@ -51,9 +51,9 @@ void xitoa(long value, char radix, char width);
 #define xsprintf(str, format, ...)      __xsprintf(str, 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 __xsprintf(char*, const prog_char *format, ...);	/* Put formatted string to the memory */
-void __xfprintf(void(*func)(uint8_t), const prog_char *format, ...); /* Send formatted string to the specified device */
+void __xprintf(const char *format_p, ...);	/* Send formatted string to the registered device */
+void __xsprintf(char*, const char *format_p, ...);	/* Put formatted string to the memory */
+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().
 
diff --git a/converter/pc98_usb/keymap.c b/converter/pc98_usb/keymap.c
index 3ab0a4dbe..7420e24ac 100644
--- a/converter/pc98_usb/keymap.c
+++ b/converter/pc98_usb/keymap.c
@@ -125,7 +125,7 @@ enum macro_id {
     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;
     //uint8_t tap_count = record->tap_count;
diff --git a/keyboard/hhkb/keymap.c b/keyboard/hhkb/keymap.c
index eb66b9dc0..265fb8729 100644
--- a/keyboard/hhkb/keymap.c
+++ b/keyboard/hhkb/keymap.c
@@ -209,7 +209,7 @@ static const uint16_t PROGMEM fn_actions[] = {
 /*
  * 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;
     tap_t tap = record->tap;