Example #1
0
void greetings ( void )
{
   int fail,n;
   char s[40];

   fail = version_string(&n,s);

   printf("Running %s ...\n",s);
}
Example #2
0
File: gtp.c Project: gonmf/matilda
static void gtp_version(
    FILE * fp,
    int id
){
    char * s = alloc();
    version_string(s);
    gtp_answer(fp, id, s);
    release(s);
}
Example #3
0
PRIVATE
void
Kip::debug_print_features() const
{
  printf("Kernel features:");
  char const *f = version_string();
  for (f += strlen(f) + 1; *f; f += strlen(f) + 1)
    {
      putchar(' ');
      putstr(f);
    }
  putchar('\n');
}
Example #4
0
// Print the help info & exit
static void print_help(void)
{
  asfPrintStatus(
      "\n"
      "Tool name:\n   " ASF_NAME_STRING "\n\n"
      "Usage:\n" ASF_USAGE_STRING "\n"
      "Description:\n" ASF_DESCRIPTION_STRING "\n"
      "Input:\n" ASF_INPUT_STRING "\n"
      "Output:\n"ASF_OUTPUT_STRING "\n"
      "Options:\n" ASF_OPTIONS_STRING "\n"
      "Contact:\n" ASF_CONTACT_STRING "\n"
      "Version:\n   %s\n\n",
       version_string(ASF_NAME_STRING));
  exit(EXIT_SUCCESS);
}
Example #5
0
    // load stored parameters from disk
    void read_from_disk()
    {
        BOOST_ASSERT(!m_file_name.empty());

        m_cache.clear();

        boost::property_tree::ptree pt;
        try {
            read_json(m_file_name, pt);
        }
        catch(boost::property_tree::json_parser::json_parser_error &e){
            // no saved cache file, ignore
            return;
        }

        std::string stored_device;
        try {
            stored_device = pt.get<std::string>("header.device");
        }
        catch(boost::property_tree::ptree_bad_path&){
            return;
        }

        std::string stored_version;
        try {
            stored_version = pt.get<std::string>("header.version");
        }
        catch(boost::property_tree::ptree_bad_path&){
            return;
        }

        if(stored_device == m_device_name && stored_version == version_string()){
            typedef boost::property_tree::ptree::const_iterator pt_iter;
            for(pt_iter iter = pt.begin(); iter != pt.end(); ++iter){
                if(iter->first == "header"){
                    // skip header
                    continue;
                }

                boost::property_tree::ptree child_pt = pt.get_child(iter->first);
                for(pt_iter child_iter = child_pt.begin(); child_iter != child_pt.end(); ++child_iter){
                    set(iter->first, child_iter->first, boost::lexical_cast<uint_>(child_iter->second.data()));
                }
            }
        }

        m_dirty = false;
    }
Example #6
0
static void open_stack(FILE *fp, ursa_type_t *ursa)
{
  fprintf(fp, "<Placemark>\n");
  fprintf(fp, "  <description><![CDATA[\n");
  fprintf(fp, "<table width=\"350\"><tr><td>\n");
  fprintf(fp, "<!-- Format: URSA (generated by %s) -->\n", version_string("convert2vector"));
  fprintf(fp, "<strong>Platform</strong>: %s <br>\n", ursa->platform);
  fprintf(fp, "<strong>Sensor</strong>: %s <br>\n", ursa->sensor);
  fprintf(fp, "<strong>Beam mode</strong>: %s <br>\n", ursa->beam_mode);
  fprintf(fp, "<strong>Frame Number</strong>: %d <br>\n", ursa->frame_number);
  fprintf(fp, "<strong>Off Nadir Angle</strong>: %.1f <br><br>\n", 
	  ursa->off_nadir_angle);
  fprintf(fp, "<table border=\"1\" cellpadding=\"5\"><tr>\n");
  fprintf(fp, "<td><strong>Granule Name</strong></td>");
  fprintf(fp, "<td><strong>Center Time</strong></td></tr>\n");
}
Example #7
0
int fileop_save_by_name( char *file_name )
{
	FILE	*fp;
	char	name[ MAX_TOKEN_LENGTH ];
	char	s[80];
	
	strcpy( name, file_name );

	file_handle_path( name, MAX_TOKEN_LENGTH );
	
	if ( NULL == (fp	= fopen( name, "w" )) )
	{
		cprintf( ERROR, CONT, "fail to save file \"%s\"\n", name );
		return ( ERROR );
	}

	fprintf( fp, "###\n" );
	fprintf( fp, "### CaFE file made by \"save\" command.\n" );
	fprintf( fp, "###    --- %s ---\n", version_string( s ) );

	time_now( s );
	
	fprintf( fp, "###\n###    ### saved : %s\n###\n", s );
	fprintf( fp, "\n\n### user stack operation functions\n\n" );

	fprintf( fp, "0 >newlydefined_{\n" );
	fprintf( fp, "0 >newlydefined_k}\n\n" );
	fprintf( fp, "fisdef {    if z :@ :{ =new =target ; 1 >newlydefined_{ ; pop\n\n" );
	fprintf( fp, "fisdef k}   if z :@ :k} =parent =target ; 1 >newlydefined_k} ; pop\n\n\n" );
	
	fprintf( fp, "### content of stack\n\n" );
	
	save_stack( NULL, fp );
	
	fprintf( fp, "\n\n### content of stack end\n\n" );

	fprintf( fp, "<newlydefined_{  if t :@ forget { ;  pop\n" );
	fprintf( fp, "<newlydefined_k} if t :@ forget k} ; pop\n" );
	
	fclose( fp );

	return ( NO_ERROR );
}
Example #8
0
    // store current parameters to disk
    void write_to_disk()
    {
        BOOST_ASSERT(!m_file_name.empty());

        if(m_dirty){
            // save current parameters to disk
            boost::property_tree::ptree pt;
            pt.put("header.device", m_device_name);
            pt.put("header.version", version_string());
            typedef std::map<std::pair<std::string, std::string>, uint_> map_type;
            for(map_type::const_iterator iter = m_cache.begin(); iter != m_cache.end(); ++iter){
                const std::pair<std::string, std::string> &key = iter->first;
                pt.add(key.first + "." + key.second, iter->second);
            }
            write_json(m_file_name, pt);

            m_dirty = false;
        }
    }
