コード例 #1
0
ファイル: xfixes.c プロジェクト: 4eremuxa/xserver
static int
ProcXFixesQueryVersion(ClientPtr client)
{
    XFixesClientPtr pXFixesClient = GetXFixesClient (client);
    xXFixesQueryVersionReply rep;
    REQUEST(xXFixesQueryVersionReq);

    REQUEST_SIZE_MATCH(xXFixesQueryVersionReq);
    memset(&rep, 0, sizeof(xXFixesQueryVersionReply));
    rep.type = X_Reply;
    rep.length = 0;
    rep.sequenceNumber = client->sequence;

    if (version_compare(stuff->majorVersion, stuff->minorVersion,
                        SERVER_XFIXES_MAJOR_VERSION, SERVER_XFIXES_MAJOR_VERSION) < 0)
    {
	rep.majorVersion = stuff->majorVersion;
	rep.minorVersion = stuff->minorVersion;
    } else {
	rep.majorVersion = SERVER_XFIXES_MAJOR_VERSION;
        rep.minorVersion = SERVER_XFIXES_MINOR_VERSION;
    }

    pXFixesClient->major_version = rep.majorVersion;
    pXFixesClient->minor_version = rep.minorVersion;
    if (client->swapped) {
	swaps(&rep.sequenceNumber);
	swapl(&rep.length);
	swapl(&rep.majorVersion);
	swapl(&rep.minorVersion);
    }
    WriteToClient(client, sizeof(xXFixesQueryVersionReply), (char *)&rep);
    return Success;
}
コード例 #2
0
ファイル: dpkg.c プロジェクト: BackupTheBerlios/wl530g-svn
int test_version(const unsigned int version1, const unsigned int version2, const unsigned int operator)
{
	const int version_result = version_compare(version1, version2);
	switch(operator) {
		case (VER_ANY):
			return(TRUE);
		case (VER_EQUAL):
			if (version_result == 0) {
				return(TRUE);
			}
			break;
		case (VER_LESS):
			if (version_result < 0) {
				return(TRUE);
			}
			break;
		case (VER_LESS_EQUAL):
			if (version_result <= 0) {
				return(TRUE);
			}
			break;
		case (VER_MORE):
			if (version_result > 0) {
				return(TRUE);
			}
			break;
		case (VER_MORE_EQUAL):
			if (version_result >= 0) {
				return(TRUE);
			}
			break;
	}
	return(FALSE);
}
コード例 #3
0
ファイル: rrdispatch.c プロジェクト: theqvd/vcxsrv
static int
ProcRRQueryVersion(ClientPtr client)
{
    xRRQueryVersionReply rep;
    REQUEST(xRRQueryVersionReq);
    rrClientPriv(client);

    REQUEST_SIZE_MATCH(xRRQueryVersionReq);
    pRRClient->major_version = stuff->majorVersion;
    pRRClient->minor_version = stuff->minorVersion;
    memset(&rep, 0, sizeof(rep));
    rep.type = X_Reply;
    rep.sequenceNumber = client->sequence;
    rep.length = 0;

    if (version_compare(stuff->majorVersion, stuff->minorVersion,
                        SERVER_RANDR_MAJOR_VERSION,
                        SERVER_RANDR_MINOR_VERSION) < 0) {
        rep.majorVersion = stuff->majorVersion;
        rep.minorVersion = stuff->minorVersion;
    }
    else {
        rep.majorVersion = SERVER_RANDR_MAJOR_VERSION;
        rep.minorVersion = SERVER_RANDR_MINOR_VERSION;
    }

    if (client->swapped) {
        swaps(&rep.sequenceNumber);
        swapl(&rep.length);
        swapl(&rep.majorVersion);
        swapl(&rep.minorVersion);
    }
    WriteToClient(client, sizeof(xRRQueryVersionReply), &rep);
    return Success;
}
コード例 #4
0
ファイル: rrdispatch.c プロジェクト: theqvd/vcxsrv
Bool
RRClientKnowsRates(ClientPtr pClient)
{
    rrClientPriv(pClient);

    return version_compare(pRRClient->major_version, pRRClient->minor_version,
                           1, 1) >= 0;
}
コード例 #5
0
ファイル: update.c プロジェクト: AirDev/linphone-android
static int version_compare(const char *v1, const char *v2){
	char n1[16];
	char n2[16];
	int ret;
	if (*v1=='\0' && *v2=='\0') return 0;
	v1+=copytilldot(n1,v1);
	v2+=copytilldot(n2,v2);
	ms_message("Comparing %s <> %s",n1,n2);
	ret=strcmp(n1,n2);
	if (ret==0) return version_compare(v1,v2);
	else return ret;
}
コード例 #6
0
ファイル: updatechecker.c プロジェクト: DaveMDS/geany-plugins
static void update_check_result_cb(SoupSession *session,
    SoupMessage *msg, gpointer user_data)
{
    gint type = GPOINTER_TO_INT(user_data);

    /* Checking whether we did get a valid (200) result */
    if (msg->status_code == 200)
    {
        const gchar *remote_version = msg->response_body->data;
        if (version_compare(remote_version) == TRUE)
        {
            gchar *update_msg = g_strdup_printf(
                _("There is a more recent version of Geany available: %s"),
                remote_version);
            dialogs_show_msgbox(GTK_MESSAGE_INFO, "%s", update_msg);
            g_message("%s", update_msg);
            g_free(update_msg);
        }
        else
        {
            const gchar *no_update_msg = _("No newer Geany version available.");
            if (type == UPDATECHECK_MANUAL)
            {
                dialogs_show_msgbox(GTK_MESSAGE_INFO, "%s", no_update_msg);
            }
            else
            {
                msgwin_status_add("%s", no_update_msg);
            }
            g_message("%s", no_update_msg);
        }
    }
    else
    {
        gchar *error_message = g_strdup_printf(
            _("Unable to perform version check.\nError code: %d \nError message: »%s«"),
            msg->status_code, msg->reason_phrase);
        if (type == UPDATECHECK_MANUAL)
        {
            dialogs_show_msgbox(GTK_MESSAGE_ERROR, "%s", error_message);
        }
        else
        {
            msgwin_status_add("%s", error_message);
        }
        g_warning("Connection error: Code: %d; Message: %s", msg->status_code, msg->reason_phrase);
        g_free(error_message);
    }
}
コード例 #7
0
ファイル: update.c プロジェクト: AirDev/linphone-android
static void *check_for_new_version(void *d){
	const char *version_url=(const char *)d;
	char version[256];
	if (linphone_gtk_get_new_version(version_url,version,sizeof(version))==0){
		if (version_compare(version,LINPHONE_VERSION)>0){
			const char *download_site=linphone_gtk_get_ui_config("download_site",NULL);
			if (download_site)   {
				gdk_threads_enter();
				g_idle_add((GSourceFunc)popup_new_version,(gpointer)download_site);
				gdk_threads_leave();
			}
		}else{
			if (linphone_gtk_get_ui_config_int("update_check_menu",0)){
				gdk_threads_enter();
				g_idle_add((GSourceFunc)popup_version_ok,NULL);
				gdk_threads_leave();
			}
		}
	}
	return NULL;
}
コード例 #8
0
ファイル: lalapps.c プロジェクト: SwethaPBhagwat/lalsuite
/**
 * Function that assembles a default VCS info/version string from LAL and LALapps
 * Also checks LAL header<>library version consistency and returns NULL on error.
 *
 * The VCS version string is allocated here and must be freed by caller.
 */
