This file is indexed.

/usr/share/doc/libghc-cabal-doc/html/src/Distribution-Compat-Internal-TempFile.html is in libghc-cabal-doc 1.24.1.0-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<!-- Generated by HsColour, http://code.haskell.org/~malcolm/hscolour/ -->
<title>Distribution/Compat/Internal/TempFile.hs</title>
<link type='text/css' rel='stylesheet' href='hscolour.css' />
</head>
<body>
<pre><a name="line-1"></a><span class='hs-comment'>{-# LANGUAGE CPP #-}</span>
<a name="line-2"></a><span class='hs-comment'>{-# OPTIONS_HADDOCK hide #-}</span>
<a name="line-3"></a><span class='hs-keyword'>module</span> <span class='hs-conid'>Distribution</span><span class='hs-varop'>.</span><span class='hs-conid'>Compat</span><span class='hs-varop'>.</span><span class='hs-conid'>Internal</span><span class='hs-varop'>.</span><span class='hs-conid'>TempFile</span> <span class='hs-layout'>(</span>
<a name="line-4"></a>  <span class='hs-varid'>openTempFile</span><span class='hs-layout'>,</span>
<a name="line-5"></a>  <span class='hs-varid'>openBinaryTempFile</span><span class='hs-layout'>,</span>
<a name="line-6"></a>  <span class='hs-varid'>openNewBinaryFile</span><span class='hs-layout'>,</span>
<a name="line-7"></a>  <span class='hs-varid'>createTempDirectory</span><span class='hs-layout'>,</span>
<a name="line-8"></a>  <span class='hs-layout'>)</span> <span class='hs-keyword'>where</span>
<a name="line-9"></a>
<a name="line-10"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Distribution</span><span class='hs-varop'>.</span><span class='hs-conid'>Compat</span><span class='hs-varop'>.</span><span class='hs-conid'>Exception</span>
<a name="line-11"></a>
<a name="line-12"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>System</span><span class='hs-varop'>.</span><span class='hs-conid'>FilePath</span>        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varop'>&lt;/&gt;</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-13"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Foreign</span><span class='hs-varop'>.</span><span class='hs-conid'>C</span>              <span class='hs-layout'>(</span><span class='hs-conid'>CInt</span><span class='hs-layout'>,</span> <span class='hs-varid'>eEXIST</span><span class='hs-layout'>,</span> <span class='hs-varid'>getErrno</span><span class='hs-layout'>,</span> <span class='hs-varid'>errnoToIOError</span><span class='hs-layout'>)</span>
<a name="line-14"></a>
<a name="line-15"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>System</span><span class='hs-varop'>.</span><span class='hs-conid'>IO</span>              <span class='hs-layout'>(</span><span class='hs-conid'>Handle</span><span class='hs-layout'>,</span> <span class='hs-varid'>openTempFile</span><span class='hs-layout'>,</span> <span class='hs-varid'>openBinaryTempFile</span><span class='hs-layout'>)</span>
<a name="line-16"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>Bits</span>              <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varop'>.|.</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-17"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>System</span><span class='hs-varop'>.</span><span class='hs-conid'>Posix</span><span class='hs-varop'>.</span><span class='hs-conid'>Internals</span> <span class='hs-layout'>(</span><span class='hs-varid'>c_open</span><span class='hs-layout'>,</span> <span class='hs-varid'>c_close</span><span class='hs-layout'>,</span> <span class='hs-varid'>o_CREAT</span><span class='hs-layout'>,</span> <span class='hs-varid'>o_EXCL</span><span class='hs-layout'>,</span> <span class='hs-varid'>o_RDWR</span><span class='hs-layout'>,</span>
<a name="line-18"></a>                               <span class='hs-varid'>o_BINARY</span><span class='hs-layout'>,</span> <span class='hs-varid'>o_NONBLOCK</span><span class='hs-layout'>,</span> <span class='hs-varid'>o_NOCTTY</span><span class='hs-layout'>,</span>
<a name="line-19"></a>                               <span class='hs-varid'>withFilePath</span><span class='hs-layout'>,</span> <span class='hs-varid'>c_getpid</span><span class='hs-layout'>)</span>
<a name="line-20"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>System</span><span class='hs-varop'>.</span><span class='hs-conid'>IO</span><span class='hs-varop'>.</span><span class='hs-conid'>Error</span>        <span class='hs-layout'>(</span><span class='hs-varid'>isAlreadyExistsError</span><span class='hs-layout'>)</span>
<a name="line-21"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>GHC</span><span class='hs-varop'>.</span><span class='hs-conid'>IO</span><span class='hs-varop'>.</span><span class='hs-conid'>Handle</span><span class='hs-varop'>.</span><span class='hs-conid'>FD</span>       <span class='hs-layout'>(</span><span class='hs-varid'>fdToHandle</span><span class='hs-layout'>)</span>
<a name="line-22"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Control</span><span class='hs-varop'>.</span><span class='hs-conid'>Exception</span>      <span class='hs-layout'>(</span><span class='hs-varid'>onException</span><span class='hs-layout'>)</span>
<a name="line-23"></a>
<a name="line-24"></a><span class='hs-cpp'>#if defined(mingw32_HOST_OS) || defined(ghcjs_HOST_OS)</span>
<a name="line-25"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>System</span><span class='hs-varop'>.</span><span class='hs-conid'>Directory</span>       <span class='hs-layout'>(</span> <span class='hs-varid'>createDirectory</span> <span class='hs-layout'>)</span>
<a name="line-26"></a><span class='hs-cpp'>#else</span>
<a name="line-27"></a><span class='hs-keyword'>import</span> <span class='hs-keyword'>qualified</span> <span class='hs-conid'>System</span><span class='hs-varop'>.</span><span class='hs-conid'>Posix</span>
<a name="line-28"></a><span class='hs-cpp'>#endif</span>
<a name="line-29"></a>
<a name="line-30"></a><span class='hs-comment'>-- ------------------------------------------------------------</span>
<a name="line-31"></a><span class='hs-comment'>-- * temporary files</span>
<a name="line-32"></a><span class='hs-comment'>-- ------------------------------------------------------------</span>
<a name="line-33"></a>
<a name="line-34"></a><span class='hs-comment'>-- This is here for Haskell implementations that do not come with</span>
<a name="line-35"></a><span class='hs-comment'>-- System.IO.openTempFile. This includes nhc-1.20, hugs-2006.9.</span>
<a name="line-36"></a><span class='hs-comment'>-- TODO: Not sure about JHC</span>
<a name="line-37"></a><span class='hs-comment'>-- TODO: This file should probably be removed.</span>
<a name="line-38"></a>
<a name="line-39"></a><a name="openNewBinaryFile"></a><span class='hs-comment'>-- This is a copy/paste of the openBinaryTempFile definition, but</span>
<a name="line-40"></a><span class='hs-comment'>-- if uses 666 rather than 600 for the permissions. The base library</span>
<a name="line-41"></a><span class='hs-comment'>-- needs to be changed to make this better.</span>
<a name="line-42"></a><span class='hs-definition'>openNewBinaryFile</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>FilePath</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>String</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-layout'>(</span><span class='hs-conid'>FilePath</span><span class='hs-layout'>,</span> <span class='hs-conid'>Handle</span><span class='hs-layout'>)</span>
<a name="line-43"></a><span class='hs-definition'>openNewBinaryFile</span> <span class='hs-varid'>dir</span> <span class='hs-varid'>template</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>do</span>
<a name="line-44"></a>  <span class='hs-varid'>pid</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-varid'>c_getpid</span>
<a name="line-45"></a>  <span class='hs-varid'>findTempName</span> <span class='hs-varid'>pid</span>
<a name="line-46"></a>  <span class='hs-keyword'>where</span>
<a name="line-47"></a>    <span class='hs-comment'>-- We split off the last extension, so we can use .foo.ext files</span>
<a name="line-48"></a>    <span class='hs-comment'>-- for temporary files (hidden on Unix OSes). Unfortunately we're</span>
<a name="line-49"></a>    <span class='hs-comment'>-- below file path in the hierarchy here.</span>
<a name="line-50"></a>    <span class='hs-layout'>(</span><span class='hs-varid'>prefix</span><span class='hs-layout'>,</span><span class='hs-varid'>suffix</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span>
<a name="line-51"></a>       <span class='hs-keyword'>case</span> <span class='hs-varid'>break</span> <span class='hs-layout'>(</span><span class='hs-varop'>==</span> <span class='hs-chr'>'.'</span><span class='hs-layout'>)</span> <span class='hs-varop'>$</span> <span class='hs-varid'>reverse</span> <span class='hs-varid'>template</span> <span class='hs-keyword'>of</span>
<a name="line-52"></a>         <span class='hs-comment'>-- First case: template contains no '.'s. Just re-reverse it.</span>
<a name="line-53"></a>         <span class='hs-layout'>(</span><span class='hs-varid'>rev_suffix</span><span class='hs-layout'>,</span> <span class='hs-str'>""</span><span class='hs-layout'>)</span>       <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-varid'>reverse</span> <span class='hs-varid'>rev_suffix</span><span class='hs-layout'>,</span> <span class='hs-str'>""</span><span class='hs-layout'>)</span>
<a name="line-54"></a>         <span class='hs-comment'>-- Second case: template contains at least one '.'. Strip the</span>
<a name="line-55"></a>         <span class='hs-comment'>-- dot from the prefix and prepend it to the suffix (if we don't</span>
<a name="line-56"></a>         <span class='hs-comment'>-- do this, the unique number will get added after the '.' and</span>
<a name="line-57"></a>         <span class='hs-comment'>-- thus be part of the extension, which is wrong.)</span>
<a name="line-58"></a>         <span class='hs-layout'>(</span><span class='hs-varid'>rev_suffix</span><span class='hs-layout'>,</span> <span class='hs-chr'>'.'</span><span class='hs-conop'>:</span><span class='hs-varid'>rest</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-varid'>reverse</span> <span class='hs-varid'>rest</span><span class='hs-layout'>,</span> <span class='hs-chr'>'.'</span><span class='hs-conop'>:</span><span class='hs-varid'>reverse</span> <span class='hs-varid'>rev_suffix</span><span class='hs-layout'>)</span>
<a name="line-59"></a>         <span class='hs-comment'>-- Otherwise, something is wrong, because (break (== '.')) should</span>
<a name="line-60"></a>         <span class='hs-comment'>-- always return a pair with either the empty string or a string</span>
<a name="line-61"></a>         <span class='hs-comment'>-- beginning with '.' as the second component.</span>
<a name="line-62"></a>         <span class='hs-keyword'>_</span>                      <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>error</span> <span class='hs-str'>"bug in System.IO.openTempFile"</span>
<a name="line-63"></a>
<a name="line-64"></a>    <span class='hs-varid'>oflags</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>rw_flags</span> <span class='hs-varop'>.|.</span> <span class='hs-varid'>o_EXCL</span> <span class='hs-varop'>.|.</span> <span class='hs-varid'>o_BINARY</span>
<a name="line-65"></a>
<a name="line-66"></a>    <span class='hs-varid'>findTempName</span> <span class='hs-varid'>x</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>do</span>
<a name="line-67"></a>      <span class='hs-varid'>fd</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-varid'>withFilePath</span> <span class='hs-varid'>filepath</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span> <span class='hs-varid'>f</span> <span class='hs-keyglyph'>-&gt;</span>
<a name="line-68"></a>              <span class='hs-varid'>c_open</span> <span class='hs-varid'>f</span> <span class='hs-varid'>oflags</span> <span class='hs-num'>0o666</span>
<a name="line-69"></a>      <span class='hs-keyword'>if</span> <span class='hs-varid'>fd</span> <span class='hs-varop'>&lt;</span> <span class='hs-num'>0</span>
<a name="line-70"></a>       <span class='hs-keyword'>then</span> <span class='hs-keyword'>do</span>
<a name="line-71"></a>         <span class='hs-varid'>errno</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-varid'>getErrno</span>
<a name="line-72"></a>         <span class='hs-keyword'>if</span> <span class='hs-varid'>errno</span> <span class='hs-varop'>==</span> <span class='hs-varid'>eEXIST</span>
<a name="line-73"></a>           <span class='hs-keyword'>then</span> <span class='hs-varid'>findTempName</span> <span class='hs-layout'>(</span><span class='hs-varid'>x</span><span class='hs-varop'>+</span><span class='hs-num'>1</span><span class='hs-layout'>)</span>
<a name="line-74"></a>           <span class='hs-keyword'>else</span> <span class='hs-varid'>ioError</span> <span class='hs-layout'>(</span><span class='hs-varid'>errnoToIOError</span> <span class='hs-str'>"openNewBinaryFile"</span> <span class='hs-varid'>errno</span> <span class='hs-conid'>Nothing</span> <span class='hs-layout'>(</span><span class='hs-conid'>Just</span> <span class='hs-varid'>dir</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-75"></a>       <span class='hs-keyword'>else</span> <span class='hs-keyword'>do</span>
<a name="line-76"></a>         <span class='hs-comment'>-- TODO: We want to tell fdToHandle what the file path is,</span>
<a name="line-77"></a>         <span class='hs-comment'>-- as any exceptions etc will only be able to report the</span>
<a name="line-78"></a>         <span class='hs-comment'>-- FD currently</span>
<a name="line-79"></a>         <span class='hs-varid'>h</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-varid'>fdToHandle</span> <span class='hs-varid'>fd</span> <span class='hs-varop'>`onException`</span> <span class='hs-varid'>c_close</span> <span class='hs-varid'>fd</span>
<a name="line-80"></a>         <span class='hs-varid'>return</span> <span class='hs-layout'>(</span><span class='hs-varid'>filepath</span><span class='hs-layout'>,</span> <span class='hs-varid'>h</span><span class='hs-layout'>)</span>
<a name="line-81"></a>      <span class='hs-keyword'>where</span>
<a name="line-82"></a>        <span class='hs-varid'>filename</span>        <span class='hs-keyglyph'>=</span> <span class='hs-varid'>prefix</span> <span class='hs-varop'>++</span> <span class='hs-varid'>show</span> <span class='hs-varid'>x</span> <span class='hs-varop'>++</span> <span class='hs-varid'>suffix</span>
<a name="line-83"></a>        <span class='hs-varid'>filepath</span>        <span class='hs-keyglyph'>=</span> <span class='hs-varid'>dir</span> <span class='hs-varop'>`combine`</span> <span class='hs-varid'>filename</span>
<a name="line-84"></a>
<a name="line-85"></a>        <span class='hs-comment'>-- FIXME: bits copied from System.FilePath</span>
<a name="line-86"></a>        <span class='hs-varid'>combine</span> <span class='hs-varid'>a</span> <span class='hs-varid'>b</span>
<a name="line-87"></a>                  <span class='hs-keyglyph'>|</span> <span class='hs-varid'>null</span> <span class='hs-varid'>b</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>a</span>
<a name="line-88"></a>                  <span class='hs-keyglyph'>|</span> <span class='hs-varid'>null</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>b</span>
<a name="line-89"></a>                  <span class='hs-keyglyph'>|</span> <span class='hs-varid'>last</span> <span class='hs-varid'>a</span> <span class='hs-varop'>==</span> <span class='hs-varid'>pathSeparator</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>a</span> <span class='hs-varop'>++</span> <span class='hs-varid'>b</span>
<a name="line-90"></a>                  <span class='hs-keyglyph'>|</span> <span class='hs-varid'>otherwise</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>a</span> <span class='hs-varop'>++</span> <span class='hs-keyglyph'>[</span><span class='hs-varid'>pathSeparator</span><span class='hs-keyglyph'>]</span> <span class='hs-varop'>++</span> <span class='hs-varid'>b</span>
<a name="line-91"></a>
<a name="line-92"></a><a name="pathSeparator"></a><span class='hs-comment'>-- FIXME: Should use System.FilePath library</span>
<a name="line-93"></a><span class='hs-definition'>pathSeparator</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Char</span>
<a name="line-94"></a><span class='hs-cpp'>#ifdef mingw32_HOST_OS</span>
<a name="line-95"></a><span class='hs-definition'>pathSeparator</span> <span class='hs-keyglyph'>=</span> <span class='hs-chr'>'\\'</span>
<a name="line-96"></a><span class='hs-cpp'>#else</span>
<a name="line-97"></a><span class='hs-definition'>pathSeparator</span> <span class='hs-keyglyph'>=</span> <span class='hs-chr'>'/'</span>
<a name="line-98"></a><span class='hs-cpp'>#endif</span>
<a name="line-99"></a>
<a name="line-100"></a><a name="std_flags"></a><span class='hs-comment'>-- FIXME: Copied from GHC.Handle</span>
<a name="line-101"></a><span class='hs-definition'>std_flags</span><span class='hs-layout'>,</span> <span class='hs-varid'>output_flags</span><span class='hs-layout'>,</span> <span class='hs-varid'>rw_flags</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>CInt</span>
<a name="line-102"></a><span class='hs-definition'>std_flags</span>    <span class='hs-keyglyph'>=</span> <span class='hs-varid'>o_NONBLOCK</span>   <span class='hs-varop'>.|.</span> <span class='hs-varid'>o_NOCTTY</span>
<a name="line-103"></a><a name="output_flags"></a><span class='hs-definition'>output_flags</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>std_flags</span>    <span class='hs-varop'>.|.</span> <span class='hs-varid'>o_CREAT</span>
<a name="line-104"></a><a name="rw_flags"></a><span class='hs-definition'>rw_flags</span>     <span class='hs-keyglyph'>=</span> <span class='hs-varid'>output_flags</span> <span class='hs-varop'>.|.</span> <span class='hs-varid'>o_RDWR</span>
<a name="line-105"></a>
<a name="line-106"></a><a name="createTempDirectory"></a><span class='hs-definition'>createTempDirectory</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>FilePath</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>String</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>FilePath</span>
<a name="line-107"></a><span class='hs-definition'>createTempDirectory</span> <span class='hs-varid'>dir</span> <span class='hs-varid'>template</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>do</span>
<a name="line-108"></a>  <span class='hs-varid'>pid</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-varid'>c_getpid</span>
<a name="line-109"></a>  <span class='hs-varid'>findTempName</span> <span class='hs-varid'>pid</span>
<a name="line-110"></a>  <span class='hs-keyword'>where</span>
<a name="line-111"></a>    <span class='hs-varid'>findTempName</span> <span class='hs-varid'>x</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>do</span>
<a name="line-112"></a>      <span class='hs-keyword'>let</span> <span class='hs-varid'>dirpath</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>dir</span> <span class='hs-varop'>&lt;/&gt;</span> <span class='hs-varid'>template</span> <span class='hs-varop'>++</span> <span class='hs-str'>"-"</span> <span class='hs-varop'>++</span> <span class='hs-varid'>show</span> <span class='hs-varid'>x</span>
<a name="line-113"></a>      <span class='hs-varid'>r</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-varid'>tryIO</span> <span class='hs-varop'>$</span> <span class='hs-varid'>mkPrivateDir</span> <span class='hs-varid'>dirpath</span>
<a name="line-114"></a>      <span class='hs-keyword'>case</span> <span class='hs-varid'>r</span> <span class='hs-keyword'>of</span>
<a name="line-115"></a>        <span class='hs-conid'>Right</span> <span class='hs-keyword'>_</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>return</span> <span class='hs-varid'>dirpath</span>
<a name="line-116"></a>        <span class='hs-conid'>Left</span>  <span class='hs-varid'>e</span> <span class='hs-keyglyph'>|</span> <span class='hs-varid'>isAlreadyExistsError</span> <span class='hs-varid'>e</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>findTempName</span> <span class='hs-layout'>(</span><span class='hs-varid'>x</span><span class='hs-varop'>+</span><span class='hs-num'>1</span><span class='hs-layout'>)</span>
<a name="line-117"></a>                <span class='hs-keyglyph'>|</span> <span class='hs-varid'>otherwise</span>              <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>ioError</span> <span class='hs-varid'>e</span>
<a name="line-118"></a>
<a name="line-119"></a><a name="mkPrivateDir"></a><span class='hs-definition'>mkPrivateDir</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>String</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span>
<a name="line-120"></a><span class='hs-cpp'>#if defined(mingw32_HOST_OS) || defined(ghcjs_HOST_OS)</span>
<a name="line-121"></a><span class='hs-definition'>mkPrivateDir</span> <span class='hs-varid'>s</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>createDirectory</span> <span class='hs-varid'>s</span>
<a name="line-122"></a><span class='hs-cpp'>#else</span>
<a name="line-123"></a><span class='hs-definition'>mkPrivateDir</span> <span class='hs-varid'>s</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>System</span><span class='hs-varop'>.</span><span class='hs-conid'>Posix</span><span class='hs-varop'>.</span><span class='hs-varid'>createDirectory</span> <span class='hs-varid'>s</span> <span class='hs-num'>0o700</span>
<a name="line-124"></a><span class='hs-cpp'>#endif</span>
</pre></body>
</html>