busybox/applets/usage.c
<<
>>
Prefs
   1/* vi: set sw=4 ts=4: */
   2/*
   3 * Copyright (C) 2008 Denys Vlasenko.
   4 *
   5 * Licensed under GPLv2, see file LICENSE in this source tree.
   6 */
   7#include <unistd.h>
   8#include <stdlib.h>
   9#include <string.h>
  10
  11#include "autoconf.h"
  12
  13/* Since we can't use platform.h, have to do this again by hand: */
  14#if ENABLE_NOMMU
  15# define BB_MMU 0
  16# define USE_FOR_NOMMU(...) __VA_ARGS__
  17# define USE_FOR_MMU(...)
  18#else
  19# define BB_MMU 1
  20# define USE_FOR_NOMMU(...)
  21# define USE_FOR_MMU(...) __VA_ARGS__
  22#endif
  23
  24#include "usage.h"
  25#define MAKE_USAGE(aname, usage) { aname, usage },
  26static struct usage_data {
  27        const char *aname;
  28        const char *usage;
  29} usage_array[] = {
  30#include "applets.h"
  31};
  32
  33static int compare_func(const void *a, const void *b)
  34{
  35        const struct usage_data *ua = a;
  36        const struct usage_data *ub = b;
  37        return strcmp(ua->aname, ub->aname);
  38}
  39
  40int main(void)
  41{
  42        int i;
  43        int num_messages = sizeof(usage_array) / sizeof(usage_array[0]);
  44
  45        if (num_messages == 0)
  46                return 0;
  47
  48        qsort(usage_array,
  49                num_messages, sizeof(usage_array[0]),
  50                compare_func);
  51        for (i = 0; i < num_messages; i++)
  52                write(STDOUT_FILENO, usage_array[i].usage, strlen(usage_array[i].usage) + 1);
  53
  54        return 0;
  55}
  56