Latest commit

History

17 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

SIMPLE_LIB

A few "library"-like interfaces to simplify and clean up common functionality in C codes. Mostly they work on an object like basis, where you create a structure and then pass that C structure to all appropriate functions.

GENERAL USAGE

The easiest way to use these in your code is simply to include them.

For example:

#include <simple_reader.c> 

And then make sure to include the directory where the source code lives in the compilation (-I for gcc).

You can simply copy the respective files to your source code directory, and then pass the current directory to the compiler. For example:

% gcc -I. ... 

DEPENDENCIES

These make use of the "check_utils", which are available at: https://github.com/cmcbride/check_utils

SIMPLE_READER

An interface to simplify ASCII file reading, especially on a line-by-line basis. These functions are all prefixed with "sr_" for "simple_reader".

This reads a file line-by-line, storing eaach in an internal buffer minimally allocated. If the line is too long for the buffer, an error is reported and the processes is halted.

See source for more details.

SIMPLE_ARRAY

An interface to handle 1-D arrays of arbitrary type, and easily enable resizing. These functions are all prefixed with "sa_" for "simple_array".

See source for more details.

SIMPLE_PARAM

An interface to handle input parameter file. This might later be extended to handle command line arguments, but not for now. These functions are all prefixed with "sp_" for "simple_param".

See source for more details.

TODO

Better documentation. Future "libraries" include:

  • simple linked lists
  • simple hashes

AUTHOR

Cameron McBride December 2012 cameron.mcbride@gmail.com

About

C "library" utilities that abstract some common functionality for simplier (shorter, faster, and safer) coding

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Latest commit

History

17 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

SIMPLE_LIB

A few "library"-like interfaces to simplify and clean up common functionality in C codes. Mostly they work on an object like basis, where you create a structure and then pass that C structure to all appropriate functions.

GENERAL USAGE

The easiest way to use these in your code is simply to include them.

For example:

#include <simple_reader.c> 

And then make sure to include the directory where the source code lives in the compilation (-I for gcc).

You can simply copy the respective files to your source code directory, and then pass the current directory to the compiler. For example:

% gcc -I. ... 

DEPENDENCIES

These make use of the "check_utils", which are available at: https://github.com/cmcbride/check_utils

SIMPLE_READER

An interface to simplify ASCII file reading, especially on a line-by-line basis. These functions are all prefixed with "sr_" for "simple_reader".

This reads a file line-by-line, storing eaach in an internal buffer minimally allocated. If the line is too long for the buffer, an error is reported and the processes is halted.

See source for more details.

SIMPLE_ARRAY

An interface to handle 1-D arrays of arbitrary type, and easily enable resizing. These functions are all prefixed with "sa_" for "simple_array".

See source for more details.

SIMPLE_PARAM

An interface to handle input parameter file. This might later be extended to handle command line arguments, but not for now. These functions are all prefixed with "sp_" for "simple_param".

See source for more details.

TODO

Better documentation. Future "libraries" include:

  • simple linked lists
  • simple hashes

AUTHOR

Cameron McBride December 2012 cameron.mcbride@gmail.com

About

C "library" utilities that abstract some common functionality for simplier (shorter, faster, and safer) coding

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

17 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

SIMPLE_LIB

A few "library"-like interfaces to simplify and clean up common functionality in C codes. Mostly they work on an object like basis, where you create a structure and then pass that C structure to all appropriate functions.

GENERAL USAGE

The easiest way to use these in your code is simply to include them.

For example:

#include <simple_reader.c> 

And then make sure to include the directory where the source code lives in the compilation (-I for gcc).

You can simply copy the respective files to your source code directory, and then pass the current directory to the compiler. For example:

% gcc -I. ... 

DEPENDENCIES

These make use of the "check_utils", which are available at: https://github.com/cmcbride/check_utils

SIMPLE_READER

An interface to simplify ASCII file reading, especially on a line-by-line basis. These functions are all prefixed with "sr_" for "simple_reader".

This reads a file line-by-line, storing eaach in an internal buffer minimally allocated. If the line is too long for the buffer, an error is reported and the processes is halted.

See source for more details.

SIMPLE_ARRAY

An interface to handle 1-D arrays of arbitrary type, and easily enable resizing. These functions are all prefixed with "sa_" for "simple_array".

