version 1.36, 2015/02/23 15:23:44 |
version 1.39, 2015/02/23 20:54:53 |
|
|
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
*/ |
*/ |
|
#if defined(__linux__) || defined(__MINT__) |
|
# define _GNU_SOURCE /* memmem */ |
|
#endif |
#include <sys/mman.h> |
#include <sys/mman.h> |
#include <sys/stat.h> |
#include <sys/stat.h> |
|
|
Line 1061 dosymbol(struct texi *p, enum texicmd cmd, |
|
Line 1064 dosymbol(struct texi *p, enum texicmd cmd, |
|
case (TEXICMD_SQUIGGLE_RIGHT): |
case (TEXICMD_SQUIGGLE_RIGHT): |
texiputchars(p, "}"); |
texiputchars(p, "}"); |
break; |
break; |
case (TEXICMD_TIE): |
case (TEXICMD_TEXSYM): |
texiputchars(p, "TeX"); |
texiputchars(p, "TeX"); |
break; |
break; |
case (TEXICMD_TEXSYM): |
case (TEXICMD_TIE): |
texiputchars(p, "\\ "); |
texiputchars(p, "\\ "); |
break; |
break; |
case (TEXICMD_COLON): |
case (TEXICMD_COLON): |
Line 1209 dolink(struct texi *p, enum texicmd cmd, |
|
Line 1212 dolink(struct texi *p, enum texicmd cmd, |
|
break; |
break; |
case (TEXICMD_XREF): |
case (TEXICMD_XREF): |
texiputchars(p, "See Section"); |
texiputchars(p, "See Section"); |
teximacroopen(p, "Qq"); |
teximacroopen(p, "Dq"); |
break; |
break; |
case (TEXICMD_PXREF): |
case (TEXICMD_PXREF): |
texiputchars(p, "see Section"); |
texiputchars(p, "see Section"); |
teximacroopen(p, "Qq"); |
teximacroopen(p, "Dq"); |
break; |
break; |
case (TEXICMD_INFOREF): |
case (TEXICMD_INFOREF): |
texiputchars(p, "See Info file node"); |
texiputchars(p, "See Info file node"); |
teximacroopen(p, "Qq"); |
teximacroopen(p, "Dq"); |
break; |
break; |
default: |
default: |
abort(); |
abort(); |
Line 1355 dosp(struct texi *p, enum texicmd cmd, |
|
Line 1358 dosp(struct texi *p, enum texicmd cmd, |
|
const char *buf, size_t sz, size_t *pos) |
const char *buf, size_t sz, size_t *pos) |
{ |
{ |
|
|
texivspace(p); |
if (p->literal) |
|
texiputchar(p, '\n'); |
|
else |
|
texivspace(p); |
/* FIXME: ignore and parseeoln. */ |
/* FIXME: ignore and parseeoln. */ |
advanceeoln(p, buf, sz, pos, 1); |
advanceeoln(p, buf, sz, pos, 1); |
} |
} |
Line 1631 main(int argc, char *argv[]) |
|
Line 1637 main(int argc, char *argv[]) |
|
{ |
{ |
struct texi texi; |
struct texi texi; |
int c; |
int c; |
char *path, *dir; |
char *dirpath, *dir, *ccp; |
const char *progname, *Idir, *cp; |
const char *progname, *Idir, *cp; |
|
|
progname = strrchr(argv[0], '/'); |
progname = strrchr(argv[0], '/'); |
Line 1656 main(int argc, char *argv[]) |
|
Line 1662 main(int argc, char *argv[]) |
|
if (0 == (argc -= optind)) |
if (0 == (argc -= optind)) |
goto usage; |
goto usage; |
|
|
if (NULL == (path = strdup(argv[0]))) |
if (NULL == (dirpath = strdup(argv[0]))) |
texiabort(&texi, NULL); |
texiabort(&texi, NULL); |
else if (NULL == (dir = dirname(path))) |
if (NULL == (dir = dirname(dirpath))) |
texiabort(&texi, NULL); |
texiabort(&texi, NULL); |
|
|
free(path); |
|
|
|
if (NULL != (cp = strrchr(argv[0], '/'))) |
if (NULL != (cp = strrchr(argv[0], '/'))) |
texi.title = strdup(cp + 1); |
texi.title = strdup(cp + 1); |
else |
else |
Line 1670 main(int argc, char *argv[]) |
|
Line 1674 main(int argc, char *argv[]) |
|
|
|
if (NULL == texi.title) |
if (NULL == texi.title) |
texiabort(&texi, NULL); |
texiabort(&texi, NULL); |
else if (NULL != (path = strchr(texi.title, '.'))) |
else if (NULL != (ccp = strchr(texi.title, '.'))) |
*path = '\0'; |
*ccp = '\0'; |
|
|
texi.ign = 1; |
texi.ign = 1; |
texi.dirs = parsedirs(&texi, dir, Idir, &texi.dirsz); |
texi.dirs = parsedirs(&texi, dir, Idir, &texi.dirsz); |
|
free(dirpath); |
parsefile(&texi, argv[0], 1); |
parsefile(&texi, argv[0], 1); |
/* We shouldn't get here. */ |
/* We shouldn't get here. */ |
texiexit(&texi); |
texiexit(&texi); |