altos: Allow pyro config name to end with newline, not just space/tab
[fw/altos] / src / kernel / ao_pyro.c
index 43e73de4a897cfa97ee6cdc851f4c7ef373727f1..0aed50d5434f65b8b0c7c03190bf47cc5b89160c 100644 (file)
@@ -3,7 +3,8 @@
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License.
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
  *
  * This program is distributed in the hope that it will be useful, but
  * WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -74,7 +75,8 @@ uint16_t      ao_pyro_fired;
 #endif
 
 #if PYRO_DBG
-#define DBG(...)       do { printf("\t%d: ", (int) (pyro - ao_config.pyro)); printf(__VA_ARGS__); } while (0)
+int pyro_dbg;
+#define DBG(...)       do { if (pyro_dbg) printf("\t%d: ", (int) (pyro - ao_config.pyro)); printf(__VA_ARGS__); } while (0)
 #else
 #define DBG(...)
 #endif
@@ -179,7 +181,7 @@ ao_pyro_ready(struct ao_pyro *pyro)
                case ao_pyro_state_greater_or_equal:
                        if (ao_flight_state >= pyro->state_greater_or_equal)
                                continue;
-                       DBG("state %d >= %d\n", ao_flight_state, pyro->state_less);
+                       DBG("state %d < %d\n", ao_flight_state, pyro->state_greater_or_equal);
                        break;
 
                default:
@@ -436,7 +438,7 @@ ao_pyro_show(void)
                                if (ao_pyro_values[v].flag & AO_PYRO_8_BIT_VALUE)
                                        value = *((uint8_t *) ((char *) pyro + ao_pyro_values[v].offset));
                                else
-                                       value = *((int16_t *) ((char *) pyro + ao_pyro_values[v].offset));
+                                       value = *((int16_t *) (void *) ((char *) pyro + ao_pyro_values[v].offset));
                                printf ("%6d ", value);
                        } else {
                                printf ("       ");
@@ -480,7 +482,7 @@ ao_pyro_set(void)
                        break;
 
                for (c = 0; c < AO_PYRO_NAME_LEN - 1; c++) {
-                       if (ao_cmd_is_white())
+                       if (ao_cmd_is_white() || ao_cmd_lex_c == '\n')
                                break;
                        name[c] = ao_cmd_lex_c;
                        ao_cmd_lex();
@@ -515,7 +517,7 @@ ao_pyro_set(void)
                        } else {
                                if (negative)
                                        ao_cmd_lex_i = -ao_cmd_lex_i;
-                               *((int16_t *) ((char *) &pyro_tmp + ao_pyro_values[v].offset)) = ao_cmd_lex_i;
+                               *((int16_t *) (void *) ((char *) &pyro_tmp + ao_pyro_values[v].offset)) = ao_cmd_lex_i;
                        }
                }
        }