X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=extras%2Fata_id%2Fata_id.c;h=dae464a4dc8121cb323168f6338f8ef8fc47282f;hp=43d9516a19774250978d6c07af39fcff5a5d5978;hb=4435308844467c0dab329531def8dbfa451d9781;hpb=7d563a17f3967890331daf08d43f2f005418139b diff --git a/extras/ata_id/ata_id.c b/extras/ata_id/ata_id.c index 43d9516a1..dae464a4d 100644 --- a/extras/ata_id/ata_id.c +++ b/extras/ata_id/ata_id.c @@ -3,9 +3,18 @@ * * Copyright (C) 2005-2008 Kay Sievers * - * 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. + * 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, 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 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . */ #ifndef _GNU_SOURCE @@ -35,38 +44,6 @@ static void log_fn(struct udev *udev, int priority, vsyslog(priority, format, args); } -static void set_str(char *to, const char *from, size_t count) -{ - size_t i, j, len; - - /* strip trailing whitespace */ - len = strnlen(from, count); - while (len && isspace(from[len-1])) - len--; - - /* strip leading whitespace */ - i = 0; - while (isspace(from[i]) && (i < len)) - i++; - - j = 0; - while (i < len) { - /* substitute multiple whitespace */ - if (isspace(from[i])) { - while (isspace(from[i])) - i++; - to[j++] = '_'; - } - /* skip chars */ - if (from[i] == '/') { - i++; - continue; - } - to[j++] = from[i++]; - } - to[j] = '\0'; -} - int main(int argc, char *argv[]) { struct udev *udev; @@ -79,8 +56,8 @@ int main(int argc, char *argv[]) int fd; int rc = 0; static const struct option options[] = { - { "export", 0, NULL, 'x' }, - { "help", 0, NULL, 'h' }, + { "export", no_argument, NULL, 'x' }, + { "help", no_argument, NULL, 'h' }, {} }; @@ -137,9 +114,12 @@ int main(int argc, char *argv[]) goto close; } - set_str(model, (char *) id.model, 40); - set_str(serial, (char *) id.serial_no, 20); - set_str(revision, (char *) id.fw_rev, 8); + udev_util_replace_whitespace((char *) id.model, model, 40); + udev_util_replace_chars(model, NULL); + udev_util_replace_whitespace((char *) id.serial_no, serial, 20); + udev_util_replace_chars(serial, NULL); + udev_util_replace_whitespace((char *) id.fw_rev, revision, 8); + udev_util_replace_chars(revision, NULL); if (export) { if ((id.config >> 8) & 0x80) {