1 /* 2 * Copyright (c) 2018 Daichi GOTO 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are 7 * met: 8 * 9 * 1. Redistributions of source code must retain the above copyright 10 * notice, this list of conditions and the following disclaimer. 11 * 2. Redistributions in binary form must reproduce the above copyright 12 * notice, this list of conditions and the following disclaimer in the 13 * documentation and/or other materials provided with the distribution. 14 * 15 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 16 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 17 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 18 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 19 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 20 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 21 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 22 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 23 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 25 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 */ 27 28 #define VERSION "20180105" 29 #define CMDNAME "conv_tsv2ssv" 30 #define ALIAS "tsv2ssv" 31 32 #include "ttt.h" 33 34 #define TGT_GYO_PROCESS(GYO_BUFFER,NF) \ 35 for (int i = 1; i <= NF; i++) { \ 36 s = _str2ssvstr(GYO_BUFFER[i]); \ 37 p = s; \ 38 if ('\\' == *p && '@' == *(p+1) && '\0' == *(p+2)) \ 39 continue; \ 40 while ('\0' != *p) { \ 41 if ('\t' == *p) { \ 42 if (s == p) { \ 43 putchar(' '); \ 44 } \ 45 else if ('\t' == *(p-1)) { \ 46 putchar('@'); \ 47 putchar(' '); \ 48 } \ 49 else { \ 50 putchar(' '); \ 51 } \ 52 } \ 53 else { \ 54 putchar(*p); \ 55 } \ 56 ++p; \ 57 } \ 58 if (i != NF) \ 59 putchar('_'); \ 60 } \ 61 putchar('\n'); 62