Ignore:
Timestamp:
Mar 31, 2018, 12:09:15 AM (7 years ago)
Author:
bird
Message:

kmk_rm, kmk_rmdir: changed to use getopt_r.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/kmk/kmkbuiltin/rm.c

    r3192 r3216  
    4646*   Header Files                                                                                                                 *
    4747*********************************************************************************************************************************/
     48#define FAKES_NO_GETOPT_H /* bird */
    4849#include "config.h"
    4950#include <sys/stat.h>
     
    6970#include <unistd.h>
    7071#include <ctype.h>
    71 #include "getopt.h"
     72#include "getopt_r.h"
    7273#ifdef __HAIKU__
    7374# include "haikufakes.h"
     
    187188{
    188189        RMINSTANCE This;
     190        struct getopt_state_r gos;
    189191        int ch, rflag;
    190192
     
    205207        kBuildProtectionInit(&This.g_ProtData, pCtx);
    206208
    207         /* kmk: reset getopt and set program name. */
    208         opterr = 1;
    209         optarg = NULL;
    210         optopt = 0;
    211         optind = 0; /* init */
    212 
    213209        rflag = 0;
    214         while ((ch = getopt_long(argc, argv, "dfiPRvW", long_options, NULL)) != -1)
     210        getopt_initialize_r(&gos, argc, argv, "dfiPRvW", long_options, envp, pCtx);
     211        while ((ch = getopt_long_r(&gos, NULL)) != -1)
    215212                switch (ch) {
    216213                case 'd':
     
    262259                        break;
    263260                case 267:
    264                         if (kBuildProtectionSetDepth(&This.g_ProtData, optarg)) {
     261                        if (kBuildProtectionSetDepth(&This.g_ProtData, gos.optarg)) {
    265262                            kBuildProtectionTerm(&This.g_ProtData);
    266263                            return 1;
     
    277274                        return usage(pCtx, 1);
    278275                }
    279         argc -= optind;
    280         argv += optind;
     276        argc -= gos.optind;
     277        argv += gos.optind;
    281278
    282279        if (argc < 1) {
     
    347344
    348345        flags = FTS_PHYSICAL;
     346#ifndef KMK_BUILTIN_STANDALONE
     347        flags |= FTS_NOCHDIR; /* Must not change the directory from inside kmk! */
     348#endif
    349349        if (!needstat)
    350350                flags |= FTS_NOSTAT;
Note: See TracChangeset for help on using the changeset viewer.