diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2011-01-08 12:06:54 -0500 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2011-01-08 12:06:54 -0500 |
commit | 9e881a3821b045c9b75c64e9c349dc82b276df28 (patch) | |
tree | c711539acab1466efd5e2047557601d293f42340 | |
parent | 3c241edf3d7ef29c21e63ab74cfc7cb6f4a92ab3 (diff) | |
download | seabios-9e881a3821b045c9b75c64e9c349dc82b276df28.tar.gz |
Extract space trimming code from ATA and use in USB and bootorder code.
Introduce function nullTrailingSpace() that nulls blank characters
from the end of a string. Use this function in the ATA, USB MSC, and
bootorder code.
-rw-r--r-- | src/ata.c | 6 | ||||
-rw-r--r-- | src/boot.c | 1 | ||||
-rw-r--r-- | src/usb-msc.c | 14 | ||||
-rw-r--r-- | src/util.c | 10 | ||||
-rw-r--r-- | src/util.h | 1 |
5 files changed, 21 insertions, 11 deletions
@@ -727,11 +727,7 @@ ata_extract_model(char *model, u32 size, u16 *buffer) for (i=0; i<size/2; i++) *(u16*)&model[i*2] = ntohs(buffer[27+i]); model[size] = 0x00; - - // Trim trailing spaces from model name. - for (i=size-1; i>0 && model[i] == 0x20; i--) - model[i] = 0x00; - + nullTrailingSpace(model); return model; } @@ -51,6 +51,7 @@ loadBootOrder(void) f = strchr(f, '\n'); if (f) *(f++) = '\0'; + nullTrailingSpace(Bootorder[i]); dprintf(3, "%d: %s\n", i+1, Bootorder[i]); i++; } while (f); diff --git a/src/usb-msc.c b/src/usb-msc.c index 58a5d144..1aa57d1b 100644 --- a/src/usb-msc.c +++ b/src/usb-msc.c @@ -228,14 +228,16 @@ usb_msc_init(struct usb_pipe *pipe goto fail; char vendor[sizeof(data.vendor)+1], product[sizeof(data.product)+1]; char rev[sizeof(data.rev)+1]; + strtcpy(vendor, data.vendor, sizeof(vendor)); + nullTrailingSpace(vendor); + strtcpy(product, data.product, sizeof(product)); + nullTrailingSpace(product); + strtcpy(rev, data.rev, sizeof(rev)); + nullTrailingSpace(rev); int pdt = data.pdt & 0x1f; int removable = !!(data.removable & 0x80); - dprintf(1, "USB MSC vendor='%s' product='%s' rev='%s'" - " type=%d removable=%d\n" - , strtcpy(vendor, data.vendor, sizeof(vendor)) - , strtcpy(product, data.product, sizeof(product)) - , strtcpy(rev, data.rev, sizeof(rev)) - , pdt, removable); + dprintf(1, "USB MSC vendor='%s' product='%s' rev='%s' type=%d removable=%d\n" + , vendor, product, rev, pdt, removable); udrive_g->drive.removable = removable; if (pdt == USB_MSC_TYPE_CDROM) { @@ -272,6 +272,16 @@ strchr(const char *s, int c) return NULL; } +// Remove any trailing blank characters (spaces, new lines, carriage returns) +void +nullTrailingSpace(char *buf) +{ + int len = strlen(buf); + char *end = &buf[len-1]; + while (end >= buf && *end <= ' ') + *(end--) = '\0'; +} + /**************************************************************** * Keyboard calls ****************************************************************/ @@ -210,6 +210,7 @@ void iomemcpy(void *d, const void *s, u32 len); void *memmove(void *d, const void *s, size_t len); char *strtcpy(char *dest, const char *src, size_t len); char *strchr(const char *s, int c); +void nullTrailingSpace(char *buf); int get_keystroke(int msec); // stacks.c |