/********** Copyright 1990 Regents of the University of California. All rights reserved. Author: 1985 Wayne A. Christopher, U. C. Berkeley CAD Group **********/ /* * * Various things for quoting words. If this is not ascii, quote and * strip are no-ops, so '' and \ quoting won't work. To fix this, sell * your IBM machine and buy a vax. */ #include "ngspice/ngspice.h" #include "ngspice/cpdefs.h" #include "quote.h" /* Strip all the 8th bits from a string (destructively). */ void cp_wstrip(char *str) { char c, d; if (str) while ((c = *str) != '\0') { /* assign and test */ d = (char) strip(c); if (c != d) *str = d; str++; } } /* Quote all characters in a word. */ void cp_quoteword(char *str) { if (str) while (*str) { *str = (char) quote(*str); str++; } } /* Print a word (strip the word first). */ void cp_printword(char *string, FILE *fp) { char *s; if (string) for (s = string; *s; s++) (void) putc((strip(*s)), fp); } /* (Destructively) strip all the words in a wlist. */ void cp_striplist(wordlist *wlist) { wordlist *wl; for (wl = wlist; wl; wl = wl->wl_next) cp_wstrip(wl->wl_word); } /* Remove the "" from a string. */ char * cp_unquote(char *string) { char *s; size_t l; if (string) { l = strlen(string); s = TMALLOC(char, l + 1); if (l >= 2 && *string == '"' && string[l-1] == '"') { strncpy(s, string+1, l-2); s[l-2] = '\0'; } else { strcpy(s, string); } return (s); } else { return NULL; } }