20c794b39650d115e17a15983b6b82e46238cf45gavinm/*
20c794b39650d115e17a15983b6b82e46238cf45gavinm * CDDL HEADER START
20c794b39650d115e17a15983b6b82e46238cf45gavinm *
20c794b39650d115e17a15983b6b82e46238cf45gavinm * The contents of this file are subject to the terms of the
20c794b39650d115e17a15983b6b82e46238cf45gavinm * Common Development and Distribution License, Version 1.0 only
20c794b39650d115e17a15983b6b82e46238cf45gavinm * (the "License"). You may not use this file except in compliance
20c794b39650d115e17a15983b6b82e46238cf45gavinm * with the License.
20c794b39650d115e17a15983b6b82e46238cf45gavinm *
20c794b39650d115e17a15983b6b82e46238cf45gavinm * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
20c794b39650d115e17a15983b6b82e46238cf45gavinm * or http://www.opensolaris.org/os/licensing.
20c794b39650d115e17a15983b6b82e46238cf45gavinm * See the License for the specific language governing permissions
20c794b39650d115e17a15983b6b82e46238cf45gavinm * and limitations under the License.
20c794b39650d115e17a15983b6b82e46238cf45gavinm *
20c794b39650d115e17a15983b6b82e46238cf45gavinm * When distributing Covered Code, include this CDDL HEADER in each
20c794b39650d115e17a15983b6b82e46238cf45gavinm * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
20c794b39650d115e17a15983b6b82e46238cf45gavinm * If applicable, add the following below this CDDL HEADER, with the
20c794b39650d115e17a15983b6b82e46238cf45gavinm * fields enclosed by brackets "[]" replaced with your own identifying
20c794b39650d115e17a15983b6b82e46238cf45gavinm * information: Portions Copyright [yyyy] [name of copyright owner]
20c794b39650d115e17a15983b6b82e46238cf45gavinm *
20c794b39650d115e17a15983b6b82e46238cf45gavinm * CDDL HEADER END
20c794b39650d115e17a15983b6b82e46238cf45gavinm */
20c794b39650d115e17a15983b6b82e46238cf45gavinm/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
c84b7bbef5ecc2a27799422588073deefd9db715Adrian Frost/* All Rights Reserved */
20c794b39650d115e17a15983b6b82e46238cf45gavinm
20c794b39650d115e17a15983b6b82e46238cf45gavinm/*
20c794b39650d115e17a15983b6b82e46238cf45gavinm * University Copyright- Copyright (c) 1982, 1986, 1988
20c794b39650d115e17a15983b6b82e46238cf45gavinm * The Regents of the University of California
20c794b39650d115e17a15983b6b82e46238cf45gavinm * All Rights Reserved
20c794b39650d115e17a15983b6b82e46238cf45gavinm *
20c794b39650d115e17a15983b6b82e46238cf45gavinm * University Acknowledgment- Portions of this document are derived from
20c794b39650d115e17a15983b6b82e46238cf45gavinm * software developed by the University of California, Berkeley, and its
20c794b39650d115e17a15983b6b82e46238cf45gavinm * contributors.
20c794b39650d115e17a15983b6b82e46238cf45gavinm */
20c794b39650d115e17a15983b6b82e46238cf45gavinm
20c794b39650d115e17a15983b6b82e46238cf45gavinm#pragma ident "%Z%%M% %I% %E% SMI"
20c794b39650d115e17a15983b6b82e46238cf45gavinm
20c794b39650d115e17a15983b6b82e46238cf45gavinm#include "def.h"
20c794b39650d115e17a15983b6b82e46238cf45gavinm
e3d60c9bd991a9826cbfa63b10595d44e123b9c4Adrian Frost/*
074bb90d80fdbeb2d04a8450a55ecbc96de28785Tom Pothier * mailx -- a modified version of a University of California at Berkeley
074bb90d80fdbeb2d04a8450a55ecbc96de28785Tom Pothier * mail program
074bb90d80fdbeb2d04a8450a55ecbc96de28785Tom Pothier *
074bb90d80fdbeb2d04a8450a55ecbc96de28785Tom Pothier * Define all of the command names and bindings.
20c794b39650d115e17a15983b6b82e46238cf45gavinm */
20c794b39650d115e17a15983b6b82e46238cf45gavinm
20c794b39650d115e17a15983b6b82e46238cf45gavinm/*
20c794b39650d115e17a15983b6b82e46238cf45gavinm * Since the type of the argument to the procedures in the
20c794b39650d115e17a15983b6b82e46238cf45gavinm * command table depends on the flags in the table, and since
e3d60c9bd991a9826cbfa63b10595d44e123b9c4Adrian Frost * the argument type must be specified in struct cmd for C++
e3d60c9bd991a9826cbfa63b10595d44e123b9c4Adrian Frost * compatibility, and since I didn't want to change all the
e3d60c9bd991a9826cbfa63b10595d44e123b9c4Adrian Frost * command procedures to expect an argument of type void *,
e3d60c9bd991a9826cbfa63b10595d44e123b9c4Adrian Frost * the following cast "makes it all work". Yes, it's ugly.
e3d60c9bd991a9826cbfa63b10595d44e123b9c4Adrian Frost */
e3d60c9bd991a9826cbfa63b10595d44e123b9c4Adrian Frost#define C (int (*)(void *))
e3d60c9bd991a9826cbfa63b10595d44e123b9c4Adrian Frost
e3d60c9bd991a9826cbfa63b10595d44e123b9c4Adrian Frostconst struct cmd cmdtab[] = {
e3d60c9bd991a9826cbfa63b10595d44e123b9c4Adrian Frost "next", C next, NDMLIST, 0, MMNDEL,
e3d60c9bd991a9826cbfa63b10595d44e123b9c4Adrian Frost "alias", C group, M|RAWLIST, 0, 1000,
e3d60c9bd991a9826cbfa63b10595d44e123b9c4Adrian Frost "print", C type, MSGLIST, 0, MMNDEL,
e3d60c9bd991a9826cbfa63b10595d44e123b9c4Adrian Frost "type", C type, MSGLIST, 0, MMNDEL,
e3d60c9bd991a9826cbfa63b10595d44e123b9c4Adrian Frost "Type", C Type, MSGLIST, 0, MMNDEL,
e3d60c9bd991a9826cbfa63b10595d44e123b9c4Adrian Frost "Print", C Type, MSGLIST, 0, MMNDEL,
e3d60c9bd991a9826cbfa63b10595d44e123b9c4Adrian Frost "visual", C visual, I|MSGLIST, 0, MMNORM,
e3d60c9bd991a9826cbfa63b10595d44e123b9c4Adrian Frost "top", C top, MSGLIST, 0, MMNDEL,
e3d60c9bd991a9826cbfa63b10595d44e123b9c4Adrian Frost "touch", C stouch, W|MSGLIST, 0, MMNDEL,
e3d60c9bd991a9826cbfa63b10595d44e123b9c4Adrian Frost "preserve", C preserve, I|W|MSGLIST, 0, MMNDEL,
e3d60c9bd991a9826cbfa63b10595d44e123b9c4Adrian Frost "delete", C delm, W|P|MSGLIST, 0, MMNDEL,
e3d60c9bd991a9826cbfa63b10595d44e123b9c4Adrian Frost "dp", C deltype, W|MSGLIST, 0, MMNDEL,
e3d60c9bd991a9826cbfa63b10595d44e123b9c4Adrian Frost "dt", C deltype, W|MSGLIST, 0, MMNDEL,
e3d60c9bd991a9826cbfa63b10595d44e123b9c4Adrian Frost "undelete", C undelete, P|MSGLIST, MDELETED,MMNDEL,
e3d60c9bd991a9826cbfa63b10595d44e123b9c4Adrian Frost "unset", C unset, M|RAWLIST, 1, 1000,
e3d60c9bd991a9826cbfa63b10595d44e123b9c4Adrian Frost "mail", C sendm, R|M|I|STRLIST, 0, 0,
e3d60c9bd991a9826cbfa63b10595d44e123b9c4Adrian Frost "Mail", C Sendm, R|M|I|STRLIST, 0, 0,
e3d60c9bd991a9826cbfa63b10595d44e123b9c4Adrian Frost "mbox", C mboxit, W|MSGLIST, 0, 0,
e3d60c9bd991a9826cbfa63b10595d44e123b9c4Adrian Frost "more", C more, MSGLIST, 0, MMNDEL,
e3d60c9bd991a9826cbfa63b10595d44e123b9c4Adrian Frost "page", C more, MSGLIST, 0, MMNDEL,
c84b7bbef5ecc2a27799422588073deefd9db715Adrian Frost "More", C More, MSGLIST, 0, MMNDEL,
e3d60c9bd991a9826cbfa63b10595d44e123b9c4Adrian Frost "Page", C More, MSGLIST, 0, MMNDEL,
e3d60c9bd991a9826cbfa63b10595d44e123b9c4Adrian Frost "unread", C unread, MSGLIST, 0, MMNDEL,
e3d60c9bd991a9826cbfa63b10595d44e123b9c4Adrian Frost "Unread", C unread, MSGLIST, 0, MMNDEL,
e3d60c9bd991a9826cbfa63b10595d44e123b9c4Adrian Frost "new", C unread, MSGLIST, 0, MMNDEL,
e3d60c9bd991a9826cbfa63b10595d44e123b9c4Adrian Frost "New", C unread, MSGLIST, 0, MMNDEL,
e3d60c9bd991a9826cbfa63b10595d44e123b9c4Adrian Frost "!", C shell, I|STRLIST, 0, 0,
e3d60c9bd991a9826cbfa63b10595d44e123b9c4Adrian Frost "copy", C copycmd, M|STRLIST, 0, 0,
e3d60c9bd991a9826cbfa63b10595d44e123b9c4Adrian Frost "Copy", C Copy, M|MSGLIST, 0, 0,
e3d60c9bd991a9826cbfa63b10595d44e123b9c4Adrian Frost "chdir", C schdir, M|STRLIST, 0, 0,
e3d60c9bd991a9826cbfa63b10595d44e123b9c4Adrian Frost "cd", C schdir, M|STRLIST, 0, 0,
e3d60c9bd991a9826cbfa63b10595d44e123b9c4Adrian Frost "save", C save, STRLIST, 0, 0,
e3d60c9bd991a9826cbfa63b10595d44e123b9c4Adrian Frost "Save", C Save, MSGLIST, 0, 0,
e3d60c9bd991a9826cbfa63b10595d44e123b9c4Adrian Frost "source", C source, M|STRLIST, 0, 0,
e3d60c9bd991a9826cbfa63b10595d44e123b9c4Adrian Frost "set", C set, M|RAWLIST, 0, 1000,
e3d60c9bd991a9826cbfa63b10595d44e123b9c4Adrian Frost "shell", C dosh, I|NOLIST, 0, 0,
e3d60c9bd991a9826cbfa63b10595d44e123b9c4Adrian Frost "version", C pversion, M|NOLIST, 0, 0,
e3d60c9bd991a9826cbfa63b10595d44e123b9c4Adrian Frost "group", C group, M|RAWLIST, 0, 1000,
e3d60c9bd991a9826cbfa63b10595d44e123b9c4Adrian Frost "unalias", C ungroup, M|RAWLIST, 0, 1000,
e3d60c9bd991a9826cbfa63b10595d44e123b9c4Adrian Frost "ungroup", C ungroup, M|RAWLIST, 0, 1000,
e3d60c9bd991a9826cbfa63b10595d44e123b9c4Adrian Frost "write", C swrite, STRLIST, 0, 0,
e3d60c9bd991a9826cbfa63b10595d44e123b9c4Adrian Frost "from", C from, MSGLIST, 0, MMNORM,
c84b7bbef5ecc2a27799422588073deefd9db715Adrian Frost "followup", C followup, R|I|MSGLIST, 0, MMNDEL,
e3d60c9bd991a9826cbfa63b10595d44e123b9c4Adrian Frost "Followup", C Followup, R|I|MSGLIST, 0, MMNDEL,
e3d60c9bd991a9826cbfa63b10595d44e123b9c4Adrian Frost "file", C file, T|M|RAWLIST, 0, 1,
e3d60c9bd991a9826cbfa63b10595d44e123b9c4Adrian Frost "folder", C file, T|M|RAWLIST, 0, 1,
e3d60c9bd991a9826cbfa63b10595d44e123b9c4Adrian Frost "folders", C folders, T|M|RAWLIST, 0, 1,
e3d60c9bd991a9826cbfa63b10595d44e123b9c4Adrian Frost "?", C help, M|NOLIST, 0, 0,
e3d60c9bd991a9826cbfa63b10595d44e123b9c4Adrian Frost "z", C scroll, M|STRLIST, 0, 0,
20c794b39650d115e17a15983b6b82e46238cf45gavinm "headers", C headers, MSGLIST, 0, MMNDEL,
20c794b39650d115e17a15983b6b82e46238cf45gavinm "help", C help, M|NOLIST, 0, 0,
20c794b39650d115e17a15983b6b82e46238cf45gavinm "=", C pdot, NOLIST, 0, 0,
20c794b39650d115e17a15983b6b82e46238cf45gavinm "Reply", C Respond, R|I|MSGLIST, 0, MMNDEL,
20c794b39650d115e17a15983b6b82e46238cf45gavinm "Respond", C Respond, R|I|MSGLIST, 0, MMNDEL,
20c794b39650d115e17a15983b6b82e46238cf45gavinm "reply", C respond, R|I|MSGLIST, 0, MMNDEL,
20c794b39650d115e17a15983b6b82e46238cf45gavinm "respond", C respond, R|I|MSGLIST, 0, MMNDEL,
20c794b39650d115e17a15983b6b82e46238cf45gavinm "replyall", C replyall, R|I|MSGLIST, 0, MMNDEL,
20c794b39650d115e17a15983b6b82e46238cf45gavinm "replysender", C replysender, R|I|MSGLIST, 0, MMNDEL,
7417cfdecea1902cef03c0d61a72df97d945925dKuriakose Kuruvilla "edit", C editor, I|MSGLIST, 0, MMNORM,
20c794b39650d115e17a15983b6b82e46238cf45gavinm "echo", C echo, M|RAWLIST, 0, 1000,
20c794b39650d115e17a15983b6b82e46238cf45gavinm "quit", C edstop, NOLIST, 0, 0,
20c794b39650d115e17a15983b6b82e46238cf45gavinm "list", C pcmdlist, M|NOLIST, 0, 0,
20c794b39650d115e17a15983b6b82e46238cf45gavinm "load", C loadmsg, W|STRLIST, 0, 0,
20c794b39650d115e17a15983b6b82e46238cf45gavinm "xit", C rexit, M|NOLIST, 0, 0,
20c794b39650d115e17a15983b6b82e46238cf45gavinm "exit", C rexit, M|NOLIST, 0, 0,
20c794b39650d115e17a15983b6b82e46238cf45gavinm "size", C messize, MSGLIST, 0, MMNDEL,
20c794b39650d115e17a15983b6b82e46238cf45gavinm "hold", C preserve, I|W|MSGLIST, 0, MMNDEL,
20c794b39650d115e17a15983b6b82e46238cf45gavinm "if", C ifcmd, F|M|RAWLIST, 1, 1,
5f28a8273cda869edd1af63f0b8cca5b7af42541af "else", C elsecmd, F|M|RAWLIST, 0, 0,
5f28a8273cda869edd1af63f0b8cca5b7af42541af "endif", C endifcmd, F|M|RAWLIST, 0, 0,
5f28a8273cda869edd1af63f0b8cca5b7af42541af "alternates", C alternates, M|RAWLIST, 0, 1000,
20c794b39650d115e17a15983b6b82e46238cf45gavinm "ignore", C igfield, M|RAWLIST, 0, 1000,
20c794b39650d115e17a15983b6b82e46238cf45gavinm "discard", C igfield, M|RAWLIST, 0, 1000,
20c794b39650d115e17a15983b6b82e46238cf45gavinm "unignore", C unigfield, M|RAWLIST, 0, 1000,
e3d60c9bd991a9826cbfa63b10595d44e123b9c4Adrian Frost "undiscard", C unigfield, M|RAWLIST, 0, 1000,
ee9ef9e5478646701c1f0cc347324b1c7bad1efaAdrian Frost "retain", C retfield, M|RAWLIST, 0, 1000,
e3d60c9bd991a9826cbfa63b10595d44e123b9c4Adrian Frost "unretain", C unretfield, M|RAWLIST, 0, 1000,
e3d60c9bd991a9826cbfa63b10595d44e123b9c4Adrian Frost/* "Header", C Header, STRLIST, 0, 1000, */
ee9ef9e5478646701c1f0cc347324b1c7bad1efaAdrian Frost "#", C null, M|NOLIST, 0, 0,
ee9ef9e5478646701c1f0cc347324b1c7bad1efaAdrian Frost "pipe", C dopipe, STRLIST, 0, 0,
ee9ef9e5478646701c1f0cc347324b1c7bad1efaAdrian Frost "|", C dopipe, STRLIST, 0, 0,
ee9ef9e5478646701c1f0cc347324b1c7bad1efaAdrian Frost "inc", C inc, T|NOLIST, 0, 0,
35366b936dd27e7a780ce1c1fccdf6e3c3defe69Adrian Frost "field", C field, STRLIST, 0, 0,
35366b936dd27e7a780ce1c1fccdf6e3c3defe69Adrian Frost "put", C sput, STRLIST, 0, 0,
35366b936dd27e7a780ce1c1fccdf6e3c3defe69Adrian Frost "Put", C Sput, STRLIST, 0, 0,
35366b936dd27e7a780ce1c1fccdf6e3c3defe69Adrian Frost 0, C 0, 0, 0, 0
35366b936dd27e7a780ce1c1fccdf6e3c3defe69Adrian Frost};
35366b936dd27e7a780ce1c1fccdf6e3c3defe69Adrian Frost