You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- 02111-1307, USA. */
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301, USA. */
#include <config.h>
#include <ctype.h>
#include "str.h"
int
-cmd_include_at (void)
+cmd_include (void)
{
- char *incfn, *s, *bp, *ep;
-
- s = bp = lex_entire_line ();
- while (isspace ((unsigned char) *bp))
- bp++;
- bp++; /* skip `@' */
- while (isspace ((unsigned char) *bp))
- bp++;
- if (*bp == '\'')
- bp++;
-
- ep = bp + strlen (bp);
- while (isspace ((unsigned char) *--ep));
- if (*ep != '\'')
- ep++;
+ /* Skip optional FILE=. */
+ if (lex_match_id ("FILE"))
+ lex_match ('=');
- if (ep <= bp)
+ /* Filename can be identifier or string. */
+ if (token != T_ID && token != T_STRING)
{
- msg (SE, _("Unrecognized filename format."));
+ lex_error (_("expecting filename"));
return CMD_FAILURE;
}
-
- /* Now the filename is trapped between bp and ep. */
- incfn = xmalloc (ep - bp + 1);
- strncpy (incfn, bp, ep - bp);
- incfn[ep - bp] = 0;
- getl_include (incfn);
- free (incfn);
-
- return CMD_SUCCESS;
-}
-
-int
-cmd_include (void)
-{
- lex_get ();
-
- if (!lex_force_string ())
- return CMD_SUCCESS;
- getl_include (ds_value (&tokstr));
+ getl_include (ds_c_str (&tokstr));
lex_get ();
return lex_end_of_command ();