Sophie

Sophie

distrib > Fedora > 14 > x86_64 > by-pkgid > c67c6057ffd14254a26624517a2352e6 > files > 559

i3-doc-3.e-3.bf1.fc14.noarch.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>i3: src/sighandler.c File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.6.2-20100208 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
      <li><a href="globals.html"><span>Globals</span></a></li>
    </ul>
  </div>
</div>
<div class="contents">
<h1>src/sighandler.c File Reference</h1><code>#include &lt;ev.h&gt;</code><br/>
<code>#include &lt;stdio.h&gt;</code><br/>
<code>#include &lt;stdlib.h&gt;</code><br/>
<code>#include &lt;string.h&gt;</code><br/>
<code>#include &lt;unistd.h&gt;</code><br/>
<code>#include &lt;iconv.h&gt;</code><br/>
<code>#include &lt;signal.h&gt;</code><br/>
<code>#include &lt;xcb/xcb.h&gt;</code><br/>
<code>#include &lt;xcb/xcb_aux.h&gt;</code><br/>
<code>#include &lt;xcb/xcb_event.h&gt;</code><br/>
<code>#include &lt;xcb/xcb_keysyms.h&gt;</code><br/>
<code>#include &lt;X11/keysym.h&gt;</code><br/>
<code>#include &quot;<a class="el" href="a00041_source.html">i3.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="a00052_source.html">util.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="a00054_source.html">xcb.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="a00044_source.html">log.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="a00034_source.html">config.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="a00048_source.html">randr.h</a>&quot;</code><br/>
<div class="dynheader">
Include dependency graph for sighandler.c:</div>
<div class="dynsection">
</div>

<p><a href="a00075_source.html">Go to the source code of this file.</a></p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00075.html#a31aa6fd12baddf237a3aec1a03e5d9a5">sig_draw_window</a> (xcb_connection_t *conn, xcb_window_t win, int width, int height, int font_height)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00075.html#afd2deb48146e0d8d84b5bbdbee8b76c7">sig_handle_key_press</a> (void *ignored, xcb_connection_t *conn, xcb_key_press_event_t *event)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static xcb_window_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00075.html#a12a31f7912e49b4e055b3f23aa95248d">open_input_window</a> (xcb_connection_t *conn, <a class="el" href="a00020.html">Rect</a> screen_rect, uint32_t width, uint32_t height)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00075.html#aca29388ca9e7422219ff689ee23d09bc">handle_signal</a> (int sig, siginfo_t *info, void *data)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00075.html#ae057b3065391c2db8120a38fe9d805b4">setup_signal_handler</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Setup signal handlers to safely handle SIGSEGV and SIGFPE.  <a href="#ae057b3065391c2db8120a38fe9d805b4"></a><br/></td></tr>
<tr><td colspan="2"><h2>Variables</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static xcb_gcontext_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00075.html#ab47f85935c9fee430cb37973cf44e490">pixmap_gc</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static xcb_pixmap_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00075.html#a81dcec2414a6c7beb665ce0fe5e1eaf6">pixmap</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00075.html#a2b30b9b043c3efde6d659eb0e579998a">raised_signal</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00075.html#a64d1c56bede447f9de2cccf6326c5ccb">crash_text</a> []</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00075.html#adb8e591cad2f13bf07542bb3b488ac3a">crash_text_longest</a> = 1</td></tr>
</table>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="aca29388ca9e7422219ff689ee23d09bc"></a><!-- doxytag: member="sighandler.c::handle_signal" ref="aca29388ca9e7422219ff689ee23d09bc" args="(int sig, siginfo_t *info, void *data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void handle_signal </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>sig</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">siginfo_t *&nbsp;</td>
          <td class="paramname"> <em>info</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>data</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="a00075_source.html#l00151">151</a> of file <a class="el" href="a00075_source.html">sighandler.c</a>.</p>

<p>References <a class="el" href="a00036_source.html#l00520">xoutput::active</a>, <a class="el" href="a00062_source.html#l00037">config</a>, <a class="el" href="a00077_source.html#l00175">convert_utf8_to_ucs2()</a>, <a class="el" href="a00075_source.html#l00040">crash_text</a>, <a class="el" href="a00075_source.html#l00047">crash_text_longest</a>, <a class="el" href="a00044_source.html#l00021">DLOG</a>, <a class="el" href="a00034_source.html#l00087">Config::font</a>, <a class="el" href="a00071_source.html#l00058">global_conn</a>, <a class="el" href="a00036_source.html#l00331">Font::height</a>, <a class="el" href="a00036_source.html#l00333">Font::id</a>, <a class="el" href="a00054.html#a50c1fc0de5343536d542c8349ab7ab0d">load_font()</a>, <a class="el" href="a00075_source.html#l00111">open_input_window()</a>, <a class="el" href="a00073_source.html#l00047">outputs</a>, <a class="el" href="a00075_source.html#l00037">pixmap</a>, <a class="el" href="a00075_source.html#l00036">pixmap_gc</a>, <a class="el" href="a00079_source.html#l00301">predict_text_width()</a>, <a class="el" href="a00075_source.html#l00038">raised_signal</a>, <a class="el" href="a00036_source.html#l00531">xoutput::rect</a>, <a class="el" href="a00071_source.html#l00089">root_depth</a>, <a class="el" href="a00075_source.html#l00053">sig_draw_window()</a>, <a class="el" href="a00075_source.html#l00085">sig_handle_key_press()</a>, <a class="el" href="a00047_source.html#l00335">TAILQ_FOREACH</a>, and <a class="el" href="a00079_source.html#l00133">xcb_change_gc_single()</a>.</p>