char *
XLALGetVersionString( int level )
{
    char lal_info[1024];
#ifdef HAVE_LIBLALFRAME
    char lalframe_info[1024];
#endif
#ifdef HAVE_LIBLALMETAIO
    char lalmetaio_info[1024];
#endif
#ifdef HAVE_LIBLALXML
    char lalxml_info[1024];
#endif
#ifdef HAVE_LIBLALSIMULATION
    char lalsimulation_info[1024];
#endif
#ifdef HAVE_LIBLALBURST
    char lalburst_info[1024];
#endif
#ifdef HAVE_LIBLALINSPIRAL
    char lalinspiral_info[1024];
#endif
#ifdef HAVE_LIBLALPULSAR
    char lalpulsar_info[1024];
#endif
#ifdef HAVE_LIBLALINFERENCE
    char lalinference_info[1024];
#endif
#ifdef HAVE_LIBLALSTOCHASTIC
    char lalstochastic_info[1024];
#endif
    char lalapps_info[2048];
    char *ret;
    const char delim[] = ":";
    char *tree_status, *orig_tree_status;

    if ((LAL_VERSION_DEVEL != 0) || (LALAPPS_VERSION_DEVEL != 0))
    {
        /* check lal version consistency */
        if (version_compare(__func__, &lalVCSInfoHeader, &lalVCSInfo))
            exit(1);
    }

#ifdef HAVE_LIBLALFRAME
    if ((LALFRAME_VERSION_DEVEL != 0) || (LALAPPS_VERSION_DEVEL != 0))
    {
        /* check lalframe version consistency */
        if (version_compare(__func__, &lalFrameVCSInfoHeader, &lalFrameVCSInfo))
            exit(1);
    }
#endif

#ifdef HAVE_LIBLALMETAIO
    if ((LALMETAIO_VERSION_DEVEL != 0) || (LALAPPS_VERSION_DEVEL != 0))
    {
        /* check lalmetaio version consistency */
        if (version_compare(__func__, &lalMetaIOVCSInfoHeader, &lalMetaIOVCSInfo))
            exit(1);
    }
#endif

#ifdef HAVE_LIBLALSIMULATION
    if ((LALSIMULATION_VERSION_DEVEL != 0) || (LALSIMULATION_VERSION_DEVEL != 0))
    {
        /* check lalsimulaton version consistency */
        if (version_compare(__func__, &lalSimulationVCSInfoHeader, &lalSimulationVCSInfo))
            exit(1);
    }
#endif

#ifdef HAVE_LIBLALXML
    if ((LALXML_VERSION_DEVEL != 0) || (LALAPPS_VERSION_DEVEL != 0))
    {
        /* check lalxml version consistency */
        if (version_compare(__func__, &lalXMLVCSInfoHeader, &lalXMLVCSInfo))
            exit(1);
    }
#endif

#ifdef HAVE_LIBLALBURST
    if ((LALBURST_VERSION_DEVEL != 0) || (LALAPPS_VERSION_DEVEL != 0))
    {
        /* check lalburst version consistency */
        if (version_compare(__func__, &lalBurstVCSInfoHeader, &lalBurstVCSInfo))
            exit(1);
    }
#endif

#ifdef HAVE_LIBLALINSPIRAL
    if ((LALINSPIRAL_VERSION_DEVEL != 0) || (LALAPPS_VERSION_DEVEL != 0))
    {
        /* check lalinspiral version consistency */
        if (version_compare(__func__, &lalInspiralVCSInfoHeader, &lalInspiralVCSInfo))
            exit(1);
    }
#endif

#ifdef HAVE_LIBLALPULSAR
    if ((LALPULSAR_VERSION_DEVEL != 0) || (LALAPPS_VERSION_DEVEL != 0))
    {
        /* check lalpulsar version consistency */
        if (version_compare(__func__, &lalPulsarVCSInfoHeader, &lalPulsarVCSInfo))
            exit(1);
    }
#endif

#ifdef HAVE_LIBLALINFERENCE
    if ((LALINFERENCE_VERSION_DEVEL != 0) || (LALAPPS_VERSION_DEVEL != 0))
    {
        /* check lalinference version consistency */
        if (version_compare(__func__, &lalInferenceVCSInfoHeader, &lalInferenceVCSInfo))
            exit(1);
    }
#endif

#ifdef HAVE_LIBLALSTOCHASTIC
    if ((LALSTOCHASTIC_VERSION_DEVEL != 0) || (LALAPPS_VERSION_DEVEL != 0))
    {
        /* check lalstochastic version consistency */
        if (version_compare(__func__, &lalStochasticVCSInfoHeader, &lalStochasticVCSInfo))
            exit(1);
    }
#endif

    switch(level)
    {
    case 0:
        /* get lal info */
        tree_status = orig_tree_status = XLALStringDuplicate(lalVCSInfo.vcsStatus);
        snprintf(lal_info, sizeof(lal_info),
                 "%%%% LAL: %s (%s %s)\n", lalVCSInfo.version, \
                 strtok(tree_status, delim), lalVCSInfo.vcsId);
        XLALFree(orig_tree_status);

#ifdef HAVE_LIBLALFRAME
        /* get lalframe info */
        tree_status = orig_tree_status = XLALStringDuplicate(lalFrameVCSInfo.vcsStatus);
        snprintf(lalframe_info, sizeof(lalframe_info),
                 "%%%% LALFrame: %s (%s %s)\n", lalFrameVCSInfo.version, \
                 strtok(tree_status, delim), lalFrameVCSInfo.vcsId);
        XLALFree(orig_tree_status);
#endif

#ifdef HAVE_LIBLALMETAIO
        /* get lalmetaio info */
        tree_status = orig_tree_status = XLALStringDuplicate(lalMetaIOVCSInfo.vcsStatus);
        snprintf(lalmetaio_info, sizeof(lalmetaio_info),
                 "%%%% LALMetaIO: %s (%s %s)\n", lalMetaIOVCSInfo.version, \
                 strtok(tree_status, delim), lalMetaIOVCSInfo.vcsId);
        XLALFree(orig_tree_status);
#endif

#ifdef HAVE_LIBLALXML
        /* get lalxml info */
        tree_status = orig_tree_status = XLALStringDuplicate(lalXMLVCSInfo.vcsStatus);
        snprintf(lalxml_info, sizeof(lalxml_info),
                 "%%%% LALXML: %s (%s %s)\n", lalXMLVCSInfo.version, \
                 strtok(tree_status, delim), lalXMLVCSInfo.vcsId);
        XLALFree(orig_tree_status);
#endif

#ifdef HAVE_LIBLALSIMULATION
        /* get lalsimulation info */
        tree_status = orig_tree_status = XLALStringDuplicate(lalSimulationVCSInfo.vcsStatus);
        snprintf(lalsimulation_info, sizeof(lalsimulation_info),
                 "%%%% LALSimulation: %s (%s %s)\n", lalSimulationVCSInfo.version, \
                 strtok(tree_status, delim), lalSimulationVCSInfo.vcsId);
        XLALFree(orig_tree_status);
#endif

#ifdef HAVE_LIBLALBURST
        /* get lalburst info */
        tree_status = orig_tree_status = XLALStringDuplicate(lalBurstVCSInfo.vcsStatus);
        snprintf(lalburst_info, sizeof(lalburst_info),
                 "%%%% LALBurst: %s (%s %s)\n", lalBurstVCSInfo.version, \
                 strtok(tree_status, delim), lalBurstVCSInfo.vcsId);
        XLALFree(orig_tree_status);
#endif

#ifdef HAVE_LIBLALINSPIRAL
        /* get lalinspiral info */
        tree_status = orig_tree_status = XLALStringDuplicate(lalInspiralVCSInfo.vcsStatus);
        snprintf(lalinspiral_info, sizeof(lalinspiral_info),
                 "%%%% LALInspiral: %s (%s %s)\n", lalInspiralVCSInfo.version, \
                 strtok(tree_status, delim), lalInspiralVCSInfo.vcsId);
        XLALFree(orig_tree_status);
#endif

#ifdef HAVE_LIBLALPULSAR
        /* get lalpulsar info */
        tree_status = orig_tree_status = XLALStringDuplicate(lalPulsarVCSInfo.vcsStatus);
        snprintf(lalpulsar_info, sizeof(lalpulsar_info),
                 "%%%% LALPulsar: %s (%s %s)\n", lalPulsarVCSInfo.version, \
                 strtok(tree_status, delim), lalPulsarVCSInfo.vcsId);
        XLALFree(orig_tree_status);
#endif

#ifdef HAVE_LIBLALINFERENCE
        /* get lalinference info */
        tree_status = orig_tree_status = XLALStringDuplicate(lalInferenceVCSInfo.vcsStatus);
        snprintf(lalinference_info, sizeof(lalinference_info),
                 "%%%% LALInference: %s (%s %s)\n", lalInferenceVCSInfo.version, \
                 strtok(tree_status, delim), lalInferenceVCSInfo.vcsId);
        XLALFree(orig_tree_status);
#endif

#ifdef HAVE_LIBLALSTOCHASTIC
        /* get lalstochastic info */
        tree_status = orig_tree_status = XLALStringDuplicate(lalStochasticVCSInfo.vcsStatus);
        snprintf(lalstochastic_info, sizeof(lalstochastic_info),
                 "%%%% LALStochastic: %s (%s %s)\n", lalStochasticVCSInfo.version, \
                 strtok(tree_status, delim), lalStochasticVCSInfo.vcsId);
        XLALFree(orig_tree_status);
#endif

        /* get lalapps info */
        tree_status = orig_tree_status = XLALStringDuplicate(lalAppsVCSInfo.vcsStatus);
        snprintf(lalapps_info, sizeof(lalapps_info),
                 "%%%% LALApps: %s (%s %s)\n", lalAppsVCSInfo.version, \
                 strtok(tree_status, delim), lalAppsVCSInfo.vcsId);
        XLALFree(orig_tree_status);

        break;

    default:
        /* get lal info */
        snprintf( lal_info, sizeof(lal_info),
                  "%%%% LAL-Version: %s\n"
                  "%%%% LAL-Id: %s\n"
                  "%%%% LAL-Date: %s\n"
                  "%%%% LAL-Branch: %s\n"
                  "%%%% LAL-Tag: %s\n"
                  "%%%% LAL-Status: %s\n"
                  "%%%% LAL-Configure Date: %s\n"
                  "%%%% LAL-Configure Arguments: %s\n",
                  lalVCSInfo.version,
                  lalVCSInfo.vcsId,
                  lalVCSInfo.vcsDate,
                  lalVCSInfo.vcsBranch,
                  lalVCSInfo.vcsTag,
                  lalVCSInfo.vcsStatus,
                  lalConfigureDate ,
                  lalConfigureArgs );

#ifdef HAVE_LIBLALFRAME
        /* get lalframe info */
        snprintf( lalframe_info, sizeof(lalframe_info),
                  "%%%% LALFrame-Version: %s\n"
                  "%%%% LALFrame-Id: %s\n"
                  "%%%% LALFrame-Date: %s\n"
                  "%%%% LALFrame-Branch: %s\n"
                  "%%%% LALFrame-Tag: %s\n"
                  "%%%% LALFrame-Status: %s\n"
                  "%%%% LALFrame-Configure Date: %s\n"
                  "%%%% LALApps-Configure Arguments: %s\n",
                  lalFrameVCSInfo.version,
                  lalFrameVCSInfo.vcsId,
                  lalFrameVCSInfo.vcsDate,
                  lalFrameVCSInfo.vcsBranch,
                  lalFrameVCSInfo.vcsTag,
                  lalFrameVCSInfo.vcsStatus,
                  lalFrameConfigureDate ,
                  lalFrameConfigureArgs );
#endif

#ifdef HAVE_LIBLALMETAIO
        /* get lalmetaio info */
        snprintf( lalmetaio_info, sizeof(lalmetaio_info),
                  "%%%% LALMetaIO-Version: %s\n"
                  "%%%% LALMetaIO-Id: %s\n"
                  "%%%% LALMetaIO-Date: %s\n"
                  "%%%% LALMetaIO-Branch: %s\n"
                  "%%%% LALMetaIO-Tag: %s\n"
                  "%%%% LALMetaIO-Status: %s\n"
                  "%%%% LALMetaIO-Configure Date: %s\n"
                  "%%%% LALMetaIO-Configure Arguments: %s\n",
                  lalMetaIOVCSInfo.version,
                  lalMetaIOVCSInfo.vcsId,
                  lalMetaIOVCSInfo.vcsDate,
                  lalMetaIOVCSInfo.vcsBranch,
                  lalMetaIOVCSInfo.vcsTag,
                  lalMetaIOVCSInfo.vcsStatus,
                  lalMetaIOConfigureDate ,
                  lalMetaIOConfigureArgs );
#endif

#ifdef HAVE_LIBLALXML
        /* get lalxml info */
        snprintf( lalxml_info, sizeof(lalxml_info),
                  "%%%% LALXML-Version: %s\n"
                  "%%%% LALXML-Id: %s\n"
                  "%%%% LALXML-Date: %s\n"
                  "%%%% LALXML-Branch: %s\n"
                  "%%%% LALXML-Tag: %s\n"
                  "%%%% LALXML-Status: %s\n"
                  "%%%% LALXML-Configure Date: %s\n"
                  "%%%% LALXML-Configure Arguments: %s\n",
                  lalXMLVCSInfo.version,
                  lalXMLVCSInfo.vcsId,
                  lalXMLVCSInfo.vcsDate,
                  lalXMLVCSInfo.vcsBranch,
                  lalXMLVCSInfo.vcsTag,
                  lalXMLVCSInfo.vcsStatus,
                  lalXMLConfigureDate ,
                  lalXMLConfigureArgs );
#endif

#ifdef HAVE_LIBLALSIMULATION
        /* get lalsimulation info */
        snprintf( lalsimulation_info, sizeof(lalsimulation_info),
                  "%%%% LALSimulation-Version: %s\n"
                  "%%%% LALSimulation-Id: %s\n"
                  "%%%% LALSimulation-Date: %s\n"
                  "%%%% LALSimulation-Branch: %s\n"
                  "%%%% LALSimulation-Tag: %s\n"
                  "%%%% LALSimulation-Status: %s\n"
                  "%%%% LALSimulation-Configure Date: %s\n"
                  "%%%% LALSimulation-Configure Arguments: %s\n",
                  lalSimulationVCSInfo.version,
                  lalSimulationVCSInfo.vcsId,
                  lalSimulationVCSInfo.vcsDate,
                  lalSimulationVCSInfo.vcsBranch,
                  lalSimulationVCSInfo.vcsTag,
                  lalSimulationVCSInfo.vcsStatus,
                  lalSimulationConfigureDate ,
                  lalSimulationConfigureArgs );
#endif

#ifdef HAVE_LIBLALBURST
        /* get lalburst info */
        snprintf( lalburst_info, sizeof(lalburst_info),
                  "%%%% LALBurst-Version: %s\n"
                  "%%%% LALBurst-Id: %s\n"
                  "%%%% LALBurst-Date: %s\n"
                  "%%%% LALBurst-Branch: %s\n"
                  "%%%% LALBurst-Tag: %s\n"
                  "%%%% LALBurst-Status: %s\n"
                  "%%%% LALBurst-Configure Date: %s\n"
                  "%%%% LALBurst-Configure Arguments: %s\n",
                  lalBurstVCSInfo.version,
                  lalBurstVCSInfo.vcsId,
                  lalBurstVCSInfo.vcsDate,
                  lalBurstVCSInfo.vcsBranch,
                  lalBurstVCSInfo.vcsTag,
                  lalBurstVCSInfo.vcsStatus,
                  lalBurstConfigureDate ,
                  lalBurstConfigureArgs );
#endif

#ifdef HAVE_LIBLALINSPIRAL
        /* get lalinspiral info */
        snprintf( lalinspiral_info, sizeof(lalinspiral_info),
                  "%%%% LALInspiral-Version: %s\n"
                  "%%%% LALInspiral-Id: %s\n"
                  "%%%% LALInspiral-Date: %s\n"
                  "%%%% LALInspiral-Branch: %s\n"
                  "%%%% LALInspiral-Tag: %s\n"
                  "%%%% LALInspiral-Status: %s\n"
                  "%%%% LALInspiral-Configure Date: %s\n"
                  "%%%% LALInspiral-Configure Arguments: %s\n",
                  lalInspiralVCSInfo.version,
                  lalInspiralVCSInfo.vcsId,
                  lalInspiralVCSInfo.vcsDate,
                  lalInspiralVCSInfo.vcsBranch,
                  lalInspiralVCSInfo.vcsTag,
                  lalInspiralVCSInfo.vcsStatus,
                  lalInspiralConfigureDate ,
                  lalInspiralConfigureArgs );
#endif

#ifdef HAVE_LIBLALPULSAR
        /* get lalpulsar info */
        snprintf( lalpulsar_info, sizeof(lalpulsar_info),
                  "%%%% LALPulsar-Version: %s\n"
                  "%%%% LALPulsar-Id: %s\n"
                  "%%%% LALPulsar-Date: %s\n"
                  "%%%% LALPulsar-Branch: %s\n"
                  "%%%% LALPulsar-Tag: %s\n"
                  "%%%% LALPulsar-Status: %s\n"
                  "%%%% LALPulsar-Configure Date: %s\n"
                  "%%%% LALPulsar-Configure Arguments: %s\n",
                  lalPulsarVCSInfo.version,
                  lalPulsarVCSInfo.vcsId,
                  lalPulsarVCSInfo.vcsDate,
                  lalPulsarVCSInfo.vcsBranch,
                  lalPulsarVCSInfo.vcsTag,
                  lalPulsarVCSInfo.vcsStatus,
                  lalPulsarConfigureDate ,
                  lalPulsarConfigureArgs );
#endif

#ifdef HAVE_LIBLALINFERENCE
        /* get lalinference info */
        snprintf( lalinference_info, sizeof(lalinference_info),
                  "%%%% LALInference-Version: %s\n"
                  "%%%% LALInference-Id: %s\n"
                  "%%%% LALInference-Date: %s\n"
                  "%%%% LALInference-Branch: %s\n"
                  "%%%% LALInference-Tag: %s\n"
                  "%%%% LALInference-Status: %s\n"
                  "%%%% LALInference-Configure Date: %s\n"
                  "%%%% LALInference-Configure Arguments: %s\n",
                  lalInferenceVCSInfo.version,
                  lalInferenceVCSInfo.vcsId,
                  lalInferenceVCSInfo.vcsDate,
                  lalInferenceVCSInfo.vcsBranch,
                  lalInferenceVCSInfo.vcsTag,
                  lalInferenceVCSInfo.vcsStatus,
                  lalInferenceConfigureDate ,
                  lalInferenceConfigureArgs );
#endif

#ifdef HAVE_LIBLALSTOCHASTIC
        /* get lalstochastic info */
        snprintf( lalstochastic_info, sizeof(lalstochastic_info),
                  "%%%% LALStochastic-Version: %s\n"
                  "%%%% LALStochastic-Id: %s\n"
                  "%%%% LALStochastic-Date: %s\n"
                  "%%%% LALStochastic-Branch: %s\n"
                  "%%%% LALStochastic-Tag: %s\n"
                  "%%%% LALStochastic-Status: %s\n"
                  "%%%% LALStochastic-Configure Date: %s\n"
                  "%%%% LALStochastic-Configure Arguments: %s\n",
                  lalStochasticVCSInfo.version,
                  lalStochasticVCSInfo.vcsId,
                  lalStochasticVCSInfo.vcsDate,
                  lalStochasticVCSInfo.vcsBranch,
                  lalStochasticVCSInfo.vcsTag,
                  lalStochasticVCSInfo.vcsStatus,
                  lalStochasticConfigureDate ,
                  lalStochasticConfigureArgs );
#endif

        /* add lalapps info */
        snprintf( lalapps_info, sizeof(lalapps_info),
                  "%%%% LALApps-Version: %s\n"
                  "%%%% LALApps-Id: %s\n"
                  "%%%% LALApps-Date: %s\n"
                  "%%%% LALApps-Branch: %s\n"
                  "%%%% LALApps-Tag: %s\n"
                  "%%%% LALApps-Status: %s\n"
                  "%%%% LALApps-Configure Date: %s\n"
                  "%%%% LALApps-Configure Arguments: %s\n",
                  lalAppsVCSInfo.version,
                  lalAppsVCSInfo.vcsId,
                  lalAppsVCSInfo.vcsDate,
                  lalAppsVCSInfo.vcsBranch,
                  lalAppsVCSInfo.vcsTag,
                  lalAppsVCSInfo.vcsStatus,
                  lalAppsConfigureDate ,
                  lalAppsConfigureArgs );

        break;
    }

    size_t len = strlen(lal_info) + strlen(lalapps_info) + 1;
#ifdef HAVE_LIBLALFRAME
    len += strlen(lalframe_info);
#endif
#ifdef HAVE_LIBLALMETAIO
    len += strlen(lalmetaio_info);
#endif
#ifdef HAVE_LIBLALXML
    len += strlen(lalxml_info);
#endif
#ifdef HAVE_LIBLALSIMULATION
    len += strlen(lalsimulation_info);
#endif
#ifdef HAVE_LIBLALBURST
    len += strlen(lalburst_info);
#endif
#ifdef HAVE_LIBLALINSPIRAL
    len += strlen(lalinspiral_info);
#endif
#ifdef HAVE_LIBLALPULSAR
    len += strlen(lalpulsar_info);
#endif
#ifdef HAVE_LIBLALINFERENCE
    len += strlen(lalinference_info);
#endif
#ifdef HAVE_LIBLALSTOCHASTIC
    len += strlen(lalstochastic_info);
#endif
    if ( (ret = XLALMalloc ( len )) == NULL ) {
        XLALPrintError ("%s: Failed to XLALMalloc(%zu)\n", __func__, len );
        XLAL_ERROR_NULL ( XLAL_ENOMEM );
    }

    strcpy ( ret, lal_info );
#ifdef HAVE_LIBLALFRAME
    strcat ( ret, lalframe_info );
#endif
#ifdef HAVE_LIBLALMETAIO
    strcat ( ret, lalmetaio_info );
#endif
#ifdef HAVE_LIBLALXML
    strcat ( ret, lalxml_info );
#endif
#ifdef HAVE_LIBLALSIMULATION
    strcat ( ret, lalsimulation_info );
#endif
#ifdef HAVE_LIBLALBURST
    strcat ( ret, lalburst_info );
#endif
#ifdef HAVE_LIBLALINSPIRAL
    strcat ( ret, lalinspiral_info );
#endif
#ifdef HAVE_LIBLALPULSAR
    strcat ( ret, lalpulsar_info );
#endif
#ifdef HAVE_LIBLALINFERENCE
    strcat ( ret, lalinference_info );
#endif
#ifdef HAVE_LIBLALSTOCHASTIC
    strcat ( ret, lalstochastic_info );
#endif
    strcat ( ret, lalapps_info );

    return ( ret );

} /* XLALGetVersionString() */
コード例 #9
0
ファイル: changeset.c プロジェクト: rcls/crap
static int version_compare_qsort (const void * AA, const void * BB)
{
    return version_compare (* (version_t * const *) AA,
                            * (version_t * const *) BB);
}
コード例 #10
0
ファイル: xiallowev.c プロジェクト: coffee8651/turbovnc
int
ProcXIAllowEvents(ClientPtr client)
{
    TimeStamp time;
    DeviceIntPtr dev;
    int ret = Success;
    XIClientPtr xi_client;
    Bool have_xi22 = FALSE;

    REQUEST(xXI2_2AllowEventsReq);

    xi_client = dixLookupPrivate(&client->devPrivates, XIClientPrivateKey);

    if (version_compare(xi_client->major_version,
                        xi_client->minor_version, 2, 2) >= 0) {
        REQUEST_AT_LEAST_SIZE(xXI2_2AllowEventsReq);
        have_xi22 = TRUE;
    }
    else {
        REQUEST_SIZE_MATCH(xXIAllowEventsReq);
    }

    ret = dixLookupDevice(&dev, stuff->deviceid, client, DixGetAttrAccess);
    if (ret != Success)
        return ret;

    time = ClientTimeToServerTime(stuff->time);

    switch (stuff->mode) {
    case XIReplayDevice:
        AllowSome(client, time, dev, NOT_GRABBED);
        break;
    case XISyncDevice:
        AllowSome(client, time, dev, FREEZE_NEXT_EVENT);
        break;
    case XIAsyncDevice:
        AllowSome(client, time, dev, THAWED);
        break;
    case XIAsyncPairedDevice:
        if (IsMaster(dev))
            AllowSome(client, time, dev, THAW_OTHERS);
        break;
    case XISyncPair:
        if (IsMaster(dev))
            AllowSome(client, time, dev, FREEZE_BOTH_NEXT_EVENT);
        break;
    case XIAsyncPair:
        if (IsMaster(dev))
            AllowSome(client, time, dev, THAWED_BOTH);
        break;
    case XIRejectTouch:
    case XIAcceptTouch:
    {
        int rc;
        WindowPtr win;

        if (!have_xi22)
            return BadValue;

        rc = dixLookupWindow(&win, stuff->grab_window, client, DixReadAccess);
        if (rc != Success)
            return rc;

        ret = TouchAcceptReject(client, dev, stuff->mode, stuff->touchid,
                                stuff->grab_window, &client->errorValue);
    }
        break;
    default:
        client->errorValue = stuff->mode;
        ret = BadValue;
    }

    return ret;
}
コード例 #11
0
int
ProcXIQueryPointer(ClientPtr client)
{
    int rc;
    xXIQueryPointerReply rep;
    DeviceIntPtr pDev, kbd;
    WindowPtr pWin, t;
    SpritePtr pSprite;
    XkbStatePtr state;
    char *buttons = NULL;
    int buttons_size = 0;       /* size of buttons array */
    XIClientPtr xi_client;
    Bool have_xi22 = FALSE;

    REQUEST(xXIQueryPointerReq);
    REQUEST_SIZE_MATCH(xXIQueryPointerReq);

    /* Check if client is compliant with XInput 2.2 or later. Earlier clients
     * do not know about touches, so we must report emulated button presses. 2.2
     * and later clients are aware of touches, so we don't include emulated
     * button presses in the reply. */
    xi_client = dixLookupPrivate(&client->devPrivates, XIClientPrivateKey);
    if (version_compare(xi_client->major_version,
                        xi_client->minor_version, 2, 2) >= 0)
        have_xi22 = TRUE;

    rc = dixLookupDevice(&pDev, stuff->deviceid, client, DixReadAccess);
    if (rc != Success) {
        client->errorValue = stuff->deviceid;
        return rc;
    }

    if (pDev->valuator == NULL || IsKeyboardDevice(pDev) || (!IsMaster(pDev) && !IsFloating(pDev))) {   /* no attached devices */
        client->errorValue = stuff->deviceid;
        return BadDevice;
    }

    rc = dixLookupWindow(&pWin, stuff->win, client, DixGetAttrAccess);
    if (rc != Success) {
        client->errorValue = stuff->win;
        return rc;
    }

    if (pDev->valuator->motionHintWindow)
        MaybeStopHint(pDev, client);

    if (IsMaster(pDev))
        kbd = GetMaster(pDev, MASTER_KEYBOARD);
    else
        kbd = (pDev->key) ? pDev : NULL;

    pSprite = pDev->spriteInfo->sprite;

    rep = (xXIQueryPointerReply) {
        .repType = X_Reply,
        .RepType = X_XIQueryPointer,
        .sequenceNumber = client->sequence,
        .length = 6,
        .root = (GetCurrentRootWindow(pDev))->drawable.id,
        .root_x = double_to_fp1616(pSprite->hot.x),
        .root_y = double_to_fp1616(pSprite->hot.y),
        .child = None
    };

    if (kbd) {
        state = &kbd->key->xkbInfo->state;
        rep.mods.base_mods = state->base_mods;
        rep.mods.latched_mods = state->latched_mods;
        rep.mods.locked_mods = state->locked_mods;

        rep.group.base_group = state->base_group;
        rep.group.latched_group = state->latched_group;
        rep.group.locked_group = state->locked_group;
    }

    if (pDev->button) {
        int i;

        rep.buttons_len =
            bytes_to_int32(bits_to_bytes(pDev->button->numButtons));
        rep.length += rep.buttons_len;
        buttons = calloc(rep.buttons_len, 4);
        if (!buttons)
            return BadAlloc;
        buttons_size = rep.buttons_len * 4;

        for (i = 1; i < pDev->button->numButtons; i++)
            if (BitIsOn(pDev->button->down, i))
                SetBit(buttons, pDev->button->map[i]);

        if (!have_xi22 && pDev->touch && pDev->touch->buttonsDown > 0)
            SetBit(buttons, pDev->button->map[1]);
    }
    else
        rep.buttons_len = 0;

    if (pSprite->hot.pScreen == pWin->drawable.pScreen) {
        rep.same_screen = xTrue;
        rep.win_x = double_to_fp1616(pSprite->hot.x - pWin->drawable.x);
        rep.win_y = double_to_fp1616(pSprite->hot.y - pWin->drawable.y);
        for (t = pSprite->win; t; t = t->parent)
            if (t->parent == pWin) {
                rep.child = t->drawable.id;
                break;
            }
    }
    else {
        rep.same_screen = xFalse;
        rep.win_x = 0;
        rep.win_y = 0;
    }

#ifdef PANORAMIX
    if (!noPanoramiXExtension) {
        rep.root_x += double_to_fp1616(screenInfo.screens[0]->x);
        rep.root_y += double_to_fp1616(screenInfo.screens[0]->y);
        if (stuff->win == rep.root) {
            rep.win_x += double_to_fp1616(screenInfo.screens[0]->x);
            rep.win_y += double_to_fp1616(screenInfo.screens[0]->y);
        }
    }
#endif

    WriteReplyToClient(client, sizeof(xXIQueryPointerReply), &rep);
    if (buttons)
        WriteToClient(client, buttons_size, buttons);

    free(buttons);

    return Success;
}

