Fix "grep: Version.h: No such file or directory" error when including the core LUFA...
[pub/USBasp.git] / Bootloaders / HID / HostLoaderApp / hid_bootloader_cli.c
index 0562690..058ccc6 100644 (file)
@@ -49,7 +49,7 @@ void usage(void)
        fprintf(stderr, "\n<MCU> = atmegaXXuY or at90usbXXXY");
 
        fprintf(stderr, "\nFor support and more information, please visit:\n");
-       fprintf(stderr, "http://www.lufa-lub.org\n");
+       fprintf(stderr, "http://www.lufa-lib.org\n");
 
        fprintf(stderr, "\nBased on the TeensyHID command line programmer software:\n");
        fprintf(stderr, "http://www.pjrc.com/teensy/loader_cli.html\n");
@@ -195,7 +195,9 @@ usb_dev_handle * open_usb_device(int vid, int pid)
        struct usb_bus *bus;
        struct usb_device *dev;
        usb_dev_handle *h;
+       #ifdef LIBUSB_HAS_GET_DRIVER_NP
        char buf[128];
+       #endif
        int r;
 
        usb_init();
@@ -390,21 +392,9 @@ int write_usb_device(HANDLE h, void *buf, int len, int timeout)
                if (r != WAIT_OBJECT_0) return 0;
        }
        if (!GetOverlappedResult(h, &ov, &n, FALSE)) return 0;
-       if (n <= 0) return 0;
        return 1;
 }
 
-void print_win32_err(void)
-{
-        char buf[256];
-        DWORD err;
-
-        err = GetLastError();
-        FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, NULL, err,
-                0, buf, sizeof(buf), NULL);
-        printf("err %ld: %s\n", err, buf);
-}
-
 static HANDLE win32_teensy_handle = NULL;
 
 int teensy_open(void)
@@ -667,6 +657,11 @@ int hard_reboot(void)
 #include <dev/usb/usb_ioctl.h>
 #endif
 
+#ifndef USB_GET_DEVICEINFO
+# define USB_GET_DEVICEINFO 0
+# error The USB_GET_DEVICEINFO ioctl() value is not defined for your system.
+#endif
+
 int open_usb_device(int vid, int pid)
 {
        int r, fd;
@@ -710,10 +705,10 @@ int teensy_open(void)
 {
        teensy_close();
        uhid_teensy_fd = open_usb_device(0x16C0, 0x0478);
-       
+
        if (uhid_teensy_fd < 0)
                uhid_teensy_fd = open_usb_device(0x03eb, 0x2067);
-       
+
        if (uhid_teensy_fd < 0) return 0;
        return 1;
 }
@@ -722,7 +717,7 @@ int teensy_write(void *buf, int len, double timeout)
 {
        int r;
 
-       // TODO: imeplement timeout... how??
+       // TODO: implement timeout... how??
        r = write(uhid_teensy_fd, buf, len);
        if (r == len) return 1;
        return 0;
@@ -801,6 +796,7 @@ int read_intel_hex(const char *filename)
                if (*buf) {
                        if (parse_hex_line(buf) == 0) {
                                //printf("Warning, parse error line %d\n", lineno);
+                               fclose(fp);
                                return -2;
                        }
                }
@@ -816,7 +812,7 @@ int read_intel_hex(const char *filename)
 
 /* parses a line of intel hex code, stores the data in bytes[] */
 /* and the beginning address in addr, and returns a 1 if the */
-/* line was valid, or a 0 if an error occured.  The variable */
+/* line was valid, or a 0 if an error occurred.  The variable */
 /* num gets the number of bytes that were stored into bytes[] */
 
 
@@ -826,7 +822,7 @@ parse_hex_line(char *line)
        int addr, code, num;
         int sum, len, cksum, i;
         char *ptr;
-        
+
         num = 0;
         if (line[0] != ':') return 0;
         if (strlen(line) < 11) return 0;
@@ -979,13 +975,9 @@ void parse_options(int argc, char **argv)
                        } else if (strncmp(arg, "-mmcu=", 6) == 0) {
                                arg += 6;
 
-                               uint8_t valid_prefix = 0;
-
                                if (strncmp(arg, "at90usb", 7) == 0) {
-                                       valid_prefix = 1;
                                        arg += 7;
                                } else if (strncmp(arg, "atmega", 6) == 0) {
-                                       valid_prefix = 1;
                                        arg += 6;
                                } else {
                                        die("Unknown MCU type\n");