See source for more details.

SIMPLE_PARAM

An interface to handle input parameter file. This might later be extended to handle command line arguments, but not for now. These functions are all prefixed with "sp_" for "simple_param".

See source for more details.

TODO

Better documentation. Future "libraries" include:

  • simple linked lists
  • simple hashes

AUTHOR

Cameron McBride December 2012 cameron.mcbride@gmail.com

About

C "library" utilities that abstract some common functionality for simplier (shorter, faster, and safer) coding

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

17 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

SIMPLE_LIB

A few "library"-like interfaces to simplify and clean up common functionality in C codes. Mostly they work on an object like basis, where you create a structure and then pass that C structure to all appropriate functions.

GENERAL USAGE

The easiest way to use these in your code is simply to include them.

For example:

#include <simple_reader.c> 

And then make sure to include the directory where the source code lives in the compilation (-I for gcc).

You can simply copy the respective files to your source code directory, and then pass the current directory to the compiler. For example:

% gcc -I. ... 

DEPENDENCIES

These make use of the "check_utils", which are available at: https://github.com/cmcbride/check_utils

SIMPLE_READER

An interface to simplify ASCII file reading, especially on a line-by-line basis. These functions are all prefixed with "sr_" for "simple_reader".

This reads a file line-by-line, storing eaach in an internal buffer minimally allocated. If the line is too long for the buffer, an error is reported and the processes is halted.

See source for more details.

SIMPLE_ARRAY

An interface to handle 1-D arrays of arbitrary type, and easily enable resizing. These functions are all prefixed with "sa_" for "simple_array".

See source for more details.

SIMPLE_PARAM

An interface to handle input parameter file. This might later be extended to handle command line arguments, but not for now. These functions are all prefixed with "sp_" for "simple_param".

See source for more details.

TODO

Better documentation. Future "libraries" include:

  • simple linked lists
  • simple hashes

AUTHOR

Cameron McBride December 2012 cameron.mcbride@gmail.com

About

C "library" utilities that abstract some common functionality for simplier (shorter, faster, and safer) coding

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Latest commit

History

17 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

SIMPLE_LIB

A few "library"-like interfaces to simplify and clean up common functionality in C codes. Mostly they work on an object like basis, where you create a structure and then pass that C structure to all appropriate functions.

GENERAL USAGE

The easiest way to use these in your code is simply to include them.

For example:

#include <simple_reader.c> 

And then make sure to include the directory where the source code lives in the compilation (-I for gcc).

You can simply copy the respective files to your source code directory, and then pass the current directory to the compiler. For example:

% gcc -I. ... 

DEPENDENCIES

These make use of the "check_utils", which are available at: https://github.com/cmcbride/check_utils

SIMPLE_READER

An interface to simplify ASCII file reading, especially on a line-by-line basis. These functions are all prefixed with "sr_" for "simple_reader".

This reads a file line-by-line, storing eaach in an internal buffer minimally allocated. If the line is too long for the buffer, an error is reported and the processes is halted.

See source for more details.

SIMPLE_ARRAY

An interface to handle 1-D arrays of arbitrary type, and easily enable resizing. These functions are all prefixed with "sa_" for "simple_array".

See source for more details.

SIMPLE_PARAM

An interface to handle input parameter file. This might later be extended to handle command line arguments, but not for now. These functions are all prefixed with "sp_" for "simple_param".

See source for more details.

TODO

Better documentation. Future "libraries" include:

  • simple linked lists
  • simple hashes

AUTHOR

Cameron McBride December 2012 cameron.mcbride@gmail.com

About

C "library" utilities that abstract some common functionality for simplier (shorter, faster, and safer) coding

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

17 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

SIMPLE_LIB

A few "library"-like interfaces to simplify and clean up common functionality in C codes. Mostly they work on an object like basis, where you create a structure and then pass that C structure to all appropriate functions.

GENERAL USAGE

The easiest way to use these in your code is simply to include them.

For example:

#include <simple_reader.c> 

And then make sure to include the directory where the source code lives in the compilation (-I for gcc).

You can simply copy the respective files to your source code directory, and then pass the current directory to the compiler. For example:

% gcc -I. ... 

