c't

c't-Projekte - Mailinglisten


[Voriger (Datum)] [Nächster (Datum)] [Voriger (Thread)] [Nächster (Thread)]
[Nach Datum][Nach Thread]

[ct-bot] Patch für fehlende #ifdef-Verzweigungen

Absender: Simon Siemens
Datum: Mi, 02.03.2011 17:34:21


Hallo Mailing-Liste,

ich habe den ct-Bot-Code des stable-Zweigs mit einer sehr eingeschrÃnkten Konfiguration in ct-Bot.h Ãbersetzt. Dabei sind einige Linker-Fehler aufgetreten, die ich alle auf fehlende #ifdef-Verzweigungen zurÃckfÃhren konnte. Am Ende dieser Email finden Sie einen Patch, der diese Fehler korrigiert. 

Kann bitte jemand den Patch prÃfen? Insbesondere durch die Bedingungen fÃr
BEHAVIOUR_REMOTECALL_AVAILABLE fÃllt in cmd-tools_pc.c einiges heraus.
Mir scheint das so korrekt zu sein.

Ich wÃrde mich sehr freuen, wenn die Fehler noch im aktuellen
stable-Zweig korrigiert werden wÃrden. Damit ist es fÃr mich und meine
Studenten leichter, eine funktionierende Codebasis herzustellen.

GruÃ, Simon


Index: pc/cmd-tools_pc.c
===================================================================
--- pc/cmd-tools_pc.c	(Revision 1736)
+++ pc/cmd-tools_pc.c	(Arbeitskopie)
@@ -43,7 +43,9 @@
 
 //#define DEBUG
 
+#ifdef BEHAVIOUR_REMOTECALL_AVAILABLE
 static pthread_t cmd_thread; /*!< Thread fuer die RemoteCall-Auswertung
per Kommandozeile */
+#endif // BEHAVIOUR_REMOTECALL_AVAILABLE
 
 /*!
  * Zeigt Informationen zu den moeglichen Kommandozeilenargumenten an.
@@ -269,6 +271,8 @@
 	}
 }
 
+
+#ifdef BEHAVIOUR_REMOTECALL_AVAILABLE
 /*!
  * Liest RemoteCall-Commands von stdin ein
  */
@@ -344,4 +348,5 @@
 	pthread_create(&cmd_thread, NULL, (void * (*)(void *))
read_command_thread, NULL);
 }
 
+#endif // BEHAVIOUR_REMOTECALL_AVAILABLE
 #endif // PC
Index: pc/init-low_pc.c
===================================================================
--- pc/init-low_pc.c	(Revision 1736)
+++ pc/init-low_pc.c	(Arbeitskopie)
@@ -58,6 +58,8 @@
  * ausgefuehrt werden sollen
  */
 void ctbot_init_low_last(void) {
+#ifdef BEHAVIOUR_REMOTECALL_AVAILABLE
 	cmd_init();
+#endif // BEHAVIOUR_REMOTECALL_AVAILABLE
 }
 #endif // PC
Index: ct-Bot.c
===================================================================
--- ct-Bot.c	(Revision 1736)
+++ ct-Bot.c	(Arbeitskopie)
@@ -112,8 +112,16 @@
 #endif // CREATE_TRACEFILE_AVAILABLE
 
 		/* jeweils alle 100 ms kommunizieren Bot, User und Sim */
-		if (timer_ms_passed_16(&comm_ticks, 50) || RC5_Code != 0) {
-			if (uart_gui == 0 || RC5_Code != 0) {
+		if (timer_ms_passed_16(&comm_ticks, 50) 
+#ifdef RC5_AVAILABLE
+|| RC5_Code != 0
+#endif // RC5_AVAILABLE
+		) {
+			if (uart_gui == 0 
+#ifdef RC5_AVAILABLE
+|| RC5_Code != 0
+#endif
+			) {
 #ifdef DISPLAY_AVAILABLE
 				/* GUI-Behandlung starten */
 				gui_display(display_screen);
Index: ui/gui.c
===================================================================
--- ui/gui.c	(Revision 1736)
+++ ui/gui.c	(Arbeitskopie)
@@ -200,7 +200,9 @@
 	/* Gueltigkeit der Screen-Nr. pruefen und Anzeigefunktion aufrufen,
falls Screen belegt ist */
 #ifdef LED_AVAILABLE
 #ifndef TEST_AVAILABLE
+#ifdef RC5_AVAILABLE
 	if (RC5_Code != 0) LED_on(LED_WEISS);
+#endif // RC5_AVAILABLE
 #endif // TEST_AVAILABLE
 #endif // LED_AVAILABLE
 	if (screen < max_screens && screen_functions[screen] != NULL)
screen_functions[screen]();
@@ -222,8 +224,10 @@
 	}
 #endif // KEYPAD_AVAILABLE
 
+#ifdef RC5_AVAILABLE
 	if (RC5_Code != 0) default_key_handler(); // falls rc5-Code noch nicht
abgearbeitet, Standardbehandlung ausfuehren
 	RC5_Code = 0; // fertig, RC5-Puffer loeschen
+#endif // RC5_AVAILABLE
 #ifdef LED_AVAILABLE
 #ifndef TEST_AVAILABLE
 	LED_off(LED_WEISS);