From 6d48ffb8be85447473a71f24f5219c54de9bb10e Mon Sep 17 00:00:00 2001 From: MCApollo <34170230+MCApollo@users.noreply.github.com> Date: Wed, 17 Apr 2019 17:56:28 +0000 Subject: Added sc-im (requested). --- data/sc-im/wordexp.diff | 338 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 338 insertions(+) create mode 100644 data/sc-im/wordexp.diff (limited to 'data/sc-im/wordexp.diff') diff --git a/data/sc-im/wordexp.diff b/data/sc-im/wordexp.diff new file mode 100644 index 000000000..0a9bdcf5e --- /dev/null +++ b/data/sc-im/wordexp.diff @@ -0,0 +1,338 @@ +diff -Naur sc-im-0.7.0/src/cmds_command.c sc-im-0.7.0+iPhone/src/cmds_command.c +--- sc-im-0.7.0/src/cmds_command.c 2017-12-13 17:48:59.000000000 +0000 ++++ sc-im-0.7.0+iPhone/src/cmds_command.c 2019-04-17 14:23:10.309275806 +0000 +@@ -46,7 +46,7 @@ + #include + #include + #include // for isprint() +-#include ++#include "wordexp.h" + #include "sc.h" // for rescol + #include "conf.h" + #include "cmds_command.h" +diff -Naur sc-im-0.7.0/src/file.c sc-im-0.7.0+iPhone/src/file.c +--- sc-im-0.7.0/src/file.c 2017-12-13 17:48:59.000000000 +0000 ++++ sc-im-0.7.0+iPhone/src/file.c 2019-04-17 14:22:52.813269422 +0000 +@@ -53,7 +53,7 @@ + #include + #include + #include +-#include ++#include "wordexp.h" + + #include "conf.h" + #include "maps.h" +diff -Naur sc-im-0.7.0/src/main.c sc-im-0.7.0+iPhone/src/main.c +--- sc-im-0.7.0/src/main.c 2017-12-13 17:48:59.000000000 +0000 ++++ sc-im-0.7.0+iPhone/src/main.c 2019-04-17 14:22:24.025259625 +0000 +@@ -60,7 +60,7 @@ + #include // for F_GETFL O_NONBLOCK F_SETFL + #include + #include +-#include ++#include "wordexp.h" + #include // for ioctl + + #include "main.h" +diff -Naur sc-im-0.7.0/src/wordexp.c sc-im-0.7.0+iPhone/src/wordexp.c +--- sc-im-0.7.0/src/wordexp.c 1970-01-01 00:00:00.000000000 +0000 ++++ sc-im-0.7.0+iPhone/src/wordexp.c 2019-04-17 14:25:52.777348253 +0000 +@@ -0,0 +1,209 @@ ++/* ++ * Copyright 1994, University Corporation for Atmospheric Research ++ * See ../COPYRIGHT file for copying and redistribution conditions. ++ */ ++/* ++ * Reproduction of ../COPYRIGHT file: ++ * ++ ********************************************************************* ++ ++Copyright 1995-2002 University Corporation for Atmospheric Research/Unidata ++ ++Portions of this software were developed by the Unidata Program at the ++University Corporation for Atmospheric Research. ++ ++Access and use of this software shall impose the following obligations ++and understandings on the user. The user is granted the right, without ++any fee or cost, to use, copy, modify, alter, enhance and distribute ++this software, and any derivative works thereof, and its supporting ++documentation for any purpose whatsoever, provided that this entire ++notice appears in all copies of the software, derivative works and ++supporting documentation. Further, UCAR requests that the user credit ++UCAR/Unidata in any publications that result from the use of this ++software or in any product that includes this software. The names UCAR ++and/or Unidata, however, may not be used in any advertising or publicity ++to endorse or promote any products or commercial entity unless specific ++written permission is obtained from UCAR/Unidata. The user also ++understands that UCAR/Unidata is not obligated to provide the user with ++any support, consulting, training or assistance of any kind with regard ++to the use, operation and performance of this software nor to provide ++the user with any updates, revisions, new versions or "bug fixes." ++ ++THIS SOFTWARE IS PROVIDED BY UCAR/UNIDATA "AS IS" AND ANY EXPRESS OR ++IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED ++WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE ++DISCLAIMED. IN NO EVENT SHALL UCAR/UNIDATA BE LIABLE FOR ANY SPECIAL, ++INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING ++FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, ++NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION ++WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. ++ ++ ********************************************************************* ++ */ ++ ++/* $Id: wordexp.c,v 1.13 2002/12/26 16:46:46 steve Exp $ */ ++ ++#include ++#include ++#include ++ ++#include "wordexp.h" ++ ++ ++ ++/* ++ * Translate return value from wordexp() into a string ++ */ ++const char * ++s_wrde_err(int wrde_err) ++{ ++ switch(wrde_err) { ++ case 0: return "No Error"; ++ case WRDE_BADCHAR: return "WRDE_BADCHAR"; ++ case WRDE_BADVAL: return "WRDE_BADVAL"; ++ case WRDE_CMDSUB: return "WRDE_CMDSUB"; ++ case WRDE_NOSPACE: return "WRDE_NOSPACE"; ++ case WRDE_SYNTAX: return "WRDE_SYNTAX"; ++ } ++ /* default */ ++ return "Unknown Error"; ++} ++ ++ ++/*ARGSUSED*/ ++int ++wordexp(const char *words, wordexp_t *pwordexp, int flags) ++{ ++ const char *ccp; ++ char **argv; ++ const char *buf; ++ size_t argc; ++ enum states {ARGSTART, IN_QUOTE, NOT_IN_QUOTE, DONE}; ++ enum classes {EOS, SPACE, QUOTE, OTHER}; ++ int state = ARGSTART; ++ char *argbuf; ++ const char *sp; ++ char *dp; ++ int status = 0; ++ ++ /* devour leading white space */ ++ for(ccp = words; *ccp != 0 && isspace(*ccp); ) ++ ccp++; ++ /* skip comments */ ++ if(*ccp == '#') ++ { ++ pwordexp->we_wordc = 0; ++ pwordexp->we_wordv = NULL; ++ return 0; ++ } ++ ++/* If every other character was a space ... */ ++#define MAXNARGS(str) ((strlen(str) +1)/2 +1) ++ argv = (char **)calloc(MAXNARGS(ccp), sizeof(char *)); ++ if(argv == NULL) ++ return WRDE_NOSPACE; ++ ++ buf = ccp; ++ ++ argbuf = malloc(strlen(words)+1); /* where each arg is built */ ++ if (argbuf == NULL) ++ { ++ free(argv); ++ return WRDE_NOSPACE; ++ } ++ ++ sp = buf; ++ dp = argbuf; ++ argc = 0; ++ while(state != DONE) ++ { ++ int class; ++ ++ if (*sp == 0) ++ class = EOS; ++ else if (isspace(*sp)) ++ class = SPACE; ++ else if (*sp == '"') ++ class = QUOTE; ++ else ++ class = OTHER; ++ switch (state) { ++ case ARGSTART: ++ switch(class) { ++ case EOS: ++ state = DONE; ++ break; ++ case SPACE: ++ sp++; ++ break; ++ case QUOTE: ++ sp++; ++ state = IN_QUOTE; ++ break; ++ case OTHER: ++ *dp++ = *sp++; ++ state = NOT_IN_QUOTE; ++ break; ++ } ++ break; ++ case IN_QUOTE: ++ switch(class) { ++ case EOS: /* unmatched quote */ ++ state = DONE; ++ status = WRDE_SYNTAX; ++ break; ++ case QUOTE: ++ sp++; ++ state = NOT_IN_QUOTE; ++ break; ++ case SPACE: ++ case OTHER: ++ *dp++ = *sp++; ++ break; ++ } ++ break; ++ case NOT_IN_QUOTE: ++ switch(class) { ++ case EOS: ++ *dp = 0; ++ dp = argbuf; ++ argv[argc++] = strdup(argbuf); ++ state = DONE; ++ break; ++ case SPACE: ++ *dp = 0; ++ dp = argbuf; ++ argv[argc++] = strdup(argbuf); ++ sp++; ++ state = ARGSTART; ++ break; ++ case QUOTE: ++ sp++; ++ state = IN_QUOTE; ++ break; ++ case OTHER: ++ *dp++ = *sp++; ++ break; ++ } ++ break; ++ } ++ } ++ argv[argc] = NULL; ++ ++ pwordexp->we_wordc = argc; ++ pwordexp->we_wordv = argv; ++ ++ free(argbuf); ++ ++ return status; ++} ++ ++void ++wordfree(wordexp_t *pwordexp) ++{ ++ if(pwordexp == NULL || pwordexp->we_wordv == NULL) ++ return; ++ if(*pwordexp->we_wordv) ++ free(*pwordexp->we_wordv); ++ free(pwordexp->we_wordv); ++} +diff -Naur sc-im-0.7.0/src/wordexp.h sc-im-0.7.0+iPhone/src/wordexp.h +--- sc-im-0.7.0/src/wordexp.h 1970-01-01 00:00:00.000000000 +0000 ++++ sc-im-0.7.0+iPhone/src/wordexp.h 2019-04-17 14:24:09.137299413 +0000 +@@ -0,0 +1,85 @@ ++/* ++ * Copyright 1994, University Corporation for Atmospheric Research ++ * See ../COPYRIGHT file for copying and redistribution conditions. ++ */ ++/* ++ * Reproduction of ../COPYRIGHT file: ++ * ++ ********************************************************************* ++ ++Copyright 1995-2002 University Corporation for Atmospheric Research/Unidata ++ ++Portions of this software were developed by the Unidata Program at the ++University Corporation for Atmospheric Research. ++ ++Access and use of this software shall impose the following obligations ++and understandings on the user. The user is granted the right, without ++any fee or cost, to use, copy, modify, alter, enhance and distribute ++this software, and any derivative works thereof, and its supporting ++documentation for any purpose whatsoever, provided that this entire ++notice appears in all copies of the software, derivative works and ++supporting documentation. Further, UCAR requests that the user credit ++UCAR/Unidata in any publications that result from the use of this ++software or in any product that includes this software. The names UCAR ++and/or Unidata, however, may not be used in any advertising or publicity ++to endorse or promote any products or commercial entity unless specific ++written permission is obtained from UCAR/Unidata. The user also ++understands that UCAR/Unidata is not obligated to provide the user with ++any support, consulting, training or assistance of any kind with regard ++to the use, operation and performance of this software nor to provide ++the user with any updates, revisions, new versions or "bug fixes." ++ ++THIS SOFTWARE IS PROVIDED BY UCAR/UNIDATA "AS IS" AND ANY EXPRESS OR ++IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED ++WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE ++DISCLAIMED. IN NO EVENT SHALL UCAR/UNIDATA BE LIABLE FOR ANY SPECIAL, ++INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING ++FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, ++NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION ++WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. ++ ++ ********************************************************************* ++ * ++ */ ++ ++/* $Id: wordexp.h,v 1.5 1994/05/12 20:46:40 davis Exp $ */ ++#ifndef _WORDEXP_H ++#define _WORDEXP_H ++ ++#include ++#include <_types.h> ++#include ++#include ++ ++typedef struct { ++ size_t we_wordc; ++ char **we_wordv; ++ size_t we_offs; ++} wordexp_t; ++ ++/* wordexp() flags Argument */ ++#define WRDE_APPEND 0x01 ++#define WRDE_DOOFFS 0x02 ++#define WRDE_NOCMD 0x04 ++#define WRDE_REUSE 0x08 ++#define WRDE_SHOWERR 0x10 ++#define WRDE_UNDEF 0x20 ++ ++/* ++ * wordexp() Return Values ++ */ ++/* required */ ++#define WRDE_BADCHAR 1 ++#define WRDE_BADVAL 2 ++#define WRDE_CMDSUB 3 ++#define WRDE_NOSPACE 4 ++#define WRDE_NOSYS 5 ++#define WRDE_SYNTAX 6 ++ ++ ++__BEGIN_DECLS ++int wordexp(const char * __restrict, wordexp_t * __restrict, int); ++void wordfree(wordexp_t *); ++__END_DECLS ++ ++#endif /* _WORDEXP_H */ -- cgit v1.2.3