Example #9
0
/*ARGSUSED*/
void paniclog(const char *type,   /* panic, impossible, trickery */
	      const char *reason) /* explanation */
{
#ifdef PANICLOG
	FILE *lfile;
	char buf[BUFSZ];

	if (!program_state.in_paniclog) {
		program_state.in_paniclog = 1;
		lfile = fopen_datafile(PANICLOG, "a", TROUBLEPREFIX);
		if (lfile) {
		    fprintf(lfile, "%s %08ld: %s %s\n",
				   version_string(buf), yyyymmdd((time_t)0L),
				   type, reason);
		    fclose(lfile);
		}
		program_state.in_paniclog = 0;
	}
#endif /* PANICLOG */
	return;
}
Example #10
0
void
show_help(struct statics * stp)

{
	static char *fullhelp;
	char	   *p = NULL;
	char	   *q = NULL;

	if (fullhelp == NULL)
	{
		/* set it up first time thru */
		if (stp->order_names != NULL)
		{
			p = string_list(stp->order_names);
		}
		if (p == NULL)
		{
			p = "not supported";
		}
		if (stp->order_names != NULL)
		{
			q = string_list(stp->order_names_io);
		}
		if (q == NULL)
		{
			q = "not supported";
		}
		fullhelp = (char *) malloc(strlen(help_text) + strlen(p) + strlen(q) +
				2);
		sprintf(fullhelp, help_text, p, q);
	}

	display_pager("Top version ");
	display_pager(version_string());
	display_pager(", ");
	display_pager(copyright);
	display_pager("\n");
	display_pager(fullhelp);
}
Example #11
0
show_help()

