Sophie

Sophie

distrib > Fedora > 14 > x86_64 > by-pkgid > f07b4b9fcbe6d8ab9260b52d15e551a6 > files > 94

lilypond-doc-2.12.3-1.fc13.noarch.rpm

<!-- header_tag -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
<html>
<!-- Copyright C 1999-2008 by the authors

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.1
or any later version published by the Free Software Foundation;
with no Invariant Sections.
A copy of the license is included in the section entitled "GNU
Free Documentation License".

 -->
<!-- Created on December 15, 2009 by texi2html 1.82
texi2html was written by: 
            Lionel Cons <Lionel.Cons@cern.ch> (original author)
            Karl Berry  <karl@freefriends.org>
            Olaf Bachmann <obachman@mathematik.uni-kl.de>
            and many others.
Maintained by: Many creative people.
Send bugs and suggestions to <texi2html-bug@nongnu.org>
-->
<head>
<title>GNU LilyPond Contributor's Guide: 7.4 Finding functions</title>

<meta name="description" content="GNU LilyPond Contributor's Guide: 7.4 Finding functions">
<meta name="keywords" content="GNU LilyPond Contributor's Guide: 7.4 Finding functions">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="texi2html 1.82">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="index.html#index" rel="start" title="GNU LilyPond &mdash; Contributor's Guide">
<link href="index_toc.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="index_abt.html#SEC_About" rel="help" title="About This Document">
<link href="Programming-work.html#Programming-work" rel="up" title="7. Programming work">
<link href="Making-a-release.html#Making-a-release" rel="next" title="8.4 Making a release">
<link href="Programming-without-compiling.html#Programming-without-compiling" rel="previous" title="7.3 Programming without compiling">
<link rel="stylesheet" type="text/css" title="Patrick McCarty's design" href="lilypond-mccarty.css">
<link rel="alternate stylesheet" type="text/css" href="lilypond.css" title="Andrew Hawryluk's design">
<link rel="alternate stylesheet" type="text/css" href="lilypond-blue.css" title="Kurt Kroon's blue design">
<!--[if lte IE 7]>
<link href="lilypond-ie-fixes.css" rel="stylesheet" type="text/css">
<![endif]-->


</head>

<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">


