This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#ifndef REMO_H
#define REMO_H
#include <stdio.h>
#include <ctype.h>
#include <string.h>
#include <stdbool.h>
typedef struct {
const char *str;
const char *description;
} remo_t;
remo_t remo[] = {
{"\U0001F600", "Grinning Face"}, // 😀
{"\U0001F601", "Beaming Face with Smiling Eyes"}, // 😁
{"\U0001F602", "Face with Tears of Joy"}, // 😂
{"\U0001F923", "Rolling on the Floor Laughing"}, // ðŸĪĢ
{"\U0001F603", "Grinning Face with Big Eyes"}, // 😃
{"\U0001F604", "Grinning Face with Smiling Eyes"}, // 😄
{"\U0001F609", "Winking Face"}, // 😉
{"\U0001F60A", "Smiling Face with Smiling Eyes"}, // 😊
{"\U0001F60D", "Smiling Face with Heart-Eyes"}, // 😍
{"\U0001F618", "Face Blowing a Kiss"}, // 😘
{"\U0001F617", "Kissing Face"}, // 😗
{"\U0001F61A", "Kissing Face with Closed Eyes"}, // 😚
{"\U0001F642", "Slightly Smiling Face"}, // 🙂
{"\U0001F643", "Upside-Down Face"}, // 🙃
{"\U0001F970", "Smiling Face with Hearts"}, // ðŸĨ°
{"\U0001F60B", "Face Savoring Food"}, // 😋
{"\U0001F61B", "Face with Tongue"}, // 😛
{"\U0001F61C", "Winking Face with Tongue"}, // 😜
{"\U0001F92A", "Zany Face"}, // ðŸĪŠ
{"\U0001F929", "Star-Struck"}, // ðŸĪĐ
{"\U0001F631", "Face Screaming in Fear"}, // ðŸ˜ą
{"\U0001F62D", "Loudly Crying Face"}, // 😭
{"\U0001F624", "Face with Steam From Nose"}, // ðŸ˜Ī
{"\U0001F620", "Angry Face"}, // 😠
{"\U0001F621", "Pouting Face"}, // ðŸ˜Ą
{"\U0001F47B", "Ghost"}, // ðŸ‘ŧ
{"\U0001F480", "Skull"}, // 💀
{"\U0001F4A9", "Pile of Poo"}, // ðŸ’Đ
{"\U0001F47D", "Alien"}, // ðŸ‘―
// Geometric Shapes
{"\U000025A0", "Black Square"}, // ■
{"\U000025B2", "Upward Triangle"}, // â–ē
{"\U000025CF", "Black Circle"}, // ●
{"\U000025CB", "White Circle"}, // ○
{"\U00002B1B", "Large Black Square"}, // ⮛
{"\U00002B1C", "Large White Square"}, // ⮜
// Mathematical Symbols
{"\U00002200", "For All"}, // ∀
{"\U00002203", "Exists"}, // ∃
{"\U00002205", "Empty Set"}, // ∅
{"\U00002207", "Nabla"}, // ∇
{"\U0000220F", "N-Ary Product"}, // ∏
{"\U00002212", "Minus Sign"}, // −
{"\U0000221E", "Infinity"}, // ∞
// Arrows
{"\U00002190", "Left Arrow"}, // ←
{"\U00002191", "Up Arrow"}, // ↑
{"\U00002192", "Right Arrow"}, // →
{"\U00002193", "Down Arrow"}, // ↓
{"\U00002195", "Up Down Arrow"}, // ↕
{"\U00002197", "Up Right Arrow"}, // ↗
{"\U00002198", "Down Right Arrow"}, // ↘
{"\U000027A1", "Black Right Arrow"}, // ➡ïļ
// Dingbats
{"\U00002714", "Check Mark"}, // ✔ïļ
{"\U00002716", "Heavy Multiplication X"}, // ✖ïļ
{"\U00002728", "Sparkles"}, // âœĻ
{"\U00002757", "Exclamation Mark"}, // ❗
{"\U0000274C", "Cross Mark"}, // ❌
{"\U00002795", "Heavy Plus Sign"}, // ➕
// Miscellaneous Symbols
{"\U00002600", "Sun"}, // ☀ïļ
{"\U00002614", "Umbrella with Rain Drops"}, // ☔
{"\U00002620", "Skull and Crossbones"}, // ☠ïļ
{"\U000026A0", "Warning Sign"}, // ⚠ïļ
{"\U000026BD", "Soccer Ball"}, // âš―
{"\U000026C4", "Snowman"}, // ⛄
// Stars and Asterisks
{"\U00002733", "Eight Pointed Black Star"}, // âœģïļ
{"\U00002734", "Eight Spoked Asterisk"}, // âœīïļ
{"\U00002B50", "White Star"}, // ⭐
{"\U0001F31F", "Glowing Star"}, // 🌟
{"\U00002728", "Sparkles"}, // âœĻ
// Animals and Nature
{"\U0001F98A", "Fox"}, // ðŸĶŠ
{"\U0001F415", "Dog"}, // 🐕
{"\U0001F431", "Cat Face"}, // ðŸą
{"\U0001F435", "Monkey Face"}, // ðŸĩ
{"\U0001F408", "Black Cat"}, // 🐈
{"\U0001F98C", "Deer"}, // ðŸĶŒ
{"\U0001F344", "Mushroom"}, // 🍄
{"\U0001F333", "Tree"}, // ðŸŒģ
// Weather and Space Symbols
{"\U0001F308", "Rainbow"}, // 🌈
{"\U0001F320", "Shooting Star"}, // 🌠
{"\U00002600", "Sun"}, // ☀ïļ
{"\U00002601", "Cloud"}, // ☁ïļ
{"\U000026A1", "High Voltage"}, // ⚡
{"\U0001F525", "Fire"}, // ðŸ”Ĩ
{"\U000026C4", "Snowman"}, // ⛄
{"\U0001F30A", "Water Wave"}, // 🌊
// Transport and Map Symbols
{"\U0001F68C", "Bus"}, // 🚌
{"\U0001F697", "Car"}, // 🚗
{"\U0001F6B2", "Bicycle"}, // ðŸšē
{"\U0001F6A2", "Ship"}, // ðŸšĒ
{"\U0001F681", "Helicopter"}, // 🚁
{"\U0001F680", "Rocket"}, // 🚀
{"\U0001F6EB", "Airplane"}, // ðŸ›Ŧ
// Currency Symbols
{"\U00000024", "Dollar Sign"}, // $
{"\U000000A3", "Pound Sign"}, // ÂĢ
{"\U000000A5", "Yen Sign"}, // ÂĨ
{"\U000020AC", "Euro Sign"}, // ₮
{"\U0001F4B5", "Dollar Banknote"}, // ðŸ’ĩ
{"\U0001F4B4", "Yen Banknote"}, // ðŸ’ī
// Card Suits
{"\U00002660", "Black Spade Suit"}, // ♠ïļ
{"\U00002663", "Black Club Suit"}, // â™Ģïļ
{"\U00002665", "Black Heart Suit"}, // â™Ĩïļ
{"\U00002666", "Black Diamond Suit"}, // â™Ķïļ
{"\U0001F0CF", "Joker Card"}, // 🃏
// Office Supplies and Objects
{"\U0001F4DA", "Books"}, // 📚
{"\U0001F4D7", "Green Book"}, // 📗
{"\U0001F4C8", "Chart with Upwards Trend"}, // 📈
{"\U0001F4C9", "Chart with Downwards Trend"}, // 📉
{"\U0001F4B0", "Money Bag"}, // 💰
{"\U0001F4B8", "Money with Wings"}, // ðŸ’ļ
{"\U0001F4E6", "Package"}, // ðŸ“Ķ
// Miscellaneous Symbols
{"\U00002757", "Exclamation Mark"}, // ❗
{"\U00002714", "Check Mark"}, // ✔ïļ
{"\U0000274C", "Cross Mark"}, // ❌
{"\U00002705", "Check Mark Button"}, // ✅
{"\U00002B50", "White Star"}, // ⭐
{"\U0001F31F", "Glowing Star"}, // 🌟
{"\U0001F4A1", "Light Bulb"}, // ðŸ’Ą
{"\U0001F4A3", "Bomb"}, // ðŸ’Ģ
{"\U0001F4A9", "Pile of Poo"}, // ðŸ’Đ
// Musical Symbols
{"\U0001F3B5", "Musical Note"}, // ðŸŽĩ
{"\U0001F3B6", "Multiple Musical Notes"}, // ðŸŽķ
{"\U0001F3BC", "Musical Score"}, // 🎞
{"\U0001F399", "Studio Microphone"}, // 🎙ïļ
{"\U0001F3A4", "Microphone"}, // ðŸŽĪ
// Food and Drink
{"\U0001F35F", "Cheese Wedge"}, // 🧀
{"\U0001F355", "Slice of Pizza"}, // 🍕
{"\U0001F32D", "Taco"}, // ðŸŒŪ
{"\U0001F37D", "Beer Mug"}, // ðŸŧ
{"\U0001F96B", "Cup with Straw"}, // ðŸĨĪ
{"\U0001F32E", "Hot Pepper"}, // ðŸŒķïļ
{"\U0001F95A", "Potato"}, // ðŸĨ”
// Zodiac Signs
{"\U00002600", "Aries"}, // ♈
{"\U00002601", "Taurus"}, // ♉
{"\U00002602", "Gemini"}, // ♊
{"\U00002603", "Cancer"}, // ♋
{"\U00002604", "Leo"}, // ♌
{"\U00002605", "Virgo"}, // ♍
{"\U00002606", "Libra"}, // ♎
{"\U00002607", "Scorpio"}, // ♏
{"\U00002608", "Sagittarius"}, // ♐
{"\U00002609", "Capricorn"}, // ♑
{"\U0000260A", "Aquarius"}, // ♒
{"\U0000260B", "Pisces"}, // ♓
// Miscellaneous Shapes
{"\U0001F4C8", "Chart Increasing"}, // 📈
{"\U0001F4C9", "Chart Decreasing"}, // 📉
{"\U0001F4CA", "Bar Chart"}, // 📊
{"\U0001F7E6", "Orange Circle"}, // 🟠
{"\U0001F7E7", "Yellow Circle"}, // ðŸŸĄ
{"\U0001F7E8", "Green Circle"}, // ðŸŸĒ
{"\U0001F7E9", "Blue Circle"}, // ðŸ”ĩ
{"\U0001F7EA", "Purple Circle"}, // ðŸŸĢ
// Flags
{"\U0001F1E6\U0001F1E9", "Flag of France"}, // ðŸ‡Ŧ🇷
{"\U0001F1E8\U0001F1E6", "Flag of Germany"}, // ðŸ‡Đ🇊
{"\U0001F1FA\U0001F1F8", "Flag of United States"}, // 🇚ðŸ‡ļ
{"\U0001F1E7\U0001F1F7", "Flag of Canada"}, // ðŸ‡ĻðŸ‡Ķ
{"\U0001F1EE\U0001F1F2", "Flag of Italy"}, // ðŸ‡ŪðŸ‡đ
{"\U0001F1F8\U0001F1EC", "Flag of Australia"}, // ðŸ‡Ķ🇚
{"\U0001F1F3\U0001F1F4", "Flag of Spain"}, // 🇊ðŸ‡ļ
// Additional Miscellaneous Symbols
{"\U0001F4A5", "Collision"}, // ðŸ’Ĩ
{"\U0001F4A6", "Sweat Droplets"}, // ðŸ’Ķ
{"\U0001F4A8", "Dashing Away"}, // ðŸ’Ļ
{"\U0001F50B", "Battery"}, // 🔋
{"\U0001F4BB", "Laptop Computer"}, // ðŸ’ŧ
{"\U0001F4DE", "Telephone"}, // 📞
{"\U0001F4E7", "Incoming Envelope"}, // 📧
};
size_t remo_count = sizeof(remo) / sizeof(remo[0]);
void rstrtolower(const char *input, char *output) {
while (*input) {
*output = tolower(*input);
input++;
output++;
}
*output = 0;
}
bool rstrinstr(const char *haystack, const char *needle) {
char lower1[strlen(haystack) + 1];
char lower2[strlen(needle) + 1];
rstrtolower(haystack, lower1);
rstrtolower(needle, lower2);
return strstr(lower1, lower2) ? true : false;
}
void remo_print() {
for (size_t i = 0; i < remo_count; i++) {
printf("%s - %s\n", remo[i].str, remo[i].description);
}
}
const char *remo_get(char *name) {
for (size_t i = 0; i < remo_count; i++) {
if (rstrinstr(remo[i].description, name)) {
return remo[i].str;
}
}
return NULL;
}
#endif