{
    printf("Top version %s, %s\n", version_string(), copyright);
    fputs("\n\n\
A top users display for Unix\n\
\n\
These single-character commands are available:\n\
\n\
^L      - redraw screen\n\
q       - quit\n\
h or ?  - help; show this text\n", stdout);

    /* not all commands are availalbe with overstrike terminals */
    if (overstrike)
    {
	fputs("\n\
Other commands are also available, but this terminal is not\n\
sophisticated enough to handle those commands gracefully.\n\n", stdout);
    }
    else
    {
Example #12
0
void *ManagerImpl::systemInfoEvent(void *data)
{
    struct sysinfo_s *sysinfo = (struct sysinfo_s *) data;
    QString platformString;
    QString detailsString;

    detailsString = QString::fromUcs2(sysinfo->version.szCSDVersion);
    if (VER_PLATFORM_WIN32_CE == sysinfo->version.dwPlatformId)
        platformString = "Windows CE";
    major->setText(QString::number(sysinfo->version.dwMajorVersion));
    minor->setText(QString::number(sysinfo->version.dwMinorVersion));
    build->setText(QString::number(sysinfo->version.dwBuildNumber));
    sysName->setText(QString(version_string(&sysinfo->version)));
    id->setText(QString::number(sysinfo->version.dwPlatformId));
    platform->setText(platformString);
    details->setText(detailsString);
    architecture->setText(
            QString::number(sysinfo->system.wProcessorArchitecture) +
            " " + QString((sysinfo->system.wProcessorArchitecture <
            PROCESSOR_ARCHITECTURE_COUNT) ? architectures[
            sysinfo->system.wProcessorArchitecture] : i18n("Processor architecture", "Unknown")));
    procType->setText(QString::number(sysinfo->system.dwProcessorType) +
            " " + QString(processor(sysinfo->system.dwProcessorType)));
    pageSize->setText("0x" + QString::number(
            sysinfo->system.dwAllocationGranularity, 16));
    storageSize->setText(QString::number(sysinfo->store.dwStoreSize) +
            " B  (" + QString::number(sysinfo->store.dwStoreSize /
            (1024 * 1024)) + " MB)");
    freeSpace->setText(QString::number(sysinfo->store.dwFreeSize) +
            " B  (" + QString::number(sysinfo->store.dwFreeSize /
            (1024 * 1024)) + " MB)");

    delete sysinfo;

    return NULL;
}
Example #13
0
int fileop_put_by_name( char *file_name )
{
	FILE	*fp;
	char	name[ MAX_TOKEN_LENGTH ];
	char	s[80];
	char	**strp;
	char	*quoted;
	int		i;
	
	strcpy( name, file_name );

	file_handle_path( name, MAX_TOKEN_LENGTH );
	
	if ( NULL == (fp	= fopen( name, "w" )) )
	{
		cprintf( ERROR, CONT, "fail to put file \"%s\"\n", name );
		return ( ERROR );
	}

	fprintf( fp, "###\n" );
	fprintf( fp, "### CaFE file made by \"put\" command.\n" );
	fprintf( fp, "###    --- %s ---\n", version_string( s ) );

	fprintf( fp, "###\n" );
	fprintf( fp, "\n" );

	time_now( s );
	fprintf( fp, "###\n### ### saved : %s\n###\n", s );

	fprintf( fp, "\n\n### functions\n\n" );
	
	if ( !(strcmp( file_name, PREFERENCE_FILE3 )) )
		fprintf( fp, "\"\" package\n\n" );

	function_list( fp );

	fprintf( fp, "\n\n### history section\n\n" );

	if ( NULL == (strp	=( char **)malloc( sizeof( char * ) * g_cafe_mode.n_history.value )) )
	{
		fclose( fp );
		cprintf( ERROR, CONT, "fail to put file (@malloc)\"%s\"\n", name );
		return ( ERROR );
	}

	history_strings( strp, g_cafe_mode.n_history.value );
	
	for ( i = (g_cafe_mode.n_history.value - 1); i >= 0 ; --i )
	{
		if ( !strp[ i ] )
			continue;
		
		if ( strstr( strp[ i ], "qq" ) )
			continue;
		
		if ( strstr( strp[ i ], "quit" ) )
			continue;
		
		quoted	= string_quote( strp[ i ], '\"' );
		fprintf( fp, "%s\thistory\n", quoted );
		dispose_string_object( quoted );

	}
	
	free( strp );

	fclose( fp );

	return ( NO_ERROR );
}
Example #14
0
void
do_arguments(globalstate *gstate, int ac, char **av)

{
    int i;

    /* this appears to keep getopt happy */
    optind = 1;

#ifdef HAVE_GETOPT_LONG
    while ((i = getopt_long(ac, av, "CDSIMTabcinqtuvs:d:U:o:m:", longopts, NULL)) != -1)
#else
    while ((i = getopt(ac, av, "CDSIMTabcinqtuvs:d:U:o:m:")) != EOF)
#endif
    {
	switch(i)
	{
#ifdef ENABLE_COLOR
	case 'C':
	    gstate->use_color = !gstate->use_color;
	    break;
#endif

	case 'D':
	    debug_set(1);
	    break;

	case 'v':
	    fprintf(stderr, "%s: version %s\n", myname, version_string());
	    exit(EX_OK);
	    break;

	case 'b':
	case 'n':
	    gstate->interactive = No;
	    break;

	case 'a':
	    gstate->displays = Infinity;
	    gstate->topn = Infinity;
	    break;

	case 'i':
	    gstate->interactive = Yes;
	    break;

	case 'o':
	    gstate->order_name = optarg;
	    break;

	case 'd':
	    i = atoiwi(optarg);
	    if (i == Invalid || i == 0)
	    {
		message_error(" Bad display count");
	    }
	    else
	    {
		gstate->displays = i;
	    }
	    break;

	case 's':
	    i = atoi(optarg);
	    if (i < 0 || (i == 0 && getuid() != 0))
	    {
		message_error(" Bad seconds delay");
	    }
	    else
	    {
		gstate->delay = i;
	    }
	    break;

	case 'u':
	    gstate->show_usernames = !gstate->show_usernames;
	    break;

	case 'U':
	    i = userid(optarg);
	    if (i == -1)
	    {
		message_error(" Unknown user '%s'", optarg);
	    }
	    else
	    {
		gstate->pselect.uid = i;
	    }
	    break;

	case 'm':
	    i = atoi(optarg);
	    gstate->pselect.mode = i;
	    break;

	case 'S':
	    gstate->pselect.system = !gstate->pselect.system;
	    break;

	case 'I':
	    gstate->pselect.idle = !gstate->pselect.idle;
	    break;

        case 'M':
	    enable_ncpus = 1;
            break;


#ifdef ENABLE_COLOR
	case 'T':
	    gstate->show_tags = 1;
	    break;
#endif

	case 'c':
	    gstate->pselect.fullcmd = !gstate->pselect.fullcmd;
	    break;

	case 't':
	    gstate->pselect.threads = !gstate->pselect.threads;
	    break;

	case 'q':		/* be quick about it */
	    /* only allow this if user is really root */
	    if (getuid() == 0)
	    {
		/* be very un-nice! */
		(void) nice(-20);
	    }
	    else
	    {
		message_error(" Option -q can only be used by root");
	    }
	    break;

	default:
	    fprintf(stderr, "\
Top version %s\n\
Usage: %s [-ISTabcinqu] [-d x] [-s x] [-o field] [-U username] [number]\n",
		    version_string(), myname);
	    exit(EX_USAGE);
	}
    }

    /* get count of top processes to display */
    if (optind < ac && *av[optind])
    {
	if ((i = atoiwi(av[optind])) == Invalid)
	{
	    message_error(" Process count not a number");
	}
	else
	{
	    gstate->topn = i;
	}
    }
}
Example #15
0
static ambit_device_info_t * ambit_device_info_new(const struct hid_device_info *dev)
{
    ambit_device_info_t *device = NULL;
    const ambit_known_device_t *known_device = NULL;

    const char *dev_path;

    uint16_t vid;
    uint16_t pid;

    hid_device *hid;

    if (!dev || !dev->path) {
        LOG_ERROR("internal error: expecting hidraw device");
        return NULL;
    }

    dev_path = dev->path;
    vid = dev->vendor_id;
    pid = dev->product_id;

    if (!libambit_device_support_known(vid, pid)) {
        LOG_INFO("ignoring unknown device (VID/PID: %04x/%04x)", vid, pid);
        return NULL;
    }

    dev_path = strdup(dev_path);
    if (!dev_path) return NULL;

    device = calloc(1, sizeof(*device));
    if (!device) {
        free ((char *) dev_path);
        return NULL;
    }

    device->path = dev_path;
    device->vendor_id  = vid;
    device->product_id = pid;

    {                           /* create name for display purposes */
        char *vendor  = utf8wcsconv(dev->manufacturer_string);
        char *product = utf8wcsconv(dev->product_string);
        if (vendor && product) {
            char *name = (char *)malloc((strlen(vendor) + 1
                                         + strlen(product) + 1)
                                        * sizeof(char));
            if (name) {
                strcpy(name, vendor);
                strcat(name, " ");
                strcat(name, product);
                free(vendor);
                free(product);
                device->name = name;
            }
            else {
                device->name = product;
                if (vendor) free(vendor);
            }
        }
        else {
            device->name = product;
            if (vendor) free(vendor);
        }
        device->serial = utf8wcsconv(dev->serial_number);
    }

    LOG_INFO("HID  : %s: '%s' (serial: %s, VID/PID: %04x/%04x)",
             device->path, device->name, device->serial,
             device->vendor_id, device->product_id);

    hid = hid_open_path(device->path);
    if (hid) {
        /* HACK ALERT: minimally initialize an ambit object so we can
         * call device_info_get().  Note that this function sets the
         * device's model and serial string fields.  Above the latter
         * has been set already using the HID information.
         */
        char *serial = device->serial;
        ambit_object_t obj;
        obj.handle = hid;
        obj.sequence_no = 0;
        if (0 == device_info_get(&obj, device)) {

            if (!device->serial) { /* fall back to HID information */
                device->serial = serial;
            }
            else {
                if (serial && 0 != strcmp(device->serial, serial)) {
                  LOG_INFO("preferring F/W serial number over HID '%s'",
                           serial);
                }
                if (serial) free(serial);
            }

            known_device = libambit_device_support_find(device->vendor_id, device->product_id, device->model, device->fw_version);
            if (known_device != NULL) {
                device->is_supported = known_device->supported;
                if (device->name && known_device->name
                    && 0 != strcmp(device->name, known_device->name)) {
                    char *name = strdup(known_device->name);
                    if (name) {
                        LOG_INFO("preferring known name over HID '%s'",
                                 device->name);
                        free(device->name);
                        device->name = name;
                    }
                }
            }

#ifdef DEBUG_PRINT_INFO
            {
                char fw_version[LIBAMBIT_VERSION_LENGTH+1];
                char hw_version[LIBAMBIT_VERSION_LENGTH+1];
                version_string(fw_version, device->fw_version);
                version_string(hw_version, device->hw_version);

                LOG_INFO("Ambit: %s: '%s' (serial: %s, VID/PID: %04x/%04x, "
                         "nick: %s, F/W: %s, H/W: %s, supported: %s)",
                         device->path, device->name, device->serial,
                         device->vendor_id, device->product_id,
                         device->model, fw_version, hw_version,
                         (device->is_supported ? "YES" : "NO"));
            }
#endif
        }
        else {
            LOG_ERROR("cannot get device info from %s", device->path);
        }
        hid_close(hid);
    }
    else {
        /* Store an educated guess as to why we cannot open the HID
         * device.  Without read/write access we cannot communicate
         * to begin with but there may be other reasons.
         */
        int fd = open(device->path, O_RDWR);

        if (-1 == fd) {
            device->access_status = errno;
            LOG_ERROR("cannot open HID device (%s): %s", device->path,
                      strerror (device->access_status));
        }
        else {
            LOG_WARNING("have read/write access to %s but cannot open HID "
                        "device", device->path);
            close(fd);
        }
    }

    return device;
}
Example #16
0
static void
version_info(void)
{
    printf("Xconq (%s) version %s\n", program_name, version_string());
}
Example #17
0
/*
 * XXX: this only supports reading and writing to version 4 superblock fields.
 * V5 superblocks always define certain V4 feature bits - they are blocked from
 * being changed if a V5 sb is detected, but otherwise v5 superblock features
 * are not handled here.
 */
static int
version_f(
	int		argc,
	char		**argv)
{
	__uint16_t	version = 0;
	__uint32_t	features = 0;
	xfs_agnumber_t	ag;

	if (argc == 2) {	/* WRITE VERSION */

		if ((x.isreadonly & LIBXFS_ISREADONLY) || !expert_mode) {
			dbprintf(_("%s: not in expert mode, writing disabled\n"),
				progname);
			return 0;
		}

		/* Logic here derived from the IRIX xfs_chver(1M) script. */
		if (!strcasecmp(argv[1], "extflg")) {
			switch (XFS_SB_VERSION_NUM(&mp->m_sb)) {
			case XFS_SB_VERSION_1:
				version = 0x0004 | XFS_SB_VERSION_EXTFLGBIT;
				break;
			case XFS_SB_VERSION_2:
				version = 0x0014 | XFS_SB_VERSION_EXTFLGBIT;
				break;
			case XFS_SB_VERSION_3:
				version = 0x0034 | XFS_SB_VERSION_EXTFLGBIT;
				break;
			case XFS_SB_VERSION_4:
				if (xfs_sb_version_hasextflgbit(&mp->m_sb))
					dbprintf(
		_("unwritten extents flag is already enabled\n"));
				else
					version = mp->m_sb.sb_versionnum |
						  XFS_SB_VERSION_EXTFLGBIT;
				break;
			case XFS_SB_VERSION_5:
				dbprintf(
		_("unwritten extents always enabled for v5 superblocks.\n"));
				break;
			}
		} else if (!strcasecmp(argv[1], "log2")) {
			switch (XFS_SB_VERSION_NUM(&mp->m_sb)) {
			case XFS_SB_VERSION_1:
				version = 0x0004 | XFS_SB_VERSION_LOGV2BIT;
				break;
			case XFS_SB_VERSION_2:
				version = 0x0014 | XFS_SB_VERSION_LOGV2BIT;
				break;
			case XFS_SB_VERSION_3:
				version = 0x0034 | XFS_SB_VERSION_LOGV2BIT;
				break;
			case XFS_SB_VERSION_4:
				if (xfs_sb_version_haslogv2(&mp->m_sb))
					dbprintf(
		_("version 2 log format is already in use\n"));
				else
					version = mp->m_sb.sb_versionnum |
						  XFS_SB_VERSION_LOGV2BIT;
				break;
			case XFS_SB_VERSION_5:
				dbprintf(
		_("Version 2 logs always enabled for v5 superblocks.\n"));
				break;
			}
		} else if (XFS_SB_VERSION_NUM(&mp->m_sb) == XFS_SB_VERSION_5) {
			dbprintf(
		_("%s: Cannot change %s on v5 superblocks.\n"),
				progname, argv[1]);
			return 0;
		} else if (!strcasecmp(argv[1], "attr1")) {

			if (xfs_sb_version_hasattr2(&mp->m_sb)) {
				if (!(mp->m_sb.sb_features2 &=
						~XFS_SB_VERSION2_ATTR2BIT))
					mp->m_sb.sb_versionnum &=
						~XFS_SB_VERSION_MOREBITSBIT;
			}
			xfs_sb_version_addattr(&mp->m_sb);
			version = mp->m_sb.sb_versionnum;
			features = mp->m_sb.sb_features2;
		} else if (!strcasecmp(argv[1], "attr2")) {
			xfs_sb_version_addattr(&mp->m_sb);
			xfs_sb_version_addattr2(&mp->m_sb);
			version = mp->m_sb.sb_versionnum;
			features = mp->m_sb.sb_features2;
		} else if (!strcasecmp(argv[1], "projid32bit")) {
			xfs_sb_version_addprojid32bit(&mp->m_sb);
			version = mp->m_sb.sb_versionnum;
			features = mp->m_sb.sb_features2;
		} else {
			dbprintf(_("%s: invalid version change command \"%s\"\n"),
				progname, argv[1]);
			return 0;
		}

		if (version) {
			dbprintf(_("writing all SBs\n"));
			for (ag = 0; ag < mp->m_sb.sb_agcount; ag++)
				if (!do_version(ag, version, features)) {
					dbprintf(_("failed to set versionnum "
						 "in AG %d\n"), ag);
					break;
				}
			mp->m_sb.sb_versionnum = version;
			mp->m_sb.sb_features2 = features;
		}
	}

	if (argc == 3) {	/* VERSIONNUM + FEATURES2 */
		char	*sp;

		version = mp->m_sb.sb_versionnum;
		features = mp->m_sb.sb_features2;
		mp->m_sb.sb_versionnum = strtoul(argv[1], &sp, 0);
		mp->m_sb.sb_features2 = strtoul(argv[2], &sp, 0);
	}

	dbprintf(_("versionnum [0x%x+0x%x] = %s\n"), mp->m_sb.sb_versionnum,
			mp->m_sb.sb_features2, version_string(&mp->m_sb));

	if (argc == 3) {	/* now reset... */
		mp->m_sb.sb_versionnum = version;
		mp->m_sb.sb_features2 = features;
		return 0;
	}

	return 0;
}
Example #18
0
static void add_to_kml(FILE *fp, datapool_type_t *datapool, dbf_header_t *dbf,
		       int nCols)
{
  int ii;
  char begin[10], end[10];

  // Print out according to configuration
  fprintf(fp, "<Placemark>\n");
  fprintf(fp, "  <description><![CDATA[\n");
  fprintf(fp, "<table width=\"350\"><tr><td>\n");
  fprintf(fp, "<!-- Format: DATAPOOL (generated by %s) -->\n",
              version_string("conver2vector"));
  for (ii=0; ii<nCols; ii++) {
    if (dbf[ii].visible == 0) {
      strcpy(begin, "<!--");
      strcpy(end, "-->\n");
    }
    else {
      strcpy(begin, "");
      strcpy(end, "\n");
    }
    if (strcmp(dbf[ii].header, "Granule_Name") == 0)
      fprintf(fp, "%s<strong>Granule Name</strong>: %s <br>%s",
	      begin, datapool->granule_name, end);
    else if (strcmp(dbf[ii].header, "Platform") == 0)
      fprintf(fp, "%s<strong>Platform</strong>: %s <br>%s",
	      begin, datapool->platform, end);
    else if (strcmp(dbf[ii].header, "Sensor") == 0)
      fprintf(fp, "%s<strong>Sensor</strong>: %s <br>%s",
	      begin, datapool->sensor, end);
    else if (strcmp(dbf[ii].header, "Beam_Mode") == 0)
      fprintf(fp, "%s<strong>Beam mode</strong>: %s <br>%s",
	      begin, datapool->beam_mode, end);
    else if (strcmp(dbf[ii].header, "Beam_Mode_Description") == 0)
      fprintf(fp, "%s<strong>Beam mode description</strong>: %s <br>%s",
	      begin, datapool->beam_mode_description, end);
    else if (strcmp(dbf[ii].header, "Orbit") == 0)
      fprintf(fp, "%s<strong>Orbit</strong>: %d <br>%s",
	      begin, datapool->orbit, end);
    else if (strcmp(dbf[ii].header, "Path_Number") == 0)
      fprintf(fp, "%s<strong>Path Number</strong>: %d <br>%s",
	      begin, datapool->path_number, end);
    else if (strcmp(dbf[ii].header, "Frame_Number") == 0)
      fprintf(fp, "%s<strong>Frame Number</strong>: %d <br>%s",
	      begin, datapool->frame_number, end);
    else if (strcmp(dbf[ii].header, "Acquisition_Date") == 0)
      fprintf(fp, "%s<strong>Acquisition Date</strong>: %s <br>%s",
	      begin, datapool->acquisition_date, end);
    else if (strcmp(dbf[ii].header, "Processing_Date") == 0)
      fprintf(fp, "%s<strong>Processing Date</strong>: %s <br>%s",
	      begin, datapool->processing_date, end);
    else if (strcmp(dbf[ii].header, "Processing_Level") == 0)
      fprintf(fp, "%s<strong>Processing Level</strong>: %s <br>%s",
	      begin, datapool->processing_level, end);
    else if (strcmp(dbf[ii].header, "Start_Time") == 0)
      fprintf(fp, "%s<strong>Start Time</strong>: %s <br>%s",
	      begin, datapool->start_time, end);
    else if (strcmp(dbf[ii].header, "End_Time") == 0)
      fprintf(fp, "%s<strong>End Time</strong>: %s <br>%s",
	      begin, datapool->end_time, end);
    else if (strcmp(dbf[ii].header, "Center_Lat") == 0)
      fprintf(fp, "%s<strong>Center Lat</strong>: %.4f <br>%s",
	      begin, datapool->center_lat, end);
    else if (strcmp(dbf[ii].header, "Center_Lon") == 0)
      fprintf(fp, "%s<strong>Center Lon</strong>: %.4f <br>%s",
	      begin, datapool->center_lon, end);
    else if (strcmp(dbf[ii].header, "Near_Start_Lat") == 0)
      fprintf(fp, "%s<strong>Near Start Lat</strong>: %.4f <br>%s",
	      begin, datapool->near_start_lat, end);
    else if (strcmp(dbf[ii].header, "Near_Start_Lon") == 0)
      fprintf(fp, "%s<strong>Near Start Lon</strong>: %.4f <br>%s",
	      begin, datapool->near_start_lon, end);
    else if (strcmp(dbf[ii].header, "Far_Start_Lat") == 0)
      fprintf(fp, "%s<strong>Far Start Lat</strong>: %.4f <br>%s",
	      begin, datapool->far_start_lat, end);
    else if (strcmp(dbf[ii].header, "Far_Start_Lon") == 0)
      fprintf(fp, "%s<strong>Far Start Lon</strong>: %.4f <br>%s",
	      begin, datapool->far_start_lon, end);
    else if (strcmp(dbf[ii].header, "Near_End_Lat") == 0)
      fprintf(fp, "%s<strong>Near End Lat</strong>: %.4f <br>%s",
	      begin, datapool->near_end_lat, end);
    else if (strcmp(dbf[ii].header, "Near_End_Lon") == 0)
      fprintf(fp, "%s<strong>Near End Lon</strong>: %.4f <br>%s",
	      begin, datapool->near_end_lon, end);
    else if (strcmp(dbf[ii].header, "Far_End_Lat") == 0)
      fprintf(fp, "%s<strong>Far End Lat</strong>: %.4f <br>%s",
	      begin, datapool->far_end_lat, end);
    else if (strcmp(dbf[ii].header, "Far_End_Lon") == 0)
      fprintf(fp, "%s<strong>Far End Lon</strong>: %.4f <br>%s",
	      begin, datapool->far_end_lon, end);
    else if (strcmp(dbf[ii].header, "Faraday_Rotation") == 0)
      fprintf(fp, "%s<strong>Faraday Rotation</strong>: %.1f <br>%s",
	      begin, datapool->faraday_rotation, end);
    else if (strcmp(dbf[ii].header, "Orbit_Direction") == 0)
      fprintf(fp, "%s<strong>Orbit Direction</strong>: %s <br>%s",
	      begin, datapool->orbit_direction, end);
    else if (strcmp(dbf[ii].header, "Url") == 0)
      fprintf(fp, "%s<strong>URL</strong>: %s <br>%s",
	      begin, datapool->url, end);
    else if (strcmp(dbf[ii].header, "Size") == 0)
      fprintf(fp, "%s<strong>Size (MB)</strong>: %.2f <br>%s",
	      begin, datapool->size, end);
    else if (strcmp(dbf[ii].header, "Off_Nadir_Angle") == 0)
      fprintf(fp, "%s<strong>Off Nadir Angle</strong>: %.1f <br>%s",
	      begin, datapool->off_nadir_angle, end);
  }
  fprintf(fp, "</td></tr></table>\n");
  fprintf(fp, "  ]]></description>\n");
  fprintf(fp, "  <name>%s</name>\n", datapool->granule_name);
  fprintf(fp, "  <LookAt>\n");
  fprintf(fp, "    <longitude>%.4f</longitude>\n", datapool->center_lon);
  fprintf(fp, "    <latitude>%.4f</latitude>\n", datapool->center_lat);
  fprintf(fp, "    <range>400000</range>\n");
  fprintf(fp, "  </LookAt>\n");
  fprintf(fp, "  <visibility>1</visibility>\n");
  fprintf(fp, "  <open>1</open>\n");

  write_kml_style_keys(fp);

  fprintf(fp, "  <Polygon>\n");
  fprintf(fp, "    <extrude>1</extrude>\n");
  fprintf(fp, "    <altitudeMode>%s</altitudeMode>\n", altitude_mode());
  fprintf(fp, "    <outerBoundaryIs>\n");
  fprintf(fp, "     <LinearRing>\n");
  fprintf(fp, "      <coordinates>\n");
  fprintf(fp, "       %.4f,%.4f,7000\n",
      datapool->near_start_lon, datapool->near_start_lat);
  fprintf(fp, "       %.4f,%.4f,7000\n",
      datapool->far_start_lon, datapool->far_start_lat);
  fprintf(fp, "       %.4f,%.4f,7000\n",
      datapool->far_end_lon, datapool->far_end_lat);
  fprintf(fp, "       %.4f,%.4f,7000\n",
      datapool->near_end_lon, datapool->near_end_lat);
  fprintf(fp, "       %.4f,%.4f,7000\n",
      datapool->near_start_lon, datapool->near_start_lat);
  fprintf(fp, "      </coordinates>\n");
  fprintf(fp, "     </LinearRing>\n");
  fprintf(fp, "    </outerBoundaryIs>\n");
  fprintf(fp, "  </Polygon>\n");
  fprintf(fp, "</Placemark>\n");
}
Example #19
0
File: main.cpp Project: CCJY/coliru
int main() {
    constexpr char_array ver = version_string();
    std::cout << ver.c_str() << '\n';
}
Example #20
0
DWORD CrashExceptionHandler (qboolean iswatchdog, DWORD exceptionCode, LPEXCEPTION_POINTERS exceptionInfo)
{
	char dumpPath[1024];
	HANDLE hProc = GetCurrentProcess();
	DWORD procid = GetCurrentProcessId();
	HANDLE dumpfile;
	HMODULE hDbgHelp;
	MINIDUMPWRITEDUMP fnMiniDumpWriteDump;
	HMODULE hKernel;
	BOOL (WINAPI *pIsDebuggerPresent)(void);

	DWORD (WINAPI *pSymSetOptions)(DWORD SymOptions);
	BOOL (WINAPI *pSymInitialize)(HANDLE hProcess, PSTR UserSearchPath, BOOL fInvadeProcess);
	BOOL (WINAPI *pSymFromAddr)(HANDLE hProcess, DWORD64 Address, PDWORD64 Displacement, PSYMBOL_INFO Symbol);

#ifdef _WIN64
#define DBGHELP_POSTFIX "64"
	BOOL (WINAPI *pStackWalkX)(DWORD MachineType, HANDLE hProcess, HANDLE hThread, LPSTACKFRAME64 StackFrame, PVOID ContextRecord, PREAD_PROCESS_MEMORY_ROUTINE64 ReadMemoryRoutine, PFUNCTION_TABLE_ACCESS_ROUTINE64 FunctionTableAccessRoutine, PGET_MODULE_BASE_ROUTINE64 GetModuleBaseRoutine, PTRANSLATE_ADDRESS_ROUTINE64 TranslateAddress);
	PVOID (WINAPI *pSymFunctionTableAccessX)(HANDLE hProcess, DWORD64 AddrBase);
	DWORD64 (WINAPI *pSymGetModuleBaseX)(HANDLE hProcess, DWORD64 qwAddr);
	BOOL (WINAPI *pSymGetLineFromAddrX)(HANDLE hProcess, DWORD64 qwAddr, PDWORD pdwDisplacement, PIMAGEHLP_LINE64 Line64);
	BOOL (WINAPI *pSymGetModuleInfoX)(HANDLE hProcess, DWORD64 qwAddr, PIMAGEHLP_MODULE64 ModuleInfo);
	#define STACKFRAMEX STACKFRAME64
	#define IMAGEHLP_LINEX IMAGEHLP_LINE64
	#define IMAGEHLP_MODULEX IMAGEHLP_MODULE64
#else
#define DBGHELP_POSTFIX ""
	BOOL (WINAPI *pStackWalkX)(DWORD MachineType, HANDLE hProcess, HANDLE hThread, LPSTACKFRAME StackFrame, PVOID ContextRecord, PREAD_PROCESS_MEMORY_ROUTINE ReadMemoryRoutine, PFUNCTION_TABLE_ACCESS_ROUTINE FunctionTableAccessRoutine, PGET_MODULE_BASE_ROUTINE GetModuleBaseRoutine, PTRANSLATE_ADDRESS_ROUTINE TranslateAddress);
	PVOID (WINAPI *pSymFunctionTableAccessX)(HANDLE hProcess, DWORD AddrBase);
	DWORD (WINAPI *pSymGetModuleBaseX)(HANDLE hProcess, DWORD dwAddr);
	BOOL (WINAPI *pSymGetLineFromAddrX)(HANDLE hProcess, DWORD dwAddr, PDWORD pdwDisplacement, PIMAGEHLP_LINE Line);
	BOOL (WINAPI *pSymGetModuleInfoX)(HANDLE hProcess, DWORD dwAddr, PIMAGEHLP_MODULE ModuleInfo);
	#define STACKFRAMEX STACKFRAME
	#define IMAGEHLP_LINEX IMAGEHLP_LINE
	#define IMAGEHLP_MODULEX IMAGEHLP_MODULE
#endif
	dllfunction_t debughelpfuncs[] =
	{
		{(void*)&pSymFromAddr,				"SymFromAddr"},
		{(void*)&pSymSetOptions,			"SymSetOptions"},
		{(void*)&pSymInitialize,			"SymInitialize"},
		{(void*)&pStackWalkX,				"StackWalk"DBGHELP_POSTFIX},
		{(void*)&pSymFunctionTableAccessX,	"SymFunctionTableAccess"DBGHELP_POSTFIX},
		{(void*)&pSymGetModuleBaseX,		"SymGetModuleBase"DBGHELP_POSTFIX},
		{(void*)&pSymGetLineFromAddrX,		"SymGetLineFromAddr"DBGHELP_POSTFIX},
		{(void*)&pSymGetModuleInfoX,		"SymGetModuleInfo"DBGHELP_POSTFIX},
		{NULL, NULL}
	};

		switch(exceptionCode)
	{
	case EXCEPTION_ACCESS_VIOLATION:
	case EXCEPTION_DATATYPE_MISALIGNMENT:
	case EXCEPTION_BREAKPOINT:
	case EXCEPTION_SINGLE_STEP:
	case EXCEPTION_ARRAY_BOUNDS_EXCEEDED:
	case EXCEPTION_FLT_DENORMAL_OPERAND:
	case EXCEPTION_FLT_DIVIDE_BY_ZERO:
	case EXCEPTION_FLT_INEXACT_RESULT:
	case EXCEPTION_FLT_INVALID_OPERATION:
	case EXCEPTION_FLT_OVERFLOW:
	case EXCEPTION_FLT_STACK_CHECK:
	case EXCEPTION_FLT_UNDERFLOW:
	case EXCEPTION_INT_DIVIDE_BY_ZERO:
	case EXCEPTION_INT_OVERFLOW:
	case EXCEPTION_PRIV_INSTRUCTION:
	case EXCEPTION_IN_PAGE_ERROR:
	case EXCEPTION_ILLEGAL_INSTRUCTION:
	case EXCEPTION_NONCONTINUABLE_EXCEPTION:
	case EXCEPTION_STACK_OVERFLOW:
	case EXCEPTION_INVALID_DISPOSITION:
	case EXCEPTION_GUARD_PAGE:
	case EXCEPTION_INVALID_HANDLE:
//	case EXCEPTION_POSSIBLE_DEADLOCK:
		break;
	default:
		//because windows is a steaming pile of s***e, we have to ignore any software-generated exceptions, because most of them are not in fact fatal, *EVEN IF THEY CLAIM TO BE NON-CONTINUABLE*
		return exceptionCode;
	}

	hKernel = LoadLibrary ("kernel32");
	pIsDebuggerPresent = (void*)GetProcAddress(hKernel, "IsDebuggerPresent");

	if (pIsDebuggerPresent && pIsDebuggerPresent())
		return EXCEPTION_CONTINUE_SEARCH;
#ifdef GLQUAKE
	GLVID_Crashed();
#endif

#if 1//ndef _MSC_VER
	{
		if (Sys_LoadLibrary("DBGHELP", debughelpfuncs))
		{
			STACKFRAMEX stack;
			CONTEXT *pcontext = exceptionInfo->ContextRecord;
			IMAGEHLP_LINEX line;
			IMAGEHLP_MODULEX module;
			struct
			{
				SYMBOL_INFO sym;
				char name[1024];
			} sym;
			int frameno;
			char stacklog[8192];
			int logpos, logstart;
			char *logline;

			stacklog[logpos=0] = 0;

			pSymInitialize(hProc, NULL, TRUE);
			pSymSetOptions(SYMOPT_LOAD_LINES);

			memset(&stack, 0, sizeof(stack));
#ifdef _WIN64
			#define IMAGE_FILE_MACHINE_THIS IMAGE_FILE_MACHINE_AMD64
			stack.AddrPC.Mode = AddrModeFlat;
			stack.AddrPC.Offset = pcontext->Rip;
			stack.AddrFrame.Mode = AddrModeFlat;
			stack.AddrFrame.Offset = pcontext->Rbp;
			stack.AddrStack.Mode = AddrModeFlat;
			stack.AddrStack.Offset = pcontext->Rsp;
#else
			#define IMAGE_FILE_MACHINE_THIS IMAGE_FILE_MACHINE_I386
			stack.AddrPC.Mode = AddrModeFlat;
			stack.AddrPC.Offset = pcontext->Eip;
			stack.AddrFrame.Mode = AddrModeFlat;
			stack.AddrFrame.Offset = pcontext->Ebp;
			stack.AddrStack.Mode = AddrModeFlat;
			stack.AddrStack.Offset = pcontext->Esp;
#endif

			Q_strncpyz(stacklog+logpos, FULLENGINENAME " or dependancy has crashed. The following stack dump been copied to your windows clipboard.\n"
#ifdef _MSC_VER
				"Would you like to generate a core dump too?\n"
#endif
				"\n", sizeof(stacklog)-logpos);
			logstart = logpos += strlen(stacklog+logpos);

			//so I know which one it is
#if defined(DEBUG) || defined(_DEBUG)
	#define BUILDDEBUGREL "Debug"
#else
	#define BUILDDEBUGREL "Optimised"
#endif
#ifdef MINIMAL
	#define BUILDMINIMAL "Min"
#else
	#define BUILDMINIMAL ""
#endif
#if defined(GLQUAKE) && !defined(D3DQUAKE)
	#define BUILDTYPE "GL"
#elif !defined(GLQUAKE) && defined(D3DQUAKE)
	#define BUILDTYPE "D3D"
#else
	#define BUILDTYPE "Merged"
#endif

			Q_snprintfz(stacklog+logpos, sizeof(stacklog)-logpos, "Build: %s %s %s: %s\r\n", BUILDDEBUGREL, PLATFORM, BUILDMINIMAL BUILDTYPE, version_string());
			logpos += strlen(stacklog+logpos);

			for(frameno = 0; ; frameno++)
			{
				DWORD64 symdisp;
				DWORD linedisp;
				DWORD_PTR symaddr;
				if (!pStackWalkX(IMAGE_FILE_MACHINE_THIS, hProc, GetCurrentThread(), &stack, pcontext, NULL, pSymFunctionTableAccessX, pSymGetModuleBaseX, NULL))
					break;
				memset(&module, 0, sizeof(module));
				module.SizeOfStruct = sizeof(module);
				pSymGetModuleInfoX(hProc, stack.AddrPC.Offset, &module);
				memset(&line, 0, sizeof(line));
				line.SizeOfStruct = sizeof(line);
				symdisp = 0;
				memset(&sym, 0, sizeof(sym));
				sym.sym.MaxNameLen = sizeof(sym.name);
				symaddr = stack.AddrPC.Offset;
				sym.sym.SizeOfStruct = sizeof(sym.sym);
				if (pSymFromAddr(hProc, symaddr, &symdisp, &sym.sym))
				{
					if (pSymGetLineFromAddrX(hProc, stack.AddrPC.Offset, &linedisp, &line))
						logline = va("%-20s - %s:%i (%s)\r\n", sym.sym.Name, line.FileName, (int)line.LineNumber, module.LoadedImageName);
					else
						logline = va("%-20s+%#x (%s)\r\n", sym.sym.Name, (unsigned int)symdisp, module.LoadedImageName);
				}
				else
					logline = va("0x%p (%s)\r\n", (void*)(DWORD_PTR)stack.AddrPC.Offset, module.LoadedImageName);
				Q_strncpyz(stacklog+logpos, logline, sizeof(stacklog)-logpos);
				logpos += strlen(stacklog+logpos);
				if (logpos+1 >= sizeof(stacklog))
					break;
			}
			Sys_Printf("%s", stacklog+logstart);
			return EXCEPTION_EXECUTE_HANDLER;
		}
		else
		{
			Sys_Printf("We crashed.\nUnable to load dbghelp library. Stack info is not available\n");
			return EXCEPTION_EXECUTE_HANDLER;
		}
	}
#endif


	hDbgHelp = LoadLibrary ("DBGHELP");
	if (hDbgHelp)
		fnMiniDumpWriteDump = (MINIDUMPWRITEDUMP)GetProcAddress (hDbgHelp, "MiniDumpWriteDump");
	else
		fnMiniDumpWriteDump = NULL;

	if (fnMiniDumpWriteDump)
	{
		if (MessageBox(NULL, "KABOOM! We crashed!\nBlame the monkey in the corner.\nI hope you saved your work.\nWould you like to take a dump now?", DISTRIBUTION " Sucks", MB_ICONSTOP|MB_YESNO) != IDYES)
		{
			if (pIsDebuggerPresent ())
			{
				//its possible someone attached a debugger while we were showing that message
				return EXCEPTION_CONTINUE_SEARCH;
			}
			return EXCEPTION_EXECUTE_HANDLER;
		}

		/*take a dump*/
		GetTempPath (sizeof(dumpPath)-16, dumpPath);
		Q_strncatz(dumpPath, DISTRIBUTION"CrashDump.dmp", sizeof(dumpPath));
		dumpfile = CreateFile (dumpPath, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
		if (dumpfile)
		{
			MINIDUMP_EXCEPTION_INFORMATION crashinfo;
			crashinfo.ClientPointers = TRUE;
			crashinfo.ExceptionPointers = exceptionInfo;
			crashinfo.ThreadId = GetCurrentThreadId ();
			if (fnMiniDumpWriteDump(hProc, procid, dumpfile, MiniDumpWithIndirectlyReferencedMemory|MiniDumpWithDataSegs, &crashinfo, NULL, NULL))
			{
				CloseHandle(dumpfile);
				MessageBox(NULL, va("You can find the crashdump at\n%s\nPlease send this file to someone.\n\nWarning: sensitive information (like your current user name) might be present in the dump.\nYou will probably want to compress it.", dumpPath), DISTRIBUTION " Sucks", 0);
				return EXCEPTION_EXECUTE_HANDLER;
			}
		}
	}
	else
		MessageBox(NULL, "Kaboom! Sorry. No MiniDumpWriteDump function.", FULLENGINENAME " Sucks", 0);
	return EXCEPTION_EXECUTE_HANDLER;
}