Functions | |
bool | contains (QRegExp reg, QString &buf) |
ApplicationHelp * | help () |
int | main (int argc, char **argv) |
PACKAGE_INFO (gpreplace, GPREPLACE) | |
void | replace (QRegExp reg, QString &buf) |
Variables | |
QString | fileName |
bool | hasStringOption = false |
bool | interactive = false |
QString | outputFile |
QString | pattern |
QString | str |
bool contains | ( | QRegExp | reg, |
QString & | buf | ||
) |
Referenced by DinverCore::ModelSet::add(), GeopsyCore::SignalDB::contains(), GeopsyCore::SubSignalPool::contains(), TableWindow::getSelection(), main(), HeaderMap::map(), QGpGuiTools::ExpandTabTitle::mouseMoveEvent(), QGpGuiTools::ExpandTabTitle::mousePressEvent(), MonoStation::AbstractTool::setCurrentDisplayStation(), and DrawView::wheelEvent().
{
return buf.contains(reg);
}
ApplicationHelp* help | ( | ) |
int main | ( | int | argc, |
char ** | argv | ||
) |
References contains(), QGpCoreTools::endl(), fileName, hasStringOption, help(), interactive, outputFile, pattern, replace(), sOut(), str, and QGpCoreTools::tr().
{ CoreApplication a(argc, argv, help); QTextStream sOut(stdout); // Check arguments int i, j=1; for(i=1; i<argc; i++) { QString arg=argv[i]; if(arg[0]=='-') { if(arg=="-f") { CoreApplication::checkOptionArg(i, argc, argv); fileName=argv[i]; } else if(arg=="-p") { CoreApplication::checkOptionArg(i, argc, argv); pattern=QString::fromUtf8(argv[i]); } else if(arg=="-s") { CoreApplication::checkOptionArg(i, argc, argv); hasStringOption=true; str=argv[i]; } else if(arg=="-i") { interactive=true; } else if(arg=="-o") { CoreApplication::checkOptionArg(i, argc, argv); outputFile=argv[i]; } else { App::stream() << tr("gpreplace: bad option %1, see -help").arg(argv[i]) << endl; return 2; } } else { argv[j++]=argv[i]; } } if(j < argc) { argv[j]=0; argc=j; } if(fileName.isEmpty()) { sOut << "Empty filename, see -h for help." << endl; return 2; } QFile f(fileName); if(!f.open(QIODevice::ReadOnly)) { sOut << "Cannot open input file " << fileName << endl; return 2; } App::stream() << pattern << endl; QTextStream s(&f); s.setCodec("UTF-8"); QString buf=s.readAll(); pattern.replace("\\!","!"); QRegExp reg(pattern); if(hasStringOption) replace(reg, buf); else return contains(reg, buf) ? 0 : 1; return 0; }
PACKAGE_INFO | ( | gpreplace | , |
GPREPLACE | |||
) |
void replace | ( | QRegExp | reg, |
QString & | buf | ||
) |
References QGpCoreTools::endl(), QGpCoreTools::flush(), interactive, outputFile, sOut(), and str.
Referenced by main().
{ QTextStream sOut(stdout); QTextStream sIn(stdin); str.replace("\\n","\n"); if(interactive) { int from=0, cur; QString rep; while((cur=buf.indexOf(reg, from))>=0) { QString c=reg.cap(0); QString fStr=str; for(int i=0;i<10;i++) fStr.replace(QString("\\%1").arg(i), reg.cap(i)); if(interactive) { QString context; int bContextCur=cur; bContextCur=buf.lastIndexOf("\n",bContextCur); if(bContextCur<0) bContextCur=0; int eContextCur=cur+c.size(); eContextCur=buf.indexOf("\n",eContextCur); if(eContextCur<0) eContextCur=buf.size()-1; int bContext=cur; for(int i=0;i<5 && bContext>=0;i++) bContext=buf.lastIndexOf("\n",bContext-1); if(bContext<0) bContext=0; if(bContextCur>bContext) { context=buf.mid(bContext, bContextCur-bContext); context.replace("\n", "\n|| "); sOut << context; } context=buf.mid(bContextCur, eContextCur-bContextCur); context.replace("\n", "\n-- "); sOut << context; context=buf.mid(bContextCur, cur-bContextCur)+fStr; if(eContextCur>(cur+c.size())) context+=buf.mid(cur+c.size(), eContextCur-(cur+c.size())); context.replace("\n", "\n++ "); sOut << context; int eContext=eContextCur; for(int i=0;i<5 && eContext>=0;i++) eContext=buf.indexOf("\n",eContext+1); if(eContext<0) eContext=buf.size()-1; if(eContext>eContextCur) { context=buf.mid(eContextCur, eContext-eContextCur); context.replace("\n", "\n|| "); sOut << context; } sOut << endl << endl; sOut << "Do you want to replace? (y/n/a) [y] " << flush; CoreApplication::instance()->debugUserInterrupts(false); rep=sIn.readLine(); CoreApplication::instance()->debugUserInterrupts(true); rep.toLower(); } if(rep=="n") { from=cur+c.size(); } else { buf.replace(cur, c.size(), fStr); from=cur+fStr.size(); } if(rep=="a") interactive=false; } } else { // Basic Qt implementation already contains support for \1 \2, ... sub expresions buf.replace(reg, str); } if(outputFile.isEmpty()) { sOut.setCodec("UTF-8"); sOut << buf; } else { QFile f(outputFile); if(!f.open(QIODevice::WriteOnly)) { sOut << "Cannot open output file " << outputFile << endl; } QTextStream s(&f); s.setCodec("UTF-8"); s << buf; } }
QString fileName |
Referenced by LinearFKActiveResults::exportCurves(), DinverDCGui::GroundModelViewer::exportModels(), GeopsyMainWindow::exportSignal(), TableWindow::exportTable(), SciFigs::GraphicSheet::fileOpen(), SciFigs::GraphicSheet::fileSave(), SciFigs::GraphicSheet::fileSaveAs(), GeopsyCore::SignalFilePool::find(), Station::gpsFileName(), DinverCore::ImportanceSampling::importModels(), DinverCore::ModelRepository::importModels(), TableWindow::importTable(), DinverCore::ReportWriter::initReport(), MagnetoTelluricTargetWidget::load(), EllipticityCurveTargetWidget::load(), AutocorrTargetWidget::load(), DispersionTargetWidget::load(), EventListModel::load(), SciFigs::CurveBrowser::loadMultiColumns(), main(), Preferences::on_chronogramMakeUpBrowse_clicked(), Preferences::on_graphicMakeUpBrowse_clicked(), SciFigs::ImageWidgetProperties::on_imageBrowse_clicked(), Preferences::on_mapMakeUpBrowse_clicked(), GeopsyCore::SignalDB::open(), DinverGui::open(), GpsLink::raw(), RecordList::read(), SpectrumStation::save(), HVStation::save(), StructureStation::save(), EventListModel::save(), SciFigs::CurveProperties::save(), GeopsyCore::SignalDB::saveAs(), DinverGui::saveAs(), DinverDCGui::GroundModelViewer::saveAsReport(), SpacSelector::saveSelection(), GeopsyCore::SignalFile::SignalFile(), ToolRefra::startInversion(), and QGpCoreTools::XMLClass::writeBinaryData().
bool hasStringOption = false |
Referenced by main().
bool interactive = false |
QString outputFile |
Referenced by main(), ToolRefrad::on_outputFileBrowse_clicked(), and replace().
QString pattern |
Referenced by GeopsyGui::AsciiSignalComponentItem::data(), and main().
QString str |
Referenced by RingBrowser::add(), GeopsySLink::SeedLink::addStream(), GeopsyCore::GeopsyCoreEngine::askTimeReference(), QGpCoreTools::CoreApplicationPrivate::backTrace(), QGpCoreTools::CoreApplicationPrivate::backTraceBug(), MonoStation::StationResults::comments(), SciFigs::IrregularGrid2DPlot::coordinateTipInfo(), createBands(), createCurve(), createCurveName(), createDots(), createManyCurves(), MonoStation::StatisticResults::createObjects(), QGpCoreTools::ApplicationHelp::encodeToHtml(), QGpCoreTools::encodeToHtml(), QGpGuiTools::encodeToHtml(), QGpCoreTools::ApplicationHelp::encodeToLatex(), QGpCoreWave::Seismic1DModel::exportHerrmann(), GeopsyCore::SubSignalPool::exportTable(), GeopsyCore::SignalFileFormat::fromContent(), GeopsyAbout::GeopsyAbout(), GeopsyGui::ArrayDefinition::getEndTime(), QGpCompatibility::CompatAutocorrCurves::getRadiusCount(), GeopsyGui::ArrayDefinition::getStartTime(), GpCoreTools::CoreApplication::getStdin(), QGpCoreTools::CoreApplicationPrivate::getStdin(), GpCoreTools::htmlFilter(), GeopsyCore::SubSignalPool::importTable(), ToolSpectrum::initStations(), ToolStructure::initStations(), ToolHV::initStations(), ToolNR::initStations(), QGpCoreWave::Seismic1DModel::interpole(), QGpCoreTools::LineParser::LineParser(), EllipticityCurveTargetWidget::load(), GeopsyCore::GeopsyPreferences::load(), GeopsyGui::RingEditor::loadBut_clicked(), ArrayCore::RingCouples::log(), main(), HeaderMap::missingFields(), QGpCompatibility::CompatFunctionList::modesCount(), GeopsyGui::PickLayer::mouseMoveEvent(), GeopsyCore::SignalFile::name(), ThreadLauncher::newThread(), ToolRefrad::on_outputFileBrowse_clicked(), ToolSPACd::on_outputFileBrowse_clicked(), GeopsyGui::CityLoader::on_pathBrowse_clicked(), QGpGuiTools::operator>>(), QGpCoreTools::operator>>(), DimensionItem::paint(), QGpGuiTools::ColorHistogram::paintEvent(), QGpCompatibility::CompatInversionReport::parameterName(), GeopsySLinkGui::SeedLinkStreamItem::parent(), TimeReader::parse(), QGpCoreTools::DateTimeParser::parse(), SciFigs::Axis::printThickness(), ThreadLauncher::processBaseName(), replace(), QGpCoreTools::CoreApplicationPrivate::reportBug(), QGpCoreTools::CoreApplicationPrivate::reportBugNow(), GeopsyGui::RingEditor::saveBut_clicked(), QGpCoreTools::Number::secondsToTime(), SpacSelector::selectSamples(), GeopsySLinkGui::SeedLinkLoader::selectStreams(), MainWindow::setBackground(), QGpCoreTools::ConsoleProgress::setCaption(), SciFigs::PaletteInterpole::setColors(), ParamLayerWidget::setFrom(), GpCoreTools::CoreApplication::setHelp(), QGpCoreTools::CoreApplicationPrivate::setHelp(), SciFigs::OrderTip::setIndex(), ParamLayerWidget::setIndex(), NAModelsPlotProperties::setParameterList(), NAModelsPlot::setParamX(), NAModelsPlot::setParamY(), ToolRefrad::setPickCount(), QGpCompatibility::CompatAutocorrCurves::setRadius(), QGpCompatibility::CompatHodoChroneData::setSource(), QGpCoreTools::LineParser::setString(), SciFigs::PaletteInterpole::setValues(), sortCurve(), ToolTFA::start(), QGpCoreTools::StringStream::StringStream(), CoordReader::terminate(), GpCoreTools::TraceStamp::toString(), QGpCoreTools::TraceStamp::toString(), Route::toString(), QGpCoreTools::PermutationVector::toString(), GeopsyCore::GuralpRecords::toString(), GpCoreTools::Variant::toString(), GeopsyCore::TimeRangeList::toString(), QGpCoreWave::Resistivity1DModel::toString(), QGpCoreWave::Mode::toString(), QGpCoreTools::MatrixData< T >::toString(), QGpCoreWave::RefractionDippingModel::toString(), QGpCoreWave::Seismic1DModel::toString(), QGpCoreTools::SparseMatrix< T >::toUserString(), QGpCoreTools::MatrixData< T >::toUserString(), TargetListWidget::updateInfo(), GpCoreTools::CoreApplication::version(), QGpCoreTools::CoreApplicationPrivate::version(), GeopsyCore::Signal::writeSeg2(), QGpCoreTools::Message::wrongTextFormat(), QGpCoreTools::GoogleEarthKML::Point::xml_setProperty(), and GeopsyCore::SignalGroup::xml_writeProperties().