You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

160 lines
11 KiB

<!-- Generated by pkgdown: do not edit by hand -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Strip comments and white space from a single source file — cloc_remove_comments • cloc</title>
<!-- jquery -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>
<!-- Bootstrap -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha256-916EbMg70RQy9LHiGkXzG8hSg9EdNy97GazNG/aiY1w=" crossorigin="anonymous" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha256-U5ZEeKfGNOja007MMD3YBI0A3OSZOQbeG6z2f2Y0hu8=" crossorigin="anonymous"></script>
<!-- Font Awesome icons -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" integrity="sha256-eZrrJcwDc/3uDhsdt61sL2oOBY362qM3lon1gyExkL0=" crossorigin="anonymous" />
<!-- clipboard.js -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.4/clipboard.min.js" integrity="sha256-FiZwavyI2V6+EXO1U+xzLG3IKldpiTFf3153ea9zikQ=" crossorigin="anonymous"></script>
<!-- sticky kit -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/sticky-kit/1.1.3/sticky-kit.min.js" integrity="sha256-c4Rlo1ZozqTPE2RLuvbusY3+SU1pQaJC0TjuhygMipw=" crossorigin="anonymous"></script>
<!-- pkgdown -->
<link href="../pkgdown.css" rel="stylesheet">
<script src="../pkgdown.js"></script>
<meta property="og:title" content="Strip comments and white space from a single source file — cloc_remove_comments" />
<meta property="og:description" content="Pass in a path to a source file and retrieve a version of the source file
without comments (or white space)." />
<meta name="twitter:card" content="summary" />
<!-- mathjax -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js" integrity="sha256-nvJJv9wWKEm88qvoQl9ekL2J+k/RWIsaSScxxlsrv8k=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/config/TeX-AMS-MML_HTMLorMML.js" integrity="sha256-84DKXVJXs0/F8OTMzX4UR909+jtl4G7SPypPavF+GfA=" crossorigin="anonymous"></script>
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body>
<div class="container template-reference-topic">
<header>
<div class="navbar navbar-default navbar-fixed-top" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<span class="navbar-brand">
<a class="navbar-link" href="../index.html">cloc</a>
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.3.0</span>
</span>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li>
<a href="../index.html">
<span class="fa fa-home fa-lg"></span>
</a>
</li>
<li>
<a href="../reference/index.html">Reference</a>
</li>
<li>
<a href="../news/index.html">Changelog</a>
</li>
</ul>
<ul class="nav navbar-nav navbar-right">
</ul>
</div><!--/.nav-collapse -->
</div><!--/.container -->
</div><!--/.navbar -->
</header>
<div class="row">
<div class="col-md-9 contents">
<div class="page-header">
<h1>Strip comments and white space from a single source file</h1>
<div class="hidden name"><code>cloc_remove_comments.Rd</code></div>
</div>
<div class="ref-description">
<p>Pass in a path to a source file and retrieve a version of the source file
without comments (or white space).</p>
</div>
<pre class="usage"><span class='fu'>cloc_remove_comments</span>(<span class='no'>source_file</span>)</pre>
<h2 class="hasAnchor" id="arguments"><a class="anchor" href="#arguments"></a>Arguments</h2>
<table class="ref-arguments">
<colgroup><col class="name" /><col class="desc" /></colgroup>
<tr>
<th>source_file</th>
<td><p>path to source file</p></td>
</tr>
</table>
<h2 class="hasAnchor" id="value"><a class="anchor" href="#value"></a>Value</h2>
<p>character vector containing only code blocks</p>
<h2 class="hasAnchor" id="examples"><a class="anchor" href="#examples"></a>Examples</h2>
<pre class="examples"><div class='input'><span class='fu'>cloc_remove_comments</span>(<span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/system.file'>system.file</a></span>(<span class='st'>"extdata"</span>, <span class='st'>"qrencoder.cpp"</span>, <span class='kw'>package</span><span class='kw'>=</span><span class='st'>"cloc"</span>))</div><div class='output co'>#&gt; [1] "#include &lt;Rcpp.h&gt;\n#include \"qrencode.h\"\n#include &lt;stdio.h&gt;\n#include &lt;unistd.h&gt;\n#include &lt;string&gt;\n#include &lt;fstream&gt;\n#include &lt;streambuf&gt;\nusing namespace Rcpp;\n#define INCHES_PER_METER (100.0/2.54)\nstatic int rle = 1;\nstatic unsigned int fg_color[4] = {0, 0, 0, 255};\nstatic unsigned int bg_color[4] = {255, 255, 255, 255};\nNumericMatrix qrencode_raw(std::string to_encode,\n int version=0,\n int level=0,\n int hint=2,\n int caseinsensitive=1) {\n QRcode *qrcode ;\n unsigned char *row;\n int x, y;\n qrcode = QRcode_encodeString(to_encode.c_str(),\n version,\n (QRecLevel)level,\n (QRencodeMode)hint, caseinsensitive);\n NumericMatrix qr(qrcode-&gt;width, qrcode-&gt;width);\n for(y=0; y &lt;qrcode-&gt;width; y++) {\n row = qrcode-&gt;data+(y*qrcode-&gt;width);\n for(x = 0; x &lt; qrcode-&gt;width; x++) {\n qr(x, y) = row[x]&amp;0x1;\n }\n }\n return(qr);\n}\nstatic FILE *openFile(const char *outfile) {\n FILE *fp;\n if(outfile == NULL || (outfile[0] == '-' &amp;&amp; outfile[1] == '\\0')) {\n fp = stdout;\n } else {\n fp = fopen(outfile, \"wb\");\n if (fp == NULL) return(NULL);\n }\n return fp;\n}\nstatic void writeSVG_writeRect(FILE *fp, int x, int y, int width, char* col, float opacity) {\n if(fg_color[3] != 255) {\n fprintf(fp, \"\\t\\t\\t&lt;rect x=\\\"%d\\\" y=\\\"%d\\\" width=\\\"%d\\\" height=\\\"1\\\" \"\\\n \"fill=\\\"#%s\\\" fill-opacity=\\\"%f\\\" /&gt;\\n\",\n x, y, width, col, opacity );\n } else {\n fprintf(fp, \"\\t\\t\\t&lt;rect x=\\\"%d\\\" y=\\\"%d\\\" width=\\\"%d\\\" height=\\\"1\\\" \"\\\n \"fill=\\\"#%s\\\" /&gt;\\n\",\n x, y, width, col );\n }\n}\nCharacterVector writeSVG(QRcode *qrcode, int margin, int size, int dpi) {\n FILE *fp;\n unsigned char *row, *p;\n int x, y, x0, pen;\n int symwidth, realwidth;\n float scale;\n char fg[7], bg[7];\n float fg_opacity;\n float bg_opacity;\n char fname[L_tmpnam];\n memset(fname, 0, L_tmpnam);\n strncpy(fname,\"qrencoder-XXXXXX\", 16);\n fp = openFile(mktemp(fname));\n if (fp == NULL) return(R_NilValue);\n scale = dpi * INCHES_PER_METER / 100.0;\n symwidth = qrcode-&gt;width + margin * 2;\n realwidth = symwidth * size;\n snprintf(fg, 7, \"%02x%02x%02x\", fg_color[0], fg_color[1], fg_color[2]);\n snprintf(bg, 7, \"%02x%02x%02x\", bg_color[0], bg_color[1], bg_color[2]);\n fg_opacity = (float)fg_color[3] / 255;\n bg_opacity = (float)bg_color[3] / 255;\n fputs( \"&lt;?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"yes\\\"?&gt;\\n\", fp );\n fprintf( fp, \"&lt;!-- Created with qrencode %s (http:\n QRcode_APIVersionString() );\n fprintf( fp, \"&lt;svg width=\\\"%0.2fcm\\\" height=\\\"%0.2fcm\\\" viewBox=\\\"0 0 %d %d\\\"\"\\\n \" preserveAspectRatio=\\\"none\\\" version=\\\"1.1\\\"\" \\\n \" xmlns=\\\"http:\n realwidth / scale, realwidth / scale, symwidth, symwidth\n );\n fputs( \"\\t&lt;g id=\\\"QRcode\\\"&gt;\\n\", fp );\n if(bg_color[3] != 255) {\n fprintf(fp, \"\\t\\t&lt;rect x=\\\"0\\\" y=\\\"0\\\" width=\\\"%d\\\" height=\\\"%d\\\" fill=\\\"#%s\\\" fill-opacity=\\\"%f\\\" /&gt;\\n\", symwidth, symwidth, bg, bg_opacity);\n } else {\n fprintf(fp, \"\\t\\t&lt;rect x=\\\"0\\\" y=\\\"0\\\" width=\\\"%d\\\" height=\\\"%d\\\" fill=\\\"#%s\\\" /&gt;\\n\", symwidth, symwidth, bg);\n }\n fputs( \"\\t\\t&lt;g id=\\\"Pattern\\\"&gt;\\n\", fp);\n p = qrcode-&gt;data;\n for(y=0; y&lt;qrcode-&gt;width; y++) {\n row = (p+(y*qrcode-&gt;width));\n if( !rle ) {\n for(x=0; x&lt;qrcode-&gt;width; x++) {\n if(*(row+x)&amp;0x1) {\n writeSVG_writeRect(fp,\tmargin + x,\n margin + y, 1,\n fg, fg_opacity);\n }\n }\n } else {\n pen = 0;\n x0 = 0;\n for(x=0; x&lt;qrcode-&gt;width; x++) {\n if( !pen ) {\n pen = *(row+x)&amp;0x1;\n x0 = x;\n } else {\n if(!(*(row+x)&amp;0x1)) {\n writeSVG_writeRect(fp, x0 + margin, y + margin, x-x0, fg, fg_opacity);\n pen = 0;\n }\n }\n }\n if( pen ) {\n writeSVG_writeRect(fp, x0 + margin, y + margin, qrcode-&gt;width - x0, fg, fg_opacity);\n }\n }\n }\n fputs( \"\\t\\t&lt;/g&gt;\\n\", fp );\n fputs( \"\\t&lt;/g&gt;\\n\", fp );\n fputs( \"&lt;/svg&gt;\\n\", fp );\n fclose( fp );\n std::ifstream t(fname);\n std::string str((std::istreambuf_iterator&lt;char&gt;(t)),\n std::istreambuf_iterator&lt;char&gt;());\n t.close();\n unlink(fname);\n return(Rcpp::wrap(str));\n}\nCharacterVector qrencode_svg(\n std::string to_encode,\n int version=0, int level=0, int hint=2,\n int caseinsensitive=1, int margin = 0, int size = 3, int dpi = 72) {\n QRcode *qrcode ;\n qrcode = QRcode_encodeString(to_encode.c_str(),\n version,\n (QRecLevel)level,\n (QRencodeMode)hint, caseinsensitive);\n return(writeSVG(qrcode, margin, size, dpi));\n}"</div></pre>
</div>
<div class="col-md-3 hidden-xs hidden-sm" id="sidebar">
<h2>Contents</h2>
<ul class="nav nav-pills nav-stacked">
<li><a href="#arguments">Arguments</a></li>
<li><a href="#value">Value</a></li>
<li><a href="#examples">Examples</a></li>
</ul>
</div>
</div>
<footer>
<div class="copyright">
<p>Developed by Bob Rudis, Al Danial.</p>
</div>
<div class="pkgdown">
<p>Site built with <a href="https://pkgdown.r-lib.org/">pkgdown</a> 1.3.0.</p>
</div>
</footer>
</div>
</body>
</html>