mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-01-31 11:37:35 +00:00
3d2d04b25e
This lets our system() and popen() commands function sort of like BusyBox and ToyBox. By default the Cosmopolitan Shell is lightweight. But if you use STATIC_YOINK then you can pull the individual commands you want into the linkage, and they'll be included in a single binary. For example the demo binary embeds `tr` and `sed` and ends up ~140kb.
37 lines
1.1 KiB
C
37 lines
1.1 KiB
C
#ifndef COSMOPOLITAN_THIRD_PARTY_SED_EXTERN_H_
|
|
#define COSMOPOLITAN_THIRD_PARTY_SED_EXTERN_H_
|
|
#include "libc/calls/typedef/u.h"
|
|
#include "libc/stdio/stdio.h"
|
|
#include "third_party/regex/regex.h"
|
|
#include "third_party/sed/defs.h"
|
|
#if !(__ASSEMBLER__ + __LINKER__ + 0)
|
|
COSMOPOLITAN_C_START_
|
|
// clang-format off
|
|
|
|
extern struct s_command *prog;
|
|
extern struct s_appends *appends;
|
|
extern regmatch_t *g_match;
|
|
extern size_t maxnsub;
|
|
extern u_long linenum;
|
|
extern size_t appendnum;
|
|
extern int aflag, eflag, nflag;
|
|
extern const char *fname, *outfname;
|
|
extern FILE *infile, *outfile;
|
|
extern int rflags; /* regex flags to use */
|
|
|
|
void cfclose(struct s_command *, struct s_command *);
|
|
void compile(void);
|
|
void cspace(SPACE *, const char *, size_t, enum e_spflag);
|
|
char *cu_fgets(char *, int, int *);
|
|
int mf_fgets(SPACE *, enum e_spflag);
|
|
int lastline(void);
|
|
void process(void);
|
|
void resetstate(void);
|
|
char *strregerror(int, regex_t *);
|
|
void *xmalloc(size_t);
|
|
void *xrealloc(void *, size_t);
|
|
void *xcalloc(size_t, size_t);
|
|
|
|
COSMOPOLITAN_C_END_
|
|
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
|
|
#endif /* COSMOPOLITAN_THIRD_PARTY_SED_EXTERN_H_ */
|