<p>Referenced by <a class="el" href="a00075_source.html#l00214">setup_signal_handler()</a>.</p>

<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dynsection">
</div>
</p>

</div>
</div>
<a class="anchor" id="a12a31f7912e49b4e055b3f23aa95248d"></a><!-- doxytag: member="sighandler.c::open_input_window" ref="a12a31f7912e49b4e055b3f23aa95248d" args="(xcb_connection_t *conn, Rect screen_rect, uint32_t width, uint32_t height)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static xcb_window_t open_input_window </td>
          <td>(</td>
          <td class="paramtype">xcb_connection_t *&nbsp;</td>
          <td class="paramname"> <em>conn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00020.html">Rect</a>&nbsp;</td>
          <td class="paramname"> <em>screen_rect</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&nbsp;</td>
          <td class="paramname"> <em>width</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&nbsp;</td>
          <td class="paramname"> <em>height</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="a00075_source.html#l00111">111</a> of file <a class="el" href="a00075_source.html">sighandler.c</a>.</p>

<p>References <a class="el" href="a00036_source.html#l00100">Rect::height</a>, <a class="el" href="a00071_source.html#l00085">root</a>, <a class="el" href="a00036_source.html#l00099">Rect::width</a>, <a class="el" href="a00036_source.html#l00097">Rect::x</a>, <a class="el" href="a00036_source.html#l00098">Rect::y</a>, and <a class="el" href="a00068_source.html#l00041">y</a>.</p>

<p>Referenced by <a class="el" href="a00075_source.html#l00151">handle_signal()</a>.</p>

</div>
</div>
<a class="anchor" id="ae057b3065391c2db8120a38fe9d805b4"></a><!-- doxytag: member="sighandler.c::setup_signal_handler" ref="ae057b3065391c2db8120a38fe9d805b4" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void setup_signal_handler </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Setup signal handlers to safely handle SIGSEGV and SIGFPE. </p>

<p>Definition at line <a class="el" href="a00075_source.html#l00214">214</a> of file <a class="el" href="a00075_source.html">sighandler.c</a>.</p>

<p>References <a class="el" href="a00044_source.html#l00020">ELOG</a>, and <a class="el" href="a00075_source.html#l00151">handle_signal()</a>.</p>

<p>Referenced by <a class="el" href="a00071_source.html#l00193">main()</a>.</p>

<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dynsection">
</div>
</p>

</div>
</div>
<a class="anchor" id="a31aa6fd12baddf237a3aec1a03e5d9a5"></a><!-- doxytag: member="sighandler.c::sig_draw_window" ref="a31aa6fd12baddf237a3aec1a03e5d9a5" args="(xcb_connection_t *conn, xcb_window_t win, int width, int height, int font_height)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static int sig_draw_window </td>
          <td>(</td>
          <td class="paramtype">xcb_connection_t *&nbsp;</td>
          <td class="paramname"> <em>conn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">xcb_window_t&nbsp;</td>
          <td class="paramname"> <em>win</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>width</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>height</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>font_height</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="a00075_source.html#l00053">53</a> of file <a class="el" href="a00075_source.html">sighandler.c</a>.</p>

<p>References <a class="el" href="a00077_source.html#l00175">convert_utf8_to_ucs2()</a>, <a class="el" href="a00075_source.html#l00040">crash_text</a>, <a class="el" href="a00079_source.html#l00077">get_colorpixel()</a>, <a class="el" href="a00075_source.html#l00037">pixmap</a>, <a class="el" href="a00075_source.html#l00036">pixmap_gc</a>, and <a class="el" href="a00079_source.html#l00133">xcb_change_gc_single()</a>.</p>

<p>Referenced by <a class="el" href="a00075_source.html#l00151">handle_signal()</a>.</p>

<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dynsection">
</div>
</p>

</div>
</div>
<a class="anchor" id="afd2deb48146e0d8d84b5bbdbee8b76c7"></a><!-- doxytag: member="sighandler.c::sig_handle_key_press" ref="afd2deb48146e0d8d84b5bbdbee8b76c7" args="(void *ignored, xcb_connection_t *conn, xcb_key_press_event_t *event)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static int sig_handle_key_press </td>
          <td>(</td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>ignored</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">xcb_connection_t *&nbsp;</td>
          <td class="paramname"> <em>conn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">xcb_key_press_event_t *&nbsp;</td>
          <td class="paramname"> <em>event</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="a00075_source.html#l00085">85</a> of file <a class="el" href="a00075_source.html">sighandler.c</a>.</p>

<p>References <a class="el" href="a00044_source.html#l00021">DLOG</a>, <a class="el" href="a00077_source.html#l00514">i3_restart()</a>, <a class="el" href="a00071_source.html#l00066">keysyms</a>, <a class="el" href="a00075_source.html#l00038">raised_signal</a>, and <a class="el" href="a00054.html#ac430ae06cbf6f5ef252c9ebfca47e644">xcb_numlock_mask</a>.</p>

<p>Referenced by <a class="el" href="a00075_source.html#l00151">handle_signal()</a>.</p>

<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dynsection">
</div>
</p>

</div>
</div>
<hr/><h2>Variable Documentation</h2>
<a class="anchor" id="a64d1c56bede447f9de2cccf6326c5ccb"></a><!-- doxytag: member="sighandler.c::crash_text" ref="a64d1c56bede447f9de2cccf6326c5ccb" args="[]" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* <a class="el" href="a00075.html#a64d1c56bede447f9de2cccf6326c5ccb">crash_text</a>[]<code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>Initial value:</b><div class="fragment"><pre class="fragment"> {
        <span class="stringliteral">&quot;i3 just crashed.&quot;</span>,
        <span class="stringliteral">&quot;To debug this problem, either attach gdb now&quot;</span>,
        <span class="stringliteral">&quot;or press &#39;e&#39; to exit and get a core-dump.&quot;</span>,
        <span class="stringliteral">&quot;If you want to keep your session,&quot;</span>,
        <span class="stringliteral">&quot;press &#39;r&#39; to restart i3 in-place.&quot;</span>
}
</pre></div>
<p>Definition at line <a class="el" href="a00075_source.html#l00040">40</a> of file <a class="el" href="a00075_source.html">sighandler.c</a>.</p>

<p>Referenced by <a class="el" href="a00075_source.html#l00151">handle_signal()</a>, and <a class="el" href="a00075_source.html#l00053">sig_draw_window()</a>.</p>

</div>
</div>
<a class="anchor" id="adb8e591cad2f13bf07542bb3b488ac3a"></a><!-- doxytag: member="sighandler.c::crash_text_longest" ref="adb8e591cad2f13bf07542bb3b488ac3a" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="a00075.html#adb8e591cad2f13bf07542bb3b488ac3a">crash_text_longest</a> = 1<code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="a00075_source.html#l00047">47</a> of file <a class="el" href="a00075_source.html">sighandler.c</a>.</p>

<p>Referenced by <a class="el" href="a00075_source.html#l00151">handle_signal()</a>.</p>

</div>
</div>
<a class="anchor" id="a81dcec2414a6c7beb665ce0fe5e1eaf6"></a><!-- doxytag: member="sighandler.c::pixmap" ref="a81dcec2414a6c7beb665ce0fe5e1eaf6" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">xcb_pixmap_t <a class="el" href="a00075.html#a81dcec2414a6c7beb665ce0fe5e1eaf6">pixmap</a><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="a00075_source.html#l00037">37</a> of file <a class="el" href="a00075_source.html">sighandler.c</a>.</p>

<p>Referenced by <a class="el" href="a00075_source.html#l00151">handle_signal()</a>, and <a class="el" href="a00075_source.html#l00053">sig_draw_window()</a>.</p>

</div>
</div>
<a class="anchor" id="ab47f85935c9fee430cb37973cf44e490"></a><!-- doxytag: member="sighandler.c::pixmap_gc" ref="ab47f85935c9fee430cb37973cf44e490" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">xcb_gcontext_t <a class="el" href="a00075.html#ab47f85935c9fee430cb37973cf44e490">pixmap_gc</a><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="a00075_source.html#l00036">36</a> of file <a class="el" href="a00075_source.html">sighandler.c</a>.</p>

<p>Referenced by <a class="el" href="a00075_source.html#l00151">handle_signal()</a>, and <a class="el" href="a00075_source.html#l00053">sig_draw_window()</a>.</p>

</div>
</div>
<a class="anchor" id="a2b30b9b043c3efde6d659eb0e579998a"></a><!-- doxytag: member="sighandler.c::raised_signal" ref="a2b30b9b043c3efde6d659eb0e579998a" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="a00075.html#a2b30b9b043c3efde6d659eb0e579998a">raised_signal</a><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="a00075_source.html#l00038">38</a> of file <a class="el" href="a00075_source.html">sighandler.c</a>.</p>

<p>Referenced by <a class="el" href="a00075_source.html#l00151">handle_signal()</a>, and <a class="el" href="a00075_source.html#l00085">sig_handle_key_press()</a>.</p>

</div>
</div>
</div>
<hr class="footer"/><address style="text-align: right;"><small>Generated by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2-20100208 </small></address>
</body>
</html>