03-14-2005
Unix History Question: Why are filenames/dirnames case sentsitive in Unix?
I tried looking for the answer online and came up with only a few semi-answers as to why file and directory names are case sensitive in Unix. Right off the bat, I'll say this doesn't bother me. But I run into tons of Windows and OpenVMS admins in my day job who go batty when they have to deal with case sensitivity and I hate not really having a good answer for them. The best answer I can give them is that it allows for more filenames in the namespace, but they usually just grunt and reply, "yeah, but who cares". Knowing that Unix seems to have been refined into a really well thought out OS over the decades, I'm sure there must be a reason why case sensitivity was kept (other than legacy compatibility) instead of moving to a case insensitive naming convention. Any gurus out there have any good answers I can give them besides, "You'll get nothing and like it too!!" ;P
10 More Discussions You Might Find Interesting
1. News, Links, Events and Announcements
Link describe the Step by step formation of Unix
http://perso.wanadoo.fr/levenez/unix/
Also:
- History
- Author of First Unix C Language
- Unix Family research Tree
- BSD and Sun History chart
- Technical Comparison between Unix Diffrences (4 Replies)
Discussion started by: killerserv
4 Replies
2. UNIX for Dummies Questions & Answers
Hi. I am new here, and this is my first post at the UNIX.com forums. I have read the book Fire in the Valley: The Making of the Personal Computer, and I noticed that neither UNIX nor Linux was mentioned once in the book. Why is this? What was UNIX's place in the early days of personal computers?
... (6 Replies)
Discussion started by: elendil
6 Replies
3. Shell Programming and Scripting
I have files on my unix boxes that users have created with spaces.
Example: /tmp/project plan
ls -l "/tmp/project plan" works fine.
$/tmp>ls -l "/tmp/project plan"
-rw-r--r-- 1 root other 0 Jan 31 12:32 /tmp/project plan
I created a file called test and put just the... (2 Replies)
Discussion started by: x96riley3
2 Replies
4. Shell Programming and Scripting
Hi,
I need to write a small script to search in some specific directories to check if any file is present with a unix command name...
Means if the directory contains any files like cat, vi, grep, find etc i need to list those files into a file.
Please help
Thanks,
D (6 Replies)
Discussion started by: deepakgang
6 Replies
5. UNIX for Dummies Questions & Answers
Hi,
I'm working on two flavours of unix namely HP-UX and sun solaris.
In HP-UX, for executing the previous commands, i use the arrow keys. But on sun solaris this is not working.
Can anyone explain how to use history feature effectively in sun solaris os?
Thanks (4 Replies)
Discussion started by: venkatesht
4 Replies
6. UNIX and Linux Applications
Hi everybody Im Megadrink!!!
This is my first thred.
Ive recently been introduced to Unix and i was interested in Unix's History. Can anyone give me a breif History On Unix. Just when it was invented/released. Maybe someother cool things about it.
Thx for the information in advance!! :D (2 Replies)
Discussion started by: Megadrink
2 Replies
7. What is on Your Mind?
Hello everyone!
Filenames with hyphens instead of everything else that can be as a space - is it particularly UNIX style of naming or a general practice? It kinda is so in my mind that DOS guys use underscores as spaces and UNIX guys use dashes. Is it so? (5 Replies)
Discussion started by: guest115
5 Replies
8. Shell Programming and Scripting
Hello,
I have a file name in the below format and have to append the date as _$currdate.
kchik_UK_lo.txt_$currdate.
The above should be the format and I dont want to put entire filename as above in the code, but it should give me the output as the above filename.Can anyone please help... (7 Replies)
Discussion started by: harika03
7 Replies
9. Shell Programming and Scripting
commands to view the history file in unix.
I am not sure whether it is bash_history.sh (1 Reply)
Discussion started by: ramkumar15
1 Replies
10. What is on Your Mind?
I am pleased to announce this new video in 1080 HD for UNIX lovers honoring thirty years of UNIX history spanning from 1969 to 1999 presented in 150 seconds (two and a half minutes) in 1080 HD, celebrating the 50th anniversary of UNIX.
The Great History of UNIX (1969-1999) | 30 Years of UNIX... (8 Replies)
Discussion started by: Neo
8 Replies
LEARN ABOUT HPUX
xtsetsensitive
XtSetSensitive() XtSetSensitive()
Name
XtSetSensitive - set the sensitivity state of a widget.
Synopsis
void XtSetSensitive(w, sensitive)
Widget w;
Boolean sensitive;
Inputs
w Specifies the widget.
sensitive Specifies whether the widget should receive keyboard, pointer, and focus events.
Description
XtSetSensitive() sets the sensitivity state of w. If sensitive is False, then w and all of its descendants will become insensitive and
will not have any KeyPress, KeyRelease, ButtonPress, ButtonRelease, MotionNotify, EnterNotify, LeaveNotify, FocusIn, or FocusOut events
dispatched to them. If sensitive is True, and if w's
XtNancestorSensitive resource is also True, then w and its children will be made sensitive again, except for any children that have explic-
itly been made insensitive by calling XtSetSensitive() or by setting their XtNsensitive resource.
See the "Background" section below for more details on the algorithm followed by XtSetSensitive() and on how the sensitivity of a widget
affects the sensitivity of its descendants.
Usage
Many widgets will display themselves differently when they are insensitive. A common approach is to draw themselves through a stipple mask
so that they appear grayed-out. XtSetSensitive() uses XtSetValues() when it sets the XtNsensitive and XtNancestorSensitive resources, so
widgets can check for changes to these resources in their set_values() method and take the appropriate action.
In an application, it is good style to make any widget insensitive if it does not currently make sense for the user to select it. A menu
item labeled "Delete Selected Items", for example, should be insensitive if there are not any currently selected items. A button that pops
up a modal dialog box should be made insensitive while that dialog box is popped up, so that the user cannot attempt to pop it up again.
You can test the sensitivity state of a widget by calling XtIsSensitive().
Note that you can also set the sensitivity of a widget by setting the XtNsensitive resource directly. It is better to use XtSetSensitive
because this handles composite widgets correctly. If you want a non-composite widget to be insensitive when it is created, you can specify
False for XtNsensitive from a resource file or an argument list. You can query the value of the XtNancestorSensitive resource, but you
should never set it.
Popup shells will have their XtNancestorSensitive resource set to False if their parent was insensitive when they were created. Since
XtSetSensitive() on the parent will not modify the resource in the popup child, you should either be sure that you only create popup shells
as children of sensitive widgets, or that you include a line like the following in your app-defaults file:
*TransientShell.ancestorSensitive: True
Background
Widget sensitivity is controlled by the sensitive and ancestor_sensitive fields in the Core instance record. XtNsensitive and XtNances-
torSensitive are the resource names for these fields. A widget can be insensitive because its sensitive field is False or because one of
its ancestors is insensitive. A widget can, but does not need to, distinguish these two cases visually.
XtSetSensitive() first calls XtSetValues() on the current widget to set the
XtNsensitive resource to the value specified by sensitive. If sensitive is False and the widget is a subclass of Composite, XtSetSensi-
tive() recursively propagates the new value down the children tree by calling XtSetValues() on each child to set ancestor_sensitive to
False. If sensitive is True and the widget is a subclass of Composite and the widget's ancestor_sensitive field is True, then XtSetSensi-
tive() sets the ancestor_sensitive of each child to True and then recursively calls XtSetValues() on each normal descendant that is now
sensitive to set ancestor_sensitive to True.
XtSetSensitive() ensures that if a parent has either sensitive or ancestor_sensitive set to False, then all children have ancestor_sensi-
tive set to False.
See Also
XtGetValues(1), XtIsSensitive(1), XtSetValues(1).
Xt - Resource Management XtSetSensitive()