/***********************************************************************
 *
 * This procedure writes the reply for the XIQueryPointer function,
 * if the client and server have a different byte ordering.
 *
 */

void
SRepXIQueryPointer(ClientPtr client, int size, xXIQueryPointerReply * rep)
{
    swaps(&rep->sequenceNumber);
    swapl(&rep->length);
    swapl(&rep->root);
    swapl(&rep->child);
    swapl(&rep->root_x);
    swapl(&rep->root_y);
    swapl(&rep->win_x);
    swapl(&rep->win_y);
    swaps(&rep->buttons_len);

    WriteToClient(client, size, rep);
}
コード例 #12
0
ファイル: xfixes.c プロジェクト: Agnesa/xserver
static int
ProcXFixesQueryVersion(ClientPtr client)
{
    XFixesClientPtr pXFixesClient = GetXFixesClient(client);
    xXFixesQueryVersionReply rep = {
        .type = X_Reply,
        .sequenceNumber = client->sequence,
        .length = 0
    };

    REQUEST(xXFixesQueryVersionReq);

    REQUEST_SIZE_MATCH(xXFixesQueryVersionReq);

    if (version_compare(stuff->majorVersion, stuff->minorVersion,
                        SERVER_XFIXES_MAJOR_VERSION,
                        SERVER_XFIXES_MINOR_VERSION) < 0) {
        rep.majorVersion = stuff->majorVersion;
        rep.minorVersion = stuff->minorVersion;
    }
    else {
        rep.majorVersion = SERVER_XFIXES_MAJOR_VERSION;
        rep.minorVersion = SERVER_XFIXES_MINOR_VERSION;
    }

    pXFixesClient->major_version = rep.majorVersion;
    pXFixesClient->minor_version = rep.minorVersion;
    if (client->swapped) {
        swaps(&rep.sequenceNumber);
        swapl(&rep.length);
        swapl(&rep.majorVersion);
        swapl(&rep.minorVersion);
    }
    WriteToClient(client, sizeof(xXFixesQueryVersionReply), &rep);
    return Success;
}