DEPENDENCIES

These make use of the "check_utils", which are available at: https://github.com/cmcbride/check_utils

SIMPLE_READER

An interface to simplify ASCII file reading, especially on a line-by-line basis. These functions are all prefixed with "sr_" for "simple_reader".

This reads a file line-by-line, storing eaach in an internal buffer minimally allocated. If the line is too long for the buffer, an error is reported and the processes is halted.

See source for more details.

SIMPLE_ARRAY

An interface to handle 1-D arrays of arbitrary type, and easily enable resizing. These functions are all prefixed with "sa_" for "simple_array".

See source for more details.

SIMPLE_PARAM

An interface to handle input parameter file. This might later be extended to handle command line arguments, but not for now. These functions are all prefixed with "sp_" for "simple_param".

See source for more details.

TODO

Better documentation. Future "libraries" include:

  • simple linked lists
  • simple hashes

AUTHOR

Cameron McBride December 2012 cameron.mcbride@gmail.com

About

C "library" utilities that abstract some common functionality for simplier (shorter, faster, and safer) coding

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

17 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

SIMPLE_LIB

A few "library"-like interfaces to simplify and clean up common functionality in C codes. Mostly they work on an object like basis, where you create a structure and then pass that C structure to all appropriate functions.

GENERAL USAGE

The easiest way to use these in your code is simply to include them.

For example:

#include <simple_reader.c> 

And then make sure to include the directory where the source code lives in the compilation (-I for gcc).

You can simply copy the respective files to your source code directory, and then pass the current directory to the compiler. For example:

% gcc -I. ... 

DEPENDENCIES

These make use of the "check_utils", which are available at: https://github.com/cmcbride/check_utils

SIMPLE_READER

An interface to simplify ASCII file reading, especially on a line-by-line basis. These functions are all prefixed with "sr_" for "simple_reader".

This reads a file line-by-line, storing eaach in an internal buffer minimally allocated. If the line is too long for the buffer, an error is reported and the processes is halted.

See source for more details.

SIMPLE_ARRAY

An interface to handle 1-D arrays of arbitrary type, and easily enable resizing. These functions are all prefixed with "sa_" for "simple_array".

See source for more details.

SIMPLE_PARAM

An interface to handle input parameter file. This might later be extended to handle command line arguments, but not for now. These functions are all prefixed with "sp_" for "simple_param".

See source for more details.

TODO

Better documentation. Future "libraries" include:

  • simple linked lists
  • simple hashes

AUTHOR

Cameron McBride December 2012 cameron.mcbride@gmail.com

About

C "library" utilities that abstract some common functionality for simplier (shorter, faster, and safer) coding

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Latest commit

History

17 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

SIMPLE_LIB

A few "library"-like interfaces to simplify and clean up common functionality in C codes. Mostly they work on an object like basis, where you create a structure and then pass that C structure to all appropriate functions.

GENERAL USAGE

The easiest way to use these in your code is simply to include them.

For example:

#include <simple_reader.c> 

And then make sure to include the directory where the source code lives in the compilation (-I for gcc).

You can simply copy the respective files to your source code directory, and then pass the current directory to the compiler. For example:

% gcc -I. ... 

DEPENDENCIES

These make use of the "check_utils", which are available at: https://github.com/cmcbride/check_utils

SIMPLE_READER

An interface to simplify ASCII file reading, especially on a line-by-line basis. These functions are all prefixed with "sr_" for "simple_reader".

This reads a file line-by-line, storing eaach in an internal buffer minimally allocated. If the line is too long for the buffer, an error is reported and the processes is halted.

See source for more details.

SIMPLE_ARRAY

An interface to handle 1-D arrays of arbitrary type, and easily enable resizing. These functions are all prefixed with "sa_" for "simple_array".

See source for more details.

SIMPLE_PARAM

An interface to handle input parameter file. This might later be extended to handle command line arguments, but not for now. These functions are all prefixed with "sp_" for "simple_param".

See source for more details.

TODO

Better documentation. Future "libraries" include:

  • simple linked lists
  • simple hashes

AUTHOR

Cameron McBride December 2012 cameron.mcbride@gmail.com

About

C "library" utilities that abstract some common functionality for simplier (shorter, faster, and safer) coding

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages