119304Speter/*-
219304Speter * Copyright (c) 1992, 1993, 1994
319304Speter *	The Regents of the University of California.  All rights reserved.
419304Speter * Copyright (c) 1992, 1993, 1994, 1995, 1996
519304Speter *	Keith Bostic.  All rights reserved.
619304Speter *
719304Speter * See the LICENSE file for redistribution information.
819304Speter */
919304Speter
1019304Speter#include "config.h"
1119304Speter
1219304Speter#ifndef lint
13254225Speterstatic const char sccsid[] = "$Id: v_zexit.c,v 10.7 2001/06/25 15:19:37 skimo Exp $";
1419304Speter#endif /* not lint */
1519304Speter
1619304Speter#include <sys/types.h>
1719304Speter#include <sys/queue.h>
1819304Speter#include <sys/time.h>
1919304Speter
2019304Speter#include <bitstring.h>
2119304Speter#include <limits.h>
2219304Speter#include <stdio.h>
2319304Speter#include <string.h>
2419304Speter
2519304Speter#include "../common/common.h"
2619304Speter#include "vi.h"
2719304Speter
2819304Speter/*
2919304Speter * v_zexit -- ZZ
3019304Speter *	Save the file and exit.
3119304Speter *
32281373Sbapt * PUBLIC: int v_zexit(SCR *, VICMD *);
3319304Speter */
3419304Speterint
35254225Speterv_zexit(SCR *sp, VICMD *vp)
3619304Speter{
3719304Speter	/* Write back any modifications. */
3819304Speter	if (F_ISSET(sp->ep, F_MODIFIED) &&
3919304Speter	    file_write(sp, NULL, NULL, NULL, FS_ALL))
4019304Speter		return (1);
4119304Speter
4219304Speter	/* Check to make sure it's not a temporary file. */
4319304Speter	if (file_m3(sp, 0))
4419304Speter		return (1);
4519304Speter
4619304Speter	/* Check for more files to edit. */
4719304Speter	if (ex_ncheck(sp, 0))
4819304Speter		return (1);
4919304Speter
5019304Speter	F_SET(sp, SC_EXIT);
5119304Speter	return (0);
5219304Speter}
53