/* Major version controls available requests */
static const int version_requests[] = {
    X_XFixesQueryVersion,       /* before client sends QueryVersion */
    X_XFixesGetCursorImage,     /* Version 1 */
    X_XFixesChangeCursorByName, /* Version 2 */
    X_XFixesExpandRegion,       /* Version 3 */
    X_XFixesShowCursor,         /* Version 4 */
    X_XFixesDestroyPointerBarrier,      /* Version 5 */
};

#define NUM_VERSION_REQUESTS	(sizeof (version_requests) / sizeof (version_requests[0]))

int (*ProcXFixesVector[XFixesNumberRequests]) (ClientPtr) = {
/*************** Version 1 ******************/
    ProcXFixesQueryVersion,
        ProcXFixesChangeSaveSet,
        ProcXFixesSelectSelectionInput,
        ProcXFixesSelectCursorInput, ProcXFixesGetCursorImage,
/*************** Version 2 ******************/
        ProcXFixesCreateRegion,
        ProcXFixesCreateRegionFromBitmap,
        ProcXFixesCreateRegionFromWindow,
        ProcXFixesCreateRegionFromGC,
        ProcXFixesCreateRegionFromPicture,
        ProcXFixesDestroyRegion,
        ProcXFixesSetRegion,
        ProcXFixesCopyRegion,
        ProcXFixesCombineRegion,
        ProcXFixesCombineRegion,
        ProcXFixesCombineRegion,
        ProcXFixesInvertRegion,
        ProcXFixesTranslateRegion,
        ProcXFixesRegionExtents,
        ProcXFixesFetchRegion,
        ProcXFixesSetGCClipRegion,
        ProcXFixesSetWindowShapeRegion,
        ProcXFixesSetPictureClipRegion,
        ProcXFixesSetCursorName,
        ProcXFixesGetCursorName,
        ProcXFixesGetCursorImageAndName,
        ProcXFixesChangeCursor, ProcXFixesChangeCursorByName,
/*************** Version 3 ******************/
        ProcXFixesExpandRegion,
/*************** Version 4 ****************/
        ProcXFixesHideCursor, ProcXFixesShowCursor,
/*************** Version 5 ****************/
ProcXFixesCreatePointerBarrier, ProcXFixesDestroyPointerBarrier,};

static int
ProcXFixesDispatch(ClientPtr client)
{
    REQUEST(xXFixesReq);
    XFixesClientPtr pXFixesClient = GetXFixesClient(client);

    if (pXFixesClient->major_version >= NUM_VERSION_REQUESTS)
        return BadRequest;
    if (stuff->xfixesReqType > version_requests[pXFixesClient->major_version])
        return BadRequest;
    return (*ProcXFixesVector[stuff->xfixesReqType]) (client);
}