Ejemplo n.º 1
0
static bool isOK_setFormat(void) {
	if (!isOK_setOutputFormat()) {
		return false;
	}
	OutputFormat format;
	char separator[] = { '%', 'X' };
	ushort code = 1;
	nameString name = "multiformat";
	ushort precision = 5;
	bool leftJusfified = false;
	ushort width = 12;
	nameString output;
	nameString result[2][2] = { { "% 12.5lg", "% 12.5lg %% % 12.5lg" }, //
		{ "% 12.5lg", "% 12.5lg X % 12.5lg" } };
	for (ushort i = 0; i < 2; i++) {
		setOutputFormat(&format, precision, width, separator[i], leftJusfified, name, code);
		SAVE_FUNCTION_CALLER();
		setFormats(output, 1, &format);
		if (strcmp(result[i][0], output)) {
			PRINT_ERROR();
			return false;
		}
		SAVE_FUNCTION_CALLER();
		setFormats(output, 2, &format);
		if (strcmp(result[i][1], output)) {
			PRINT_ERROR();
			return false;
		}
	}
	PRINT_OK();
	return true;
}
Ejemplo n.º 2
0
void setFormatEnd(char formatString[], const ushort number, OutputFormat *format) {
	BACKUP_DEFINITION_LINE(); //
	assert(formatString);
	assert(number);
	assert(format);
	setFormats(formatString, number, format);
	ushort length = (ushort) (number * format->widthWithSeparator);
	char temp[length];
	strcpy(temp, formatString);
	sprintf(formatString, "%s\n", temp);
	SAVE_FUNCTION_FOR_TESTING();
}
Ejemplo n.º 3
0
void setFormat(char formatString[], const ushort number, OutputFormat *format) {
	BACKUP_DEFINITION_LINE(); //
	assert(formatString);
	assert(number);
	assert(format);
	setFormats(formatString, number, format);
	char temp[number * format->widthWithSeparator];strcpy
	(temp, formatString);
	if (format->separator == '%') {
		sprintf(formatString, "%s %%%c", temp, format->separator);
	} else {
		sprintf(formatString, "%s %c", temp, format->separator);
	} //
	SAVE_FUNCTION_FOR_TESTING();
}
int GuestDnDResponse::onDispatch(uint32_t u32Function, void *pvParms, uint32_t cbParms)
{
    LogFlowFunc(("u32Function=%RU32, pvParms=%p, cbParms=%RU32\n", u32Function, pvParms, cbParms));

    int rc = VERR_WRONG_ORDER; /* Play safe. */
    bool fTryCallbacks = false;

    switch (u32Function)
    {
        case DragAndDropSvc::GUEST_DND_HG_ACK_OP:
        {
            DragAndDropSvc::PVBOXDNDCBHGACKOPDATA pCBData = reinterpret_cast<DragAndDropSvc::PVBOXDNDCBHGACKOPDATA>(pvParms);
            AssertPtr(pCBData);
            AssertReturn(sizeof(DragAndDropSvc::VBOXDNDCBHGACKOPDATA) == cbParms, VERR_INVALID_PARAMETER);
            AssertReturn(DragAndDropSvc::CB_MAGIC_DND_HG_ACK_OP == pCBData->hdr.u32Magic, VERR_INVALID_PARAMETER);

            setDefAction(pCBData->uAction);
            rc = notifyAboutGuestResponse();
            break;
        }

        case DragAndDropSvc::GUEST_DND_HG_REQ_DATA:
        {
            DragAndDropSvc::PVBOXDNDCBHGREQDATADATA pCBData = reinterpret_cast<DragAndDropSvc::PVBOXDNDCBHGREQDATADATA>(pvParms);
            AssertPtr(pCBData);
            AssertReturn(sizeof(DragAndDropSvc::VBOXDNDCBHGREQDATADATA) == cbParms, VERR_INVALID_PARAMETER);
            AssertReturn(DragAndDropSvc::CB_MAGIC_DND_HG_REQ_DATA == pCBData->hdr.u32Magic, VERR_INVALID_PARAMETER);

            if (   pCBData->cbFormat == 0
                || pCBData->cbFormat > _64K)
            {
                rc = VERR_INVALID_PARAMETER;
            }
            else
            {
                setFormats(GuestDnD::toFormatList(pCBData->pszFormat));
                rc = VINF_SUCCESS;
            }

            int rc2 = notifyAboutGuestResponse();
            if (RT_SUCCESS(rc))
                rc = rc2;
            break;
        }

        case DragAndDropSvc::GUEST_DND_HG_EVT_PROGRESS:
        {
            DragAndDropSvc::PVBOXDNDCBHGEVTPROGRESSDATA pCBData =
               reinterpret_cast<DragAndDropSvc::PVBOXDNDCBHGEVTPROGRESSDATA>(pvParms);
            AssertPtr(pCBData);
            AssertReturn(sizeof(DragAndDropSvc::VBOXDNDCBHGEVTPROGRESSDATA) == cbParms, VERR_INVALID_PARAMETER);
            AssertReturn(DragAndDropSvc::CB_MAGIC_DND_HG_EVT_PROGRESS == pCBData->hdr.u32Magic, VERR_INVALID_PARAMETER);

            rc = setProgress(pCBData->uPercentage, pCBData->uStatus, pCBData->rc);
            if (RT_SUCCESS(rc))
                rc = notifyAboutGuestResponse();
            break;
        }
#ifdef VBOX_WITH_DRAG_AND_DROP_GH
        case DragAndDropSvc::GUEST_DND_GH_ACK_PENDING:
        {
            DragAndDropSvc::PVBOXDNDCBGHACKPENDINGDATA pCBData =
               reinterpret_cast<DragAndDropSvc::PVBOXDNDCBGHACKPENDINGDATA>(pvParms);
            AssertPtr(pCBData);
            AssertReturn(sizeof(DragAndDropSvc::VBOXDNDCBGHACKPENDINGDATA) == cbParms, VERR_INVALID_PARAMETER);
            AssertReturn(DragAndDropSvc::CB_MAGIC_DND_GH_ACK_PENDING == pCBData->hdr.u32Magic, VERR_INVALID_PARAMETER);

            if (   pCBData->cbFormat == 0
                || pCBData->cbFormat > _64K) /** @todo Make the maximum size configurable? */
            {
                rc = VERR_INVALID_PARAMETER;
            }
            else
            {
                setFormats   (GuestDnD::toFormatList(pCBData->pszFormat));
                setDefAction (pCBData->uDefAction);
                setAllActions(pCBData->uAllActions);

                rc = VINF_SUCCESS;
            }

            int rc2 = notifyAboutGuestResponse();
            if (RT_SUCCESS(rc))
                rc = rc2;
            break;
        }
#endif /* VBOX_WITH_DRAG_AND_DROP_GH */
        default:
            /* * Try if the event is covered by a registered callback. */
            fTryCallbacks = true;
            break;
    }

    /*
     * Try the host's installed callbacks (if any).
     */
    if (fTryCallbacks)
    {
        GuestDnDCallbackMap::const_iterator it = m_mapCallbacks.find(u32Function);
        if (it != m_mapCallbacks.end())
        {
            AssertPtr(it->second.pfnCallback);
            rc = it->second.pfnCallback(u32Function, pvParms, cbParms, it->second.pvUser);
        }
        else
        {
            LogFlowFunc(("No callback for function %RU32 defined (%zu callbacks total)\n", u32Function, m_mapCallbacks.size()));
            rc = VERR_NOT_SUPPORTED; /* Tell the guest. */
        }
    }

    LogFlowFunc(("Returning rc=%Rrc\n", rc));
    return rc;
}
StelScriptSyntaxHighlighter::StelScriptSyntaxHighlighter(QTextDocument *parent)
	: QSyntaxHighlighter(parent)
{
	HighlightingRule rule;

	setFormats();

	// comments
	rule.pattern = QRegExp("//[^\n]*");
	rule.format = &commentFormat;
	highlightingRules.append(rule);

	// ECMAscript reserved words
	QStringList keywordPatterns;
	keywordPatterns << "\\bbreak\\b"
	                << "\\bcase\\b"
	                << "\\bcatch\\b"
	                << "\\bcontinue\\b"
	                << "\\bdefault\\b"
	                << "\\bdelete\\b"
	                << "\\bdo\\b"
	                << "\\belse\\b"
	                << "\\bfalse\\b"
	                << "\\bfinally\\b"
	                << "\\bfor\\b"
	                << "\\bfunction\\b"
	                << "\\bif\\b"
	                << "\\bin\\b"
	                << "\\binstanceof\\b"
	                << "\\bnew\\b"
	                << "\\breturn\\b"
	                << "\\bswitch\\b"
	                << "\\bthis\\b"
	                << "\\bthrow\\b"
	                << "\\btry\\b"
	                << "\\btrue\\b"
	                << "\\btypeof\\b"
	                << "\\bvar\\b"
	                << "\\bvoid\\b"
	                << "\\bundefined\\b"
	                << "\\bwhile\\b"
	                << "\\bwith\\b"
	                << "\\bArguments\\b"
	                << "\\bArray\\b"
	                << "\\bBoolean\\b"
	                << "\\bDate\\b"
	                << "\\bError\\b"
	                << "\\bEvalError\\b"
	                << "\\bFunction\\b"
	                << "\\bGlobal\\b"
	                << "\\bMath\\b"
	                << "\\bNumber\\b"
	                << "\\bObject\\b"
	                << "\\bRangeError\\b"
	                << "\\bReferenceError\\b"
	                << "\\bRegExp\\b"
	                << "\\bString\\b"
	                << "\\bSyntaxError\\b"
	                << "\\bTypeError\\b"
	                << "\\bURIError\\b";

	foreach(const QString &pattern, keywordPatterns)
	{
		rule.pattern = QRegExp(pattern);
		rule.format = &keywordFormat;
		highlightingRules.append(rule);
	}
Ejemplo n.º 6
0
QScriptHighlighter::QScriptHighlighter(QTextDocument *parent)
    : QSyntaxHighlighter(parent)
{
    setFormats(defaultFormats());
}