summaryrefslogtreecommitdiff
path: root/extras/volume_id/vol_id.c
diff options
context:
space:
mode:
authorKay Sievers <kay.sievers@suse.de>2005-08-01 01:33:36 +0200
committerKay Sievers <kay.sievers@suse.de>2005-08-01 01:33:36 +0200
commit70721db6d7ba0d4f3ac5c17f2cedac056065ad8a (patch)
treef029523e975639453dcd027ee43a7bc742d0845c /extras/volume_id/vol_id.c
parent62a22c8d75550d5720019468c7a881a573bff22b (diff)
fix GGC signed pointer warnings and switch volume_id to stdint
Solaris uses volume_id now and they fiddled around with configure scripts to map the linux kernel int types. Adding the types locally to volume_id breaks the klibc build, so just switch to these ugly types and forget it. :) Signed-off-by: Kay Sievers <kay.sievers@suse.de>
Diffstat (limited to 'extras/volume_id/vol_id.c')
-rw-r--r--extras/volume_id/vol_id.c27
1 files changed, 15 insertions, 12 deletions
diff --git a/extras/volume_id/vol_id.c b/extras/volume_id/vol_id.c
index a4a866cfcf..6a9d1120e0 100644
--- a/extras/volume_id/vol_id.c
+++ b/extras/volume_id/vol_id.c
@@ -60,31 +60,34 @@ void log_message(int priority, const char *format, ...)
}
#endif
-static void set_str(char *to, const unsigned char *from, int count)
+static void set_str(char *to, const char *from, size_t count)
{
- int i, j;
- int len;
+ size_t i, j, len;
+ /* strip trailing whitespace */
len = strnlen(from, count);
while (isspace(from[len-1]))
len--;
+ /* strip leading whitespace */
i = 0;
while (isspace(from[i]) && (i < len))
i++;
j = 0;
while (i < len) {
- switch(from[i]) {
- case '/':
- break;
- case ' ':
+ /* substitute multiple whitespace */
+ if (isspace(from[i])) {
+ while (isspace(from[i]))
+ i++;
to[j++] = '_';
- break;
- default:
- to[j++] = from[i];
}
- i++;
+ /* skip chars */
+ if (from[i] == '/') {
+ i++;
+ continue;
+ }
+ to[j++] = from[i++];
}
to[j] = '\0';
}
@@ -106,7 +109,7 @@ int main(int argc, char *argv[])
struct volume_id *vid = NULL;
static char name[VOLUME_ID_LABEL_SIZE];
int i;
- unsigned long long size;
+ uint64_t size;
const char *node = NULL;
int rc = 0;