Beispiel #1
0
void
bye(void)
{
  /* Force my personal prejudices upon the poor luser   */
  if (LOG_ENABLED)
    fprintf(log_fp, "Cleanup & exit\n");

  default_level();  /* Enter ANSI mode (if in VT52 mode)    */
  decckm(FALSE);  /* cursor keys normal   */
  deccolm(FALSE);   /* 80 col mode          */
  decscnm(FALSE);   /* Normal screen        */
  decom(FALSE); /* Absolute origin mode */
  decawm(TRUE); /* Wrap around on       */
  decarm(TRUE); /* Auto repeat on       */
  decstbm(0, 0);  /* No scroll region     */
  sgr("0");     /* Normal character attributes  */

  /* Say goodbye */

  vt_clear(2);
  vt_move(12, 30);
  printf("That's all, folks!\n");
  printf("\n\n\n");
  inflush();
  close_tty();
  exit(EXIT_SUCCESS);
}
Beispiel #2
0
  /* Set up my personal prejudices      */
int
setup_terminal(MENU_ARGS)
{
  if (LOG_ENABLED)
    fprintf(log_fp, "Setup Terminal with test-defaults\n");

  default_level();  /* Enter ANSI mode (if in VT52 mode)    */
  decckm(FALSE);  /* cursor keys normal   */
  deccolm(FALSE);   /* 80 col mode          */
  decsclm(FALSE);   /* Jump scroll          */
  decscnm(FALSE);   /* Normal screen        */
  decom(FALSE); /* Absolute origin mode */
  decawm(TRUE); /* Wrap around on       */
  decarm(FALSE);  /* Auto repeat off      */
  sm("?40");    /* Enable 80/132 switch (xterm) */
  rm("?45");    /* Disable reverse wrap (xterm) */
  decstbm(0, 0);  /* No scroll region     */
  sgr("0");     /* Normal character attributes  */

  return MENU_NOHOLD;
}
Beispiel #3
0
	std::vector<Pattern> get_patterns(std::string const& envvar)
	{
		std::vector<std::string> patterns;
		boost::algorithm::split(
			patterns,
			envvar,
			boost::algorithm::is_any_of(","),
			boost::algorithm::token_compress_on
		);
		std::vector<Pattern> res;
		for (auto& pattern: patterns)
		{
			boost::algorithm::trim(pattern);
			std::vector<std::string> parts;
			boost::algorithm::split(
				parts,
				pattern,
				boost::algorithm::is_any_of(":"),
				boost::algorithm::token_compress_on
			);
			if (parts.size() == 0)
			{
				detail::log("Ignoring empty log pattern");
				continue;
			}
			else if (parts.size() > 2)
			{
				detail::log("Ignoring invalid log pattern:", "'" + pattern + "'");
				continue;
			}
			std::string match = parts[0];
			Level level = default_level();
			if (parts.size() == 2)
			{
				try { level = level_from_string(parts[1]); }
				catch (std::out_of_range const&)
				{
					log("Unknown level string", parts[1]);
					level = default_level();
				}
			}
			detail::log("match:", match, "level:", level);

			if (match.size() == 0 ||
					(match.size() == 1 && (
						match[0] == '+' ||
						match[0] == '-')))
			{
				detail::log("Invalid match expression:", "'" + match + "'");
				continue;
			}
			if (match[0] == '+')
				res.emplace_back(
					Pattern::add_match,
					"*" + match.substr(1) + "*",
					level
				);
			else if (match[0] == '-')
				res.emplace_back(
					Pattern::remove_match,
					"*" + match.substr(1) + "*",
					level
				);
			else
				res.emplace_back(
					Pattern::add_match,
					"*" + match + "*",
					level
				);
		}
		for (auto const& p: res)
			detail::log("Pattern:", p.level, p.str, p.op);
		return res;
	}