X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fglob.c;h=c0b3c905ad3e345f45e582beb97db4467907cdae;hb=e210b20bf6f405637c8c03dd280b5a4a627191b8;hp=60da1fffd3b2e54e2a6995de86fafcc833b14c01;hpb=37597beca4a11edba50b847932fdfeca3a648fa2;p=pspp-builds.git diff --git a/src/glob.c b/src/glob.c index 60da1fff..c0b3c905 100644 --- a/src/glob.c +++ b/src/glob.c @@ -14,320 +14,51 @@ 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 -#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 -#include -#else /* no readline/history.h */ -extern void using_history (); -extern int read_history (); -extern void stifle_history (); -#endif /* no readline/history.h */ -#endif /* -lhistory */ - -#if HAVE_FPU_CONTROL_H -#include -#elif __BORLANDC__ -#include -#include -#endif - -#if __DJGPP__ -#include -#elif defined (__WIN32__) && defined (__BORLANDC__) -#undef gettext -#include -#define gettext(STRING) \ - STRING -#endif - -#if HAVE_LOCALE_H -#include -#endif - -#if HAVE_FENV_H -#include -#endif - -#include "alloc.h" -#include "command.h" -#include "do-ifP.h" -#include "error.h" -#include "expr.h" -#include "file-handle.h" -#include "filename.h" -#include "getline.h" -#include "hash.h" -#include "julcal/julcal.h" -#include "lexer.h" -#include "magic.h" -#include "main.h" -#include "settings.h" #include "str.h" -#include "var.h" -#include "version.h" -#include "vfm.h" +#include "strftime.h" /* var.h */ struct dictionary *default_dict; struct expression *process_if_expr; -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; - -struct ctl_stmt *ctl_stack; - -/* log.h */ -char *logfn; -FILE *logfile; -int logging; /* Functions. */ -static void get_date (void); - -#if HAVE_LIBTERMCAP -static char term_buffer[16384]; -#endif - -void -init_glob (int argc UNUSED, char **argv) -{ - /* FIXME: Allow i18n of other locale items (besides LC_MESSAGES). */ -#if ENABLE_NLS -#if HAVE_LC_MESSAGES - setlocale (LC_MESSAGES, ""); -#endif - setlocale (LC_MONETARY, ""); - bindtextdomain (PACKAGE, locale_dir); - textdomain (PACKAGE); -#endif /* ENABLE_NLS */ - - /* Workable defaults before we determine the real terminal size. */ - set_viewwidth = 79; - set_viewlength = 24; - - fn_init (); - getl_initialize (); - - /* PORTME: If your system/OS has the nasty tendency to halt with a - SIGFPE whenever there's a floating-point overflow (or other - exception), be sure to mask off those bits in the FPU here. - PSPP wants a guarantee that, no matter what boneheaded - floating-point operation it performs, the process will not halt. */ -#if HAVE_FEHOLDEXCEPT - { - fenv_t foo; - - feholdexcept (&foo); - } -#elif HAVE___SETFPUCW && defined(_FPU_IEEE) - __setfpucw (_FPU_IEEE); -#elif __BORLANDC__ - _control87 (0xffff, 0x137f); -#endif - - /* var.h */ - default_dict = dict_create (); - - last_vfm_invocation = time (NULL); - - /* lexer.h */ - ds_init (NULL, &tokstr, 64); - - /* common.h */ - { - char *cp; - - pgmname = argv[0]; - for (;;) - { - cp = strchr (pgmname, DIR_SEPARATOR); - if (!cp) - break; - pgmname = &cp[1]; - } - 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 */ - - /* log.h */ - logging = 1; - logfn = xstrdup ("pspp.log"); - logfile = NULL; - - /* file-handle.h */ - fh_init_files (); - - get_date (); -} - static void -get_date (void) +get_cur_date (char cur_date[12]) { + time_t now = time (NULL); - time_t t; - struct tm *tmp; - - if ((time_t) -1 == time (&t)) + if (now != (time_t) -1) { - strcpy (curdate, "?? ??? 2???"); - return; + struct tm *tm = localtime (&now); + if (tm != NULL) + { + strftime (cur_date, 12, "%d %b %Y", tm); + return; + } } - tmp = localtime (&t); - - strftime (curdate, 12, "%d %b %Y",tmp); + strcpy (cur_date, "?? ??? 2???"); } -#if __BORLANDC__ -int -_RTLENTRY _EXPFUNC _matherr (struct exception _FAR *__e) +const char * +get_start_date (void) { - return 1; -} + static char start_date[12]; -int -_RTLENTRY _EXPFUNC _matherrl (struct _exceptionl _FAR *__e) -{ - return 1; + if (start_date[0] == '\0') + get_cur_date (start_date); + return start_date; } -#endif