X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fglob.c;h=38dd32373801a0be277d9137fefb81778979d0a5;hb=836682e6cff19cce534966b7bab4a933833f9693;hp=5832a10b5f1bbd6245107ef17d96a5c6ffa1b051;hpb=738a32191dd661793410957d9f2df8c46fdcb55c;p=pspp-builds.git diff --git a/src/glob.c b/src/glob.c index 5832a10b..38dd3237 100644 --- a/src/glob.c +++ b/src/glob.c @@ -14,34 +14,16 @@ 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 #include "glob.h" -#include +#include "error.h" +#include "progname.h" #include #include - -#if TIME_WITH_SYS_TIME -#include -#include -#else -#if HAVE_SYS_TIME_H -#include -#else #include -#endif -#endif - -#if HAVE_LIBTERMCAP -#if HAVE_TERMCAP_H -#include -#else /* !HAVE_TERMCAP_H */ -int tgetent (char *, char *); -int tgetnum (char *); -#endif /* !HAVE_TERMCAP_H */ -#endif /* !HAVE_LIBTERMCAP */ #if HAVE_LIBHISTORY #if HAVE_READLINE_HISTORY_H @@ -62,7 +44,7 @@ extern void stifle_history (); #if __DJGPP__ #include -#elif __WIN32__ && __BORLANDC__ +#elif defined (__WIN32__) && defined (__BORLANDC__) #undef gettext #include #define gettext(STRING) \ @@ -78,44 +60,37 @@ extern void stifle_history (); #endif #include "alloc.h" +#include "calendar.h" #include "command.h" -#include "do-ifP.h" +#include "dictionary.h" #include "error.h" -#include "expr.h" #include "file-handle.h" #include "filename.h" -#include "getline.h" +#include "getl.h" #include "hash.h" -#include "julcal/julcal.h" #include "lexer.h" #include "magic.h" #include "main.h" +#include "random.h" #include "settings.h" #include "str.h" #include "var.h" #include "version.h" #include "vfm.h" +#include "gettext.h" + /* var.h */ struct dictionary *default_dict; struct expression *process_if_expr; -struct ccase *temp_case; - -struct trns_header **t_trns; -int n_trns; -int m_trns; -int f_trns; +struct transformation *t_trns; +size_t n_trns, m_trns, f_trns; int FILTER_before_TEMPORARY; struct file_handle *default_handle; -void (*read_active_file) (void); -void (*cancel_input_pgm) (void); - -struct ctl_stmt *ctl_stack; - /* log.h */ char *logfn; FILE *logfile; @@ -125,13 +100,12 @@ int logging; static void get_date (void); -#if HAVE_LIBTERMCAP -static char term_buffer[16384]; -#endif void -init_glob (int argc unused, char **argv) +init_glob (int argc UNUSED, char **argv) { + set_program_name (argv[0]); + /* FIXME: Allow i18n of other locale items (besides LC_MESSAGES). */ #if ENABLE_NLS #if HAVE_LC_MESSAGES @@ -142,11 +116,8 @@ init_glob (int argc unused, char **argv) textdomain (PACKAGE); #endif /* ENABLE_NLS */ - /* Workable defaults before we determine the real terminal size. */ - set_viewwidth = 79; - set_viewlength = 24; - fn_init (); + fh_init (); getl_initialize (); /* PORTME: If your system/OS has the nasty tendency to halt with a @@ -169,15 +140,10 @@ init_glob (int argc unused, char **argv) /* var.h */ default_dict = dict_create (); - vec_init (&reinit_sysmis); - vec_init (&reinit_blanks); - vec_init (&init_zero); - vec_init (&init_blanks); - last_vfm_invocation = time (NULL); /* lexer.h */ - ds_init (NULL, &tokstr, 64); + ds_init (&tokstr, 64); /* common.h */ { @@ -194,123 +160,31 @@ init_glob (int argc unused, char **argv) cur_proc = NULL; } - /* settings.h */ -#if !USE_INTERNAL_PAGER - { - char *pager; - - pager = getenv ("STAT_PAGER"); - if (!pager) - pager = getenv ("PAGER"); - if (pager) - set_pager = xstrdup (pager); -#if DEFAULT_PAGER - else - set_pager = xstrdup (DEFAULT_PAGER); -#endif /* DEFAULT_PAGER */ - } -#endif /* !USE_INTERNAL_PAGER */ - - set_blanks = SYSMIS; - set_scompression = 1; - set_format.type = FMT_F; - set_format.w = 8; - set_format.d = 2; - set_cpi = 6; - set_lpi = 10; - set_results_file = xstrdup ("pspp.prc"); - set_dprompt = xstrdup (_("data> ")); - - { - int i; - - for (i = 0; i < 5; i++) - { - struct set_cust_currency *cc = &set_cc[i]; - strcpy (cc->buf, "-"); - cc->neg_prefix = cc->buf; - cc->prefix = &cc->buf[1]; - cc->suffix = &cc->buf[1]; - cc->neg_suffix = &cc->buf[1]; - cc->decimal = '.'; - cc->grouping = ','; - } - } - - set_decimal = '.'; - set_grouping = ','; - set_headers = 1; - set_journaling = 1; - set_journal = xstrdup ("pspp.jnl"); - set_messages = 1; - set_mexpand = 1; - set_mprint = 1; - set_mxerrs = 50; - set_mxwarns = 100; - set_printback = 1; - set_undefined = 1; - - set_cprompt = xstrdup (" > "); - set_echo = 0; - set_endcmd = '.'; - set_errorbreak = 0; - set_include = 1; - set_nullline = 1; - set_more = 1; - set_prompt = xstrdup ("PSPP> "); - set_seed = NOT_LONG; - -#if __DJGPP__ || __BORLANDC__ - { - struct text_info ti; - gettextinfo (&ti); - set_viewlength = max (ti.screenheight, 25); - set_viewwidth = max (ti.screenwidth, 79); - } -#elif HAVE_LIBTERMCAP - { - char *termtype; - int success; - - /* This code stolen from termcap.info, though modified. */ - termtype = getenv ("TERM"); - if (!termtype) - msg (FE, _("Specify a terminal type with `setenv TERM '.")); - - success = tgetent (term_buffer, termtype); - if (success <= 0) - { - if (success < 0) - msg (IE, _("Could not access the termcap data base.")); - else - msg (IE, _("Terminal type `%s' is not defined."), termtype); - msg (MM, _("Assuming screen of size 79x25.")); - set_viewlength = 25; - set_viewwidth = 79; - } - else - { - set_viewlength = tgetnum ("li"); - set_viewwidth = tgetnum ("co") - 1; - } - } -#else /* !HAVE_LIBTERMCAP */ - set_viewlength = 25; - set_viewwidth = 79; -#endif /* !HAVE_LIBTERMCAP */ + init_settings (); + random_init (); /* log.h */ logging = 1; logfn = xstrdup ("pspp.log"); logfile = NULL; - /* file-handle.h */ - fh_init_files (); - get_date (); } +void +done_glob(void) +{ + cancel_transformations (); + dict_destroy (default_dict); + free (logfn); + random_done (); + done_settings (); + ds_destroy (&tokstr); + + fh_done(); +} + static void get_date (void) {