예제 #1
0
static int
write_block (void *id, void *data, int32_t length)
{
	dp(30, "id=%p data=%p length=%d\n", id, data, length);
    soundfile_t *wid = id;
    uint32_t bcount;

    if (wid->error)
        return FALSE;

    if (wid && wid->file && data && length) {
        if (!DoWriteFile (wid->file, data, length, &bcount) || bcount != length) {
            fclose (wid->file);
            wid->file = NULL;
            wid->error = 1;
            return FALSE;
        }
        else {
            wid->bytes_written += length;

            if (!wid->first_block_size)
                wid->first_block_size = bcount;
        }
    }

    return TRUE;
}
예제 #2
0
void frmHbaConfig::WriteFile(pgConn *conn)
{
	wxString str;
	size_t i;
	for (i = 0 ; i < lines.GetCount() - 1 ; i++)
		str.Append(lines.Item(i).GetText() + wxT("\n"));

	if (DoWriteFile(str, conn))
	{
		changed = false;
		fileMenu->Enable(MNU_SAVE, false);
		editMenu->Enable(MNU_UNDO, false);
		toolBar->EnableTool(MNU_SAVE, false);
		toolBar->EnableTool(MNU_UNDO, false);

		// make intermediate change current
		for (i = 0 ; i < lines.GetCount() ; i++)
			lines.Item(i).Init(lines.Item(i).GetText());
	}
}
예제 #3
0
파일: opensave.c 프로젝트: GYGit/reactos
BOOL
DoSaveFile(HWND hwnd)
{
	TCHAR szFileName[MAX_PATH] = _T("");
	static TCHAR Filter[] = _T("Rich Text Document (*.rtf)\0*.rtf\0") \
		_T("Text Document (*.txt)\0*.txt\0");

	ofn.lpstrFilter = Filter;
	ofn.lpstrFile = szFileName;
	ofn.Flags = OFN_EXPLORER | OFN_PATHMUSTEXIST | OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT;

	if (GetSaveFileName(&ofn))
	{
        if (DoWriteFile(szFileName))
            return TRUE;
	}

	if (CommDlgExtendedError() != CDERR_GENERALCODES)
        MessageBox(NULL, _T("Save to file failed"), NULL, 0);

	return FALSE;
}
예제 #4
0
void frmPgpassConfig::WriteFile(pgConn *conn)
{
	wxString str;
	size_t i;
	for (i = 0 ; i < lines.GetCount() - 1 ; i++)
	{
		// Before writing it into the file we need to escape "\" and ":"
		pgPassConfigLine line = lines.Item(i);
		line.hostname.Replace(wxT("\\"), wxT("\\\\"));
		line.hostname.Replace(wxT(":") , wxT("\\:"));
		line.port.Replace(wxT("\\"), wxT("\\\\"));
		line.port.Replace(wxT(":") , wxT("\\:"));
		line.database.Replace(wxT("\\"), wxT("\\\\"));
		line.database.Replace(wxT(":") , wxT("\\:"));
		line.username.Replace(wxT("\\"), wxT("\\\\"));
		line.username.Replace(wxT(":") , wxT("\\:"));
		line.password.Replace(wxT("\\"), wxT("\\\\"));
		line.password.Replace(wxT(":") , wxT("\\:"));

		wxString strLine = line.hostname + wxT(":") + line.port + wxT(":") +
		                   line.database + wxT(":") + line.username + wxT(":") + line.password + wxT("\n");

		str.Append(strLine);
	}

	if (DoWriteFile(str, NULL))
	{
		changed = false;
		fileMenu->Enable(MNU_SAVE, false);
		editMenu->Enable(MNU_UNDO, false);
		toolBar->EnableTool(MNU_SAVE, false);
		toolBar->EnableTool(MNU_UNDO, false);

		// make intermediate change current
		for (i = 0 ; i < lines.GetCount() ; i++)
			lines.Item(i).Init(lines.Item(i).GetText());
	}
}
예제 #5
0
void frmMainConfig::WriteFile(pgConn *conn)
{

	size_t i;

	wxString str;
	for (i = 0 ; i < lines.GetCount() ; i++)
		str.Append(lines.Item(i).GetNewText() + wxT("\n"));

	for (i = 0 ; i < (size_t)cfgList->GetItemCount() ; i++)
	{
		pgSettingItem *item = options[cfgList->GetText(i)];

		if (item && item->newLine && item->newLine->item && !item->orgLine)
			str.Append(item->newLine->GetNewText() + wxT("\n"));
	}


	if (DoWriteFile(str, conn))
	{
		changed = false;
		fileMenu->Enable(MNU_SAVE, false);
		editMenu->Enable(MNU_UNDO, false);
		toolBar->EnableTool(MNU_SAVE, false);
		toolBar->EnableTool(MNU_UNDO, false);

		size_t i;
		for (i = 0 ; i < (size_t)cfgList->GetItemCount() ; i++)
		{
			pgSettingItem *item = options[cfgList->GetText(i)];

			if (item && item->newLine)
			{
				if (!item->orgLine)
				{
					item->orgLine = new pgConfigOrgLine(item->newLine);
					lines.Add(item->orgLine);
					item->orgLine->item = item;
				}
				else
				{
					item->orgLine->comment = item->newLine->comment;
					item->orgLine->isComment = item->newLine->isComment;
					item->orgLine->value = item->newLine->value;
					item->orgLine->text = item->orgLine->GetNewText();
				}
			}
		}


		for (i = 0 ; i < lines.GetCount() ; i++)
		{
			pgConfigOrgLine &line = lines.Item(i);
			if (line.item && line.item->newLine)
			{
				line.text = line.GetNewText();
				delete line.item->newLine;
				line.item->newLine = 0;
			}
		}
	}
}