<div id="main">
<a name="Finding-functions"></a>
<table class="nav_table">
<tr><td valign="middle" align="left" colspan="1">[<a href="Programming-work.html#Programming-work" title="Beginning of this chapter or previous chapter"> &lt;&lt; Programming work&nbsp;</a>]</td><td valign="middle" align="center" colspan="3">[<a href="index.html#index" title="Cover (top) of document" rel="start">Top</a>][<a href="index_toc.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][Index][<a href="index_abt.html#SEC_About" title="About (help)" rel="help"> ? </a>]</td><td valign="middle" align="right" colspan="1">[<a href="Release-work.html#Release-work" title="Next chapter">&nbsp;Release work &gt;&gt; </a>]</td></tr><tr><td valign="middle" align="left" colspan="2">[<a href="Programming-without-compiling.html#Programming-without-compiling" title="Previous section in reading order" accesskey="p" rel="previous"> &lt; &nbsp;</a>]</td><td valign="middle" align="center" colspan="1">[<a href="Programming-work.html#Programming-work" title="Up section" accesskey="u" rel="up">&nbsp; Up :&nbsp;Programming work&nbsp;</a>]</td><td valign="middle" align="right" colspan="2">[<a href="#Finding-functions" title="Next section in reading order" accesskey="n" rel="next">&nbsp; &gt; </a>]</td></tr></table>
<a name="Finding-functions"></a>
<h2 class="section">7.4 Finding functions</h2>

<p>When making changes or fixing bugs in LilyPond, one of the initial
challenges is finding out where in the code tree the functions to
be modified live.  With nearly 3000 files in the source tree,
trial-and-error searching is generally ineffective. This section
describes a process for finding interesting code.
</p>
<hr size="6">
<a name="Finding-functions"></a>
<table class="nav_table">
<tr><td valign="middle" align="left" colspan="1">[<a href="Programming-work.html#Programming-work" title="Beginning of this chapter or previous chapter"> &lt;&lt; Programming work&nbsp;</a>]</td><td valign="middle" align="center" colspan="3">[<a href="index.html#index" title="Cover (top) of document" rel="start">Top</a>][<a href="index_toc.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][Index][<a href="index_abt.html#SEC_About" title="About (help)" rel="help"> ? </a>]</td><td valign="middle" align="right" colspan="1">[<a href="Release-work.html#Release-work" title="Next chapter">&nbsp;Release work &gt;&gt; </a>]</td></tr><tr><td valign="middle" align="left" colspan="2">[<a href="#Finding-functions" title="Previous section in reading order" accesskey="p" rel="previous"> &lt; Finding functions&nbsp;</a>]</td><td valign="middle" align="center" colspan="1">[<a href="#Finding-functions" title="Up section" accesskey="u" rel="up">&nbsp; Up :&nbsp;Finding functions&nbsp;</a>]</td><td valign="middle" align="right" colspan="2">[<a href="#Finding-functions" title="Next section in reading order" accesskey="n" rel="next">&nbsp; &gt; </a>]</td></tr></table>
<h3 class="subsection">7.4.1 Using the ROADMAP</h3>

<p>The file ROADMAP is located in the main directory of the lilypond source.
ROADMAP lists all of the directories in the LilPond source tree, along
with a brief description of the kind of files found in each directory.
This can be a very helpful tool for deciding which directories to search
when looking for a function.
</p>

<hr size="6">
<a name="Finding-functions"></a>
<table class="nav_table">
<tr><td valign="middle" align="left" colspan="1">[<a href="Programming-work.html#Programming-work" title="Beginning of this chapter or previous chapter"> &lt;&lt; Programming work&nbsp;</a>]</td><td valign="middle" align="center" colspan="3">[<a href="index.html#index" title="Cover (top) of document" rel="start">Top</a>][<a href="index_toc.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][Index][<a href="index_abt.html#SEC_About" title="About (help)" rel="help"> ? </a>]</td><td valign="middle" align="right" colspan="1">[<a href="Release-work.html#Release-work" title="Next chapter">&nbsp;Release work &gt;&gt; </a>]</td></tr><tr><td valign="middle" align="left" colspan="2">[<a href="#Finding-functions" title="Previous section in reading order" accesskey="p" rel="previous"> &lt; &nbsp;</a>]</td><td valign="middle" align="center" colspan="1">[<a href="#Finding-functions" title="Up section" accesskey="u" rel="up">&nbsp; Up :&nbsp;Finding functions&nbsp;</a>]</td><td valign="middle" align="right" colspan="2">[<a href="#Finding-functions" title="Next section in reading order" accesskey="n" rel="next">&nbsp; &gt; </a>]</td></tr></table>
<h3 class="subsection">7.4.2 Using grep to search</h3>

<p>Having identified a likely subdirectory to search, the grep utility can
be used to search for a function name.  The format of the grep command is
</p>
<blockquote><pre class="example">grep -i functionName subdirectory/*
</pre></blockquote>

<p>This command will search all the contents of the directory subdirectory/
and display every line in any of the files that contains
functionName.  The <code>-i</code> option makes <code>grep</code> ignore
case &ndash; this can be very useful if you are not yet familiar with
our capitalization conventions.
</p>
<p>The most likely directories to grep for function names are scm/ for
scheme files, ly/ for lilypond input (*.ly) files, and lily/ for C++
files.
</p>

<hr size="6">
<a name="Finding-functions"></a>
<table class="nav_table">
<tr><td valign="middle" align="left" colspan="1">[<a href="Programming-work.html#Programming-work" title="Beginning of this chapter or previous chapter"> &lt;&lt; Programming work&nbsp;</a>]</td><td valign="middle" align="center" colspan="3">[<a href="index.html#index" title="Cover (top) of document" rel="start">Top</a>][<a href="index_toc.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][Index][<a href="index_abt.html#SEC_About" title="About (help)" rel="help"> ? </a>]</td><td valign="middle" align="right" colspan="1">[<a href="Release-work.html#Release-work" title="Next chapter">&nbsp;Release work &gt;&gt; </a>]</td></tr><tr><td valign="middle" align="left" colspan="2">[<a href="#Finding-functions" title="Previous section in reading order" accesskey="p" rel="previous"> &lt; &nbsp;</a>]</td><td valign="middle" align="center" colspan="1">[<a href="#Finding-functions" title="Up section" accesskey="u" rel="up">&nbsp; Up :&nbsp;Finding functions&nbsp;</a>]</td><td valign="middle" align="right" colspan="2">[<a href="#Finding-functions" title="Next section in reading order" accesskey="n" rel="next">&nbsp; &gt; </a>]</td></tr></table>
<h3 class="subsection">7.4.3 Using git grep to search</h3>

<p>If you have used git to obtain the source, you have access to a
powerful tool to search for functions.  The command:
</p>
<blockquote><pre class="example">git grep functionName
</pre></blockquote>

<p>will search through all of the files that are present in the git
repository looking for functionName.  It also presents the results
of the search using <code>less</code>, so the results are displayed one page
at a time.
</p>
<hr size="6">
<a name="Finding-functions"></a>
<table class="nav_table">
<tr><td valign="middle" align="left" colspan="1">[<a href="Programming-work.html#Programming-work" title="Beginning of this chapter or previous chapter"> &lt;&lt; Programming work&nbsp;</a>]</td><td valign="middle" align="center" colspan="3">[<a href="index.html#index" title="Cover (top) of document" rel="start">Top</a>][<a href="index_toc.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][Index][<a href="index_abt.html#SEC_About" title="About (help)" rel="help"> ? </a>]</td><td valign="middle" align="right" colspan="1">[<a href="Release-work.html#Release-work" title="Next chapter">&nbsp;Release work &gt;&gt; </a>]</td></tr><tr><td valign="middle" align="left" colspan="2">[<a href="#Finding-functions" title="Previous section in reading order" accesskey="p" rel="previous"> &lt; &nbsp;</a>]</td><td valign="middle" align="center" colspan="1">[<a href="#Finding-functions" title="Up section" accesskey="u" rel="up">&nbsp; Up :&nbsp;Finding functions&nbsp;</a>]</td><td valign="middle" align="right" colspan="2">[<a href="Code-style.html#Code-style" title="Next section in reading order" accesskey="n" rel="next">&nbsp;Code style &gt; </a>]</td></tr></table>
<h3 class="subsection">7.4.4 Searching on the git repository at Savannah</h3>

<p>You can also use the equivalent of git grep on the Savannah server.
</p>
<ul>
<li>
Go to http://git.sv.gnu.org/gitweb/?p=lilypond.git

</li><li>
In the pulldown box that says commit, select grep.

</li><li>
Type functionName in the search box, and hit enter/return

</li></ul>

<p>This will initiate a search of the remote git repository.
</p>

<hr size="6">
<table class="nav_table">
<tr><td valign="middle" align="left" colspan="1">[<a href="Programming-work.html#Programming-work" title="Beginning of this chapter or previous chapter"> &lt;&lt; Programming work&nbsp;</a>]</td><td valign="middle" align="center" colspan="3">[<a href="index.html#index" title="Cover (top) of document" rel="start">Top</a>][<a href="index_toc.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][Index][<a href="index_abt.html#SEC_About" title="About (help)" rel="help"> ? </a>]</td><td valign="middle" align="right" colspan="1">[<a href="Release-work.html#Release-work" title="Next chapter">&nbsp;Release work &gt;&gt; </a>]</td></tr><tr><td valign="middle" align="left" colspan="2">[<a href="#Finding-functions" title="Previous section in reading order" accesskey="p" rel="previous"> &lt; &nbsp;</a>]</td><td valign="middle" align="center" colspan="1">[<a href="#Finding-functions" title="Up section" accesskey="u" rel="up">&nbsp; Up :&nbsp;Finding functions&nbsp;</a>]</td><td valign="middle" align="right" colspan="2">[<a href="Code-style.html#Code-style" title="Next section in reading order" accesskey="n" rel="next">&nbsp;Code style &gt; </a>]</td></tr></table>
<!-- footer_tag -->
<div class="footer">
<p class="footer_version">
This page is for LilyPond-2.12.3 (stable-branch).
</p>
<p class="footer_report">
Your <a href="http://lilypond.org/web/devel/participating/documentation-adding">suggestions for the documentation</a> are welcome, please report errors to our <a href="http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs">bug list</a>.
</p>
</div>


<!-- FOOTER -->

<!-- end div#main here -->
</div>



<div id="tocframe">
<p class="toc_uplink"><a href="../index.html" 
         title="Documentation Index">&lt;&lt; Back to Documentation Index</a></p>
<h4 class="toc_header"> <a href="index.html#index" title="Start of the manual">Contributor&rsquo;s Guide</a></h4>
<div class="contents">
<ul class="toc">
  <li><a name="toc-Starting-with-git-1" href="Starting-with-git.html#Starting-with-git">1. Starting with git</a>
  <ul class="toc">
    <li><a name="toc-Getting-the-source-code-1" href="Getting-the-source-code.html#Getting-the-source-code">1.1 Getting the source code</a>    </li>
    <li><a name="toc-Updating-the-source-code-1" href="Updating-the-source-code.html#Updating-the-source-code">1.2 Updating the source code</a>    </li>
    <li><a name="toc-Sharing-your-changes-1" href="Sharing-your-changes.html#Sharing-your-changes">1.3 Sharing your changes</a>    </li>
    <li><a name="toc-Advanced-git-stuff-1" href="Advanced-git-stuff.html#Advanced-git-stuff">1.4 Advanced git stuff</a>    </li>
    <li><a name="toc-Git-on-Windows-1" href="Git-on-Windows.html#Git-on-Windows">1.5 Git on Windows</a>    </li>
  </ul>
  </li>
  <li><a name="toc-Compiling-LilyPond-1" href="Compiling-LilyPond.html#Compiling-LilyPond">2. Compiling LilyPond</a>
  <ul class="toc">
    <li><a name="toc-Compiling-from-source-1" href="Compiling-from-source.html#Compiling-from-source">2.1 Compiling from source</a>    </li>
    <li><a name="toc-Concurrent-Stable-and-Development-Versions-1" href="Concurrent-Stable-and-Development-Versions.html#Concurrent-Stable-and-Development-Versions">2.2 Concurrent Stable and Development Versions</a>    </li>
  </ul>
  </li>
  <li><a name="toc-Documentation-work-1" href="Documentation-work.html#Documentation-work">3. Documentation work</a>
  <ul class="toc">
    <li><a name="toc-Introduction-to-documentation-work-1" href="Introduction-to-documentation-work.html#Introduction-to-documentation-work">3.1 Introduction to documentation work</a>    </li>
    <li><a name="toc-Documentation-suggestions-1" href="Documentation-suggestions.html#Documentation-suggestions">3.2 Documentation suggestions</a>    </li>
    <li><a name="toc-Texinfo-introduction-and-usage-policy-1" href="Texinfo-introduction-and-usage-policy.html#Texinfo-introduction-and-usage-policy">3.3 Texinfo introduction and usage policy</a>    </li>
    <li><a name="toc-Documentation-policy-1" href="Documentation-policy.html#Documentation-policy">3.4 Documentation policy</a>    </li>
    <li><a name="toc-Tips-for-writing-docs-1" href="Tips-for-writing-docs.html#Tips-for-writing-docs">3.5 Tips for writing docs</a>    </li>
    <li><a name="toc-Updating-doc-with-convert_002dly" href="Updating-docs-with-convert_002dly.html#Updating-docs-with-convert_002dly">3.6 Updating doc with <code>convert-ly</code></a>    </li>
    <li><a name="toc-Translating-the-documentation-1" href="Translating-the-documentation.html#Translating-the-documentation">3.7 Translating the documentation</a>    </li>
  </ul>
  </li>
  <li><a name="toc-Website-work-1" href="Website-work.html#Website-work">4. Website work</a>
  <ul class="toc">
    <li><a name="toc-Introduction-to-website-work-1" href="Introduction-to-website-work.html#Introduction-to-website-work">4.1 Introduction to website work</a>    </li>
    <li><a name="toc-Translating-the-website-1" href="Translating-the-website.html#Translating-the-website">4.2 Translating the website</a>    </li>
  </ul>
  </li>
  <li><a name="toc-LSR-work-1" href="LSR-work.html#LSR-work">5. LSR work</a>
  <ul class="toc">
    <li><a name="toc-Introduction-to-LSR-1" href="Introduction-to-LSR.html#Introduction-to-LSR">5.1 Introduction to LSR</a>    </li>
    <li><a name="toc-Adding-and-editing-snippets-1" href="Adding-and-editing-snippets.html#Adding-and-editing-snippets">5.2 Adding and editing snippets</a>    </li>
    <li><a name="toc-Approving-snippets-1" href="Approving-snippets.html#Approving-snippets">5.3 Approving snippets</a>    </li>
    <li><a name="toc-LSR-to-Git-1" href="LSR-to-Git.html#LSR-to-Git">5.4 LSR to Git</a>    </li>
    <li><a name="toc-Fixing-snippets-in-LilyPond-sources-1" href="Fixing-snippets-in-LilyPond-sources.html#Fixing-snippets-in-LilyPond-sources">5.5 Fixing snippets in LilyPond sources</a>    </li>
    <li><a name="toc-Updating-LSR-to-a-new-version-1" href="Updating-LSR-to-a-new-version.html#Updating-LSR-to-a-new-version">5.6 Updating LSR to a new version</a>    </li>
  </ul>
  </li>
  <li><a name="toc-Issues-1" href="Issues.html#Issues">6. Issues</a>
  <ul class="toc">
    <li><a name="toc-Introduction-to-issues-1" href="Introduction-to-issues.html#Introduction-to-issues">6.1 Introduction to issues</a>    </li>
    <li><a name="toc-Issue-classification-1" href="Issue-classification.html#Issue-classification">6.2 Issue classification</a>    </li>
    <li><a name="toc-Adding-issues-to-the-tracker-1" href="Adding-issues-to-the-tracker.html#Adding-issues-to-the-tracker">6.3 Adding issues to the tracker</a>    </li>
  </ul>
  </li>
  <li class="toc_current"><a name="toc-Programming-work-1" href="Programming-work.html#Programming-work">7. Programming work</a>
  <ul class="toc">
    <li><a name="toc-Overview-of-LilyPond-architecture-1" href="Overview-of-LilyPond-architecture.html#Overview-of-LilyPond-architecture">7.1 Overview of LilyPond architecture</a>    </li>
    <li><a name="toc-LilyPond-programming-languages-1" href="LilyPond-programming-languages.html#LilyPond-programming-languages">7.2 LilyPond programming languages</a>    </li>
    <li><a name="toc-Programming-without-compiling-1" href="Programming-without-compiling.html#Programming-without-compiling">7.3 Programming without compiling</a>    </li>
    <li class="toc_current"><a name="toc-Finding-functions-1" href="Finding-functions.html#Finding-functions">7.4 Finding functions</a>
    <ul class="toc">
      <li class="toc_current"><a name="toc-Using-the-ROADMAP" href="Finding-functions.html#Finding-functions">7.4.1 Using the ROADMAP</a>      </li>
      <li class="toc_current"><a name="toc-Using-grep-to-search" href="Finding-functions.html#Finding-functions">7.4.2 Using grep to search</a>      </li>
      <li class="toc_current"><a name="toc-Using-git-grep-to-search" href="Finding-functions.html#Finding-functions">7.4.3 Using git grep to search</a>      </li>
      <li class="toc_current"><a name="toc-Searching-on-the-git-repository-at-Savannah" href="Finding-functions.html#Finding-functions">7.4.4 Searching on the git repository at Savannah</a>      </li>
    </ul>
    </li>
    <li><a name="toc-Code-style-1" href="Code-style.html#Code-style">7.5 Code style</a>    </li>
    <li><a name="toc-Debugging-LilyPond-1" href="Debugging-LilyPond.html#Debugging-LilyPond">7.6 Debugging LilyPond</a>    </li>
  </ul>
  </li>
  <li><a name="toc-Release-work-1" href="Release-work.html#Release-work">8. Release work</a>
  <ul class="toc">
    <li><a name="toc-Development-phases-1" href="Development-phases.html#Development-phases">8.1 Development phases</a>    </li>
    <li><a name="toc-Minor-release-checklist-1" href="Minor-release-checklist.html#Minor-release-checklist">8.2 Minor release checklist</a>    </li>
    <li><a name="toc-Major-release-checklist-1" href="Major-release-checklist.html#Major-release-checklist">8.3 Major release checklist</a>    </li>
    <li><a name="toc-Making-a-release-1" href="Making-a-release.html#Making-a-release">8.4 Making a release</a>    </li>
  </ul>
  </li>
</ul>
</div>
</div>

</body>
</html>