summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
Diffstat (limited to 'examples')
-rw-r--r--examples/.cvsignore6
-rw-r--r--examples/HELLO.utf839
-rw-r--r--examples/Makefile.am17
-rw-r--r--examples/muru.utf352
-rw-r--r--examples/pango.modules6
-rw-r--r--examples/viewer.c886
6 files changed, 1306 insertions, 0 deletions
diff --git a/examples/.cvsignore b/examples/.cvsignore
new file mode 100644
index 00000000..6d968b25
--- /dev/null
+++ b/examples/.cvsignore
@@ -0,0 +1,6 @@
+gscript.modules
+gscript-viewer
+.deps
+.libs
+*.lo
+*.la \ No newline at end of file
diff --git a/examples/HELLO.utf8 b/examples/HELLO.utf8
new file mode 100644
index 00000000..e8ae856c
--- /dev/null
+++ b/examples/HELLO.utf8
@@ -0,0 +1,39 @@
+This is a list of ways to say hello in various languages. Its purpose is to illustrate a number of scripts.
+
+(Converted into UTF-8)
+
+---------------------------------------------------------
+Danish (Dansk) Hej, Goddag
+English Hello
+Esperanto Saluton
+Estonian Tere, Tervist
+FORTRAN PROGRAM
+Finnish (Suomi) Hei
+French (Français) Bonjour, Salut
+German (Deutsch Nord) Guten Tag
+German (Deutsch Süd) Grüß Gott
+Greek (Ελληνικά) Γειά σας
+Hebrew שלום
+Italiano Ciao, Buon giorno
+Maltese Ciao
+Nederlands, Vlaams Hallo, Dag
+Norwegian (Norsk) Hei, God dag
+Russian (Русский) Здравствуйте!
+Spanish (Español) ¡Hola!
+Swedish (Svenska) Hej, Goddag
+Czech (česky) Dobrý den
+Polish Dzień dobry, Hej
+Slovak Dobrý deň
+Thai (ภาษาไทย) สวัสดีครับ, สวัสดีค่ะ
+Turkish (Türkçe) Merhaba
+
+Japanese (日本語) こんにちは, コンニチハ
+Chinese (中文,普通话,汉语) 你好
+Cantonese (粵語,廣東話) 早晨, 你好
+Korean (한글) 안녕하세요, 안녕하십니까
+
+Difference among chinese characters in GB, JIS, KSC, BIG5:
+ GB -- 元气 开发
+ JIS -- 元気 開発
+ KSC -- 元氣 開發
+ BIG5 -- 元氣 開發
diff --git a/examples/Makefile.am b/examples/Makefile.am
new file mode 100644
index 00000000..4356480b
--- /dev/null
+++ b/examples/Makefile.am
@@ -0,0 +1,17 @@
+## Process this file with automake to create Makefile.in.
+
+noinst_PROGRAMS = pango-viewer
+
+INCLUDES = -I$(top_srcdir)/libpango/
+
+pango_viewer_SOURCES = \
+ viewer.c
+pango_viewer_LDADD = ../libpango/libpango.la $(GTK_LIBS) -lfribidi $(UNICODE_LIBS)
+
+all-local: pango.modules
+
+pango.modules:
+ ( cd ../modules && \
+ ../libpango/pango-querymodules `find . -name '*.so'` > ../examples/pango.modules )
+
+EXTRA_DIST=HELLO.utf8 \ No newline at end of file
diff --git a/examples/muru.utf b/examples/muru.utf
new file mode 100644
index 00000000..976ecba1
--- /dev/null
+++ b/examples/muru.utf
@@ -0,0 +1,352 @@
+முருகன் அல்லது அழகு
+திரு வி.க.
+
+ குமரகுருபரர்
+
+உலகு குளிர எமது மதியில் ஒழுகு மமுத கிரணமே
+ உருகு மடிய ரிதய நெகிழ உணர்வி லெழுந லுதயமே
+கலையு நிறைவு மறிவு முதிர முதிரு மதுர நறவமே
+ கழுவு துகளர் முழுக நெடிய கருணை பெருகு சலதியே
+அலகில் புவன முடியும் வெளியில் அளியு மொளியி னிலயமே
+ அறிவு ளறிவை யறிவு மவரும் அறிய வரிய பிரமமே
+மலையின் மகள்கண் மணியை யனைய மதலை வருக வருகவே
+ வளமை தழுவு பரிதி புரியின் மருவு குமரன் வருகவே
+ -முத்துக்.பிள்: வருகை 9
+
+இழுமெ னருவி சொரியு மிமைய முதல்வி புதல்வன் வருகவே
+ இயலு நடையும் வடிவு மழகும் எழுத வரியன் வருகவே
+ஒழுகு கருணை முழுகு கமல வதனன் வருக வருகவே
+ ஒருவ னிருவ ரொடுகை தொழுநல் உபய சரணன் வருகவே
+விழுது விடுவெ ணிலவு பொழியு நகையன் வருக வருகவே
+ விளரி பயிலு மளியு ஞிமிரும் விரவி குரவன் வருகவே
+மழலை முதிர முதிரு மதுர வசனன் வருக வருகவே
+ வளமை தழுவு பரிதி புரியின் மருவு குமரன் வருகவே
+ -முத்துக்.பிள்: வருகை 10
+
+ கச்சியப்பர்
+
+துய்யதாம் மறைக ளாலுந் துதித்திடற் கரிய செவ்வேள்
+செய்யபே ரடிகள் வாழ்க சேவலும் மயிலும் வாழ்க
+வெய்யசூர் மார்பு கீண்ட வேற்படை வாழ்க அன்னான்
+பொய்யில்சீ ரடியார் வாழ்க வாழ்கஇப் புவனமெல்லாம்.
+ - கந்த புராணம் 5.4:6
+
+ஆறிரு தடந்தோள் வாழ்க அறுமுகம் வாழ்க வெற்பைக்
+கூறுசெய் தனிவேல் வாழ்க குக்குடம் வாழ்க செவ்வேள்
+ஏறிய மஞ்ஞை வாழ்க யானைதன் னணங்கு வாழ்க
+மாறிலா வள்ளி வாழ்க வாழ்கசீ ரடிய ரெல்லாம்.
+ - கந்த புராணம் 6.24:261
+
+புன்னெறி யதனிற் செல்லும் போக்கினை விலக்கி மேலா
+நன்னெறி யொழுகச் செய்து நவையறு காட்சி நல்கி
+என்னையும் அடிய னாக்கி இருவினை நீக்கி யாண்ட
+பன்னிரு தடந்தோள் வள்ளல் பாதபங் கயங்கள் போற்றி.
+ - கந்த புராணம் 6.24:262
+
+
+ நூன்முகம்
+
+இயற்கை பல அழகிய வடிவங்களாய்க் காட்சியளிக்கிறது. அக்காட்சியை மறுப்போரில்லை. இயற்கையைக் கூர்த்த மதியால் ஆராய ஆராய அதன் உள்ளுறையொன்று உணர்வில் உறுகிறது. இயற்கை உடல்; அதன் உள்ளுறை உயிர். உயிரை முருகு அல்லது முருகன் என்று தமிழ் நாட்டார் கொண்டனர். இவ்வுடலையும் உயிரையும் உலகம் ஆராய்ந்த வண்ண மிருக்கிறது. அவரவர் ஆராய்ச்சியிற் போந்த உண்மைகளும் பலப்பல. இன்னும் ஆராய்ச்சி வளர்ந்து வருகிறது.
+
+முருகனைப் பற்றிய பலதிறக் கொள்கைகள், கதைகள் கட்டுகள் நாட்டில் உலவுகின்றன. முதல் முதல் முருகனுண்மை கண்ட பழந்தமிழர், முருகனை எவ்வாறு கொண்டனர் என்று ஆராயத் தலைப்பட்டதில், அவர் முருகை மணமும் இளமையும் கடவுட்டன்மையும் அழகுமுடைய செம்பொருளாகக் கொண்டனர் என்பதும் பிறவும் விளங்கின. இக்கொள்கை அடியேனுக்கு மிக விழுமியதாய்த் தோன்றிற்று. இவ்விழுமிய கொள்கை நாட்டில் நிலைபெறின், நாட்டுக்குப் பலவழியிலும் நலன் விளையுமென்னும் வேட்கை என்மாட்டெழுந்தது. வேட்கை மேலீட்டான், அமயம் வாய்ந்துழி வாய்ந்துழி, விழுமிய கொள்கையைப் பற்றிப் பேசியும் எழுதியும் வருகிறேன்.
+
+காரைக்குடியினின்றும் முகிழ்த்த குமரன் என்னுந் திங்கள் மலரின் முதலிதழில், என்னால் எழுதப் பெற்ற முருகன் என்னுஞ் சிறு கட்டுரை யொன்று வெளிவந்தது. அக்கட்டுரையைக் கண்ட நண்பர் சிலர், அதை நூல்வடிவாக வெளியிடுமாறு கடிதம் எழுதிக் கொண்டேயிருந்தனர். அக்கட்டுரை ஒரு திங்கள் தாளுக்கென எழுதப்பட்டமையான் அதை யான் நினைந்தவண்ணம் எழுதல் இயலாமற் போயிற்று. அன்பர்கள் விழைந்தவாறு, பின்னை அக்கட்டுரையை முதன் முறை நூலாக்க முயன்றபோதும், அதனிடை, நினைந்த பல பொருள்கள் சேர்க்கப் போதிய ஓய்வு கிடைக்கவில்லை. ஆகவே, முதற் பதிப்பில் மிசச் சில பொருள் சேர்த்து நூலுக்கு முருகன் என்னுந்தலைப்பீந்தேன். அப்பதிப்பு 1925-ம் ஆண்டு வெளிவந்தது.
+
+அழகைப்பற்றி என்பால் கருக்கொண்டிருந்த பல பொருளை இரண்டாம் பதிப்பில் உருக்கொள்ளச் செய்யலாமென்று எண்ணிக் கொண்டிருந்தேன். அவ்வெண்ணம் இரண்டாம் பதிப்பில் ஒருவாறு முற்றுப்பெற்றது. இரண்டாம் பதிப்பு 1927-ம் ஆண்டு வெளிவரலாயிற்று.
+
+இரண்டாம் பதிப்பில் பல புதுப்பொருள் கூட்டப்பட்டன. நூலின் உள்ளுறைக்கேற்ப நூலுக்கு `முருகன் அல்லது அழகு' என்னுந் தலைப்பு அணியப்பட்டது. அழகை அடிப்படையாகக் கிடத்தி நூல் எழுதப்பட்டமையான், நூலுக்கு அம்முடி சூட்டப்பட்டதென்க.
+
+இயற்கையழகை முருகெனக் கொண்டு பழந்தமிழர் வழிபாடு நிகழ்த்தி வந்தனர். இவ்வாறு முருகனை வழிபடுனோர் தொகை நாளடைவில் அருகிவிட்டது. அதனால் பல கடவுளர் உணர்வு, பன்னெறி உணர்வு, போராட்டம், கட்சிகள், பிரிவுகள் முதலிய இழிவுகள் தோன்றலாயின. பழைய இயற்கை வழிபாடு மீண்டும் நாட்டில் உயிர்த்தெழல் வேண்டுமென்பது எனது வேணவே. அவ்வவா மேலீட்டான் யாக்கப்பட்ட நூல் இது.
+
+இந்நூற்கண், முருகன் சொற்பொருள் விளக்கம், அழகினியல், இளமைப்பேறு, இயற்கை யழகே முருகென்பது, பாட்டு ஓவியம் இசை இவைகளின் வழி இயற்கை அன்னையை வழிபடல், பெண்ணின் பெருமை, நோன்பின் திறம், முருகனடியார் இயல்பு முதலியன ஓதப்பட்டிருக்கின்றன. இந்நூலை முற்றும் பயில்வோர் உள்ளத்தில் இயற்கை வழிபாட்டில் ஆர்வம், ஒரே கடவுள் ஒரே நெறி என்னும் உறுதி எவ்வுயிர்க்குந் தீங்கு நினையாப் பேரறம் முதலியன நிலவும்.
+
+இயற்கை என்னும் எனது ஆருயிர் அன்னைக்கும் அவ்வியற்கையை விடுத்து என்றும் நீங்காத அழகு என்னும் அப்பனுக்கும் இந்நூலைக் கோயிலாக்கி தமிழ் மலர் தூவி ஒல்லும் வகை வழிபாடு நிகழ்த்தியிருக்கிறேன். வழிபாட்டு முறையில் குற்றங் குறைகளிருப்பின், பொருத்துருளுமாறு அன்பர்களை வேண்டுகிறேன்.
+
+மூன்றாம் பதிப்பு 1930-ம் ஆண்டிலும் நான்காம் பதிப்பு 1938-ம் ஆண்டிலும், ஐந்தாம் பதிப்பு 1943-ம் ஆண்டிலும் ஆறாம் பதிப்பு 1944-ம் ஆண்டிலும் ஏழாம் பதிப்பு 1946-ம் ஆண்டிலும் வெளிவந்தன. இஃது [1950-ம் ஆண்டு] எட்டாம் பதிப்பு.
+
+முதுமையில், என் கண்களில் ஊறு நேர்ந்தது. சிகிச்சை செய்யப்படும் இவ்வேளையில், இவ்வெட்டாம் பதிப்பு அச்சாகியது. எனது நிலை கண்டு, அச்சுப் பிழை பார்த்துத் துணைபுரிந்த வித்துவான் - அன்பு கணபதி அவர்கட்கு எனது நன்றி உரியதாக.
+
+பிழை பொருக்க.
+
+சென்னை திருவாரூர் வி. கலியாணசுந்தரன்
+20-8-1950
+
+
+ 1. முருகன் பொருளும் பொதுமையும்
+
+[முருகன் - முருகு - முருகின் சொற் பொருள் - மணம் இளமை கடவுட்டன்மை அழகு - பழந்தமிழர் கூர்த்த மதி - முருகன் ஒரு கூட்டத்தவர் கடவுள் அல்லன் - மொழி வேற்றுமையால் இறைவன் பல பெயர் பெறல் - மணம் இளமை இறைமை அழகு எல்லார்க்கும் பொது.]
+
+முருகன் எவன்? முருகையுடையவன் முருகன். முருகு என்றால் என்னை? முருகு என்பது பல பொருள் குறிக்கும் ஒரு சொல். அப் பல பொருளுள் சிறப்பாகக் குறிக்கத் தக்கன நான்கு. அவை மணம், உளமை, கடவுட்டன்மை, அழகு என்பன. இந்நான்கு பொருளடங்கிய ஒரு சொல்லால் பண்டைத் தமிழ் மக்கள் முழுமுதற்பொருளை அழைத்தது வியக்கத்தக்கது. இயற்கை மணமும், மாறா இளமையும் எல்லாப் பொருளையுங் கடந்தொளிருந் தன்மையும், அழியா அழகும் இறைவனிடத்தில் இலங்குவது கண்டு, அப்பொருள்கள் முறையே உறைதற் கிடம் பெற்றுள்ள முருகன் என்னுஞ் சொல்லை, அவ்விறைவனுக்குப் பழந்தமிழ் மக்கள் சூட்டியதன் திறமையை நோக்குழி அவர்களது கூர்த்தமதி புலனாகிறது.
+
+உலகத்தின் நானா பக்கங்களிலும் வாழ்ந்து வரும் மக்கள் தங்கள் தங்கள் அறிவாற்றலுக் கேற்றவாறு, தங்கள் தங்கள் மொழியில் கடவுளுக்குப் பலதிறப் பெயர்கள் சூட்டியிருக்கிறார்கள். அப்பெயர்கள் ஒவ்வொன்றினும் ஒவ்வொரு சிறப்புப் பொருள் விளங்குகிறது. சிலவற்றில் பொருத்தமில்லாப் பொருள்களும் உண்டு. முருகன் என்னுஞ் சொல்லிலோ அறிஞர் போற்றும் பொருள்களே மிளிர்கின்றன; ஆதலால் அறிஞர் போற்றற்குரியதும், மகிழ்ச்சியூட்டக் கூடியதும், பொருத்த முடையதுமாக இருப்பது முருகன் என்னுந் திருப்பெயர்.
+
+முருகன் ஒரு கூட்டத்தவர்குரிய கடவுள் என்று கருதுவது அறிவுடைமையாகாது. எக்கூட்டத்தவர் எம்மொழியால் போற்றும் எப்பொருளாயினும், அப்பொருட்கண் இறை இயல்புகள் காணப்பெறின், அதைக் கோடலே அறிவுடைமையாகும். இயற்கை மணமும், மாறா இளமையும் கடவுட்டன்மையும், அழியா அழகும் அறிவிற் சிறந்த எச்சமயத்தவருங் கொள்ளும் ஆண்டவனுக்கரிய இயல்புகளாம். இவ்வியல்புகள் அமைந்த ஒன்றைத் தமிழ் மக்கள் முருகன் என்று வழுத்துகிறார்கள். ஏனைய மொழியினரும் அவ்வியல்புகளின் பொருள் நல்க வல்ல தமது மொழியால் தாம் வழிபடும் இறைவனுக்குப் பல பெயரிட்டழைக்கலாம், அப்பெயர்ப் பொருளை ஆராய்ந்து, தமிழில் பெயர்த்தெழுதினால் அது முருகாக விளங்குதல் வேண்டும். தமிழ்ப் பெயராகிய முருகெனுஞ் சொல் தனக்குரிய பொருண்மை அழியப் பெறாது எம்மொழியில் வழங்கப் பட்டாலென்ன? கடவுளை மணமுடையதாகவும், இளமையுடையதாகவும், இறைமையுடையதாகவும், அழகுடையதாகவும் எவர் எம்மொழிப் பெயரால் தொழினும் ஆண்டு எம்பெருமான் முருகன் எழுந்தருள்வானென்க.
+
+மணமும் இளமையும் கடவுட்டன்மையும் அழகும் எவருடைமை? இவை எல்லார்க்குமுரிய உடைமை யல்லவோ? ஆதலால் மணமுடைமை, இளமையுடைமை, கடவுட்டன்மையுடைமை, அழகுடைமை ஆகிய இவைகளைப் போற்ற மறுப்போர் முருகனைப் போற்ற மறுப்போராவார். மணமுடைமை முதலிய நான்கினையும் போற்ற மறுப்போர் இருப்பு நெஞ்சமும் வன்கண்மையுமுடைய முரடராயிருப்பர். அன்னார் நெஞ்சில் முருகு அலர்தலும் அரிது.
+
+
+ 2. அழகின் இயலும் கூறும்
+
+[அழகு - அழியா அழகு - அழியும் அழகு - நக்கீரனாரும் அழகும் - இயற்கை செயற்கை - உள்பொருள் இல்பொருள் - பருமை நுண்மை - அழகரும்புமிடங்கள் - அழகுக்கும் இயற்கைக்குமுள்ள தொடர்பு - அழகின் பன்மை ஒருமை - அழகு புரியுந்துணை - அழகும் புலன்களும் - புற அழகு அக அழகு - அழகுக்குத் தோற்ற ஒடுக்கமின்மை - பேரின்பம் சிற்றின்பம் - வன்றொண்டர் மாணிக்கவாசகர் - அழகும் இன்பமும் - அகநானூறு, கலித்தொகை, பத்துப்பாட்டு, திருக்கோவையார் - பெண்ணும் அழகும் - அழகுக் கோயில்கள் - அழகும் வாழ்வும் - அழகிடை மணம் இளமை கடவுட்டன்மை மருவல் - அழகு பெரும் வழி - உணவு முறை - பெருந்திண்டி களியாடல் மருந்துகள் முதலியவற்றின் கேடுகள் - மேல்நாட்டார் இயற்கை முறை - கந்தழி - பாண்டி நாட்டில் கடவுளை அழகாகக் கொண்டது - திருமுருகாற்றுப் படையில் முருகின் நான்கு கூறு].
+
+இனி மணம், இளமை, கடவுட்டன்மை, அழகு என்னும் நான்கு பொருளில் அழகு என்பதை மட்டும் யான் ஈண்டுச் சிறப்பாக எடுத்துக் கொள்கிறேன். என்னை? அழகு உள்ள இடத்தில் ஏனைய மூன்றும் விரவி நிற்றலின் என்க. அழியா அழகில் மணமும் இளமையும் இறைமையும் கலந்து நிற்றலும் இயல்பு.
+
+அழியா அழகு என்று ஈண்டுக் குறிப்பிட்டது உன்னற்பாலது. அழியா அழகெனில் அழியும் அழகென்று அன்றுண்டோ என்னும் ஐயம் சிலருள்ளத்திலாதல் பிறக்கலாம். அழகின் அழியாமை நோக்கி ஈண்டு `அழியா' என்னும் அடையால் அழகைச் சிறப்பித்ததன்றி, அழியும் அழகுக்கு எதிர்மறையாக `அழியா' என்று அழகைச் சிறப்பிக்கவில்லை யென்றுணர்க.
+
+உலகில் ஒவ்வோருண்மைக்கும் மாறுபட்ட போலியுண்டு. போலிக்கண் உண்மை யின்மையான், அஃது அழிந்துபடுகிறது. இம்முறையில் அழியா உண்மையழகிற்கும் மாறுபட்ட அழியும் போலி யழகென்று ஒன்றிருக்குமன்றோ? அப்போலி அழகை அழியும் அழகு என்று அழைக்கலாமன்றோ?
+
+இதனால் அழகை இருகூறுபடுத்தி அழியா அழகு, அழியும் அழகு என்று சொல்லவேண்டுவதில்லை. அழிவதை அழகென்றுங் கொள்ள வேண்டுவதில்லை. இது பற்றியே `அழியா' என்று அழகைச் சிறப்பித்தவாறு காண்க. அழகுப் போலியை `அழியும் அழகு' என்றதும் முகமன் என்க.
+
+இயற்கையோடு வாழ்ந்து, இயற்கையோடு படிந்து, இயற்கையை ஆய்ந்து, இயற்கையி லுறையும் அழகெனும் முருகைக் கண்ட பழந்தமிழ்ப் புலவர்கள் அழகின் இயல்பைப் பற்றி என்ன கூறியுள்ளார்கள்? அதைச் சற்று நோக்குவோம்.
+
+பழந் தமிழ்ப் புலவர்களுள் ஈண்டு நக்கீரனார் ஒருவரைக் கோடல் சால்பு. நக்கீரனாரின் புலமை கருதி மட்டும் அவரை ஈண்டுக் கொள்ள வேண்டுவதில்லை. அவர் இயற்கையில் முருகையுணர்ந்து, முருகாற்றுப்படை பாடியதில் தமது புலமை செலுத்தியவர் என்னுந் தொடர்புரிமை கொண்டு, அவரை ஈண்டுக் கோடலே ஏற்புடைத்து. நக்கீரனார் தாமுணர்ந்த அழகைப் பொது முறையில் திருமுருகாற்றுப் படையாகப் பாடி மகிழ்ந்தார். அவ்வாற்றுப் படைக்கண் ஓரிடத்தில் அழகின் இயல்பு இத்தகைத்தெனச் சிறப்பு முறையில் அவர் அறிவுறுத்தியிருக்கிறார். `கைபுனைந்தியற்றாக் கவின் பெறு வனப்பு' என்று அப்புலவர் அழகியல் தெரித்தவாறு காண்க.
+
+கையால் செய்யப்படுவது செயற்கை. கையால் செய்யப்படாதது இயற்கை. மலையும் ஆறும் காடும் கடலும் எவர் கையால் ஆக்கப்பட்டன? ஞாயிறும் திங்களும் விண்மீன்களும் எவரால் செய்யப்பட்டன? புனலுக்கு தண்மை ஈந்தவர் எவர்? நெருப்புக்கு வெம்மையூட்டினவர் யாவர்? இயல்பாக அரும்பிய இவைகளின் அழகே கைபுனைந்தியற்றாக் கவின்பெரு வனப்பாகும். மற்றையது போலி.
+
+கைபுனைந்தியற்றா இவ்வழகு அழியாத் தன்மையது என்று மேலே தொகையாகச் சொல்லப்பட்டது. அதை ஈண்டு வகைப்படுத்திச் சில உரை பகர்தல் நலனெனத் தோன்றுகிறது. அழகு உள்பொருளா அல்லது மக்கள் உள்ளம் இயற்கையில் படியும்போது அங்கே உருவெளியாய்த் தோன்றும் இல்பொருளா என்பது ஆராயத் தக்கது. அழகைப்பற்றி எண்ணாத இடமில்லை; பேசாத இடமில்லை; போற்றாத இடமில்லை. அழகின் மாட்டு உலகங் கொண்டுள்ள பற்றுப்போல வேறெதன் மாட்டும் அஃது அப்பற்றுக் கொண்டில்லை. `அழகு அழகு' என்றே உலகம் அழகின் உறைந்து நிற்கிறது. இவ்வாறு அழகுடன் வாழும் உலகை நோக்கி, `அழகு எப்படி இருக்கிறது' என்று வினவின், அதைச் சொல்லால் சொல்ல இயலாது அது விழிக்கிறது. புலன்களுக்கும் பொருளாகாத ஒன்றைப் பற்றி என்ன சொல்வது? என்னே அழகின் நுட்பம்.
+
+`புலன்கட்குப் பொருளாகாமை' என்னும் ஒன்று கொண்டு, அழகிற்கின்மை கூறலாமோ எனின், அஃதும் அறமெனத் தோன்றவில்லை. என்னை? உணர்விலுறுத்தல், வினையாற்றல், துன்ப நீக்கி இன்பமாக்கல் முதலியன அழகால் பெறுகிறோம். இத்தகை நிகழ்வுடைய ஒன்றன் இருப்பை எங்ஙனம் மருத்தல் கூடும்?
+
+உலகில் புலன்களுக்குப் பொருளாகும் பொருள்களுமுண்டு; பொருளாகாப் பொருள்களுமுண்டு. இவைகளை முறையே பருமை (Concrete) என்றும், நுண்மை (Abstract) என்றும் உலகங் கொண்டிருக்கிறது. பருமைக்கு உண்மை கூறலும், நுண்மைக்கு இன்மை கூறலும் அறிவுடைமையல்ல. என்னை?
+
+ஊனப் புலன்களுக்குப் பொருளாகாது உணர்வில் நிகழ்ச்சிளவில் உறுத்தும் பொருள்களுமுண்டு. அறிவு அறம் அன்பு நீதி முதலியன புலன்களுக்கு வடிவால் காட்சி வழங்கும் பருப்பொருட்களல்ல. இவை காட்சி வழங்காமையான், இவற்றின் உண்மைக்கும் மறுப்புக் கூறலாம் போலும்! இவை உள்ளனவேயன்றி இல்லனவல்ல. இவற்றின் உண்மை இவற்றையுடைய பருப்பொருள் வாயிலாக உணரக் கிடக்கிறது. அறிஞன்வழி அறிவும், அறவோன் வழி அறமும், அன்பன் வழி அன்பும், நீதிமான் வழி நீதியும் உணர்விற்படுதல் ஓரற்பாற்று. இவைபோன்ற பல நுண்மைகளிருக்கின்றன. இவற்றுள் அழகுமொன்று. அழகுடைப் பொருள் கொண்டு அழகையுணர்கிறோம். ஆகவே, அழகென்பது பருப் புலன்களுக்கு வடிவாகத் தோன்றாத நுண்ணிய உள்பொருளெனக் கொள்க. அஃது உருவெளியன்றெனத் தெளிக.
+
+அந்நுண்மைப் பொருள் யாண்டும் நீக்கமற நிற்பது. யாண்டும் நிறைந்துள்ள அந்நுண்பொருள் சில வேளைகளில் சில இடங்களில் தனதிருப்பை உயிர்கட்கு அறிவுறுத்தவோ என்னவோ மின்னொளிபோல் தன் (நுண்ணிய) தோற்றத்தைப் புலப்படுத்துகிறது. இளஞாயிறு தனது செங்கதிரை நீலக்கடலில் பரப்பும்போது அப்பரவையிடை அழகு ஒளிர்கிறது. அஞ்ஞாயிறு தனது இளவெயிலை, பசுங்கடல் பொங்கியெழிந்தாலென உருண்டு திரண்டு பரந்து ஒளி நுழைதற்கு மிடமின்றிச் செறிந்து மிடைந்து சரிந்து சாய்ந்து நிற்குங் குறிஞ்சிக் காடுகளின் பச்சை மேனியில் உமிழும்போது அவ்விடை அழகு அரும்புகிறது. திங்கள் தன் பால்நிலவை, வெள்ளை வெளேலென வெள்ளி அறல் படர்ந்தாலென மிளிரும் வெள்ளிய மணல்மீது காலும்போது அங்கே அழகு ஒழுகுகிறது. இவ்வாறு சில வேளைகளில் சில இடங்களில் அழகு தனது நுண்ணிய காட்சி வழங்குதல் உணர்க.
+
+அழகு எதன் வாயிலாக உணரக் கிடக்கிறது? அழகு தன்னையுடைய இயற்கை வாயிலாக உணரக் கிடைக்கிறது. அதற்கும் இதற்குமுள்ள தொடர்பென்னை? அழகுக்கும் இயற்கைக்குமுள்ள தொடர்பை என்னென்று கூறுவது? (அழகின் உடல் இயற்கை.) இயற்கையினூடே அழகு நீக்கமின்றி விராவி நிற்கிறது. இயற்கையை விடுத்து அழகை ஆராய்ந்துணரல் அரிது. அழகின் இருப்புணர்தற்குக் கருவியாயுள்ள இய்கையும் அழகைப்போல உள்பொருளேயாம். இயற்கை, பலப் பல வடிவங்காகத் தோன்றித் தோன்றி மறையினும், அதன் முதல் கேடுறுவதில்லை. உள்ளதற்குத் தோற்றமே யன்றி அல்லதற்குத் தோற்றமில்லை என்பது அளவை. அழியாது கிடக்கும் இயற்கை முதலுக்கு அடிப்படையாக நிலவுவது அழகாகும். அழகினின்றும் அரும்பி மலர்ந்து காட்சியளிப்பது இணற்கை என்று சுருங்கச் சொல்லலாம். அழகுக்கும் இயற்கைக்குமுள்ள தொடர்பு நோக்கி, அஃதே இஃது, இஃதே அஃது என்று கொள்ளலாம்.
+
+தனக்கு அடிப்படையாக நிற்கும் அழகைப் பலப் பல வடிவங்களாக இயற்கை காட்டிக் காட்டி, உலகைக் கவர்ந்து மகிழ்ச்சியூட்டுகிறது. ஒவ்வோர் இயற்கைப் பொருட்கண் கருத்தை ஒற்றி ஒற்றி, உன்ன உன்ன அதனதன். அழகு தனித்தனியே உணர்வில் உறுதல் பெறலாம். அப்பயிற்சி முதிர முதிர எல்லா இயற்கைப் பொருட்கும் அடிப்படையாக ஒரே அழகு நிலவல் உணரலாம். எனவே, அழகு தனித் தனிப் பன்மையாகவும், பரந்த ஒருமையாகவும் உயிர்கட்கு உறுதுணை செய்தல் ஓர்க.
+
+அழகு உயிர்கட்குப் புரிந்துவரூஉம் உறுதுணையை என்னென் றுரைப்பது? அழகோ, புலன்கட்குப் பொருளாகாதது. அஃது உயிர்கட்குப் புரிந்துவரூஉந் துணையோ, அளவில் அடங்காதது. அழகு புலன்கட்குப் பொருளாகிறதில்லை. ஆனால் அது புலன்கட்கு விருந்தாகிறது. அழகில் தோயாத புலன்கள் உரமிழந்து உலர்ந்து போகும். புலன்கெட்ட வாழ்வு உயிர்கட்கு ஏது? வளர்ச்சியேது? இன்பமேது? இன்ப நுகர்ச்சிக்கு வாயாகவுள்ள புலன்கள் அழகில் படிந்த வண்ணமிருத்தல் வேண்டும். அப்படிவால் புலன்கள் பருகும் விருந்தமிழ்தம் உடலையும் உயிரையும் ஓம்புவதாகும்.
+
+அழகு புறத்தே நிற்பதுபோல அகத்தேயும் நிற்கிறது. புறமும் அகமும் ஒன்றும்போது அழகுணர்வு புலனாகும். அதற்குக் கருவிகளாக இருப்பனவே புலன்கள். அப்புலன்கள் அழகில் தோய்ந்ததும், ஆங்காங்குள்ள அழகு மலரினின்றும் மணம் வீசுவது போலத் தன்னினின்றும் தன் ஒளி பொழியத் தொடங்குகிறது. அதனால் உடலும் உயிரும் ஆக்கமுறும். அழகு புலனாகாத நுண்மையதாய் இலகிற்குப் புரிந்துவரூஉம் உதவி உணர்வால் உணரத்தக்கது.
+
+உலகிற்கு அடிப்படையாய் நின்று துணைபுரியும் அழகு, தோற்ற வொடுக்கமுடையதாயின், அதை அழகு என்று அழைத்தல் பொருந்தாது. தோற்ற ஒடுக்கமுடைய மாறுதலை (விகாரத்தை) அழகு என்று எங்ஙனம் அழைப்பது? தோற்றவொடுக்கமிலா ஒன்றே அழகாகும். அத்தகைய ஒன்றைப் படைப்பவர் யாவர்? வளர்ப்பவர் யார்? இக்கருத்துப் பற்றியே அழகை அழியா இயற்கை அழகு என்று ஆன்றோர் ஆண்டு வருகின்றார். அவ்வழகில் தோய்ந்து அழகராய நக்கீரனார், அழகைக் `கைபுனைந் தியற்றாக் கவின்பெரு வனப்பு' என்று கூறிப் போந்தார். இவ்வழகே பழந் தமிழர் போற்றி முருகாகும்.
+
+கை புனைந்தியற்றா இயற்கை அழகின் கருத்தைப் பதிய வைத்துள்ள ஒருவன், அதனோடு புணருந்தொறும் புணருந்தொறும் அவனுள்ளத்துள் சொலற்கரிய இன்பங்கிளர்ந்தெழும். அவ்வின்பத்தைப் பின்வந்தார் பேரின்பமெனவும் சிற்றின்பமெனவும் பிரித்துக் கூறினார். பண்டை நாளில் இன்பம் இன்பமாகவே பிரிவின்றிக் கிடந்தது. மக்கள் வாழ்வு, செயற்கையில் வீழ்ந்த நாள்தொட்டு, இன்பம் பேரின்பமெனவும் சிற்றின்பமெனவும் பிரிந்தது போலும்! பண்டைத் தமிழ் நூல்கள் அறம் பொருள் இன்பம் என்னும் மூன்றை மட்டும் அறிவுறுத்தலை இன்றுங் காணலாம். மக்கள் செயற்கை வாழ்கில் தலைப்பட்ட நாள்தொட்டு வீட்டின்பமென ஒரு தனியின்பம் வகுக்கப்பட்டது போலும்! முன்னை நாளில் நான்காவதாகிய வீட்டின்பமெனும் பேரின்பம் மூன்றாவதாகிய இன்பத்தில் அடங்கியிருந்தது. ஆதலால், இயற்கையழகில் தோயும் ஒருவனதுள்ளம் நுகரும் இன்பம் சிற்றின்பமாமோ பேரின்பமாமோ என்று ஆராய வேண்டுவதில்லை. அதை முறைப்படி இன்பமென்று மொழியலாம்; பின்னைய வழக்குப்படி பேரின்பமெனச் சொல்லலாம். அவ்வின்பத்துக்கு ஒப்பாகவாதல் உயர்வாகவாதல் வேறோரின்பமுளதோ? அவ்வின்பத்தையன்றோ வன்றொண்டர் நுகர்ந்தார்? மாணிக்கவாசகர் பருகினார்?
+
+அவ்வின்பம் அழகுள்ள இடங்களிலெல்லாமிருக்கும். அழகில்லா இடமுமுண்டோ? இவ்வுலகமே அழகுவடிவம். இவ்வழகிய உலகிடை நின்று அண்ணாந்து பார்த்தால், மேலும் கீழும் சுற்றும்முற்றும் அழகு சொரிவது காணலாம். அழகிய நீலப் படாத்தின் விரிவில் நித்திலந்தூவினாலென வானத்திலூருஞ் செவ்விய அழகை என்னவென்று வருணிப்பது? ஞாயிற்றின் ஒளியை என்னென்று நவில்வது? திங்களின் நிலவை என்னென்று கூறுவது? கரிய காட்டின் காட்சியை எப்படி எடுத்துக் காட்டுவது? கைநீட்டும் அலைகடலின் கவினை எங்ஙனம் சுழறுவது? என்னே அண்டத்தின் அழகு! இவையெலாஞ் சேர்ந்த ஒன்றே இயற்கை யன்னையின் அழகு வடிவம். அவ்வழகே அழியா அழகு. அதுவே முருகென்னும் பேரழகு.
+
+பண்டைத் தமிழ்மக்கள், இயற்கைவழி வாழ்வு செலுத்தி, அதற்கு அடிப்படையாயுள்ள அழகுண்மை கண்டு அவ்வழகால் இயற்கை அழகுபெறுவது நோக்கி, அவ்வியற்கையை வழிபட்டு, முழுமுதற் பொருட்கு அழகு என்னும் பொருள் பட முருகன் என்னும் பெயரணிந்தார்கள். அவர்கள் இயற்கை வாயிலாக முருகைக் கண்டு நுகர்ந்த இன்பத்தை அகநானூறு, கலித்தொகை, பத்துப் பாட்டு, திருக்கோவையார் முதலிய நூல்களில் காணலாம். அவ்வின்ப ஊற்றைத் திறக்கவல்ல அழகு இயற்கை வாயிலாகக் காணக் கிடக்கிறது. இயற்கையில் உள்ளத்தைப் பதித்து, அதனோடு ஒன்றி வாழ்ந்துவரின் இயற்கைப் பேரழகு - முருகு - புலனாகும்.
+
+செம்பொன்னையுருக்கி வார்த்தாலெனக் காட்சியளிக்கும் அந்திவான் செக்கரழகும், கொண்டல் கொண்டலாக ஓடும் புயலின் அழகும், அது பொழியும் மழையின் ஒழகும், அத்தண்புனல் மணற் கற்களை அரித்தோடும் அருவியின் அழகும், பச்சைப் பசேலெனப் பெருங்காட்சியளிக்கும் பொழில்களின் அழகும், அவைகளில் பச்சைபாம்பெனப் பின்னிக் கிடக்கும் பசுங்கொடிகளின் அழகும், அவைகளினின்றும் அரும்பியுள்ள நகைமலரின் அழகும் மக்கள் உள்ளத்துள்ள இன்ப ஊற்றைத் திறப்பனவல்லவோ? மயிலாடும் அழகும், மான் நடக்கும் அழகும் நந்தூறும் அழகும் புலவருக்கு விருந்தல்லவோ?
+
+இவ்வழகெலாந் திரண்ட அழகே பெண்ணழகு. பெண், மாதர் என்னுஞ் சொற்களுக்கு அழகென்பதே பொருள். பல திற இயற்கை அழகுகளெல்லாம் அவள் மாட்டிருத்தலால், அவளை அழகெனும் பெண் - மாதர் - என்று நந்தமிழ் மக்கள் அழைத்தார்கள். அழகுக்கு உறைவிடமாகிய பெண்ணின்பால் எது இல்லை? எல்லாமிருக்கின்றன. அவள்மாட்டு முகிலுண்டு; மானுண்டு; மலர்களுண்டு; குயிலுண்டு; மயிலுண்டு; மானுண்டு; பிறவும் உண்டு. முருகன் வடிவெலாம் அவள். அவள்பால் முருகை அழகைக் காண்டலன்றோ இன்பம்?
+
+இத்தகைய இன்பப் பொருளைத் துன்பப் பொருளாக எவன் கொள்வான்? காமுகன் - கீழ்மகன் - கயவன் - கொள்வான். இயற்கையின்ப நுட்பந் தெரிந்த ஒருவன் ஒரு நாளும் பெண்ணைத் துன்பப்பொருளாகக் கருதான். பெண்ணினல்லாள் பாட்டாக இருக்கிறாள்; எந்தை முருகனாக இருக்கிறாள்; தூய இன்பமாக இருக்கிறாள். அப் பெண் தெய்வத்தைத் தொழுகிறேன். பெண்ணெனும் தெய்வ அழகு, அறியாமை அழுக்காறு அவா முதலிய கொடுமைப் பாறை உடைத்து, இன்ப ஊற்றைத் திறக்கும். அவ்வின்பத்தில் தோய்ந்த பழந்தமிழ்ப் புலவர் பாடல்கள் முருகன் உறையும் அழகுக் கோயில்களாம். பழந்தமிழ் நூல்களைப் படிப்பதும் அழகெனும் முருகனை வழிபடுவதாகும்.
+
+முருகன் இயற்கை வாயிலாகத் தனதழகை நாடோறும் பொழியாதிருப்பின் உலகில் அழகேது? அழகில்லையேல் வாழ்வேது? ஒருவனது வாழ்வு அவனது அழகையே பொறுத்து நிற்கிறது. உடலில், நரம்பில் உரங்குன்றப் பெறுகிறவன் அழகுடையவனாயிரான். ஒருவனது உடல் நலத்தை அவனது அழகு புலப்படுத்தும் உலகிலுள்ள உயிர்களெல்லாம் உடல் நலமுற்று இன்பந் துய்த்து வாழ்தல் வேண்டும் என்னும் பேரருளா` முருகன் இயற்கை வாயிலாக அழகை உதவுகிறான். எம்பெருமான் நீலக்கடலில் காலையில் நெருப்புப் பிழம்புபோல ஞாயிறாக் புறப்பட்டு உலகுக் குதவாவிடின், உலகம் என்ன பாடுபடும்? அவன் திங்களாக அமுதம் பொழிந்து உலகுக் கின்ப மூட்டுவதை உணராத புலன்களும் புலன்களாமோ? முருகன் மலையாக நின்றும், ஆறாக ஓடியும், காடாக விளங்கியும், கடலாக ஒலித்தும், உடலாக உடனிருந்தும் உயிர்களை ஓம்பிவரும் திருவருட்டிறத்தை எவரே புகழ வல்லார்? முருகன் இயற்கை வாயிலாக ஆடிவரும் திருவிளையாடல்களை ஈண்டு விரிக்கிற் பெருகும்.
+
+இயற்கை வாயிலாக முருகன் புரிந்து வரும் பேருதவியை மக்கள் நேரே பெறுவார்களாயின், அவர்கள் என்றும் அழியா அழகுடையவர்களா யிருப்பார்கள். இயற்கைக்கு மாறுபட்ட வாழ்வில் மக்கள் தலைபடலால், அவர்கள் விரைவில் அழகு குன்றி மாண்டுவிடுகிறார்கள். ஆதலால் மக்கள் இயற்கைக்கு அரணாமாறு வாழ்வு நடாத்தப் பயில்வார்களாக.
+
+இயற்கை வாழ்வு நடாத்துவோர் உள்ளம், அழுக்காறு அவா முதலிய `யம தூதர்கள்' உலவும் நிலமாகாது. அவர்கள் உள்ளம் அன்பு இரக்கம் முதலிய `தெய்வ கணங்கள் வாழும் நன்னிலமாகும். அழுக்காறு அவா முதலிய பேய்த்தன்மைகள் மகனை நோய்வாய்ப்படுத்தி விரைவில் அவனைக் கொள்ளும். அவையில்லா அன்பு இரக்கம் முதலிய தெய்வ நீர்மைகள் ஒருவனது வாழ்வை வளர்க்கும். இதற்குரிய வழி இயற்கையழகாம் முருகை - முருகனை - வழிபடுவதாகும். `என்றும் இளையாய் அழகியாய்' என்று முருகனது இயல்பை ஓதிய நக்கீரனார், `உன்னையொழிய ஒருவரையும் நம்புகிலேன் பின்னை யொருவரை யான் பின் செல்லேன்' என்று அருளிச்செய்திருத்தல் காண்க. என்றும் அழியா அழகை விரும்புவோர் எம்பெருமான் முருகனடியைத் தமக்குரிய புகலாக் கோடல் வேண்டும்.
+
+இயற்கை வாயிலாக முருகு என்னும் அழியா அழகை உணர்ந்தவர் பால் என்றும் மணமே கமழ்ந்து கொண்டிருக்கும். அவர்மீது புலால் மணம் கமழாது. அவர் மணத்துக்கென வேறு செயற்கைப் பொருளைத் தேடவேண்டுவதில்லை.
+
+வைகறைத் துயிலெழுந்து, காலைக் கடனை ஒழுங்காக முடித்து, தண் புனலாடி, நறுங் காற்றில் மூழ்கி, ஞாயிற்றொளியிற் படிந்து, இயற்கை உணவுகொண்டு புறத்தை அழகு செய்தும், வாழும் ஒருவன் மீது இயற்கை கணங் கமழுமென்பது ஒருதலை. இவ்வாழ்வு பெறாத சோம்பரின் புறத்திலும் அகத்திலும் அழுகல் நாற்றம் வீசும். இயற்கை வாழ்வு நடாத்தும் ஒருவனது உள்ளும் புறமும் முருகெனும் அழகு கோயில் கொள்கிறது. அழகுள்ள இடத்தில் புலால் முடைக்கு இடமேது? அழகில் மணமிருத்தல் இயல்பு.
+
+இயற்கை மணங்கமழப் பெறுவோர் என்றும் இளமையுடையராயிருப்பர். இயற்கை மணம் உடல் நலனுக்குக் கேடு சூழாது. மக்களை முதுமை யணுகாதவாறு அம்மணங் காத்துவரும். அழகில் மணம் ஒன்றி நிற்றல் போல அதன்கண் இளமையும் ஒன்றி நிற்கிறது. இளமை விரும்பாதார் உலகில் உளரோ? அகவை முதிர்ந்த கிழவனும் மீண்டும் இளமை பெற விரும்புவன் இளமையில் மக்களுக்குள்ள காதலுக்கோ ரளவில்லை. இளமை முருகன் கூறுகளிலொன்று. ஆகவே என்றும் இளமையுடையவராக வாழ விரும்புவோர் எம்பெருமான் முருகனை எப்பொழுதும் நினைந்த வண்ணமிருப்பாராக.
+
+இயற்கைக்கு முதலாக (காரணமாக) உள்ள முருகு என்றும் இளமையா யிருப்பதால், இயற்கைப் பொருள்கள் தங்கள் கடமைகளைச் செவ்வனே ஆற்றுகின்றன. முருகின் இளமை குன்றுவதாயின், இயற்கையும் தன் செயலில் குன்றும். ஆனால் இயற்கை எத்துணைக் காலம் எவ்வெவ்வழியில் தொழிற்படினும், அஃது இளைத்துச் சலித்துச் சாய்வதில்லை. என்னை? முதலாகவுள்ள முருகு என்றும் இளமையாயிருப்பதால், வினையாகிய இயற்கையும் என்றும் இளமை என்னும் வளமை குன்றாமல், ஒரு பெற்றியாய்த் தன்செயலைச் சலிப்பின்றிச் சாய்வின்றி நடாத்திக்கொண்டு போகிறது. ஆதலால் இயற்கைவழி முருகை யுணர்வோன் என்றும் இளையனாயிருப்பன்.
+
+மலைக்கிழங்கை உண்டும், காட்டுப் பழங்களைத் தின்றும், வயல் மணிகளை (தானியங்களை)ப் புசித்தும், கடற்காற்றைப் பருகியும் வாழ்வோரை விரைவில் முதுமை அணுகாது. இயற்கைப் பொருள்களைத் தங்கள் விருப்பப்படி வேறு பல பொருளொடும் புலாலொடுங் கலந்து அவித்துப் பதன்செய்து விலாப்புடைக்க உண்பதிலேயே பொழுது போக்கும் மாக்களை விரைவில் முதுமை அடர்ந்து வருத்தும். பெருந் திண்டியானும், களியாடல்களானும், தீயொழுக்கத்தானும் உடல் வளத்தைக் கெடுத்து, முதுமையென்னும் மூதேவியை மணந்துகொண்ட சிலர், மீண்டும் இளமையாஞ் சீதேவியை மணக்க முயல்கிறார். இம்முயற்சியில் தலைப்படுவோருட் சிலர் பொன் வெள்ளி இரும்பு இவைகளால் செய்யப்பட்ட மருந்துகளை உண்கிறார்; சிலர் நடைப் பயிற்சி குதிரையேற்றப் பயிற்சி முதலிய துறைகளிலிறங்குகிறார்; சிலர் படுக்கையோடு கிடந்து, `கடவுளே கடவுளே' என்று வாயால் மட்டுங் கடவுளைச் சொல்லிக் கொண்டிருக்கிறார். அமெரிக்கா, ​ெஜர்மனி முதலிய இடங்களில் முதுமை நீக்கி இளமைபெற இளங்குரங்குகளின் உயிர்ப்பு முளைகளைப் பெயர்த்து மக்கள் பால் அவைகளை அமைக்கும் முறை கையாளப்பட்டு வருகிறது. ஓருயிர் நலத்துக்கு இன்னோர் உயிரைக் கொல்வது இயற்கைச் செந்நெறியாகாது. இயற்கைக்கு மாறுபட்டு வாழ்வைத் தொடக்கத்தில் நடாத்திப் பின்னைச் சாக்காட்டுக் கஞ்சி மருத்துவம் முதலிய செயற்கை முறைகளைக் கையாள்வதினும், முன்னைய பிழை பாடுணர்ந்து இயற்கை அன்னையின் திருவருளைப் பெற, மீண்டும் அவள் அருள் நாடியுழைப்பின் அவள் இரங்கியருள்வாள்.
+
+இயற்கைத் துணையால் முதியோர், இளமைப்பேறு பெறுதல் அரிதன்று. அமெரிக்காவில் சில அறிஞர் இயற்கைத் துணையால் இளமைக்காக்க முயன்று வருகிறார். பண்டைத் தமிழ்நாட்டார் இயற்கையோடு முரண்படா வாழ்கு நடாத்தி, இயற்கை அழகாம் முருகனை வழிபட்டமையான், அவர் இளமை இன்பம் நுகர்ந்து வந்தனர். (குமரனை மன மொழி மெய்களால் தொழுவோர் என்றுங் குமரனாயிருப்பது இயல்பே.) இளமை காக்க விரும்புவோர் என்றும் இளையனாக உள்ள முருகனைப் பொருள் தெரிந்து போற்றி உய்வாராக. இயற்கை மணமும் மாறா இளமையும் உடைய ஒன்று எவ்வித மாறுதலும் எய்தாது. அஃது என்றும் ஒரு பெற்றியதாயிலங்கும். மாறுபாடின்றி என்றும் ஒரு பெற்றியதாயிருப்பது கடவுளியல்பாகும். தோற்றம் ஒடுக்கமென்னும் மாறுதல் தத்துவத்துக்குண்டு. மாறுதலில்லாக் கடவுள் தத்துவங்கடந்த தனிப்பொருளென்று அறிவு நூல்கள் முழங்குகின்றன. இதுவே கந்தழி என்பது. இயற்கை மணமும் மாறா இளமையும் மாறுதலுடைய தத்துவத்துக்கில்லை; அவை மாறுதலில்லாக் கடவுளுக்கேயுண்டு. அழியா அழகில் இயற்கை மணமும், மாறா இளமையும் இருத்தல்போலக் கடவுட்டன்மையு மிருத்தல் காண்க. இவையெலா முடைய ஒன்றை முருகன் என்று நம் முன்னோர் கொண்டனர். அம்முருகனை இடையீடின்றி வழிபட்டுவோரின் கடவுட்டன்மையும் பெறலாம்.
+
+ஆகவே, முருகு என்னும் அழகில் மணமும் இளமையுங் கடவுட்டன்மையும் ஒன்றியிருத்தலுணர்க.
+
+பழந்தமிழர் தாம் தொழுத கடவுளை அழகுப் பொருளாகவே கொண்டனர் என்பதற்குப் பல சான்றுகள் உள அச்சான்றுகளுள் இரண்டொன்று வருமாறு:
+
+தமிழ் பிறந்த இடமும், தமிழ் வளர்த்த குறுமுனி வாழ்ந்த இடமும், தமிழ்ச் சங்கம் மருவிய இடமும் பாண்டிநாடு என்று சொல்லப்படுகிறது. அப்பாண்டி நாட்டுப் பழைய மக்கள் தங்கள் ஆவலாய் அவிர்சடைக் கடவுளைச் சொக்கன் என்னும் பெயரால் வழிபட்டார்கள். (அச்சொக்கன் பின்னைச் சுந்தரேசனானான்).
+
+சொக்கன் என்னுஞ் சொற்குரிய பொருளென்ன? முழு அழகன் - பேரழகன் என்பது. சொக்கு - பேரழகு.
+
+பாண்டி நாட்டில் சிறப்புற்று விளங்கும் மற்றொரு பழம்பதியாகிய திருமாலிருஞ் சோலையில் எழுந்தருளியுள்ள கடவுளைத் தமிழ்மக்கள் `அழகன்' என்று போற்றியிருத்தலையும் உன்னுக.
+
+`அழகனே ஆலவாயில் அப்பனே
+ அருள் செய்வாயே' - அப்பர்
+
+`தக்கன் வேள்வி தகர்த்தருள் ஆலவாய்
+ சொக்கனே யஞ்ச லென்றருள செய்யெனை'
+ - ஞானசம்பந்தர்
+
+`மொக்கனி யதனின் முழுத்தழல் மேனி
+ சொக்க தாகக் காட்டிய தொன்மையும்'
+ - மாணிக்கவாசகர்
+
+`பலபலநாளும் சொல்லிப் பழித்தசிசு பாலன்தன்னை
+அலவலைமை தவிர்த்த அழகன் அலங்காரன்மலை
+குலமலை கோலமலை குளிர்மாமலை கொற்றமலை
+நிலமலை நீண்டமலை திருமாலிருஞ் சோலையதே'
+ - பெரியாழ்வார்
+
+பண்டைத் தமிழர் அழகை அல்லது முருகைப் பொருளாகக்கொண்டு வழிபாடு நிகழ்த்தி வந்தனரென்பது வெள்ளிடைமலை.
+
+இதுகாறுங் கூறியவாற்றான், மணம், இளமை, கடவுட்டன்மை, அழகு ஆகிய இவைகளின் பொருளாக முருகன் பொலிதலும், இந்நான்கனுள் ஒன்றாய அழகிடை ஏனைய மூன்றும் பிரிவின்றி விராவி நிற்றலும், அதனான் அவ்விராவுதலுடைய அழகை முருகெனக் கோடலும் பிறவும் பெறப்படுகின்றன.
+
+முருகில் இவ்வியல்புகள் கெழுமியிருத்தலை யுணர்ந்த புலவர் பல்லோர், அவருள் பழையவர் நக்கீரனார். இவர் அருளிய திருமுருகாற்றுப்படையை, முருகில் ஒளிரும் நுண்ணியல்களின் பருமை அல்லது பரிணாமம் என்று கூறலாம். நூல் முற்றும் அவ்வியல்புகள் பொதுளி நிற்பினும், அவை வெளிப்படையாகவும் விளக்கமாகவும் நூலின் இறுவாயில் ஆசிரியரால் நிரலே பெய்யப்பெற்றிருக்கின்றன. கீரனார், 'அரும் பெறன் மரபின் பெரும்பெயர் முருக' என்று முருகின் பெயர் வழித் தொன்மை குறித்து, அம்முருகில் திகழும் அழகையும், அவ்வழகினூடே பிரிவின்றி விராவி நிற்கும் மணம், இளமை, கடவுட்டன்மை என்னும் இவைகளையும் ஒருசேர வைத்து, `அணங்குசால் உயர்நிலை தழீஇப் பண்டைத்தன் - மணங்கமழ தெய்வத் திளநலங்காட்டி' என்று கூறியிருத்தல் காண்க. அணங்கிற்று ஈண்டு அழகுப் பொருள் கொள்க.
+
+ 3. முருகின் தொன்மை
+
+[முருகு என்னுஞ் சொல்வரலாறு - முருகு முருகனானமை - முருகன் சொல்வழைக்குக் காலம் - மருகன் தொன்மைக்கு இரண்டு குறிப்புகள் - முதன் மகன் தோன்றிய இடமும் மக்கள் வாழ்வு முதல் முதல் தொடங்கப்பட்ட இடமும் - தமிழரின்மலைவாழ்வும் முருகும் - பெயரின் பன்மையும் பொருளின் ஒருமையும் - நால்வகை நிலத்தில் அழகின் கூறுபாடுகள் - தொல்காப்பியக் காலம் - தொல்காப்பியத்துக்கு முன்னரே முருகன் வழிபாடுண்மை - விலங்கும் முதல் மகனும் - ​ெஹக்கல், டார்வின் கொள்கை - உள்ளது சிறத்தல் - திருமால்பத்துப் பிறவி நுட்பம் - பழைய மகன் பல்லமைப்பு - பல்லுக்கும் மூளைக்குமுள்ள இயைபு - மகனுக்குக் கடவுளுணுர்வுற்ற காலம் - மக்கள் மாக்கள் நிலை - முதன் மக்களின் உணவு முதலியன - மக்கள் அட்டில் தொழில் கொண்டகாலம் - இயற்கை முருகன் அநாதி]
+
+முருகு என்னுஞ் சொல்வழக்கு எந்நாளில் உண்டாயிற்று? அதன் வரலாறென்னை? முருகு என்பது மிகத்தொன்மை வாய்ந்த ஒரு தமிழச் செஞ்சொல்? பண்டை நாளில் தமிழ்ச் சொற்கள் பல முதல் நிலையளவாக நின்று ஆட்சி பெற்று வந்தன, பின்னே நாளடைவில் அவைகளுள் பல இடைநிலை இறுதிநிலைகள் பெறலாயின. அச்சொற்களுள் முருகு என்பதும் ஒன்று. முருகு என்னும் முதல்நிலை அன் என்றும் ஆண்பால் இறுதி நிலையேற்று முருகன் ஆயிற்று. ஆகவே முருகினின்றும் முருகன் பிறந்தானென்க. முருக்கும் முருகனுக்கும் பொருளில் வேற்றுமை யுண்டோவெனில் இல்லை யென்க. இரண்டும் ஒரு பொருளையே குறிப்பன. முருகே முருகன்; முருகனே முருகு.
+
+முருகு அல்லது முருகன் என்னுஞ் சொல்வழக்கு மிக மிகத் தொன்மையது. அச்சொல் வழக்கு இந்நாளையது என்று எவராயினும் வரையறுத்துக் கூறல் இயலாது. தொன்மை வாய்ந்த முருகன் என்னுந் தமிழ்ச்சொல் இன்னும் இறந்து படவில்லை; இன்னும் ஆட்சி பெற்றே நிற்கிறது. அச்சொல் வழி அதற்குரிய பொருளை இன்னும் போற்றுவோருளர்; பாடுவோருளர். இன்றும் அப்பெயரான் விழாக்கள் நடைபெறுகின்றன; நோன்புகள் கொண்டாடப்படுகின்றன. அச்சொல்லின் உறுதியும் மாண்பும் தூய்மையும் என்னே என்னே என்று இறும்பூதெய்துகிறேன்.
+
+முருகின் தொன்மை காணச் சிறப்பாக ஈண்டு இரண்டு குறிப்புக்கள் பொறிக்கலாம். ஒன்று முருகன் தமிழ்க்கடவுள் என்பது; மற்றொன்று முருகன் மலைநிலக் கடவுள் என்பது. இவ்விரண்டானும் முருகின் தொன்மை நனிவிளங்கும். `தமிழன்', `தமிழ்ப் பெருமான்', `தமிழ் இறை', `முத்தமிழோன்' எனவும், `குறிஞ்சி கிழவோன்', `மலை கிழவோன்' எனவுந் தமிழ்ப் பெரியோர் முருகனை அழைத்திருத்தல் காண்க.
+
+தமிழன் முதுமையையும், தமிழ் மக்களின் பழமையையும் ஈண்டு விரிக்கிற் பெருகும். முதன் மகன் தோன்றிய இடம் தமிழ்நாடு என்று ஆராய்ச்சியாளர் கண்ட உண்மையொன்றை ஈண்டு நினைவூட்டுவது சாலும். இப்பழம் பெரு நாட்டார் கடவுளுக்கு முதல் முதல் தூவிய சொன்மலர் முருகு எனில், அதன் தொன்மையை என்னென்று இயம்புவது?
+
+மக்கள் வாழ்வு முதல் முதல் தொடங்கப்பட்ட இடம் மலை என்பது அறிஞர் கொள்கை. இஃது இயற்கை நூலாசிரியர் பலர் ஒப்பமுடிந்த உண்மை. மலையில் வாழ்ந்த பழைய மக்கள் தங்கள் கடவுளைக் `குறிஞ்சிக் கிழான்' என்று கோடல் இயல்பு. பழந்தமிழ் மக்கள் மலையிடை வாழ்ந்தபோது, தங்கள் கடவுளை மலைநிலக்கடவுளாகக் கொண்டதில் வியப்பென்ன? மக்களின் நல்வாழ்வு மலையிடை அரும்பிய போழ்து முருகெனுஞ் சொல்லும் அலர்ந்தது. இத்தகைய சொல்லின் தொன்மையை எங்ஙனம் அளந்துரைப்பது?
+
+மலையில் வாழ்ந்த தமிழ் மக்கள், பின்னைப் பிற நிலங்களில் குடிபுகுந்து, அவ்வந் நிலங்களின் இயல்புக்கேற்ப முழுமுதலுக்குப் பலவேறு பெயரிட்டார்கள். பல வேறு பெயர்களைக் கொண்டு, கடவுளரும் பலர் என்று கோடலாகாது. நிலத்தின் இயல்பிற்கேற்ப இடப்பட்ட பெயர்கள் பலவாயினும், அவை யாவும் ஒரு பொருளையே குறிக்கொண்டு நிற்பனவாம். அவ்வொரு பொருள் எது? அஃது இயற்கையிலுள்ள அழகு அல்லது முருகு என்க. இயற்கையழகு காடாகப் பசுமைக்காட்சி வழங்கியபோது, அவ்வழகை அல்லது முருகைத் தமிழ்மக்கள் திருமால் என்றார்கள். {1} மற்ற நிலக்கடவுள் பெயர்களையும் இவ்வாறே கொள்க. தமிழ் மக்கள் அழகெனும் முருகைப் பொருளாக் கொண்டதொன்றே ஈண்டுக் கருதற்பாற்று. தமிழ் மக்கள் வாழ்வு, என்று மலைநிலத்தில் துவங்கப்பட்டதோ, அன்று தொட்டு இன்றுவரை, முருகன் தமிழ் நாட்டுத் தெய்வமாகப் போற்றப்பட்டு வருகிறான். தமிழ்நாட்டுப் பழங்கடவுள் முருகனே.
+
+தமிழ்நாட்டைப் பற்றிய எவ்வாராய்ச்சிக்குந் தொல்காப்பியத்தைக் கருவாயாகக் கொள்வது வழக்கம். என்னை? இப்பொழுதுள்ள தமிழ் நூல்களுள் தொல்காப்பியம் பழமையுடையதாகலின் என்க. தொல்காப்பியக் கால ஆராய்ச்சி இன்னும் முற்றுப்பெறவில்லை. அஃது இன்னும் வளர்ந்து செல்கிறது. அதுகுறித்து இதுகாறும் ஆராய்ந்தவர்க்குள்ளுங் கருத்து வேற்றுமை உலவி வருகிறது. தொல்காப்பியக் காலம் இத்துணை ஆயிரம் ஆண்டுகளுக்கு முன்னர் என்று ஆராய்ச்சியாளர் கூறுகிறாரேயன்றி, ஏறக்குறைய ஆதல் `இக்காலம்' என்று எவரும் அறுதியிட்டுக் கூறினாரில்லை. தொல்காப்பியனார் காலம் மூவாயிரம், ஐயாயிரம், பதினாயிரம் ஆண்டுகளுக்கு முன்னர் இருத்தல் வேண்டுமென்று முறைமுறையே சிலர் கிளந்து கூறியுள்ளனர். தொல்காப்பியனார் காலம் எத்துணை ஆயிரம் ஆயிரம் ஆண்டுட்கு முன்னர் ஆயினுமாக. அவர் காலத்தில் முருகன் வழிபாடு இருந்ததா இல்லையா என்பதொன்றே ஈண்டு ஆராயற்பாலது.ள
+
+தொல்காப்பியனார் காலத்தில் முருகன் வழிபாடு இருந்தது என்பதற்கு அவர் தம் நூலினுள் அகச்சான்றுகளுண்டு. அக்காலத்தில் முருகன் வழிபாடு இருந்தது உண்மை. அப்பொழுது அஃது எந்நிலையிலிரிந்தது? தொடக்க நிலையிலா அல்லது பழகி வளம்பட்ட நிலையிலா? பழகிப் பழகி முதிர்ந்து வளம்பட்ட நிலையில் அவ்வழிபாடு அந்நாளில் இருந்தது. ஆகவே, தொல்காப்பியனார் காலத்துக்கு முன்னரே தமிழ் நாட்டில் முருகன் வழிபாடு ஆட்சியிலிருந்ததெனக் கொள்க. எப்படி?
+
+தொல்காப்பியத்தில் நால்வகை நிலன்களும், அவ்வந்நில இயலுக் கேற்றவாறு மக்கள் கொண்ட வழக்க ஒழுக்கங்களும், பிற வாழ்வுத் துறைகளும் பேசப்படுகின்றன. அப்பேச்சான் தொல்காப்பியக் காலத்துக்கு முன்னரே தமிழ்மக்கள் குறிஞ்சி நிலம் விடுத்து, மற்ற முல்லை மருதம் நெய்தல் நிலங்களில் குடிபுகுந்து, வாழ்வு நடாத்தினார்கள் என்று தெரிகிறது. தமிழ் மக்கள் நால்வகை நிலங்களிலும் வாழ்வு துவங்கா முன்னர் அதாவது அவர்கள் மலைநிலத்தில் மட்டும் வாழ்ந்த வேளையில், அவர்கள் முருகன் வழிபாட்டைத் தொடங்கிப் பயிற்சி பெற்றிருத்தல் வேண்டும். இது முருகனுக்குரிய `குறிஞ்சி கிழான்', `மலை கிழவோன்' முதலிய சிறப்புப் பெயர்களான் அறியக் கிடக்கிறது. மலையிடை மட்டும் மக்கள் வாழ்வு துவங்கிய நாள் எந்நாளோ?
+
+மலையிடை மக்கள் நல்வாழ்வு செலுத்தப் புகு முன்னர் மக்கள் எப்படி இருந்தார்கள்? மக்கள் தோற்ற வரலாற்றை ஆராய்ந்தால் பலதிற உண்மைகள் போதரும். மக்கள் தோற்ற வரலாற்றைப் பற்றிச் சமய நூல்கள் பலவாறு பகர்கின்றன. அவை நம்பிக்கை யுலகுக்கு உரியனவாம். இயற்கைத் துணை கொண்டு ஆராய்ந்து முடிவு கண்ட அறிஞர், மக்களின் மூதாதைகள் விலங்குகளென்று கருதுகின்றனர். மக்களுலகின் தோற்றுவாய்க்கு நிலைக்களன் விலங்கு உலகம் என்பது அக்கூர்த்த மதியினர் ஆராய்ச்சியிற் போந்த உண்மை. இவ்வாராய்ச்சியிற் புகுந்து பன்னெடு நாள் உழைத்துப் பலதிற நுட்பங்களை உலகிற்குணர்த்திய ​ெஹக்கல், டார்வின் முதலிய பேரறிஞர்க்கு உலகங் கடமைப் படுவதாக.
+
+நமது நாட்டுப் புராணங்கள் சில இவ்வுண்மையை ஒருவாறு கதைகள் வடிவாக அறிவுறுத்துகின்றன. புராண நூல்களின் பல இடங்களில் திருமாலின் பத்துப் பிறவிகள் சொல்லப்படுகின்றன. கூர்தல் அல்லது உள்ளது சிறத்தல் (Evolution) முறைப்பற்றி அப்பத்தையும் உற்று நோக்கின் படிப்படியாக உயிர்களின் பிறவி வளர்ச்சி புலனாகும். நம் நாட்டு பௌராணிகர்கள் பெரிய ​ெஹக்கல்கள், டார்வின்கள் போலும்.
+
+விலங்கினின்றும் பிறந்த மகனுக்குத் தொடக்கத்தில் பலதிற விலங்குக் கூறுகளிருந்தன. அவைகளுள் ஒன்று பல். அந்நாளைய மகனுக்குக் கூரிய வாளனைய கோரைப் பற்களிருந்தன. அப்பல் நாளடைவில் தேய்ந்து தேய்ந்து இப்பொழுதுள்ள நிலையை அடைந்திருக்கிறது. கோரைப் பல்லினின்றுந் தேய்வுற்ற அப்பல்லுக்கு இன்னும் நாய்ப்பல் என்னும் வழக்கிருத்தலை யோர்க. கோரைப்பல்லெனும் விலங்குப் பல்லுடைய பாவைகள் இன்னும் கோயில்களில் நின்று கொண்டிருக்கின்றன. அவை நமது மூதாதைகளின் நினைவுக் குறிகளாகும்.
+
+விலங்கினின்றும் பிறந்த மகனுக்குக் கடவுள் உணர்வெனும் அன்புநெறி உடனே விளங்கியிராது. பல்லாயிரம் ஆண்டுகளுக்குப் பின்னரே அவனுக்குக் கடவுள் உணர்வு தோன்றியிருக்கும். எப்போது அவ்வுணர்வு தோன்றியிருக்கலாம்?
+
+நீண்ட கோரைப்பல் விலங்குணர்விற்கு அறிகுறி. அஃதிருந்த மட்டும் மகனுக்குக் கடவுள் உணர்வு தோன்றியிராது. பல்லுக்கும், குடரின் உள்ளுறுப்புச் சிலவற்றிற்கும், மூளைக்குந் தொடர்புண்டு. பல் தேயும் அளவினதாக மூளையின் வன்மை அருகி மென்மை பெருகும். மென்மை அளவாக அறிவு விளக்கமுறும். சில ஆயிரம் ஆண்டுகட்கு முன்னர் இருந்த மக்களின் உள்ளுறுப்புகட்கும், சிலநூறு ஆண்டுகட்கு முன்னர் இருந்த மக்களின் உள்ளுறுப்புகட்கும், இப்போதைய மக்களின் அவ்வுறுப்புகட்கும் வேற்றுமையுண்டு. இப்பொழுதுஞ் சில உள்ளுறுப்புக்கள் பயனின்றிக் கிடக்கின்றன என்று மருத்துவ அறிஞர் கருதுகின்றனர். இவ்விரிந்த ஆராய்ச்சியில் ஈண்டு நுழைய வேண்டுவதில்லை. விலங்கினின்றும் பிறந்த மகன் எப்பொழுது கடவுள் உணர்வு பெற்றிருப்பான் என்பதொன்றே ஈண்டு நமக்குத் தேவை.
+
+விலங்கினின்றும் தோன்றிய மகன், வடிவான் விலங்கொடு வேறுபட்டு விலங்கினும், உணர்வால் நீண்டநாள் அதனொடு வேறுபடாமலிருந்தான். பின்னைப் பல் முதலியன தேய்வுற வுற உணர்வானும் அவன் விலங்கினின்றும் வேறுபடலானான். ஆகியும் மகன் இன்னும் விலங்குணர்வினின்றும் முற்றும் விடுதலையடைந்தானில்லை. விடுதலையடையாமையான் அவன் இனத்துள் இரு பிரிவு தோன்றலாயின. ஒன்று மாக்கள் இனம்; மற்றொன்று மக்கள் இனம். மாக்களாவார் விலங்கையொத்த ஐயறிவுடையார்; மக்களைவார் ஆறறிவுடையார். `மாவு மாக்களும் ஐயறி வினவே, மக்கள் தாமே ஆறறிவுயிரே' என்றார் தொல்காப்பியனார். அம்மாக்களும் மக்களுஞ் சேர்ந்த ஒன்றே மன்பதை என்பது.
+
+ஆறாவது அறிவு எது? அவ்வறிவே கடவுள் உணர்வெனும் அன்புநெறி விளக்கத்துக்கு நிலைக்களனாயிருப்பது. அவ்வறிவு விளங்கிய மக்கள், அவ்வறிவு விளங்காத மாக்களினின்றும் பிரிவுற்ற போழ்து, அவர்களிடை (மக்களிடை)க் கடவுள் உணர்வு அரும்பியிருத்தல் வேண்டும். அக்கடவுள் உணர்வே மக்களையும் மாக்களையும் வேறுபடுத்துவதென்க. மக்களிடைக் கடவுளுணர்வு, அவர்கள் மலையிடை மட்டும் வாழ்ந்துபோது தோன்றினமையால், அவர்கள் கடவுளைக் `குறிஞ்சி கிழான்', `மலைக் கிழவோன்' என்று போற்றினார்கள் போலும்.
+
+மாக்கள் மக்கள் இயல்புகளும் தொல்காப்பியனார் காலத்தில் முதிர்ந்து ஆட்சியிலிருந்தன. ஆதலால் அவ்வேற்றுமை தோன்றிய காலமும் தொல்காப்பியத்துக்கு முந்தியதே. அவ்வேற்றுமையுற்ற காலத்தைக் கணித்துக் கூறல் எளிதோ? ஆதலால் முருகன் தொன்மையைக் காலவரையறைப் படுத்திக் கூறலும் எளிதாகுங்கொல்?
+
+மகன் தொடக்கத்தில் காய்கறிகளை அவித்துத் தின்றானில்லை. அவன் அவற்றை இயற்கையாகவே உண்டு கழித்து வந்தான். பின்னை அவன் பல்லாயிரம் ஆண்டு கடந்து காய்கறிகளை அவித்துத் தின்னலானான். அக்காலத்தை இயற்கைநூல் வல்லார் சிலர் இற்றைக்குச் சுமார் முப்பதாயிரம் ஆண்டிற்கு முன்னதெனச் சொல்கிறார்.
+
+முதல் முதல் மலையிடை வாழ்வு துவக்கிய மக்கள், காய்கறிகளைப் பசுமையாகவே உண்டிருத்தல் வேண்டும். அவர்கள் முருகனுக்குத் தேனும் தினையும் வைத்து வழிபட்டதை அன்பர்கட்கு நினைவூட்டுகிறேன். மன்பதைக்குள் மாக்கள் மக்கள் வேற்றுமை புலனாய்க் கடவுள் உணர்வு பெற்ற போதும், மக்கள் காய்கறிகளைப் பசுமையாகவே புசித்திருந்தார்கள் என்று ஊகித்துணரலாம். அந்நாள் முப்பதினாயிரம் ஆண்டிற்கு மேம்பட்டு, எத்துணை ஆயிரம் ஆண்டுகடந்து நிற்குமோ தெரியவில்லை.
+
+இதுகாறுங் கூறிவந்த சில குறிப்புக்களான், முருகு என்னுஞ் சொல் வழக்கு எந்நாளில் உண்டாயிற்று என்று காண்டல் இயலாமற் போயிற்று. பின்னை எம்முடிபு கொள்வது? மன்பதைக்குள் மாக்கள் மக்கள் வேற்றுமையுணர்வு தோன்றி, மக்களினத்தில் கடவுள் அறிவு அரும்பிய நாள் தொட்டு, முருகு என்னுஞ் சொல்வழக்குத் தோன்றியிருத்தல் வேண்டும். அந்நாள் இன்னும் ஆராய்ச்சி யுலகிற்கு எட்டவில்லை.
+
+(முருகெனுஞ் சொல்வழக்குக் காலத்தைக் காண்டலே அரிதாயிருக்கிறது. அங்ஙனமாக, அச்சொற் பொருள் காலத்தை ஆராயப் புகுவது அறியாமையாகவே முடியும். இவ்வாராய்ச்சியில் தலைப்பட வேண்டுவதில்லை. முருகெனுஞ் செம்பொருள் கால எல்லைக்கு உட்பட்டதன்று என்று கொள்வதே அறிவுடைமை. முருகன் காலங் கடந்த கடவுள். இயற்கை என்று உண்டோ, அன்று முதல் முருகனும் உளன்; இயற்கை அநாதி; முருகனும் அநாதி.)
+
+மலையிடை வாழ்ந்த தமிழ் மக்கள் தங்கட்குக் கண்கூடாகக் காட்சியளித்த இயற்கையை அடிக்கடி கண்ணாற் கண்டு, உளத்தால் முகந்த, அதை இடையறாது நினைந்து நினைந்து, அதன்கண் படிந்த வாழ்வு நடாத்தினார்கள். அதன் பயனாக அவர்கள் இயற்கையினுள் பிரிவின்றி விராவி நிற்கும் அழகையும், அழகின் மாறாத இளமையையும், இளமையிலூரும் அழியா மனத்தையும், இவையுடைய ஒன்று எல்லாவற்றையுங் கடந்து மாறுதலின்றி யொளிருந்தன்மையையுங் கண்டார்கள். இவ்வழகு, இளமை மணம், கடவுட்டன்மை ஆகிய இயல்புகளைக் கொண்ட ஒன்றைப் பண்டைத் தமிழ் மக்கள் முருகு என்னுஞ் சொல்லால் அழைத்துப் போற்றினார்கள். முருகு என்பது பொருள் பொதிந்த ஒரு சொல். அம்முருகையுடையவன் முருகன்.
+
+அடிக்குறிப்புகள்
+
+{1} இது குறித்துத் `தமிழ் நூல்களில் பௌத்தம்' என்றும் நூலிலும் எனது கருத்தைத் தெரிவித்துள்ளேன். அது வருமாறு -
+
+`பழந்தமிழர் இயற்கை அழகையே உயர்ந்த பொருளாக அதாவது கடவுளாகக் கொண்டு வாழ்ந்தனர். அவர் மலைமீது வாழ்ந்தபோது அவர் உள்ளத்தைக் காலையிலும் மாலையிலும் ஞாயிற்றின் செம்மையும், வானத்திற் படருஞ் செம்மையும், பிற செம்மைகளுங் கவர்ந்தன. அச்செவ்விய இயற்கையழகை அவர் சேய் என்று போற்றினர். அம்மக்கள் தங்கள் கண்ணுக்குப் பச்சைப் பசேலெனக் காட்சி வழங்கிய காட்டின் இயற்கையழகை மால் என்று வழுத்தினர். அவர் மருத நிலத்தில் குடி புகுந்தபோது அங்கே பெரிதும் தம் இனமாகிய மக்கள் கூட்டத்துடன் நெருங்கி நெருங்கிப் பழக நேர்ந்தமையான், மக்கள் மாட்டொளிரும் இறைமை என்னும் இயற்கை அழகைக் கண்டு அதை வேந்து என்று கொண்டனர். அவர் கடற்கரை நண்ணியபோது கடலின் இயற்கையழகை வண்ணம் என்றனர். பழந்தமிழ் மக்கள் அவ்வந்நில இயற்கை அழகுக்கிட்ட பெயர்கள் சேய் மால் வேந்த வண்ணம் என்பன.
+
+இவ்வியற்கை அழகுப் பெயர்கள் தொல்காப்பினார் காலத்திலேயே அன் (வண்ணம் - வர்ணம் - வருணம் - வருணன்) விகுதி பெறலாயின. பின்னை நாளடைவில் இப்பெயர்கள் பிரிவுபட்ட கடவுளராகச் சமயவாதிகளால் கொள்ளப்பட்டன. பழந்தமிழ் மக்கள் கொண்ட கடவுள் இயற்கை அழகு என்பதை மட்டும் நாம் மறத்தலாகாது'.
+
+
+ 4. இயற்கை வழி அழகைக் காண்டல்
+
+[முருகும் இயற்கையும் உயிர்களும் - உயிர்கட்கு முருகன் இயற்கை வாயிலாகப் புரிந்துவருந் துணை - உயிர்கள் முருகனாதல் - அதற்குறிய வழி - எண்ணம் - அகம் - புறம் - இயற்கை வழிபாடு - புலனடக்கத்தின் நுட்பம் - திருமூலர் - ஆண்டகைமை - அப்பரும் புலனடக்கமும் - இறை யியல்பு - இயற்கைக்கும் புலன்கட்குமுள்ள தொடர்பு - இயற்கையும் புலன்களும் - புலவன் இயற்கையின் மகன் - இயற்கை வழிபாட்டின் கூறுபாடு - அழகுப் பொருள்கள் - பெண்மை வழிபாடு.]
+
+முருகன் என்றும் இளையனாய், மணமுடையனாய்க் கடவுட்டன்மை யுடையனாய் அழகுடையவனாயிருத்தலால் உயிர்கட் கென்னை? உயிர்கள் அவ்வியல்களைப் பெறும் வழியுண்டுகொல்?
+
+முருகன்பால் அவ்வியல்புகள் இயற்கையாய் அமைந்து கிடத்தற்குப் பொருளுண்டு. உயிர்களும் அந்திலை எய்தல் வேண்டும் என்பது முருகன் திருவுள்ளக்கிடக்கை. இயற்கைக்கும் முருகனுக்குமுள்ள தொடர்பைப்போல் முருகனுக்கும் உயிர்கட்குந் தொடர்புண்டு. இத்தொடர்பை உணர வேண்டுவது உயிர்களின் கடமை. முருகனோ உயிர்களைத் தன்னைப் போலாக்க ஆவல் கொண்டு நிற்கிறான். அவ்வாவலன்றி வேறு ஆவல் அவனுக்கில்லை. அவ்வாவலுடன் எப்பொழுதும் முருகன் இயற்கை வாயிலாக உயிர்கட்குத் துணை புரிந்தும் வருகிறான். ஞாயிறு, காற்று, புனல் முதலிய இயற்கைப் பொருட்களின் வாயிலாக முருகன் உயிர்களை ஓம்பா தொழிவனேல், உலகமேது? உயிரேது? வாழ்வேது?
+
+நாடோறும் இயற்கை வாயிலாகத் தாங்கள் பெற்று வரூஉம் துணை இயற்கையினுடையதா அல்லது அதன் உள்ளுறையாக உள்ள முருகனுடையதா என்பதை உயிர்கள் உய்த்துணரல் வேண்டும். அத்துணை, இயற்கையினுடையது என்று கருதுவோர், இளமை மணம் கடவுட்டன்மை அழகு ஆகியவற்றைப் பெறல் அரிது. இயற்கை வாயிலாக முருகனுடைமையாய் அத்துணை பெறுவதை உணர்வோர் முருகனாகலாம்; அதாவது அவனது இயல்புகளைப் பெறலாம்.
+
+முருகன் இயல்புகளாய இயற்கை மணமும், மாறா இளமையும், கடவுட்டன்மையும், அழியா அழகும் பெற ஒவ்வொருவரும் விரும்புவர். அவற்றை விரும்பாதார் அரியர். வெறும் விருப்பமட்டுங் கொள்வதிற் பயனில்லை. விருப்பத்தை நிறைவேற்றிக் கொள்ளலே அறிவுடைமை. அதை எவ்வாறு நிறைவேற்றிக் கொள்வது? எம்முறைபற்றி நிறைவேற்றிக் கொள்வது?
+
+முதலாவது வேண்டற்பாலது முருகைப்பற்றிய எண்ணம். முருகனை எண்ணும் போதெல்லாம் அவன் மணமுடையான், இளமையுடையான், கடவுட்டன்மையுடையான், அழகுடையான் என்று நினைத்தல் வேண்டும். அந்நினைவு கூடுதற்குப் புறத்தே அவ்வியல்புகளுடைய இயற்கைப் பொருட்கண்மீது கருத்தைப் பதியவைத்தல் வேண்டும்; அகத்தில் ஒன்று நிலைபெறுதற்கு அதன் தொடர்பாயுள்ள புறமும் அதனுடன் ஒன்றுதல் வேண்டும். என்னை? அகமே புறமாகலின் என்க. இரண்டிற்குந் தொடர்பிலா வாழ்வு செம்மைய தாகாது. ஆதலால், முருகை உணர்தற்கு அகப்புற ஒற்றுமை இன்றியமையாதது.
+
+அகத்தின் வாயிலாகப் புறத்திற் புகுதல் ஒருமுறை. புறத்தின் வாயிலாக அகத்தை அணைவது இன்னொரு முறை. இரண்டனுள் முன்னையது மிக அரியது; இடர்ப்பாடுடையது; முடிவு காண்டல் என்னும் உறுதியுங் கூட்டாதது. பின்னையதோ எளியது; இயற்கையில் இயங்குவது; உறுதி கூட்டுவது. ஆகவே, புறவழி பற்றுதலையே ஈண்டு யான் கொள்கிறேன்.
+
+முருகன் குணங்குறி கடந்தவன். அவனது இயல்புகளை உணர்வில் - நிகழ்ச்சியில் - பெறுதல் இயலுமே. உணர்வில் - நிகழ்ச்சியில் - அவைகளைப் பெறுதற்குத் தொடக்கத்தில் அவைகளின் பருமை நினைவு வேண்டற்பாலது. இதற்கு வழி என்னை?
+
+முருகன் குணங்குறி கடந்த ஒருவனாயினும், இயற்கை அவனுக்கு உடலாக அமைந்திருக்கிறது. அவ்வுடல்வழி உயிராம் முருகை யணர்தல் கூடும். ஆகவே, முருமை உணர விரும்புவோர் இயற்கையைப் பற்றுக்கோடாகக் கோடல் வேண்டும். கொள்ளின், முருகை இயற்கை உணர்த்தும். உயிர்கள் இயற்கையோடும் உறவு கொள்ளும் அளவினதாக, அவைகளின்மாட்டு முருகன் உணர்வும் பெருக்கெடுக்கும். `இஃதென்ன! இயற்கை வடிவங்களை நாடோறும் காண்கிறும்; இயற்கையுடன் வாழ்கிறோம்; முருகைக் காண்கிறோமில்லையே' என்று சிலர் கருதலாம். காண்பனவெல்லாம் காட்சியாகா. அங்ஙனே வாழ்வெல்லாம் வாழ்வாகா. புலன்களைத் தீய வழியில் செலுத்திக் கொண்டு, இயற்கையை ஒரேவழிக் காண்டலும், அதனுடன் வாழலும் முறையே அதைக்காண்பதுமாகாது; அதனொடு வாழ்வதுமாகாது. `முருகை இயற்கை உணர்த்தும்' என்னும் உறுதியோடு, புலன்களை இயற்கைக்கு மாறுபட்ட நெறிகளில் தோயவிடாது, அவைகளை இயற்கையில் நிலைபெறுத்தி, இயற்கையுடன் கலந்த உறவு கொள்ளப் பயிலல் வேண்டும். இப்பயிற்சிக்கு முதல் முதல் வேண்டற்பாலது புலன் தூய்மை.
+
+புலன்களின் பயிற்சிக்கேற்ற வண்ணம் உலகின் வாழ்வு அமைகிறது. புலன்கள் தீய வழியில் உழலின், வாழ்வுந்தீயதாகும். அவை நல்ல வழியில் இயங்கின், வாழ்வும் நல்லதாகும். ஈண்டுத் தீயவழி நல்லவழி என்பன முறையே செயற்கை இயற்கை வழிகளைக் குறிப்பனவும். புலன்கள் நிலையை வாழ்வு பொறுத்து நிற்றலான், அப்புலன்களைத் தூய்மைப்படுத்துவதில், இயற்கை வழி முருகைக் காண விழைவோர் கண்ணுங் கருத்துமாயிருப்பாராக.
+
+`இறையா உணர்தற்குப் புலன்களை அடக்குமாறு ஆன்றோர் அறிவுறுத்தியிருப்ப, நீவிர் அப்புலன்களைத் தூய்மைப்படுத்துங்கள் என்று நவில்கிறீர். புலன்களை அடக்காது ஆடவிடுதலால் நலன் விளையுங்கொல்' என்று சிலர் வினவலாம். சின்னாளாகப் புலனடக்கம் என்னுஞ் சொற்றொடர் தனக்குரிய பொருளிழந்து நிற்கிறது. புலனடக்கம் என்பதற்குப் புலனை ஒடுக்கி அழித்தல் என்னும் பொருள் சொல்லப்படுகிறது, அது தவறு. புலன் கெட்டால் அறிவேது? வாழ்வேது?
+
+`யோகம் யோகம்' என்று சில்லோர் புலன்களை ஒடுக்கி ஒடுக்கி முடிவில் அவைகளைக் கெடுத்துக் குருடராய்ச், செவிடராய், நோயராய் மாள்கிறார். புலன்கெட்ட ஒன்று அறிவற்ற பொருளாதல் வெள்ளிடைமலை. அறிவின் ஆக்கத்துக்கெனப் படைக்கப்பட்ட புலன்களை அறிவுக் கேட்டிற்குப் பயன்படுத்தல் எத்தகைய மடமை? புலன்கள் ஒடுக்கப்படுவனவாயின், அது ஏன் படைப்பில் அமைதல் வேண்டும்? ஆண்டவன் படைப்பில் பொருளற்றதொன்று தோன்றுமை? தோன்றவே தோன்றாது. ஆண்டவன் படைப்பில் தோன்றியுள்ள ஒவ்வொன்றும் பொருளுடையது; அருமையானது; வாழ்விற்குரியது.
+
+புலன்கள் மக்கள் வாழ்விற்கெனப் படைப்பில் அமைந்துள்ள அறிவுக் கருவிகள். அவைகளின் வாயிலாகவே உயிர்கள் எல்லாவற்றையும் உளத்தால் உணர்தல் வேண்டும். புலன்கள் புறத்தையும் அகத்தையும் ஆற்றுப்படுத்தும் பெரும்புலவர்கள். அத்தகைப் புலவர்களை அடக்குவதும் ஒடுக்குவதும் இயற்கைக்கு மாறுபட்டு நடத்தலாகும்.
+
+புலனடங்கி வாழுமாறு ஆன்றோர் அருளியதன் கருத்தென்னை? புலனடங்கி வாழுமாறு ஆன்றோர் அருளிய மெய்யுரைகளைப் பொன்னேபோல் போற்றுகிறுன். புலனடக்கம் என்பதற்கு ஆன்றோர் கொண்ட கருத்தை உணர்தல் வேண்டும். அன்னார் புலன்களைக் கெடுத்தொழிக்குமாறு ஒருபோதும் அறிவுறுத்தினாரில்லை. புலனடக்கத்தைப் பிறழக் கொண்டு, புலன்களைக் கெடுத்து, உலகம் இடர்ப்படப் போகிறதென்று அஞ்சி, யோக நெறியில் தேர்ச்சி பெற்ற திருமூலனார்,
+
+ `அஞ்சும் அடக்கடக் கென்பர் அறிவிலார்
+ அஞ்சும் அடக்கும் அமரரும் அங்கிலை
+ அஞ்சும் அடக்கில் அசேதனம் ஆகுமென்றிட்டு
+ அஞ்சும் அடக்கா அறிவறிந் தேனே'
+
+என்று கூறிப்போந்தார். இத்திருமூலனாரே பல இடங்களிற் புலனடக்கங் கூறியுள்ளார். அப்புலன் அடக்கம் என்பதற்குப் புலன் கேடு என்பது பொருளாயின், அவர் `அஞ்சும் அடக்கடக்கென்பர் அறிவிலார்' என்னும் திருமந்திரத்தை ஓதியிரார். ஆகவே புலனடக்கம் என்பதன் பொருள் ஓர்தல் வேண்டும்.
+
+புலனடக்கமென்றால் என்னை? புலன்களைத் தீய வழியில் செல்லாதவாறு காத்தலே புலனடக்க மென்பது; புலன்களைக் கெடுத்தல் என்பதன்று. நாவடக்கம் - வாயடக்கம் - கையடக்கம் என்னும் வழக்குகளை நோக்குக. `ஒன்றையுந் தின்னாதே; பேசாதே; செய்யாதே' என்று முறையா பொருள் கொள்ளலாம் போலும்! `பொருந்திய உணவை அளவாக உண்; தீயவனவற்றையும் பயனில் சொற்களையும் பேசாது வாய்மையைப் பேசு; பிறர் பொருள் கவரல் முதலியனவற்றைச் செய்யாது நல்லனவற்றைச் செய்' என்று அவ்வழக்குத் தொடர்க்குப் பொருள் கூறல் மரபு. அங்ஙனே புலனடக்கம் என்பதற்கும் பொருள் கோடல் வேண்டும். புலனடக்கம் என்பது புலன் அழிவைக் குறிப்பதன்று. இத்தொடர் புலன்களை நெறியில்லா நெறியில் செலுத்தாமையைக் குறிப்பதென்க.
+
+இயற்கையுடன் உறவுகொண்டு, புறத்தையும் அகத்தையும் ஒன்றச் செய்து, உயிர்கட்கு இன்பமூட்டப் படைப்பில் அமைந்துள்ள புலன்களை அவா என்னும் பேய்க்கும், மற்றும் பல செயற்கை நரகத்துறைகட்கும் அடிமைப்படுத்தல் இயற்கையையும், அதன் உள்ளுறையாம் முருகையும் மறப்பதாகும். இம்மறப்புள்ள மட்டுந் துன்பம் நீங்காது.
+
+உலகில் ஆண்டகைமை என்னுஞ் சொல் வழங்கப் படுகிறது. எது ஆண்டகைமை? அவா முதலிய பேய்கட்கு புலன்களை அடிமைப்படுத்தாது காப்பதே ஆண்டகைமை; இவ்வாண்டகைமையுடைய ஒருவனே மகன்; ஒருத்தியே மகள் என்க.
+
+ `உரன்என்னுந் தோட்டியான் ஓரைந்துங் காப்பான்
+ வரன்என்னும் வைப்பிற்கோர் வித்து'
+
+என்றார் திருவள்ளுவனார்.
+
+பெரியோர் புலன்களை நோக்கி, `நீங்கள் கள்ளர்கள்; வஞ்சகர்கள்; பேய்கள், உங்களைக் கொல்லல் வேண்டும்; அடக்கள் வேண்டும்; ஒடுக்கல் வேண்டும்' என்று பலதிறமாகப் பேசியிருத்தலைப் பற்றியுஞ் சிலர்க்கு ஐயந் தோன்றலாம். புலன்கள், அவா முதலிய பேய்கட்கு எளியனவாகும்போது, அவைகளைக் கடிந்து, நன்னெறியில் திருப்பவேண்டி, அவைகளை நொந்தும், வைதும், குறைகூறியும் பெரியோர் பேசுவது வழக்கம். இதுகுறித்து ஈண்டு விரித்துக் கூறல் வேண்டுவதில்லை. இதைப்பற்றிப் `பெண்ணின் பெருமை அல்லது வாழ்க்கைத் துணை' என்னும் நூலிலும் விளக்கியுள்ளேன். ஈங்கு ஒரு பெரியார் கருத்தை எடுத்தாளும் அளவில் நின்று மேற்செல்ல விரும்புகிறேன். எப்பெரியாரை ஈண்டுக் கொள்வது நலன்? அகவையிலும், அறிவிலும், அன்பிலும் முதிர்ந்த அப்பரம்பெருமானாரைக் கொள்கிறேன்.
+
+அப்பெரியார்,
+ `படுகுழிப் பவ்வத் தன்ன பண்டியைப் பெய்த வாற்றாற்
+ கெடுவதிம் மனிதர் வாழ்க்கை காண்டொறுங் கேதுகின்றேன்
+ முடுகுவ ரிருந்து ளைவர் மூர்க்கரே யிவர்க ளோடும்
+ அடியனேன் வாழ மாட்டேன் ஆரூர்மூ லட்ட னீரே'
+
+ `புழுப்பெய்த பண்டிதன்னைப் புறமொரு தோலான் மூடி
+ ஒழுக்கறா வொன்பதுவா யொற்றுமெ யொன்று மில்லைச்
+ சழக்குடை யிதனு ளைவர் சங்கடம் பலவுஞ் செய்ய
+ அழிப்பனாய் வாழ மாட்டேன் ஆருர்மூ லட்ட னீரே'
+
+ `உயிர்நிலை யுடம்பே காலா யுள்ளமே தாழி யாகத்
+ துயரமே யேற்ற மாகத் துன்பக்கோ லதனைப் பற்றிப்
+ பயிர்தனைச் சுழிய விட்டுப் பாழ்க்குநீ ரிறைத்து மிக்க
+ அயர்வினா லைவர்க் காற்றே னாரூர்மூ லட்ட னீரே'
+
+ `பக்தனாய் வாழ மாட்டேன் பாவியேன் பரவி வந்து
+ சித்தத்து ளைவர் தீய செய்வினை பலவுஞ் செய்ய
+ மத்துறு தயிரே போல மறுகுமென் னுள்ளந் தானும்
+ அத்தனே அமரர் கோவே ஆரூர்மூ லட்டனீரே'
+
+ `புள்ளுவ ரைவர் கள்வர் புனத்திடைப் புகுந்து நின்று
+ துள்ளுவர் சூறை பொள்வர் தூநெறி விளைய லொட்டார்
+ முள்ளுடை யவர்கள் தம்மை முக்கணான் பாத நீழல்
+ உள்ளிடை மறைந்து நின்றங் குணர்வினா லெய்ய லாமே'
+
+இத்திருப்பாக்களால், புலன்கள் தீயவழியில் தம்மை யீர்த்து அலைத்தலையும், அவைகளின் கொடுமைகளையும் விளக்கியவாறும், அக்கொடுமைகளினின்றும் விடுதலையடைவான் ஆண்டவனைக் குறையிரந்து வேண்டுமாறுங் காண்க.
+
+தீய வழியுழலும் புலன்களை அடக்கியாளல் வேண்டுவது அறிஞர் கடமை. அப்பர் சுவாமிகள் புலன்களை நல்வழிப் படுத்தவே முயன்றார். புலன்களைத் தீயவழியினின்றுங் காத்து, அவைகளை நல்வழிப்படுத்த அப்பர் முயன்றாரேயன்றி, அவைகளை அழித்துத் தாமும் அவைகளுடன் அழிய முயன்றாரில்லை. தீநெறியில் தம்மை ஈர்க்கும் புலன்களைக் கடிந்து, அவைகளை நோக்கி, நம் ஆண்டகை என்ன கட்டளை யிடுகிறார் பாருங்கள்!
+
+ `கண்காள் காண்மின்களோ - கடல்
+ நஞ்சுண்ட கண்டன் தன்னை
+ எண்டோள் வீசிநின் றாடும் பிரான் தன்னைக்
+ கண்காள் காண்மின்களோ'
+
+ `செவிகாள் கேண்மின்களோ - சிவன்
+ எம்மிறை செம்பவள
+ எரிபோல் மேனிப்பி ரான்றிற மெப்போதுஞ்
+ செவிகாள் கேண்மின்களே'
+
+ `மூக்கே நீமுரலாய் - முது
+ காடுறை முக்கணணை
+ வாக்கே நோக்கிய மங்கை மணாளனை
+ மூக்கே நீமுரலாய்'
+
+ `வாயே வாழ்த்துகண்டாய் - மத
+ யானை யுரிபோர்த்துப்
+ பேய்வாழ் காட்டகத் தாடும்பி ரான்தனை
+ வாயே வாழ்த்துகண்டாய்'
+
+ `ஆக்கை யாற்பயனென் - அரன்
+ கோயில் வலம்வந்து
+ பூக்கை யாலட்டிப் போற்றியென் னாதில்
+ வாக்கை யாற்பயனென்'
+
+புலன்கள் எதற்காகப் படைக்கப்பட்டன? அன்பர்களே! அப்பர் அருண்மொழியை உற்று நோக்குங்கள்; உன்னுங்கள் புலன்களின் கடனை உணருங்கள். நலன்தரும் புலன்களையா கெடுப்பது? அழிப்பது? அந்தோ! கொடுமை! கொடுமை! ஆகவே, புலன்களைத் தீய பேய்வழியில் உழலாதவாறு காத்து, இறை வழியில் திருப்புவதே அவைகளைத் தூய்மைப் படுத்துவதாகும்.
+
diff --git a/examples/pango.modules b/examples/pango.modules
new file mode 100644
index 00000000..e945bf29
--- /dev/null
+++ b/examples/pango.modules
@@ -0,0 +1,6 @@
+/home/otaylor/devel/pango/modules/./basic/.libs/pango-basic.so BasicScriptEngineLang PangoEngineLang PangoRenderNone 0-687:* 688-767: 896-1423:* 1425-1641:* 7680-8191:* 8192-40959:* 44032-55203:kr 63744-64011:kr 65280-65507:*
+/home/otaylor/devel/pango/modules/./basic/.libs/pango-basic.so BasicScriptEngineX PangoEngineShape PangoRenderX 0-687:* 688-767: 896-1423:* 1425-1641:* 7680-8191:* 8192-40959:* 44032-55203:kr 63744-64011:kr 65280-65507:*
+/home/otaylor/devel/pango/modules/./hangul/.libs/pango-hangul.so HangulScriptEngineLang PangoEngineLang PangoRenderNone 4352-4607:* 44032-55203:*
+/home/otaylor/devel/pango/modules/./hangul/.libs/pango-hangul.so HangulScriptEngineX PangoEngineShape PangoRenderX 4352-4607:* 44032-55203:*
+/home/otaylor/devel/pango/modules/./tamil/.libs/pango-tamil.so TamilScriptEngineLang PangoEngineLang PangoRenderNone 2944-3071:*
+/home/otaylor/devel/pango/modules/./tamil/.libs/pango-tamil.so TamilScriptEngineX PangoEngineShape PangoRenderX 2944-3071:*
diff --git a/examples/viewer.c b/examples/viewer.c
new file mode 100644
index 00000000..2ed64c78
--- /dev/null
+++ b/examples/viewer.c
@@ -0,0 +1,886 @@
+/* Pango
+ * viewer.c: Example program to view a UTF-8 encoding file
+ * using Pango to render result.
+ *
+ * Copyright (C) 1999 Red Hat Software
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include <gtk/gtk.h>
+#include <gdk/gdkx.h>
+
+#include "pango.h"
+#include "pangox.h"
+
+#include <unicode.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <errno.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+#include "utils.h"
+
+#define BUFSIZE 1024
+
+typedef struct _Paragraph Paragraph;
+typedef struct _Line Line;
+
+/* Structure representing a paragraph
+ */
+struct _Paragraph {
+ char *text;
+ int length;
+ int height; /* Height, in pixels */
+ GList *lines;
+};
+
+/* Structure representing a line
+ */
+struct _Line {
+ /* List of PangoItems for this paragraph in visual order */
+ GList *runs;
+ int ascent; /* Ascent of line, in pixels */
+ int descent; /* Descent of lines, in pixels */
+ int offset; /* Offset from left margin line, in pixels */
+};
+
+static PangoFont *font = NULL;
+static Paragraph *highlight_para;
+static int highlight_offset;
+
+static GtkWidget *message_label;
+GtkWidget *layout;
+
+gboolean global_rtl;
+
+/* Read an entire file into a string
+ */
+static char *
+read_file(char *name)
+{
+ GString *inbuf;
+ int fd;
+ char *text;
+ char buffer[BUFSIZE];
+
+ fd = open(name, O_RDONLY);
+ if (!fd)
+ {
+ fprintf(stderr, "gscript-viewer: Cannot open %s: %s\n",
+ name, g_strerror (errno));
+ return NULL;
+ }
+
+ inbuf = g_string_new (NULL);
+ while (1)
+ {
+ int count = read (fd, buffer, BUFSIZE-1);
+ if (count < 0)
+ {
+ fprintf(stderr, "gscript-viewer: Error reading %s: %s\n",
+ name, g_strerror (errno));
+ g_string_free (inbuf, TRUE);
+ return NULL;
+ }
+ else if (count == 0)
+ break;
+
+ buffer[count] = '\0';
+
+ g_string_append (inbuf, buffer);
+ }
+
+ close (fd);
+
+ text = inbuf->str;
+ g_string_free (inbuf, FALSE);
+
+ return text;
+}
+
+/* Take a UTF8 string and break it into paragraphs on \n characters
+ */
+static GList *
+split_paragraphs (char *text)
+{
+ char *p = text;
+ GUChar4 wc;
+ GList *result = NULL;
+ char *last_para = text;
+
+ while (*p)
+ {
+ char *next = unicode_get_utf8 (p, &wc);
+ if (!next)
+ {
+ fprintf (stderr, "gscript-viewer: Invalid character in input\n");
+ g_list_foreach (result, (GFunc)g_free, NULL);
+ return NULL;
+ }
+ if (!*p || !wc || wc == '\n')
+ {
+ Paragraph *para = g_new (Paragraph, 1);
+ para->text = last_para;
+ para->length = p - last_para;
+ para->height = 0;
+ last_para = next;
+
+ result = g_list_prepend (result, para);
+ }
+ if (!wc) /* incomplete character at end */
+ break;
+ p = next;
+ }
+
+ return g_list_reverse (result);
+}
+
+static void
+get_logical_widths (char *text, PangoItem *item,
+ PangoGlyphString *glyphs,
+ PangoGlyphUnit *logical_widths)
+{
+ int i, j;
+ int last_cluster = 0;
+ int width = 0;
+ int last_cluster_width = 0;
+
+ for (i=0; i<=glyphs->num_glyphs; i++)
+ {
+ int index = (item->analysis.level % 2 == 0) ? i : glyphs->num_glyphs - i;
+
+ if (index == glyphs->num_glyphs ||
+ glyphs->log_clusters[index] != last_cluster)
+ {
+ gint next_cluster;
+
+ if (index < glyphs->num_glyphs)
+ next_cluster = glyphs->log_clusters[index];
+ else
+ next_cluster = item->num_chars;
+
+ for (j=last_cluster; j<next_cluster; j++)
+ logical_widths[j] = (width - last_cluster_width) / (next_cluster - last_cluster);
+
+ last_cluster = next_cluster;
+ last_cluster_width = width;
+ }
+
+ if (i < glyphs->num_glyphs)
+ width += glyphs->geometry[index].width;
+ }
+}
+
+/* Break an item into a piece that fits on the current line
+ * and the remainder. (The remainder, if any is stored into
+ * 'new_item'. If no piece of the item fits on the current line,
+ * returns FALSE.
+ */
+
+gboolean
+break_run (char *text,
+ PangoItem *item,
+ int *remaining_width,
+ PangoItem **new_item,
+ int *logical_ascent,
+ int *logical_descent)
+{
+ PangoGlyphString *buf;
+ int width;
+ gboolean result;
+
+ /* First try the entire string to see if it fits. If it
+ * doesn't, call GStringBreak, then chop off pieces
+ * from the end until it fits. If it still doesn't
+ * fit, give up and return FALSE.
+ */
+
+ buf = pango_glyph_string_new();
+
+ pango_shape (font, text + item->offset, item->length, &item->analysis, buf);
+ pango_x_extents (buf, NULL, NULL, &width, NULL, NULL, logical_ascent, logical_descent);
+
+ result = FALSE;
+ *new_item = NULL;
+
+ if (width <= *remaining_width)
+ {
+ result = TRUE;
+ }
+ else
+ {
+ int length;
+ int num_chars = item->num_chars;
+ int new_width;
+
+ PangoLogAttr *log_attrs = g_new (PangoLogAttr, item->num_chars);
+ PangoGlyphUnit *log_widths = g_new (PangoGlyphUnit, item->num_chars);
+
+ pango_break (text + item->offset, item->length, &item->analysis,
+ log_attrs);
+ get_logical_widths (text, item, buf, log_widths);
+
+ new_width = 0;
+ while (--num_chars > 0)
+ {
+ /* Shorten the item by one line break
+ */
+ width -= log_widths[num_chars] / 72;
+ if (log_attrs[num_chars].is_break && width <= *remaining_width)
+ break;
+ }
+
+ if (num_chars != 0)
+ {
+ char *p;
+ gint n;
+
+ /* Determine utf8 length corresponding to num_chars. Slow?
+ */
+ n = num_chars;
+ p = text + item->offset;
+ while (n-- > 0)
+ p = unicode_next_utf8 (p);
+
+ length = p - (text + item->offset);
+
+ *new_item = g_new (PangoItem, 1);
+ (*new_item)->offset = item->offset + length;
+ (*new_item)->length = item->length - length;
+ (*new_item)->num_chars = item->num_chars - num_chars;
+ (*new_item)->analysis = item->analysis;
+
+ item->length = length;
+ item->num_chars = num_chars;
+
+ result = TRUE;
+ }
+
+ g_free (log_attrs);
+ g_free (log_widths);
+ }
+
+ if (result)
+ *remaining_width -= width;
+
+ pango_glyph_string_free (buf);
+
+ return result;
+}
+
+/* Break a paragraph into a list of lines which fit into
+ * width, and compute the total height of the new paragraph
+ */
+void
+layout_paragraph (Paragraph *para, int width)
+{
+ Line *line = NULL;
+ GList *runs;
+ int remaining_width;
+ int height = 0;
+ PangoContext context;
+
+ /* Break paragraph into runs with consistent shaping engine
+ * and direction
+ */
+ context.lang = "en_US";
+ context.render_type = PANGO_RENDER_TYPE_X;
+ context.direction = global_rtl ? PANGO_DIRECTION_RTL : PANGO_DIRECTION_LTR;
+ runs = pango_itemize (&context, para->text, para->length, NULL, 0);
+
+ /* Break runs to fit on each line
+ */
+ remaining_width = width;
+ para->lines = NULL;
+ while (runs)
+ {
+ PangoItem *new_item;
+ gboolean fits;
+ int logical_ascent;
+ int logical_descent;
+
+ fits = break_run (para->text, runs->data, &remaining_width, &new_item,
+ &logical_ascent, &logical_descent);
+
+ if (new_item)
+ {
+ /* The item was split, add the remaining portion into our
+ * lists of runs
+ */
+ GList *node = g_list_alloc();
+
+ node->data = new_item;
+ node->next = runs->next;
+ if (node->next)
+ node->next->prev = node;
+ node->prev = runs;
+
+ runs->next = node;
+ }
+
+ if (fits || !line)
+ {
+ /* Either we have a portion that fits on our line,
+ * or the initial unbreakable portion of the run
+ * doesn't fit on a complete line, so we just
+ * add it in anyways.
+ */
+ GList *tmp_list = runs->next;
+
+ if (!line)
+ {
+ line = g_new (Line, 1);
+ line->runs = NULL;
+ line->ascent = 0;
+ line->descent = 0;
+ }
+
+ if (line->runs)
+ line->runs->prev = runs;
+ runs->next = line->runs;
+ line->runs = runs;
+
+ line->ascent = MAX (line->ascent, logical_ascent);
+ line->descent = MAX (line->descent, logical_descent);
+
+ runs = tmp_list;
+ if (runs)
+ runs->prev = NULL;
+ }
+
+ if (!runs || !fits || remaining_width == 0)
+ {
+ /* A complete line, add to our list of lines
+ */
+ GList *visual_list;
+
+ line->offset = global_rtl ? remaining_width : 0;
+ line->runs = g_list_reverse (line->runs);
+ remaining_width = width;
+ height += line->ascent + line->descent;
+
+ /* Reorder the runs from logical to visual order
+ */
+ visual_list = pango_reorder_items (line->runs);
+ g_list_free (line->runs);
+ line->runs = visual_list;
+
+ para->lines = g_list_append (para->lines, line);
+
+ line = NULL;
+ }
+ }
+
+ para->height = height;
+}
+
+/* Given a x position within a run, determine the corresponding
+ * character offset.
+ */
+gboolean
+runs_x_to_cp (char *text, GList *runs, int x, int *offset)
+{
+ PangoGlyphString *buf;
+ int width;
+ int pixels = 0;
+
+ buf = pango_glyph_string_new();
+
+ while (runs)
+ {
+ PangoItem *item = runs->data;
+
+ pango_shape (font, text + item->offset, item->length, &item->analysis, buf);
+ pango_x_extents (buf, NULL, NULL, &width, NULL, NULL, NULL, NULL);
+
+ if (x >= pixels && x < pixels + width)
+ {
+ int pos;
+ char *p;
+
+ pango_x_to_cp (text + item->offset, item->length,
+ &item->analysis, buf, (x - pixels) * 72,
+ &pos, NULL);
+
+ /* Converter the character position to byte offset */
+ p = text + item->offset;
+ while (pos--)
+ p = unicode_next_utf8 (p);
+
+ *offset = p - text;
+ return TRUE;
+ }
+
+ pixels += width;
+ runs = runs->next;
+ }
+
+ pango_glyph_string_free (buf);
+
+ return FALSE;
+}
+
+/* Given an x-y position, return the paragraph and offset
+ * within the paragraph of the click.
+ */
+gboolean
+xy_to_cp (GList *paragraphs, int x, int y,
+ Paragraph **para_return, int *offset)
+{
+ GList *para_list, *line_list;
+ int height = 0;
+
+ *para_return = NULL;
+
+ para_list = paragraphs;
+ while (para_list && height < y)
+ {
+ Paragraph *para = para_list->data;
+
+ if (height + para->height >= y)
+ {
+ line_list = para->lines;
+ while (line_list)
+ {
+ Line *line = line_list->data;
+
+ if (height + line->ascent + line->descent >= y)
+ {
+ if (runs_x_to_cp (para->text, line->runs,
+ x - line->offset,
+ offset))
+ {
+ *para_return = para;
+ return TRUE;
+ }
+ else
+ return FALSE;
+ }
+ height += line->ascent + line->descent;
+ line_list = line_list->next;
+ }
+ }
+
+ height += para->height;
+ para_list = para_list->next;
+ }
+
+ return FALSE;
+}
+
+/* Given a character position within a run, determine the corresponding
+ * limits of that character in the x position.
+ */
+void
+runs_char_bounds (char *text, GList *runs, int offset, int *x, int *width)
+{
+ int start_x;
+ int end_x;
+ int run_width;
+ int pixels = 0;
+
+ PangoGlyphString *buf = pango_glyph_string_new();
+
+ while (runs)
+ {
+ PangoItem *item = runs->data;
+
+ pango_shape (font, text + item->offset, item->length, &item->analysis, buf);
+ pango_x_extents (buf, NULL, NULL, &run_width, NULL, NULL, NULL, NULL);
+
+ if (offset >= item->offset &&
+ offset < item->offset + item->length)
+ {
+ int char_pos;
+
+ /* Convert byte position into character position */
+ char_pos = _pango_utf8_len (text + item->offset, offset - item->offset);
+
+ /* Find bounds */
+ pango_cp_to_x (text + item->offset, item->length,
+ &item->analysis, buf, char_pos, FALSE, &start_x);
+ pango_cp_to_x (text + item->offset, item->length,
+ &item->analysis, buf, char_pos, TRUE, &end_x);
+
+ if (start_x < end_x)
+ {
+ *x = pixels + start_x / 72;
+ *width = (end_x - start_x) / 72;
+ }
+ else
+ {
+ *x = pixels + end_x / 72;
+ *width = (start_x - end_x) / 72;
+ }
+
+ break;
+ }
+
+ pixels += run_width;
+ runs = runs->next;
+ }
+
+ pango_glyph_string_free (buf);
+
+}
+
+/* Given a paragraph and offset in that paragraph, find the
+ * bounding rectangle for the character at the offset.
+ */
+void
+char_bounds (GList *paragraphs, Paragraph *para, int offset,
+ int *x, int *y, int *width, int *height)
+{
+ GList *para_list, *line_list, *run_list;
+ int pixels = 0;
+ int chars_seen = 0;
+
+ para_list = paragraphs;
+ while (para_list)
+ {
+ Paragraph *cur_para = para_list->data;
+
+ if (cur_para == para)
+ {
+ line_list = para->lines;
+ while (line_list)
+ {
+ Line *line = line_list->data;
+
+ run_list = line->runs;
+ while (run_list)
+ {
+ chars_seen += ((PangoItem *)run_list->data)->length;
+ run_list = run_list->next;
+ }
+
+ if (offset < chars_seen)
+ {
+ runs_char_bounds (para->text, line->runs, offset,
+ x, width);
+ *y = pixels;
+ *height = line->ascent + line->descent;
+ if (global_rtl)
+ *x += line->offset;
+
+ return;
+ }
+
+ pixels += line->ascent + line->descent;
+ line_list = line_list->next;
+ }
+ }
+
+ pixels += cur_para->height;
+ para_list = para_list->next;
+ }
+}
+
+/* XOR a rectangle over a given character
+ */
+void
+xor_char (GtkWidget *layout, GdkRectangle *clip_rect,
+ GList *paragraphs, Paragraph *para, int offset)
+{
+ static GdkGC *gc;
+ int x, y, width, height;
+
+ if (!gc)
+ {
+ GdkGCValues values;
+ values.foreground = layout->style->white.pixel ?
+ layout->style->white : layout->style->black;
+ values.function = GDK_XOR;
+ gc = gdk_gc_new_with_values (GTK_LAYOUT (layout)->bin_window,
+ &values,
+ GDK_GC_FOREGROUND | GDK_GC_FUNCTION);
+ }
+
+ gdk_gc_set_clip_rectangle (gc, clip_rect);
+
+ char_bounds (paragraphs, para, offset,
+ &x, &y, &width, &height);
+
+ y -= GTK_LAYOUT (layout)->yoffset;
+
+ if ((y + height >= 0) && (y < layout->allocation.height))
+ gdk_draw_rectangle (GTK_LAYOUT (layout)->bin_window, gc, TRUE,
+ x, y, width, height);
+}
+
+
+/* Draw a paragraph on the screen by looping through the list
+ * of lines, then for each line, looping through the list of
+ * runs for that line and drawing them.
+ */
+void
+expose_paragraph (Paragraph *para, GdkDrawable *drawable,
+ GdkGC *gc, int x, int y)
+{
+ GList *line_list;
+ GList *run_list;
+ PangoGlyphString *buf;
+
+ int x_off;
+
+ buf = pango_glyph_string_new();
+
+ line_list = para->lines;
+ while (line_list)
+ {
+ Line *line = line_list->data;
+
+ x_off = line->offset;
+ run_list = line->runs;
+ while (run_list)
+ {
+ PangoItem *item = run_list->data;
+ int width;
+
+ /* Convert the item into glyphs */
+ pango_shape (font,
+ para->text + item->offset, item->length,
+ &item->analysis,
+ buf);
+
+ /* Render the glyphs to the screen */
+ pango_x_render (GDK_DISPLAY(), GDK_WINDOW_XWINDOW (drawable),
+ GDK_GC_XGC (gc), buf, x + x_off,
+ y + line->ascent);
+
+ /* Advance to next x position
+ */
+ if (run_list->next)
+ {
+ pango_x_extents (buf, NULL, NULL, &width, NULL, NULL, NULL, NULL);
+
+ x_off += width;
+ }
+
+ run_list = run_list = run_list->next;
+ }
+
+ y += line->ascent + line->descent;
+ line_list = line_list->next;
+ }
+
+ pango_glyph_string_free (buf);
+}
+
+/* Handle a size allocation by re-laying-out each paragraph to
+ * the new width, setting the new size for the layout and
+ * then queing a redraw
+ */
+void
+size_allocate (GtkWidget *layout, GtkAllocation *allocation, GList *paragraphs)
+{
+ GList *tmp_list;
+ int height = 0;
+
+ tmp_list = paragraphs;
+ while (tmp_list)
+ {
+ Paragraph *para = tmp_list->data;
+ tmp_list = tmp_list->next;
+
+ layout_paragraph (para, allocation->width);
+
+ height += para->height;
+ }
+
+ gtk_layout_set_size (GTK_LAYOUT (layout), allocation->width, height);
+
+ if (GTK_LAYOUT (layout)->yoffset + allocation->height > height)
+ gtk_adjustment_set_value (GTK_LAYOUT (layout)->vadjustment,
+ height - allocation->height);
+}
+
+/* Handle a draw/expose by finding the paragraphs that intersect
+ * the region and reexposing them.
+ */
+void
+draw (GtkWidget *layout, GdkRectangle *area, GList *paragraphs)
+{
+ GList *tmp_list;
+ int height = 0;
+
+ gdk_draw_rectangle (GTK_LAYOUT (layout)->bin_window,
+ layout->style->base_gc[layout->state],
+ TRUE,
+ area->x, area->y,
+ area->width, area->height);
+
+ gdk_gc_set_clip_rectangle (layout->style->text_gc[layout->state], area);
+
+ tmp_list = paragraphs;
+ while (tmp_list &&
+ height < area->y + area->height + GTK_LAYOUT (layout)->yoffset)
+ {
+ Paragraph *para = tmp_list->data;
+ tmp_list = tmp_list->next;
+
+ if (height + para->height >= GTK_LAYOUT (layout)->yoffset + area->y)
+ expose_paragraph (para,
+ GTK_LAYOUT (layout)->bin_window,
+ layout->style->text_gc[layout->state],
+ 0, height - GTK_LAYOUT (layout)->yoffset);
+
+ height += para->height;
+ }
+
+ gdk_gc_set_clip_rectangle (layout->style->text_gc[layout->state], NULL);
+
+ if (highlight_para)
+ xor_char (layout, area, paragraphs, highlight_para, highlight_offset);
+}
+
+gboolean
+expose (GtkWidget *layout, GdkEventExpose *event, GList *paragraphs)
+{
+ if (event->window == GTK_LAYOUT (layout)->bin_window)
+ draw (layout, &event->area, paragraphs);
+
+ return TRUE;
+}
+
+void
+button_press (GtkWidget *layout, GdkEventButton *event, GList *paragraphs)
+{
+ Paragraph *para = NULL;
+ int offset;
+ gchar *message;
+
+ xy_to_cp (paragraphs, event->x, event->y + GTK_LAYOUT (layout)->yoffset,
+ &para, &offset);
+
+ if (highlight_para)
+ xor_char (layout, NULL, paragraphs, highlight_para, highlight_offset);
+
+ highlight_para = para;
+ highlight_offset = offset;
+
+ if (para)
+ {
+ GUChar4 wc;
+
+ unicode_get_utf8 (para->text + offset, &wc);
+ message = g_strdup_printf ("Current char: U%04x", wc);
+
+ xor_char (layout, NULL, paragraphs, highlight_para, highlight_offset);
+ }
+ else
+ message = g_strdup_printf ("Current char:");
+
+ gtk_label_set_text (GTK_LABEL (message_label), message);
+ g_free (message);
+}
+
+static void
+checkbutton_toggled (GtkWidget *widget, gpointer data)
+{
+ global_rtl = GTK_TOGGLE_BUTTON (widget)->active;
+ gtk_widget_queue_resize (layout);
+}
+
+int
+main (int argc, char **argv)
+{
+ char *text;
+ GtkWidget *window;
+ GtkWidget *scrollwin;
+ GtkWidget *vbox;
+ GtkWidget *frame;
+ GtkWidget *checkbutton;
+ GList *paragraphs;
+
+ gtk_init (&argc, &argv);
+
+ if (argc != 2)
+ {
+ fprintf (stderr, "Usage: gscript-viewer FILE\n");
+ exit(1);
+ }
+
+ /* Create the list of paragraphs from the supplied file
+ */
+ text = read_file (argv[1]);
+ if (!text)
+ exit(1);
+
+ paragraphs = split_paragraphs (text);
+
+ /* We hard code a font globally for now
+ */
+ font = pango_x_load_font (GDK_DISPLAY(),
+ // "-misc-fixed-medium-r-semicondensed--13-*-*-*-c-*-iso10646-1,"
+ "-gnu-unifont-medium-r-normal--16-*-*-*-c-*-iso10646-1,"
+ "-*-*-medium-r-normal--12-*-*-*-*-*-*-*");
+
+ /* Create the user interface
+ */
+ window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+ gtk_window_set_default_size (GTK_WINDOW (window), 400, 400);
+
+ gtk_signal_connect (GTK_OBJECT (window), "destroy",
+ GTK_SIGNAL_FUNC (gtk_main_quit), NULL);
+
+ vbox = gtk_vbox_new (FALSE, 3);
+ gtk_container_add (GTK_CONTAINER (window), vbox);
+
+ scrollwin = gtk_scrolled_window_new (NULL, NULL);
+ gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrollwin),
+ GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
+
+ gtk_box_pack_start (GTK_BOX (vbox), scrollwin, TRUE, TRUE, 0);
+
+ layout = gtk_layout_new (NULL, NULL);
+ gtk_widget_set_events (layout, GDK_BUTTON_PRESS_MASK);
+ gtk_widget_set_app_paintable (layout, TRUE);
+
+ gtk_signal_connect (GTK_OBJECT (layout), "size_allocate",
+ GTK_SIGNAL_FUNC (size_allocate), paragraphs);
+ gtk_signal_connect (GTK_OBJECT (layout), "expose_event",
+ GTK_SIGNAL_FUNC (expose), paragraphs);
+ gtk_signal_connect (GTK_OBJECT (layout), "draw",
+ GTK_SIGNAL_FUNC (draw), paragraphs);
+ gtk_signal_connect (GTK_OBJECT (layout), "button_press_event",
+ GTK_SIGNAL_FUNC (button_press), paragraphs);
+
+ gtk_container_add (GTK_CONTAINER (scrollwin), layout);
+
+ frame = gtk_frame_new (NULL);
+ gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN);
+ gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0);
+
+ message_label = gtk_label_new ("Current char:");
+ gtk_misc_set_padding (GTK_MISC (message_label), 1, 1);
+ gtk_misc_set_alignment (GTK_MISC (message_label), 0.0, 0.5);
+ gtk_container_add (GTK_CONTAINER (frame), message_label);
+
+ checkbutton = gtk_check_button_new_with_label ("Use RTL global direction");
+ gtk_signal_connect (GTK_OBJECT (checkbutton), "toggled",
+ GTK_SIGNAL_FUNC (checkbutton_toggled), NULL);
+ gtk_box_pack_start (GTK_BOX (vbox), checkbutton, FALSE, FALSE, 0);
+
+ gtk_widget_show_all (window);
+
+ gtk_main ();
+
+ return 0;
+}